| OLD | NEW |
| 1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
| 2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
| 3 library engine.ast; | 3 library engine.ast; |
| 4 import 'dart:collection'; | 4 import 'dart:collection'; |
| 5 import 'java_core.dart'; | 5 import 'java_core.dart'; |
| 6 import 'java_engine.dart'; | 6 import 'java_engine.dart'; |
| 7 import 'error.dart'; | 7 import 'error.dart'; |
| 8 import 'source.dart' show LineInfo; | 8 import 'source.dart' show LineInfo; |
| 9 import 'scanner.dart'; | 9 import 'scanner.dart'; |
| 10 import 'engine.dart' show AnalysisEngine; | 10 import 'engine.dart' show AnalysisEngine; |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 * [StringLiteral] [StringLiteral]+ | 371 * [StringLiteral] [StringLiteral]+ |
| 372 * </pre> | 372 * </pre> |
| 373 * | 373 * |
| 374 * @coverage dart.engine.ast | 374 * @coverage dart.engine.ast |
| 375 */ | 375 */ |
| 376 class AdjacentStrings extends StringLiteral { | 376 class AdjacentStrings extends StringLiteral { |
| 377 | 377 |
| 378 /** | 378 /** |
| 379 * The strings that are implicitly concatenated. | 379 * The strings that are implicitly concatenated. |
| 380 */ | 380 */ |
| 381 NodeList<StringLiteral> _strings; | 381 NodeList<StringLiteral> strings; |
| 382 | 382 |
| 383 /** | 383 /** |
| 384 * Initialize a newly created list of adjacent strings. | 384 * Initialize a newly created list of adjacent strings. |
| 385 * | 385 * |
| 386 * @param strings the strings that are implicitly concatenated | 386 * @param strings the strings that are implicitly concatenated |
| 387 */ | 387 */ |
| 388 AdjacentStrings.full(List<StringLiteral> strings) { | 388 AdjacentStrings.full(List<StringLiteral> strings) { |
| 389 this._strings = new NodeList<StringLiteral>(this); | 389 this.strings = new NodeList<StringLiteral>(this); |
| 390 this._strings.addAll(strings); | 390 this.strings.addAll(strings); |
| 391 } | 391 } |
| 392 | 392 |
| 393 /** | 393 /** |
| 394 * Initialize a newly created list of adjacent strings. | 394 * Initialize a newly created list of adjacent strings. |
| 395 * | 395 * |
| 396 * @param strings the strings that are implicitly concatenated | 396 * @param strings the strings that are implicitly concatenated |
| 397 */ | 397 */ |
| 398 AdjacentStrings({List<StringLiteral> strings}) : this.full(strings); | 398 AdjacentStrings({List<StringLiteral> strings}) : this.full(strings); |
| 399 accept(ASTVisitor visitor) => visitor.visitAdjacentStrings(this); | 399 accept(ASTVisitor visitor) => visitor.visitAdjacentStrings(this); |
| 400 Token get beginToken => _strings.beginToken; | 400 Token get beginToken => strings.beginToken; |
| 401 Token get endToken => _strings.endToken; | 401 Token get endToken => strings.endToken; |
| 402 | |
| 403 /** | |
| 404 * Return the strings that are implicitly concatenated. | |
| 405 * | |
| 406 * @return the strings that are implicitly concatenated | |
| 407 */ | |
| 408 NodeList<StringLiteral> get strings => _strings; | |
| 409 void visitChildren(ASTVisitor visitor) { | 402 void visitChildren(ASTVisitor visitor) { |
| 410 _strings.accept(visitor); | 403 strings.accept(visitor); |
| 411 } | 404 } |
| 412 void appendStringValue(JavaStringBuilder builder) { | 405 void appendStringValue(JavaStringBuilder builder) { |
| 413 for (StringLiteral stringLiteral in strings) { | 406 for (StringLiteral stringLiteral in strings) { |
| 414 stringLiteral.appendStringValue(builder); | 407 stringLiteral.appendStringValue(builder); |
| 415 } | 408 } |
| 416 } | 409 } |
| 417 } | 410 } |
| 418 /** | 411 /** |
| 419 * The abstract class `AnnotatedNode` defines the behavior of nodes that can be
annotated with | 412 * The abstract class `AnnotatedNode` defines the behavior of nodes that can be
annotated with |
| 420 * both a comment and metadata. | 413 * both a comment and metadata. |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 * '@' [Identifier] ('.' [SimpleIdentifier])? [ArgumentList]? | 556 * '@' [Identifier] ('.' [SimpleIdentifier])? [ArgumentList]? |
| 564 * </pre> | 557 * </pre> |
| 565 * | 558 * |
| 566 * @coverage dart.engine.ast | 559 * @coverage dart.engine.ast |
| 567 */ | 560 */ |
| 568 class Annotation extends ASTNode { | 561 class Annotation extends ASTNode { |
| 569 | 562 |
| 570 /** | 563 /** |
| 571 * The at sign that introduced the annotation. | 564 * The at sign that introduced the annotation. |
| 572 */ | 565 */ |
| 573 Token _atSign; | 566 Token atSign; |
| 574 | 567 |
| 575 /** | 568 /** |
| 576 * The name of the class defining the constructor that is being invoked or the
name of the field | 569 * The name of the class defining the constructor that is being invoked or the
name of the field |
| 577 * that is being referenced. | 570 * that is being referenced. |
| 578 */ | 571 */ |
| 579 Identifier _name; | 572 Identifier _name; |
| 580 | 573 |
| 581 /** | 574 /** |
| 582 * The period before the constructor name, or `null` if this annotation is not
the | 575 * The period before the constructor name, or `null` if this annotation is not
the |
| 583 * invocation of a named constructor. | 576 * invocation of a named constructor. |
| 584 */ | 577 */ |
| 585 Token _period; | 578 Token period; |
| 586 | 579 |
| 587 /** | 580 /** |
| 588 * The name of the constructor being invoked, or `null` if this annotation is
not the | 581 * The name of the constructor being invoked, or `null` if this annotation is
not the |
| 589 * invocation of a named constructor. | 582 * invocation of a named constructor. |
| 590 */ | 583 */ |
| 591 SimpleIdentifier _constructorName; | 584 SimpleIdentifier _constructorName; |
| 592 | 585 |
| 593 /** | 586 /** |
| 594 * The arguments to the constructor being invoked, or `null` if this annotatio
n is not the | 587 * The arguments to the constructor being invoked, or `null` if this annotatio
n is not the |
| 595 * invocation of a constructor. | 588 * invocation of a constructor. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 609 * @param name the name of the class defining the constructor that is being in
voked or the name of | 602 * @param name the name of the class defining the constructor that is being in
voked or the name of |
| 610 * the field that is being referenced | 603 * the field that is being referenced |
| 611 * @param period the period before the constructor name, or `null` if this ann
otation is not | 604 * @param period the period before the constructor name, or `null` if this ann
otation is not |
| 612 * the invocation of a named constructor | 605 * the invocation of a named constructor |
| 613 * @param constructorName the name of the constructor being invoked, or `null`
if this | 606 * @param constructorName the name of the constructor being invoked, or `null`
if this |
| 614 * annotation is not the invocation of a named constructor | 607 * annotation is not the invocation of a named constructor |
| 615 * @param arguments the arguments to the constructor being invoked, or `null`
if this | 608 * @param arguments the arguments to the constructor being invoked, or `null`
if this |
| 616 * annotation is not the invocation of a constructor | 609 * annotation is not the invocation of a constructor |
| 617 */ | 610 */ |
| 618 Annotation.full(Token atSign, Identifier name, Token period, SimpleIdentifier
constructorName, ArgumentList arguments) { | 611 Annotation.full(Token atSign, Identifier name, Token period, SimpleIdentifier
constructorName, ArgumentList arguments) { |
| 619 this._atSign = atSign; | 612 this.atSign = atSign; |
| 620 this._name = becomeParentOf(name); | 613 this._name = becomeParentOf(name); |
| 621 this._period = period; | 614 this.period = period; |
| 622 this._constructorName = becomeParentOf(constructorName); | 615 this._constructorName = becomeParentOf(constructorName); |
| 623 this._arguments = becomeParentOf(arguments); | 616 this._arguments = becomeParentOf(arguments); |
| 624 } | 617 } |
| 625 | 618 |
| 626 /** | 619 /** |
| 627 * Initialize a newly created annotation. | 620 * Initialize a newly created annotation. |
| 628 * | 621 * |
| 629 * @param atSign the at sign that introduced the annotation | 622 * @param atSign the at sign that introduced the annotation |
| 630 * @param name the name of the class defining the constructor that is being in
voked or the name of | 623 * @param name the name of the class defining the constructor that is being in
voked or the name of |
| 631 * the field that is being referenced | 624 * the field that is being referenced |
| 632 * @param period the period before the constructor name, or `null` if this ann
otation is not | 625 * @param period the period before the constructor name, or `null` if this ann
otation is not |
| 633 * the invocation of a named constructor | 626 * the invocation of a named constructor |
| 634 * @param constructorName the name of the constructor being invoked, or `null`
if this | 627 * @param constructorName the name of the constructor being invoked, or `null`
if this |
| 635 * annotation is not the invocation of a named constructor | 628 * annotation is not the invocation of a named constructor |
| 636 * @param arguments the arguments to the constructor being invoked, or `null`
if this | 629 * @param arguments the arguments to the constructor being invoked, or `null`
if this |
| 637 * annotation is not the invocation of a constructor | 630 * annotation is not the invocation of a constructor |
| 638 */ | 631 */ |
| 639 Annotation({Token atSign, Identifier name, Token period, SimpleIdentifier cons
tructorName, ArgumentList arguments}) : this.full(atSign, name, period, construc
torName, arguments); | 632 Annotation({Token atSign, Identifier name, Token period, SimpleIdentifier cons
tructorName, ArgumentList arguments}) : this.full(atSign, name, period, construc
torName, arguments); |
| 640 accept(ASTVisitor visitor) => visitor.visitAnnotation(this); | 633 accept(ASTVisitor visitor) => visitor.visitAnnotation(this); |
| 641 | 634 |
| 642 /** | 635 /** |
| 643 * Return the arguments to the constructor being invoked, or `null` if this an
notation is | 636 * Return the arguments to the constructor being invoked, or `null` if this an
notation is |
| 644 * not the invocation of a constructor. | 637 * not the invocation of a constructor. |
| 645 * | 638 * |
| 646 * @return the arguments to the constructor being invoked | 639 * @return the arguments to the constructor being invoked |
| 647 */ | 640 */ |
| 648 ArgumentList get arguments => _arguments; | 641 ArgumentList get arguments => _arguments; |
| 649 | 642 Token get beginToken => atSign; |
| 650 /** | |
| 651 * Return the at sign that introduced the annotation. | |
| 652 * | |
| 653 * @return the at sign that introduced the annotation | |
| 654 */ | |
| 655 Token get atSign => _atSign; | |
| 656 Token get beginToken => _atSign; | |
| 657 | 643 |
| 658 /** | 644 /** |
| 659 * Return the name of the constructor being invoked, or `null` if this annotat
ion is not the | 645 * Return the name of the constructor being invoked, or `null` if this annotat
ion is not the |
| 660 * invocation of a named constructor. | 646 * invocation of a named constructor. |
| 661 * | 647 * |
| 662 * @return the name of the constructor being invoked | 648 * @return the name of the constructor being invoked |
| 663 */ | 649 */ |
| 664 SimpleIdentifier get constructorName => _constructorName; | 650 SimpleIdentifier get constructorName => _constructorName; |
| 665 | 651 |
| 666 /** | 652 /** |
| (...skipping 22 matching lines...) Expand all Loading... |
| 689 | 675 |
| 690 /** | 676 /** |
| 691 * Return the name of the class defining the constructor that is being invoked
or the name of the | 677 * Return the name of the class defining the constructor that is being invoked
or the name of the |
| 692 * field that is being referenced. | 678 * field that is being referenced. |
| 693 * | 679 * |
| 694 * @return the name of the constructor being invoked or the name of the field
being referenced | 680 * @return the name of the constructor being invoked or the name of the field
being referenced |
| 695 */ | 681 */ |
| 696 Identifier get name => _name; | 682 Identifier get name => _name; |
| 697 | 683 |
| 698 /** | 684 /** |
| 699 * Return the period before the constructor name, or `null` if this annotation
is not the | |
| 700 * invocation of a named constructor. | |
| 701 * | |
| 702 * @return the period before the constructor name | |
| 703 */ | |
| 704 Token get period => _period; | |
| 705 | |
| 706 /** | |
| 707 * Set the arguments to the constructor being invoked to the given arguments. | 685 * Set the arguments to the constructor being invoked to the given arguments. |
| 708 * | 686 * |
| 709 * @param arguments the arguments to the constructor being invoked | 687 * @param arguments the arguments to the constructor being invoked |
| 710 */ | 688 */ |
| 711 void set arguments(ArgumentList arguments2) { | 689 void set arguments(ArgumentList arguments2) { |
| 712 this._arguments = becomeParentOf(arguments2); | 690 this._arguments = becomeParentOf(arguments2); |
| 713 } | 691 } |
| 714 | 692 |
| 715 /** | 693 /** |
| 716 * Set the at sign that introduced the annotation to the given token. | |
| 717 * | |
| 718 * @param atSign the at sign that introduced the annotation | |
| 719 */ | |
| 720 void set atSign(Token atSign2) { | |
| 721 this._atSign = atSign2; | |
| 722 } | |
| 723 | |
| 724 /** | |
| 725 * Set the name of the constructor being invoked to the given name. | 694 * Set the name of the constructor being invoked to the given name. |
| 726 * | 695 * |
| 727 * @param constructorName the name of the constructor being invoked | 696 * @param constructorName the name of the constructor being invoked |
| 728 */ | 697 */ |
| 729 void set constructorName(SimpleIdentifier constructorName2) { | 698 void set constructorName(SimpleIdentifier constructorName2) { |
| 730 this._constructorName = becomeParentOf(constructorName2); | 699 this._constructorName = becomeParentOf(constructorName2); |
| 731 } | 700 } |
| 732 | 701 |
| 733 /** | 702 /** |
| 734 * Set the element associated with this annotation based. | 703 * Set the element associated with this annotation based. |
| 735 * | 704 * |
| 736 * @param element the element to be associated with this identifier | 705 * @param element the element to be associated with this identifier |
| 737 */ | 706 */ |
| 738 void set element(Element element2) { | 707 void set element(Element element2) { |
| 739 this._element = element2; | 708 this._element = element2; |
| 740 } | 709 } |
| 741 | 710 |
| 742 /** | 711 /** |
| 743 * Set the name of the class defining the constructor that is being invoked or
the name of the | 712 * Set the name of the class defining the constructor that is being invoked or
the name of the |
| 744 * field that is being referenced to the given name. | 713 * field that is being referenced to the given name. |
| 745 * | 714 * |
| 746 * @param name the name of the constructor being invoked or the name of the fi
eld being referenced | 715 * @param name the name of the constructor being invoked or the name of the fi
eld being referenced |
| 747 */ | 716 */ |
| 748 void set name(Identifier name2) { | 717 void set name(Identifier name2) { |
| 749 this._name = becomeParentOf(name2); | 718 this._name = becomeParentOf(name2); |
| 750 } | 719 } |
| 751 | |
| 752 /** | |
| 753 * Set the period before the constructor name to the given token. | |
| 754 * | |
| 755 * @param period the period before the constructor name | |
| 756 */ | |
| 757 void set period(Token period2) { | |
| 758 this._period = period2; | |
| 759 } | |
| 760 void visitChildren(ASTVisitor visitor) { | 720 void visitChildren(ASTVisitor visitor) { |
| 761 safelyVisitChild(_name, visitor); | 721 safelyVisitChild(_name, visitor); |
| 762 safelyVisitChild(_constructorName, visitor); | 722 safelyVisitChild(_constructorName, visitor); |
| 763 safelyVisitChild(_arguments, visitor); | 723 safelyVisitChild(_arguments, visitor); |
| 764 } | 724 } |
| 765 } | 725 } |
| 766 /** | 726 /** |
| 767 * Instances of the class `ArgumentDefinitionTest` represent an argument definit
ion test. | 727 * Instances of the class `ArgumentDefinitionTest` represent an argument definit
ion test. |
| 768 * | 728 * |
| 769 * <pre> | 729 * <pre> |
| 770 * argumentDefinitionTest ::= | 730 * argumentDefinitionTest ::= |
| 771 * '?' [SimpleIdentifier] | 731 * '?' [SimpleIdentifier] |
| 772 * </pre> | 732 * </pre> |
| 773 * | 733 * |
| 774 * @coverage dart.engine.ast | 734 * @coverage dart.engine.ast |
| 775 */ | 735 */ |
| 776 class ArgumentDefinitionTest extends Expression { | 736 class ArgumentDefinitionTest extends Expression { |
| 777 | 737 |
| 778 /** | 738 /** |
| 779 * The token representing the question mark. | 739 * The token representing the question mark. |
| 780 */ | 740 */ |
| 781 Token _question; | 741 Token question; |
| 782 | 742 |
| 783 /** | 743 /** |
| 784 * The identifier representing the argument being tested. | 744 * The identifier representing the argument being tested. |
| 785 */ | 745 */ |
| 786 SimpleIdentifier _identifier; | 746 SimpleIdentifier _identifier; |
| 787 | 747 |
| 788 /** | 748 /** |
| 789 * Initialize a newly created argument definition test. | 749 * Initialize a newly created argument definition test. |
| 790 * | 750 * |
| 791 * @param question the token representing the question mark | 751 * @param question the token representing the question mark |
| 792 * @param identifier the identifier representing the argument being tested | 752 * @param identifier the identifier representing the argument being tested |
| 793 */ | 753 */ |
| 794 ArgumentDefinitionTest.full(Token question, SimpleIdentifier identifier) { | 754 ArgumentDefinitionTest.full(Token question, SimpleIdentifier identifier) { |
| 795 this._question = question; | 755 this.question = question; |
| 796 this._identifier = becomeParentOf(identifier); | 756 this._identifier = becomeParentOf(identifier); |
| 797 } | 757 } |
| 798 | 758 |
| 799 /** | 759 /** |
| 800 * Initialize a newly created argument definition test. | 760 * Initialize a newly created argument definition test. |
| 801 * | 761 * |
| 802 * @param question the token representing the question mark | 762 * @param question the token representing the question mark |
| 803 * @param identifier the identifier representing the argument being tested | 763 * @param identifier the identifier representing the argument being tested |
| 804 */ | 764 */ |
| 805 ArgumentDefinitionTest({Token question, SimpleIdentifier identifier}) : this.f
ull(question, identifier); | 765 ArgumentDefinitionTest({Token question, SimpleIdentifier identifier}) : this.f
ull(question, identifier); |
| 806 accept(ASTVisitor visitor) => visitor.visitArgumentDefinitionTest(this); | 766 accept(ASTVisitor visitor) => visitor.visitArgumentDefinitionTest(this); |
| 807 Token get beginToken => _question; | 767 Token get beginToken => question; |
| 808 Token get endToken => _identifier.endToken; | 768 Token get endToken => _identifier.endToken; |
| 809 | 769 |
| 810 /** | 770 /** |
| 811 * Return the identifier representing the argument being tested. | 771 * Return the identifier representing the argument being tested. |
| 812 * | 772 * |
| 813 * @return the identifier representing the argument being tested | 773 * @return the identifier representing the argument being tested |
| 814 */ | 774 */ |
| 815 SimpleIdentifier get identifier => _identifier; | 775 SimpleIdentifier get identifier => _identifier; |
| 816 | 776 |
| 817 /** | 777 /** |
| 818 * Return the token representing the question mark. | |
| 819 * | |
| 820 * @return the token representing the question mark | |
| 821 */ | |
| 822 Token get question => _question; | |
| 823 | |
| 824 /** | |
| 825 * Set the identifier representing the argument being tested to the given iden
tifier. | 778 * Set the identifier representing the argument being tested to the given iden
tifier. |
| 826 * | 779 * |
| 827 * @param identifier the identifier representing the argument being tested | 780 * @param identifier the identifier representing the argument being tested |
| 828 */ | 781 */ |
| 829 void set identifier(SimpleIdentifier identifier2) { | 782 void set identifier(SimpleIdentifier identifier2) { |
| 830 this._identifier = becomeParentOf(identifier2); | 783 this._identifier = becomeParentOf(identifier2); |
| 831 } | 784 } |
| 832 | |
| 833 /** | |
| 834 * Set the token representing the question mark to the given token. | |
| 835 * | |
| 836 * @param question the token representing the question mark | |
| 837 */ | |
| 838 void set question(Token question2) { | |
| 839 this._question = question2; | |
| 840 } | |
| 841 void visitChildren(ASTVisitor visitor) { | 785 void visitChildren(ASTVisitor visitor) { |
| 842 safelyVisitChild(_identifier, visitor); | 786 safelyVisitChild(_identifier, visitor); |
| 843 } | 787 } |
| 844 } | 788 } |
| 845 /** | 789 /** |
| 846 * Instances of the class `ArgumentList` represent a list of arguments in the in
vocation of a | 790 * Instances of the class `ArgumentList` represent a list of arguments in the in
vocation of a |
| 847 * executable element: a function, method, or constructor. | 791 * executable element: a function, method, or constructor. |
| 848 * | 792 * |
| 849 * <pre> | 793 * <pre> |
| 850 * argumentList ::= | 794 * argumentList ::= |
| 851 * '(' arguments? ')' | 795 * '(' arguments? ')' |
| 852 * | 796 * |
| 853 * arguments ::= | 797 * arguments ::= |
| 854 * [NamedExpression] (',' [NamedExpression])* | 798 * [NamedExpression] (',' [NamedExpression])* |
| 855 * | [Expression] (',' [NamedExpression])* | 799 * | [Expression] (',' [NamedExpression])* |
| 856 * </pre> | 800 * </pre> |
| 857 * | 801 * |
| 858 * @coverage dart.engine.ast | 802 * @coverage dart.engine.ast |
| 859 */ | 803 */ |
| 860 class ArgumentList extends ASTNode { | 804 class ArgumentList extends ASTNode { |
| 861 | 805 |
| 862 /** | 806 /** |
| 863 * The left parenthesis. | 807 * The left parenthesis. |
| 864 */ | 808 */ |
| 865 Token _leftParenthesis; | 809 Token _leftParenthesis; |
| 866 | 810 |
| 867 /** | 811 /** |
| 868 * The expressions producing the values of the arguments. | 812 * The expressions producing the values of the arguments. |
| 869 */ | 813 */ |
| 870 NodeList<Expression> _arguments; | 814 NodeList<Expression> arguments; |
| 871 | 815 |
| 872 /** | 816 /** |
| 873 * The right parenthesis. | 817 * The right parenthesis. |
| 874 */ | 818 */ |
| 875 Token _rightParenthesis; | 819 Token _rightParenthesis; |
| 876 | 820 |
| 877 /** | 821 /** |
| 878 * An array containing the elements representing the parameters corresponding
to each of the | 822 * An array containing the elements representing the parameters corresponding
to each of the |
| 879 * arguments in this list, or `null` if the AST has not been resolved or if th
e function or | 823 * arguments in this list, or `null` if the AST has not been resolved or if th
e function or |
| 880 * method being invoked could not be determined based on static type informati
on. The array must | 824 * method being invoked could not be determined based on static type informati
on. The array must |
| (...skipping 12 matching lines...) Expand all Loading... |
| 893 List<ParameterElement> _correspondingPropagatedParameters; | 837 List<ParameterElement> _correspondingPropagatedParameters; |
| 894 | 838 |
| 895 /** | 839 /** |
| 896 * Initialize a newly created list of arguments. | 840 * Initialize a newly created list of arguments. |
| 897 * | 841 * |
| 898 * @param leftParenthesis the left parenthesis | 842 * @param leftParenthesis the left parenthesis |
| 899 * @param arguments the expressions producing the values of the arguments | 843 * @param arguments the expressions producing the values of the arguments |
| 900 * @param rightParenthesis the right parenthesis | 844 * @param rightParenthesis the right parenthesis |
| 901 */ | 845 */ |
| 902 ArgumentList.full(Token leftParenthesis, List<Expression> arguments, Token rig
htParenthesis) { | 846 ArgumentList.full(Token leftParenthesis, List<Expression> arguments, Token rig
htParenthesis) { |
| 903 this._arguments = new NodeList<Expression>(this); | 847 this.arguments = new NodeList<Expression>(this); |
| 904 this._leftParenthesis = leftParenthesis; | 848 this._leftParenthesis = leftParenthesis; |
| 905 this._arguments.addAll(arguments); | 849 this.arguments.addAll(arguments); |
| 906 this._rightParenthesis = rightParenthesis; | 850 this._rightParenthesis = rightParenthesis; |
| 907 } | 851 } |
| 908 | 852 |
| 909 /** | 853 /** |
| 910 * Initialize a newly created list of arguments. | 854 * Initialize a newly created list of arguments. |
| 911 * | 855 * |
| 912 * @param leftParenthesis the left parenthesis | 856 * @param leftParenthesis the left parenthesis |
| 913 * @param arguments the expressions producing the values of the arguments | 857 * @param arguments the expressions producing the values of the arguments |
| 914 * @param rightParenthesis the right parenthesis | 858 * @param rightParenthesis the right parenthesis |
| 915 */ | 859 */ |
| 916 ArgumentList({Token leftParenthesis, List<Expression> arguments, Token rightPa
renthesis}) : this.full(leftParenthesis, arguments, rightParenthesis); | 860 ArgumentList({Token leftParenthesis, List<Expression> arguments, Token rightPa
renthesis}) : this.full(leftParenthesis, arguments, rightParenthesis); |
| 917 accept(ASTVisitor visitor) => visitor.visitArgumentList(this); | 861 accept(ASTVisitor visitor) => visitor.visitArgumentList(this); |
| 918 | |
| 919 /** | |
| 920 * Return the expressions producing the values of the arguments. Although the
language requires | |
| 921 * that positional arguments appear before named arguments, this class allows
them to be | |
| 922 * intermixed. | |
| 923 * | |
| 924 * @return the expressions producing the values of the arguments | |
| 925 */ | |
| 926 NodeList<Expression> get arguments => _arguments; | |
| 927 Token get beginToken => _leftParenthesis; | 862 Token get beginToken => _leftParenthesis; |
| 928 Token get endToken => _rightParenthesis; | 863 Token get endToken => _rightParenthesis; |
| 929 | 864 |
| 930 /** | 865 /** |
| 931 * Return the left parenthesis. | 866 * Return the left parenthesis. |
| 932 * | 867 * |
| 933 * @return the left parenthesis | 868 * @return the left parenthesis |
| 934 */ | 869 */ |
| 935 Token get leftParenthesis => _leftParenthesis; | 870 Token get leftParenthesis => _leftParenthesis; |
| 936 | 871 |
| 937 /** | 872 /** |
| 938 * Return the right parenthesis. | 873 * Return the right parenthesis. |
| 939 * | 874 * |
| 940 * @return the right parenthesis | 875 * @return the right parenthesis |
| 941 */ | 876 */ |
| 942 Token get rightParenthesis => _rightParenthesis; | 877 Token get rightParenthesis => _rightParenthesis; |
| 943 | 878 |
| 944 /** | 879 /** |
| 945 * Set the parameter elements corresponding to each of the arguments in this l
ist to the given | 880 * Set the parameter elements corresponding to each of the arguments in this l
ist to the given |
| 946 * array of parameters. The array of parameters must be the same length as the
number of | 881 * array of parameters. The array of parameters must be the same length as the
number of |
| 947 * arguments, but can contain `null` entries if a given argument does not corr
espond to a | 882 * arguments, but can contain `null` entries if a given argument does not corr
espond to a |
| 948 * formal parameter. | 883 * formal parameter. |
| 949 * | 884 * |
| 950 * @param parameters the parameter elements corresponding to the arguments | 885 * @param parameters the parameter elements corresponding to the arguments |
| 951 */ | 886 */ |
| 952 void set correspondingPropagatedParameters(List<ParameterElement> parameters)
{ | 887 void set correspondingPropagatedParameters(List<ParameterElement> parameters)
{ |
| 953 if (parameters.length != _arguments.length) { | 888 if (parameters.length != arguments.length) { |
| 954 throw new IllegalArgumentException("Expected ${_arguments.length} paramete
rs, not ${parameters.length}"); | 889 throw new IllegalArgumentException("Expected ${arguments.length} parameter
s, not ${parameters.length}"); |
| 955 } | 890 } |
| 956 _correspondingPropagatedParameters = parameters; | 891 _correspondingPropagatedParameters = parameters; |
| 957 } | 892 } |
| 958 | 893 |
| 959 /** | 894 /** |
| 960 * Set the parameter elements corresponding to each of the arguments in this l
ist to the given | 895 * Set the parameter elements corresponding to each of the arguments in this l
ist to the given |
| 961 * array of parameters. The array of parameters must be the same length as the
number of | 896 * array of parameters. The array of parameters must be the same length as the
number of |
| 962 * arguments, but can contain `null` entries if a given argument does not corr
espond to a | 897 * arguments, but can contain `null` entries if a given argument does not corr
espond to a |
| 963 * formal parameter. | 898 * formal parameter. |
| 964 * | 899 * |
| 965 * @param parameters the parameter elements corresponding to the arguments | 900 * @param parameters the parameter elements corresponding to the arguments |
| 966 */ | 901 */ |
| 967 void set correspondingStaticParameters(List<ParameterElement> parameters) { | 902 void set correspondingStaticParameters(List<ParameterElement> parameters) { |
| 968 if (parameters.length != _arguments.length) { | 903 if (parameters.length != arguments.length) { |
| 969 throw new IllegalArgumentException("Expected ${_arguments.length} paramete
rs, not ${parameters.length}"); | 904 throw new IllegalArgumentException("Expected ${arguments.length} parameter
s, not ${parameters.length}"); |
| 970 } | 905 } |
| 971 _correspondingStaticParameters = parameters; | 906 _correspondingStaticParameters = parameters; |
| 972 } | 907 } |
| 973 | 908 |
| 974 /** | 909 /** |
| 975 * Set the left parenthesis to the given token. | 910 * Set the left parenthesis to the given token. |
| 976 * | 911 * |
| 977 * @param parenthesis the left parenthesis | 912 * @param parenthesis the left parenthesis |
| 978 */ | 913 */ |
| 979 void set leftParenthesis(Token parenthesis) { | 914 void set leftParenthesis(Token parenthesis) { |
| 980 _leftParenthesis = parenthesis; | 915 _leftParenthesis = parenthesis; |
| 981 } | 916 } |
| 982 | 917 |
| 983 /** | 918 /** |
| 984 * Set the right parenthesis to the given token. | 919 * Set the right parenthesis to the given token. |
| 985 * | 920 * |
| 986 * @param parenthesis the right parenthesis | 921 * @param parenthesis the right parenthesis |
| 987 */ | 922 */ |
| 988 void set rightParenthesis(Token parenthesis) { | 923 void set rightParenthesis(Token parenthesis) { |
| 989 _rightParenthesis = parenthesis; | 924 _rightParenthesis = parenthesis; |
| 990 } | 925 } |
| 991 void visitChildren(ASTVisitor visitor) { | 926 void visitChildren(ASTVisitor visitor) { |
| 992 _arguments.accept(visitor); | 927 arguments.accept(visitor); |
| 993 } | 928 } |
| 994 | 929 |
| 995 /** | 930 /** |
| 996 * If the given expression is a child of this list, and the AST structure has
been resolved, and | 931 * If the given expression is a child of this list, and the AST structure has
been resolved, and |
| 997 * the function being invoked is known based on propagated type information, a
nd the expression | 932 * the function being invoked is known based on propagated type information, a
nd the expression |
| 998 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter | 933 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter |
| 999 * element representing the parameter to which the value of the given expressi
on will be bound. | 934 * element representing the parameter to which the value of the given expressi
on will be bound. |
| 1000 * Otherwise, return `null`. | 935 * Otherwise, return `null`. |
| 1001 * | 936 * |
| 1002 * This method is only intended to be used by [Expression#getPropagatedParamet
erElement]. | 937 * This method is only intended to be used by [Expression#getPropagatedParamet
erElement]. |
| 1003 * | 938 * |
| 1004 * @param expression the expression corresponding to the parameter to be retur
ned | 939 * @param expression the expression corresponding to the parameter to be retur
ned |
| 1005 * @return the parameter element representing the parameter to which the value
of the expression | 940 * @return the parameter element representing the parameter to which the value
of the expression |
| 1006 * will be bound | 941 * will be bound |
| 1007 */ | 942 */ |
| 1008 ParameterElement getPropagatedParameterElementFor(Expression expression) { | 943 ParameterElement getPropagatedParameterElementFor(Expression expression) { |
| 1009 if (_correspondingPropagatedParameters == null) { | 944 if (_correspondingPropagatedParameters == null) { |
| 1010 return null; | 945 return null; |
| 1011 } | 946 } |
| 1012 int index = _arguments.indexOf(expression); | 947 int index = arguments.indexOf(expression); |
| 1013 if (index < 0) { | 948 if (index < 0) { |
| 1014 return null; | 949 return null; |
| 1015 } | 950 } |
| 1016 return _correspondingPropagatedParameters[index]; | 951 return _correspondingPropagatedParameters[index]; |
| 1017 } | 952 } |
| 1018 | 953 |
| 1019 /** | 954 /** |
| 1020 * If the given expression is a child of this list, and the AST structure has
been resolved, and | 955 * If the given expression is a child of this list, and the AST structure has
been resolved, and |
| 1021 * the function being invoked is known based on static type information, and t
he expression | 956 * the function being invoked is known based on static type information, and t
he expression |
| 1022 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter | 957 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter |
| 1023 * element representing the parameter to which the value of the given expressi
on will be bound. | 958 * element representing the parameter to which the value of the given expressi
on will be bound. |
| 1024 * Otherwise, return `null`. | 959 * Otherwise, return `null`. |
| 1025 * | 960 * |
| 1026 * This method is only intended to be used by [Expression#getStaticParameterEl
ement]. | 961 * This method is only intended to be used by [Expression#getStaticParameterEl
ement]. |
| 1027 * | 962 * |
| 1028 * @param expression the expression corresponding to the parameter to be retur
ned | 963 * @param expression the expression corresponding to the parameter to be retur
ned |
| 1029 * @return the parameter element representing the parameter to which the value
of the expression | 964 * @return the parameter element representing the parameter to which the value
of the expression |
| 1030 * will be bound | 965 * will be bound |
| 1031 */ | 966 */ |
| 1032 ParameterElement getStaticParameterElementFor(Expression expression) { | 967 ParameterElement getStaticParameterElementFor(Expression expression) { |
| 1033 if (_correspondingStaticParameters == null) { | 968 if (_correspondingStaticParameters == null) { |
| 1034 return null; | 969 return null; |
| 1035 } | 970 } |
| 1036 int index = _arguments.indexOf(expression); | 971 int index = arguments.indexOf(expression); |
| 1037 if (index < 0) { | 972 if (index < 0) { |
| 1038 return null; | 973 return null; |
| 1039 } | 974 } |
| 1040 return _correspondingStaticParameters[index]; | 975 return _correspondingStaticParameters[index]; |
| 1041 } | 976 } |
| 1042 } | 977 } |
| 1043 /** | 978 /** |
| 1044 * Instances of the class `AsExpression` represent an 'as' expression. | 979 * Instances of the class `AsExpression` represent an 'as' expression. |
| 1045 * | 980 * |
| 1046 * <pre> | 981 * <pre> |
| 1047 * asExpression ::= | 982 * asExpression ::= |
| 1048 * [Expression] 'as' [TypeName] | 983 * [Expression] 'as' [TypeName] |
| 1049 * </pre> | 984 * </pre> |
| 1050 * | 985 * |
| 1051 * @coverage dart.engine.ast | 986 * @coverage dart.engine.ast |
| 1052 */ | 987 */ |
| 1053 class AsExpression extends Expression { | 988 class AsExpression extends Expression { |
| 1054 | 989 |
| 1055 /** | 990 /** |
| 1056 * The expression used to compute the value being cast. | 991 * The expression used to compute the value being cast. |
| 1057 */ | 992 */ |
| 1058 Expression _expression; | 993 Expression _expression; |
| 1059 | 994 |
| 1060 /** | 995 /** |
| 1061 * The as operator. | 996 * The as operator. |
| 1062 */ | 997 */ |
| 1063 Token _asOperator; | 998 Token asOperator; |
| 1064 | 999 |
| 1065 /** | 1000 /** |
| 1066 * The name of the type being cast to. | 1001 * The name of the type being cast to. |
| 1067 */ | 1002 */ |
| 1068 TypeName _type; | 1003 TypeName _type; |
| 1069 | 1004 |
| 1070 /** | 1005 /** |
| 1071 * Initialize a newly created as expression. | 1006 * Initialize a newly created as expression. |
| 1072 * | 1007 * |
| 1073 * @param expression the expression used to compute the value being cast | 1008 * @param expression the expression used to compute the value being cast |
| 1074 * @param isOperator the is operator | 1009 * @param isOperator the is operator |
| 1075 * @param type the name of the type being cast to | 1010 * @param type the name of the type being cast to |
| 1076 */ | 1011 */ |
| 1077 AsExpression.full(Expression expression, Token isOperator, TypeName type) { | 1012 AsExpression.full(Expression expression, Token isOperator, TypeName type) { |
| 1078 this._expression = becomeParentOf(expression); | 1013 this._expression = becomeParentOf(expression); |
| 1079 this._asOperator = isOperator; | 1014 this.asOperator = isOperator; |
| 1080 this._type = becomeParentOf(type); | 1015 this._type = becomeParentOf(type); |
| 1081 } | 1016 } |
| 1082 | 1017 |
| 1083 /** | 1018 /** |
| 1084 * Initialize a newly created as expression. | 1019 * Initialize a newly created as expression. |
| 1085 * | 1020 * |
| 1086 * @param expression the expression used to compute the value being cast | 1021 * @param expression the expression used to compute the value being cast |
| 1087 * @param isOperator the is operator | 1022 * @param isOperator the is operator |
| 1088 * @param type the name of the type being cast to | 1023 * @param type the name of the type being cast to |
| 1089 */ | 1024 */ |
| 1090 AsExpression({Expression expression, Token isOperator, TypeName type}) : this.
full(expression, isOperator, type); | 1025 AsExpression({Expression expression, Token isOperator, TypeName type}) : this.
full(expression, isOperator, type); |
| 1091 accept(ASTVisitor visitor) => visitor.visitAsExpression(this); | 1026 accept(ASTVisitor visitor) => visitor.visitAsExpression(this); |
| 1092 | |
| 1093 /** | |
| 1094 * Return the as operator being applied. | |
| 1095 * | |
| 1096 * @return the as operator being applied | |
| 1097 */ | |
| 1098 Token get asOperator => _asOperator; | |
| 1099 Token get beginToken => _expression.beginToken; | 1027 Token get beginToken => _expression.beginToken; |
| 1100 Token get endToken => _type.endToken; | 1028 Token get endToken => _type.endToken; |
| 1101 | 1029 |
| 1102 /** | 1030 /** |
| 1103 * Return the expression used to compute the value being cast. | 1031 * Return the expression used to compute the value being cast. |
| 1104 * | 1032 * |
| 1105 * @return the expression used to compute the value being cast | 1033 * @return the expression used to compute the value being cast |
| 1106 */ | 1034 */ |
| 1107 Expression get expression => _expression; | 1035 Expression get expression => _expression; |
| 1108 | 1036 |
| 1109 /** | 1037 /** |
| 1110 * Return the name of the type being cast to. | 1038 * Return the name of the type being cast to. |
| 1111 * | 1039 * |
| 1112 * @return the name of the type being cast to | 1040 * @return the name of the type being cast to |
| 1113 */ | 1041 */ |
| 1114 TypeName get type => _type; | 1042 TypeName get type => _type; |
| 1115 | 1043 |
| 1116 /** | 1044 /** |
| 1117 * Set the is operator being applied to the given operator. | |
| 1118 * | |
| 1119 * @param asOperator the is operator being applied | |
| 1120 */ | |
| 1121 void set asOperator(Token asOperator2) { | |
| 1122 this._asOperator = asOperator2; | |
| 1123 } | |
| 1124 | |
| 1125 /** | |
| 1126 * Set the expression used to compute the value being cast to the given expres
sion. | 1045 * Set the expression used to compute the value being cast to the given expres
sion. |
| 1127 * | 1046 * |
| 1128 * @param expression the expression used to compute the value being cast | 1047 * @param expression the expression used to compute the value being cast |
| 1129 */ | 1048 */ |
| 1130 void set expression(Expression expression2) { | 1049 void set expression(Expression expression2) { |
| 1131 this._expression = becomeParentOf(expression2); | 1050 this._expression = becomeParentOf(expression2); |
| 1132 } | 1051 } |
| 1133 | 1052 |
| 1134 /** | 1053 /** |
| 1135 * Set the name of the type being cast to to the given name. | 1054 * Set the name of the type being cast to to the given name. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1152 * 'assert' '(' [Expression] ')' ';' | 1071 * 'assert' '(' [Expression] ')' ';' |
| 1153 * </pre> | 1072 * </pre> |
| 1154 * | 1073 * |
| 1155 * @coverage dart.engine.ast | 1074 * @coverage dart.engine.ast |
| 1156 */ | 1075 */ |
| 1157 class AssertStatement extends Statement { | 1076 class AssertStatement extends Statement { |
| 1158 | 1077 |
| 1159 /** | 1078 /** |
| 1160 * The token representing the 'assert' keyword. | 1079 * The token representing the 'assert' keyword. |
| 1161 */ | 1080 */ |
| 1162 Token _keyword; | 1081 Token keyword; |
| 1163 | 1082 |
| 1164 /** | 1083 /** |
| 1165 * The left parenthesis. | 1084 * The left parenthesis. |
| 1166 */ | 1085 */ |
| 1167 Token _leftParenthesis; | 1086 Token leftParenthesis; |
| 1168 | 1087 |
| 1169 /** | 1088 /** |
| 1170 * The condition that is being asserted to be `true`. | 1089 * The condition that is being asserted to be `true`. |
| 1171 */ | 1090 */ |
| 1172 Expression _condition; | 1091 Expression _condition; |
| 1173 | 1092 |
| 1174 /** | 1093 /** |
| 1175 * The right parenthesis. | 1094 * The right parenthesis. |
| 1176 */ | 1095 */ |
| 1177 Token _rightParenthesis; | 1096 Token rightParenthesis; |
| 1178 | 1097 |
| 1179 /** | 1098 /** |
| 1180 * The semicolon terminating the statement. | 1099 * The semicolon terminating the statement. |
| 1181 */ | 1100 */ |
| 1182 Token _semicolon; | 1101 Token semicolon; |
| 1183 | 1102 |
| 1184 /** | 1103 /** |
| 1185 * Initialize a newly created assert statement. | 1104 * Initialize a newly created assert statement. |
| 1186 * | 1105 * |
| 1187 * @param keyword the token representing the 'assert' keyword | 1106 * @param keyword the token representing the 'assert' keyword |
| 1188 * @param leftParenthesis the left parenthesis | 1107 * @param leftParenthesis the left parenthesis |
| 1189 * @param condition the condition that is being asserted to be `true` | 1108 * @param condition the condition that is being asserted to be `true` |
| 1190 * @param rightParenthesis the right parenthesis | 1109 * @param rightParenthesis the right parenthesis |
| 1191 * @param semicolon the semicolon terminating the statement | 1110 * @param semicolon the semicolon terminating the statement |
| 1192 */ | 1111 */ |
| 1193 AssertStatement.full(Token keyword, Token leftParenthesis, Expression conditio
n, Token rightParenthesis, Token semicolon) { | 1112 AssertStatement.full(Token keyword, Token leftParenthesis, Expression conditio
n, Token rightParenthesis, Token semicolon) { |
| 1194 this._keyword = keyword; | 1113 this.keyword = keyword; |
| 1195 this._leftParenthesis = leftParenthesis; | 1114 this.leftParenthesis = leftParenthesis; |
| 1196 this._condition = becomeParentOf(condition); | 1115 this._condition = becomeParentOf(condition); |
| 1197 this._rightParenthesis = rightParenthesis; | 1116 this.rightParenthesis = rightParenthesis; |
| 1198 this._semicolon = semicolon; | 1117 this.semicolon = semicolon; |
| 1199 } | 1118 } |
| 1200 | 1119 |
| 1201 /** | 1120 /** |
| 1202 * Initialize a newly created assert statement. | 1121 * Initialize a newly created assert statement. |
| 1203 * | 1122 * |
| 1204 * @param keyword the token representing the 'assert' keyword | 1123 * @param keyword the token representing the 'assert' keyword |
| 1205 * @param leftParenthesis the left parenthesis | 1124 * @param leftParenthesis the left parenthesis |
| 1206 * @param condition the condition that is being asserted to be `true` | 1125 * @param condition the condition that is being asserted to be `true` |
| 1207 * @param rightParenthesis the right parenthesis | 1126 * @param rightParenthesis the right parenthesis |
| 1208 * @param semicolon the semicolon terminating the statement | 1127 * @param semicolon the semicolon terminating the statement |
| 1209 */ | 1128 */ |
| 1210 AssertStatement({Token keyword, Token leftParenthesis, Expression condition, T
oken rightParenthesis, Token semicolon}) : this.full(keyword, leftParenthesis, c
ondition, rightParenthesis, semicolon); | 1129 AssertStatement({Token keyword, Token leftParenthesis, Expression condition, T
oken rightParenthesis, Token semicolon}) : this.full(keyword, leftParenthesis, c
ondition, rightParenthesis, semicolon); |
| 1211 accept(ASTVisitor visitor) => visitor.visitAssertStatement(this); | 1130 accept(ASTVisitor visitor) => visitor.visitAssertStatement(this); |
| 1212 Token get beginToken => _keyword; | 1131 Token get beginToken => keyword; |
| 1213 | 1132 |
| 1214 /** | 1133 /** |
| 1215 * Return the condition that is being asserted to be `true`. | 1134 * Return the condition that is being asserted to be `true`. |
| 1216 * | 1135 * |
| 1217 * @return the condition that is being asserted to be `true` | 1136 * @return the condition that is being asserted to be `true` |
| 1218 */ | 1137 */ |
| 1219 Expression get condition => _condition; | 1138 Expression get condition => _condition; |
| 1220 Token get endToken => _semicolon; | 1139 Token get endToken => semicolon; |
| 1221 | |
| 1222 /** | |
| 1223 * Return the token representing the 'assert' keyword. | |
| 1224 * | |
| 1225 * @return the token representing the 'assert' keyword | |
| 1226 */ | |
| 1227 Token get keyword => _keyword; | |
| 1228 | |
| 1229 /** | |
| 1230 * Return the left parenthesis. | |
| 1231 * | |
| 1232 * @return the left parenthesis | |
| 1233 */ | |
| 1234 Token get leftParenthesis => _leftParenthesis; | |
| 1235 | |
| 1236 /** | |
| 1237 * Return the right parenthesis. | |
| 1238 * | |
| 1239 * @return the right parenthesis | |
| 1240 */ | |
| 1241 Token get rightParenthesis => _rightParenthesis; | |
| 1242 | |
| 1243 /** | |
| 1244 * Return the semicolon terminating the statement. | |
| 1245 * | |
| 1246 * @return the semicolon terminating the statement | |
| 1247 */ | |
| 1248 Token get semicolon => _semicolon; | |
| 1249 | 1140 |
| 1250 /** | 1141 /** |
| 1251 * Set the condition that is being asserted to be `true` to the given expressi
on. | 1142 * Set the condition that is being asserted to be `true` to the given expressi
on. |
| 1252 * | 1143 * |
| 1253 * @param the condition that is being asserted to be `true` | 1144 * @param the condition that is being asserted to be `true` |
| 1254 */ | 1145 */ |
| 1255 void set condition(Expression condition2) { | 1146 void set condition(Expression condition2) { |
| 1256 this._condition = becomeParentOf(condition2); | 1147 this._condition = becomeParentOf(condition2); |
| 1257 } | 1148 } |
| 1258 | |
| 1259 /** | |
| 1260 * Set the token representing the 'assert' keyword to the given token. | |
| 1261 * | |
| 1262 * @param keyword the token representing the 'assert' keyword | |
| 1263 */ | |
| 1264 void set keyword(Token keyword2) { | |
| 1265 this._keyword = keyword2; | |
| 1266 } | |
| 1267 | |
| 1268 /** | |
| 1269 * Set the left parenthesis to the given token. | |
| 1270 * | |
| 1271 * @param the left parenthesis | |
| 1272 */ | |
| 1273 void set leftParenthesis(Token leftParenthesis2) { | |
| 1274 this._leftParenthesis = leftParenthesis2; | |
| 1275 } | |
| 1276 | |
| 1277 /** | |
| 1278 * Set the right parenthesis to the given token. | |
| 1279 * | |
| 1280 * @param rightParenthesis the right parenthesis | |
| 1281 */ | |
| 1282 void set rightParenthesis(Token rightParenthesis2) { | |
| 1283 this._rightParenthesis = rightParenthesis2; | |
| 1284 } | |
| 1285 | |
| 1286 /** | |
| 1287 * Set the semicolon terminating the statement to the given token. | |
| 1288 * | |
| 1289 * @param semicolon the semicolon terminating the statement | |
| 1290 */ | |
| 1291 void set semicolon(Token semicolon2) { | |
| 1292 this._semicolon = semicolon2; | |
| 1293 } | |
| 1294 void visitChildren(ASTVisitor visitor) { | 1149 void visitChildren(ASTVisitor visitor) { |
| 1295 safelyVisitChild(_condition, visitor); | 1150 safelyVisitChild(_condition, visitor); |
| 1296 } | 1151 } |
| 1297 } | 1152 } |
| 1298 /** | 1153 /** |
| 1299 * Instances of the class `AssignmentExpression` represent an assignment express
ion. | 1154 * Instances of the class `AssignmentExpression` represent an assignment express
ion. |
| 1300 * | 1155 * |
| 1301 * <pre> | 1156 * <pre> |
| 1302 * assignmentExpression ::= | 1157 * assignmentExpression ::= |
| 1303 * [Expression] [Token] [Expression] | 1158 * [Expression] [Token] [Expression] |
| 1304 * </pre> | 1159 * </pre> |
| 1305 * | 1160 * |
| 1306 * @coverage dart.engine.ast | 1161 * @coverage dart.engine.ast |
| 1307 */ | 1162 */ |
| 1308 class AssignmentExpression extends Expression { | 1163 class AssignmentExpression extends Expression { |
| 1309 | 1164 |
| 1310 /** | 1165 /** |
| 1311 * The expression used to compute the left hand side. | 1166 * The expression used to compute the left hand side. |
| 1312 */ | 1167 */ |
| 1313 Expression _leftHandSide; | 1168 Expression _leftHandSide; |
| 1314 | 1169 |
| 1315 /** | 1170 /** |
| 1316 * The assignment operator being applied. | 1171 * The assignment operator being applied. |
| 1317 */ | 1172 */ |
| 1318 Token _operator; | 1173 Token operator; |
| 1319 | 1174 |
| 1320 /** | 1175 /** |
| 1321 * The expression used to compute the right hand side. | 1176 * The expression used to compute the right hand side. |
| 1322 */ | 1177 */ |
| 1323 Expression _rightHandSide; | 1178 Expression _rightHandSide; |
| 1324 | 1179 |
| 1325 /** | 1180 /** |
| 1326 * The element associated with the operator based on the static type of the le
ft-hand-side, or | 1181 * The element associated with the operator based on the static type of the le
ft-hand-side, or |
| 1327 * `null` if the AST structure has not been resolved, if the operator is not a
compound | 1182 * `null` if the AST structure has not been resolved, if the operator is not a
compound |
| 1328 * operator, or if the operator could not be resolved. | 1183 * operator, or if the operator could not be resolved. |
| 1329 */ | 1184 */ |
| 1330 MethodElement _staticElement; | 1185 MethodElement _staticElement; |
| 1331 | 1186 |
| 1332 /** | 1187 /** |
| 1333 * The element associated with the operator based on the propagated type of th
e left-hand-side, or | 1188 * The element associated with the operator based on the propagated type of th
e left-hand-side, or |
| 1334 * `null` if the AST structure has not been resolved, if the operator is not a
compound | 1189 * `null` if the AST structure has not been resolved, if the operator is not a
compound |
| 1335 * operator, or if the operator could not be resolved. | 1190 * operator, or if the operator could not be resolved. |
| 1336 */ | 1191 */ |
| 1337 MethodElement _propagatedElement; | 1192 MethodElement _propagatedElement; |
| 1338 | 1193 |
| 1339 /** | 1194 /** |
| 1340 * Initialize a newly created assignment expression. | 1195 * Initialize a newly created assignment expression. |
| 1341 * | 1196 * |
| 1342 * @param leftHandSide the expression used to compute the left hand side | 1197 * @param leftHandSide the expression used to compute the left hand side |
| 1343 * @param operator the assignment operator being applied | 1198 * @param operator the assignment operator being applied |
| 1344 * @param rightHandSide the expression used to compute the right hand side | 1199 * @param rightHandSide the expression used to compute the right hand side |
| 1345 */ | 1200 */ |
| 1346 AssignmentExpression.full(Expression leftHandSide, Token operator, Expression
rightHandSide) { | 1201 AssignmentExpression.full(Expression leftHandSide, Token operator, Expression
rightHandSide) { |
| 1347 this._leftHandSide = becomeParentOf(leftHandSide); | 1202 this._leftHandSide = becomeParentOf(leftHandSide); |
| 1348 this._operator = operator; | 1203 this.operator = operator; |
| 1349 this._rightHandSide = becomeParentOf(rightHandSide); | 1204 this._rightHandSide = becomeParentOf(rightHandSide); |
| 1350 } | 1205 } |
| 1351 | 1206 |
| 1352 /** | 1207 /** |
| 1353 * Initialize a newly created assignment expression. | 1208 * Initialize a newly created assignment expression. |
| 1354 * | 1209 * |
| 1355 * @param leftHandSide the expression used to compute the left hand side | 1210 * @param leftHandSide the expression used to compute the left hand side |
| 1356 * @param operator the assignment operator being applied | 1211 * @param operator the assignment operator being applied |
| 1357 * @param rightHandSide the expression used to compute the right hand side | 1212 * @param rightHandSide the expression used to compute the right hand side |
| 1358 */ | 1213 */ |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1378 Token get endToken => _rightHandSide.endToken; | 1233 Token get endToken => _rightHandSide.endToken; |
| 1379 | 1234 |
| 1380 /** | 1235 /** |
| 1381 * Set the expression used to compute the left hand side to the given expressi
on. | 1236 * Set the expression used to compute the left hand side to the given expressi
on. |
| 1382 * | 1237 * |
| 1383 * @return the expression used to compute the left hand side | 1238 * @return the expression used to compute the left hand side |
| 1384 */ | 1239 */ |
| 1385 Expression get leftHandSide => _leftHandSide; | 1240 Expression get leftHandSide => _leftHandSide; |
| 1386 | 1241 |
| 1387 /** | 1242 /** |
| 1388 * Return the assignment operator being applied. | |
| 1389 * | |
| 1390 * @return the assignment operator being applied | |
| 1391 */ | |
| 1392 Token get operator => _operator; | |
| 1393 | |
| 1394 /** | |
| 1395 * Return the element associated with the operator based on the propagated typ
e of the | 1243 * Return the element associated with the operator based on the propagated typ
e of the |
| 1396 * left-hand-side, or `null` if the AST structure has not been resolved, if th
e operator is | 1244 * left-hand-side, or `null` if the AST structure has not been resolved, if th
e operator is |
| 1397 * not a compound operator, or if the operator could not be resolved. One exam
ple of the latter | 1245 * not a compound operator, or if the operator could not be resolved. One exam
ple of the latter |
| 1398 * case is an operator that is not defined for the type of the left-hand opera
nd. | 1246 * case is an operator that is not defined for the type of the left-hand opera
nd. |
| 1399 * | 1247 * |
| 1400 * @return the element associated with the operator | 1248 * @return the element associated with the operator |
| 1401 */ | 1249 */ |
| 1402 MethodElement get propagatedElement => _propagatedElement; | 1250 MethodElement get propagatedElement => _propagatedElement; |
| 1403 | 1251 |
| 1404 /** | 1252 /** |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1421 /** | 1269 /** |
| 1422 * Return the expression used to compute the left hand side. | 1270 * Return the expression used to compute the left hand side. |
| 1423 * | 1271 * |
| 1424 * @param expression the expression used to compute the left hand side | 1272 * @param expression the expression used to compute the left hand side |
| 1425 */ | 1273 */ |
| 1426 void set leftHandSide(Expression expression) { | 1274 void set leftHandSide(Expression expression) { |
| 1427 _leftHandSide = becomeParentOf(expression); | 1275 _leftHandSide = becomeParentOf(expression); |
| 1428 } | 1276 } |
| 1429 | 1277 |
| 1430 /** | 1278 /** |
| 1431 * Set the assignment operator being applied to the given operator. | |
| 1432 * | |
| 1433 * @param operator the assignment operator being applied | |
| 1434 */ | |
| 1435 void set operator(Token operator2) { | |
| 1436 this._operator = operator2; | |
| 1437 } | |
| 1438 | |
| 1439 /** | |
| 1440 * Set the element associated with the operator based on the propagated type o
f the left-hand-side | 1279 * Set the element associated with the operator based on the propagated type o
f the left-hand-side |
| 1441 * to the given element. | 1280 * to the given element. |
| 1442 * | 1281 * |
| 1443 * @param element the element to be associated with the operator | 1282 * @param element the element to be associated with the operator |
| 1444 */ | 1283 */ |
| 1445 void set propagatedElement(MethodElement element) { | 1284 void set propagatedElement(MethodElement element) { |
| 1446 _propagatedElement = element; | 1285 _propagatedElement = element; |
| 1447 } | 1286 } |
| 1448 | 1287 |
| 1449 /** | 1288 /** |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1524 class BinaryExpression extends Expression { | 1363 class BinaryExpression extends Expression { |
| 1525 | 1364 |
| 1526 /** | 1365 /** |
| 1527 * The expression used to compute the left operand. | 1366 * The expression used to compute the left operand. |
| 1528 */ | 1367 */ |
| 1529 Expression _leftOperand; | 1368 Expression _leftOperand; |
| 1530 | 1369 |
| 1531 /** | 1370 /** |
| 1532 * The binary operator being applied. | 1371 * The binary operator being applied. |
| 1533 */ | 1372 */ |
| 1534 Token _operator; | 1373 Token operator; |
| 1535 | 1374 |
| 1536 /** | 1375 /** |
| 1537 * The expression used to compute the right operand. | 1376 * The expression used to compute the right operand. |
| 1538 */ | 1377 */ |
| 1539 Expression _rightOperand; | 1378 Expression _rightOperand; |
| 1540 | 1379 |
| 1541 /** | 1380 /** |
| 1542 * The element associated with the operator based on the static type of the le
ft operand, or | 1381 * The element associated with the operator based on the static type of the le
ft operand, or |
| 1543 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 1382 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 1544 * or if the operator could not be resolved. | 1383 * or if the operator could not be resolved. |
| 1545 */ | 1384 */ |
| 1546 MethodElement _staticElement; | 1385 MethodElement _staticElement; |
| 1547 | 1386 |
| 1548 /** | 1387 /** |
| 1549 * The element associated with the operator based on the propagated type of th
e left operand, or | 1388 * The element associated with the operator based on the propagated type of th
e left operand, or |
| 1550 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 1389 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 1551 * or if the operator could not be resolved. | 1390 * or if the operator could not be resolved. |
| 1552 */ | 1391 */ |
| 1553 MethodElement _propagatedElement; | 1392 MethodElement _propagatedElement; |
| 1554 | 1393 |
| 1555 /** | 1394 /** |
| 1556 * Initialize a newly created binary expression. | 1395 * Initialize a newly created binary expression. |
| 1557 * | 1396 * |
| 1558 * @param leftOperand the expression used to compute the left operand | 1397 * @param leftOperand the expression used to compute the left operand |
| 1559 * @param operator the binary operator being applied | 1398 * @param operator the binary operator being applied |
| 1560 * @param rightOperand the expression used to compute the right operand | 1399 * @param rightOperand the expression used to compute the right operand |
| 1561 */ | 1400 */ |
| 1562 BinaryExpression.full(Expression leftOperand, Token operator, Expression right
Operand) { | 1401 BinaryExpression.full(Expression leftOperand, Token operator, Expression right
Operand) { |
| 1563 this._leftOperand = becomeParentOf(leftOperand); | 1402 this._leftOperand = becomeParentOf(leftOperand); |
| 1564 this._operator = operator; | 1403 this.operator = operator; |
| 1565 this._rightOperand = becomeParentOf(rightOperand); | 1404 this._rightOperand = becomeParentOf(rightOperand); |
| 1566 } | 1405 } |
| 1567 | 1406 |
| 1568 /** | 1407 /** |
| 1569 * Initialize a newly created binary expression. | 1408 * Initialize a newly created binary expression. |
| 1570 * | 1409 * |
| 1571 * @param leftOperand the expression used to compute the left operand | 1410 * @param leftOperand the expression used to compute the left operand |
| 1572 * @param operator the binary operator being applied | 1411 * @param operator the binary operator being applied |
| 1573 * @param rightOperand the expression used to compute the right operand | 1412 * @param rightOperand the expression used to compute the right operand |
| 1574 */ | 1413 */ |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1594 Token get endToken => _rightOperand.endToken; | 1433 Token get endToken => _rightOperand.endToken; |
| 1595 | 1434 |
| 1596 /** | 1435 /** |
| 1597 * Return the expression used to compute the left operand. | 1436 * Return the expression used to compute the left operand. |
| 1598 * | 1437 * |
| 1599 * @return the expression used to compute the left operand | 1438 * @return the expression used to compute the left operand |
| 1600 */ | 1439 */ |
| 1601 Expression get leftOperand => _leftOperand; | 1440 Expression get leftOperand => _leftOperand; |
| 1602 | 1441 |
| 1603 /** | 1442 /** |
| 1604 * Return the binary operator being applied. | |
| 1605 * | |
| 1606 * @return the binary operator being applied | |
| 1607 */ | |
| 1608 Token get operator => _operator; | |
| 1609 | |
| 1610 /** | |
| 1611 * Return the element associated with the operator based on the propagated typ
e of the left | 1443 * Return the element associated with the operator based on the propagated typ
e of the left |
| 1612 * operand, or `null` if the AST structure has not been resolved, if the opera
tor is not | 1444 * operand, or `null` if the AST structure has not been resolved, if the opera
tor is not |
| 1613 * user definable, or if the operator could not be resolved. One example of th
e latter case is an | 1445 * user definable, or if the operator could not be resolved. One example of th
e latter case is an |
| 1614 * operator that is not defined for the type of the left-hand operand. | 1446 * operator that is not defined for the type of the left-hand operand. |
| 1615 * | 1447 * |
| 1616 * @return the element associated with the operator | 1448 * @return the element associated with the operator |
| 1617 */ | 1449 */ |
| 1618 MethodElement get propagatedElement => _propagatedElement; | 1450 MethodElement get propagatedElement => _propagatedElement; |
| 1619 | 1451 |
| 1620 /** | 1452 /** |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1637 /** | 1469 /** |
| 1638 * Set the expression used to compute the left operand to the given expression
. | 1470 * Set the expression used to compute the left operand to the given expression
. |
| 1639 * | 1471 * |
| 1640 * @param expression the expression used to compute the left operand | 1472 * @param expression the expression used to compute the left operand |
| 1641 */ | 1473 */ |
| 1642 void set leftOperand(Expression expression) { | 1474 void set leftOperand(Expression expression) { |
| 1643 _leftOperand = becomeParentOf(expression); | 1475 _leftOperand = becomeParentOf(expression); |
| 1644 } | 1476 } |
| 1645 | 1477 |
| 1646 /** | 1478 /** |
| 1647 * Set the binary operator being applied to the given operator. | |
| 1648 * | |
| 1649 * @return the binary operator being applied | |
| 1650 */ | |
| 1651 void set operator(Token operator2) { | |
| 1652 this._operator = operator2; | |
| 1653 } | |
| 1654 | |
| 1655 /** | |
| 1656 * Set the element associated with the operator based on the propagated type o
f the left operand | 1479 * Set the element associated with the operator based on the propagated type o
f the left operand |
| 1657 * to the given element. | 1480 * to the given element. |
| 1658 * | 1481 * |
| 1659 * @param element the element to be associated with the operator | 1482 * @param element the element to be associated with the operator |
| 1660 */ | 1483 */ |
| 1661 void set propagatedElement(MethodElement element) { | 1484 void set propagatedElement(MethodElement element) { |
| 1662 _propagatedElement = element; | 1485 _propagatedElement = element; |
| 1663 } | 1486 } |
| 1664 | 1487 |
| 1665 /** | 1488 /** |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1735 * '{' statement* '}' | 1558 * '{' statement* '}' |
| 1736 * </pre> | 1559 * </pre> |
| 1737 * | 1560 * |
| 1738 * @coverage dart.engine.ast | 1561 * @coverage dart.engine.ast |
| 1739 */ | 1562 */ |
| 1740 class Block extends Statement { | 1563 class Block extends Statement { |
| 1741 | 1564 |
| 1742 /** | 1565 /** |
| 1743 * The left curly bracket. | 1566 * The left curly bracket. |
| 1744 */ | 1567 */ |
| 1745 Token _leftBracket; | 1568 Token leftBracket; |
| 1746 | 1569 |
| 1747 /** | 1570 /** |
| 1748 * The statements contained in the block. | 1571 * The statements contained in the block. |
| 1749 */ | 1572 */ |
| 1750 NodeList<Statement> _statements; | 1573 NodeList<Statement> statements; |
| 1751 | 1574 |
| 1752 /** | 1575 /** |
| 1753 * The right curly bracket. | 1576 * The right curly bracket. |
| 1754 */ | 1577 */ |
| 1755 Token _rightBracket; | 1578 Token rightBracket; |
| 1756 | 1579 |
| 1757 /** | 1580 /** |
| 1758 * Initialize a newly created block of code. | 1581 * Initialize a newly created block of code. |
| 1759 * | 1582 * |
| 1760 * @param leftBracket the left curly bracket | 1583 * @param leftBracket the left curly bracket |
| 1761 * @param statements the statements contained in the block | 1584 * @param statements the statements contained in the block |
| 1762 * @param rightBracket the right curly bracket | 1585 * @param rightBracket the right curly bracket |
| 1763 */ | 1586 */ |
| 1764 Block.full(Token leftBracket, List<Statement> statements, Token rightBracket)
{ | 1587 Block.full(Token leftBracket, List<Statement> statements, Token rightBracket)
{ |
| 1765 this._statements = new NodeList<Statement>(this); | 1588 this.statements = new NodeList<Statement>(this); |
| 1766 this._leftBracket = leftBracket; | 1589 this.leftBracket = leftBracket; |
| 1767 this._statements.addAll(statements); | 1590 this.statements.addAll(statements); |
| 1768 this._rightBracket = rightBracket; | 1591 this.rightBracket = rightBracket; |
| 1769 } | 1592 } |
| 1770 | 1593 |
| 1771 /** | 1594 /** |
| 1772 * Initialize a newly created block of code. | 1595 * Initialize a newly created block of code. |
| 1773 * | 1596 * |
| 1774 * @param leftBracket the left curly bracket | 1597 * @param leftBracket the left curly bracket |
| 1775 * @param statements the statements contained in the block | 1598 * @param statements the statements contained in the block |
| 1776 * @param rightBracket the right curly bracket | 1599 * @param rightBracket the right curly bracket |
| 1777 */ | 1600 */ |
| 1778 Block({Token leftBracket, List<Statement> statements, Token rightBracket}) : t
his.full(leftBracket, statements, rightBracket); | 1601 Block({Token leftBracket, List<Statement> statements, Token rightBracket}) : t
his.full(leftBracket, statements, rightBracket); |
| 1779 accept(ASTVisitor visitor) => visitor.visitBlock(this); | 1602 accept(ASTVisitor visitor) => visitor.visitBlock(this); |
| 1780 Token get beginToken => _leftBracket; | 1603 Token get beginToken => leftBracket; |
| 1781 Token get endToken => _rightBracket; | 1604 Token get endToken => rightBracket; |
| 1782 | |
| 1783 /** | |
| 1784 * Return the left curly bracket. | |
| 1785 * | |
| 1786 * @return the left curly bracket | |
| 1787 */ | |
| 1788 Token get leftBracket => _leftBracket; | |
| 1789 | |
| 1790 /** | |
| 1791 * Return the right curly bracket. | |
| 1792 * | |
| 1793 * @return the right curly bracket | |
| 1794 */ | |
| 1795 Token get rightBracket => _rightBracket; | |
| 1796 | |
| 1797 /** | |
| 1798 * Return the statements contained in the block. | |
| 1799 * | |
| 1800 * @return the statements contained in the block | |
| 1801 */ | |
| 1802 NodeList<Statement> get statements => _statements; | |
| 1803 | |
| 1804 /** | |
| 1805 * Set the left curly bracket to the given token. | |
| 1806 * | |
| 1807 * @param leftBracket the left curly bracket | |
| 1808 */ | |
| 1809 void set leftBracket(Token leftBracket2) { | |
| 1810 this._leftBracket = leftBracket2; | |
| 1811 } | |
| 1812 | |
| 1813 /** | |
| 1814 * Set the right curly bracket to the given token. | |
| 1815 * | |
| 1816 * @param rightBracket the right curly bracket | |
| 1817 */ | |
| 1818 void set rightBracket(Token rightBracket2) { | |
| 1819 this._rightBracket = rightBracket2; | |
| 1820 } | |
| 1821 void visitChildren(ASTVisitor visitor) { | 1605 void visitChildren(ASTVisitor visitor) { |
| 1822 _statements.accept(visitor); | 1606 statements.accept(visitor); |
| 1823 } | 1607 } |
| 1824 } | 1608 } |
| 1825 /** | 1609 /** |
| 1826 * Instances of the class `BlockFunctionBody` represent a function body that con
sists of a | 1610 * Instances of the class `BlockFunctionBody` represent a function body that con
sists of a |
| 1827 * block of statements. | 1611 * block of statements. |
| 1828 * | 1612 * |
| 1829 * <pre> | 1613 * <pre> |
| 1830 * blockFunctionBody ::= | 1614 * blockFunctionBody ::= |
| 1831 * [Block] | 1615 * [Block] |
| 1832 * </pre> | 1616 * </pre> |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1886 * 'false' | 'true' | 1670 * 'false' | 'true' |
| 1887 * </pre> | 1671 * </pre> |
| 1888 * | 1672 * |
| 1889 * @coverage dart.engine.ast | 1673 * @coverage dart.engine.ast |
| 1890 */ | 1674 */ |
| 1891 class BooleanLiteral extends Literal { | 1675 class BooleanLiteral extends Literal { |
| 1892 | 1676 |
| 1893 /** | 1677 /** |
| 1894 * The token representing the literal. | 1678 * The token representing the literal. |
| 1895 */ | 1679 */ |
| 1896 Token _literal; | 1680 Token literal; |
| 1897 | 1681 |
| 1898 /** | 1682 /** |
| 1899 * The value of the literal. | 1683 * The value of the literal. |
| 1900 */ | 1684 */ |
| 1901 bool _value = false; | 1685 bool value = false; |
| 1902 | 1686 |
| 1903 /** | 1687 /** |
| 1904 * Initialize a newly created boolean literal. | 1688 * Initialize a newly created boolean literal. |
| 1905 * | 1689 * |
| 1906 * @param literal the token representing the literal | 1690 * @param literal the token representing the literal |
| 1907 * @param value the value of the literal | 1691 * @param value the value of the literal |
| 1908 */ | 1692 */ |
| 1909 BooleanLiteral.full(Token literal, bool value) { | 1693 BooleanLiteral.full(Token literal, bool value) { |
| 1910 this._literal = literal; | 1694 this.literal = literal; |
| 1911 this._value = value; | 1695 this.value = value; |
| 1912 } | 1696 } |
| 1913 | 1697 |
| 1914 /** | 1698 /** |
| 1915 * Initialize a newly created boolean literal. | 1699 * Initialize a newly created boolean literal. |
| 1916 * | 1700 * |
| 1917 * @param literal the token representing the literal | 1701 * @param literal the token representing the literal |
| 1918 * @param value the value of the literal | 1702 * @param value the value of the literal |
| 1919 */ | 1703 */ |
| 1920 BooleanLiteral({Token literal, bool value}) : this.full(literal, value); | 1704 BooleanLiteral({Token literal, bool value}) : this.full(literal, value); |
| 1921 accept(ASTVisitor visitor) => visitor.visitBooleanLiteral(this); | 1705 accept(ASTVisitor visitor) => visitor.visitBooleanLiteral(this); |
| 1922 Token get beginToken => _literal; | 1706 Token get beginToken => literal; |
| 1923 Token get endToken => _literal; | 1707 Token get endToken => literal; |
| 1924 | 1708 bool get isSynthetic => literal.isSynthetic; |
| 1925 /** | |
| 1926 * Return the token representing the literal. | |
| 1927 * | |
| 1928 * @return the token representing the literal | |
| 1929 */ | |
| 1930 Token get literal => _literal; | |
| 1931 | |
| 1932 /** | |
| 1933 * Return the value of the literal. | |
| 1934 * | |
| 1935 * @return the value of the literal | |
| 1936 */ | |
| 1937 bool get value => _value; | |
| 1938 bool get isSynthetic => _literal.isSynthetic; | |
| 1939 | |
| 1940 /** | |
| 1941 * Set the token representing the literal to the given token. | |
| 1942 * | |
| 1943 * @param literal the token representing the literal | |
| 1944 */ | |
| 1945 void set literal(Token literal2) { | |
| 1946 this._literal = literal2; | |
| 1947 } | |
| 1948 | |
| 1949 /** | |
| 1950 * Set the value of the literal to the given value. | |
| 1951 * | |
| 1952 * @param value the value of the literal | |
| 1953 */ | |
| 1954 void set value(bool value2) { | |
| 1955 this._value = value2; | |
| 1956 } | |
| 1957 void visitChildren(ASTVisitor visitor) { | 1709 void visitChildren(ASTVisitor visitor) { |
| 1958 } | 1710 } |
| 1959 } | 1711 } |
| 1960 /** | 1712 /** |
| 1961 * Instances of the class `BreakStatement` represent a break statement. | 1713 * Instances of the class `BreakStatement` represent a break statement. |
| 1962 * | 1714 * |
| 1963 * <pre> | 1715 * <pre> |
| 1964 * breakStatement ::= | 1716 * breakStatement ::= |
| 1965 * 'break' [SimpleIdentifier]? ';' | 1717 * 'break' [SimpleIdentifier]? ';' |
| 1966 * </pre> | 1718 * </pre> |
| 1967 * | 1719 * |
| 1968 * @coverage dart.engine.ast | 1720 * @coverage dart.engine.ast |
| 1969 */ | 1721 */ |
| 1970 class BreakStatement extends Statement { | 1722 class BreakStatement extends Statement { |
| 1971 | 1723 |
| 1972 /** | 1724 /** |
| 1973 * The token representing the 'break' keyword. | 1725 * The token representing the 'break' keyword. |
| 1974 */ | 1726 */ |
| 1975 Token _keyword; | 1727 Token keyword; |
| 1976 | 1728 |
| 1977 /** | 1729 /** |
| 1978 * The label associated with the statement, or `null` if there is no label. | 1730 * The label associated with the statement, or `null` if there is no label. |
| 1979 */ | 1731 */ |
| 1980 SimpleIdentifier _label; | 1732 SimpleIdentifier _label; |
| 1981 | 1733 |
| 1982 /** | 1734 /** |
| 1983 * The semicolon terminating the statement. | 1735 * The semicolon terminating the statement. |
| 1984 */ | 1736 */ |
| 1985 Token _semicolon; | 1737 Token semicolon; |
| 1986 | 1738 |
| 1987 /** | 1739 /** |
| 1988 * Initialize a newly created break statement. | 1740 * Initialize a newly created break statement. |
| 1989 * | 1741 * |
| 1990 * @param keyword the token representing the 'break' keyword | 1742 * @param keyword the token representing the 'break' keyword |
| 1991 * @param label the label associated with the statement | 1743 * @param label the label associated with the statement |
| 1992 * @param semicolon the semicolon terminating the statement | 1744 * @param semicolon the semicolon terminating the statement |
| 1993 */ | 1745 */ |
| 1994 BreakStatement.full(Token keyword, SimpleIdentifier label, Token semicolon) { | 1746 BreakStatement.full(Token keyword, SimpleIdentifier label, Token semicolon) { |
| 1995 this._keyword = keyword; | 1747 this.keyword = keyword; |
| 1996 this._label = becomeParentOf(label); | 1748 this._label = becomeParentOf(label); |
| 1997 this._semicolon = semicolon; | 1749 this.semicolon = semicolon; |
| 1998 } | 1750 } |
| 1999 | 1751 |
| 2000 /** | 1752 /** |
| 2001 * Initialize a newly created break statement. | 1753 * Initialize a newly created break statement. |
| 2002 * | 1754 * |
| 2003 * @param keyword the token representing the 'break' keyword | 1755 * @param keyword the token representing the 'break' keyword |
| 2004 * @param label the label associated with the statement | 1756 * @param label the label associated with the statement |
| 2005 * @param semicolon the semicolon terminating the statement | 1757 * @param semicolon the semicolon terminating the statement |
| 2006 */ | 1758 */ |
| 2007 BreakStatement({Token keyword, SimpleIdentifier label, Token semicolon}) : thi
s.full(keyword, label, semicolon); | 1759 BreakStatement({Token keyword, SimpleIdentifier label, Token semicolon}) : thi
s.full(keyword, label, semicolon); |
| 2008 accept(ASTVisitor visitor) => visitor.visitBreakStatement(this); | 1760 accept(ASTVisitor visitor) => visitor.visitBreakStatement(this); |
| 2009 Token get beginToken => _keyword; | 1761 Token get beginToken => keyword; |
| 2010 Token get endToken => _semicolon; | 1762 Token get endToken => semicolon; |
| 2011 | |
| 2012 /** | |
| 2013 * Return the token representing the 'break' keyword. | |
| 2014 * | |
| 2015 * @return the token representing the 'break' keyword | |
| 2016 */ | |
| 2017 Token get keyword => _keyword; | |
| 2018 | 1763 |
| 2019 /** | 1764 /** |
| 2020 * Return the label associated with the statement, or `null` if there is no la
bel. | 1765 * Return the label associated with the statement, or `null` if there is no la
bel. |
| 2021 * | 1766 * |
| 2022 * @return the label associated with the statement | 1767 * @return the label associated with the statement |
| 2023 */ | 1768 */ |
| 2024 SimpleIdentifier get label => _label; | 1769 SimpleIdentifier get label => _label; |
| 2025 | 1770 |
| 2026 /** | 1771 /** |
| 2027 * Return the semicolon terminating the statement. | |
| 2028 * | |
| 2029 * @return the semicolon terminating the statement | |
| 2030 */ | |
| 2031 Token get semicolon => _semicolon; | |
| 2032 | |
| 2033 /** | |
| 2034 * Set the token representing the 'break' keyword to the given token. | |
| 2035 * | |
| 2036 * @param keyword the token representing the 'break' keyword | |
| 2037 */ | |
| 2038 void set keyword(Token keyword2) { | |
| 2039 this._keyword = keyword2; | |
| 2040 } | |
| 2041 | |
| 2042 /** | |
| 2043 * Set the label associated with the statement to the given identifier. | 1772 * Set the label associated with the statement to the given identifier. |
| 2044 * | 1773 * |
| 2045 * @param identifier the label associated with the statement | 1774 * @param identifier the label associated with the statement |
| 2046 */ | 1775 */ |
| 2047 void set label(SimpleIdentifier identifier) { | 1776 void set label(SimpleIdentifier identifier) { |
| 2048 _label = becomeParentOf(identifier); | 1777 _label = becomeParentOf(identifier); |
| 2049 } | 1778 } |
| 2050 | |
| 2051 /** | |
| 2052 * Set the semicolon terminating the statement to the given token. | |
| 2053 * | |
| 2054 * @param semicolon the semicolon terminating the statement | |
| 2055 */ | |
| 2056 void set semicolon(Token semicolon2) { | |
| 2057 this._semicolon = semicolon2; | |
| 2058 } | |
| 2059 void visitChildren(ASTVisitor visitor) { | 1779 void visitChildren(ASTVisitor visitor) { |
| 2060 safelyVisitChild(_label, visitor); | 1780 safelyVisitChild(_label, visitor); |
| 2061 } | 1781 } |
| 2062 } | 1782 } |
| 2063 /** | 1783 /** |
| 2064 * Instances of the class `CascadeExpression` represent a sequence of cascaded e
xpressions: | 1784 * Instances of the class `CascadeExpression` represent a sequence of cascaded e
xpressions: |
| 2065 * expressions that share a common target. There are three kinds of expressions
that can be used in | 1785 * expressions that share a common target. There are three kinds of expressions
that can be used in |
| 2066 * a cascade expression: [IndexExpression], [MethodInvocation] and | 1786 * a cascade expression: [IndexExpression], [MethodInvocation] and |
| 2067 * [PropertyAccess]. | 1787 * [PropertyAccess]. |
| 2068 * | 1788 * |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2083 class CascadeExpression extends Expression { | 1803 class CascadeExpression extends Expression { |
| 2084 | 1804 |
| 2085 /** | 1805 /** |
| 2086 * The target of the cascade sections. | 1806 * The target of the cascade sections. |
| 2087 */ | 1807 */ |
| 2088 Expression _target; | 1808 Expression _target; |
| 2089 | 1809 |
| 2090 /** | 1810 /** |
| 2091 * The cascade sections sharing the common target. | 1811 * The cascade sections sharing the common target. |
| 2092 */ | 1812 */ |
| 2093 NodeList<Expression> _cascadeSections; | 1813 NodeList<Expression> cascadeSections; |
| 2094 | 1814 |
| 2095 /** | 1815 /** |
| 2096 * Initialize a newly created cascade expression. | 1816 * Initialize a newly created cascade expression. |
| 2097 * | 1817 * |
| 2098 * @param target the target of the cascade sections | 1818 * @param target the target of the cascade sections |
| 2099 * @param cascadeSections the cascade sections sharing the common target | 1819 * @param cascadeSections the cascade sections sharing the common target |
| 2100 */ | 1820 */ |
| 2101 CascadeExpression.full(Expression target, List<Expression> cascadeSections) { | 1821 CascadeExpression.full(Expression target, List<Expression> cascadeSections) { |
| 2102 this._cascadeSections = new NodeList<Expression>(this); | 1822 this.cascadeSections = new NodeList<Expression>(this); |
| 2103 this._target = becomeParentOf(target); | 1823 this._target = becomeParentOf(target); |
| 2104 this._cascadeSections.addAll(cascadeSections); | 1824 this.cascadeSections.addAll(cascadeSections); |
| 2105 } | 1825 } |
| 2106 | 1826 |
| 2107 /** | 1827 /** |
| 2108 * Initialize a newly created cascade expression. | 1828 * Initialize a newly created cascade expression. |
| 2109 * | 1829 * |
| 2110 * @param target the target of the cascade sections | 1830 * @param target the target of the cascade sections |
| 2111 * @param cascadeSections the cascade sections sharing the common target | 1831 * @param cascadeSections the cascade sections sharing the common target |
| 2112 */ | 1832 */ |
| 2113 CascadeExpression({Expression target, List<Expression> cascadeSections}) : thi
s.full(target, cascadeSections); | 1833 CascadeExpression({Expression target, List<Expression> cascadeSections}) : thi
s.full(target, cascadeSections); |
| 2114 accept(ASTVisitor visitor) => visitor.visitCascadeExpression(this); | 1834 accept(ASTVisitor visitor) => visitor.visitCascadeExpression(this); |
| 2115 Token get beginToken => _target.beginToken; | 1835 Token get beginToken => _target.beginToken; |
| 2116 | 1836 Token get endToken => cascadeSections.endToken; |
| 2117 /** | |
| 2118 * Return the cascade sections sharing the common target. | |
| 2119 * | |
| 2120 * @return the cascade sections sharing the common target | |
| 2121 */ | |
| 2122 NodeList<Expression> get cascadeSections => _cascadeSections; | |
| 2123 Token get endToken => _cascadeSections.endToken; | |
| 2124 | 1837 |
| 2125 /** | 1838 /** |
| 2126 * Return the target of the cascade sections. | 1839 * Return the target of the cascade sections. |
| 2127 * | 1840 * |
| 2128 * @return the target of the cascade sections | 1841 * @return the target of the cascade sections |
| 2129 */ | 1842 */ |
| 2130 Expression get target => _target; | 1843 Expression get target => _target; |
| 2131 | 1844 |
| 2132 /** | 1845 /** |
| 2133 * Set the target of the cascade sections to the given expression. | 1846 * Set the target of the cascade sections to the given expression. |
| 2134 * | 1847 * |
| 2135 * @param target the target of the cascade sections | 1848 * @param target the target of the cascade sections |
| 2136 */ | 1849 */ |
| 2137 void set target(Expression target2) { | 1850 void set target(Expression target2) { |
| 2138 this._target = becomeParentOf(target2); | 1851 this._target = becomeParentOf(target2); |
| 2139 } | 1852 } |
| 2140 void visitChildren(ASTVisitor visitor) { | 1853 void visitChildren(ASTVisitor visitor) { |
| 2141 safelyVisitChild(_target, visitor); | 1854 safelyVisitChild(_target, visitor); |
| 2142 _cascadeSections.accept(visitor); | 1855 cascadeSections.accept(visitor); |
| 2143 } | 1856 } |
| 2144 } | 1857 } |
| 2145 /** | 1858 /** |
| 2146 * Instances of the class `CatchClause` represent a catch clause within a try st
atement. | 1859 * Instances of the class `CatchClause` represent a catch clause within a try st
atement. |
| 2147 * | 1860 * |
| 2148 * <pre> | 1861 * <pre> |
| 2149 * onPart ::= | 1862 * onPart ::= |
| 2150 * catchPart [Block] | 1863 * catchPart [Block] |
| 2151 * | 'on' type catchPart? [Block] | 1864 * | 'on' type catchPart? [Block] |
| 2152 * | 1865 * |
| 2153 * catchPart ::= | 1866 * catchPart ::= |
| 2154 * 'catch' '(' [SimpleIdentifier] (',' [SimpleIdentifier])? ')' | 1867 * 'catch' '(' [SimpleIdentifier] (',' [SimpleIdentifier])? ')' |
| 2155 * </pre> | 1868 * </pre> |
| 2156 * | 1869 * |
| 2157 * @coverage dart.engine.ast | 1870 * @coverage dart.engine.ast |
| 2158 */ | 1871 */ |
| 2159 class CatchClause extends ASTNode { | 1872 class CatchClause extends ASTNode { |
| 2160 | 1873 |
| 2161 /** | 1874 /** |
| 2162 * The token representing the 'on' keyword, or `null` if there is no 'on' keyw
ord. | 1875 * The token representing the 'on' keyword, or `null` if there is no 'on' keyw
ord. |
| 2163 */ | 1876 */ |
| 2164 Token _onKeyword; | 1877 Token onKeyword; |
| 2165 | 1878 |
| 2166 /** | 1879 /** |
| 2167 * The type of exceptions caught by this catch clause, or `null` if this catch
clause | 1880 * The type of exceptions caught by this catch clause, or `null` if this catch
clause |
| 2168 * catches every type of exception. | 1881 * catches every type of exception. |
| 2169 */ | 1882 */ |
| 2170 TypeName _exceptionType; | 1883 TypeName exceptionType; |
| 2171 | 1884 |
| 2172 /** | 1885 /** |
| 2173 * The token representing the 'catch' keyword, or `null` if there is no 'catch
' keyword. | 1886 * The token representing the 'catch' keyword, or `null` if there is no 'catch
' keyword. |
| 2174 */ | 1887 */ |
| 2175 Token _catchKeyword; | 1888 Token catchKeyword; |
| 2176 | 1889 |
| 2177 /** | 1890 /** |
| 2178 * The left parenthesis. | 1891 * The left parenthesis. |
| 2179 */ | 1892 */ |
| 2180 Token _leftParenthesis; | 1893 Token _leftParenthesis; |
| 2181 | 1894 |
| 2182 /** | 1895 /** |
| 2183 * The parameter whose value will be the exception that was thrown. | 1896 * The parameter whose value will be the exception that was thrown. |
| 2184 */ | 1897 */ |
| 2185 SimpleIdentifier _exceptionParameter; | 1898 SimpleIdentifier _exceptionParameter; |
| 2186 | 1899 |
| 2187 /** | 1900 /** |
| 2188 * The comma separating the exception parameter from the stack trace parameter
, or `null` if | 1901 * The comma separating the exception parameter from the stack trace parameter
, or `null` if |
| 2189 * there is no stack trace parameter. | 1902 * there is no stack trace parameter. |
| 2190 */ | 1903 */ |
| 2191 Token _comma; | 1904 Token comma; |
| 2192 | 1905 |
| 2193 /** | 1906 /** |
| 2194 * The parameter whose value will be the stack trace associated with the excep
tion, or | 1907 * The parameter whose value will be the stack trace associated with the excep
tion, or |
| 2195 * `null` if there is no stack trace parameter. | 1908 * `null` if there is no stack trace parameter. |
| 2196 */ | 1909 */ |
| 2197 SimpleIdentifier _stackTraceParameter; | 1910 SimpleIdentifier _stackTraceParameter; |
| 2198 | 1911 |
| 2199 /** | 1912 /** |
| 2200 * The right parenthesis. | 1913 * The right parenthesis. |
| 2201 */ | 1914 */ |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2213 * @param exceptionType the type of exceptions caught by this catch clause | 1926 * @param exceptionType the type of exceptions caught by this catch clause |
| 2214 * @param leftParenthesis the left parenthesis | 1927 * @param leftParenthesis the left parenthesis |
| 2215 * @param exceptionParameter the parameter whose value will be the exception t
hat was thrown | 1928 * @param exceptionParameter the parameter whose value will be the exception t
hat was thrown |
| 2216 * @param comma the comma separating the exception parameter from the stack tr
ace parameter | 1929 * @param comma the comma separating the exception parameter from the stack tr
ace parameter |
| 2217 * @param stackTraceParameter the parameter whose value will be the stack trac
e associated with | 1930 * @param stackTraceParameter the parameter whose value will be the stack trac
e associated with |
| 2218 * the exception | 1931 * the exception |
| 2219 * @param rightParenthesis the right parenthesis | 1932 * @param rightParenthesis the right parenthesis |
| 2220 * @param body the body of the catch block | 1933 * @param body the body of the catch block |
| 2221 */ | 1934 */ |
| 2222 CatchClause.full(Token onKeyword, TypeName exceptionType, Token catchKeyword,
Token leftParenthesis, SimpleIdentifier exceptionParameter, Token comma, SimpleI
dentifier stackTraceParameter, Token rightParenthesis, Block body) { | 1935 CatchClause.full(Token onKeyword, TypeName exceptionType, Token catchKeyword,
Token leftParenthesis, SimpleIdentifier exceptionParameter, Token comma, SimpleI
dentifier stackTraceParameter, Token rightParenthesis, Block body) { |
| 2223 this._onKeyword = onKeyword; | 1936 this.onKeyword = onKeyword; |
| 2224 this._exceptionType = becomeParentOf(exceptionType); | 1937 this.exceptionType = becomeParentOf(exceptionType); |
| 2225 this._catchKeyword = catchKeyword; | 1938 this.catchKeyword = catchKeyword; |
| 2226 this._leftParenthesis = leftParenthesis; | 1939 this._leftParenthesis = leftParenthesis; |
| 2227 this._exceptionParameter = becomeParentOf(exceptionParameter); | 1940 this._exceptionParameter = becomeParentOf(exceptionParameter); |
| 2228 this._comma = comma; | 1941 this.comma = comma; |
| 2229 this._stackTraceParameter = becomeParentOf(stackTraceParameter); | 1942 this._stackTraceParameter = becomeParentOf(stackTraceParameter); |
| 2230 this._rightParenthesis = rightParenthesis; | 1943 this._rightParenthesis = rightParenthesis; |
| 2231 this._body = becomeParentOf(body); | 1944 this._body = becomeParentOf(body); |
| 2232 } | 1945 } |
| 2233 | 1946 |
| 2234 /** | 1947 /** |
| 2235 * Initialize a newly created catch clause. | 1948 * Initialize a newly created catch clause. |
| 2236 * | 1949 * |
| 2237 * @param onKeyword the token representing the 'on' keyword | 1950 * @param onKeyword the token representing the 'on' keyword |
| 2238 * @param exceptionType the type of exceptions caught by this catch clause | 1951 * @param exceptionType the type of exceptions caught by this catch clause |
| 2239 * @param leftParenthesis the left parenthesis | 1952 * @param leftParenthesis the left parenthesis |
| 2240 * @param exceptionParameter the parameter whose value will be the exception t
hat was thrown | 1953 * @param exceptionParameter the parameter whose value will be the exception t
hat was thrown |
| 2241 * @param comma the comma separating the exception parameter from the stack tr
ace parameter | 1954 * @param comma the comma separating the exception parameter from the stack tr
ace parameter |
| 2242 * @param stackTraceParameter the parameter whose value will be the stack trac
e associated with | 1955 * @param stackTraceParameter the parameter whose value will be the stack trac
e associated with |
| 2243 * the exception | 1956 * the exception |
| 2244 * @param rightParenthesis the right parenthesis | 1957 * @param rightParenthesis the right parenthesis |
| 2245 * @param body the body of the catch block | 1958 * @param body the body of the catch block |
| 2246 */ | 1959 */ |
| 2247 CatchClause({Token onKeyword, TypeName exceptionType, Token catchKeyword, Toke
n leftParenthesis, SimpleIdentifier exceptionParameter, Token comma, SimpleIdent
ifier stackTraceParameter, Token rightParenthesis, Block body}) : this.full(onKe
yword, exceptionType, catchKeyword, leftParenthesis, exceptionParameter, comma,
stackTraceParameter, rightParenthesis, body); | 1960 CatchClause({Token onKeyword, TypeName exceptionType, Token catchKeyword, Toke
n leftParenthesis, SimpleIdentifier exceptionParameter, Token comma, SimpleIdent
ifier stackTraceParameter, Token rightParenthesis, Block body}) : this.full(onKe
yword, exceptionType, catchKeyword, leftParenthesis, exceptionParameter, comma,
stackTraceParameter, rightParenthesis, body); |
| 2248 accept(ASTVisitor visitor) => visitor.visitCatchClause(this); | 1961 accept(ASTVisitor visitor) => visitor.visitCatchClause(this); |
| 2249 Token get beginToken { | 1962 Token get beginToken { |
| 2250 if (_onKeyword != null) { | 1963 if (onKeyword != null) { |
| 2251 return _onKeyword; | 1964 return onKeyword; |
| 2252 } | 1965 } |
| 2253 return _catchKeyword; | 1966 return catchKeyword; |
| 2254 } | 1967 } |
| 2255 | 1968 |
| 2256 /** | 1969 /** |
| 2257 * Return the body of the catch block. | 1970 * Return the body of the catch block. |
| 2258 * | 1971 * |
| 2259 * @return the body of the catch block | 1972 * @return the body of the catch block |
| 2260 */ | 1973 */ |
| 2261 Block get body => _body; | 1974 Block get body => _body; |
| 2262 | |
| 2263 /** | |
| 2264 * Return the token representing the 'catch' keyword, or `null` if there is no
'catch' | |
| 2265 * keyword. | |
| 2266 * | |
| 2267 * @return the token representing the 'catch' keyword | |
| 2268 */ | |
| 2269 Token get catchKeyword => _catchKeyword; | |
| 2270 | |
| 2271 /** | |
| 2272 * Return the comma, or `null` if there is no stack trace parameter. | |
| 2273 * | |
| 2274 * @return the comma | |
| 2275 */ | |
| 2276 Token get comma => _comma; | |
| 2277 Token get endToken => _body.endToken; | 1975 Token get endToken => _body.endToken; |
| 2278 | 1976 |
| 2279 /** | 1977 /** |
| 2280 * Return the parameter whose value will be the exception that was thrown. | 1978 * Return the parameter whose value will be the exception that was thrown. |
| 2281 * | 1979 * |
| 2282 * @return the parameter whose value will be the exception that was thrown | 1980 * @return the parameter whose value will be the exception that was thrown |
| 2283 */ | 1981 */ |
| 2284 SimpleIdentifier get exceptionParameter => _exceptionParameter; | 1982 SimpleIdentifier get exceptionParameter => _exceptionParameter; |
| 2285 | 1983 |
| 2286 /** | 1984 /** |
| 2287 * Return the type of exceptions caught by this catch clause, or `null` if thi
s catch clause | |
| 2288 * catches every type of exception. | |
| 2289 * | |
| 2290 * @return the type of exceptions caught by this catch clause | |
| 2291 */ | |
| 2292 TypeName get exceptionType => _exceptionType; | |
| 2293 | |
| 2294 /** | |
| 2295 * Return the left parenthesis. | 1985 * Return the left parenthesis. |
| 2296 * | 1986 * |
| 2297 * @return the left parenthesis | 1987 * @return the left parenthesis |
| 2298 */ | 1988 */ |
| 2299 Token get leftParenthesis => _leftParenthesis; | 1989 Token get leftParenthesis => _leftParenthesis; |
| 2300 | 1990 |
| 2301 /** | 1991 /** |
| 2302 * Return the token representing the 'on' keyword, or `null` if there is no 'o
n' keyword. | |
| 2303 * | |
| 2304 * @return the token representing the 'on' keyword | |
| 2305 */ | |
| 2306 Token get onKeyword => _onKeyword; | |
| 2307 | |
| 2308 /** | |
| 2309 * Return the right parenthesis. | 1992 * Return the right parenthesis. |
| 2310 * | 1993 * |
| 2311 * @return the right parenthesis | 1994 * @return the right parenthesis |
| 2312 */ | 1995 */ |
| 2313 Token get rightParenthesis => _rightParenthesis; | 1996 Token get rightParenthesis => _rightParenthesis; |
| 2314 | 1997 |
| 2315 /** | 1998 /** |
| 2316 * Return the parameter whose value will be the stack trace associated with th
e exception, or | 1999 * Return the parameter whose value will be the stack trace associated with th
e exception, or |
| 2317 * `null` if there is no stack trace parameter. | 2000 * `null` if there is no stack trace parameter. |
| 2318 * | 2001 * |
| 2319 * @return the parameter whose value will be the stack trace associated with t
he exception | 2002 * @return the parameter whose value will be the stack trace associated with t
he exception |
| 2320 */ | 2003 */ |
| 2321 SimpleIdentifier get stackTraceParameter => _stackTraceParameter; | 2004 SimpleIdentifier get stackTraceParameter => _stackTraceParameter; |
| 2322 | 2005 |
| 2323 /** | 2006 /** |
| 2324 * Set the body of the catch block to the given block. | 2007 * Set the body of the catch block to the given block. |
| 2325 * | 2008 * |
| 2326 * @param block the body of the catch block | 2009 * @param block the body of the catch block |
| 2327 */ | 2010 */ |
| 2328 void set body(Block block) { | 2011 void set body(Block block) { |
| 2329 _body = becomeParentOf(block); | 2012 _body = becomeParentOf(block); |
| 2330 } | 2013 } |
| 2331 | 2014 |
| 2332 /** | 2015 /** |
| 2333 * Set the token representing the 'catch' keyword to the given token. | |
| 2334 * | |
| 2335 * @param catchKeyword the token representing the 'catch' keyword | |
| 2336 */ | |
| 2337 void set catchKeyword(Token catchKeyword2) { | |
| 2338 this._catchKeyword = catchKeyword2; | |
| 2339 } | |
| 2340 | |
| 2341 /** | |
| 2342 * Set the comma to the given token. | |
| 2343 * | |
| 2344 * @param comma the comma | |
| 2345 */ | |
| 2346 void set comma(Token comma2) { | |
| 2347 this._comma = comma2; | |
| 2348 } | |
| 2349 | |
| 2350 /** | |
| 2351 * Set the parameter whose value will be the exception that was thrown to the
given parameter. | 2016 * Set the parameter whose value will be the exception that was thrown to the
given parameter. |
| 2352 * | 2017 * |
| 2353 * @param parameter the parameter whose value will be the exception that was t
hrown | 2018 * @param parameter the parameter whose value will be the exception that was t
hrown |
| 2354 */ | 2019 */ |
| 2355 void set exceptionParameter(SimpleIdentifier parameter) { | 2020 void set exceptionParameter(SimpleIdentifier parameter) { |
| 2356 _exceptionParameter = becomeParentOf(parameter); | 2021 _exceptionParameter = becomeParentOf(parameter); |
| 2357 } | 2022 } |
| 2358 | 2023 |
| 2359 /** | 2024 /** |
| 2360 * Set the type of exceptions caught by this catch clause to the given type. | |
| 2361 * | |
| 2362 * @param exceptionType the type of exceptions caught by this catch clause | |
| 2363 */ | |
| 2364 void set exceptionType(TypeName exceptionType2) { | |
| 2365 this._exceptionType = exceptionType2; | |
| 2366 } | |
| 2367 | |
| 2368 /** | |
| 2369 * Set the left parenthesis to the given token. | 2025 * Set the left parenthesis to the given token. |
| 2370 * | 2026 * |
| 2371 * @param parenthesis the left parenthesis | 2027 * @param parenthesis the left parenthesis |
| 2372 */ | 2028 */ |
| 2373 void set leftParenthesis(Token parenthesis) { | 2029 void set leftParenthesis(Token parenthesis) { |
| 2374 _leftParenthesis = parenthesis; | 2030 _leftParenthesis = parenthesis; |
| 2375 } | 2031 } |
| 2376 | 2032 |
| 2377 /** | 2033 /** |
| 2378 * Set the token representing the 'on' keyword to the given keyword. | |
| 2379 * | |
| 2380 * @param onKeyword the token representing the 'on' keyword | |
| 2381 */ | |
| 2382 void set onKeyword(Token onKeyword2) { | |
| 2383 this._onKeyword = onKeyword2; | |
| 2384 } | |
| 2385 | |
| 2386 /** | |
| 2387 * Set the right parenthesis to the given token. | 2034 * Set the right parenthesis to the given token. |
| 2388 * | 2035 * |
| 2389 * @param parenthesis the right parenthesis | 2036 * @param parenthesis the right parenthesis |
| 2390 */ | 2037 */ |
| 2391 void set rightParenthesis(Token parenthesis) { | 2038 void set rightParenthesis(Token parenthesis) { |
| 2392 _rightParenthesis = parenthesis; | 2039 _rightParenthesis = parenthesis; |
| 2393 } | 2040 } |
| 2394 | 2041 |
| 2395 /** | 2042 /** |
| 2396 * Set the parameter whose value will be the stack trace associated with the e
xception to the | 2043 * Set the parameter whose value will be the stack trace associated with the e
xception to the |
| 2397 * given parameter. | 2044 * given parameter. |
| 2398 * | 2045 * |
| 2399 * @param parameter the parameter whose value will be the stack trace associat
ed with the | 2046 * @param parameter the parameter whose value will be the stack trace associat
ed with the |
| 2400 * exception | 2047 * exception |
| 2401 */ | 2048 */ |
| 2402 void set stackTraceParameter(SimpleIdentifier parameter) { | 2049 void set stackTraceParameter(SimpleIdentifier parameter) { |
| 2403 _stackTraceParameter = becomeParentOf(parameter); | 2050 _stackTraceParameter = becomeParentOf(parameter); |
| 2404 } | 2051 } |
| 2405 void visitChildren(ASTVisitor visitor) { | 2052 void visitChildren(ASTVisitor visitor) { |
| 2406 safelyVisitChild(_exceptionType, visitor); | 2053 safelyVisitChild(exceptionType, visitor); |
| 2407 safelyVisitChild(_exceptionParameter, visitor); | 2054 safelyVisitChild(_exceptionParameter, visitor); |
| 2408 safelyVisitChild(_stackTraceParameter, visitor); | 2055 safelyVisitChild(_stackTraceParameter, visitor); |
| 2409 safelyVisitChild(_body, visitor); | 2056 safelyVisitChild(_body, visitor); |
| 2410 } | 2057 } |
| 2411 } | 2058 } |
| 2412 /** | 2059 /** |
| 2413 * Instances of the class `ClassDeclaration` represent the declaration of a clas
s. | 2060 * Instances of the class `ClassDeclaration` represent the declaration of a clas
s. |
| 2414 * | 2061 * |
| 2415 * <pre> | 2062 * <pre> |
| 2416 * classDeclaration ::= | 2063 * classDeclaration ::= |
| 2417 * 'abstract'? 'class' [SimpleIdentifier] [TypeParameterList]? | 2064 * 'abstract'? 'class' [SimpleIdentifier] [TypeParameterList]? |
| 2418 * ([ExtendsClause] [WithClause]?)? | 2065 * ([ExtendsClause] [WithClause]?)? |
| 2419 * [ImplementsClause]? | 2066 * [ImplementsClause]? |
| 2420 * '{' [ClassMember]* '}' | 2067 * '{' [ClassMember]* '}' |
| 2421 * </pre> | 2068 * </pre> |
| 2422 * | 2069 * |
| 2423 * @coverage dart.engine.ast | 2070 * @coverage dart.engine.ast |
| 2424 */ | 2071 */ |
| 2425 class ClassDeclaration extends CompilationUnitMember { | 2072 class ClassDeclaration extends CompilationUnitMember { |
| 2426 | 2073 |
| 2427 /** | 2074 /** |
| 2428 * The 'abstract' keyword, or `null` if the keyword was absent. | 2075 * The 'abstract' keyword, or `null` if the keyword was absent. |
| 2429 */ | 2076 */ |
| 2430 Token _abstractKeyword; | 2077 Token abstractKeyword; |
| 2431 | 2078 |
| 2432 /** | 2079 /** |
| 2433 * The token representing the 'class' keyword. | 2080 * The token representing the 'class' keyword. |
| 2434 */ | 2081 */ |
| 2435 Token _classKeyword; | 2082 Token classKeyword; |
| 2436 | 2083 |
| 2437 /** | 2084 /** |
| 2438 * The name of the class being declared. | 2085 * The name of the class being declared. |
| 2439 */ | 2086 */ |
| 2440 SimpleIdentifier _name; | 2087 SimpleIdentifier _name; |
| 2441 | 2088 |
| 2442 /** | 2089 /** |
| 2443 * The type parameters for the class, or `null` if the class does not have any
type | 2090 * The type parameters for the class, or `null` if the class does not have any
type |
| 2444 * parameters. | 2091 * parameters. |
| 2445 */ | 2092 */ |
| 2446 TypeParameterList _typeParameters; | 2093 TypeParameterList typeParameters; |
| 2447 | 2094 |
| 2448 /** | 2095 /** |
| 2449 * The extends clause for the class, or `null` if the class does not extend an
y other class. | 2096 * The extends clause for the class, or `null` if the class does not extend an
y other class. |
| 2450 */ | 2097 */ |
| 2451 ExtendsClause _extendsClause; | 2098 ExtendsClause _extendsClause; |
| 2452 | 2099 |
| 2453 /** | 2100 /** |
| 2454 * The with clause for the class, or `null` if the class does not have a with
clause. | 2101 * The with clause for the class, or `null` if the class does not have a with
clause. |
| 2455 */ | 2102 */ |
| 2456 WithClause _withClause; | 2103 WithClause _withClause; |
| 2457 | 2104 |
| 2458 /** | 2105 /** |
| 2459 * The implements clause for the class, or `null` if the class does not implem
ent any | 2106 * The implements clause for the class, or `null` if the class does not implem
ent any |
| 2460 * interfaces. | 2107 * interfaces. |
| 2461 */ | 2108 */ |
| 2462 ImplementsClause _implementsClause; | 2109 ImplementsClause _implementsClause; |
| 2463 | 2110 |
| 2464 /** | 2111 /** |
| 2465 * The native clause for the class, or `null` if the class does not have a nat
ive clause. | 2112 * The native clause for the class, or `null` if the class does not have a nat
ive clause. |
| 2466 */ | 2113 */ |
| 2467 NativeClause _nativeClause; | 2114 NativeClause nativeClause; |
| 2468 | 2115 |
| 2469 /** | 2116 /** |
| 2470 * The left curly bracket. | 2117 * The left curly bracket. |
| 2471 */ | 2118 */ |
| 2472 Token _leftBracket; | 2119 Token leftBracket; |
| 2473 | 2120 |
| 2474 /** | 2121 /** |
| 2475 * The members defined by the class. | 2122 * The members defined by the class. |
| 2476 */ | 2123 */ |
| 2477 NodeList<ClassMember> _members; | 2124 NodeList<ClassMember> members; |
| 2478 | 2125 |
| 2479 /** | 2126 /** |
| 2480 * The right curly bracket. | 2127 * The right curly bracket. |
| 2481 */ | 2128 */ |
| 2482 Token _rightBracket; | 2129 Token rightBracket; |
| 2483 | 2130 |
| 2484 /** | 2131 /** |
| 2485 * Initialize a newly created class declaration. | 2132 * Initialize a newly created class declaration. |
| 2486 * | 2133 * |
| 2487 * @param comment the documentation comment associated with this class | 2134 * @param comment the documentation comment associated with this class |
| 2488 * @param metadata the annotations associated with this class | 2135 * @param metadata the annotations associated with this class |
| 2489 * @param abstractKeyword the 'abstract' keyword, or `null` if the keyword was
absent | 2136 * @param abstractKeyword the 'abstract' keyword, or `null` if the keyword was
absent |
| 2490 * @param classKeyword the token representing the 'class' keyword | 2137 * @param classKeyword the token representing the 'class' keyword |
| 2491 * @param name the name of the class being declared | 2138 * @param name the name of the class being declared |
| 2492 * @param typeParameters the type parameters for the class | 2139 * @param typeParameters the type parameters for the class |
| 2493 * @param extendsClause the extends clause for the class | 2140 * @param extendsClause the extends clause for the class |
| 2494 * @param withClause the with clause for the class | 2141 * @param withClause the with clause for the class |
| 2495 * @param implementsClause the implements clause for the class | 2142 * @param implementsClause the implements clause for the class |
| 2496 * @param leftBracket the left curly bracket | 2143 * @param leftBracket the left curly bracket |
| 2497 * @param members the members defined by the class | 2144 * @param members the members defined by the class |
| 2498 * @param rightBracket the right curly bracket | 2145 * @param rightBracket the right curly bracket |
| 2499 */ | 2146 */ |
| 2500 ClassDeclaration.full(Comment comment, List<Annotation> metadata, Token abstra
ctKeyword, Token classKeyword, SimpleIdentifier name, TypeParameterList typePara
meters, ExtendsClause extendsClause, WithClause withClause, ImplementsClause imp
lementsClause, Token leftBracket, List<ClassMember> members, Token rightBracket)
: super.full(comment, metadata) { | 2147 ClassDeclaration.full(Comment comment, List<Annotation> metadata, Token abstra
ctKeyword, Token classKeyword, SimpleIdentifier name, TypeParameterList typePara
meters, ExtendsClause extendsClause, WithClause withClause, ImplementsClause imp
lementsClause, Token leftBracket, List<ClassMember> members, Token rightBracket)
: super.full(comment, metadata) { |
| 2501 this._members = new NodeList<ClassMember>(this); | 2148 this.members = new NodeList<ClassMember>(this); |
| 2502 this._abstractKeyword = abstractKeyword; | 2149 this.abstractKeyword = abstractKeyword; |
| 2503 this._classKeyword = classKeyword; | 2150 this.classKeyword = classKeyword; |
| 2504 this._name = becomeParentOf(name); | 2151 this._name = becomeParentOf(name); |
| 2505 this._typeParameters = becomeParentOf(typeParameters); | 2152 this.typeParameters = becomeParentOf(typeParameters); |
| 2506 this._extendsClause = becomeParentOf(extendsClause); | 2153 this._extendsClause = becomeParentOf(extendsClause); |
| 2507 this._withClause = becomeParentOf(withClause); | 2154 this._withClause = becomeParentOf(withClause); |
| 2508 this._implementsClause = becomeParentOf(implementsClause); | 2155 this._implementsClause = becomeParentOf(implementsClause); |
| 2509 this._leftBracket = leftBracket; | 2156 this.leftBracket = leftBracket; |
| 2510 this._members.addAll(members); | 2157 this.members.addAll(members); |
| 2511 this._rightBracket = rightBracket; | 2158 this.rightBracket = rightBracket; |
| 2512 } | 2159 } |
| 2513 | 2160 |
| 2514 /** | 2161 /** |
| 2515 * Initialize a newly created class declaration. | 2162 * Initialize a newly created class declaration. |
| 2516 * | 2163 * |
| 2517 * @param comment the documentation comment associated with this class | 2164 * @param comment the documentation comment associated with this class |
| 2518 * @param metadata the annotations associated with this class | 2165 * @param metadata the annotations associated with this class |
| 2519 * @param abstractKeyword the 'abstract' keyword, or `null` if the keyword was
absent | 2166 * @param abstractKeyword the 'abstract' keyword, or `null` if the keyword was
absent |
| 2520 * @param classKeyword the token representing the 'class' keyword | 2167 * @param classKeyword the token representing the 'class' keyword |
| 2521 * @param name the name of the class being declared | 2168 * @param name the name of the class being declared |
| 2522 * @param typeParameters the type parameters for the class | 2169 * @param typeParameters the type parameters for the class |
| 2523 * @param extendsClause the extends clause for the class | 2170 * @param extendsClause the extends clause for the class |
| 2524 * @param withClause the with clause for the class | 2171 * @param withClause the with clause for the class |
| 2525 * @param implementsClause the implements clause for the class | 2172 * @param implementsClause the implements clause for the class |
| 2526 * @param leftBracket the left curly bracket | 2173 * @param leftBracket the left curly bracket |
| 2527 * @param members the members defined by the class | 2174 * @param members the members defined by the class |
| 2528 * @param rightBracket the right curly bracket | 2175 * @param rightBracket the right curly bracket |
| 2529 */ | 2176 */ |
| 2530 ClassDeclaration({Comment comment, List<Annotation> metadata, Token abstractKe
yword, Token classKeyword, SimpleIdentifier name, TypeParameterList typeParamete
rs, ExtendsClause extendsClause, WithClause withClause, ImplementsClause impleme
ntsClause, Token leftBracket, List<ClassMember> members, Token rightBracket}) :
this.full(comment, metadata, abstractKeyword, classKeyword, name, typeParameters
, extendsClause, withClause, implementsClause, leftBracket, members, rightBracke
t); | 2177 ClassDeclaration({Comment comment, List<Annotation> metadata, Token abstractKe
yword, Token classKeyword, SimpleIdentifier name, TypeParameterList typeParamete
rs, ExtendsClause extendsClause, WithClause withClause, ImplementsClause impleme
ntsClause, Token leftBracket, List<ClassMember> members, Token rightBracket}) :
this.full(comment, metadata, abstractKeyword, classKeyword, name, typeParameters
, extendsClause, withClause, implementsClause, leftBracket, members, rightBracke
t); |
| 2531 accept(ASTVisitor visitor) => visitor.visitClassDeclaration(this); | 2178 accept(ASTVisitor visitor) => visitor.visitClassDeclaration(this); |
| 2532 | |
| 2533 /** | |
| 2534 * Return the 'abstract' keyword, or `null` if the keyword was absent. | |
| 2535 * | |
| 2536 * @return the 'abstract' keyword | |
| 2537 */ | |
| 2538 Token get abstractKeyword => _abstractKeyword; | |
| 2539 | |
| 2540 /** | |
| 2541 * Return the token representing the 'class' keyword. | |
| 2542 * | |
| 2543 * @return the token representing the 'class' keyword | |
| 2544 */ | |
| 2545 Token get classKeyword => _classKeyword; | |
| 2546 ClassElement get element => _name != null ? (_name.staticElement as ClassEleme
nt) : null; | 2179 ClassElement get element => _name != null ? (_name.staticElement as ClassEleme
nt) : null; |
| 2547 Token get endToken => _rightBracket; | 2180 Token get endToken => rightBracket; |
| 2548 | 2181 |
| 2549 /** | 2182 /** |
| 2550 * Return the extends clause for this class, or `null` if the class does not e
xtend any | 2183 * Return the extends clause for this class, or `null` if the class does not e
xtend any |
| 2551 * other class. | 2184 * other class. |
| 2552 * | 2185 * |
| 2553 * @return the extends clause for this class | 2186 * @return the extends clause for this class |
| 2554 */ | 2187 */ |
| 2555 ExtendsClause get extendsClause => _extendsClause; | 2188 ExtendsClause get extendsClause => _extendsClause; |
| 2556 | 2189 |
| 2557 /** | 2190 /** |
| 2558 * Return the implements clause for the class, or `null` if the class does not
implement any | 2191 * Return the implements clause for the class, or `null` if the class does not
implement any |
| 2559 * interfaces. | 2192 * interfaces. |
| 2560 * | 2193 * |
| 2561 * @return the implements clause for the class | 2194 * @return the implements clause for the class |
| 2562 */ | 2195 */ |
| 2563 ImplementsClause get implementsClause => _implementsClause; | 2196 ImplementsClause get implementsClause => _implementsClause; |
| 2564 | 2197 |
| 2565 /** | 2198 /** |
| 2566 * Return the left curly bracket. | |
| 2567 * | |
| 2568 * @return the left curly bracket | |
| 2569 */ | |
| 2570 Token get leftBracket => _leftBracket; | |
| 2571 | |
| 2572 /** | |
| 2573 * Return the members defined by the class. | |
| 2574 * | |
| 2575 * @return the members defined by the class | |
| 2576 */ | |
| 2577 NodeList<ClassMember> get members => _members; | |
| 2578 | |
| 2579 /** | |
| 2580 * Return the name of the class being declared. | 2199 * Return the name of the class being declared. |
| 2581 * | 2200 * |
| 2582 * @return the name of the class being declared | 2201 * @return the name of the class being declared |
| 2583 */ | 2202 */ |
| 2584 SimpleIdentifier get name => _name; | 2203 SimpleIdentifier get name => _name; |
| 2585 | 2204 |
| 2586 /** | 2205 /** |
| 2587 * Return the native clause for this class, or `null` if the class does not ha
ve a native | |
| 2588 * cluse. | |
| 2589 * | |
| 2590 * @return the native clause for this class | |
| 2591 */ | |
| 2592 NativeClause get nativeClause => _nativeClause; | |
| 2593 | |
| 2594 /** | |
| 2595 * Return the right curly bracket. | |
| 2596 * | |
| 2597 * @return the right curly bracket | |
| 2598 */ | |
| 2599 Token get rightBracket => _rightBracket; | |
| 2600 | |
| 2601 /** | |
| 2602 * Return the type parameters for the class, or `null` if the class does not h
ave any type | |
| 2603 * parameters. | |
| 2604 * | |
| 2605 * @return the type parameters for the class | |
| 2606 */ | |
| 2607 TypeParameterList get typeParameters => _typeParameters; | |
| 2608 | |
| 2609 /** | |
| 2610 * Return the with clause for the class, or `null` if the class does not have
a with clause. | 2206 * Return the with clause for the class, or `null` if the class does not have
a with clause. |
| 2611 * | 2207 * |
| 2612 * @return the with clause for the class | 2208 * @return the with clause for the class |
| 2613 */ | 2209 */ |
| 2614 WithClause get withClause => _withClause; | 2210 WithClause get withClause => _withClause; |
| 2615 | 2211 |
| 2616 /** | 2212 /** |
| 2617 * Set the 'abstract' keyword to the given keyword. | |
| 2618 * | |
| 2619 * @param abstractKeyword the 'abstract' keyword | |
| 2620 */ | |
| 2621 void set abstractKeyword(Token abstractKeyword2) { | |
| 2622 this._abstractKeyword = abstractKeyword2; | |
| 2623 } | |
| 2624 | |
| 2625 /** | |
| 2626 * Set the token representing the 'class' keyword to the given token. | |
| 2627 * | |
| 2628 * @param classKeyword the token representing the 'class' keyword | |
| 2629 */ | |
| 2630 void set classKeyword(Token classKeyword2) { | |
| 2631 this._classKeyword = classKeyword2; | |
| 2632 } | |
| 2633 | |
| 2634 /** | |
| 2635 * Set the extends clause for this class to the given clause. | 2213 * Set the extends clause for this class to the given clause. |
| 2636 * | 2214 * |
| 2637 * @param extendsClause the extends clause for this class | 2215 * @param extendsClause the extends clause for this class |
| 2638 */ | 2216 */ |
| 2639 void set extendsClause(ExtendsClause extendsClause2) { | 2217 void set extendsClause(ExtendsClause extendsClause2) { |
| 2640 this._extendsClause = becomeParentOf(extendsClause2); | 2218 this._extendsClause = becomeParentOf(extendsClause2); |
| 2641 } | 2219 } |
| 2642 | 2220 |
| 2643 /** | 2221 /** |
| 2644 * Set the implements clause for the class to the given clause. | 2222 * Set the implements clause for the class to the given clause. |
| 2645 * | 2223 * |
| 2646 * @param implementsClause the implements clause for the class | 2224 * @param implementsClause the implements clause for the class |
| 2647 */ | 2225 */ |
| 2648 void set implementsClause(ImplementsClause implementsClause2) { | 2226 void set implementsClause(ImplementsClause implementsClause2) { |
| 2649 this._implementsClause = becomeParentOf(implementsClause2); | 2227 this._implementsClause = becomeParentOf(implementsClause2); |
| 2650 } | 2228 } |
| 2651 | 2229 |
| 2652 /** | 2230 /** |
| 2653 * Set the left curly bracket to the given token. | |
| 2654 * | |
| 2655 * @param leftBracket the left curly bracket | |
| 2656 */ | |
| 2657 void set leftBracket(Token leftBracket2) { | |
| 2658 this._leftBracket = leftBracket2; | |
| 2659 } | |
| 2660 | |
| 2661 /** | |
| 2662 * Set the name of the class being declared to the given identifier. | 2231 * Set the name of the class being declared to the given identifier. |
| 2663 * | 2232 * |
| 2664 * @param identifier the name of the class being declared | 2233 * @param identifier the name of the class being declared |
| 2665 */ | 2234 */ |
| 2666 void set name(SimpleIdentifier identifier) { | 2235 void set name(SimpleIdentifier identifier) { |
| 2667 _name = becomeParentOf(identifier); | 2236 _name = becomeParentOf(identifier); |
| 2668 } | 2237 } |
| 2669 | 2238 |
| 2670 /** | 2239 /** |
| 2671 * Set the native clause for this class to the given clause. | |
| 2672 * | |
| 2673 * @param nativeClause the native clause for this class | |
| 2674 */ | |
| 2675 void set nativeClause(NativeClause nativeClause2) { | |
| 2676 this._nativeClause = nativeClause2; | |
| 2677 } | |
| 2678 | |
| 2679 /** | |
| 2680 * Set the right curly bracket to the given token. | |
| 2681 * | |
| 2682 * @param rightBracket the right curly bracket | |
| 2683 */ | |
| 2684 void set rightBracket(Token rightBracket2) { | |
| 2685 this._rightBracket = rightBracket2; | |
| 2686 } | |
| 2687 | |
| 2688 /** | |
| 2689 * Set the type parameters for the class to the given list of type parameters. | |
| 2690 * | |
| 2691 * @param typeParameters the type parameters for the class | |
| 2692 */ | |
| 2693 void set typeParameters(TypeParameterList typeParameters2) { | |
| 2694 this._typeParameters = typeParameters2; | |
| 2695 } | |
| 2696 | |
| 2697 /** | |
| 2698 * Set the with clause for the class to the given clause. | 2240 * Set the with clause for the class to the given clause. |
| 2699 * | 2241 * |
| 2700 * @param withClause the with clause for the class | 2242 * @param withClause the with clause for the class |
| 2701 */ | 2243 */ |
| 2702 void set withClause(WithClause withClause2) { | 2244 void set withClause(WithClause withClause2) { |
| 2703 this._withClause = becomeParentOf(withClause2); | 2245 this._withClause = becomeParentOf(withClause2); |
| 2704 } | 2246 } |
| 2705 void visitChildren(ASTVisitor visitor) { | 2247 void visitChildren(ASTVisitor visitor) { |
| 2706 super.visitChildren(visitor); | 2248 super.visitChildren(visitor); |
| 2707 safelyVisitChild(_name, visitor); | 2249 safelyVisitChild(_name, visitor); |
| 2708 safelyVisitChild(_typeParameters, visitor); | 2250 safelyVisitChild(typeParameters, visitor); |
| 2709 safelyVisitChild(_extendsClause, visitor); | 2251 safelyVisitChild(_extendsClause, visitor); |
| 2710 safelyVisitChild(_withClause, visitor); | 2252 safelyVisitChild(_withClause, visitor); |
| 2711 safelyVisitChild(_implementsClause, visitor); | 2253 safelyVisitChild(_implementsClause, visitor); |
| 2712 safelyVisitChild(_nativeClause, visitor); | 2254 safelyVisitChild(nativeClause, visitor); |
| 2713 members.accept(visitor); | 2255 members.accept(visitor); |
| 2714 } | 2256 } |
| 2715 Token get firstTokenAfterCommentAndMetadata { | 2257 Token get firstTokenAfterCommentAndMetadata { |
| 2716 if (_abstractKeyword != null) { | 2258 if (abstractKeyword != null) { |
| 2717 return _abstractKeyword; | 2259 return abstractKeyword; |
| 2718 } | 2260 } |
| 2719 return _classKeyword; | 2261 return classKeyword; |
| 2720 } | 2262 } |
| 2721 } | 2263 } |
| 2722 /** | 2264 /** |
| 2723 * The abstract class `ClassMember` defines the behavior common to nodes that de
clare a name | 2265 * The abstract class `ClassMember` defines the behavior common to nodes that de
clare a name |
| 2724 * within the scope of a class. | 2266 * within the scope of a class. |
| 2725 * | 2267 * |
| 2726 * @coverage dart.engine.ast | 2268 * @coverage dart.engine.ast |
| 2727 */ | 2269 */ |
| 2728 abstract class ClassMember extends Declaration { | 2270 abstract class ClassMember extends Declaration { |
| 2729 | 2271 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2765 | 2307 |
| 2766 /** | 2308 /** |
| 2767 * The type parameters for the class, or `null` if the class does not have any
type | 2309 * The type parameters for the class, or `null` if the class does not have any
type |
| 2768 * parameters. | 2310 * parameters. |
| 2769 */ | 2311 */ |
| 2770 TypeParameterList _typeParameters; | 2312 TypeParameterList _typeParameters; |
| 2771 | 2313 |
| 2772 /** | 2314 /** |
| 2773 * The token for the '=' separating the name from the definition. | 2315 * The token for the '=' separating the name from the definition. |
| 2774 */ | 2316 */ |
| 2775 Token _equals; | 2317 Token equals; |
| 2776 | 2318 |
| 2777 /** | 2319 /** |
| 2778 * The token for the 'abstract' keyword, or `null` if this is not defining an
abstract | 2320 * The token for the 'abstract' keyword, or `null` if this is not defining an
abstract |
| 2779 * class. | 2321 * class. |
| 2780 */ | 2322 */ |
| 2781 Token _abstractKeyword; | 2323 Token abstractKeyword; |
| 2782 | 2324 |
| 2783 /** | 2325 /** |
| 2784 * The name of the superclass of the class being declared. | 2326 * The name of the superclass of the class being declared. |
| 2785 */ | 2327 */ |
| 2786 TypeName _superclass; | 2328 TypeName _superclass; |
| 2787 | 2329 |
| 2788 /** | 2330 /** |
| 2789 * The with clause for this class. | 2331 * The with clause for this class. |
| 2790 */ | 2332 */ |
| 2791 WithClause _withClause; | 2333 WithClause _withClause; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2806 * @param equals the token for the '=' separating the name from the definition | 2348 * @param equals the token for the '=' separating the name from the definition |
| 2807 * @param abstractKeyword the token for the 'abstract' keyword | 2349 * @param abstractKeyword the token for the 'abstract' keyword |
| 2808 * @param superclass the name of the superclass of the class being declared | 2350 * @param superclass the name of the superclass of the class being declared |
| 2809 * @param withClause the with clause for this class | 2351 * @param withClause the with clause for this class |
| 2810 * @param implementsClause the implements clause for this class | 2352 * @param implementsClause the implements clause for this class |
| 2811 * @param semicolon the semicolon terminating the declaration | 2353 * @param semicolon the semicolon terminating the declaration |
| 2812 */ | 2354 */ |
| 2813 ClassTypeAlias.full(Comment comment, List<Annotation> metadata, Token keyword,
SimpleIdentifier name, TypeParameterList typeParameters, Token equals, Token ab
stractKeyword, TypeName superclass, WithClause withClause, ImplementsClause impl
ementsClause, Token semicolon) : super.full(comment, metadata, keyword, semicolo
n) { | 2355 ClassTypeAlias.full(Comment comment, List<Annotation> metadata, Token keyword,
SimpleIdentifier name, TypeParameterList typeParameters, Token equals, Token ab
stractKeyword, TypeName superclass, WithClause withClause, ImplementsClause impl
ementsClause, Token semicolon) : super.full(comment, metadata, keyword, semicolo
n) { |
| 2814 this._name = becomeParentOf(name); | 2356 this._name = becomeParentOf(name); |
| 2815 this._typeParameters = becomeParentOf(typeParameters); | 2357 this._typeParameters = becomeParentOf(typeParameters); |
| 2816 this._equals = equals; | 2358 this.equals = equals; |
| 2817 this._abstractKeyword = abstractKeyword; | 2359 this.abstractKeyword = abstractKeyword; |
| 2818 this._superclass = becomeParentOf(superclass); | 2360 this._superclass = becomeParentOf(superclass); |
| 2819 this._withClause = becomeParentOf(withClause); | 2361 this._withClause = becomeParentOf(withClause); |
| 2820 this._implementsClause = becomeParentOf(implementsClause); | 2362 this._implementsClause = becomeParentOf(implementsClause); |
| 2821 } | 2363 } |
| 2822 | 2364 |
| 2823 /** | 2365 /** |
| 2824 * Initialize a newly created class type alias. | 2366 * Initialize a newly created class type alias. |
| 2825 * | 2367 * |
| 2826 * @param comment the documentation comment associated with this type alias | 2368 * @param comment the documentation comment associated with this type alias |
| 2827 * @param metadata the annotations associated with this type alias | 2369 * @param metadata the annotations associated with this type alias |
| 2828 * @param keyword the token representing the 'typedef' keyword | 2370 * @param keyword the token representing the 'typedef' keyword |
| 2829 * @param name the name of the class being declared | 2371 * @param name the name of the class being declared |
| 2830 * @param typeParameters the type parameters for the class | 2372 * @param typeParameters the type parameters for the class |
| 2831 * @param equals the token for the '=' separating the name from the definition | 2373 * @param equals the token for the '=' separating the name from the definition |
| 2832 * @param abstractKeyword the token for the 'abstract' keyword | 2374 * @param abstractKeyword the token for the 'abstract' keyword |
| 2833 * @param superclass the name of the superclass of the class being declared | 2375 * @param superclass the name of the superclass of the class being declared |
| 2834 * @param withClause the with clause for this class | 2376 * @param withClause the with clause for this class |
| 2835 * @param implementsClause the implements clause for this class | 2377 * @param implementsClause the implements clause for this class |
| 2836 * @param semicolon the semicolon terminating the declaration | 2378 * @param semicolon the semicolon terminating the declaration |
| 2837 */ | 2379 */ |
| 2838 ClassTypeAlias({Comment comment, List<Annotation> metadata, Token keyword, Sim
pleIdentifier name, TypeParameterList typeParameters, Token equals, Token abstra
ctKeyword, TypeName superclass, WithClause withClause, ImplementsClause implemen
tsClause, Token semicolon}) : this.full(comment, metadata, keyword, name, typePa
rameters, equals, abstractKeyword, superclass, withClause, implementsClause, sem
icolon); | 2380 ClassTypeAlias({Comment comment, List<Annotation> metadata, Token keyword, Sim
pleIdentifier name, TypeParameterList typeParameters, Token equals, Token abstra
ctKeyword, TypeName superclass, WithClause withClause, ImplementsClause implemen
tsClause, Token semicolon}) : this.full(comment, metadata, keyword, name, typePa
rameters, equals, abstractKeyword, superclass, withClause, implementsClause, sem
icolon); |
| 2839 accept(ASTVisitor visitor) => visitor.visitClassTypeAlias(this); | 2381 accept(ASTVisitor visitor) => visitor.visitClassTypeAlias(this); |
| 2840 | |
| 2841 /** | |
| 2842 * Return the token for the 'abstract' keyword, or `null` if this is not defin
ing an | |
| 2843 * abstract class. | |
| 2844 * | |
| 2845 * @return the token for the 'abstract' keyword | |
| 2846 */ | |
| 2847 Token get abstractKeyword => _abstractKeyword; | |
| 2848 ClassElement get element => _name != null ? (_name.staticElement as ClassEleme
nt) : null; | 2382 ClassElement get element => _name != null ? (_name.staticElement as ClassEleme
nt) : null; |
| 2849 | 2383 |
| 2850 /** | 2384 /** |
| 2851 * Return the token for the '=' separating the name from the definition. | |
| 2852 * | |
| 2853 * @return the token for the '=' separating the name from the definition | |
| 2854 */ | |
| 2855 Token get equals => _equals; | |
| 2856 | |
| 2857 /** | |
| 2858 * Return the implements clause for this class, or `null` if there is no imple
ments clause. | 2385 * Return the implements clause for this class, or `null` if there is no imple
ments clause. |
| 2859 * | 2386 * |
| 2860 * @return the implements clause for this class | 2387 * @return the implements clause for this class |
| 2861 */ | 2388 */ |
| 2862 ImplementsClause get implementsClause => _implementsClause; | 2389 ImplementsClause get implementsClause => _implementsClause; |
| 2863 | 2390 |
| 2864 /** | 2391 /** |
| 2865 * Return the name of the class being declared. | 2392 * Return the name of the class being declared. |
| 2866 * | 2393 * |
| 2867 * @return the name of the class being declared | 2394 * @return the name of the class being declared |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2884 TypeParameterList get typeParameters => _typeParameters; | 2411 TypeParameterList get typeParameters => _typeParameters; |
| 2885 | 2412 |
| 2886 /** | 2413 /** |
| 2887 * Return the with clause for this class. | 2414 * Return the with clause for this class. |
| 2888 * | 2415 * |
| 2889 * @return the with clause for this class | 2416 * @return the with clause for this class |
| 2890 */ | 2417 */ |
| 2891 WithClause get withClause => _withClause; | 2418 WithClause get withClause => _withClause; |
| 2892 | 2419 |
| 2893 /** | 2420 /** |
| 2894 * Set the token for the 'abstract' keyword to the given token. | |
| 2895 * | |
| 2896 * @param abstractKeyword the token for the 'abstract' keyword | |
| 2897 */ | |
| 2898 void set abstractKeyword(Token abstractKeyword2) { | |
| 2899 this._abstractKeyword = abstractKeyword2; | |
| 2900 } | |
| 2901 | |
| 2902 /** | |
| 2903 * Set the token for the '=' separating the name from the definition to the gi
ven token. | |
| 2904 * | |
| 2905 * @param equals the token for the '=' separating the name from the definition | |
| 2906 */ | |
| 2907 void set equals(Token equals2) { | |
| 2908 this._equals = equals2; | |
| 2909 } | |
| 2910 | |
| 2911 /** | |
| 2912 * Set the implements clause for this class to the given implements clause. | 2421 * Set the implements clause for this class to the given implements clause. |
| 2913 * | 2422 * |
| 2914 * @param implementsClause the implements clause for this class | 2423 * @param implementsClause the implements clause for this class |
| 2915 */ | 2424 */ |
| 2916 void set implementsClause(ImplementsClause implementsClause2) { | 2425 void set implementsClause(ImplementsClause implementsClause2) { |
| 2917 this._implementsClause = becomeParentOf(implementsClause2); | 2426 this._implementsClause = becomeParentOf(implementsClause2); |
| 2918 } | 2427 } |
| 2919 | 2428 |
| 2920 /** | 2429 /** |
| 2921 * Set the name of the class being declared to the given identifier. | 2430 * Set the name of the class being declared to the given identifier. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2971 * | [ShowCombinator] | 2480 * | [ShowCombinator] |
| 2972 * </pre> | 2481 * </pre> |
| 2973 * | 2482 * |
| 2974 * @coverage dart.engine.ast | 2483 * @coverage dart.engine.ast |
| 2975 */ | 2484 */ |
| 2976 abstract class Combinator extends ASTNode { | 2485 abstract class Combinator extends ASTNode { |
| 2977 | 2486 |
| 2978 /** | 2487 /** |
| 2979 * The keyword specifying what kind of processing is to be done on the importe
d names. | 2488 * The keyword specifying what kind of processing is to be done on the importe
d names. |
| 2980 */ | 2489 */ |
| 2981 Token _keyword; | 2490 Token keyword; |
| 2982 | 2491 |
| 2983 /** | 2492 /** |
| 2984 * Initialize a newly created import combinator. | 2493 * Initialize a newly created import combinator. |
| 2985 * | 2494 * |
| 2986 * @param keyword the keyword specifying what kind of processing is to be done
on the imported | 2495 * @param keyword the keyword specifying what kind of processing is to be done
on the imported |
| 2987 * names | 2496 * names |
| 2988 */ | 2497 */ |
| 2989 Combinator.full(Token keyword) { | 2498 Combinator.full(Token keyword) { |
| 2990 this._keyword = keyword; | 2499 this.keyword = keyword; |
| 2991 } | 2500 } |
| 2992 | 2501 |
| 2993 /** | 2502 /** |
| 2994 * Initialize a newly created import combinator. | 2503 * Initialize a newly created import combinator. |
| 2995 * | 2504 * |
| 2996 * @param keyword the keyword specifying what kind of processing is to be done
on the imported | 2505 * @param keyword the keyword specifying what kind of processing is to be done
on the imported |
| 2997 * names | 2506 * names |
| 2998 */ | 2507 */ |
| 2999 Combinator({Token keyword}) : this.full(keyword); | 2508 Combinator({Token keyword}) : this.full(keyword); |
| 3000 Token get beginToken => _keyword; | 2509 Token get beginToken => keyword; |
| 3001 | |
| 3002 /** | |
| 3003 * Return the keyword specifying what kind of processing is to be done on the
imported names. | |
| 3004 * | |
| 3005 * @return the keyword specifying what kind of processing is to be done on the
imported names | |
| 3006 */ | |
| 3007 Token get keyword => _keyword; | |
| 3008 | |
| 3009 /** | |
| 3010 * Set the keyword specifying what kind of processing is to be done on the imp
orted names to the | |
| 3011 * given token. | |
| 3012 * | |
| 3013 * @param keyword the keyword specifying what kind of processing is to be done
on the imported | |
| 3014 * names | |
| 3015 */ | |
| 3016 void set keyword(Token keyword2) { | |
| 3017 this._keyword = keyword2; | |
| 3018 } | |
| 3019 } | 2510 } |
| 3020 /** | 2511 /** |
| 3021 * Instances of the class `Comment` represent a comment within the source code. | 2512 * Instances of the class `Comment` represent a comment within the source code. |
| 3022 * | 2513 * |
| 3023 * <pre> | 2514 * <pre> |
| 3024 * comment ::= | 2515 * comment ::= |
| 3025 * endOfLineComment | 2516 * endOfLineComment |
| 3026 * | blockComment | 2517 * | blockComment |
| 3027 * | documentationComment | 2518 * | documentationComment |
| 3028 * | 2519 * |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3070 * Create an end-of-line comment. | 2561 * Create an end-of-line comment. |
| 3071 * | 2562 * |
| 3072 * @param tokens the tokens representing the comment | 2563 * @param tokens the tokens representing the comment |
| 3073 * @return the end-of-line comment that was created | 2564 * @return the end-of-line comment that was created |
| 3074 */ | 2565 */ |
| 3075 static Comment createEndOfLineComment(List<Token> tokens) => new Comment.full(
tokens, CommentType.END_OF_LINE, null); | 2566 static Comment createEndOfLineComment(List<Token> tokens) => new Comment.full(
tokens, CommentType.END_OF_LINE, null); |
| 3076 | 2567 |
| 3077 /** | 2568 /** |
| 3078 * The tokens representing the comment. | 2569 * The tokens representing the comment. |
| 3079 */ | 2570 */ |
| 3080 List<Token> _tokens; | 2571 List<Token> tokens; |
| 3081 | 2572 |
| 3082 /** | 2573 /** |
| 3083 * The type of the comment. | 2574 * The type of the comment. |
| 3084 */ | 2575 */ |
| 3085 CommentType _type; | 2576 CommentType _type; |
| 3086 | 2577 |
| 3087 /** | 2578 /** |
| 3088 * The references embedded within the documentation comment. This list will be
empty unless this | 2579 * The references embedded within the documentation comment. This list will be
empty unless this |
| 3089 * is a documentation comment that has references embedded within it. | 2580 * is a documentation comment that has references embedded within it. |
| 3090 */ | 2581 */ |
| 3091 NodeList<CommentReference> _references; | 2582 NodeList<CommentReference> references; |
| 3092 | 2583 |
| 3093 /** | 2584 /** |
| 3094 * Initialize a newly created comment. | 2585 * Initialize a newly created comment. |
| 3095 * | 2586 * |
| 3096 * @param tokens the tokens representing the comment | 2587 * @param tokens the tokens representing the comment |
| 3097 * @param type the type of the comment | 2588 * @param type the type of the comment |
| 3098 * @param references the references embedded within the documentation comment | 2589 * @param references the references embedded within the documentation comment |
| 3099 */ | 2590 */ |
| 3100 Comment.full(List<Token> tokens, CommentType type, List<CommentReference> refe
rences) { | 2591 Comment.full(List<Token> tokens, CommentType type, List<CommentReference> refe
rences) { |
| 3101 this._references = new NodeList<CommentReference>(this); | 2592 this.references = new NodeList<CommentReference>(this); |
| 3102 this._tokens = tokens; | 2593 this.tokens = tokens; |
| 3103 this._type = type; | 2594 this._type = type; |
| 3104 this._references.addAll(references); | 2595 this.references.addAll(references); |
| 3105 } | 2596 } |
| 3106 | 2597 |
| 3107 /** | 2598 /** |
| 3108 * Initialize a newly created comment. | 2599 * Initialize a newly created comment. |
| 3109 * | 2600 * |
| 3110 * @param tokens the tokens representing the comment | 2601 * @param tokens the tokens representing the comment |
| 3111 * @param type the type of the comment | 2602 * @param type the type of the comment |
| 3112 * @param references the references embedded within the documentation comment | 2603 * @param references the references embedded within the documentation comment |
| 3113 */ | 2604 */ |
| 3114 Comment({List<Token> tokens, CommentType type, List<CommentReference> referenc
es}) : this.full(tokens, type, references); | 2605 Comment({List<Token> tokens, CommentType type, List<CommentReference> referenc
es}) : this.full(tokens, type, references); |
| 3115 accept(ASTVisitor visitor) => visitor.visitComment(this); | 2606 accept(ASTVisitor visitor) => visitor.visitComment(this); |
| 3116 Token get beginToken => _tokens[0]; | 2607 Token get beginToken => tokens[0]; |
| 3117 Token get endToken => _tokens[_tokens.length - 1]; | 2608 Token get endToken => tokens[tokens.length - 1]; |
| 3118 | |
| 3119 /** | |
| 3120 * Return the references embedded within the documentation comment. | |
| 3121 * | |
| 3122 * @return the references embedded within the documentation comment | |
| 3123 */ | |
| 3124 NodeList<CommentReference> get references => _references; | |
| 3125 | |
| 3126 /** | |
| 3127 * Return the tokens representing the comment. | |
| 3128 * | |
| 3129 * @return the tokens representing the comment | |
| 3130 */ | |
| 3131 List<Token> get tokens => _tokens; | |
| 3132 | 2609 |
| 3133 /** | 2610 /** |
| 3134 * Return `true` if this is a block comment. | 2611 * Return `true` if this is a block comment. |
| 3135 * | 2612 * |
| 3136 * @return `true` if this is a block comment | 2613 * @return `true` if this is a block comment |
| 3137 */ | 2614 */ |
| 3138 bool get isBlock => identical(_type, CommentType.BLOCK); | 2615 bool get isBlock => identical(_type, CommentType.BLOCK); |
| 3139 | 2616 |
| 3140 /** | 2617 /** |
| 3141 * Return `true` if this is a documentation comment. | 2618 * Return `true` if this is a documentation comment. |
| 3142 * | 2619 * |
| 3143 * @return `true` if this is a documentation comment | 2620 * @return `true` if this is a documentation comment |
| 3144 */ | 2621 */ |
| 3145 bool get isDocumentation => identical(_type, CommentType.DOCUMENTATION); | 2622 bool get isDocumentation => identical(_type, CommentType.DOCUMENTATION); |
| 3146 | 2623 |
| 3147 /** | 2624 /** |
| 3148 * Return `true` if this is an end-of-line comment. | 2625 * Return `true` if this is an end-of-line comment. |
| 3149 * | 2626 * |
| 3150 * @return `true` if this is an end-of-line comment | 2627 * @return `true` if this is an end-of-line comment |
| 3151 */ | 2628 */ |
| 3152 bool get isEndOfLine => identical(_type, CommentType.END_OF_LINE); | 2629 bool get isEndOfLine => identical(_type, CommentType.END_OF_LINE); |
| 3153 void visitChildren(ASTVisitor visitor) { | 2630 void visitChildren(ASTVisitor visitor) { |
| 3154 _references.accept(visitor); | 2631 references.accept(visitor); |
| 3155 } | 2632 } |
| 3156 } | 2633 } |
| 3157 /** | 2634 /** |
| 3158 * The enumeration `CommentType` encodes all the different types of comments tha
t are | 2635 * The enumeration `CommentType` encodes all the different types of comments tha
t are |
| 3159 * recognized by the parser. | 2636 * recognized by the parser. |
| 3160 */ | 2637 */ |
| 3161 class CommentType extends Enum<CommentType> { | 2638 class CommentType extends Enum<CommentType> { |
| 3162 | 2639 |
| 3163 /** | 2640 /** |
| 3164 * An end-of-line comment. | 2641 * An end-of-line comment. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3186 * '[' 'new'? [Identifier] ']' | 2663 * '[' 'new'? [Identifier] ']' |
| 3187 * </pre> | 2664 * </pre> |
| 3188 * | 2665 * |
| 3189 * @coverage dart.engine.ast | 2666 * @coverage dart.engine.ast |
| 3190 */ | 2667 */ |
| 3191 class CommentReference extends ASTNode { | 2668 class CommentReference extends ASTNode { |
| 3192 | 2669 |
| 3193 /** | 2670 /** |
| 3194 * The token representing the 'new' keyword, or `null` if there was no 'new' k
eyword. | 2671 * The token representing the 'new' keyword, or `null` if there was no 'new' k
eyword. |
| 3195 */ | 2672 */ |
| 3196 Token _newKeyword; | 2673 Token newKeyword; |
| 3197 | 2674 |
| 3198 /** | 2675 /** |
| 3199 * The identifier being referenced. | 2676 * The identifier being referenced. |
| 3200 */ | 2677 */ |
| 3201 Identifier _identifier; | 2678 Identifier _identifier; |
| 3202 | 2679 |
| 3203 /** | 2680 /** |
| 3204 * Initialize a newly created reference to a Dart element. | 2681 * Initialize a newly created reference to a Dart element. |
| 3205 * | 2682 * |
| 3206 * @param newKeyword the token representing the 'new' keyword | 2683 * @param newKeyword the token representing the 'new' keyword |
| 3207 * @param identifier the identifier being referenced | 2684 * @param identifier the identifier being referenced |
| 3208 */ | 2685 */ |
| 3209 CommentReference.full(Token newKeyword, Identifier identifier) { | 2686 CommentReference.full(Token newKeyword, Identifier identifier) { |
| 3210 this._newKeyword = newKeyword; | 2687 this.newKeyword = newKeyword; |
| 3211 this._identifier = becomeParentOf(identifier); | 2688 this._identifier = becomeParentOf(identifier); |
| 3212 } | 2689 } |
| 3213 | 2690 |
| 3214 /** | 2691 /** |
| 3215 * Initialize a newly created reference to a Dart element. | 2692 * Initialize a newly created reference to a Dart element. |
| 3216 * | 2693 * |
| 3217 * @param newKeyword the token representing the 'new' keyword | 2694 * @param newKeyword the token representing the 'new' keyword |
| 3218 * @param identifier the identifier being referenced | 2695 * @param identifier the identifier being referenced |
| 3219 */ | 2696 */ |
| 3220 CommentReference({Token newKeyword, Identifier identifier}) : this.full(newKey
word, identifier); | 2697 CommentReference({Token newKeyword, Identifier identifier}) : this.full(newKey
word, identifier); |
| 3221 accept(ASTVisitor visitor) => visitor.visitCommentReference(this); | 2698 accept(ASTVisitor visitor) => visitor.visitCommentReference(this); |
| 3222 Token get beginToken => _identifier.beginToken; | 2699 Token get beginToken => _identifier.beginToken; |
| 3223 Token get endToken => _identifier.endToken; | 2700 Token get endToken => _identifier.endToken; |
| 3224 | 2701 |
| 3225 /** | 2702 /** |
| 3226 * Return the identifier being referenced. | 2703 * Return the identifier being referenced. |
| 3227 * | 2704 * |
| 3228 * @return the identifier being referenced | 2705 * @return the identifier being referenced |
| 3229 */ | 2706 */ |
| 3230 Identifier get identifier => _identifier; | 2707 Identifier get identifier => _identifier; |
| 3231 | 2708 |
| 3232 /** | 2709 /** |
| 3233 * Return the token representing the 'new' keyword, or `null` if there was no
'new' keyword. | |
| 3234 * | |
| 3235 * @return the token representing the 'new' keyword | |
| 3236 */ | |
| 3237 Token get newKeyword => _newKeyword; | |
| 3238 | |
| 3239 /** | |
| 3240 * Set the identifier being referenced to the given identifier. | 2710 * Set the identifier being referenced to the given identifier. |
| 3241 * | 2711 * |
| 3242 * @param identifier the identifier being referenced | 2712 * @param identifier the identifier being referenced |
| 3243 */ | 2713 */ |
| 3244 void set identifier(Identifier identifier2) { | 2714 void set identifier(Identifier identifier2) { |
| 3245 identifier2 = becomeParentOf(identifier2); | 2715 identifier2 = becomeParentOf(identifier2); |
| 3246 } | 2716 } |
| 3247 | |
| 3248 /** | |
| 3249 * Set the token representing the 'new' keyword to the given token. | |
| 3250 * | |
| 3251 * @param newKeyword the token representing the 'new' keyword | |
| 3252 */ | |
| 3253 void set newKeyword(Token newKeyword2) { | |
| 3254 this._newKeyword = newKeyword2; | |
| 3255 } | |
| 3256 void visitChildren(ASTVisitor visitor) { | 2717 void visitChildren(ASTVisitor visitor) { |
| 3257 safelyVisitChild(_identifier, visitor); | 2718 safelyVisitChild(_identifier, visitor); |
| 3258 } | 2719 } |
| 3259 } | 2720 } |
| 3260 /** | 2721 /** |
| 3261 * Instances of the class `CompilationUnit` represent a compilation unit. | 2722 * Instances of the class `CompilationUnit` represent a compilation unit. |
| 3262 * | 2723 * |
| 3263 * While the grammar restricts the order of the directives and declarations with
in a compilation | 2724 * While the grammar restricts the order of the directives and declarations with
in a compilation |
| 3264 * unit, this class does not enforce those restrictions. In particular, the chil
dren of a | 2725 * unit, this class does not enforce those restrictions. In particular, the chil
dren of a |
| 3265 * compilation unit will be visited in lexical order even if lexical order does
not conform to the | 2726 * compilation unit will be visited in lexical order even if lexical order does
not conform to the |
| (...skipping 26 matching lines...) Expand all Loading... |
| 3292 | 2753 |
| 3293 /** | 2754 /** |
| 3294 * The script tag at the beginning of the compilation unit, or `null` if there
is no script | 2755 * The script tag at the beginning of the compilation unit, or `null` if there
is no script |
| 3295 * tag in this compilation unit. | 2756 * tag in this compilation unit. |
| 3296 */ | 2757 */ |
| 3297 ScriptTag _scriptTag; | 2758 ScriptTag _scriptTag; |
| 3298 | 2759 |
| 3299 /** | 2760 /** |
| 3300 * The directives contained in this compilation unit. | 2761 * The directives contained in this compilation unit. |
| 3301 */ | 2762 */ |
| 3302 NodeList<Directive> _directives; | 2763 NodeList<Directive> directives; |
| 3303 | 2764 |
| 3304 /** | 2765 /** |
| 3305 * The declarations contained in this compilation unit. | 2766 * The declarations contained in this compilation unit. |
| 3306 */ | 2767 */ |
| 3307 NodeList<CompilationUnitMember> _declarations; | 2768 NodeList<CompilationUnitMember> declarations; |
| 3308 | 2769 |
| 3309 /** | 2770 /** |
| 3310 * The last token in the token stream that was parsed to form this compilation
unit. This token | 2771 * The last token in the token stream that was parsed to form this compilation
unit. This token |
| 3311 * should always have a type of [TokenType.EOF]. | 2772 * should always have a type of [TokenType.EOF]. |
| 3312 */ | 2773 */ |
| 3313 Token _endToken; | 2774 Token _endToken; |
| 3314 | 2775 |
| 3315 /** | 2776 /** |
| 3316 * The element associated with this compilation unit, or `null` if the AST str
ucture has not | 2777 * The element associated with this compilation unit, or `null` if the AST str
ucture has not |
| 3317 * been resolved. | 2778 * been resolved. |
| 3318 */ | 2779 */ |
| 3319 CompilationUnitElement _element; | 2780 CompilationUnitElement element; |
| 3320 | 2781 |
| 3321 /** | 2782 /** |
| 3322 * The line information for this compilation unit. | 2783 * The line information for this compilation unit. |
| 3323 */ | 2784 */ |
| 3324 LineInfo _lineInfo; | 2785 LineInfo lineInfo; |
| 3325 | 2786 |
| 3326 /** | 2787 /** |
| 3327 * The parsing errors encountered when the receiver was parsed. | 2788 * The parsing errors encountered when the receiver was parsed. |
| 3328 */ | 2789 */ |
| 3329 List<AnalysisError> _parsingErrors = AnalysisError.NO_ERRORS; | 2790 List<AnalysisError> _parsingErrors = AnalysisError.NO_ERRORS; |
| 3330 | 2791 |
| 3331 /** | 2792 /** |
| 3332 * The resolution errors encountered when the receiver was resolved. | 2793 * The resolution errors encountered when the receiver was resolved. |
| 3333 */ | 2794 */ |
| 3334 List<AnalysisError> _resolutionErrors = AnalysisError.NO_ERRORS; | 2795 List<AnalysisError> _resolutionErrors = AnalysisError.NO_ERRORS; |
| 3335 | 2796 |
| 3336 /** | 2797 /** |
| 3337 * Initialize a newly created compilation unit to have the given directives an
d declarations. | 2798 * Initialize a newly created compilation unit to have the given directives an
d declarations. |
| 3338 * | 2799 * |
| 3339 * @param beginToken the first token in the token stream | 2800 * @param beginToken the first token in the token stream |
| 3340 * @param scriptTag the script tag at the beginning of the compilation unit | 2801 * @param scriptTag the script tag at the beginning of the compilation unit |
| 3341 * @param directives the directives contained in this compilation unit | 2802 * @param directives the directives contained in this compilation unit |
| 3342 * @param declarations the declarations contained in this compilation unit | 2803 * @param declarations the declarations contained in this compilation unit |
| 3343 * @param endToken the last token in the token stream | 2804 * @param endToken the last token in the token stream |
| 3344 */ | 2805 */ |
| 3345 CompilationUnit.full(Token beginToken, ScriptTag scriptTag, List<Directive> di
rectives, List<CompilationUnitMember> declarations, Token endToken) { | 2806 CompilationUnit.full(Token beginToken, ScriptTag scriptTag, List<Directive> di
rectives, List<CompilationUnitMember> declarations, Token endToken) { |
| 3346 this._directives = new NodeList<Directive>(this); | 2807 this.directives = new NodeList<Directive>(this); |
| 3347 this._declarations = new NodeList<CompilationUnitMember>(this); | 2808 this.declarations = new NodeList<CompilationUnitMember>(this); |
| 3348 this._beginToken = beginToken; | 2809 this._beginToken = beginToken; |
| 3349 this._scriptTag = becomeParentOf(scriptTag); | 2810 this._scriptTag = becomeParentOf(scriptTag); |
| 3350 this._directives.addAll(directives); | 2811 this.directives.addAll(directives); |
| 3351 this._declarations.addAll(declarations); | 2812 this.declarations.addAll(declarations); |
| 3352 this._endToken = endToken; | 2813 this._endToken = endToken; |
| 3353 } | 2814 } |
| 3354 | 2815 |
| 3355 /** | 2816 /** |
| 3356 * Initialize a newly created compilation unit to have the given directives an
d declarations. | 2817 * Initialize a newly created compilation unit to have the given directives an
d declarations. |
| 3357 * | 2818 * |
| 3358 * @param beginToken the first token in the token stream | 2819 * @param beginToken the first token in the token stream |
| 3359 * @param scriptTag the script tag at the beginning of the compilation unit | 2820 * @param scriptTag the script tag at the beginning of the compilation unit |
| 3360 * @param directives the directives contained in this compilation unit | 2821 * @param directives the directives contained in this compilation unit |
| 3361 * @param declarations the declarations contained in this compilation unit | 2822 * @param declarations the declarations contained in this compilation unit |
| 3362 * @param endToken the last token in the token stream | 2823 * @param endToken the last token in the token stream |
| 3363 */ | 2824 */ |
| 3364 CompilationUnit({Token beginToken, ScriptTag scriptTag, List<Directive> direct
ives, List<CompilationUnitMember> declarations, Token endToken}) : this.full(beg
inToken, scriptTag, directives, declarations, endToken); | 2825 CompilationUnit({Token beginToken, ScriptTag scriptTag, List<Directive> direct
ives, List<CompilationUnitMember> declarations, Token endToken}) : this.full(beg
inToken, scriptTag, directives, declarations, endToken); |
| 3365 accept(ASTVisitor visitor) => visitor.visitCompilationUnit(this); | 2826 accept(ASTVisitor visitor) => visitor.visitCompilationUnit(this); |
| 3366 Token get beginToken => _beginToken; | 2827 Token get beginToken => _beginToken; |
| 3367 | |
| 3368 /** | |
| 3369 * Return the declarations contained in this compilation unit. | |
| 3370 * | |
| 3371 * @return the declarations contained in this compilation unit | |
| 3372 */ | |
| 3373 NodeList<CompilationUnitMember> get declarations => _declarations; | |
| 3374 | |
| 3375 /** | |
| 3376 * Return the directives contained in this compilation unit. | |
| 3377 * | |
| 3378 * @return the directives contained in this compilation unit | |
| 3379 */ | |
| 3380 NodeList<Directive> get directives => _directives; | |
| 3381 | |
| 3382 /** | |
| 3383 * Return the element associated with this compilation unit, or `null` if the
AST structure | |
| 3384 * has not been resolved. | |
| 3385 * | |
| 3386 * @return the element associated with this compilation unit | |
| 3387 */ | |
| 3388 CompilationUnitElement get element => _element; | |
| 3389 Token get endToken => _endToken; | 2828 Token get endToken => _endToken; |
| 3390 | 2829 |
| 3391 /** | 2830 /** |
| 3392 * Return an array containing all of the errors associated with the receiver.
The array will be | 2831 * Return an array containing all of the errors associated with the receiver.
The array will be |
| 3393 * empty if the receiver has not been resolved and there were no parse errors. | 2832 * empty if the receiver has not been resolved and there were no parse errors. |
| 3394 * | 2833 * |
| 3395 * @return the errors associated with the receiver | 2834 * @return the errors associated with the receiver |
| 3396 */ | 2835 */ |
| 3397 List<AnalysisError> get errors { | 2836 List<AnalysisError> get errors { |
| 3398 List<AnalysisError> parserErrors = parsingErrors; | 2837 List<AnalysisError> parserErrors = parsingErrors; |
| 3399 List<AnalysisError> resolverErrors = resolutionErrors; | 2838 List<AnalysisError> resolverErrors = resolutionErrors; |
| 3400 if (resolverErrors.length == 0) { | 2839 if (resolverErrors.length == 0) { |
| 3401 return parserErrors; | 2840 return parserErrors; |
| 3402 } else if (parserErrors.length == 0) { | 2841 } else if (parserErrors.length == 0) { |
| 3403 return resolverErrors; | 2842 return resolverErrors; |
| 3404 } else { | 2843 } else { |
| 3405 List<AnalysisError> allErrors = new List<AnalysisError>(parserErrors.lengt
h + resolverErrors.length); | 2844 List<AnalysisError> allErrors = new List<AnalysisError>(parserErrors.lengt
h + resolverErrors.length); |
| 3406 JavaSystem.arraycopy(parserErrors, 0, allErrors, 0, parserErrors.length); | 2845 JavaSystem.arraycopy(parserErrors, 0, allErrors, 0, parserErrors.length); |
| 3407 JavaSystem.arraycopy(resolverErrors, 0, allErrors, parserErrors.length, re
solverErrors.length); | 2846 JavaSystem.arraycopy(resolverErrors, 0, allErrors, parserErrors.length, re
solverErrors.length); |
| 3408 return allErrors; | 2847 return allErrors; |
| 3409 } | 2848 } |
| 3410 } | 2849 } |
| 3411 int get length { | 2850 int get length { |
| 3412 Token endToken = this.endToken; | 2851 Token endToken = this.endToken; |
| 3413 if (endToken == null) { | 2852 if (endToken == null) { |
| 3414 return 0; | 2853 return 0; |
| 3415 } | 2854 } |
| 3416 return endToken.offset + endToken.length; | 2855 return endToken.offset + endToken.length; |
| 3417 } | 2856 } |
| 3418 | |
| 3419 /** | |
| 3420 * Return the line information for this compilation unit. | |
| 3421 * | |
| 3422 * @return the line information for this compilation unit | |
| 3423 */ | |
| 3424 LineInfo get lineInfo => _lineInfo; | |
| 3425 int get offset => 0; | 2857 int get offset => 0; |
| 3426 | 2858 |
| 3427 /** | 2859 /** |
| 3428 * Return an array containing all of the parsing errors associated with the re
ceiver. | 2860 * Return an array containing all of the parsing errors associated with the re
ceiver. |
| 3429 * | 2861 * |
| 3430 * @return the parsing errors associated with the receiver | 2862 * @return the parsing errors associated with the receiver |
| 3431 */ | 2863 */ |
| 3432 List<AnalysisError> get parsingErrors => _parsingErrors; | 2864 List<AnalysisError> get parsingErrors => _parsingErrors; |
| 3433 | 2865 |
| 3434 /** | 2866 /** |
| 3435 * Return an array containing all of the resolution errors associated with the
receiver. The array | 2867 * Return an array containing all of the resolution errors associated with the
receiver. The array |
| 3436 * will be empty if the receiver has not been resolved. | 2868 * will be empty if the receiver has not been resolved. |
| 3437 * | 2869 * |
| 3438 * @return the resolution errors associated with the receiver | 2870 * @return the resolution errors associated with the receiver |
| 3439 */ | 2871 */ |
| 3440 List<AnalysisError> get resolutionErrors => _resolutionErrors; | 2872 List<AnalysisError> get resolutionErrors => _resolutionErrors; |
| 3441 | 2873 |
| 3442 /** | 2874 /** |
| 3443 * Return the script tag at the beginning of the compilation unit, or `null` i
f there is no | 2875 * Return the script tag at the beginning of the compilation unit, or `null` i
f there is no |
| 3444 * script tag in this compilation unit. | 2876 * script tag in this compilation unit. |
| 3445 * | 2877 * |
| 3446 * @return the script tag at the beginning of the compilation unit | 2878 * @return the script tag at the beginning of the compilation unit |
| 3447 */ | 2879 */ |
| 3448 ScriptTag get scriptTag => _scriptTag; | 2880 ScriptTag get scriptTag => _scriptTag; |
| 3449 | 2881 |
| 3450 /** | 2882 /** |
| 3451 * Set the element associated with this compilation unit to the given element. | |
| 3452 * | |
| 3453 * @param element the element associated with this compilation unit | |
| 3454 */ | |
| 3455 void set element(CompilationUnitElement element2) { | |
| 3456 this._element = element2; | |
| 3457 } | |
| 3458 | |
| 3459 /** | |
| 3460 * Set the line information for this compilation unit to the given line inform
ation. | |
| 3461 * | |
| 3462 * @param errors the line information to associate with this compilation unit | |
| 3463 */ | |
| 3464 void set lineInfo(LineInfo lineInfo2) { | |
| 3465 this._lineInfo = lineInfo2; | |
| 3466 } | |
| 3467 | |
| 3468 /** | |
| 3469 * Set the parse errors associated with this compilation unit to the given err
ors. | 2883 * Set the parse errors associated with this compilation unit to the given err
ors. |
| 3470 * | 2884 * |
| 3471 * @param the parse errors to be associated with this compilation unit | 2885 * @param the parse errors to be associated with this compilation unit |
| 3472 */ | 2886 */ |
| 3473 void set parsingErrors(List<AnalysisError> errors) { | 2887 void set parsingErrors(List<AnalysisError> errors) { |
| 3474 _parsingErrors = errors == null ? AnalysisError.NO_ERRORS : errors; | 2888 _parsingErrors = errors == null ? AnalysisError.NO_ERRORS : errors; |
| 3475 } | 2889 } |
| 3476 | 2890 |
| 3477 /** | 2891 /** |
| 3478 * Set the resolution errors associated with this compilation unit to the give
n errors. | 2892 * Set the resolution errors associated with this compilation unit to the give
n errors. |
| 3479 * | 2893 * |
| 3480 * @param the resolution errors to be associated with this compilation unit | 2894 * @param the resolution errors to be associated with this compilation unit |
| 3481 */ | 2895 */ |
| 3482 void set resolutionErrors(List<AnalysisError> errors) { | 2896 void set resolutionErrors(List<AnalysisError> errors) { |
| 3483 _resolutionErrors = errors == null ? AnalysisError.NO_ERRORS : errors; | 2897 _resolutionErrors = errors == null ? AnalysisError.NO_ERRORS : errors; |
| 3484 } | 2898 } |
| 3485 | 2899 |
| 3486 /** | 2900 /** |
| 3487 * Set the script tag at the beginning of the compilation unit to the given sc
ript tag. | 2901 * Set the script tag at the beginning of the compilation unit to the given sc
ript tag. |
| 3488 * | 2902 * |
| 3489 * @param scriptTag the script tag at the beginning of the compilation unit | 2903 * @param scriptTag the script tag at the beginning of the compilation unit |
| 3490 */ | 2904 */ |
| 3491 void set scriptTag(ScriptTag scriptTag2) { | 2905 void set scriptTag(ScriptTag scriptTag2) { |
| 3492 this._scriptTag = becomeParentOf(scriptTag2); | 2906 this._scriptTag = becomeParentOf(scriptTag2); |
| 3493 } | 2907 } |
| 3494 void visitChildren(ASTVisitor visitor) { | 2908 void visitChildren(ASTVisitor visitor) { |
| 3495 safelyVisitChild(_scriptTag, visitor); | 2909 safelyVisitChild(_scriptTag, visitor); |
| 3496 if (directivesAreBeforeDeclarations()) { | 2910 if (directivesAreBeforeDeclarations()) { |
| 3497 _directives.accept(visitor); | 2911 directives.accept(visitor); |
| 3498 _declarations.accept(visitor); | 2912 declarations.accept(visitor); |
| 3499 } else { | 2913 } else { |
| 3500 for (ASTNode child in sortedDirectivesAndDeclarations) { | 2914 for (ASTNode child in sortedDirectivesAndDeclarations) { |
| 3501 child.accept(visitor); | 2915 child.accept(visitor); |
| 3502 } | 2916 } |
| 3503 } | 2917 } |
| 3504 } | 2918 } |
| 3505 | 2919 |
| 3506 /** | 2920 /** |
| 3507 * Return `true` if all of the directives are lexically before any declaration
s. | 2921 * Return `true` if all of the directives are lexically before any declaration
s. |
| 3508 * | 2922 * |
| 3509 * @return `true` if all of the directives are lexically before any declaratio
ns | 2923 * @return `true` if all of the directives are lexically before any declaratio
ns |
| 3510 */ | 2924 */ |
| 3511 bool directivesAreBeforeDeclarations() { | 2925 bool directivesAreBeforeDeclarations() { |
| 3512 if (_directives.isEmpty || _declarations.isEmpty) { | 2926 if (directives.isEmpty || declarations.isEmpty) { |
| 3513 return true; | 2927 return true; |
| 3514 } | 2928 } |
| 3515 Directive lastDirective = _directives[_directives.length - 1]; | 2929 Directive lastDirective = directives[directives.length - 1]; |
| 3516 CompilationUnitMember firstDeclaration = _declarations[0]; | 2930 CompilationUnitMember firstDeclaration = declarations[0]; |
| 3517 return lastDirective.offset < firstDeclaration.offset; | 2931 return lastDirective.offset < firstDeclaration.offset; |
| 3518 } | 2932 } |
| 3519 | 2933 |
| 3520 /** | 2934 /** |
| 3521 * Return an array containing all of the directives and declarations in this c
ompilation unit, | 2935 * Return an array containing all of the directives and declarations in this c
ompilation unit, |
| 3522 * sorted in lexical order. | 2936 * sorted in lexical order. |
| 3523 * | 2937 * |
| 3524 * @return the directives and declarations in this compilation unit in the ord
er in which they | 2938 * @return the directives and declarations in this compilation unit in the ord
er in which they |
| 3525 * appeared in the original source | 2939 * appeared in the original source |
| 3526 */ | 2940 */ |
| 3527 List<ASTNode> get sortedDirectivesAndDeclarations { | 2941 List<ASTNode> get sortedDirectivesAndDeclarations { |
| 3528 List<ASTNode> childList = new List<ASTNode>(); | 2942 List<ASTNode> childList = new List<ASTNode>(); |
| 3529 childList.addAll(_directives); | 2943 childList.addAll(directives); |
| 3530 childList.addAll(_declarations); | 2944 childList.addAll(declarations); |
| 3531 List<ASTNode> children = new List.from(childList); | 2945 List<ASTNode> children = new List.from(childList); |
| 3532 children.sort(ASTNode.LEXICAL_ORDER); | 2946 children.sort(ASTNode.LEXICAL_ORDER); |
| 3533 return children; | 2947 return children; |
| 3534 } | 2948 } |
| 3535 } | 2949 } |
| 3536 /** | 2950 /** |
| 3537 * Instances of the class `CompilationUnitMember` defines the behavior common to
nodes that | 2951 * Instances of the class `CompilationUnitMember` defines the behavior common to
nodes that |
| 3538 * declare a name within the scope of a compilation unit. | 2952 * declare a name within the scope of a compilation unit. |
| 3539 * | 2953 * |
| 3540 * <pre> | 2954 * <pre> |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3580 class ConditionalExpression extends Expression { | 2994 class ConditionalExpression extends Expression { |
| 3581 | 2995 |
| 3582 /** | 2996 /** |
| 3583 * The condition used to determine which of the expressions is executed next. | 2997 * The condition used to determine which of the expressions is executed next. |
| 3584 */ | 2998 */ |
| 3585 Expression _condition; | 2999 Expression _condition; |
| 3586 | 3000 |
| 3587 /** | 3001 /** |
| 3588 * The token used to separate the condition from the then expression. | 3002 * The token used to separate the condition from the then expression. |
| 3589 */ | 3003 */ |
| 3590 Token _question; | 3004 Token question; |
| 3591 | 3005 |
| 3592 /** | 3006 /** |
| 3593 * The expression that is executed if the condition evaluates to `true`. | 3007 * The expression that is executed if the condition evaluates to `true`. |
| 3594 */ | 3008 */ |
| 3595 Expression _thenExpression; | 3009 Expression _thenExpression; |
| 3596 | 3010 |
| 3597 /** | 3011 /** |
| 3598 * The token used to separate the then expression from the else expression. | 3012 * The token used to separate the then expression from the else expression. |
| 3599 */ | 3013 */ |
| 3600 Token _colon; | 3014 Token colon; |
| 3601 | 3015 |
| 3602 /** | 3016 /** |
| 3603 * The expression that is executed if the condition evaluates to `false`. | 3017 * The expression that is executed if the condition evaluates to `false`. |
| 3604 */ | 3018 */ |
| 3605 Expression _elseExpression; | 3019 Expression _elseExpression; |
| 3606 | 3020 |
| 3607 /** | 3021 /** |
| 3608 * Initialize a newly created conditional expression. | 3022 * Initialize a newly created conditional expression. |
| 3609 * | 3023 * |
| 3610 * @param condition the condition used to determine which expression is execut
ed next | 3024 * @param condition the condition used to determine which expression is execut
ed next |
| 3611 * @param question the token used to separate the condition from the then expr
ession | 3025 * @param question the token used to separate the condition from the then expr
ession |
| 3612 * @param thenExpression the expression that is executed if the condition eval
uates to | 3026 * @param thenExpression the expression that is executed if the condition eval
uates to |
| 3613 * `true` | 3027 * `true` |
| 3614 * @param colon the token used to separate the then expression from the else e
xpression | 3028 * @param colon the token used to separate the then expression from the else e
xpression |
| 3615 * @param elseExpression the expression that is executed if the condition eval
uates to | 3029 * @param elseExpression the expression that is executed if the condition eval
uates to |
| 3616 * `false` | 3030 * `false` |
| 3617 */ | 3031 */ |
| 3618 ConditionalExpression.full(Expression condition, Token question, Expression th
enExpression, Token colon, Expression elseExpression) { | 3032 ConditionalExpression.full(Expression condition, Token question, Expression th
enExpression, Token colon, Expression elseExpression) { |
| 3619 this._condition = becomeParentOf(condition); | 3033 this._condition = becomeParentOf(condition); |
| 3620 this._question = question; | 3034 this.question = question; |
| 3621 this._thenExpression = becomeParentOf(thenExpression); | 3035 this._thenExpression = becomeParentOf(thenExpression); |
| 3622 this._colon = colon; | 3036 this.colon = colon; |
| 3623 this._elseExpression = becomeParentOf(elseExpression); | 3037 this._elseExpression = becomeParentOf(elseExpression); |
| 3624 } | 3038 } |
| 3625 | 3039 |
| 3626 /** | 3040 /** |
| 3627 * Initialize a newly created conditional expression. | 3041 * Initialize a newly created conditional expression. |
| 3628 * | 3042 * |
| 3629 * @param condition the condition used to determine which expression is execut
ed next | 3043 * @param condition the condition used to determine which expression is execut
ed next |
| 3630 * @param question the token used to separate the condition from the then expr
ession | 3044 * @param question the token used to separate the condition from the then expr
ession |
| 3631 * @param thenExpression the expression that is executed if the condition eval
uates to | 3045 * @param thenExpression the expression that is executed if the condition eval
uates to |
| 3632 * `true` | 3046 * `true` |
| 3633 * @param colon the token used to separate the then expression from the else e
xpression | 3047 * @param colon the token used to separate the then expression from the else e
xpression |
| 3634 * @param elseExpression the expression that is executed if the condition eval
uates to | 3048 * @param elseExpression the expression that is executed if the condition eval
uates to |
| 3635 * `false` | 3049 * `false` |
| 3636 */ | 3050 */ |
| 3637 ConditionalExpression({Expression condition, Token question, Expression thenEx
pression, Token colon, Expression elseExpression}) : this.full(condition, questi
on, thenExpression, colon, elseExpression); | 3051 ConditionalExpression({Expression condition, Token question, Expression thenEx
pression, Token colon, Expression elseExpression}) : this.full(condition, questi
on, thenExpression, colon, elseExpression); |
| 3638 accept(ASTVisitor visitor) => visitor.visitConditionalExpression(this); | 3052 accept(ASTVisitor visitor) => visitor.visitConditionalExpression(this); |
| 3639 Token get beginToken => _condition.beginToken; | 3053 Token get beginToken => _condition.beginToken; |
| 3640 | 3054 |
| 3641 /** | 3055 /** |
| 3642 * Return the token used to separate the then expression from the else express
ion. | |
| 3643 * | |
| 3644 * @return the token used to separate the then expression from the else expres
sion | |
| 3645 */ | |
| 3646 Token get colon => _colon; | |
| 3647 | |
| 3648 /** | |
| 3649 * Return the condition used to determine which of the expressions is executed
next. | 3056 * Return the condition used to determine which of the expressions is executed
next. |
| 3650 * | 3057 * |
| 3651 * @return the condition used to determine which expression is executed next | 3058 * @return the condition used to determine which expression is executed next |
| 3652 */ | 3059 */ |
| 3653 Expression get condition => _condition; | 3060 Expression get condition => _condition; |
| 3654 | 3061 |
| 3655 /** | 3062 /** |
| 3656 * Return the expression that is executed if the condition evaluates to `false
`. | 3063 * Return the expression that is executed if the condition evaluates to `false
`. |
| 3657 * | 3064 * |
| 3658 * @return the expression that is executed if the condition evaluates to `fals
e` | 3065 * @return the expression that is executed if the condition evaluates to `fals
e` |
| 3659 */ | 3066 */ |
| 3660 Expression get elseExpression => _elseExpression; | 3067 Expression get elseExpression => _elseExpression; |
| 3661 Token get endToken => _elseExpression.endToken; | 3068 Token get endToken => _elseExpression.endToken; |
| 3662 | 3069 |
| 3663 /** | 3070 /** |
| 3664 * Return the token used to separate the condition from the then expression. | |
| 3665 * | |
| 3666 * @return the token used to separate the condition from the then expression | |
| 3667 */ | |
| 3668 Token get question => _question; | |
| 3669 | |
| 3670 /** | |
| 3671 * Return the expression that is executed if the condition evaluates to `true`
. | 3071 * Return the expression that is executed if the condition evaluates to `true`
. |
| 3672 * | 3072 * |
| 3673 * @return the expression that is executed if the condition evaluates to `true
` | 3073 * @return the expression that is executed if the condition evaluates to `true
` |
| 3674 */ | 3074 */ |
| 3675 Expression get thenExpression => _thenExpression; | 3075 Expression get thenExpression => _thenExpression; |
| 3676 | 3076 |
| 3677 /** | 3077 /** |
| 3678 * Set the token used to separate the then expression from the else expression
to the given token. | |
| 3679 * | |
| 3680 * @param colon the token used to separate the then expression from the else e
xpression | |
| 3681 */ | |
| 3682 void set colon(Token colon2) { | |
| 3683 this._colon = colon2; | |
| 3684 } | |
| 3685 | |
| 3686 /** | |
| 3687 * Set the condition used to determine which of the expressions is executed ne
xt to the given | 3078 * Set the condition used to determine which of the expressions is executed ne
xt to the given |
| 3688 * expression. | 3079 * expression. |
| 3689 * | 3080 * |
| 3690 * @param expression the condition used to determine which expression is execu
ted next | 3081 * @param expression the condition used to determine which expression is execu
ted next |
| 3691 */ | 3082 */ |
| 3692 void set condition(Expression expression) { | 3083 void set condition(Expression expression) { |
| 3693 _condition = becomeParentOf(expression); | 3084 _condition = becomeParentOf(expression); |
| 3694 } | 3085 } |
| 3695 | 3086 |
| 3696 /** | 3087 /** |
| 3697 * Set the expression that is executed if the condition evaluates to `false` t
o the given | 3088 * Set the expression that is executed if the condition evaluates to `false` t
o the given |
| 3698 * expression. | 3089 * expression. |
| 3699 * | 3090 * |
| 3700 * @param expression the expression that is executed if the condition evaluate
s to `false` | 3091 * @param expression the expression that is executed if the condition evaluate
s to `false` |
| 3701 */ | 3092 */ |
| 3702 void set elseExpression(Expression expression) { | 3093 void set elseExpression(Expression expression) { |
| 3703 _elseExpression = becomeParentOf(expression); | 3094 _elseExpression = becomeParentOf(expression); |
| 3704 } | 3095 } |
| 3705 | 3096 |
| 3706 /** | 3097 /** |
| 3707 * Set the token used to separate the condition from the then expression to th
e given token. | |
| 3708 * | |
| 3709 * @param question the token used to separate the condition from the then expr
ession | |
| 3710 */ | |
| 3711 void set question(Token question2) { | |
| 3712 this._question = question2; | |
| 3713 } | |
| 3714 | |
| 3715 /** | |
| 3716 * Set the expression that is executed if the condition evaluates to `true` to
the given | 3098 * Set the expression that is executed if the condition evaluates to `true` to
the given |
| 3717 * expression. | 3099 * expression. |
| 3718 * | 3100 * |
| 3719 * @param expression the expression that is executed if the condition evaluate
s to `true` | 3101 * @param expression the expression that is executed if the condition evaluate
s to `true` |
| 3720 */ | 3102 */ |
| 3721 void set thenExpression(Expression expression) { | 3103 void set thenExpression(Expression expression) { |
| 3722 _thenExpression = becomeParentOf(expression); | 3104 _thenExpression = becomeParentOf(expression); |
| 3723 } | 3105 } |
| 3724 void visitChildren(ASTVisitor visitor) { | 3106 void visitChildren(ASTVisitor visitor) { |
| 3725 safelyVisitChild(_condition, visitor); | 3107 safelyVisitChild(_condition, visitor); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 3750 * ':' [ConstructorInitializer] (',' [ConstructorInitializer])* | 3132 * ':' [ConstructorInitializer] (',' [ConstructorInitializer])* |
| 3751 * </pre> | 3133 * </pre> |
| 3752 * | 3134 * |
| 3753 * @coverage dart.engine.ast | 3135 * @coverage dart.engine.ast |
| 3754 */ | 3136 */ |
| 3755 class ConstructorDeclaration extends ClassMember { | 3137 class ConstructorDeclaration extends ClassMember { |
| 3756 | 3138 |
| 3757 /** | 3139 /** |
| 3758 * The token for the 'external' keyword, or `null` if the constructor is not e
xternal. | 3140 * The token for the 'external' keyword, or `null` if the constructor is not e
xternal. |
| 3759 */ | 3141 */ |
| 3760 Token _externalKeyword; | 3142 Token externalKeyword; |
| 3761 | 3143 |
| 3762 /** | 3144 /** |
| 3763 * The token for the 'const' keyword, or `null` if the constructor is not a co
nst | 3145 * The token for the 'const' keyword, or `null` if the constructor is not a co
nst |
| 3764 * constructor. | 3146 * constructor. |
| 3765 */ | 3147 */ |
| 3766 Token _constKeyword; | 3148 Token constKeyword; |
| 3767 | 3149 |
| 3768 /** | 3150 /** |
| 3769 * The token for the 'factory' keyword, or `null` if the constructor is not a
factory | 3151 * The token for the 'factory' keyword, or `null` if the constructor is not a
factory |
| 3770 * constructor. | 3152 * constructor. |
| 3771 */ | 3153 */ |
| 3772 Token _factoryKeyword; | 3154 Token factoryKeyword; |
| 3773 | 3155 |
| 3774 /** | 3156 /** |
| 3775 * The type of object being created. This can be different than the type in wh
ich the constructor | 3157 * The type of object being created. This can be different than the type in wh
ich the constructor |
| 3776 * is being declared if the constructor is the implementation of a factory con
structor. | 3158 * is being declared if the constructor is the implementation of a factory con
structor. |
| 3777 */ | 3159 */ |
| 3778 Identifier _returnType; | 3160 Identifier _returnType; |
| 3779 | 3161 |
| 3780 /** | 3162 /** |
| 3781 * The token for the period before the constructor name, or `null` if the cons
tructor being | 3163 * The token for the period before the constructor name, or `null` if the cons
tructor being |
| 3782 * declared is unnamed. | 3164 * declared is unnamed. |
| 3783 */ | 3165 */ |
| 3784 Token _period; | 3166 Token period; |
| 3785 | 3167 |
| 3786 /** | 3168 /** |
| 3787 * The name of the constructor, or `null` if the constructor being declared is
unnamed. | 3169 * The name of the constructor, or `null` if the constructor being declared is
unnamed. |
| 3788 */ | 3170 */ |
| 3789 SimpleIdentifier _name; | 3171 SimpleIdentifier _name; |
| 3790 | 3172 |
| 3791 /** | 3173 /** |
| 3792 * The parameters associated with the constructor. | 3174 * The parameters associated with the constructor. |
| 3793 */ | 3175 */ |
| 3794 FormalParameterList _parameters; | 3176 FormalParameterList _parameters; |
| 3795 | 3177 |
| 3796 /** | 3178 /** |
| 3797 * The token for the separator (colon or equals) before the initializer list o
r redirection, or | 3179 * The token for the separator (colon or equals) before the initializer list o
r redirection, or |
| 3798 * `null` if there are no initializers. | 3180 * `null` if there are no initializers. |
| 3799 */ | 3181 */ |
| 3800 Token _separator; | 3182 Token separator; |
| 3801 | 3183 |
| 3802 /** | 3184 /** |
| 3803 * The initializers associated with the constructor. | 3185 * The initializers associated with the constructor. |
| 3804 */ | 3186 */ |
| 3805 NodeList<ConstructorInitializer> _initializers; | 3187 NodeList<ConstructorInitializer> initializers; |
| 3806 | 3188 |
| 3807 /** | 3189 /** |
| 3808 * The name of the constructor to which this constructor will be redirected, o
r `null` if | 3190 * The name of the constructor to which this constructor will be redirected, o
r `null` if |
| 3809 * this is not a redirecting factory constructor. | 3191 * this is not a redirecting factory constructor. |
| 3810 */ | 3192 */ |
| 3811 ConstructorName _redirectedConstructor; | 3193 ConstructorName _redirectedConstructor; |
| 3812 | 3194 |
| 3813 /** | 3195 /** |
| 3814 * The body of the constructor, or `null` if the constructor does not have a b
ody. | 3196 * The body of the constructor, or `null` if the constructor does not have a b
ody. |
| 3815 */ | 3197 */ |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3833 * @param period the token for the period before the constructor name | 3215 * @param period the token for the period before the constructor name |
| 3834 * @param name the name of the constructor | 3216 * @param name the name of the constructor |
| 3835 * @param parameters the parameters associated with the constructor | 3217 * @param parameters the parameters associated with the constructor |
| 3836 * @param separator the token for the colon or equals before the initializers | 3218 * @param separator the token for the colon or equals before the initializers |
| 3837 * @param initializers the initializers associated with the constructor | 3219 * @param initializers the initializers associated with the constructor |
| 3838 * @param redirectedConstructor the name of the constructor to which this cons
tructor will be | 3220 * @param redirectedConstructor the name of the constructor to which this cons
tructor will be |
| 3839 * redirected | 3221 * redirected |
| 3840 * @param body the body of the constructor | 3222 * @param body the body of the constructor |
| 3841 */ | 3223 */ |
| 3842 ConstructorDeclaration.full(Comment comment, List<Annotation> metadata, Token
externalKeyword, Token constKeyword, Token factoryKeyword, Identifier returnType
, Token period, SimpleIdentifier name, FormalParameterList parameters, Token sep
arator, List<ConstructorInitializer> initializers, ConstructorName redirectedCon
structor, FunctionBody body) : super.full(comment, metadata) { | 3224 ConstructorDeclaration.full(Comment comment, List<Annotation> metadata, Token
externalKeyword, Token constKeyword, Token factoryKeyword, Identifier returnType
, Token period, SimpleIdentifier name, FormalParameterList parameters, Token sep
arator, List<ConstructorInitializer> initializers, ConstructorName redirectedCon
structor, FunctionBody body) : super.full(comment, metadata) { |
| 3843 this._initializers = new NodeList<ConstructorInitializer>(this); | 3225 this.initializers = new NodeList<ConstructorInitializer>(this); |
| 3844 this._externalKeyword = externalKeyword; | 3226 this.externalKeyword = externalKeyword; |
| 3845 this._constKeyword = constKeyword; | 3227 this.constKeyword = constKeyword; |
| 3846 this._factoryKeyword = factoryKeyword; | 3228 this.factoryKeyword = factoryKeyword; |
| 3847 this._returnType = becomeParentOf(returnType); | 3229 this._returnType = becomeParentOf(returnType); |
| 3848 this._period = period; | 3230 this.period = period; |
| 3849 this._name = becomeParentOf(name); | 3231 this._name = becomeParentOf(name); |
| 3850 this._parameters = becomeParentOf(parameters); | 3232 this._parameters = becomeParentOf(parameters); |
| 3851 this._separator = separator; | 3233 this.separator = separator; |
| 3852 this._initializers.addAll(initializers); | 3234 this.initializers.addAll(initializers); |
| 3853 this._redirectedConstructor = becomeParentOf(redirectedConstructor); | 3235 this._redirectedConstructor = becomeParentOf(redirectedConstructor); |
| 3854 this._body = becomeParentOf(body); | 3236 this._body = becomeParentOf(body); |
| 3855 } | 3237 } |
| 3856 | 3238 |
| 3857 /** | 3239 /** |
| 3858 * Initialize a newly created constructor declaration. | 3240 * Initialize a newly created constructor declaration. |
| 3859 * | 3241 * |
| 3860 * @param externalKeyword the token for the 'external' keyword | 3242 * @param externalKeyword the token for the 'external' keyword |
| 3861 * @param comment the documentation comment associated with this constructor | 3243 * @param comment the documentation comment associated with this constructor |
| 3862 * @param metadata the annotations associated with this constructor | 3244 * @param metadata the annotations associated with this constructor |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3874 */ | 3256 */ |
| 3875 ConstructorDeclaration({Comment comment, List<Annotation> metadata, Token exte
rnalKeyword, Token constKeyword, Token factoryKeyword, Identifier returnType, To
ken period, SimpleIdentifier name, FormalParameterList parameters, Token separat
or, List<ConstructorInitializer> initializers, ConstructorName redirectedConstru
ctor, FunctionBody body}) : this.full(comment, metadata, externalKeyword, constK
eyword, factoryKeyword, returnType, period, name, parameters, separator, initial
izers, redirectedConstructor, body); | 3257 ConstructorDeclaration({Comment comment, List<Annotation> metadata, Token exte
rnalKeyword, Token constKeyword, Token factoryKeyword, Identifier returnType, To
ken period, SimpleIdentifier name, FormalParameterList parameters, Token separat
or, List<ConstructorInitializer> initializers, ConstructorName redirectedConstru
ctor, FunctionBody body}) : this.full(comment, metadata, externalKeyword, constK
eyword, factoryKeyword, returnType, period, name, parameters, separator, initial
izers, redirectedConstructor, body); |
| 3876 accept(ASTVisitor visitor) => visitor.visitConstructorDeclaration(this); | 3258 accept(ASTVisitor visitor) => visitor.visitConstructorDeclaration(this); |
| 3877 | 3259 |
| 3878 /** | 3260 /** |
| 3879 * Return the body of the constructor, or `null` if the constructor does not h
ave a body. | 3261 * Return the body of the constructor, or `null` if the constructor does not h
ave a body. |
| 3880 * | 3262 * |
| 3881 * @return the body of the constructor | 3263 * @return the body of the constructor |
| 3882 */ | 3264 */ |
| 3883 FunctionBody get body => _body; | 3265 FunctionBody get body => _body; |
| 3884 | |
| 3885 /** | |
| 3886 * Return the token for the 'const' keyword. | |
| 3887 * | |
| 3888 * @return the token for the 'const' keyword | |
| 3889 */ | |
| 3890 Token get constKeyword => _constKeyword; | |
| 3891 ConstructorElement get element => _element; | 3266 ConstructorElement get element => _element; |
| 3892 Token get endToken { | 3267 Token get endToken { |
| 3893 if (_body != null) { | 3268 if (_body != null) { |
| 3894 return _body.endToken; | 3269 return _body.endToken; |
| 3895 } else if (!_initializers.isEmpty) { | 3270 } else if (!initializers.isEmpty) { |
| 3896 return _initializers.endToken; | 3271 return initializers.endToken; |
| 3897 } | 3272 } |
| 3898 return _parameters.endToken; | 3273 return _parameters.endToken; |
| 3899 } | 3274 } |
| 3900 | 3275 |
| 3901 /** | 3276 /** |
| 3902 * Return the token for the 'external' keyword, or `null` if the constructor i
s not | |
| 3903 * external. | |
| 3904 * | |
| 3905 * @return the token for the 'external' keyword | |
| 3906 */ | |
| 3907 Token get externalKeyword => _externalKeyword; | |
| 3908 | |
| 3909 /** | |
| 3910 * Return the token for the 'factory' keyword. | |
| 3911 * | |
| 3912 * @return the token for the 'factory' keyword | |
| 3913 */ | |
| 3914 Token get factoryKeyword => _factoryKeyword; | |
| 3915 | |
| 3916 /** | |
| 3917 * Return the initializers associated with the constructor. | |
| 3918 * | |
| 3919 * @return the initializers associated with the constructor | |
| 3920 */ | |
| 3921 NodeList<ConstructorInitializer> get initializers => _initializers; | |
| 3922 | |
| 3923 /** | |
| 3924 * Return the name of the constructor, or `null` if the constructor being decl
ared is | 3277 * Return the name of the constructor, or `null` if the constructor being decl
ared is |
| 3925 * unnamed. | 3278 * unnamed. |
| 3926 * | 3279 * |
| 3927 * @return the name of the constructor | 3280 * @return the name of the constructor |
| 3928 */ | 3281 */ |
| 3929 SimpleIdentifier get name => _name; | 3282 SimpleIdentifier get name => _name; |
| 3930 | 3283 |
| 3931 /** | 3284 /** |
| 3932 * Return the parameters associated with the constructor. | 3285 * Return the parameters associated with the constructor. |
| 3933 * | 3286 * |
| 3934 * @return the parameters associated with the constructor | 3287 * @return the parameters associated with the constructor |
| 3935 */ | 3288 */ |
| 3936 FormalParameterList get parameters => _parameters; | 3289 FormalParameterList get parameters => _parameters; |
| 3937 | 3290 |
| 3938 /** | 3291 /** |
| 3939 * Return the token for the period before the constructor name, or `null` if t
he constructor | |
| 3940 * being declared is unnamed. | |
| 3941 * | |
| 3942 * @return the token for the period before the constructor name | |
| 3943 */ | |
| 3944 Token get period => _period; | |
| 3945 | |
| 3946 /** | |
| 3947 * Return the name of the constructor to which this constructor will be redire
cted, or | 3292 * Return the name of the constructor to which this constructor will be redire
cted, or |
| 3948 * `null` if this is not a redirecting factory constructor. | 3293 * `null` if this is not a redirecting factory constructor. |
| 3949 * | 3294 * |
| 3950 * @return the name of the constructor to which this constructor will be redir
ected | 3295 * @return the name of the constructor to which this constructor will be redir
ected |
| 3951 */ | 3296 */ |
| 3952 ConstructorName get redirectedConstructor => _redirectedConstructor; | 3297 ConstructorName get redirectedConstructor => _redirectedConstructor; |
| 3953 | 3298 |
| 3954 /** | 3299 /** |
| 3955 * Return the type of object being created. This can be different than the typ
e in which the | 3300 * Return the type of object being created. This can be different than the typ
e in which the |
| 3956 * constructor is being declared if the constructor is the implementation of a
factory | 3301 * constructor is being declared if the constructor is the implementation of a
factory |
| 3957 * constructor. | 3302 * constructor. |
| 3958 * | 3303 * |
| 3959 * @return the type of object being created | 3304 * @return the type of object being created |
| 3960 */ | 3305 */ |
| 3961 Identifier get returnType => _returnType; | 3306 Identifier get returnType => _returnType; |
| 3962 | 3307 |
| 3963 /** | 3308 /** |
| 3964 * Return the token for the separator (colon or equals) before the initializer
list or | |
| 3965 * redirection, or `null` if there are no initializers. | |
| 3966 * | |
| 3967 * @return the token for the separator before the initializer list or redirect
ion | |
| 3968 */ | |
| 3969 Token get separator => _separator; | |
| 3970 | |
| 3971 /** | |
| 3972 * Set the body of the constructor to the given function body. | 3309 * Set the body of the constructor to the given function body. |
| 3973 * | 3310 * |
| 3974 * @param functionBody the body of the constructor | 3311 * @param functionBody the body of the constructor |
| 3975 */ | 3312 */ |
| 3976 void set body(FunctionBody functionBody) { | 3313 void set body(FunctionBody functionBody) { |
| 3977 _body = becomeParentOf(functionBody); | 3314 _body = becomeParentOf(functionBody); |
| 3978 } | 3315 } |
| 3979 | 3316 |
| 3980 /** | 3317 /** |
| 3981 * Set the token for the 'const' keyword to the given token. | |
| 3982 * | |
| 3983 * @param constKeyword the token for the 'const' keyword | |
| 3984 */ | |
| 3985 void set constKeyword(Token constKeyword2) { | |
| 3986 this._constKeyword = constKeyword2; | |
| 3987 } | |
| 3988 | |
| 3989 /** | |
| 3990 * Set the element associated with this constructor to the given element. | 3318 * Set the element associated with this constructor to the given element. |
| 3991 * | 3319 * |
| 3992 * @param element the element associated with this constructor | 3320 * @param element the element associated with this constructor |
| 3993 */ | 3321 */ |
| 3994 void set element(ConstructorElement element2) { | 3322 void set element(ConstructorElement element2) { |
| 3995 this._element = element2; | 3323 this._element = element2; |
| 3996 } | 3324 } |
| 3997 | 3325 |
| 3998 /** | 3326 /** |
| 3999 * Set the token for the 'external' keyword to the given token. | |
| 4000 * | |
| 4001 * @param externalKeyword the token for the 'external' keyword | |
| 4002 */ | |
| 4003 void set externalKeyword(Token externalKeyword2) { | |
| 4004 this._externalKeyword = externalKeyword2; | |
| 4005 } | |
| 4006 | |
| 4007 /** | |
| 4008 * Set the token for the 'factory' keyword to the given token. | |
| 4009 * | |
| 4010 * @param factoryKeyword the token for the 'factory' keyword | |
| 4011 */ | |
| 4012 void set factoryKeyword(Token factoryKeyword2) { | |
| 4013 this._factoryKeyword = factoryKeyword2; | |
| 4014 } | |
| 4015 | |
| 4016 /** | |
| 4017 * Set the name of the constructor to the given identifier. | 3327 * Set the name of the constructor to the given identifier. |
| 4018 * | 3328 * |
| 4019 * @param identifier the name of the constructor | 3329 * @param identifier the name of the constructor |
| 4020 */ | 3330 */ |
| 4021 void set name(SimpleIdentifier identifier) { | 3331 void set name(SimpleIdentifier identifier) { |
| 4022 _name = becomeParentOf(identifier); | 3332 _name = becomeParentOf(identifier); |
| 4023 } | 3333 } |
| 4024 | 3334 |
| 4025 /** | 3335 /** |
| 4026 * Set the parameters associated with the constructor to the given list of par
ameters. | 3336 * Set the parameters associated with the constructor to the given list of par
ameters. |
| 4027 * | 3337 * |
| 4028 * @param parameters the parameters associated with the constructor | 3338 * @param parameters the parameters associated with the constructor |
| 4029 */ | 3339 */ |
| 4030 void set parameters(FormalParameterList parameters2) { | 3340 void set parameters(FormalParameterList parameters2) { |
| 4031 this._parameters = becomeParentOf(parameters2); | 3341 this._parameters = becomeParentOf(parameters2); |
| 4032 } | 3342 } |
| 4033 | 3343 |
| 4034 /** | 3344 /** |
| 4035 * Set the token for the period before the constructor name to the given token
. | |
| 4036 * | |
| 4037 * @param period the token for the period before the constructor name | |
| 4038 */ | |
| 4039 void set period(Token period2) { | |
| 4040 this._period = period2; | |
| 4041 } | |
| 4042 | |
| 4043 /** | |
| 4044 * Set the name of the constructor to which this constructor will be redirecte
d to the given | 3345 * Set the name of the constructor to which this constructor will be redirecte
d to the given |
| 4045 * constructor name. | 3346 * constructor name. |
| 4046 * | 3347 * |
| 4047 * @param redirectedConstructor the name of the constructor to which this cons
tructor will be | 3348 * @param redirectedConstructor the name of the constructor to which this cons
tructor will be |
| 4048 * redirected | 3349 * redirected |
| 4049 */ | 3350 */ |
| 4050 void set redirectedConstructor(ConstructorName redirectedConstructor2) { | 3351 void set redirectedConstructor(ConstructorName redirectedConstructor2) { |
| 4051 this._redirectedConstructor = becomeParentOf(redirectedConstructor2); | 3352 this._redirectedConstructor = becomeParentOf(redirectedConstructor2); |
| 4052 } | 3353 } |
| 4053 | 3354 |
| 4054 /** | 3355 /** |
| 4055 * Set the type of object being created to the given type name. | 3356 * Set the type of object being created to the given type name. |
| 4056 * | 3357 * |
| 4057 * @param typeName the type of object being created | 3358 * @param typeName the type of object being created |
| 4058 */ | 3359 */ |
| 4059 void set returnType(Identifier typeName) { | 3360 void set returnType(Identifier typeName) { |
| 4060 _returnType = becomeParentOf(typeName); | 3361 _returnType = becomeParentOf(typeName); |
| 4061 } | 3362 } |
| 4062 | |
| 4063 /** | |
| 4064 * Set the token for the separator (colon or equals) before the initializers t
o the given token. | |
| 4065 * | |
| 4066 * @param separator the token for the separator (colon or equals) before the i
nitializers | |
| 4067 */ | |
| 4068 void set separator(Token separator2) { | |
| 4069 this._separator = separator2; | |
| 4070 } | |
| 4071 void visitChildren(ASTVisitor visitor) { | 3363 void visitChildren(ASTVisitor visitor) { |
| 4072 super.visitChildren(visitor); | 3364 super.visitChildren(visitor); |
| 4073 safelyVisitChild(_returnType, visitor); | 3365 safelyVisitChild(_returnType, visitor); |
| 4074 safelyVisitChild(_name, visitor); | 3366 safelyVisitChild(_name, visitor); |
| 4075 safelyVisitChild(_parameters, visitor); | 3367 safelyVisitChild(_parameters, visitor); |
| 4076 _initializers.accept(visitor); | 3368 initializers.accept(visitor); |
| 4077 safelyVisitChild(_redirectedConstructor, visitor); | 3369 safelyVisitChild(_redirectedConstructor, visitor); |
| 4078 safelyVisitChild(_body, visitor); | 3370 safelyVisitChild(_body, visitor); |
| 4079 } | 3371 } |
| 4080 Token get firstTokenAfterCommentAndMetadata { | 3372 Token get firstTokenAfterCommentAndMetadata { |
| 4081 Token leftMost2 = leftMost([_externalKeyword, _constKeyword, _factoryKeyword
]); | 3373 Token leftMost2 = leftMost([externalKeyword, constKeyword, factoryKeyword]); |
| 4082 if (leftMost2 != null) { | 3374 if (leftMost2 != null) { |
| 4083 return leftMost2; | 3375 return leftMost2; |
| 4084 } | 3376 } |
| 4085 return _returnType.beginToken; | 3377 return _returnType.beginToken; |
| 4086 } | 3378 } |
| 4087 | 3379 |
| 4088 /** | 3380 /** |
| 4089 * Return the left-most of the given tokens, or `null` if there are no tokens
given or if | 3381 * Return the left-most of the given tokens, or `null` if there are no tokens
given or if |
| 4090 * all of the given tokens are `null`. | 3382 * all of the given tokens are `null`. |
| 4091 * | 3383 * |
| (...skipping 20 matching lines...) Expand all Loading... |
| 4112 * ('this' '.')? [SimpleIdentifier] '=' [Expression] | 3404 * ('this' '.')? [SimpleIdentifier] '=' [Expression] |
| 4113 * </pre> | 3405 * </pre> |
| 4114 * | 3406 * |
| 4115 * @coverage dart.engine.ast | 3407 * @coverage dart.engine.ast |
| 4116 */ | 3408 */ |
| 4117 class ConstructorFieldInitializer extends ConstructorInitializer { | 3409 class ConstructorFieldInitializer extends ConstructorInitializer { |
| 4118 | 3410 |
| 4119 /** | 3411 /** |
| 4120 * The token for the 'this' keyword, or `null` if there is no 'this' keyword. | 3412 * The token for the 'this' keyword, or `null` if there is no 'this' keyword. |
| 4121 */ | 3413 */ |
| 4122 Token _keyword; | 3414 Token keyword; |
| 4123 | 3415 |
| 4124 /** | 3416 /** |
| 4125 * The token for the period after the 'this' keyword, or `null` if there is no
'this' | 3417 * The token for the period after the 'this' keyword, or `null` if there is no
'this' |
| 4126 * keyword. | 3418 * keyword. |
| 4127 */ | 3419 */ |
| 4128 Token _period; | 3420 Token period; |
| 4129 | 3421 |
| 4130 /** | 3422 /** |
| 4131 * The name of the field being initialized. | 3423 * The name of the field being initialized. |
| 4132 */ | 3424 */ |
| 4133 SimpleIdentifier _fieldName; | 3425 SimpleIdentifier _fieldName; |
| 4134 | 3426 |
| 4135 /** | 3427 /** |
| 4136 * The token for the equal sign between the field name and the expression. | 3428 * The token for the equal sign between the field name and the expression. |
| 4137 */ | 3429 */ |
| 4138 Token _equals; | 3430 Token equals; |
| 4139 | 3431 |
| 4140 /** | 3432 /** |
| 4141 * The expression computing the value to which the field will be initialized. | 3433 * The expression computing the value to which the field will be initialized. |
| 4142 */ | 3434 */ |
| 4143 Expression _expression; | 3435 Expression _expression; |
| 4144 | 3436 |
| 4145 /** | 3437 /** |
| 4146 * Initialize a newly created field initializer to initialize the field with t
he given name to the | 3438 * Initialize a newly created field initializer to initialize the field with t
he given name to the |
| 4147 * value of the given expression. | 3439 * value of the given expression. |
| 4148 * | 3440 * |
| 4149 * @param keyword the token for the 'this' keyword | 3441 * @param keyword the token for the 'this' keyword |
| 4150 * @param period the token for the period after the 'this' keyword | 3442 * @param period the token for the period after the 'this' keyword |
| 4151 * @param fieldName the name of the field being initialized | 3443 * @param fieldName the name of the field being initialized |
| 4152 * @param equals the token for the equal sign between the field name and the e
xpression | 3444 * @param equals the token for the equal sign between the field name and the e
xpression |
| 4153 * @param expression the expression computing the value to which the field wil
l be initialized | 3445 * @param expression the expression computing the value to which the field wil
l be initialized |
| 4154 */ | 3446 */ |
| 4155 ConstructorFieldInitializer.full(Token keyword, Token period, SimpleIdentifier
fieldName, Token equals, Expression expression) { | 3447 ConstructorFieldInitializer.full(Token keyword, Token period, SimpleIdentifier
fieldName, Token equals, Expression expression) { |
| 4156 this._keyword = keyword; | 3448 this.keyword = keyword; |
| 4157 this._period = period; | 3449 this.period = period; |
| 4158 this._fieldName = becomeParentOf(fieldName); | 3450 this._fieldName = becomeParentOf(fieldName); |
| 4159 this._equals = equals; | 3451 this.equals = equals; |
| 4160 this._expression = becomeParentOf(expression); | 3452 this._expression = becomeParentOf(expression); |
| 4161 } | 3453 } |
| 4162 | 3454 |
| 4163 /** | 3455 /** |
| 4164 * Initialize a newly created field initializer to initialize the field with t
he given name to the | 3456 * Initialize a newly created field initializer to initialize the field with t
he given name to the |
| 4165 * value of the given expression. | 3457 * value of the given expression. |
| 4166 * | 3458 * |
| 4167 * @param keyword the token for the 'this' keyword | 3459 * @param keyword the token for the 'this' keyword |
| 4168 * @param period the token for the period after the 'this' keyword | 3460 * @param period the token for the period after the 'this' keyword |
| 4169 * @param fieldName the name of the field being initialized | 3461 * @param fieldName the name of the field being initialized |
| 4170 * @param equals the token for the equal sign between the field name and the e
xpression | 3462 * @param equals the token for the equal sign between the field name and the e
xpression |
| 4171 * @param expression the expression computing the value to which the field wil
l be initialized | 3463 * @param expression the expression computing the value to which the field wil
l be initialized |
| 4172 */ | 3464 */ |
| 4173 ConstructorFieldInitializer({Token keyword, Token period, SimpleIdentifier fie
ldName, Token equals, Expression expression}) : this.full(keyword, period, field
Name, equals, expression); | 3465 ConstructorFieldInitializer({Token keyword, Token period, SimpleIdentifier fie
ldName, Token equals, Expression expression}) : this.full(keyword, period, field
Name, equals, expression); |
| 4174 accept(ASTVisitor visitor) => visitor.visitConstructorFieldInitializer(this); | 3466 accept(ASTVisitor visitor) => visitor.visitConstructorFieldInitializer(this); |
| 4175 Token get beginToken { | 3467 Token get beginToken { |
| 4176 if (_keyword != null) { | 3468 if (keyword != null) { |
| 4177 return _keyword; | 3469 return keyword; |
| 4178 } | 3470 } |
| 4179 return _fieldName.beginToken; | 3471 return _fieldName.beginToken; |
| 4180 } | 3472 } |
| 4181 Token get endToken => _expression.endToken; | 3473 Token get endToken => _expression.endToken; |
| 4182 | 3474 |
| 4183 /** | 3475 /** |
| 4184 * Return the token for the equal sign between the field name and the expressi
on. | |
| 4185 * | |
| 4186 * @return the token for the equal sign between the field name and the express
ion | |
| 4187 */ | |
| 4188 Token get equals => _equals; | |
| 4189 | |
| 4190 /** | |
| 4191 * Return the expression computing the value to which the field will be initia
lized. | 3476 * Return the expression computing the value to which the field will be initia
lized. |
| 4192 * | 3477 * |
| 4193 * @return the expression computing the value to which the field will be initi
alized | 3478 * @return the expression computing the value to which the field will be initi
alized |
| 4194 */ | 3479 */ |
| 4195 Expression get expression => _expression; | 3480 Expression get expression => _expression; |
| 4196 | 3481 |
| 4197 /** | 3482 /** |
| 4198 * Return the name of the field being initialized. | 3483 * Return the name of the field being initialized. |
| 4199 * | 3484 * |
| 4200 * @return the name of the field being initialized | 3485 * @return the name of the field being initialized |
| 4201 */ | 3486 */ |
| 4202 SimpleIdentifier get fieldName => _fieldName; | 3487 SimpleIdentifier get fieldName => _fieldName; |
| 4203 | 3488 |
| 4204 /** | 3489 /** |
| 4205 * Return the token for the 'this' keyword, or `null` if there is no 'this' ke
yword. | |
| 4206 * | |
| 4207 * @return the token for the 'this' keyword | |
| 4208 */ | |
| 4209 Token get keyword => _keyword; | |
| 4210 | |
| 4211 /** | |
| 4212 * Return the token for the period after the 'this' keyword, or `null` if ther
e is no 'this' | |
| 4213 * keyword. | |
| 4214 * | |
| 4215 * @return the token for the period after the 'this' keyword | |
| 4216 */ | |
| 4217 Token get period => _period; | |
| 4218 | |
| 4219 /** | |
| 4220 * Set the token for the equal sign between the field name and the expression
to the given token. | |
| 4221 * | |
| 4222 * @param equals the token for the equal sign between the field name and the e
xpression | |
| 4223 */ | |
| 4224 void set equals(Token equals2) { | |
| 4225 this._equals = equals2; | |
| 4226 } | |
| 4227 | |
| 4228 /** | |
| 4229 * Set the expression computing the value to which the field will be initializ
ed to the given | 3490 * Set the expression computing the value to which the field will be initializ
ed to the given |
| 4230 * expression. | 3491 * expression. |
| 4231 * | 3492 * |
| 4232 * @param expression the expression computing the value to which the field wil
l be initialized | 3493 * @param expression the expression computing the value to which the field wil
l be initialized |
| 4233 */ | 3494 */ |
| 4234 void set expression(Expression expression2) { | 3495 void set expression(Expression expression2) { |
| 4235 this._expression = becomeParentOf(expression2); | 3496 this._expression = becomeParentOf(expression2); |
| 4236 } | 3497 } |
| 4237 | 3498 |
| 4238 /** | 3499 /** |
| 4239 * Set the name of the field being initialized to the given identifier. | 3500 * Set the name of the field being initialized to the given identifier. |
| 4240 * | 3501 * |
| 4241 * @param identifier the name of the field being initialized | 3502 * @param identifier the name of the field being initialized |
| 4242 */ | 3503 */ |
| 4243 void set fieldName(SimpleIdentifier identifier) { | 3504 void set fieldName(SimpleIdentifier identifier) { |
| 4244 _fieldName = becomeParentOf(identifier); | 3505 _fieldName = becomeParentOf(identifier); |
| 4245 } | 3506 } |
| 4246 | |
| 4247 /** | |
| 4248 * Set the token for the 'this' keyword to the given token. | |
| 4249 * | |
| 4250 * @param keyword the token for the 'this' keyword | |
| 4251 */ | |
| 4252 void set keyword(Token keyword2) { | |
| 4253 this._keyword = keyword2; | |
| 4254 } | |
| 4255 | |
| 4256 /** | |
| 4257 * Set the token for the period after the 'this' keyword to the given token. | |
| 4258 * | |
| 4259 * @param period the token for the period after the 'this' keyword | |
| 4260 */ | |
| 4261 void set period(Token period2) { | |
| 4262 this._period = period2; | |
| 4263 } | |
| 4264 void visitChildren(ASTVisitor visitor) { | 3507 void visitChildren(ASTVisitor visitor) { |
| 4265 safelyVisitChild(_fieldName, visitor); | 3508 safelyVisitChild(_fieldName, visitor); |
| 4266 safelyVisitChild(_expression, visitor); | 3509 safelyVisitChild(_expression, visitor); |
| 4267 } | 3510 } |
| 4268 } | 3511 } |
| 4269 /** | 3512 /** |
| 4270 * Instances of the class `ConstructorInitializer` defines the behavior of nodes
that can | 3513 * Instances of the class `ConstructorInitializer` defines the behavior of nodes
that can |
| 4271 * occur in the initializer list of a constructor declaration. | 3514 * occur in the initializer list of a constructor declaration. |
| 4272 * | 3515 * |
| 4273 * <pre> | 3516 * <pre> |
| (...skipping 20 matching lines...) Expand all Loading... |
| 4294 | 3537 |
| 4295 /** | 3538 /** |
| 4296 * The name of the type defining the constructor. | 3539 * The name of the type defining the constructor. |
| 4297 */ | 3540 */ |
| 4298 TypeName _type; | 3541 TypeName _type; |
| 4299 | 3542 |
| 4300 /** | 3543 /** |
| 4301 * The token for the period before the constructor name, or `null` if the spec
ified | 3544 * The token for the period before the constructor name, or `null` if the spec
ified |
| 4302 * constructor is the unnamed constructor. | 3545 * constructor is the unnamed constructor. |
| 4303 */ | 3546 */ |
| 4304 Token _period; | 3547 Token period; |
| 4305 | 3548 |
| 4306 /** | 3549 /** |
| 4307 * The name of the constructor, or `null` if the specified constructor is the
unnamed | 3550 * The name of the constructor, or `null` if the specified constructor is the
unnamed |
| 4308 * constructor. | 3551 * constructor. |
| 4309 */ | 3552 */ |
| 4310 SimpleIdentifier _name; | 3553 SimpleIdentifier _name; |
| 4311 | 3554 |
| 4312 /** | 3555 /** |
| 4313 * The element associated with this constructor name based on static type info
rmation, or | 3556 * The element associated with this constructor name based on static type info
rmation, or |
| 4314 * `null` if the AST structure has not been resolved or if this constructor na
me could not | 3557 * `null` if the AST structure has not been resolved or if this constructor na
me could not |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4325 | 3568 |
| 4326 /** | 3569 /** |
| 4327 * Initialize a newly created constructor name. | 3570 * Initialize a newly created constructor name. |
| 4328 * | 3571 * |
| 4329 * @param type the name of the type defining the constructor | 3572 * @param type the name of the type defining the constructor |
| 4330 * @param period the token for the period before the constructor name | 3573 * @param period the token for the period before the constructor name |
| 4331 * @param name the name of the constructor | 3574 * @param name the name of the constructor |
| 4332 */ | 3575 */ |
| 4333 ConstructorName.full(TypeName type, Token period, SimpleIdentifier name) { | 3576 ConstructorName.full(TypeName type, Token period, SimpleIdentifier name) { |
| 4334 this._type = becomeParentOf(type); | 3577 this._type = becomeParentOf(type); |
| 4335 this._period = period; | 3578 this.period = period; |
| 4336 this._name = becomeParentOf(name); | 3579 this._name = becomeParentOf(name); |
| 4337 } | 3580 } |
| 4338 | 3581 |
| 4339 /** | 3582 /** |
| 4340 * Initialize a newly created constructor name. | 3583 * Initialize a newly created constructor name. |
| 4341 * | 3584 * |
| 4342 * @param type the name of the type defining the constructor | 3585 * @param type the name of the type defining the constructor |
| 4343 * @param period the token for the period before the constructor name | 3586 * @param period the token for the period before the constructor name |
| 4344 * @param name the name of the constructor | 3587 * @param name the name of the constructor |
| 4345 */ | 3588 */ |
| (...skipping 18 matching lines...) Expand all Loading... |
| 4364 | 3607 |
| 4365 /** | 3608 /** |
| 4366 * Return the name of the constructor, or `null` if the specified constructor
is the unnamed | 3609 * Return the name of the constructor, or `null` if the specified constructor
is the unnamed |
| 4367 * constructor. | 3610 * constructor. |
| 4368 * | 3611 * |
| 4369 * @return the name of the constructor | 3612 * @return the name of the constructor |
| 4370 */ | 3613 */ |
| 4371 SimpleIdentifier get name => _name; | 3614 SimpleIdentifier get name => _name; |
| 4372 | 3615 |
| 4373 /** | 3616 /** |
| 4374 * Return the token for the period before the constructor name, or `null` if t
he specified | |
| 4375 * constructor is the unnamed constructor. | |
| 4376 * | |
| 4377 * @return the token for the period before the constructor name | |
| 4378 */ | |
| 4379 Token get period => _period; | |
| 4380 | |
| 4381 /** | |
| 4382 * Return the element associated with this constructor name based on static ty
pe information, or | 3617 * Return the element associated with this constructor name based on static ty
pe information, or |
| 4383 * `null` if the AST structure has not been resolved or if this constructor na
me could not | 3618 * `null` if the AST structure has not been resolved or if this constructor na
me could not |
| 4384 * be resolved. | 3619 * be resolved. |
| 4385 * | 3620 * |
| 4386 * @return the element associated with this constructor name | 3621 * @return the element associated with this constructor name |
| 4387 */ | 3622 */ |
| 4388 ConstructorElement get staticElement => _staticElement; | 3623 ConstructorElement get staticElement => _staticElement; |
| 4389 | 3624 |
| 4390 /** | 3625 /** |
| 4391 * Return the name of the type defining the constructor. | 3626 * Return the name of the type defining the constructor. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4407 /** | 3642 /** |
| 4408 * Set the name of the constructor to the given name. | 3643 * Set the name of the constructor to the given name. |
| 4409 * | 3644 * |
| 4410 * @param name the name of the constructor | 3645 * @param name the name of the constructor |
| 4411 */ | 3646 */ |
| 4412 void set name(SimpleIdentifier name2) { | 3647 void set name(SimpleIdentifier name2) { |
| 4413 this._name = becomeParentOf(name2); | 3648 this._name = becomeParentOf(name2); |
| 4414 } | 3649 } |
| 4415 | 3650 |
| 4416 /** | 3651 /** |
| 4417 * Return the token for the period before the constructor name to the given to
ken. | |
| 4418 * | |
| 4419 * @param period the token for the period before the constructor name | |
| 4420 */ | |
| 4421 void set period(Token period2) { | |
| 4422 this._period = period2; | |
| 4423 } | |
| 4424 | |
| 4425 /** | |
| 4426 * Set the element associated with this constructor name based on static type
information to the | 3652 * Set the element associated with this constructor name based on static type
information to the |
| 4427 * given element. | 3653 * given element. |
| 4428 * | 3654 * |
| 4429 * @param element the element to be associated with this constructor name | 3655 * @param element the element to be associated with this constructor name |
| 4430 */ | 3656 */ |
| 4431 void set staticElement(ConstructorElement element) { | 3657 void set staticElement(ConstructorElement element) { |
| 4432 _staticElement = element; | 3658 _staticElement = element; |
| 4433 } | 3659 } |
| 4434 | 3660 |
| 4435 /** | 3661 /** |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4453 * 'continue' [SimpleIdentifier]? ';' | 3679 * 'continue' [SimpleIdentifier]? ';' |
| 4454 * </pre> | 3680 * </pre> |
| 4455 * | 3681 * |
| 4456 * @coverage dart.engine.ast | 3682 * @coverage dart.engine.ast |
| 4457 */ | 3683 */ |
| 4458 class ContinueStatement extends Statement { | 3684 class ContinueStatement extends Statement { |
| 4459 | 3685 |
| 4460 /** | 3686 /** |
| 4461 * The token representing the 'continue' keyword. | 3687 * The token representing the 'continue' keyword. |
| 4462 */ | 3688 */ |
| 4463 Token _keyword; | 3689 Token keyword; |
| 4464 | 3690 |
| 4465 /** | 3691 /** |
| 4466 * The label associated with the statement, or `null` if there is no label. | 3692 * The label associated with the statement, or `null` if there is no label. |
| 4467 */ | 3693 */ |
| 4468 SimpleIdentifier _label; | 3694 SimpleIdentifier _label; |
| 4469 | 3695 |
| 4470 /** | 3696 /** |
| 4471 * The semicolon terminating the statement. | 3697 * The semicolon terminating the statement. |
| 4472 */ | 3698 */ |
| 4473 Token _semicolon; | 3699 Token semicolon; |
| 4474 | 3700 |
| 4475 /** | 3701 /** |
| 4476 * Initialize a newly created continue statement. | 3702 * Initialize a newly created continue statement. |
| 4477 * | 3703 * |
| 4478 * @param keyword the token representing the 'continue' keyword | 3704 * @param keyword the token representing the 'continue' keyword |
| 4479 * @param label the label associated with the statement | 3705 * @param label the label associated with the statement |
| 4480 * @param semicolon the semicolon terminating the statement | 3706 * @param semicolon the semicolon terminating the statement |
| 4481 */ | 3707 */ |
| 4482 ContinueStatement.full(Token keyword, SimpleIdentifier label, Token semicolon)
{ | 3708 ContinueStatement.full(Token keyword, SimpleIdentifier label, Token semicolon)
{ |
| 4483 this._keyword = keyword; | 3709 this.keyword = keyword; |
| 4484 this._label = becomeParentOf(label); | 3710 this._label = becomeParentOf(label); |
| 4485 this._semicolon = semicolon; | 3711 this.semicolon = semicolon; |
| 4486 } | 3712 } |
| 4487 | 3713 |
| 4488 /** | 3714 /** |
| 4489 * Initialize a newly created continue statement. | 3715 * Initialize a newly created continue statement. |
| 4490 * | 3716 * |
| 4491 * @param keyword the token representing the 'continue' keyword | 3717 * @param keyword the token representing the 'continue' keyword |
| 4492 * @param label the label associated with the statement | 3718 * @param label the label associated with the statement |
| 4493 * @param semicolon the semicolon terminating the statement | 3719 * @param semicolon the semicolon terminating the statement |
| 4494 */ | 3720 */ |
| 4495 ContinueStatement({Token keyword, SimpleIdentifier label, Token semicolon}) :
this.full(keyword, label, semicolon); | 3721 ContinueStatement({Token keyword, SimpleIdentifier label, Token semicolon}) :
this.full(keyword, label, semicolon); |
| 4496 accept(ASTVisitor visitor) => visitor.visitContinueStatement(this); | 3722 accept(ASTVisitor visitor) => visitor.visitContinueStatement(this); |
| 4497 Token get beginToken => _keyword; | 3723 Token get beginToken => keyword; |
| 4498 Token get endToken => _semicolon; | 3724 Token get endToken => semicolon; |
| 4499 | |
| 4500 /** | |
| 4501 * Return the token representing the 'continue' keyword. | |
| 4502 * | |
| 4503 * @return the token representing the 'continue' keyword | |
| 4504 */ | |
| 4505 Token get keyword => _keyword; | |
| 4506 | 3725 |
| 4507 /** | 3726 /** |
| 4508 * Return the label associated with the statement, or `null` if there is no la
bel. | 3727 * Return the label associated with the statement, or `null` if there is no la
bel. |
| 4509 * | 3728 * |
| 4510 * @return the label associated with the statement | 3729 * @return the label associated with the statement |
| 4511 */ | 3730 */ |
| 4512 SimpleIdentifier get label => _label; | 3731 SimpleIdentifier get label => _label; |
| 4513 | 3732 |
| 4514 /** | 3733 /** |
| 4515 * Return the semicolon terminating the statement. | |
| 4516 * | |
| 4517 * @return the semicolon terminating the statement | |
| 4518 */ | |
| 4519 Token get semicolon => _semicolon; | |
| 4520 | |
| 4521 /** | |
| 4522 * Set the token representing the 'continue' keyword to the given token. | |
| 4523 * | |
| 4524 * @param keyword the token representing the 'continue' keyword | |
| 4525 */ | |
| 4526 void set keyword(Token keyword2) { | |
| 4527 this._keyword = keyword2; | |
| 4528 } | |
| 4529 | |
| 4530 /** | |
| 4531 * Set the label associated with the statement to the given label. | 3734 * Set the label associated with the statement to the given label. |
| 4532 * | 3735 * |
| 4533 * @param identifier the label associated with the statement | 3736 * @param identifier the label associated with the statement |
| 4534 */ | 3737 */ |
| 4535 void set label(SimpleIdentifier identifier) { | 3738 void set label(SimpleIdentifier identifier) { |
| 4536 _label = becomeParentOf(identifier); | 3739 _label = becomeParentOf(identifier); |
| 4537 } | 3740 } |
| 4538 | |
| 4539 /** | |
| 4540 * Set the semicolon terminating the statement to the given token. | |
| 4541 * | |
| 4542 * @param semicolon the semicolon terminating the statement | |
| 4543 */ | |
| 4544 void set semicolon(Token semicolon2) { | |
| 4545 this._semicolon = semicolon2; | |
| 4546 } | |
| 4547 void visitChildren(ASTVisitor visitor) { | 3741 void visitChildren(ASTVisitor visitor) { |
| 4548 safelyVisitChild(_label, visitor); | 3742 safelyVisitChild(_label, visitor); |
| 4549 } | 3743 } |
| 4550 } | 3744 } |
| 4551 /** | 3745 /** |
| 4552 * The abstract class `Declaration` defines the behavior common to nodes that re
present the | 3746 * The abstract class `Declaration` defines the behavior common to nodes that re
present the |
| 4553 * declaration of a name. Each declared name is visible within a name scope. | 3747 * declaration of a name. Each declared name is visible within a name scope. |
| 4554 * | 3748 * |
| 4555 * @coverage dart.engine.ast | 3749 * @coverage dart.engine.ast |
| 4556 */ | 3750 */ |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4590 * </pre> | 3784 * </pre> |
| 4591 * | 3785 * |
| 4592 * @coverage dart.engine.ast | 3786 * @coverage dart.engine.ast |
| 4593 */ | 3787 */ |
| 4594 class DeclaredIdentifier extends Declaration { | 3788 class DeclaredIdentifier extends Declaration { |
| 4595 | 3789 |
| 4596 /** | 3790 /** |
| 4597 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no | 3791 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no |
| 4598 * keyword was used. | 3792 * keyword was used. |
| 4599 */ | 3793 */ |
| 4600 Token _keyword; | 3794 Token keyword; |
| 4601 | 3795 |
| 4602 /** | 3796 /** |
| 4603 * The name of the declared type of the parameter, or `null` if the parameter
does not have | 3797 * The name of the declared type of the parameter, or `null` if the parameter
does not have |
| 4604 * a declared type. | 3798 * a declared type. |
| 4605 */ | 3799 */ |
| 4606 TypeName _type; | 3800 TypeName _type; |
| 4607 | 3801 |
| 4608 /** | 3802 /** |
| 4609 * The name of the variable being declared. | 3803 * The name of the variable being declared. |
| 4610 */ | 3804 */ |
| 4611 SimpleIdentifier _identifier; | 3805 SimpleIdentifier identifier; |
| 4612 | 3806 |
| 4613 /** | 3807 /** |
| 4614 * Initialize a newly created formal parameter. | 3808 * Initialize a newly created formal parameter. |
| 4615 * | 3809 * |
| 4616 * @param comment the documentation comment associated with this parameter | 3810 * @param comment the documentation comment associated with this parameter |
| 4617 * @param metadata the annotations associated with this parameter | 3811 * @param metadata the annotations associated with this parameter |
| 4618 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 3812 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 4619 * @param type the name of the declared type of the parameter | 3813 * @param type the name of the declared type of the parameter |
| 4620 * @param identifier the name of the parameter being declared | 3814 * @param identifier the name of the parameter being declared |
| 4621 */ | 3815 */ |
| 4622 DeclaredIdentifier.full(Comment comment, List<Annotation> metadata, Token keyw
ord, TypeName type, SimpleIdentifier identifier) : super.full(comment, metadata)
{ | 3816 DeclaredIdentifier.full(Comment comment, List<Annotation> metadata, Token keyw
ord, TypeName type, SimpleIdentifier identifier) : super.full(comment, metadata)
{ |
| 4623 this._keyword = keyword; | 3817 this.keyword = keyword; |
| 4624 this._type = becomeParentOf(type); | 3818 this._type = becomeParentOf(type); |
| 4625 this._identifier = becomeParentOf(identifier); | 3819 this.identifier = becomeParentOf(identifier); |
| 4626 } | 3820 } |
| 4627 | 3821 |
| 4628 /** | 3822 /** |
| 4629 * Initialize a newly created formal parameter. | 3823 * Initialize a newly created formal parameter. |
| 4630 * | 3824 * |
| 4631 * @param comment the documentation comment associated with this parameter | 3825 * @param comment the documentation comment associated with this parameter |
| 4632 * @param metadata the annotations associated with this parameter | 3826 * @param metadata the annotations associated with this parameter |
| 4633 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 3827 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 4634 * @param type the name of the declared type of the parameter | 3828 * @param type the name of the declared type of the parameter |
| 4635 * @param identifier the name of the parameter being declared | 3829 * @param identifier the name of the parameter being declared |
| 4636 */ | 3830 */ |
| 4637 DeclaredIdentifier({Comment comment, List<Annotation> metadata, Token keyword,
TypeName type, SimpleIdentifier identifier}) : this.full(comment, metadata, key
word, type, identifier); | 3831 DeclaredIdentifier({Comment comment, List<Annotation> metadata, Token keyword,
TypeName type, SimpleIdentifier identifier}) : this.full(comment, metadata, key
word, type, identifier); |
| 4638 accept(ASTVisitor visitor) => visitor.visitDeclaredIdentifier(this); | 3832 accept(ASTVisitor visitor) => visitor.visitDeclaredIdentifier(this); |
| 4639 LocalVariableElement get element { | 3833 LocalVariableElement get element { |
| 4640 SimpleIdentifier identifier = this.identifier; | 3834 SimpleIdentifier identifier2 = identifier; |
| 4641 if (identifier == null) { | 3835 if (identifier2 == null) { |
| 4642 return null; | 3836 return null; |
| 4643 } | 3837 } |
| 4644 return identifier.staticElement as LocalVariableElement; | 3838 return identifier2.staticElement as LocalVariableElement; |
| 4645 } | 3839 } |
| 4646 Token get endToken => _identifier.endToken; | 3840 Token get endToken => identifier.endToken; |
| 4647 | |
| 4648 /** | |
| 4649 * Return the name of the variable being declared. | |
| 4650 * | |
| 4651 * @return the name of the variable being declared | |
| 4652 */ | |
| 4653 SimpleIdentifier get identifier => _identifier; | |
| 4654 | |
| 4655 /** | |
| 4656 * Return the token representing either the 'final', 'const' or 'var' keyword,
or `null` if | |
| 4657 * no keyword was used. | |
| 4658 * | |
| 4659 * @return the token representing either the 'final', 'const' or 'var' keyword | |
| 4660 */ | |
| 4661 Token get keyword => _keyword; | |
| 4662 | 3841 |
| 4663 /** | 3842 /** |
| 4664 * Return the name of the declared type of the parameter, or `null` if the par
ameter does | 3843 * Return the name of the declared type of the parameter, or `null` if the par
ameter does |
| 4665 * not have a declared type. | 3844 * not have a declared type. |
| 4666 * | 3845 * |
| 4667 * @return the name of the declared type of the parameter | 3846 * @return the name of the declared type of the parameter |
| 4668 */ | 3847 */ |
| 4669 TypeName get type => _type; | 3848 TypeName get type => _type; |
| 4670 | 3849 |
| 4671 /** | 3850 /** |
| 4672 * Return `true` if this variable was declared with the 'const' modifier. | 3851 * Return `true` if this variable was declared with the 'const' modifier. |
| 4673 * | 3852 * |
| 4674 * @return `true` if this variable was declared with the 'const' modifier | 3853 * @return `true` if this variable was declared with the 'const' modifier |
| 4675 */ | 3854 */ |
| 4676 bool get isConst => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.CONST); | 3855 bool get isConst => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.CONST); |
| 4677 | 3856 |
| 4678 /** | 3857 /** |
| 4679 * Return `true` if this variable was declared with the 'final' modifier. Vari
ables that are | 3858 * Return `true` if this variable was declared with the 'final' modifier. Vari
ables that are |
| 4680 * declared with the 'const' modifier will return `false` even though they are
implicitly | 3859 * declared with the 'const' modifier will return `false` even though they are
implicitly |
| 4681 * final. | 3860 * final. |
| 4682 * | 3861 * |
| 4683 * @return `true` if this variable was declared with the 'final' modifier | 3862 * @return `true` if this variable was declared with the 'final' modifier |
| 4684 */ | 3863 */ |
| 4685 bool get isFinal => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.FINAL); | 3864 bool get isFinal => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.FINAL); |
| 4686 | |
| 4687 /** | |
| 4688 * Set the token representing either the 'final', 'const' or 'var' keyword to
the given token. | |
| 4689 * | |
| 4690 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | |
| 4691 */ | |
| 4692 void set keyword(Token keyword2) { | |
| 4693 this._keyword = keyword2; | |
| 4694 } | |
| 4695 | 3865 |
| 4696 /** | 3866 /** |
| 4697 * Set the name of the declared type of the parameter to the given type name. | 3867 * Set the name of the declared type of the parameter to the given type name. |
| 4698 * | 3868 * |
| 4699 * @param typeName the name of the declared type of the parameter | 3869 * @param typeName the name of the declared type of the parameter |
| 4700 */ | 3870 */ |
| 4701 void set type(TypeName typeName) { | 3871 void set type(TypeName typeName) { |
| 4702 _type = becomeParentOf(typeName); | 3872 _type = becomeParentOf(typeName); |
| 4703 } | 3873 } |
| 4704 void visitChildren(ASTVisitor visitor) { | 3874 void visitChildren(ASTVisitor visitor) { |
| 4705 super.visitChildren(visitor); | 3875 super.visitChildren(visitor); |
| 4706 safelyVisitChild(_type, visitor); | 3876 safelyVisitChild(_type, visitor); |
| 4707 safelyVisitChild(_identifier, visitor); | 3877 safelyVisitChild(identifier, visitor); |
| 4708 } | 3878 } |
| 4709 Token get firstTokenAfterCommentAndMetadata { | 3879 Token get firstTokenAfterCommentAndMetadata { |
| 4710 if (_keyword != null) { | 3880 if (keyword != null) { |
| 4711 return _keyword; | 3881 return keyword; |
| 4712 } else if (_type != null) { | 3882 } else if (_type != null) { |
| 4713 return _type.beginToken; | 3883 return _type.beginToken; |
| 4714 } | 3884 } |
| 4715 return _identifier.beginToken; | 3885 return identifier.beginToken; |
| 4716 } | 3886 } |
| 4717 } | 3887 } |
| 4718 /** | 3888 /** |
| 4719 * Instances of the class `DefaultFormalParameter` represent a formal parameter
with a default | 3889 * Instances of the class `DefaultFormalParameter` represent a formal parameter
with a default |
| 4720 * value. There are two kinds of parameters that are both represented by this cl
ass: named formal | 3890 * value. There are two kinds of parameters that are both represented by this cl
ass: named formal |
| 4721 * parameters and positional formal parameters. | 3891 * parameters and positional formal parameters. |
| 4722 * | 3892 * |
| 4723 * <pre> | 3893 * <pre> |
| 4724 * defaultFormalParameter ::= | 3894 * defaultFormalParameter ::= |
| 4725 * [NormalFormalParameter] ('=' [Expression])? | 3895 * [NormalFormalParameter] ('=' [Expression])? |
| (...skipping 13 matching lines...) Expand all Loading... |
| 4739 | 3909 |
| 4740 /** | 3910 /** |
| 4741 * The kind of this parameter. | 3911 * The kind of this parameter. |
| 4742 */ | 3912 */ |
| 4743 ParameterKind _kind; | 3913 ParameterKind _kind; |
| 4744 | 3914 |
| 4745 /** | 3915 /** |
| 4746 * The token separating the parameter from the default value, or `null` if the
re is no | 3916 * The token separating the parameter from the default value, or `null` if the
re is no |
| 4747 * default value. | 3917 * default value. |
| 4748 */ | 3918 */ |
| 4749 Token _separator; | 3919 Token separator; |
| 4750 | 3920 |
| 4751 /** | 3921 /** |
| 4752 * The expression computing the default value for the parameter, or `null` if
there is no | 3922 * The expression computing the default value for the parameter, or `null` if
there is no |
| 4753 * default value. | 3923 * default value. |
| 4754 */ | 3924 */ |
| 4755 Expression _defaultValue; | 3925 Expression _defaultValue; |
| 4756 | 3926 |
| 4757 /** | 3927 /** |
| 4758 * Initialize a newly created default formal parameter. | 3928 * Initialize a newly created default formal parameter. |
| 4759 * | 3929 * |
| 4760 * @param parameter the formal parameter with which the default value is assoc
iated | 3930 * @param parameter the formal parameter with which the default value is assoc
iated |
| 4761 * @param kind the kind of this parameter | 3931 * @param kind the kind of this parameter |
| 4762 * @param separator the token separating the parameter from the default value | 3932 * @param separator the token separating the parameter from the default value |
| 4763 * @param defaultValue the expression computing the default value for the para
meter | 3933 * @param defaultValue the expression computing the default value for the para
meter |
| 4764 */ | 3934 */ |
| 4765 DefaultFormalParameter.full(NormalFormalParameter parameter, ParameterKind kin
d, Token separator, Expression defaultValue) { | 3935 DefaultFormalParameter.full(NormalFormalParameter parameter, ParameterKind kin
d, Token separator, Expression defaultValue) { |
| 4766 this._parameter = becomeParentOf(parameter); | 3936 this._parameter = becomeParentOf(parameter); |
| 4767 this._kind = kind; | 3937 this._kind = kind; |
| 4768 this._separator = separator; | 3938 this.separator = separator; |
| 4769 this._defaultValue = becomeParentOf(defaultValue); | 3939 this._defaultValue = becomeParentOf(defaultValue); |
| 4770 } | 3940 } |
| 4771 | 3941 |
| 4772 /** | 3942 /** |
| 4773 * Initialize a newly created default formal parameter. | 3943 * Initialize a newly created default formal parameter. |
| 4774 * | 3944 * |
| 4775 * @param parameter the formal parameter with which the default value is assoc
iated | 3945 * @param parameter the formal parameter with which the default value is assoc
iated |
| 4776 * @param kind the kind of this parameter | 3946 * @param kind the kind of this parameter |
| 4777 * @param separator the token separating the parameter from the default value | 3947 * @param separator the token separating the parameter from the default value |
| 4778 * @param defaultValue the expression computing the default value for the para
meter | 3948 * @param defaultValue the expression computing the default value for the para
meter |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4796 } | 3966 } |
| 4797 SimpleIdentifier get identifier => _parameter.identifier; | 3967 SimpleIdentifier get identifier => _parameter.identifier; |
| 4798 ParameterKind get kind => _kind; | 3968 ParameterKind get kind => _kind; |
| 4799 | 3969 |
| 4800 /** | 3970 /** |
| 4801 * Return the formal parameter with which the default value is associated. | 3971 * Return the formal parameter with which the default value is associated. |
| 4802 * | 3972 * |
| 4803 * @return the formal parameter with which the default value is associated | 3973 * @return the formal parameter with which the default value is associated |
| 4804 */ | 3974 */ |
| 4805 NormalFormalParameter get parameter => _parameter; | 3975 NormalFormalParameter get parameter => _parameter; |
| 4806 | |
| 4807 /** | |
| 4808 * Return the token separating the parameter from the default value, or `null`
if there is | |
| 4809 * no default value. | |
| 4810 * | |
| 4811 * @return the token separating the parameter from the default value | |
| 4812 */ | |
| 4813 Token get separator => _separator; | |
| 4814 bool get isConst => _parameter != null && _parameter.isConst; | 3976 bool get isConst => _parameter != null && _parameter.isConst; |
| 4815 bool get isFinal => _parameter != null && _parameter.isFinal; | 3977 bool get isFinal => _parameter != null && _parameter.isFinal; |
| 4816 | 3978 |
| 4817 /** | 3979 /** |
| 4818 * Set the expression computing the default value for the parameter to the giv
en expression. | 3980 * Set the expression computing the default value for the parameter to the giv
en expression. |
| 4819 * | 3981 * |
| 4820 * @param expression the expression computing the default value for the parame
ter | 3982 * @param expression the expression computing the default value for the parame
ter |
| 4821 */ | 3983 */ |
| 4822 void set defaultValue(Expression expression) { | 3984 void set defaultValue(Expression expression) { |
| 4823 _defaultValue = becomeParentOf(expression); | 3985 _defaultValue = becomeParentOf(expression); |
| 4824 } | 3986 } |
| 4825 | 3987 |
| 4826 /** | 3988 /** |
| 4827 * Set the kind of this parameter to the given kind. | 3989 * Set the kind of this parameter to the given kind. |
| 4828 * | 3990 * |
| 4829 * @param kind the kind of this parameter | 3991 * @param kind the kind of this parameter |
| 4830 */ | 3992 */ |
| 4831 void set kind(ParameterKind kind2) { | 3993 void set kind(ParameterKind kind2) { |
| 4832 this._kind = kind2; | 3994 this._kind = kind2; |
| 4833 } | 3995 } |
| 4834 | 3996 |
| 4835 /** | 3997 /** |
| 4836 * Set the formal parameter with which the default value is associated to the
given parameter. | 3998 * Set the formal parameter with which the default value is associated to the
given parameter. |
| 4837 * | 3999 * |
| 4838 * @param formalParameter the formal parameter with which the default value is
associated | 4000 * @param formalParameter the formal parameter with which the default value is
associated |
| 4839 */ | 4001 */ |
| 4840 void set parameter(NormalFormalParameter formalParameter) { | 4002 void set parameter(NormalFormalParameter formalParameter) { |
| 4841 _parameter = becomeParentOf(formalParameter); | 4003 _parameter = becomeParentOf(formalParameter); |
| 4842 } | 4004 } |
| 4843 | |
| 4844 /** | |
| 4845 * Set the token separating the parameter from the default value to the given
token. | |
| 4846 * | |
| 4847 * @param separator the token separating the parameter from the default value | |
| 4848 */ | |
| 4849 void set separator(Token separator2) { | |
| 4850 this._separator = separator2; | |
| 4851 } | |
| 4852 void visitChildren(ASTVisitor visitor) { | 4005 void visitChildren(ASTVisitor visitor) { |
| 4853 safelyVisitChild(_parameter, visitor); | 4006 safelyVisitChild(_parameter, visitor); |
| 4854 safelyVisitChild(_defaultValue, visitor); | 4007 safelyVisitChild(_defaultValue, visitor); |
| 4855 } | 4008 } |
| 4856 } | 4009 } |
| 4857 /** | 4010 /** |
| 4858 * The abstract class `Directive` defines the behavior common to nodes that repr
esent a | 4011 * The abstract class `Directive` defines the behavior common to nodes that repr
esent a |
| 4859 * directive. | 4012 * directive. |
| 4860 * | 4013 * |
| 4861 * <pre> | 4014 * <pre> |
| 4862 * directive ::= | 4015 * directive ::= |
| 4863 * [ExportDirective] | 4016 * [ExportDirective] |
| 4864 * | [ImportDirective] | 4017 * | [ImportDirective] |
| 4865 * | [LibraryDirective] | 4018 * | [LibraryDirective] |
| 4866 * | [PartDirective] | 4019 * | [PartDirective] |
| 4867 * | [PartOfDirective] | 4020 * | [PartOfDirective] |
| 4868 * </pre> | 4021 * </pre> |
| 4869 * | 4022 * |
| 4870 * @coverage dart.engine.ast | 4023 * @coverage dart.engine.ast |
| 4871 */ | 4024 */ |
| 4872 abstract class Directive extends AnnotatedNode { | 4025 abstract class Directive extends AnnotatedNode { |
| 4873 | 4026 |
| 4874 /** | 4027 /** |
| 4875 * The element associated with this directive, or `null` if the AST structure
has not been | 4028 * The element associated with this directive, or `null` if the AST structure
has not been |
| 4876 * resolved or if this directive could not be resolved. | 4029 * resolved or if this directive could not be resolved. |
| 4877 */ | 4030 */ |
| 4878 Element _element; | 4031 Element element; |
| 4879 | 4032 |
| 4880 /** | 4033 /** |
| 4881 * Initialize a newly create directive. | 4034 * Initialize a newly create directive. |
| 4882 * | 4035 * |
| 4883 * @param comment the documentation comment associated with this directive | 4036 * @param comment the documentation comment associated with this directive |
| 4884 * @param metadata the annotations associated with the directive | 4037 * @param metadata the annotations associated with the directive |
| 4885 */ | 4038 */ |
| 4886 Directive.full(Comment comment, List<Annotation> metadata) : super.full(commen
t, metadata); | 4039 Directive.full(Comment comment, List<Annotation> metadata) : super.full(commen
t, metadata); |
| 4887 | 4040 |
| 4888 /** | 4041 /** |
| 4889 * Initialize a newly create directive. | 4042 * Initialize a newly create directive. |
| 4890 * | 4043 * |
| 4891 * @param comment the documentation comment associated with this directive | 4044 * @param comment the documentation comment associated with this directive |
| 4892 * @param metadata the annotations associated with the directive | 4045 * @param metadata the annotations associated with the directive |
| 4893 */ | 4046 */ |
| 4894 Directive({Comment comment, List<Annotation> metadata}) : this.full(comment, m
etadata); | 4047 Directive({Comment comment, List<Annotation> metadata}) : this.full(comment, m
etadata); |
| 4895 | 4048 |
| 4896 /** | 4049 /** |
| 4897 * Return the element associated with this directive, or `null` if the AST str
ucture has not | |
| 4898 * been resolved or if this directive could not be resolved. Examples of the l
atter case include a | |
| 4899 * directive that contains an invalid URL or a URL that does not exist. | |
| 4900 * | |
| 4901 * @return the element associated with this directive | |
| 4902 */ | |
| 4903 Element get element => _element; | |
| 4904 | |
| 4905 /** | |
| 4906 * Return the token representing the keyword that introduces this directive ('
import', 'export', | 4050 * Return the token representing the keyword that introduces this directive ('
import', 'export', |
| 4907 * 'library' or 'part'). | 4051 * 'library' or 'part'). |
| 4908 * | 4052 * |
| 4909 * @return the token representing the keyword that introduces this directive | 4053 * @return the token representing the keyword that introduces this directive |
| 4910 */ | 4054 */ |
| 4911 Token get keyword; | 4055 Token get keyword; |
| 4912 | |
| 4913 /** | |
| 4914 * Set the element associated with this directive to the given element. | |
| 4915 * | |
| 4916 * @param element the element associated with this directive | |
| 4917 */ | |
| 4918 void set element(Element element2) { | |
| 4919 this._element = element2; | |
| 4920 } | |
| 4921 } | 4056 } |
| 4922 /** | 4057 /** |
| 4923 * Instances of the class `DoStatement` represent a do statement. | 4058 * Instances of the class `DoStatement` represent a do statement. |
| 4924 * | 4059 * |
| 4925 * <pre> | 4060 * <pre> |
| 4926 * doStatement ::= | 4061 * doStatement ::= |
| 4927 * 'do' [Statement] 'while' '(' [Expression] ')' ';' | 4062 * 'do' [Statement] 'while' '(' [Expression] ')' ';' |
| 4928 * </pre> | 4063 * </pre> |
| 4929 * | 4064 * |
| 4930 * @coverage dart.engine.ast | 4065 * @coverage dart.engine.ast |
| 4931 */ | 4066 */ |
| 4932 class DoStatement extends Statement { | 4067 class DoStatement extends Statement { |
| 4933 | 4068 |
| 4934 /** | 4069 /** |
| 4935 * The token representing the 'do' keyword. | 4070 * The token representing the 'do' keyword. |
| 4936 */ | 4071 */ |
| 4937 Token _doKeyword; | 4072 Token doKeyword; |
| 4938 | 4073 |
| 4939 /** | 4074 /** |
| 4940 * The body of the loop. | 4075 * The body of the loop. |
| 4941 */ | 4076 */ |
| 4942 Statement _body; | 4077 Statement _body; |
| 4943 | 4078 |
| 4944 /** | 4079 /** |
| 4945 * The token representing the 'while' keyword. | 4080 * The token representing the 'while' keyword. |
| 4946 */ | 4081 */ |
| 4947 Token _whileKeyword; | 4082 Token whileKeyword; |
| 4948 | 4083 |
| 4949 /** | 4084 /** |
| 4950 * The left parenthesis. | 4085 * The left parenthesis. |
| 4951 */ | 4086 */ |
| 4952 Token _leftParenthesis; | 4087 Token _leftParenthesis; |
| 4953 | 4088 |
| 4954 /** | 4089 /** |
| 4955 * The condition that determines when the loop will terminate. | 4090 * The condition that determines when the loop will terminate. |
| 4956 */ | 4091 */ |
| 4957 Expression _condition; | 4092 Expression _condition; |
| 4958 | 4093 |
| 4959 /** | 4094 /** |
| 4960 * The right parenthesis. | 4095 * The right parenthesis. |
| 4961 */ | 4096 */ |
| 4962 Token _rightParenthesis; | 4097 Token _rightParenthesis; |
| 4963 | 4098 |
| 4964 /** | 4099 /** |
| 4965 * The semicolon terminating the statement. | 4100 * The semicolon terminating the statement. |
| 4966 */ | 4101 */ |
| 4967 Token _semicolon; | 4102 Token semicolon; |
| 4968 | 4103 |
| 4969 /** | 4104 /** |
| 4970 * Initialize a newly created do loop. | 4105 * Initialize a newly created do loop. |
| 4971 * | 4106 * |
| 4972 * @param doKeyword the token representing the 'do' keyword | 4107 * @param doKeyword the token representing the 'do' keyword |
| 4973 * @param body the body of the loop | 4108 * @param body the body of the loop |
| 4974 * @param whileKeyword the token representing the 'while' keyword | 4109 * @param whileKeyword the token representing the 'while' keyword |
| 4975 * @param leftParenthesis the left parenthesis | 4110 * @param leftParenthesis the left parenthesis |
| 4976 * @param condition the condition that determines when the loop will terminate | 4111 * @param condition the condition that determines when the loop will terminate |
| 4977 * @param rightParenthesis the right parenthesis | 4112 * @param rightParenthesis the right parenthesis |
| 4978 * @param semicolon the semicolon terminating the statement | 4113 * @param semicolon the semicolon terminating the statement |
| 4979 */ | 4114 */ |
| 4980 DoStatement.full(Token doKeyword, Statement body, Token whileKeyword, Token le
ftParenthesis, Expression condition, Token rightParenthesis, Token semicolon) { | 4115 DoStatement.full(Token doKeyword, Statement body, Token whileKeyword, Token le
ftParenthesis, Expression condition, Token rightParenthesis, Token semicolon) { |
| 4981 this._doKeyword = doKeyword; | 4116 this.doKeyword = doKeyword; |
| 4982 this._body = becomeParentOf(body); | 4117 this._body = becomeParentOf(body); |
| 4983 this._whileKeyword = whileKeyword; | 4118 this.whileKeyword = whileKeyword; |
| 4984 this._leftParenthesis = leftParenthesis; | 4119 this._leftParenthesis = leftParenthesis; |
| 4985 this._condition = becomeParentOf(condition); | 4120 this._condition = becomeParentOf(condition); |
| 4986 this._rightParenthesis = rightParenthesis; | 4121 this._rightParenthesis = rightParenthesis; |
| 4987 this._semicolon = semicolon; | 4122 this.semicolon = semicolon; |
| 4988 } | 4123 } |
| 4989 | 4124 |
| 4990 /** | 4125 /** |
| 4991 * Initialize a newly created do loop. | 4126 * Initialize a newly created do loop. |
| 4992 * | 4127 * |
| 4993 * @param doKeyword the token representing the 'do' keyword | 4128 * @param doKeyword the token representing the 'do' keyword |
| 4994 * @param body the body of the loop | 4129 * @param body the body of the loop |
| 4995 * @param whileKeyword the token representing the 'while' keyword | 4130 * @param whileKeyword the token representing the 'while' keyword |
| 4996 * @param leftParenthesis the left parenthesis | 4131 * @param leftParenthesis the left parenthesis |
| 4997 * @param condition the condition that determines when the loop will terminate | 4132 * @param condition the condition that determines when the loop will terminate |
| 4998 * @param rightParenthesis the right parenthesis | 4133 * @param rightParenthesis the right parenthesis |
| 4999 * @param semicolon the semicolon terminating the statement | 4134 * @param semicolon the semicolon terminating the statement |
| 5000 */ | 4135 */ |
| 5001 DoStatement({Token doKeyword, Statement body, Token whileKeyword, Token leftPa
renthesis, Expression condition, Token rightParenthesis, Token semicolon}) : thi
s.full(doKeyword, body, whileKeyword, leftParenthesis, condition, rightParenthes
is, semicolon); | 4136 DoStatement({Token doKeyword, Statement body, Token whileKeyword, Token leftPa
renthesis, Expression condition, Token rightParenthesis, Token semicolon}) : thi
s.full(doKeyword, body, whileKeyword, leftParenthesis, condition, rightParenthes
is, semicolon); |
| 5002 accept(ASTVisitor visitor) => visitor.visitDoStatement(this); | 4137 accept(ASTVisitor visitor) => visitor.visitDoStatement(this); |
| 5003 Token get beginToken => _doKeyword; | 4138 Token get beginToken => doKeyword; |
| 5004 | 4139 |
| 5005 /** | 4140 /** |
| 5006 * Return the body of the loop. | 4141 * Return the body of the loop. |
| 5007 * | 4142 * |
| 5008 * @return the body of the loop | 4143 * @return the body of the loop |
| 5009 */ | 4144 */ |
| 5010 Statement get body => _body; | 4145 Statement get body => _body; |
| 5011 | 4146 |
| 5012 /** | 4147 /** |
| 5013 * Return the condition that determines when the loop will terminate. | 4148 * Return the condition that determines when the loop will terminate. |
| 5014 * | 4149 * |
| 5015 * @return the condition that determines when the loop will terminate | 4150 * @return the condition that determines when the loop will terminate |
| 5016 */ | 4151 */ |
| 5017 Expression get condition => _condition; | 4152 Expression get condition => _condition; |
| 5018 | 4153 Token get endToken => semicolon; |
| 5019 /** | |
| 5020 * Return the token representing the 'do' keyword. | |
| 5021 * | |
| 5022 * @return the token representing the 'do' keyword | |
| 5023 */ | |
| 5024 Token get doKeyword => _doKeyword; | |
| 5025 Token get endToken => _semicolon; | |
| 5026 | 4154 |
| 5027 /** | 4155 /** |
| 5028 * Return the left parenthesis. | 4156 * Return the left parenthesis. |
| 5029 * | 4157 * |
| 5030 * @return the left parenthesis | 4158 * @return the left parenthesis |
| 5031 */ | 4159 */ |
| 5032 Token get leftParenthesis => _leftParenthesis; | 4160 Token get leftParenthesis => _leftParenthesis; |
| 5033 | 4161 |
| 5034 /** | 4162 /** |
| 5035 * Return the right parenthesis. | 4163 * Return the right parenthesis. |
| 5036 * | 4164 * |
| 5037 * @return the right parenthesis | 4165 * @return the right parenthesis |
| 5038 */ | 4166 */ |
| 5039 Token get rightParenthesis => _rightParenthesis; | 4167 Token get rightParenthesis => _rightParenthesis; |
| 5040 | 4168 |
| 5041 /** | 4169 /** |
| 5042 * Return the semicolon terminating the statement. | |
| 5043 * | |
| 5044 * @return the semicolon terminating the statement | |
| 5045 */ | |
| 5046 Token get semicolon => _semicolon; | |
| 5047 | |
| 5048 /** | |
| 5049 * Return the token representing the 'while' keyword. | |
| 5050 * | |
| 5051 * @return the token representing the 'while' keyword | |
| 5052 */ | |
| 5053 Token get whileKeyword => _whileKeyword; | |
| 5054 | |
| 5055 /** | |
| 5056 * Set the body of the loop to the given statement. | 4170 * Set the body of the loop to the given statement. |
| 5057 * | 4171 * |
| 5058 * @param statement the body of the loop | 4172 * @param statement the body of the loop |
| 5059 */ | 4173 */ |
| 5060 void set body(Statement statement) { | 4174 void set body(Statement statement) { |
| 5061 _body = becomeParentOf(statement); | 4175 _body = becomeParentOf(statement); |
| 5062 } | 4176 } |
| 5063 | 4177 |
| 5064 /** | 4178 /** |
| 5065 * Set the condition that determines when the loop will terminate to the given
expression. | 4179 * Set the condition that determines when the loop will terminate to the given
expression. |
| 5066 * | 4180 * |
| 5067 * @param expression the condition that determines when the loop will terminat
e | 4181 * @param expression the condition that determines when the loop will terminat
e |
| 5068 */ | 4182 */ |
| 5069 void set condition(Expression expression) { | 4183 void set condition(Expression expression) { |
| 5070 _condition = becomeParentOf(expression); | 4184 _condition = becomeParentOf(expression); |
| 5071 } | 4185 } |
| 5072 | 4186 |
| 5073 /** | 4187 /** |
| 5074 * Set the token representing the 'do' keyword to the given token. | |
| 5075 * | |
| 5076 * @param doKeyword the token representing the 'do' keyword | |
| 5077 */ | |
| 5078 void set doKeyword(Token doKeyword2) { | |
| 5079 this._doKeyword = doKeyword2; | |
| 5080 } | |
| 5081 | |
| 5082 /** | |
| 5083 * Set the left parenthesis to the given token. | 4188 * Set the left parenthesis to the given token. |
| 5084 * | 4189 * |
| 5085 * @param parenthesis the left parenthesis | 4190 * @param parenthesis the left parenthesis |
| 5086 */ | 4191 */ |
| 5087 void set leftParenthesis(Token parenthesis) { | 4192 void set leftParenthesis(Token parenthesis) { |
| 5088 _leftParenthesis = parenthesis; | 4193 _leftParenthesis = parenthesis; |
| 5089 } | 4194 } |
| 5090 | 4195 |
| 5091 /** | 4196 /** |
| 5092 * Set the right parenthesis to the given token. | 4197 * Set the right parenthesis to the given token. |
| 5093 * | 4198 * |
| 5094 * @param parenthesis the right parenthesis | 4199 * @param parenthesis the right parenthesis |
| 5095 */ | 4200 */ |
| 5096 void set rightParenthesis(Token parenthesis) { | 4201 void set rightParenthesis(Token parenthesis) { |
| 5097 _rightParenthesis = parenthesis; | 4202 _rightParenthesis = parenthesis; |
| 5098 } | 4203 } |
| 5099 | |
| 5100 /** | |
| 5101 * Set the semicolon terminating the statement to the given token. | |
| 5102 * | |
| 5103 * @param semicolon the semicolon terminating the statement | |
| 5104 */ | |
| 5105 void set semicolon(Token semicolon2) { | |
| 5106 this._semicolon = semicolon2; | |
| 5107 } | |
| 5108 | |
| 5109 /** | |
| 5110 * Set the token representing the 'while' keyword to the given token. | |
| 5111 * | |
| 5112 * @param whileKeyword the token representing the 'while' keyword | |
| 5113 */ | |
| 5114 void set whileKeyword(Token whileKeyword2) { | |
| 5115 this._whileKeyword = whileKeyword2; | |
| 5116 } | |
| 5117 void visitChildren(ASTVisitor visitor) { | 4204 void visitChildren(ASTVisitor visitor) { |
| 5118 safelyVisitChild(_body, visitor); | 4205 safelyVisitChild(_body, visitor); |
| 5119 safelyVisitChild(_condition, visitor); | 4206 safelyVisitChild(_condition, visitor); |
| 5120 } | 4207 } |
| 5121 } | 4208 } |
| 5122 /** | 4209 /** |
| 5123 * Instances of the class `DoubleLiteral` represent a floating point literal exp
ression. | 4210 * Instances of the class `DoubleLiteral` represent a floating point literal exp
ression. |
| 5124 * | 4211 * |
| 5125 * <pre> | 4212 * <pre> |
| 5126 * doubleLiteral ::= | 4213 * doubleLiteral ::= |
| 5127 * decimalDigit+ ('.' decimalDigit*)? exponent? | 4214 * decimalDigit+ ('.' decimalDigit*)? exponent? |
| 5128 * | '.' decimalDigit+ exponent? | 4215 * | '.' decimalDigit+ exponent? |
| 5129 * | 4216 * |
| 5130 * exponent ::= | 4217 * exponent ::= |
| 5131 * ('e' | 'E') ('+' | '-')? decimalDigit+ | 4218 * ('e' | 'E') ('+' | '-')? decimalDigit+ |
| 5132 * </pre> | 4219 * </pre> |
| 5133 * | 4220 * |
| 5134 * @coverage dart.engine.ast | 4221 * @coverage dart.engine.ast |
| 5135 */ | 4222 */ |
| 5136 class DoubleLiteral extends Literal { | 4223 class DoubleLiteral extends Literal { |
| 5137 | 4224 |
| 5138 /** | 4225 /** |
| 5139 * The token representing the literal. | 4226 * The token representing the literal. |
| 5140 */ | 4227 */ |
| 5141 Token _literal; | 4228 Token literal; |
| 5142 | 4229 |
| 5143 /** | 4230 /** |
| 5144 * The value of the literal. | 4231 * The value of the literal. |
| 5145 */ | 4232 */ |
| 5146 double _value = 0.0; | 4233 double value = 0.0; |
| 5147 | 4234 |
| 5148 /** | 4235 /** |
| 5149 * Initialize a newly created floating point literal. | 4236 * Initialize a newly created floating point literal. |
| 5150 * | 4237 * |
| 5151 * @param literal the token representing the literal | 4238 * @param literal the token representing the literal |
| 5152 * @param value the value of the literal | 4239 * @param value the value of the literal |
| 5153 */ | 4240 */ |
| 5154 DoubleLiteral.full(Token literal, double value) { | 4241 DoubleLiteral.full(Token literal, double value) { |
| 5155 this._literal = literal; | 4242 this.literal = literal; |
| 5156 this._value = value; | 4243 this.value = value; |
| 5157 } | 4244 } |
| 5158 | 4245 |
| 5159 /** | 4246 /** |
| 5160 * Initialize a newly created floating point literal. | 4247 * Initialize a newly created floating point literal. |
| 5161 * | 4248 * |
| 5162 * @param literal the token representing the literal | 4249 * @param literal the token representing the literal |
| 5163 * @param value the value of the literal | 4250 * @param value the value of the literal |
| 5164 */ | 4251 */ |
| 5165 DoubleLiteral({Token literal, double value}) : this.full(literal, value); | 4252 DoubleLiteral({Token literal, double value}) : this.full(literal, value); |
| 5166 accept(ASTVisitor visitor) => visitor.visitDoubleLiteral(this); | 4253 accept(ASTVisitor visitor) => visitor.visitDoubleLiteral(this); |
| 5167 Token get beginToken => _literal; | 4254 Token get beginToken => literal; |
| 5168 Token get endToken => _literal; | 4255 Token get endToken => literal; |
| 5169 | |
| 5170 /** | |
| 5171 * Return the token representing the literal. | |
| 5172 * | |
| 5173 * @return the token representing the literal | |
| 5174 */ | |
| 5175 Token get literal => _literal; | |
| 5176 | |
| 5177 /** | |
| 5178 * Return the value of the literal. | |
| 5179 * | |
| 5180 * @return the value of the literal | |
| 5181 */ | |
| 5182 double get value => _value; | |
| 5183 | |
| 5184 /** | |
| 5185 * Set the token representing the literal to the given token. | |
| 5186 * | |
| 5187 * @param literal the token representing the literal | |
| 5188 */ | |
| 5189 void set literal(Token literal2) { | |
| 5190 this._literal = literal2; | |
| 5191 } | |
| 5192 | |
| 5193 /** | |
| 5194 * Set the value of the literal to the given value. | |
| 5195 * | |
| 5196 * @param value the value of the literal | |
| 5197 */ | |
| 5198 void set value(double value2) { | |
| 5199 this._value = value2; | |
| 5200 } | |
| 5201 void visitChildren(ASTVisitor visitor) { | 4256 void visitChildren(ASTVisitor visitor) { |
| 5202 } | 4257 } |
| 5203 } | 4258 } |
| 5204 /** | 4259 /** |
| 5205 * Instances of the class `EmptyFunctionBody` represent an empty function body,
which can only | 4260 * Instances of the class `EmptyFunctionBody` represent an empty function body,
which can only |
| 5206 * appear in constructors or abstract methods. | 4261 * appear in constructors or abstract methods. |
| 5207 * | 4262 * |
| 5208 * <pre> | 4263 * <pre> |
| 5209 * emptyFunctionBody ::= | 4264 * emptyFunctionBody ::= |
| 5210 * ';' | 4265 * ';' |
| 5211 * </pre> | 4266 * </pre> |
| 5212 * | 4267 * |
| 5213 * @coverage dart.engine.ast | 4268 * @coverage dart.engine.ast |
| 5214 */ | 4269 */ |
| 5215 class EmptyFunctionBody extends FunctionBody { | 4270 class EmptyFunctionBody extends FunctionBody { |
| 5216 | 4271 |
| 5217 /** | 4272 /** |
| 5218 * The token representing the semicolon that marks the end of the function bod
y. | 4273 * The token representing the semicolon that marks the end of the function bod
y. |
| 5219 */ | 4274 */ |
| 5220 Token _semicolon; | 4275 Token semicolon; |
| 5221 | 4276 |
| 5222 /** | 4277 /** |
| 5223 * Initialize a newly created function body. | 4278 * Initialize a newly created function body. |
| 5224 * | 4279 * |
| 5225 * @param semicolon the token representing the semicolon that marks the end of
the function body | 4280 * @param semicolon the token representing the semicolon that marks the end of
the function body |
| 5226 */ | 4281 */ |
| 5227 EmptyFunctionBody.full(Token semicolon) { | 4282 EmptyFunctionBody.full(Token semicolon) { |
| 5228 this._semicolon = semicolon; | 4283 this.semicolon = semicolon; |
| 5229 } | 4284 } |
| 5230 | 4285 |
| 5231 /** | 4286 /** |
| 5232 * Initialize a newly created function body. | 4287 * Initialize a newly created function body. |
| 5233 * | 4288 * |
| 5234 * @param semicolon the token representing the semicolon that marks the end of
the function body | 4289 * @param semicolon the token representing the semicolon that marks the end of
the function body |
| 5235 */ | 4290 */ |
| 5236 EmptyFunctionBody({Token semicolon}) : this.full(semicolon); | 4291 EmptyFunctionBody({Token semicolon}) : this.full(semicolon); |
| 5237 accept(ASTVisitor visitor) => visitor.visitEmptyFunctionBody(this); | 4292 accept(ASTVisitor visitor) => visitor.visitEmptyFunctionBody(this); |
| 5238 Token get beginToken => _semicolon; | 4293 Token get beginToken => semicolon; |
| 5239 Token get endToken => _semicolon; | 4294 Token get endToken => semicolon; |
| 5240 | |
| 5241 /** | |
| 5242 * Return the token representing the semicolon that marks the end of the funct
ion body. | |
| 5243 * | |
| 5244 * @return the token representing the semicolon that marks the end of the func
tion body | |
| 5245 */ | |
| 5246 Token get semicolon => _semicolon; | |
| 5247 | |
| 5248 /** | |
| 5249 * Set the token representing the semicolon that marks the end of the function
body to the given | |
| 5250 * token. | |
| 5251 * | |
| 5252 * @param semicolon the token representing the semicolon that marks the end of
the function body | |
| 5253 */ | |
| 5254 void set semicolon(Token semicolon2) { | |
| 5255 this._semicolon = semicolon2; | |
| 5256 } | |
| 5257 void visitChildren(ASTVisitor visitor) { | 4295 void visitChildren(ASTVisitor visitor) { |
| 5258 } | 4296 } |
| 5259 } | 4297 } |
| 5260 /** | 4298 /** |
| 5261 * Instances of the class `EmptyStatement` represent an empty statement. | 4299 * Instances of the class `EmptyStatement` represent an empty statement. |
| 5262 * | 4300 * |
| 5263 * <pre> | 4301 * <pre> |
| 5264 * emptyStatement ::= | 4302 * emptyStatement ::= |
| 5265 * ';' | 4303 * ';' |
| 5266 * </pre> | 4304 * </pre> |
| 5267 * | 4305 * |
| 5268 * @coverage dart.engine.ast | 4306 * @coverage dart.engine.ast |
| 5269 */ | 4307 */ |
| 5270 class EmptyStatement extends Statement { | 4308 class EmptyStatement extends Statement { |
| 5271 | 4309 |
| 5272 /** | 4310 /** |
| 5273 * The semicolon terminating the statement. | 4311 * The semicolon terminating the statement. |
| 5274 */ | 4312 */ |
| 5275 Token _semicolon; | 4313 Token semicolon; |
| 5276 | 4314 |
| 5277 /** | 4315 /** |
| 5278 * Initialize a newly created empty statement. | 4316 * Initialize a newly created empty statement. |
| 5279 * | 4317 * |
| 5280 * @param semicolon the semicolon terminating the statement | 4318 * @param semicolon the semicolon terminating the statement |
| 5281 */ | 4319 */ |
| 5282 EmptyStatement.full(Token semicolon) { | 4320 EmptyStatement.full(Token semicolon) { |
| 5283 this._semicolon = semicolon; | 4321 this.semicolon = semicolon; |
| 5284 } | 4322 } |
| 5285 | 4323 |
| 5286 /** | 4324 /** |
| 5287 * Initialize a newly created empty statement. | 4325 * Initialize a newly created empty statement. |
| 5288 * | 4326 * |
| 5289 * @param semicolon the semicolon terminating the statement | 4327 * @param semicolon the semicolon terminating the statement |
| 5290 */ | 4328 */ |
| 5291 EmptyStatement({Token semicolon}) : this.full(semicolon); | 4329 EmptyStatement({Token semicolon}) : this.full(semicolon); |
| 5292 accept(ASTVisitor visitor) => visitor.visitEmptyStatement(this); | 4330 accept(ASTVisitor visitor) => visitor.visitEmptyStatement(this); |
| 5293 Token get beginToken => _semicolon; | 4331 Token get beginToken => semicolon; |
| 5294 Token get endToken => _semicolon; | 4332 Token get endToken => semicolon; |
| 5295 | |
| 5296 /** | |
| 5297 * Return the semicolon terminating the statement. | |
| 5298 * | |
| 5299 * @return the semicolon terminating the statement | |
| 5300 */ | |
| 5301 Token get semicolon => _semicolon; | |
| 5302 | |
| 5303 /** | |
| 5304 * Set the semicolon terminating the statement to the given token. | |
| 5305 * | |
| 5306 * @param semicolon the semicolon terminating the statement | |
| 5307 */ | |
| 5308 void set semicolon(Token semicolon2) { | |
| 5309 this._semicolon = semicolon2; | |
| 5310 } | |
| 5311 void visitChildren(ASTVisitor visitor) { | 4333 void visitChildren(ASTVisitor visitor) { |
| 5312 } | 4334 } |
| 5313 } | 4335 } |
| 5314 /** | 4336 /** |
| 5315 * Ephemeral identifiers are created as needed to mimic the presence of an empty
identifier. | 4337 * Ephemeral identifiers are created as needed to mimic the presence of an empty
identifier. |
| 5316 * | 4338 * |
| 5317 * @coverage dart.engine.ast | 4339 * @coverage dart.engine.ast |
| 5318 */ | 4340 */ |
| 5319 class EphemeralIdentifier extends SimpleIdentifier { | 4341 class EphemeralIdentifier extends SimpleIdentifier { |
| 5320 EphemeralIdentifier.full(ASTNode parent, int location) : super.full(new Token(
TokenType.IDENTIFIER, location)) { | 4342 EphemeralIdentifier.full(ASTNode parent, int location) : super.full(new Token(
TokenType.IDENTIFIER, location)) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5352 * @param comment the documentation comment associated with this directive | 4374 * @param comment the documentation comment associated with this directive |
| 5353 * @param metadata the annotations associated with the directive | 4375 * @param metadata the annotations associated with the directive |
| 5354 * @param keyword the token representing the 'export' keyword | 4376 * @param keyword the token representing the 'export' keyword |
| 5355 * @param libraryUri the URI of the library being exported | 4377 * @param libraryUri the URI of the library being exported |
| 5356 * @param combinators the combinators used to control which names are exported | 4378 * @param combinators the combinators used to control which names are exported |
| 5357 * @param semicolon the semicolon terminating the directive | 4379 * @param semicolon the semicolon terminating the directive |
| 5358 */ | 4380 */ |
| 5359 ExportDirective({Comment comment, List<Annotation> metadata, Token keyword, St
ringLiteral libraryUri, List<Combinator> combinators, Token semicolon}) : this.f
ull(comment, metadata, keyword, libraryUri, combinators, semicolon); | 4381 ExportDirective({Comment comment, List<Annotation> metadata, Token keyword, St
ringLiteral libraryUri, List<Combinator> combinators, Token semicolon}) : this.f
ull(comment, metadata, keyword, libraryUri, combinators, semicolon); |
| 5360 accept(ASTVisitor visitor) => visitor.visitExportDirective(this); | 4382 accept(ASTVisitor visitor) => visitor.visitExportDirective(this); |
| 5361 LibraryElement get uriElement { | 4383 LibraryElement get uriElement { |
| 5362 Element element = this.element; | 4384 Element element2 = element; |
| 5363 if (element is ExportElement) { | 4385 if (element2 is ExportElement) { |
| 5364 return ((element as ExportElement)).exportedLibrary; | 4386 return ((element2 as ExportElement)).exportedLibrary; |
| 5365 } | 4387 } |
| 5366 return null; | 4388 return null; |
| 5367 } | 4389 } |
| 5368 void visitChildren(ASTVisitor visitor) { | 4390 void visitChildren(ASTVisitor visitor) { |
| 5369 super.visitChildren(visitor); | 4391 super.visitChildren(visitor); |
| 5370 combinators.accept(visitor); | 4392 combinators.accept(visitor); |
| 5371 } | 4393 } |
| 5372 } | 4394 } |
| 5373 /** | 4395 /** |
| 5374 * Instances of the class `Expression` defines the behavior common to nodes that
represent an | 4396 * Instances of the class `Expression` defines the behavior common to nodes that
represent an |
| 5375 * expression. | 4397 * expression. |
| 5376 * | 4398 * |
| 5377 * <pre> | 4399 * <pre> |
| 5378 * expression ::= | 4400 * expression ::= |
| 5379 * [AssignmentExpression] | 4401 * [AssignmentExpression] |
| 5380 * | [ConditionalExpression] cascadeSection* | 4402 * | [ConditionalExpression] cascadeSection* |
| 5381 * | [ThrowExpression] | 4403 * | [ThrowExpression] |
| 5382 * </pre> | 4404 * </pre> |
| 5383 * | 4405 * |
| 5384 * @coverage dart.engine.ast | 4406 * @coverage dart.engine.ast |
| 5385 */ | 4407 */ |
| 5386 abstract class Expression extends ASTNode { | 4408 abstract class Expression extends ASTNode { |
| 5387 | 4409 |
| 5388 /** | 4410 /** |
| 5389 * The static type of this expression, or `null` if the AST structure has not
been resolved. | 4411 * The static type of this expression, or `null` if the AST structure has not
been resolved. |
| 5390 */ | 4412 */ |
| 5391 Type2 _staticType; | 4413 Type2 staticType; |
| 5392 | 4414 |
| 5393 /** | 4415 /** |
| 5394 * The propagated type of this expression, or `null` if type propagation has n
ot been | 4416 * The propagated type of this expression, or `null` if type propagation has n
ot been |
| 5395 * performed on the AST structure. | 4417 * performed on the AST structure. |
| 5396 */ | 4418 */ |
| 5397 Type2 _propagatedType; | 4419 Type2 propagatedType; |
| 5398 | 4420 |
| 5399 /** | 4421 /** |
| 5400 * Return the best type information available for this expression. If type pro
pagation was able to | 4422 * Return the best type information available for this expression. If type pro
pagation was able to |
| 5401 * find a better type than static analysis, that type will be returned. Otherw
ise, the result of | 4423 * find a better type than static analysis, that type will be returned. Otherw
ise, the result of |
| 5402 * static analysis will be returned. If no type analysis has been performed, t
hen the type | 4424 * static analysis will be returned. If no type analysis has been performed, t
hen the type |
| 5403 * 'dynamic' will be returned. | 4425 * 'dynamic' will be returned. |
| 5404 * | 4426 * |
| 5405 * @return the best type information available for this expression | 4427 * @return the best type information available for this expression |
| 5406 */ | 4428 */ |
| 5407 Type2 get bestType { | 4429 Type2 get bestType { |
| 5408 if (_propagatedType != null) { | 4430 if (propagatedType != null) { |
| 5409 return _propagatedType; | 4431 return propagatedType; |
| 5410 } else if (_staticType != null) { | 4432 } else if (staticType != null) { |
| 5411 return _staticType; | 4433 return staticType; |
| 5412 } | 4434 } |
| 5413 return DynamicTypeImpl.instance; | 4435 return DynamicTypeImpl.instance; |
| 5414 } | 4436 } |
| 5415 | 4437 |
| 5416 /** | 4438 /** |
| 5417 * If this expression is an argument to an invocation, and the AST structure h
as been resolved, | 4439 * If this expression is an argument to an invocation, and the AST structure h
as been resolved, |
| 5418 * and the function being invoked is known based on propagated type informatio
n, and this | 4440 * and the function being invoked is known based on propagated type informatio
n, and this |
| 5419 * expression corresponds to one of the parameters of the function being invok
ed, then return the | 4441 * expression corresponds to one of the parameters of the function being invok
ed, then return the |
| 5420 * parameter element representing the parameter to which the value of this exp
ression will be | 4442 * parameter element representing the parameter to which the value of this exp
ression will be |
| 5421 * bound. Otherwise, return `null`. | 4443 * bound. Otherwise, return `null`. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 5444 } | 4466 } |
| 5445 } else if (parent is PrefixExpression) { | 4467 } else if (parent is PrefixExpression) { |
| 5446 return ((parent as PrefixExpression)).propagatedParameterElementForOperand
; | 4468 return ((parent as PrefixExpression)).propagatedParameterElementForOperand
; |
| 5447 } else if (parent is PostfixExpression) { | 4469 } else if (parent is PostfixExpression) { |
| 5448 return ((parent as PostfixExpression)).propagatedParameterElementForOperan
d; | 4470 return ((parent as PostfixExpression)).propagatedParameterElementForOperan
d; |
| 5449 } | 4471 } |
| 5450 return null; | 4472 return null; |
| 5451 } | 4473 } |
| 5452 | 4474 |
| 5453 /** | 4475 /** |
| 5454 * Return the propagated type of this expression, or `null` if type propagatio
n has not been | |
| 5455 * performed on the AST structure. | |
| 5456 * | |
| 5457 * @return the propagated type of this expression | |
| 5458 */ | |
| 5459 Type2 get propagatedType => _propagatedType; | |
| 5460 | |
| 5461 /** | |
| 5462 * If this expression is an argument to an invocation, and the AST structure h
as been resolved, | 4476 * If this expression is an argument to an invocation, and the AST structure h
as been resolved, |
| 5463 * and the function being invoked is known based on static type information, a
nd this expression | 4477 * and the function being invoked is known based on static type information, a
nd this expression |
| 5464 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter | 4478 * corresponds to one of the parameters of the function being invoked, then re
turn the parameter |
| 5465 * element representing the parameter to which the value of this expression wi
ll be bound. | 4479 * element representing the parameter to which the value of this expression wi
ll be bound. |
| 5466 * Otherwise, return `null`. | 4480 * Otherwise, return `null`. |
| 5467 * | 4481 * |
| 5468 * @return the parameter element representing the parameter to which the value
of this expression | 4482 * @return the parameter element representing the parameter to which the value
of this expression |
| 5469 * will be bound | 4483 * will be bound |
| 5470 */ | 4484 */ |
| 5471 ParameterElement get staticParameterElement { | 4485 ParameterElement get staticParameterElement { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5489 } | 4503 } |
| 5490 } else if (parent is PrefixExpression) { | 4504 } else if (parent is PrefixExpression) { |
| 5491 return ((parent as PrefixExpression)).staticParameterElementForOperand; | 4505 return ((parent as PrefixExpression)).staticParameterElementForOperand; |
| 5492 } else if (parent is PostfixExpression) { | 4506 } else if (parent is PostfixExpression) { |
| 5493 return ((parent as PostfixExpression)).staticParameterElementForOperand; | 4507 return ((parent as PostfixExpression)).staticParameterElementForOperand; |
| 5494 } | 4508 } |
| 5495 return null; | 4509 return null; |
| 5496 } | 4510 } |
| 5497 | 4511 |
| 5498 /** | 4512 /** |
| 5499 * Return the static type of this expression, or `null` if the AST structure h
as not been | |
| 5500 * resolved. | |
| 5501 * | |
| 5502 * @return the static type of this expression | |
| 5503 */ | |
| 5504 Type2 get staticType => _staticType; | |
| 5505 | |
| 5506 /** | |
| 5507 * Return `true` if this expression is syntactically valid for the LHS of an | 4513 * Return `true` if this expression is syntactically valid for the LHS of an |
| 5508 * [AssignmentExpression]. | 4514 * [AssignmentExpression]. |
| 5509 * | 4515 * |
| 5510 * @return `true` if this expression matches the `assignableExpression` produc
tion | 4516 * @return `true` if this expression matches the `assignableExpression` produc
tion |
| 5511 */ | 4517 */ |
| 5512 bool get isAssignable => false; | 4518 bool get isAssignable => false; |
| 5513 | |
| 5514 /** | |
| 5515 * Set the propagated type of this expression to the given type. | |
| 5516 * | |
| 5517 * @param propagatedType the propagated type of this expression | |
| 5518 */ | |
| 5519 void set propagatedType(Type2 propagatedType2) { | |
| 5520 this._propagatedType = propagatedType2; | |
| 5521 } | |
| 5522 | |
| 5523 /** | |
| 5524 * Set the static type of this expression to the given type. | |
| 5525 * | |
| 5526 * @param staticType the static type of this expression | |
| 5527 */ | |
| 5528 void set staticType(Type2 staticType2) { | |
| 5529 this._staticType = staticType2; | |
| 5530 } | |
| 5531 } | 4519 } |
| 5532 /** | 4520 /** |
| 5533 * Instances of the class `ExpressionFunctionBody` represent a function body con
sisting of a | 4521 * Instances of the class `ExpressionFunctionBody` represent a function body con
sisting of a |
| 5534 * single expression. | 4522 * single expression. |
| 5535 * | 4523 * |
| 5536 * <pre> | 4524 * <pre> |
| 5537 * expressionFunctionBody ::= | 4525 * expressionFunctionBody ::= |
| 5538 * '=>' [Expression] ';' | 4526 * '=>' [Expression] ';' |
| 5539 * </pre> | 4527 * </pre> |
| 5540 * | 4528 * |
| 5541 * @coverage dart.engine.ast | 4529 * @coverage dart.engine.ast |
| 5542 */ | 4530 */ |
| 5543 class ExpressionFunctionBody extends FunctionBody { | 4531 class ExpressionFunctionBody extends FunctionBody { |
| 5544 | 4532 |
| 5545 /** | 4533 /** |
| 5546 * The token introducing the expression that represents the body of the functi
on. | 4534 * The token introducing the expression that represents the body of the functi
on. |
| 5547 */ | 4535 */ |
| 5548 Token _functionDefinition; | 4536 Token functionDefinition; |
| 5549 | 4537 |
| 5550 /** | 4538 /** |
| 5551 * The expression representing the body of the function. | 4539 * The expression representing the body of the function. |
| 5552 */ | 4540 */ |
| 5553 Expression _expression; | 4541 Expression _expression; |
| 5554 | 4542 |
| 5555 /** | 4543 /** |
| 5556 * The semicolon terminating the statement. | 4544 * The semicolon terminating the statement. |
| 5557 */ | 4545 */ |
| 5558 Token _semicolon; | 4546 Token semicolon; |
| 5559 | 4547 |
| 5560 /** | 4548 /** |
| 5561 * Initialize a newly created function body consisting of a block of statement
s. | 4549 * Initialize a newly created function body consisting of a block of statement
s. |
| 5562 * | 4550 * |
| 5563 * @param functionDefinition the token introducing the expression that represe
nts the body of the | 4551 * @param functionDefinition the token introducing the expression that represe
nts the body of the |
| 5564 * function | 4552 * function |
| 5565 * @param expression the expression representing the body of the function | 4553 * @param expression the expression representing the body of the function |
| 5566 * @param semicolon the semicolon terminating the statement | 4554 * @param semicolon the semicolon terminating the statement |
| 5567 */ | 4555 */ |
| 5568 ExpressionFunctionBody.full(Token functionDefinition, Expression expression, T
oken semicolon) { | 4556 ExpressionFunctionBody.full(Token functionDefinition, Expression expression, T
oken semicolon) { |
| 5569 this._functionDefinition = functionDefinition; | 4557 this.functionDefinition = functionDefinition; |
| 5570 this._expression = becomeParentOf(expression); | 4558 this._expression = becomeParentOf(expression); |
| 5571 this._semicolon = semicolon; | 4559 this.semicolon = semicolon; |
| 5572 } | 4560 } |
| 5573 | 4561 |
| 5574 /** | 4562 /** |
| 5575 * Initialize a newly created function body consisting of a block of statement
s. | 4563 * Initialize a newly created function body consisting of a block of statement
s. |
| 5576 * | 4564 * |
| 5577 * @param functionDefinition the token introducing the expression that represe
nts the body of the | 4565 * @param functionDefinition the token introducing the expression that represe
nts the body of the |
| 5578 * function | 4566 * function |
| 5579 * @param expression the expression representing the body of the function | 4567 * @param expression the expression representing the body of the function |
| 5580 * @param semicolon the semicolon terminating the statement | 4568 * @param semicolon the semicolon terminating the statement |
| 5581 */ | 4569 */ |
| 5582 ExpressionFunctionBody({Token functionDefinition, Expression expression, Token
semicolon}) : this.full(functionDefinition, expression, semicolon); | 4570 ExpressionFunctionBody({Token functionDefinition, Expression expression, Token
semicolon}) : this.full(functionDefinition, expression, semicolon); |
| 5583 accept(ASTVisitor visitor) => visitor.visitExpressionFunctionBody(this); | 4571 accept(ASTVisitor visitor) => visitor.visitExpressionFunctionBody(this); |
| 5584 Token get beginToken => _functionDefinition; | 4572 Token get beginToken => functionDefinition; |
| 5585 Token get endToken { | 4573 Token get endToken { |
| 5586 if (_semicolon != null) { | 4574 if (semicolon != null) { |
| 5587 return _semicolon; | 4575 return semicolon; |
| 5588 } | 4576 } |
| 5589 return _expression.endToken; | 4577 return _expression.endToken; |
| 5590 } | 4578 } |
| 5591 | 4579 |
| 5592 /** | 4580 /** |
| 5593 * Return the expression representing the body of the function. | 4581 * Return the expression representing the body of the function. |
| 5594 * | 4582 * |
| 5595 * @return the expression representing the body of the function | 4583 * @return the expression representing the body of the function |
| 5596 */ | 4584 */ |
| 5597 Expression get expression => _expression; | 4585 Expression get expression => _expression; |
| 5598 | 4586 |
| 5599 /** | 4587 /** |
| 5600 * Return the token introducing the expression that represents the body of the
function. | |
| 5601 * | |
| 5602 * @return the function definition token | |
| 5603 */ | |
| 5604 Token get functionDefinition => _functionDefinition; | |
| 5605 | |
| 5606 /** | |
| 5607 * Return the semicolon terminating the statement. | |
| 5608 * | |
| 5609 * @return the semicolon terminating the statement | |
| 5610 */ | |
| 5611 Token get semicolon => _semicolon; | |
| 5612 | |
| 5613 /** | |
| 5614 * Set the expression representing the body of the function to the given expre
ssion. | 4588 * Set the expression representing the body of the function to the given expre
ssion. |
| 5615 * | 4589 * |
| 5616 * @param expression the expression representing the body of the function | 4590 * @param expression the expression representing the body of the function |
| 5617 */ | 4591 */ |
| 5618 void set expression(Expression expression2) { | 4592 void set expression(Expression expression2) { |
| 5619 this._expression = becomeParentOf(expression2); | 4593 this._expression = becomeParentOf(expression2); |
| 5620 } | 4594 } |
| 5621 | |
| 5622 /** | |
| 5623 * Set the token introducing the expression that represents the body of the fu
nction to the given | |
| 5624 * token. | |
| 5625 * | |
| 5626 * @param functionDefinition the function definition token | |
| 5627 */ | |
| 5628 void set functionDefinition(Token functionDefinition2) { | |
| 5629 this._functionDefinition = functionDefinition2; | |
| 5630 } | |
| 5631 | |
| 5632 /** | |
| 5633 * Set the semicolon terminating the statement to the given token. | |
| 5634 * | |
| 5635 * @param semicolon the semicolon terminating the statement | |
| 5636 */ | |
| 5637 void set semicolon(Token semicolon2) { | |
| 5638 this._semicolon = semicolon2; | |
| 5639 } | |
| 5640 void visitChildren(ASTVisitor visitor) { | 4595 void visitChildren(ASTVisitor visitor) { |
| 5641 safelyVisitChild(_expression, visitor); | 4596 safelyVisitChild(_expression, visitor); |
| 5642 } | 4597 } |
| 5643 } | 4598 } |
| 5644 /** | 4599 /** |
| 5645 * Instances of the class `ExpressionStatement` wrap an expression as a statemen
t. | 4600 * Instances of the class `ExpressionStatement` wrap an expression as a statemen
t. |
| 5646 * | 4601 * |
| 5647 * <pre> | 4602 * <pre> |
| 5648 * expressionStatement ::= | 4603 * expressionStatement ::= |
| 5649 * [Expression]? ';' | 4604 * [Expression]? ';' |
| 5650 * </pre> | 4605 * </pre> |
| 5651 * | 4606 * |
| 5652 * @coverage dart.engine.ast | 4607 * @coverage dart.engine.ast |
| 5653 */ | 4608 */ |
| 5654 class ExpressionStatement extends Statement { | 4609 class ExpressionStatement extends Statement { |
| 5655 | 4610 |
| 5656 /** | 4611 /** |
| 5657 * The expression that comprises the statement. | 4612 * The expression that comprises the statement. |
| 5658 */ | 4613 */ |
| 5659 Expression _expression; | 4614 Expression _expression; |
| 5660 | 4615 |
| 5661 /** | 4616 /** |
| 5662 * The semicolon terminating the statement, or `null` if the expression is a f
unction | 4617 * The semicolon terminating the statement, or `null` if the expression is a f
unction |
| 5663 * expression and therefore isn't followed by a semicolon. | 4618 * expression and therefore isn't followed by a semicolon. |
| 5664 */ | 4619 */ |
| 5665 Token _semicolon; | 4620 Token semicolon; |
| 5666 | 4621 |
| 5667 /** | 4622 /** |
| 5668 * Initialize a newly created expression statement. | 4623 * Initialize a newly created expression statement. |
| 5669 * | 4624 * |
| 5670 * @param expression the expression that comprises the statement | 4625 * @param expression the expression that comprises the statement |
| 5671 * @param semicolon the semicolon terminating the statement | 4626 * @param semicolon the semicolon terminating the statement |
| 5672 */ | 4627 */ |
| 5673 ExpressionStatement.full(Expression expression, Token semicolon) { | 4628 ExpressionStatement.full(Expression expression, Token semicolon) { |
| 5674 this._expression = becomeParentOf(expression); | 4629 this._expression = becomeParentOf(expression); |
| 5675 this._semicolon = semicolon; | 4630 this.semicolon = semicolon; |
| 5676 } | 4631 } |
| 5677 | 4632 |
| 5678 /** | 4633 /** |
| 5679 * Initialize a newly created expression statement. | 4634 * Initialize a newly created expression statement. |
| 5680 * | 4635 * |
| 5681 * @param expression the expression that comprises the statement | 4636 * @param expression the expression that comprises the statement |
| 5682 * @param semicolon the semicolon terminating the statement | 4637 * @param semicolon the semicolon terminating the statement |
| 5683 */ | 4638 */ |
| 5684 ExpressionStatement({Expression expression, Token semicolon}) : this.full(expr
ession, semicolon); | 4639 ExpressionStatement({Expression expression, Token semicolon}) : this.full(expr
ession, semicolon); |
| 5685 accept(ASTVisitor visitor) => visitor.visitExpressionStatement(this); | 4640 accept(ASTVisitor visitor) => visitor.visitExpressionStatement(this); |
| 5686 Token get beginToken => _expression.beginToken; | 4641 Token get beginToken => _expression.beginToken; |
| 5687 Token get endToken { | 4642 Token get endToken { |
| 5688 if (_semicolon != null) { | 4643 if (semicolon != null) { |
| 5689 return _semicolon; | 4644 return semicolon; |
| 5690 } | 4645 } |
| 5691 return _expression.endToken; | 4646 return _expression.endToken; |
| 5692 } | 4647 } |
| 5693 | 4648 |
| 5694 /** | 4649 /** |
| 5695 * Return the expression that comprises the statement. | 4650 * Return the expression that comprises the statement. |
| 5696 * | 4651 * |
| 5697 * @return the expression that comprises the statement | 4652 * @return the expression that comprises the statement |
| 5698 */ | 4653 */ |
| 5699 Expression get expression => _expression; | 4654 Expression get expression => _expression; |
| 5700 | 4655 bool get isSynthetic => _expression.isSynthetic && semicolon.isSynthetic; |
| 5701 /** | |
| 5702 * Return the semicolon terminating the statement, or `null` if the expression
is a function | |
| 5703 * expression and therefore isn't followed by a semicolon. | |
| 5704 * | |
| 5705 * @return the semicolon terminating the statement | |
| 5706 */ | |
| 5707 Token get semicolon => _semicolon; | |
| 5708 bool get isSynthetic => _expression.isSynthetic && _semicolon.isSynthetic; | |
| 5709 | 4656 |
| 5710 /** | 4657 /** |
| 5711 * Set the expression that comprises the statement to the given expression. | 4658 * Set the expression that comprises the statement to the given expression. |
| 5712 * | 4659 * |
| 5713 * @param expression the expression that comprises the statement | 4660 * @param expression the expression that comprises the statement |
| 5714 */ | 4661 */ |
| 5715 void set expression(Expression expression2) { | 4662 void set expression(Expression expression2) { |
| 5716 this._expression = becomeParentOf(expression2); | 4663 this._expression = becomeParentOf(expression2); |
| 5717 } | 4664 } |
| 5718 | |
| 5719 /** | |
| 5720 * Set the semicolon terminating the statement to the given token. | |
| 5721 * | |
| 5722 * @param semicolon the semicolon terminating the statement | |
| 5723 */ | |
| 5724 void set semicolon(Token semicolon2) { | |
| 5725 this._semicolon = semicolon2; | |
| 5726 } | |
| 5727 void visitChildren(ASTVisitor visitor) { | 4665 void visitChildren(ASTVisitor visitor) { |
| 5728 safelyVisitChild(_expression, visitor); | 4666 safelyVisitChild(_expression, visitor); |
| 5729 } | 4667 } |
| 5730 } | 4668 } |
| 5731 /** | 4669 /** |
| 5732 * Instances of the class `ExtendsClause` represent the "extends" clause in a cl
ass | 4670 * Instances of the class `ExtendsClause` represent the "extends" clause in a cl
ass |
| 5733 * declaration. | 4671 * declaration. |
| 5734 * | 4672 * |
| 5735 * <pre> | 4673 * <pre> |
| 5736 * extendsClause ::= | 4674 * extendsClause ::= |
| 5737 * 'extends' [TypeName] | 4675 * 'extends' [TypeName] |
| 5738 * </pre> | 4676 * </pre> |
| 5739 * | 4677 * |
| 5740 * @coverage dart.engine.ast | 4678 * @coverage dart.engine.ast |
| 5741 */ | 4679 */ |
| 5742 class ExtendsClause extends ASTNode { | 4680 class ExtendsClause extends ASTNode { |
| 5743 | 4681 |
| 5744 /** | 4682 /** |
| 5745 * The token representing the 'extends' keyword. | 4683 * The token representing the 'extends' keyword. |
| 5746 */ | 4684 */ |
| 5747 Token _keyword; | 4685 Token keyword; |
| 5748 | 4686 |
| 5749 /** | 4687 /** |
| 5750 * The name of the class that is being extended. | 4688 * The name of the class that is being extended. |
| 5751 */ | 4689 */ |
| 5752 TypeName _superclass; | 4690 TypeName _superclass; |
| 5753 | 4691 |
| 5754 /** | 4692 /** |
| 5755 * Initialize a newly created extends clause. | 4693 * Initialize a newly created extends clause. |
| 5756 * | 4694 * |
| 5757 * @param keyword the token representing the 'extends' keyword | 4695 * @param keyword the token representing the 'extends' keyword |
| 5758 * @param superclass the name of the class that is being extended | 4696 * @param superclass the name of the class that is being extended |
| 5759 */ | 4697 */ |
| 5760 ExtendsClause.full(Token keyword, TypeName superclass) { | 4698 ExtendsClause.full(Token keyword, TypeName superclass) { |
| 5761 this._keyword = keyword; | 4699 this.keyword = keyword; |
| 5762 this._superclass = becomeParentOf(superclass); | 4700 this._superclass = becomeParentOf(superclass); |
| 5763 } | 4701 } |
| 5764 | 4702 |
| 5765 /** | 4703 /** |
| 5766 * Initialize a newly created extends clause. | 4704 * Initialize a newly created extends clause. |
| 5767 * | 4705 * |
| 5768 * @param keyword the token representing the 'extends' keyword | 4706 * @param keyword the token representing the 'extends' keyword |
| 5769 * @param superclass the name of the class that is being extended | 4707 * @param superclass the name of the class that is being extended |
| 5770 */ | 4708 */ |
| 5771 ExtendsClause({Token keyword, TypeName superclass}) : this.full(keyword, super
class); | 4709 ExtendsClause({Token keyword, TypeName superclass}) : this.full(keyword, super
class); |
| 5772 accept(ASTVisitor visitor) => visitor.visitExtendsClause(this); | 4710 accept(ASTVisitor visitor) => visitor.visitExtendsClause(this); |
| 5773 Token get beginToken => _keyword; | 4711 Token get beginToken => keyword; |
| 5774 Token get endToken => _superclass.endToken; | 4712 Token get endToken => _superclass.endToken; |
| 5775 | 4713 |
| 5776 /** | 4714 /** |
| 5777 * Return the token representing the 'extends' keyword. | |
| 5778 * | |
| 5779 * @return the token representing the 'extends' keyword | |
| 5780 */ | |
| 5781 Token get keyword => _keyword; | |
| 5782 | |
| 5783 /** | |
| 5784 * Return the name of the class that is being extended. | 4715 * Return the name of the class that is being extended. |
| 5785 * | 4716 * |
| 5786 * @return the name of the class that is being extended | 4717 * @return the name of the class that is being extended |
| 5787 */ | 4718 */ |
| 5788 TypeName get superclass => _superclass; | 4719 TypeName get superclass => _superclass; |
| 5789 | 4720 |
| 5790 /** | 4721 /** |
| 5791 * Set the token representing the 'extends' keyword to the given token. | |
| 5792 * | |
| 5793 * @param keyword the token representing the 'extends' keyword | |
| 5794 */ | |
| 5795 void set keyword(Token keyword2) { | |
| 5796 this._keyword = keyword2; | |
| 5797 } | |
| 5798 | |
| 5799 /** | |
| 5800 * Set the name of the class that is being extended to the given name. | 4722 * Set the name of the class that is being extended to the given name. |
| 5801 * | 4723 * |
| 5802 * @param name the name of the class that is being extended | 4724 * @param name the name of the class that is being extended |
| 5803 */ | 4725 */ |
| 5804 void set superclass(TypeName name) { | 4726 void set superclass(TypeName name) { |
| 5805 _superclass = becomeParentOf(name); | 4727 _superclass = becomeParentOf(name); |
| 5806 } | 4728 } |
| 5807 void visitChildren(ASTVisitor visitor) { | 4729 void visitChildren(ASTVisitor visitor) { |
| 5808 safelyVisitChild(_superclass, visitor); | 4730 safelyVisitChild(_superclass, visitor); |
| 5809 } | 4731 } |
| 5810 } | 4732 } |
| 5811 /** | 4733 /** |
| 5812 * Instances of the class `FieldDeclaration` represent the declaration of one or
more fields | 4734 * Instances of the class `FieldDeclaration` represent the declaration of one or
more fields |
| 5813 * of the same type. | 4735 * of the same type. |
| 5814 * | 4736 * |
| 5815 * <pre> | 4737 * <pre> |
| 5816 * fieldDeclaration ::= | 4738 * fieldDeclaration ::= |
| 5817 * 'static'? [VariableDeclarationList] ';' | 4739 * 'static'? [VariableDeclarationList] ';' |
| 5818 * </pre> | 4740 * </pre> |
| 5819 * | 4741 * |
| 5820 * @coverage dart.engine.ast | 4742 * @coverage dart.engine.ast |
| 5821 */ | 4743 */ |
| 5822 class FieldDeclaration extends ClassMember { | 4744 class FieldDeclaration extends ClassMember { |
| 5823 | 4745 |
| 5824 /** | 4746 /** |
| 5825 * The token representing the 'static' keyword, or `null` if the fields are no
t static. | 4747 * The token representing the 'static' keyword, or `null` if the fields are no
t static. |
| 5826 */ | 4748 */ |
| 5827 Token _staticKeyword; | 4749 Token staticKeyword; |
| 5828 | 4750 |
| 5829 /** | 4751 /** |
| 5830 * The fields being declared. | 4752 * The fields being declared. |
| 5831 */ | 4753 */ |
| 5832 VariableDeclarationList _fieldList; | 4754 VariableDeclarationList _fieldList; |
| 5833 | 4755 |
| 5834 /** | 4756 /** |
| 5835 * The semicolon terminating the declaration. | 4757 * The semicolon terminating the declaration. |
| 5836 */ | 4758 */ |
| 5837 Token _semicolon; | 4759 Token semicolon; |
| 5838 | 4760 |
| 5839 /** | 4761 /** |
| 5840 * Initialize a newly created field declaration. | 4762 * Initialize a newly created field declaration. |
| 5841 * | 4763 * |
| 5842 * @param comment the documentation comment associated with this field | 4764 * @param comment the documentation comment associated with this field |
| 5843 * @param metadata the annotations associated with this field | 4765 * @param metadata the annotations associated with this field |
| 5844 * @param staticKeyword the token representing the 'static' keyword | 4766 * @param staticKeyword the token representing the 'static' keyword |
| 5845 * @param fieldList the fields being declared | 4767 * @param fieldList the fields being declared |
| 5846 * @param semicolon the semicolon terminating the declaration | 4768 * @param semicolon the semicolon terminating the declaration |
| 5847 */ | 4769 */ |
| 5848 FieldDeclaration.full(Comment comment, List<Annotation> metadata, Token static
Keyword, VariableDeclarationList fieldList, Token semicolon) : super.full(commen
t, metadata) { | 4770 FieldDeclaration.full(Comment comment, List<Annotation> metadata, Token static
Keyword, VariableDeclarationList fieldList, Token semicolon) : super.full(commen
t, metadata) { |
| 5849 this._staticKeyword = staticKeyword; | 4771 this.staticKeyword = staticKeyword; |
| 5850 this._fieldList = becomeParentOf(fieldList); | 4772 this._fieldList = becomeParentOf(fieldList); |
| 5851 this._semicolon = semicolon; | 4773 this.semicolon = semicolon; |
| 5852 } | 4774 } |
| 5853 | 4775 |
| 5854 /** | 4776 /** |
| 5855 * Initialize a newly created field declaration. | 4777 * Initialize a newly created field declaration. |
| 5856 * | 4778 * |
| 5857 * @param comment the documentation comment associated with this field | 4779 * @param comment the documentation comment associated with this field |
| 5858 * @param metadata the annotations associated with this field | 4780 * @param metadata the annotations associated with this field |
| 5859 * @param staticKeyword the token representing the 'static' keyword | 4781 * @param staticKeyword the token representing the 'static' keyword |
| 5860 * @param fieldList the fields being declared | 4782 * @param fieldList the fields being declared |
| 5861 * @param semicolon the semicolon terminating the declaration | 4783 * @param semicolon the semicolon terminating the declaration |
| 5862 */ | 4784 */ |
| 5863 FieldDeclaration({Comment comment, List<Annotation> metadata, Token staticKeyw
ord, VariableDeclarationList fieldList, Token semicolon}) : this.full(comment, m
etadata, staticKeyword, fieldList, semicolon); | 4785 FieldDeclaration({Comment comment, List<Annotation> metadata, Token staticKeyw
ord, VariableDeclarationList fieldList, Token semicolon}) : this.full(comment, m
etadata, staticKeyword, fieldList, semicolon); |
| 5864 accept(ASTVisitor visitor) => visitor.visitFieldDeclaration(this); | 4786 accept(ASTVisitor visitor) => visitor.visitFieldDeclaration(this); |
| 5865 Element get element => null; | 4787 Element get element => null; |
| 5866 Token get endToken => _semicolon; | 4788 Token get endToken => semicolon; |
| 5867 | 4789 |
| 5868 /** | 4790 /** |
| 5869 * Return the fields being declared. | 4791 * Return the fields being declared. |
| 5870 * | 4792 * |
| 5871 * @return the fields being declared | 4793 * @return the fields being declared |
| 5872 */ | 4794 */ |
| 5873 VariableDeclarationList get fields => _fieldList; | 4795 VariableDeclarationList get fields => _fieldList; |
| 5874 | 4796 |
| 5875 /** | 4797 /** |
| 5876 * Return the token representing the 'static' keyword, or `null` if the fields
are not | |
| 5877 * static. | |
| 5878 * | |
| 5879 * @return the token representing the 'static' keyword | |
| 5880 */ | |
| 5881 Token get staticKeyword => _staticKeyword; | |
| 5882 | |
| 5883 /** | |
| 5884 * Return the semicolon terminating the declaration. | |
| 5885 * | |
| 5886 * @return the semicolon terminating the declaration | |
| 5887 */ | |
| 5888 Token get semicolon => _semicolon; | |
| 5889 | |
| 5890 /** | |
| 5891 * Return `true` if the fields are static. | 4798 * Return `true` if the fields are static. |
| 5892 * | 4799 * |
| 5893 * @return `true` if the fields are declared to be static | 4800 * @return `true` if the fields are declared to be static |
| 5894 */ | 4801 */ |
| 5895 bool get isStatic => _staticKeyword != null; | 4802 bool get isStatic => staticKeyword != null; |
| 5896 | 4803 |
| 5897 /** | 4804 /** |
| 5898 * Set the fields being declared to the given list of variables. | 4805 * Set the fields being declared to the given list of variables. |
| 5899 * | 4806 * |
| 5900 * @param fieldList the fields being declared | 4807 * @param fieldList the fields being declared |
| 5901 */ | 4808 */ |
| 5902 void set fields(VariableDeclarationList fieldList) { | 4809 void set fields(VariableDeclarationList fieldList) { |
| 5903 fieldList = becomeParentOf(fieldList); | 4810 fieldList = becomeParentOf(fieldList); |
| 5904 } | 4811 } |
| 5905 | |
| 5906 /** | |
| 5907 * Set the token representing the 'static' keyword to the given token. | |
| 5908 * | |
| 5909 * @param keyword the token representing the 'static' keyword | |
| 5910 */ | |
| 5911 void set staticKeyword(Token keyword) { | |
| 5912 this._staticKeyword = keyword; | |
| 5913 } | |
| 5914 | |
| 5915 /** | |
| 5916 * Set the semicolon terminating the declaration to the given token. | |
| 5917 * | |
| 5918 * @param semicolon the semicolon terminating the declaration | |
| 5919 */ | |
| 5920 void set semicolon(Token semicolon2) { | |
| 5921 this._semicolon = semicolon2; | |
| 5922 } | |
| 5923 void visitChildren(ASTVisitor visitor) { | 4812 void visitChildren(ASTVisitor visitor) { |
| 5924 super.visitChildren(visitor); | 4813 super.visitChildren(visitor); |
| 5925 safelyVisitChild(_fieldList, visitor); | 4814 safelyVisitChild(_fieldList, visitor); |
| 5926 } | 4815 } |
| 5927 Token get firstTokenAfterCommentAndMetadata { | 4816 Token get firstTokenAfterCommentAndMetadata { |
| 5928 if (_staticKeyword != null) { | 4817 if (staticKeyword != null) { |
| 5929 return _staticKeyword; | 4818 return staticKeyword; |
| 5930 } | 4819 } |
| 5931 return _fieldList.beginToken; | 4820 return _fieldList.beginToken; |
| 5932 } | 4821 } |
| 5933 } | 4822 } |
| 5934 /** | 4823 /** |
| 5935 * Instances of the class `FieldFormalParameter` represent a field formal parame
ter. | 4824 * Instances of the class `FieldFormalParameter` represent a field formal parame
ter. |
| 5936 * | 4825 * |
| 5937 * <pre> | 4826 * <pre> |
| 5938 * fieldFormalParameter ::= | 4827 * fieldFormalParameter ::= |
| 5939 * ('final' [TypeName] | 'const' [TypeName] | 'var' | [TypeName])? 'this' '.
' [SimpleIdentifier] [FormalParameterList]? | 4828 * ('final' [TypeName] | 'const' [TypeName] | 'var' | [TypeName])? 'this' '.
' [SimpleIdentifier] [FormalParameterList]? |
| 5940 * </pre> | 4829 * </pre> |
| 5941 * | 4830 * |
| 5942 * @coverage dart.engine.ast | 4831 * @coverage dart.engine.ast |
| 5943 */ | 4832 */ |
| 5944 class FieldFormalParameter extends NormalFormalParameter { | 4833 class FieldFormalParameter extends NormalFormalParameter { |
| 5945 | 4834 |
| 5946 /** | 4835 /** |
| 5947 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no | 4836 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no |
| 5948 * keyword was used. | 4837 * keyword was used. |
| 5949 */ | 4838 */ |
| 5950 Token _keyword; | 4839 Token keyword; |
| 5951 | 4840 |
| 5952 /** | 4841 /** |
| 5953 * The name of the declared type of the parameter, or `null` if the parameter
does not have | 4842 * The name of the declared type of the parameter, or `null` if the parameter
does not have |
| 5954 * a declared type. | 4843 * a declared type. |
| 5955 */ | 4844 */ |
| 5956 TypeName _type; | 4845 TypeName _type; |
| 5957 | 4846 |
| 5958 /** | 4847 /** |
| 5959 * The token representing the 'this' keyword. | 4848 * The token representing the 'this' keyword. |
| 5960 */ | 4849 */ |
| 5961 Token _thisToken; | 4850 Token thisToken; |
| 5962 | 4851 |
| 5963 /** | 4852 /** |
| 5964 * The token representing the period. | 4853 * The token representing the period. |
| 5965 */ | 4854 */ |
| 5966 Token _period; | 4855 Token period; |
| 5967 | 4856 |
| 5968 /** | 4857 /** |
| 5969 * The parameters of the function-typed parameter, or `null` if this is not a
function-typed | 4858 * The parameters of the function-typed parameter, or `null` if this is not a
function-typed |
| 5970 * field formal parameter. | 4859 * field formal parameter. |
| 5971 */ | 4860 */ |
| 5972 FormalParameterList _parameters; | 4861 FormalParameterList _parameters; |
| 5973 | 4862 |
| 5974 /** | 4863 /** |
| 5975 * Initialize a newly created formal parameter. | 4864 * Initialize a newly created formal parameter. |
| 5976 * | 4865 * |
| 5977 * @param comment the documentation comment associated with this parameter | 4866 * @param comment the documentation comment associated with this parameter |
| 5978 * @param metadata the annotations associated with this parameter | 4867 * @param metadata the annotations associated with this parameter |
| 5979 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 4868 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 5980 * @param type the name of the declared type of the parameter | 4869 * @param type the name of the declared type of the parameter |
| 5981 * @param thisToken the token representing the 'this' keyword | 4870 * @param thisToken the token representing the 'this' keyword |
| 5982 * @param period the token representing the period | 4871 * @param period the token representing the period |
| 5983 * @param identifier the name of the parameter being declared | 4872 * @param identifier the name of the parameter being declared |
| 5984 * @param parameters the parameters of the function-typed parameter, or `null`
if this is | 4873 * @param parameters the parameters of the function-typed parameter, or `null`
if this is |
| 5985 * not a function-typed field formal parameter | 4874 * not a function-typed field formal parameter |
| 5986 */ | 4875 */ |
| 5987 FieldFormalParameter.full(Comment comment, List<Annotation> metadata, Token ke
yword, TypeName type, Token thisToken, Token period, SimpleIdentifier identifier
, FormalParameterList parameters) : super.full(comment, metadata, identifier) { | 4876 FieldFormalParameter.full(Comment comment, List<Annotation> metadata, Token ke
yword, TypeName type, Token thisToken, Token period, SimpleIdentifier identifier
, FormalParameterList parameters) : super.full(comment, metadata, identifier) { |
| 5988 this._keyword = keyword; | 4877 this.keyword = keyword; |
| 5989 this._type = becomeParentOf(type); | 4878 this._type = becomeParentOf(type); |
| 5990 this._thisToken = thisToken; | 4879 this.thisToken = thisToken; |
| 5991 this._period = period; | 4880 this.period = period; |
| 5992 this._parameters = becomeParentOf(parameters); | 4881 this._parameters = becomeParentOf(parameters); |
| 5993 } | 4882 } |
| 5994 | 4883 |
| 5995 /** | 4884 /** |
| 5996 * Initialize a newly created formal parameter. | 4885 * Initialize a newly created formal parameter. |
| 5997 * | 4886 * |
| 5998 * @param comment the documentation comment associated with this parameter | 4887 * @param comment the documentation comment associated with this parameter |
| 5999 * @param metadata the annotations associated with this parameter | 4888 * @param metadata the annotations associated with this parameter |
| 6000 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 4889 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 6001 * @param type the name of the declared type of the parameter | 4890 * @param type the name of the declared type of the parameter |
| 6002 * @param thisToken the token representing the 'this' keyword | 4891 * @param thisToken the token representing the 'this' keyword |
| 6003 * @param period the token representing the period | 4892 * @param period the token representing the period |
| 6004 * @param identifier the name of the parameter being declared | 4893 * @param identifier the name of the parameter being declared |
| 6005 * @param parameters the parameters of the function-typed parameter, or `null`
if this is | 4894 * @param parameters the parameters of the function-typed parameter, or `null`
if this is |
| 6006 * not a function-typed field formal parameter | 4895 * not a function-typed field formal parameter |
| 6007 */ | 4896 */ |
| 6008 FieldFormalParameter({Comment comment, List<Annotation> metadata, Token keywor
d, TypeName type, Token thisToken, Token period, SimpleIdentifier identifier, Fo
rmalParameterList parameters}) : this.full(comment, metadata, keyword, type, thi
sToken, period, identifier, parameters); | 4897 FieldFormalParameter({Comment comment, List<Annotation> metadata, Token keywor
d, TypeName type, Token thisToken, Token period, SimpleIdentifier identifier, Fo
rmalParameterList parameters}) : this.full(comment, metadata, keyword, type, thi
sToken, period, identifier, parameters); |
| 6009 accept(ASTVisitor visitor) => visitor.visitFieldFormalParameter(this); | 4898 accept(ASTVisitor visitor) => visitor.visitFieldFormalParameter(this); |
| 6010 Token get beginToken { | 4899 Token get beginToken { |
| 6011 if (_keyword != null) { | 4900 if (keyword != null) { |
| 6012 return _keyword; | 4901 return keyword; |
| 6013 } else if (_type != null) { | 4902 } else if (_type != null) { |
| 6014 return _type.beginToken; | 4903 return _type.beginToken; |
| 6015 } | 4904 } |
| 6016 return _thisToken; | 4905 return thisToken; |
| 6017 } | 4906 } |
| 6018 Token get endToken => identifier.endToken; | 4907 Token get endToken => identifier.endToken; |
| 6019 | 4908 |
| 6020 /** | 4909 /** |
| 6021 * Return the token representing either the 'final', 'const' or 'var' keyword,
or `null` if | |
| 6022 * no keyword was used. | |
| 6023 * | |
| 6024 * @return the token representing either the 'final', 'const' or 'var' keyword | |
| 6025 */ | |
| 6026 Token get keyword => _keyword; | |
| 6027 | |
| 6028 /** | |
| 6029 * Return the parameters of the function-typed parameter, or `null` if this is
not a | 4910 * Return the parameters of the function-typed parameter, or `null` if this is
not a |
| 6030 * function-typed field formal parameter. | 4911 * function-typed field formal parameter. |
| 6031 * | 4912 * |
| 6032 * @return the parameters of the function-typed parameter | 4913 * @return the parameters of the function-typed parameter |
| 6033 */ | 4914 */ |
| 6034 FormalParameterList get parameters => _parameters; | 4915 FormalParameterList get parameters => _parameters; |
| 6035 | 4916 |
| 6036 /** | 4917 /** |
| 6037 * Return the token representing the period. | |
| 6038 * | |
| 6039 * @return the token representing the period | |
| 6040 */ | |
| 6041 Token get period => _period; | |
| 6042 | |
| 6043 /** | |
| 6044 * Return the token representing the 'this' keyword. | |
| 6045 * | |
| 6046 * @return the token representing the 'this' keyword | |
| 6047 */ | |
| 6048 Token get thisToken => _thisToken; | |
| 6049 | |
| 6050 /** | |
| 6051 * Return the name of the declared type of the parameter, or `null` if the par
ameter does | 4918 * Return the name of the declared type of the parameter, or `null` if the par
ameter does |
| 6052 * not have a declared type. Note that if this is a function-typed field forma
l parameter this is | 4919 * not have a declared type. Note that if this is a function-typed field forma
l parameter this is |
| 6053 * the return type of the function. | 4920 * the return type of the function. |
| 6054 * | 4921 * |
| 6055 * @return the name of the declared type of the parameter | 4922 * @return the name of the declared type of the parameter |
| 6056 */ | 4923 */ |
| 6057 TypeName get type => _type; | 4924 TypeName get type => _type; |
| 6058 bool get isConst => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.CONST); | 4925 bool get isConst => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.CONST); |
| 6059 bool get isFinal => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.FINAL); | 4926 bool get isFinal => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.FINAL); |
| 6060 | |
| 6061 /** | |
| 6062 * Set the token representing either the 'final', 'const' or 'var' keyword to
the given token. | |
| 6063 * | |
| 6064 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | |
| 6065 */ | |
| 6066 void set keyword(Token keyword2) { | |
| 6067 this._keyword = keyword2; | |
| 6068 } | |
| 6069 | 4927 |
| 6070 /** | 4928 /** |
| 6071 * Set the parameters of the function-typed parameter to the given parameters. | 4929 * Set the parameters of the function-typed parameter to the given parameters. |
| 6072 * | 4930 * |
| 6073 * @param parameters the parameters of the function-typed parameter | 4931 * @param parameters the parameters of the function-typed parameter |
| 6074 */ | 4932 */ |
| 6075 void set parameters(FormalParameterList parameters2) { | 4933 void set parameters(FormalParameterList parameters2) { |
| 6076 this._parameters = becomeParentOf(parameters2); | 4934 this._parameters = becomeParentOf(parameters2); |
| 6077 } | 4935 } |
| 6078 | 4936 |
| 6079 /** | 4937 /** |
| 6080 * Set the token representing the period to the given token. | |
| 6081 * | |
| 6082 * @param period the token representing the period | |
| 6083 */ | |
| 6084 void set period(Token period2) { | |
| 6085 this._period = period2; | |
| 6086 } | |
| 6087 | |
| 6088 /** | |
| 6089 * Set the token representing the 'this' keyword to the given token. | |
| 6090 * | |
| 6091 * @param thisToken the token representing the 'this' keyword | |
| 6092 */ | |
| 6093 void set thisToken(Token thisToken2) { | |
| 6094 this._thisToken = thisToken2; | |
| 6095 } | |
| 6096 | |
| 6097 /** | |
| 6098 * Set the name of the declared type of the parameter to the given type name. | 4938 * Set the name of the declared type of the parameter to the given type name. |
| 6099 * | 4939 * |
| 6100 * @param typeName the name of the declared type of the parameter | 4940 * @param typeName the name of the declared type of the parameter |
| 6101 */ | 4941 */ |
| 6102 void set type(TypeName typeName) { | 4942 void set type(TypeName typeName) { |
| 6103 _type = becomeParentOf(typeName); | 4943 _type = becomeParentOf(typeName); |
| 6104 } | 4944 } |
| 6105 void visitChildren(ASTVisitor visitor) { | 4945 void visitChildren(ASTVisitor visitor) { |
| 6106 super.visitChildren(visitor); | 4946 super.visitChildren(visitor); |
| 6107 safelyVisitChild(_type, visitor); | 4947 safelyVisitChild(_type, visitor); |
| 6108 safelyVisitChild(identifier, visitor); | 4948 safelyVisitChild(identifier, visitor); |
| 6109 safelyVisitChild(_parameters, visitor); | 4949 safelyVisitChild(_parameters, visitor); |
| 6110 } | 4950 } |
| 6111 } | 4951 } |
| 6112 /** | 4952 /** |
| 6113 * Instances of the class `ForEachStatement` represent a for-each statement. | 4953 * Instances of the class `ForEachStatement` represent a for-each statement. |
| 6114 * | 4954 * |
| 6115 * <pre> | 4955 * <pre> |
| 6116 * forEachStatement ::= | 4956 * forEachStatement ::= |
| 6117 * 'for' '(' [SimpleFormalParameter] 'in' [Expression] ')' [Block] | 4957 * 'for' '(' [SimpleFormalParameter] 'in' [Expression] ')' [Block] |
| 6118 * </pre> | 4958 * </pre> |
| 6119 * | 4959 * |
| 6120 * @coverage dart.engine.ast | 4960 * @coverage dart.engine.ast |
| 6121 */ | 4961 */ |
| 6122 class ForEachStatement extends Statement { | 4962 class ForEachStatement extends Statement { |
| 6123 | 4963 |
| 6124 /** | 4964 /** |
| 6125 * The token representing the 'for' keyword. | 4965 * The token representing the 'for' keyword. |
| 6126 */ | 4966 */ |
| 6127 Token _forKeyword; | 4967 Token forKeyword; |
| 6128 | 4968 |
| 6129 /** | 4969 /** |
| 6130 * The left parenthesis. | 4970 * The left parenthesis. |
| 6131 */ | 4971 */ |
| 6132 Token _leftParenthesis; | 4972 Token leftParenthesis; |
| 6133 | 4973 |
| 6134 /** | 4974 /** |
| 6135 * The declaration of the loop variable. | 4975 * The declaration of the loop variable. |
| 6136 */ | 4976 */ |
| 6137 DeclaredIdentifier _loopVariable; | 4977 DeclaredIdentifier _loopVariable; |
| 6138 | 4978 |
| 6139 /** | 4979 /** |
| 6140 * The token representing the 'in' keyword. | 4980 * The token representing the 'in' keyword. |
| 6141 */ | 4981 */ |
| 6142 Token _inKeyword; | 4982 Token inKeyword; |
| 6143 | 4983 |
| 6144 /** | 4984 /** |
| 6145 * The expression evaluated to produce the iterator. | 4985 * The expression evaluated to produce the iterator. |
| 6146 */ | 4986 */ |
| 6147 Expression _iterator; | 4987 Expression _iterator; |
| 6148 | 4988 |
| 6149 /** | 4989 /** |
| 6150 * The right parenthesis. | 4990 * The right parenthesis. |
| 6151 */ | 4991 */ |
| 6152 Token _rightParenthesis; | 4992 Token rightParenthesis; |
| 6153 | 4993 |
| 6154 /** | 4994 /** |
| 6155 * The body of the loop. | 4995 * The body of the loop. |
| 6156 */ | 4996 */ |
| 6157 Statement _body; | 4997 Statement _body; |
| 6158 | 4998 |
| 6159 /** | 4999 /** |
| 6160 * Initialize a newly created for-each statement. | 5000 * Initialize a newly created for-each statement. |
| 6161 * | 5001 * |
| 6162 * @param forKeyword the token representing the 'for' keyword | 5002 * @param forKeyword the token representing the 'for' keyword |
| 6163 * @param leftParenthesis the left parenthesis | 5003 * @param leftParenthesis the left parenthesis |
| 6164 * @param loopVariable the declaration of the loop variable | 5004 * @param loopVariable the declaration of the loop variable |
| 6165 * @param iterator the expression evaluated to produce the iterator | 5005 * @param iterator the expression evaluated to produce the iterator |
| 6166 * @param rightParenthesis the right parenthesis | 5006 * @param rightParenthesis the right parenthesis |
| 6167 * @param body the body of the loop | 5007 * @param body the body of the loop |
| 6168 */ | 5008 */ |
| 6169 ForEachStatement.full(Token forKeyword, Token leftParenthesis, DeclaredIdentif
ier loopVariable, Token inKeyword, Expression iterator, Token rightParenthesis,
Statement body) { | 5009 ForEachStatement.full(Token forKeyword, Token leftParenthesis, DeclaredIdentif
ier loopVariable, Token inKeyword, Expression iterator, Token rightParenthesis,
Statement body) { |
| 6170 this._forKeyword = forKeyword; | 5010 this.forKeyword = forKeyword; |
| 6171 this._leftParenthesis = leftParenthesis; | 5011 this.leftParenthesis = leftParenthesis; |
| 6172 this._loopVariable = becomeParentOf(loopVariable); | 5012 this._loopVariable = becomeParentOf(loopVariable); |
| 6173 this._inKeyword = inKeyword; | 5013 this.inKeyword = inKeyword; |
| 6174 this._iterator = becomeParentOf(iterator); | 5014 this._iterator = becomeParentOf(iterator); |
| 6175 this._rightParenthesis = rightParenthesis; | 5015 this.rightParenthesis = rightParenthesis; |
| 6176 this._body = becomeParentOf(body); | 5016 this._body = becomeParentOf(body); |
| 6177 } | 5017 } |
| 6178 | 5018 |
| 6179 /** | 5019 /** |
| 6180 * Initialize a newly created for-each statement. | 5020 * Initialize a newly created for-each statement. |
| 6181 * | 5021 * |
| 6182 * @param forKeyword the token representing the 'for' keyword | 5022 * @param forKeyword the token representing the 'for' keyword |
| 6183 * @param leftParenthesis the left parenthesis | 5023 * @param leftParenthesis the left parenthesis |
| 6184 * @param loopVariable the declaration of the loop variable | 5024 * @param loopVariable the declaration of the loop variable |
| 6185 * @param iterator the expression evaluated to produce the iterator | 5025 * @param iterator the expression evaluated to produce the iterator |
| 6186 * @param rightParenthesis the right parenthesis | 5026 * @param rightParenthesis the right parenthesis |
| 6187 * @param body the body of the loop | 5027 * @param body the body of the loop |
| 6188 */ | 5028 */ |
| 6189 ForEachStatement({Token forKeyword, Token leftParenthesis, DeclaredIdentifier
loopVariable, Token inKeyword, Expression iterator, Token rightParenthesis, Stat
ement body}) : this.full(forKeyword, leftParenthesis, loopVariable, inKeyword, i
terator, rightParenthesis, body); | 5029 ForEachStatement({Token forKeyword, Token leftParenthesis, DeclaredIdentifier
loopVariable, Token inKeyword, Expression iterator, Token rightParenthesis, Stat
ement body}) : this.full(forKeyword, leftParenthesis, loopVariable, inKeyword, i
terator, rightParenthesis, body); |
| 6190 accept(ASTVisitor visitor) => visitor.visitForEachStatement(this); | 5030 accept(ASTVisitor visitor) => visitor.visitForEachStatement(this); |
| 6191 Token get beginToken => _forKeyword; | 5031 Token get beginToken => forKeyword; |
| 6192 | 5032 |
| 6193 /** | 5033 /** |
| 6194 * Return the body of the loop. | 5034 * Return the body of the loop. |
| 6195 * | 5035 * |
| 6196 * @return the body of the loop | 5036 * @return the body of the loop |
| 6197 */ | 5037 */ |
| 6198 Statement get body => _body; | 5038 Statement get body => _body; |
| 6199 Token get endToken => _body.endToken; | 5039 Token get endToken => _body.endToken; |
| 6200 | 5040 |
| 6201 /** | 5041 /** |
| 6202 * Return the token representing the 'for' keyword. | |
| 6203 * | |
| 6204 * @return the token representing the 'for' keyword | |
| 6205 */ | |
| 6206 Token get forKeyword => _forKeyword; | |
| 6207 | |
| 6208 /** | |
| 6209 * Return the token representing the 'in' keyword. | |
| 6210 * | |
| 6211 * @return the token representing the 'in' keyword | |
| 6212 */ | |
| 6213 Token get inKeyword => _inKeyword; | |
| 6214 | |
| 6215 /** | |
| 6216 * Return the expression evaluated to produce the iterator. | 5042 * Return the expression evaluated to produce the iterator. |
| 6217 * | 5043 * |
| 6218 * @return the expression evaluated to produce the iterator | 5044 * @return the expression evaluated to produce the iterator |
| 6219 */ | 5045 */ |
| 6220 Expression get iterator => _iterator; | 5046 Expression get iterator => _iterator; |
| 6221 | 5047 |
| 6222 /** | 5048 /** |
| 6223 * Return the left parenthesis. | |
| 6224 * | |
| 6225 * @return the left parenthesis | |
| 6226 */ | |
| 6227 Token get leftParenthesis => _leftParenthesis; | |
| 6228 | |
| 6229 /** | |
| 6230 * Return the declaration of the loop variable. | 5049 * Return the declaration of the loop variable. |
| 6231 * | 5050 * |
| 6232 * @return the declaration of the loop variable | 5051 * @return the declaration of the loop variable |
| 6233 */ | 5052 */ |
| 6234 DeclaredIdentifier get loopVariable => _loopVariable; | 5053 DeclaredIdentifier get loopVariable => _loopVariable; |
| 6235 | 5054 |
| 6236 /** | 5055 /** |
| 6237 * Return the right parenthesis. | |
| 6238 * | |
| 6239 * @return the right parenthesis | |
| 6240 */ | |
| 6241 Token get rightParenthesis => _rightParenthesis; | |
| 6242 | |
| 6243 /** | |
| 6244 * Set the body of the loop to the given block. | 5056 * Set the body of the loop to the given block. |
| 6245 * | 5057 * |
| 6246 * @param body the body of the loop | 5058 * @param body the body of the loop |
| 6247 */ | 5059 */ |
| 6248 void set body(Statement body2) { | 5060 void set body(Statement body2) { |
| 6249 this._body = becomeParentOf(body2); | 5061 this._body = becomeParentOf(body2); |
| 6250 } | 5062 } |
| 6251 | 5063 |
| 6252 /** | 5064 /** |
| 6253 * Set the token representing the 'for' keyword to the given token. | |
| 6254 * | |
| 6255 * @param forKeyword the token representing the 'for' keyword | |
| 6256 */ | |
| 6257 void set forKeyword(Token forKeyword2) { | |
| 6258 this._forKeyword = forKeyword2; | |
| 6259 } | |
| 6260 | |
| 6261 /** | |
| 6262 * Set the token representing the 'in' keyword to the given token. | |
| 6263 * | |
| 6264 * @param inKeyword the token representing the 'in' keyword | |
| 6265 */ | |
| 6266 void set inKeyword(Token inKeyword2) { | |
| 6267 this._inKeyword = inKeyword2; | |
| 6268 } | |
| 6269 | |
| 6270 /** | |
| 6271 * Set the expression evaluated to produce the iterator to the given expressio
n. | 5065 * Set the expression evaluated to produce the iterator to the given expressio
n. |
| 6272 * | 5066 * |
| 6273 * @param expression the expression evaluated to produce the iterator | 5067 * @param expression the expression evaluated to produce the iterator |
| 6274 */ | 5068 */ |
| 6275 void set iterator(Expression expression) { | 5069 void set iterator(Expression expression) { |
| 6276 _iterator = becomeParentOf(expression); | 5070 _iterator = becomeParentOf(expression); |
| 6277 } | 5071 } |
| 6278 | 5072 |
| 6279 /** | 5073 /** |
| 6280 * Set the left parenthesis to the given token. | |
| 6281 * | |
| 6282 * @param leftParenthesis the left parenthesis | |
| 6283 */ | |
| 6284 void set leftParenthesis(Token leftParenthesis2) { | |
| 6285 this._leftParenthesis = leftParenthesis2; | |
| 6286 } | |
| 6287 | |
| 6288 /** | |
| 6289 * Set the declaration of the loop variable to the given variable. | 5074 * Set the declaration of the loop variable to the given variable. |
| 6290 * | 5075 * |
| 6291 * @param variable the declaration of the loop variable | 5076 * @param variable the declaration of the loop variable |
| 6292 */ | 5077 */ |
| 6293 void set loopVariable(DeclaredIdentifier variable) { | 5078 void set loopVariable(DeclaredIdentifier variable) { |
| 6294 _loopVariable = becomeParentOf(variable); | 5079 _loopVariable = becomeParentOf(variable); |
| 6295 } | 5080 } |
| 6296 | |
| 6297 /** | |
| 6298 * Set the right parenthesis to the given token. | |
| 6299 * | |
| 6300 * @param rightParenthesis the right parenthesis | |
| 6301 */ | |
| 6302 void set rightParenthesis(Token rightParenthesis2) { | |
| 6303 this._rightParenthesis = rightParenthesis2; | |
| 6304 } | |
| 6305 void visitChildren(ASTVisitor visitor) { | 5081 void visitChildren(ASTVisitor visitor) { |
| 6306 safelyVisitChild(_loopVariable, visitor); | 5082 safelyVisitChild(_loopVariable, visitor); |
| 6307 safelyVisitChild(_iterator, visitor); | 5083 safelyVisitChild(_iterator, visitor); |
| 6308 safelyVisitChild(_body, visitor); | 5084 safelyVisitChild(_body, visitor); |
| 6309 } | 5085 } |
| 6310 } | 5086 } |
| 6311 /** | 5087 /** |
| 6312 * Instances of the class `ForStatement` represent a for statement. | 5088 * Instances of the class `ForStatement` represent a for statement. |
| 6313 * | 5089 * |
| 6314 * <pre> | 5090 * <pre> |
| 6315 * forStatement ::= | 5091 * forStatement ::= |
| 6316 * 'for' '(' forLoopParts ')' [Statement] | 5092 * 'for' '(' forLoopParts ')' [Statement] |
| 6317 * | 5093 * |
| 6318 * forLoopParts ::= | 5094 * forLoopParts ::= |
| 6319 * forInitializerStatement ';' [Expression]? ';' [Expression]? | 5095 * forInitializerStatement ';' [Expression]? ';' [Expression]? |
| 6320 * | 5096 * |
| 6321 * forInitializerStatement ::= | 5097 * forInitializerStatement ::= |
| 6322 * [DefaultFormalParameter] | 5098 * [DefaultFormalParameter] |
| 6323 * | [Expression]? | 5099 * | [Expression]? |
| 6324 * </pre> | 5100 * </pre> |
| 6325 * | 5101 * |
| 6326 * @coverage dart.engine.ast | 5102 * @coverage dart.engine.ast |
| 6327 */ | 5103 */ |
| 6328 class ForStatement extends Statement { | 5104 class ForStatement extends Statement { |
| 6329 | 5105 |
| 6330 /** | 5106 /** |
| 6331 * The token representing the 'for' keyword. | 5107 * The token representing the 'for' keyword. |
| 6332 */ | 5108 */ |
| 6333 Token _forKeyword; | 5109 Token forKeyword; |
| 6334 | 5110 |
| 6335 /** | 5111 /** |
| 6336 * The left parenthesis. | 5112 * The left parenthesis. |
| 6337 */ | 5113 */ |
| 6338 Token _leftParenthesis; | 5114 Token leftParenthesis; |
| 6339 | 5115 |
| 6340 /** | 5116 /** |
| 6341 * The declaration of the loop variables, or `null` if there are no variables.
Note that a | 5117 * The declaration of the loop variables, or `null` if there are no variables.
Note that a |
| 6342 * for statement cannot have both a variable list and an initialization expres
sion, but can | 5118 * for statement cannot have both a variable list and an initialization expres
sion, but can |
| 6343 * validly have neither. | 5119 * validly have neither. |
| 6344 */ | 5120 */ |
| 6345 VariableDeclarationList _variableList; | 5121 VariableDeclarationList _variableList; |
| 6346 | 5122 |
| 6347 /** | 5123 /** |
| 6348 * The initialization expression, or `null` if there is no initialization expr
ession. Note | 5124 * The initialization expression, or `null` if there is no initialization expr
ession. Note |
| 6349 * that a for statement cannot have both a variable list and an initialization
expression, but can | 5125 * that a for statement cannot have both a variable list and an initialization
expression, but can |
| 6350 * validly have neither. | 5126 * validly have neither. |
| 6351 */ | 5127 */ |
| 6352 Expression _initialization; | 5128 Expression _initialization; |
| 6353 | 5129 |
| 6354 /** | 5130 /** |
| 6355 * The semicolon separating the initializer and the condition. | 5131 * The semicolon separating the initializer and the condition. |
| 6356 */ | 5132 */ |
| 6357 Token _leftSeparator; | 5133 Token leftSeparator; |
| 6358 | 5134 |
| 6359 /** | 5135 /** |
| 6360 * The condition used to determine when to terminate the loop, or `null` if th
ere is no | 5136 * The condition used to determine when to terminate the loop, or `null` if th
ere is no |
| 6361 * condition. | 5137 * condition. |
| 6362 */ | 5138 */ |
| 6363 Expression _condition; | 5139 Expression _condition; |
| 6364 | 5140 |
| 6365 /** | 5141 /** |
| 6366 * The semicolon separating the condition and the updater. | 5142 * The semicolon separating the condition and the updater. |
| 6367 */ | 5143 */ |
| 6368 Token _rightSeparator; | 5144 Token rightSeparator; |
| 6369 | 5145 |
| 6370 /** | 5146 /** |
| 6371 * The list of expressions run after each execution of the loop body. | 5147 * The list of expressions run after each execution of the loop body. |
| 6372 */ | 5148 */ |
| 6373 NodeList<Expression> _updaters; | 5149 NodeList<Expression> updaters; |
| 6374 | 5150 |
| 6375 /** | 5151 /** |
| 6376 * The right parenthesis. | 5152 * The right parenthesis. |
| 6377 */ | 5153 */ |
| 6378 Token _rightParenthesis; | 5154 Token rightParenthesis; |
| 6379 | 5155 |
| 6380 /** | 5156 /** |
| 6381 * The body of the loop. | 5157 * The body of the loop. |
| 6382 */ | 5158 */ |
| 6383 Statement _body; | 5159 Statement _body; |
| 6384 | 5160 |
| 6385 /** | 5161 /** |
| 6386 * Initialize a newly created for statement. | 5162 * Initialize a newly created for statement. |
| 6387 * | 5163 * |
| 6388 * @param forKeyword the token representing the 'for' keyword | 5164 * @param forKeyword the token representing the 'for' keyword |
| 6389 * @param leftParenthesis the left parenthesis | 5165 * @param leftParenthesis the left parenthesis |
| 6390 * @param variableList the declaration of the loop variables | 5166 * @param variableList the declaration of the loop variables |
| 6391 * @param initialization the initialization expression | 5167 * @param initialization the initialization expression |
| 6392 * @param leftSeparator the semicolon separating the initializer and the condi
tion | 5168 * @param leftSeparator the semicolon separating the initializer and the condi
tion |
| 6393 * @param condition the condition used to determine when to terminate the loop | 5169 * @param condition the condition used to determine when to terminate the loop |
| 6394 * @param rightSeparator the semicolon separating the condition and the update
r | 5170 * @param rightSeparator the semicolon separating the condition and the update
r |
| 6395 * @param updaters the list of expressions run after each execution of the loo
p body | 5171 * @param updaters the list of expressions run after each execution of the loo
p body |
| 6396 * @param rightParenthesis the right parenthesis | 5172 * @param rightParenthesis the right parenthesis |
| 6397 * @param body the body of the loop | 5173 * @param body the body of the loop |
| 6398 */ | 5174 */ |
| 6399 ForStatement.full(Token forKeyword, Token leftParenthesis, VariableDeclaration
List variableList, Expression initialization, Token leftSeparator, Expression co
ndition, Token rightSeparator, List<Expression> updaters, Token rightParenthesis
, Statement body) { | 5175 ForStatement.full(Token forKeyword, Token leftParenthesis, VariableDeclaration
List variableList, Expression initialization, Token leftSeparator, Expression co
ndition, Token rightSeparator, List<Expression> updaters, Token rightParenthesis
, Statement body) { |
| 6400 this._updaters = new NodeList<Expression>(this); | 5176 this.updaters = new NodeList<Expression>(this); |
| 6401 this._forKeyword = forKeyword; | 5177 this.forKeyword = forKeyword; |
| 6402 this._leftParenthesis = leftParenthesis; | 5178 this.leftParenthesis = leftParenthesis; |
| 6403 this._variableList = becomeParentOf(variableList); | 5179 this._variableList = becomeParentOf(variableList); |
| 6404 this._initialization = becomeParentOf(initialization); | 5180 this._initialization = becomeParentOf(initialization); |
| 6405 this._leftSeparator = leftSeparator; | 5181 this.leftSeparator = leftSeparator; |
| 6406 this._condition = becomeParentOf(condition); | 5182 this._condition = becomeParentOf(condition); |
| 6407 this._rightSeparator = rightSeparator; | 5183 this.rightSeparator = rightSeparator; |
| 6408 this._updaters.addAll(updaters); | 5184 this.updaters.addAll(updaters); |
| 6409 this._rightParenthesis = rightParenthesis; | 5185 this.rightParenthesis = rightParenthesis; |
| 6410 this._body = becomeParentOf(body); | 5186 this._body = becomeParentOf(body); |
| 6411 } | 5187 } |
| 6412 | 5188 |
| 6413 /** | 5189 /** |
| 6414 * Initialize a newly created for statement. | 5190 * Initialize a newly created for statement. |
| 6415 * | 5191 * |
| 6416 * @param forKeyword the token representing the 'for' keyword | 5192 * @param forKeyword the token representing the 'for' keyword |
| 6417 * @param leftParenthesis the left parenthesis | 5193 * @param leftParenthesis the left parenthesis |
| 6418 * @param variableList the declaration of the loop variables | 5194 * @param variableList the declaration of the loop variables |
| 6419 * @param initialization the initialization expression | 5195 * @param initialization the initialization expression |
| 6420 * @param leftSeparator the semicolon separating the initializer and the condi
tion | 5196 * @param leftSeparator the semicolon separating the initializer and the condi
tion |
| 6421 * @param condition the condition used to determine when to terminate the loop | 5197 * @param condition the condition used to determine when to terminate the loop |
| 6422 * @param rightSeparator the semicolon separating the condition and the update
r | 5198 * @param rightSeparator the semicolon separating the condition and the update
r |
| 6423 * @param updaters the list of expressions run after each execution of the loo
p body | 5199 * @param updaters the list of expressions run after each execution of the loo
p body |
| 6424 * @param rightParenthesis the right parenthesis | 5200 * @param rightParenthesis the right parenthesis |
| 6425 * @param body the body of the loop | 5201 * @param body the body of the loop |
| 6426 */ | 5202 */ |
| 6427 ForStatement({Token forKeyword, Token leftParenthesis, VariableDeclarationList
variableList, Expression initialization, Token leftSeparator, Expression condit
ion, Token rightSeparator, List<Expression> updaters, Token rightParenthesis, St
atement body}) : this.full(forKeyword, leftParenthesis, variableList, initializa
tion, leftSeparator, condition, rightSeparator, updaters, rightParenthesis, body
); | 5203 ForStatement({Token forKeyword, Token leftParenthesis, VariableDeclarationList
variableList, Expression initialization, Token leftSeparator, Expression condit
ion, Token rightSeparator, List<Expression> updaters, Token rightParenthesis, St
atement body}) : this.full(forKeyword, leftParenthesis, variableList, initializa
tion, leftSeparator, condition, rightSeparator, updaters, rightParenthesis, body
); |
| 6428 accept(ASTVisitor visitor) => visitor.visitForStatement(this); | 5204 accept(ASTVisitor visitor) => visitor.visitForStatement(this); |
| 6429 Token get beginToken => _forKeyword; | 5205 Token get beginToken => forKeyword; |
| 6430 | 5206 |
| 6431 /** | 5207 /** |
| 6432 * Return the body of the loop. | 5208 * Return the body of the loop. |
| 6433 * | 5209 * |
| 6434 * @return the body of the loop | 5210 * @return the body of the loop |
| 6435 */ | 5211 */ |
| 6436 Statement get body => _body; | 5212 Statement get body => _body; |
| 6437 | 5213 |
| 6438 /** | 5214 /** |
| 6439 * Return the condition used to determine when to terminate the loop, or `null
` if there is | 5215 * Return the condition used to determine when to terminate the loop, or `null
` if there is |
| 6440 * no condition. | 5216 * no condition. |
| 6441 * | 5217 * |
| 6442 * @return the condition used to determine when to terminate the loop | 5218 * @return the condition used to determine when to terminate the loop |
| 6443 */ | 5219 */ |
| 6444 Expression get condition => _condition; | 5220 Expression get condition => _condition; |
| 6445 Token get endToken => _body.endToken; | 5221 Token get endToken => _body.endToken; |
| 6446 | 5222 |
| 6447 /** | 5223 /** |
| 6448 * Return the token representing the 'for' keyword. | |
| 6449 * | |
| 6450 * @return the token representing the 'for' keyword | |
| 6451 */ | |
| 6452 Token get forKeyword => _forKeyword; | |
| 6453 | |
| 6454 /** | |
| 6455 * Return the initialization expression, or `null` if there is no initializati
on expression. | 5224 * Return the initialization expression, or `null` if there is no initializati
on expression. |
| 6456 * | 5225 * |
| 6457 * @return the initialization expression | 5226 * @return the initialization expression |
| 6458 */ | 5227 */ |
| 6459 Expression get initialization => _initialization; | 5228 Expression get initialization => _initialization; |
| 6460 | 5229 |
| 6461 /** | 5230 /** |
| 6462 * Return the left parenthesis. | |
| 6463 * | |
| 6464 * @return the left parenthesis | |
| 6465 */ | |
| 6466 Token get leftParenthesis => _leftParenthesis; | |
| 6467 | |
| 6468 /** | |
| 6469 * Return the semicolon separating the initializer and the condition. | |
| 6470 * | |
| 6471 * @return the semicolon separating the initializer and the condition | |
| 6472 */ | |
| 6473 Token get leftSeparator => _leftSeparator; | |
| 6474 | |
| 6475 /** | |
| 6476 * Return the right parenthesis. | |
| 6477 * | |
| 6478 * @return the right parenthesis | |
| 6479 */ | |
| 6480 Token get rightParenthesis => _rightParenthesis; | |
| 6481 | |
| 6482 /** | |
| 6483 * Return the semicolon separating the condition and the updater. | |
| 6484 * | |
| 6485 * @return the semicolon separating the condition and the updater | |
| 6486 */ | |
| 6487 Token get rightSeparator => _rightSeparator; | |
| 6488 | |
| 6489 /** | |
| 6490 * Return the list of expressions run after each execution of the loop body. | |
| 6491 * | |
| 6492 * @return the list of expressions run after each execution of the loop body | |
| 6493 */ | |
| 6494 NodeList<Expression> get updaters => _updaters; | |
| 6495 | |
| 6496 /** | |
| 6497 * Return the declaration of the loop variables, or `null` if there are no var
iables. | 5231 * Return the declaration of the loop variables, or `null` if there are no var
iables. |
| 6498 * | 5232 * |
| 6499 * @return the declaration of the loop variables, or `null` if there are no va
riables | 5233 * @return the declaration of the loop variables, or `null` if there are no va
riables |
| 6500 */ | 5234 */ |
| 6501 VariableDeclarationList get variables => _variableList; | 5235 VariableDeclarationList get variables => _variableList; |
| 6502 | 5236 |
| 6503 /** | 5237 /** |
| 6504 * Set the body of the loop to the given statement. | 5238 * Set the body of the loop to the given statement. |
| 6505 * | 5239 * |
| 6506 * @param body the body of the loop | 5240 * @param body the body of the loop |
| 6507 */ | 5241 */ |
| 6508 void set body(Statement body2) { | 5242 void set body(Statement body2) { |
| 6509 this._body = becomeParentOf(body2); | 5243 this._body = becomeParentOf(body2); |
| 6510 } | 5244 } |
| 6511 | 5245 |
| 6512 /** | 5246 /** |
| 6513 * Set the condition used to determine when to terminate the loop to the given
expression. | 5247 * Set the condition used to determine when to terminate the loop to the given
expression. |
| 6514 * | 5248 * |
| 6515 * @param expression the condition used to determine when to terminate the loo
p | 5249 * @param expression the condition used to determine when to terminate the loo
p |
| 6516 */ | 5250 */ |
| 6517 void set condition(Expression expression) { | 5251 void set condition(Expression expression) { |
| 6518 _condition = becomeParentOf(expression); | 5252 _condition = becomeParentOf(expression); |
| 6519 } | 5253 } |
| 6520 | 5254 |
| 6521 /** | 5255 /** |
| 6522 * Set the token representing the 'for' keyword to the given token. | |
| 6523 * | |
| 6524 * @param forKeyword the token representing the 'for' keyword | |
| 6525 */ | |
| 6526 void set forKeyword(Token forKeyword2) { | |
| 6527 this._forKeyword = forKeyword2; | |
| 6528 } | |
| 6529 | |
| 6530 /** | |
| 6531 * Set the initialization expression to the given expression. | 5256 * Set the initialization expression to the given expression. |
| 6532 * | 5257 * |
| 6533 * @param initialization the initialization expression | 5258 * @param initialization the initialization expression |
| 6534 */ | 5259 */ |
| 6535 void set initialization(Expression initialization2) { | 5260 void set initialization(Expression initialization2) { |
| 6536 this._initialization = becomeParentOf(initialization2); | 5261 this._initialization = becomeParentOf(initialization2); |
| 6537 } | 5262 } |
| 6538 | 5263 |
| 6539 /** | 5264 /** |
| 6540 * Set the left parenthesis to the given token. | |
| 6541 * | |
| 6542 * @param leftParenthesis the left parenthesis | |
| 6543 */ | |
| 6544 void set leftParenthesis(Token leftParenthesis2) { | |
| 6545 this._leftParenthesis = leftParenthesis2; | |
| 6546 } | |
| 6547 | |
| 6548 /** | |
| 6549 * Set the semicolon separating the initializer and the condition to the given
token. | |
| 6550 * | |
| 6551 * @param leftSeparator the semicolon separating the initializer and the condi
tion | |
| 6552 */ | |
| 6553 void set leftSeparator(Token leftSeparator2) { | |
| 6554 this._leftSeparator = leftSeparator2; | |
| 6555 } | |
| 6556 | |
| 6557 /** | |
| 6558 * Set the right parenthesis to the given token. | |
| 6559 * | |
| 6560 * @param rightParenthesis the right parenthesis | |
| 6561 */ | |
| 6562 void set rightParenthesis(Token rightParenthesis2) { | |
| 6563 this._rightParenthesis = rightParenthesis2; | |
| 6564 } | |
| 6565 | |
| 6566 /** | |
| 6567 * Set the semicolon separating the condition and the updater to the given tok
en. | |
| 6568 * | |
| 6569 * @param rightSeparator the semicolon separating the condition and the update
r | |
| 6570 */ | |
| 6571 void set rightSeparator(Token rightSeparator2) { | |
| 6572 this._rightSeparator = rightSeparator2; | |
| 6573 } | |
| 6574 | |
| 6575 /** | |
| 6576 * Set the declaration of the loop variables to the given parameter. | 5265 * Set the declaration of the loop variables to the given parameter. |
| 6577 * | 5266 * |
| 6578 * @param variableList the declaration of the loop variables | 5267 * @param variableList the declaration of the loop variables |
| 6579 */ | 5268 */ |
| 6580 void set variables(VariableDeclarationList variableList) { | 5269 void set variables(VariableDeclarationList variableList) { |
| 6581 variableList = becomeParentOf(variableList); | 5270 variableList = becomeParentOf(variableList); |
| 6582 } | 5271 } |
| 6583 void visitChildren(ASTVisitor visitor) { | 5272 void visitChildren(ASTVisitor visitor) { |
| 6584 safelyVisitChild(_variableList, visitor); | 5273 safelyVisitChild(_variableList, visitor); |
| 6585 safelyVisitChild(_initialization, visitor); | 5274 safelyVisitChild(_initialization, visitor); |
| 6586 safelyVisitChild(_condition, visitor); | 5275 safelyVisitChild(_condition, visitor); |
| 6587 _updaters.accept(visitor); | 5276 updaters.accept(visitor); |
| 6588 safelyVisitChild(_body, visitor); | 5277 safelyVisitChild(_body, visitor); |
| 6589 } | 5278 } |
| 6590 } | 5279 } |
| 6591 /** | 5280 /** |
| 6592 * The abstract class `FormalParameter` defines the behavior of objects represen
ting a | 5281 * The abstract class `FormalParameter` defines the behavior of objects represen
ting a |
| 6593 * parameter to a function. | 5282 * parameter to a function. |
| 6594 * | 5283 * |
| 6595 * <pre> | 5284 * <pre> |
| 6596 * formalParameter ::= | 5285 * formalParameter ::= |
| 6597 * [NormalFormalParameter] | 5286 * [NormalFormalParameter] |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6681 class FormalParameterList extends ASTNode { | 5370 class FormalParameterList extends ASTNode { |
| 6682 | 5371 |
| 6683 /** | 5372 /** |
| 6684 * The left parenthesis. | 5373 * The left parenthesis. |
| 6685 */ | 5374 */ |
| 6686 Token _leftParenthesis; | 5375 Token _leftParenthesis; |
| 6687 | 5376 |
| 6688 /** | 5377 /** |
| 6689 * The parameters associated with the method. | 5378 * The parameters associated with the method. |
| 6690 */ | 5379 */ |
| 6691 NodeList<FormalParameter> _parameters; | 5380 NodeList<FormalParameter> parameters; |
| 6692 | 5381 |
| 6693 /** | 5382 /** |
| 6694 * The left square bracket ('[') or left curly brace ('{') introducing the opt
ional parameters, or | 5383 * The left square bracket ('[') or left curly brace ('{') introducing the opt
ional parameters, or |
| 6695 * `null` if there are no optional parameters. | 5384 * `null` if there are no optional parameters. |
| 6696 */ | 5385 */ |
| 6697 Token _leftDelimiter; | 5386 Token _leftDelimiter; |
| 6698 | 5387 |
| 6699 /** | 5388 /** |
| 6700 * The right square bracket (']') or right curly brace ('}') introducing the o
ptional parameters, | 5389 * The right square bracket (']') or right curly brace ('}') introducing the o
ptional parameters, |
| 6701 * or `null` if there are no optional parameters. | 5390 * or `null` if there are no optional parameters. |
| 6702 */ | 5391 */ |
| 6703 Token _rightDelimiter; | 5392 Token _rightDelimiter; |
| 6704 | 5393 |
| 6705 /** | 5394 /** |
| 6706 * The right parenthesis. | 5395 * The right parenthesis. |
| 6707 */ | 5396 */ |
| 6708 Token _rightParenthesis; | 5397 Token _rightParenthesis; |
| 6709 | 5398 |
| 6710 /** | 5399 /** |
| 6711 * Initialize a newly created parameter list. | 5400 * Initialize a newly created parameter list. |
| 6712 * | 5401 * |
| 6713 * @param leftParenthesis the left parenthesis | 5402 * @param leftParenthesis the left parenthesis |
| 6714 * @param parameters the parameters associated with the method | 5403 * @param parameters the parameters associated with the method |
| 6715 * @param leftDelimiter the left delimiter introducing the optional parameters | 5404 * @param leftDelimiter the left delimiter introducing the optional parameters |
| 6716 * @param rightDelimiter the right delimiter introducing the optional paramete
rs | 5405 * @param rightDelimiter the right delimiter introducing the optional paramete
rs |
| 6717 * @param rightParenthesis the right parenthesis | 5406 * @param rightParenthesis the right parenthesis |
| 6718 */ | 5407 */ |
| 6719 FormalParameterList.full(Token leftParenthesis, List<FormalParameter> paramete
rs, Token leftDelimiter, Token rightDelimiter, Token rightParenthesis) { | 5408 FormalParameterList.full(Token leftParenthesis, List<FormalParameter> paramete
rs, Token leftDelimiter, Token rightDelimiter, Token rightParenthesis) { |
| 6720 this._parameters = new NodeList<FormalParameter>(this); | 5409 this.parameters = new NodeList<FormalParameter>(this); |
| 6721 this._leftParenthesis = leftParenthesis; | 5410 this._leftParenthesis = leftParenthesis; |
| 6722 this._parameters.addAll(parameters); | 5411 this.parameters.addAll(parameters); |
| 6723 this._leftDelimiter = leftDelimiter; | 5412 this._leftDelimiter = leftDelimiter; |
| 6724 this._rightDelimiter = rightDelimiter; | 5413 this._rightDelimiter = rightDelimiter; |
| 6725 this._rightParenthesis = rightParenthesis; | 5414 this._rightParenthesis = rightParenthesis; |
| 6726 } | 5415 } |
| 6727 | 5416 |
| 6728 /** | 5417 /** |
| 6729 * Initialize a newly created parameter list. | 5418 * Initialize a newly created parameter list. |
| 6730 * | 5419 * |
| 6731 * @param leftParenthesis the left parenthesis | 5420 * @param leftParenthesis the left parenthesis |
| 6732 * @param parameters the parameters associated with the method | 5421 * @param parameters the parameters associated with the method |
| (...skipping 22 matching lines...) Expand all Loading... |
| 6755 */ | 5444 */ |
| 6756 Token get leftParenthesis => _leftParenthesis; | 5445 Token get leftParenthesis => _leftParenthesis; |
| 6757 | 5446 |
| 6758 /** | 5447 /** |
| 6759 * Return an array containing the elements representing the parameters in this
list. The array | 5448 * Return an array containing the elements representing the parameters in this
list. The array |
| 6760 * will contain `null`s if the parameters in this list have not been resolved. | 5449 * will contain `null`s if the parameters in this list have not been resolved. |
| 6761 * | 5450 * |
| 6762 * @return the elements representing the parameters in this list | 5451 * @return the elements representing the parameters in this list |
| 6763 */ | 5452 */ |
| 6764 List<ParameterElement> get parameterElements { | 5453 List<ParameterElement> get parameterElements { |
| 6765 int count = _parameters.length; | 5454 int count = parameters.length; |
| 6766 List<ParameterElement> types = new List<ParameterElement>(count); | 5455 List<ParameterElement> types = new List<ParameterElement>(count); |
| 6767 for (int i = 0; i < count; i++) { | 5456 for (int i = 0; i < count; i++) { |
| 6768 types[i] = _parameters[i].element; | 5457 types[i] = parameters[i].element; |
| 6769 } | 5458 } |
| 6770 return types; | 5459 return types; |
| 6771 } | 5460 } |
| 6772 | 5461 |
| 6773 /** | 5462 /** |
| 6774 * Return the parameters associated with the method. | |
| 6775 * | |
| 6776 * @return the parameters associated with the method | |
| 6777 */ | |
| 6778 NodeList<FormalParameter> get parameters => _parameters; | |
| 6779 | |
| 6780 /** | |
| 6781 * Return the right square bracket (']') or right curly brace ('}') introducin
g the optional | 5463 * Return the right square bracket (']') or right curly brace ('}') introducin
g the optional |
| 6782 * parameters, or `null` if there are no optional parameters. | 5464 * parameters, or `null` if there are no optional parameters. |
| 6783 * | 5465 * |
| 6784 * @return the right square bracket (']') or right curly brace ('}') introduci
ng the optional | 5466 * @return the right square bracket (']') or right curly brace ('}') introduci
ng the optional |
| 6785 * parameters | 5467 * parameters |
| 6786 */ | 5468 */ |
| 6787 Token get rightDelimiter => _rightDelimiter; | 5469 Token get rightDelimiter => _rightDelimiter; |
| 6788 | 5470 |
| 6789 /** | 5471 /** |
| 6790 * Return the right parenthesis. | 5472 * Return the right parenthesis. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6824 | 5506 |
| 6825 /** | 5507 /** |
| 6826 * Set the right parenthesis to the given token. | 5508 * Set the right parenthesis to the given token. |
| 6827 * | 5509 * |
| 6828 * @param parenthesis the right parenthesis | 5510 * @param parenthesis the right parenthesis |
| 6829 */ | 5511 */ |
| 6830 void set rightParenthesis(Token parenthesis) { | 5512 void set rightParenthesis(Token parenthesis) { |
| 6831 _rightParenthesis = parenthesis; | 5513 _rightParenthesis = parenthesis; |
| 6832 } | 5514 } |
| 6833 void visitChildren(ASTVisitor visitor) { | 5515 void visitChildren(ASTVisitor visitor) { |
| 6834 _parameters.accept(visitor); | 5516 parameters.accept(visitor); |
| 6835 } | 5517 } |
| 6836 } | 5518 } |
| 6837 /** | 5519 /** |
| 6838 * The abstract class `FunctionBody` defines the behavior common to objects repr
esenting the | 5520 * The abstract class `FunctionBody` defines the behavior common to objects repr
esenting the |
| 6839 * body of a function or method. | 5521 * body of a function or method. |
| 6840 * | 5522 * |
| 6841 * <pre> | 5523 * <pre> |
| 6842 * functionBody ::= | 5524 * functionBody ::= |
| 6843 * [BlockFunctionBody] | 5525 * [BlockFunctionBody] |
| 6844 * | [EmptyFunctionBody] | 5526 * | [EmptyFunctionBody] |
| (...skipping 17 matching lines...) Expand all Loading... |
| 6862 * </pre> | 5544 * </pre> |
| 6863 * | 5545 * |
| 6864 * @coverage dart.engine.ast | 5546 * @coverage dart.engine.ast |
| 6865 */ | 5547 */ |
| 6866 class FunctionDeclaration extends CompilationUnitMember { | 5548 class FunctionDeclaration extends CompilationUnitMember { |
| 6867 | 5549 |
| 6868 /** | 5550 /** |
| 6869 * The token representing the 'external' keyword, or `null` if this is not an
external | 5551 * The token representing the 'external' keyword, or `null` if this is not an
external |
| 6870 * function. | 5552 * function. |
| 6871 */ | 5553 */ |
| 6872 Token _externalKeyword; | 5554 Token externalKeyword; |
| 6873 | 5555 |
| 6874 /** | 5556 /** |
| 6875 * The return type of the function, or `null` if no return type was declared. | 5557 * The return type of the function, or `null` if no return type was declared. |
| 6876 */ | 5558 */ |
| 6877 TypeName _returnType; | 5559 TypeName _returnType; |
| 6878 | 5560 |
| 6879 /** | 5561 /** |
| 6880 * The token representing the 'get' or 'set' keyword, or `null` if this is a f
unction | 5562 * The token representing the 'get' or 'set' keyword, or `null` if this is a f
unction |
| 6881 * declaration rather than a property declaration. | 5563 * declaration rather than a property declaration. |
| 6882 */ | 5564 */ |
| 6883 Token _propertyKeyword; | 5565 Token propertyKeyword; |
| 6884 | 5566 |
| 6885 /** | 5567 /** |
| 6886 * The name of the function, or `null` if the function is not named. | 5568 * The name of the function, or `null` if the function is not named. |
| 6887 */ | 5569 */ |
| 6888 SimpleIdentifier _name; | 5570 SimpleIdentifier _name; |
| 6889 | 5571 |
| 6890 /** | 5572 /** |
| 6891 * The function expression being wrapped. | 5573 * The function expression being wrapped. |
| 6892 */ | 5574 */ |
| 6893 FunctionExpression _functionExpression; | 5575 FunctionExpression _functionExpression; |
| 6894 | 5576 |
| 6895 /** | 5577 /** |
| 6896 * Initialize a newly created function declaration. | 5578 * Initialize a newly created function declaration. |
| 6897 * | 5579 * |
| 6898 * @param comment the documentation comment associated with this function | 5580 * @param comment the documentation comment associated with this function |
| 6899 * @param metadata the annotations associated with this function | 5581 * @param metadata the annotations associated with this function |
| 6900 * @param externalKeyword the token representing the 'external' keyword | 5582 * @param externalKeyword the token representing the 'external' keyword |
| 6901 * @param returnType the return type of the function | 5583 * @param returnType the return type of the function |
| 6902 * @param propertyKeyword the token representing the 'get' or 'set' keyword | 5584 * @param propertyKeyword the token representing the 'get' or 'set' keyword |
| 6903 * @param name the name of the function | 5585 * @param name the name of the function |
| 6904 * @param functionExpression the function expression being wrapped | 5586 * @param functionExpression the function expression being wrapped |
| 6905 */ | 5587 */ |
| 6906 FunctionDeclaration.full(Comment comment, List<Annotation> metadata, Token ext
ernalKeyword, TypeName returnType, Token propertyKeyword, SimpleIdentifier name,
FunctionExpression functionExpression) : super.full(comment, metadata) { | 5588 FunctionDeclaration.full(Comment comment, List<Annotation> metadata, Token ext
ernalKeyword, TypeName returnType, Token propertyKeyword, SimpleIdentifier name,
FunctionExpression functionExpression) : super.full(comment, metadata) { |
| 6907 this._externalKeyword = externalKeyword; | 5589 this.externalKeyword = externalKeyword; |
| 6908 this._returnType = becomeParentOf(returnType); | 5590 this._returnType = becomeParentOf(returnType); |
| 6909 this._propertyKeyword = propertyKeyword; | 5591 this.propertyKeyword = propertyKeyword; |
| 6910 this._name = becomeParentOf(name); | 5592 this._name = becomeParentOf(name); |
| 6911 this._functionExpression = becomeParentOf(functionExpression); | 5593 this._functionExpression = becomeParentOf(functionExpression); |
| 6912 } | 5594 } |
| 6913 | 5595 |
| 6914 /** | 5596 /** |
| 6915 * Initialize a newly created function declaration. | 5597 * Initialize a newly created function declaration. |
| 6916 * | 5598 * |
| 6917 * @param comment the documentation comment associated with this function | 5599 * @param comment the documentation comment associated with this function |
| 6918 * @param metadata the annotations associated with this function | 5600 * @param metadata the annotations associated with this function |
| 6919 * @param externalKeyword the token representing the 'external' keyword | 5601 * @param externalKeyword the token representing the 'external' keyword |
| 6920 * @param returnType the return type of the function | 5602 * @param returnType the return type of the function |
| 6921 * @param propertyKeyword the token representing the 'get' or 'set' keyword | 5603 * @param propertyKeyword the token representing the 'get' or 'set' keyword |
| 6922 * @param name the name of the function | 5604 * @param name the name of the function |
| 6923 * @param functionExpression the function expression being wrapped | 5605 * @param functionExpression the function expression being wrapped |
| 6924 */ | 5606 */ |
| 6925 FunctionDeclaration({Comment comment, List<Annotation> metadata, Token externa
lKeyword, TypeName returnType, Token propertyKeyword, SimpleIdentifier name, Fun
ctionExpression functionExpression}) : this.full(comment, metadata, externalKeyw
ord, returnType, propertyKeyword, name, functionExpression); | 5607 FunctionDeclaration({Comment comment, List<Annotation> metadata, Token externa
lKeyword, TypeName returnType, Token propertyKeyword, SimpleIdentifier name, Fun
ctionExpression functionExpression}) : this.full(comment, metadata, externalKeyw
ord, returnType, propertyKeyword, name, functionExpression); |
| 6926 accept(ASTVisitor visitor) => visitor.visitFunctionDeclaration(this); | 5608 accept(ASTVisitor visitor) => visitor.visitFunctionDeclaration(this); |
| 6927 ExecutableElement get element => _name != null ? (_name.staticElement as Execu
tableElement) : null; | 5609 ExecutableElement get element => _name != null ? (_name.staticElement as Execu
tableElement) : null; |
| 6928 Token get endToken => _functionExpression.endToken; | 5610 Token get endToken => _functionExpression.endToken; |
| 6929 | 5611 |
| 6930 /** | 5612 /** |
| 6931 * Return the token representing the 'external' keyword, or `null` if this is
not an | |
| 6932 * external function. | |
| 6933 * | |
| 6934 * @return the token representing the 'external' keyword | |
| 6935 */ | |
| 6936 Token get externalKeyword => _externalKeyword; | |
| 6937 | |
| 6938 /** | |
| 6939 * Return the function expression being wrapped. | 5613 * Return the function expression being wrapped. |
| 6940 * | 5614 * |
| 6941 * @return the function expression being wrapped | 5615 * @return the function expression being wrapped |
| 6942 */ | 5616 */ |
| 6943 FunctionExpression get functionExpression => _functionExpression; | 5617 FunctionExpression get functionExpression => _functionExpression; |
| 6944 | 5618 |
| 6945 /** | 5619 /** |
| 6946 * Return the name of the function, or `null` if the function is not named. | 5620 * Return the name of the function, or `null` if the function is not named. |
| 6947 * | 5621 * |
| 6948 * @return the name of the function | 5622 * @return the name of the function |
| 6949 */ | 5623 */ |
| 6950 SimpleIdentifier get name => _name; | 5624 SimpleIdentifier get name => _name; |
| 6951 | 5625 |
| 6952 /** | 5626 /** |
| 6953 * Return the token representing the 'get' or 'set' keyword, or `null` if this
is a function | |
| 6954 * declaration rather than a property declaration. | |
| 6955 * | |
| 6956 * @return the token representing the 'get' or 'set' keyword | |
| 6957 */ | |
| 6958 Token get propertyKeyword => _propertyKeyword; | |
| 6959 | |
| 6960 /** | |
| 6961 * Return the return type of the function, or `null` if no return type was dec
lared. | 5627 * Return the return type of the function, or `null` if no return type was dec
lared. |
| 6962 * | 5628 * |
| 6963 * @return the return type of the function | 5629 * @return the return type of the function |
| 6964 */ | 5630 */ |
| 6965 TypeName get returnType => _returnType; | 5631 TypeName get returnType => _returnType; |
| 6966 | 5632 |
| 6967 /** | 5633 /** |
| 6968 * Return `true` if this function declares a getter. | 5634 * Return `true` if this function declares a getter. |
| 6969 * | 5635 * |
| 6970 * @return `true` if this function declares a getter | 5636 * @return `true` if this function declares a getter |
| 6971 */ | 5637 */ |
| 6972 bool get isGetter => _propertyKeyword != null && identical(((_propertyKeyword
as KeywordToken)).keyword, Keyword.GET); | 5638 bool get isGetter => propertyKeyword != null && identical(((propertyKeyword as
KeywordToken)).keyword, Keyword.GET); |
| 6973 | 5639 |
| 6974 /** | 5640 /** |
| 6975 * Return `true` if this function declares a setter. | 5641 * Return `true` if this function declares a setter. |
| 6976 * | 5642 * |
| 6977 * @return `true` if this function declares a setter | 5643 * @return `true` if this function declares a setter |
| 6978 */ | 5644 */ |
| 6979 bool get isSetter => _propertyKeyword != null && identical(((_propertyKeyword
as KeywordToken)).keyword, Keyword.SET); | 5645 bool get isSetter => propertyKeyword != null && identical(((propertyKeyword as
KeywordToken)).keyword, Keyword.SET); |
| 6980 | |
| 6981 /** | |
| 6982 * Set the token representing the 'external' keyword to the given token. | |
| 6983 * | |
| 6984 * @param externalKeyword the token representing the 'external' keyword | |
| 6985 */ | |
| 6986 void set externalKeyword(Token externalKeyword2) { | |
| 6987 this._externalKeyword = externalKeyword2; | |
| 6988 } | |
| 6989 | 5646 |
| 6990 /** | 5647 /** |
| 6991 * Set the function expression being wrapped to the given function expression. | 5648 * Set the function expression being wrapped to the given function expression. |
| 6992 * | 5649 * |
| 6993 * @param functionExpression the function expression being wrapped | 5650 * @param functionExpression the function expression being wrapped |
| 6994 */ | 5651 */ |
| 6995 void set functionExpression(FunctionExpression functionExpression2) { | 5652 void set functionExpression(FunctionExpression functionExpression2) { |
| 6996 functionExpression2 = becomeParentOf(functionExpression2); | 5653 functionExpression2 = becomeParentOf(functionExpression2); |
| 6997 } | 5654 } |
| 6998 | 5655 |
| 6999 /** | 5656 /** |
| 7000 * Set the name of the function to the given identifier. | 5657 * Set the name of the function to the given identifier. |
| 7001 * | 5658 * |
| 7002 * @param identifier the name of the function | 5659 * @param identifier the name of the function |
| 7003 */ | 5660 */ |
| 7004 void set name(SimpleIdentifier identifier) { | 5661 void set name(SimpleIdentifier identifier) { |
| 7005 _name = becomeParentOf(identifier); | 5662 _name = becomeParentOf(identifier); |
| 7006 } | 5663 } |
| 7007 | 5664 |
| 7008 /** | 5665 /** |
| 7009 * Set the token representing the 'get' or 'set' keyword to the given token. | |
| 7010 * | |
| 7011 * @param propertyKeyword the token representing the 'get' or 'set' keyword | |
| 7012 */ | |
| 7013 void set propertyKeyword(Token propertyKeyword2) { | |
| 7014 this._propertyKeyword = propertyKeyword2; | |
| 7015 } | |
| 7016 | |
| 7017 /** | |
| 7018 * Set the return type of the function to the given name. | 5666 * Set the return type of the function to the given name. |
| 7019 * | 5667 * |
| 7020 * @param name the return type of the function | 5668 * @param name the return type of the function |
| 7021 */ | 5669 */ |
| 7022 void set returnType(TypeName name) { | 5670 void set returnType(TypeName name) { |
| 7023 _returnType = becomeParentOf(name); | 5671 _returnType = becomeParentOf(name); |
| 7024 } | 5672 } |
| 7025 void visitChildren(ASTVisitor visitor) { | 5673 void visitChildren(ASTVisitor visitor) { |
| 7026 super.visitChildren(visitor); | 5674 super.visitChildren(visitor); |
| 7027 safelyVisitChild(_returnType, visitor); | 5675 safelyVisitChild(_returnType, visitor); |
| 7028 safelyVisitChild(_name, visitor); | 5676 safelyVisitChild(_name, visitor); |
| 7029 safelyVisitChild(_functionExpression, visitor); | 5677 safelyVisitChild(_functionExpression, visitor); |
| 7030 } | 5678 } |
| 7031 Token get firstTokenAfterCommentAndMetadata { | 5679 Token get firstTokenAfterCommentAndMetadata { |
| 7032 if (_externalKeyword != null) { | 5680 if (externalKeyword != null) { |
| 7033 return _externalKeyword; | 5681 return externalKeyword; |
| 7034 } | 5682 } |
| 7035 if (_returnType != null) { | 5683 if (_returnType != null) { |
| 7036 return _returnType.beginToken; | 5684 return _returnType.beginToken; |
| 7037 } else if (_propertyKeyword != null) { | 5685 } else if (propertyKeyword != null) { |
| 7038 return _propertyKeyword; | 5686 return propertyKeyword; |
| 7039 } else if (_name != null) { | 5687 } else if (_name != null) { |
| 7040 return _name.beginToken; | 5688 return _name.beginToken; |
| 7041 } | 5689 } |
| 7042 return _functionExpression.beginToken; | 5690 return _functionExpression.beginToken; |
| 7043 } | 5691 } |
| 7044 } | 5692 } |
| 7045 /** | 5693 /** |
| 7046 * Instances of the class `FunctionDeclarationStatement` wrap a [FunctionDeclara
tion | 5694 * Instances of the class `FunctionDeclarationStatement` wrap a [FunctionDeclara
tion |
| 7047 ] as a statement. | 5695 ] as a statement. |
| 7048 * | 5696 * |
| 7049 * @coverage dart.engine.ast | 5697 * @coverage dart.engine.ast |
| 7050 */ | 5698 */ |
| 7051 class FunctionDeclarationStatement extends Statement { | 5699 class FunctionDeclarationStatement extends Statement { |
| 7052 | 5700 |
| 7053 /** | 5701 /** |
| 7054 * The function declaration being wrapped. | 5702 * The function declaration being wrapped. |
| 7055 */ | 5703 */ |
| 7056 FunctionDeclaration _functionDeclaration; | 5704 FunctionDeclaration functionDeclaration; |
| 7057 | 5705 |
| 7058 /** | 5706 /** |
| 7059 * Initialize a newly created function declaration statement. | 5707 * Initialize a newly created function declaration statement. |
| 7060 * | 5708 * |
| 7061 * @param functionDeclaration the the function declaration being wrapped | 5709 * @param functionDeclaration the the function declaration being wrapped |
| 7062 */ | 5710 */ |
| 7063 FunctionDeclarationStatement.full(FunctionDeclaration functionDeclaration) { | 5711 FunctionDeclarationStatement.full(FunctionDeclaration functionDeclaration) { |
| 7064 this._functionDeclaration = becomeParentOf(functionDeclaration); | 5712 this.functionDeclaration = becomeParentOf(functionDeclaration); |
| 7065 } | 5713 } |
| 7066 | 5714 |
| 7067 /** | 5715 /** |
| 7068 * Initialize a newly created function declaration statement. | 5716 * Initialize a newly created function declaration statement. |
| 7069 * | 5717 * |
| 7070 * @param functionDeclaration the the function declaration being wrapped | 5718 * @param functionDeclaration the the function declaration being wrapped |
| 7071 */ | 5719 */ |
| 7072 FunctionDeclarationStatement({FunctionDeclaration functionDeclaration}) : this
.full(functionDeclaration); | 5720 FunctionDeclarationStatement({FunctionDeclaration functionDeclaration}) : this
.full(functionDeclaration); |
| 7073 accept(ASTVisitor visitor) => visitor.visitFunctionDeclarationStatement(this); | 5721 accept(ASTVisitor visitor) => visitor.visitFunctionDeclarationStatement(this); |
| 7074 Token get beginToken => _functionDeclaration.beginToken; | 5722 Token get beginToken => functionDeclaration.beginToken; |
| 7075 Token get endToken => _functionDeclaration.endToken; | 5723 Token get endToken => functionDeclaration.endToken; |
| 7076 | |
| 7077 /** | |
| 7078 * Return the function declaration being wrapped. | |
| 7079 * | |
| 7080 * @return the function declaration being wrapped | |
| 7081 */ | |
| 7082 FunctionDeclaration get functionDeclaration => _functionDeclaration; | |
| 7083 | 5724 |
| 7084 /** | 5725 /** |
| 7085 * Set the function declaration being wrapped to the given function declaratio
n. | 5726 * Set the function declaration being wrapped to the given function declaratio
n. |
| 7086 * | 5727 * |
| 7087 * @param functionDeclaration the function declaration being wrapped | 5728 * @param functionDeclaration the function declaration being wrapped |
| 7088 */ | 5729 */ |
| 7089 void set functionExpression(FunctionDeclaration functionDeclaration2) { | 5730 void set functionExpression(FunctionDeclaration functionDeclaration2) { |
| 7090 this._functionDeclaration = becomeParentOf(functionDeclaration2); | 5731 this.functionDeclaration = becomeParentOf(functionDeclaration2); |
| 7091 } | 5732 } |
| 7092 void visitChildren(ASTVisitor visitor) { | 5733 void visitChildren(ASTVisitor visitor) { |
| 7093 safelyVisitChild(_functionDeclaration, visitor); | 5734 safelyVisitChild(functionDeclaration, visitor); |
| 7094 } | 5735 } |
| 7095 } | 5736 } |
| 7096 /** | 5737 /** |
| 7097 * Instances of the class `FunctionExpression` represent a function expression. | 5738 * Instances of the class `FunctionExpression` represent a function expression. |
| 7098 * | 5739 * |
| 7099 * <pre> | 5740 * <pre> |
| 7100 * functionExpression ::= | 5741 * functionExpression ::= |
| 7101 * [FormalParameterList] [FunctionBody] | 5742 * [FormalParameterList] [FunctionBody] |
| 7102 * </pre> | 5743 * </pre> |
| 7103 * | 5744 * |
| 7104 * @coverage dart.engine.ast | 5745 * @coverage dart.engine.ast |
| 7105 */ | 5746 */ |
| 7106 class FunctionExpression extends Expression { | 5747 class FunctionExpression extends Expression { |
| 7107 | 5748 |
| 7108 /** | 5749 /** |
| 7109 * The parameters associated with the function. | 5750 * The parameters associated with the function. |
| 7110 */ | 5751 */ |
| 7111 FormalParameterList _parameters; | 5752 FormalParameterList _parameters; |
| 7112 | 5753 |
| 7113 /** | 5754 /** |
| 7114 * The body of the function, or `null` if this is an external function. | 5755 * The body of the function, or `null` if this is an external function. |
| 7115 */ | 5756 */ |
| 7116 FunctionBody _body; | 5757 FunctionBody _body; |
| 7117 | 5758 |
| 7118 /** | 5759 /** |
| 7119 * The element associated with the function, or `null` if the AST structure ha
s not been | 5760 * The element associated with the function, or `null` if the AST structure ha
s not been |
| 7120 * resolved. | 5761 * resolved. |
| 7121 */ | 5762 */ |
| 7122 ExecutableElement _element; | 5763 ExecutableElement element; |
| 7123 | 5764 |
| 7124 /** | 5765 /** |
| 7125 * Initialize a newly created function declaration. | 5766 * Initialize a newly created function declaration. |
| 7126 * | 5767 * |
| 7127 * @param parameters the parameters associated with the function | 5768 * @param parameters the parameters associated with the function |
| 7128 * @param body the body of the function | 5769 * @param body the body of the function |
| 7129 */ | 5770 */ |
| 7130 FunctionExpression.full(FormalParameterList parameters, FunctionBody body) { | 5771 FunctionExpression.full(FormalParameterList parameters, FunctionBody body) { |
| 7131 this._parameters = becomeParentOf(parameters); | 5772 this._parameters = becomeParentOf(parameters); |
| 7132 this._body = becomeParentOf(body); | 5773 this._body = becomeParentOf(body); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 7148 } | 5789 } |
| 7149 throw new IllegalStateException("Non-external functions must have a body"); | 5790 throw new IllegalStateException("Non-external functions must have a body"); |
| 7150 } | 5791 } |
| 7151 | 5792 |
| 7152 /** | 5793 /** |
| 7153 * Return the body of the function, or `null` if this is an external function. | 5794 * Return the body of the function, or `null` if this is an external function. |
| 7154 * | 5795 * |
| 7155 * @return the body of the function | 5796 * @return the body of the function |
| 7156 */ | 5797 */ |
| 7157 FunctionBody get body => _body; | 5798 FunctionBody get body => _body; |
| 7158 | |
| 7159 /** | |
| 7160 * Return the element associated with this function, or `null` if the AST stru
cture has not | |
| 7161 * been resolved. | |
| 7162 * | |
| 7163 * @return the element associated with this function | |
| 7164 */ | |
| 7165 ExecutableElement get element => _element; | |
| 7166 Token get endToken { | 5799 Token get endToken { |
| 7167 if (_body != null) { | 5800 if (_body != null) { |
| 7168 return _body.endToken; | 5801 return _body.endToken; |
| 7169 } else if (_parameters != null) { | 5802 } else if (_parameters != null) { |
| 7170 return _parameters.endToken; | 5803 return _parameters.endToken; |
| 7171 } | 5804 } |
| 7172 throw new IllegalStateException("Non-external functions must have a body"); | 5805 throw new IllegalStateException("Non-external functions must have a body"); |
| 7173 } | 5806 } |
| 7174 | 5807 |
| 7175 /** | 5808 /** |
| 7176 * Return the parameters associated with the function. | 5809 * Return the parameters associated with the function. |
| 7177 * | 5810 * |
| 7178 * @return the parameters associated with the function | 5811 * @return the parameters associated with the function |
| 7179 */ | 5812 */ |
| 7180 FormalParameterList get parameters => _parameters; | 5813 FormalParameterList get parameters => _parameters; |
| 7181 | 5814 |
| 7182 /** | 5815 /** |
| 7183 * Set the body of the function to the given function body. | 5816 * Set the body of the function to the given function body. |
| 7184 * | 5817 * |
| 7185 * @param functionBody the body of the function | 5818 * @param functionBody the body of the function |
| 7186 */ | 5819 */ |
| 7187 void set body(FunctionBody functionBody) { | 5820 void set body(FunctionBody functionBody) { |
| 7188 _body = becomeParentOf(functionBody); | 5821 _body = becomeParentOf(functionBody); |
| 7189 } | 5822 } |
| 7190 | 5823 |
| 7191 /** | 5824 /** |
| 7192 * Set the element associated with this function to the given element. | |
| 7193 * | |
| 7194 * @param element the element associated with this function | |
| 7195 */ | |
| 7196 void set element(ExecutableElement element2) { | |
| 7197 this._element = element2; | |
| 7198 } | |
| 7199 | |
| 7200 /** | |
| 7201 * Set the parameters associated with the function to the given list of parame
ters. | 5825 * Set the parameters associated with the function to the given list of parame
ters. |
| 7202 * | 5826 * |
| 7203 * @param parameters the parameters associated with the function | 5827 * @param parameters the parameters associated with the function |
| 7204 */ | 5828 */ |
| 7205 void set parameters(FormalParameterList parameters2) { | 5829 void set parameters(FormalParameterList parameters2) { |
| 7206 this._parameters = becomeParentOf(parameters2); | 5830 this._parameters = becomeParentOf(parameters2); |
| 7207 } | 5831 } |
| 7208 void visitChildren(ASTVisitor visitor) { | 5832 void visitChildren(ASTVisitor visitor) { |
| 7209 safelyVisitChild(_parameters, visitor); | 5833 safelyVisitChild(_parameters, visitor); |
| 7210 safelyVisitChild(_body, visitor); | 5834 safelyVisitChild(_body, visitor); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 7233 | 5857 |
| 7234 /** | 5858 /** |
| 7235 * The list of arguments to the function. | 5859 * The list of arguments to the function. |
| 7236 */ | 5860 */ |
| 7237 ArgumentList _argumentList; | 5861 ArgumentList _argumentList; |
| 7238 | 5862 |
| 7239 /** | 5863 /** |
| 7240 * The element associated with the function being invoked based on static type
information, or | 5864 * The element associated with the function being invoked based on static type
information, or |
| 7241 * `null` if the AST structure has not been resolved or the function could not
be resolved. | 5865 * `null` if the AST structure has not been resolved or the function could not
be resolved. |
| 7242 */ | 5866 */ |
| 7243 ExecutableElement _staticElement; | 5867 ExecutableElement staticElement; |
| 7244 | 5868 |
| 7245 /** | 5869 /** |
| 7246 * The element associated with the function being invoked based on propagated
type information, or | 5870 * The element associated with the function being invoked based on propagated
type information, or |
| 7247 * `null` if the AST structure has not been resolved or the function could not
be resolved. | 5871 * `null` if the AST structure has not been resolved or the function could not
be resolved. |
| 7248 */ | 5872 */ |
| 7249 ExecutableElement _propagatedElement; | 5873 ExecutableElement _propagatedElement; |
| 7250 | 5874 |
| 7251 /** | 5875 /** |
| 7252 * Initialize a newly created function expression invocation. | 5876 * Initialize a newly created function expression invocation. |
| 7253 * | 5877 * |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7304 * Return the element associated with the function being invoked based on prop
agated type | 5928 * Return the element associated with the function being invoked based on prop
agated type |
| 7305 * information, or `null` if the AST structure has not been resolved or the fu
nction could | 5929 * information, or `null` if the AST structure has not been resolved or the fu
nction could |
| 7306 * not be resolved. One common example of the latter case is an expression who
se value can change | 5930 * not be resolved. One common example of the latter case is an expression who
se value can change |
| 7307 * over time. | 5931 * over time. |
| 7308 * | 5932 * |
| 7309 * @return the element associated with the function being invoked | 5933 * @return the element associated with the function being invoked |
| 7310 */ | 5934 */ |
| 7311 ExecutableElement get propagatedElement => _propagatedElement; | 5935 ExecutableElement get propagatedElement => _propagatedElement; |
| 7312 | 5936 |
| 7313 /** | 5937 /** |
| 7314 * Return the element associated with the function being invoked based on stat
ic type information, | |
| 7315 * or `null` if the AST structure has not been resolved or the function could
not be | |
| 7316 * resolved. One common example of the latter case is an expression whose valu
e can change over | |
| 7317 * time. | |
| 7318 * | |
| 7319 * @return the element associated with the function | |
| 7320 */ | |
| 7321 ExecutableElement get staticElement => _staticElement; | |
| 7322 | |
| 7323 /** | |
| 7324 * Set the list of arguments to the method to the given list. | 5938 * Set the list of arguments to the method to the given list. |
| 7325 * | 5939 * |
| 7326 * @param argumentList the list of arguments to the method | 5940 * @param argumentList the list of arguments to the method |
| 7327 */ | 5941 */ |
| 7328 void set argumentList(ArgumentList argumentList2) { | 5942 void set argumentList(ArgumentList argumentList2) { |
| 7329 this._argumentList = becomeParentOf(argumentList2); | 5943 this._argumentList = becomeParentOf(argumentList2); |
| 7330 } | 5944 } |
| 7331 | 5945 |
| 7332 /** | 5946 /** |
| 7333 * Set the expression producing the function being invoked to the given expres
sion. | 5947 * Set the expression producing the function being invoked to the given expres
sion. |
| 7334 * | 5948 * |
| 7335 * @param function the expression producing the function being invoked | 5949 * @param function the expression producing the function being invoked |
| 7336 */ | 5950 */ |
| 7337 void set function(Expression function2) { | 5951 void set function(Expression function2) { |
| 7338 function2 = becomeParentOf(function2); | 5952 function2 = becomeParentOf(function2); |
| 7339 } | 5953 } |
| 7340 | 5954 |
| 7341 /** | 5955 /** |
| 7342 * Set the element associated with the function being invoked based on propaga
ted type information | 5956 * Set the element associated with the function being invoked based on propaga
ted type information |
| 7343 * to the given element. | 5957 * to the given element. |
| 7344 * | 5958 * |
| 7345 * @param element the element to be associated with the function being invoked | 5959 * @param element the element to be associated with the function being invoked |
| 7346 */ | 5960 */ |
| 7347 void set propagatedElement(ExecutableElement element) { | 5961 void set propagatedElement(ExecutableElement element) { |
| 7348 _propagatedElement = element; | 5962 _propagatedElement = element; |
| 7349 } | 5963 } |
| 7350 | |
| 7351 /** | |
| 7352 * Set the element associated with the function being invoked based on static
type information to | |
| 7353 * the given element. | |
| 7354 * | |
| 7355 * @param element the element to be associated with the function | |
| 7356 */ | |
| 7357 void set staticElement(ExecutableElement element) { | |
| 7358 this._staticElement = element; | |
| 7359 } | |
| 7360 void visitChildren(ASTVisitor visitor) { | 5964 void visitChildren(ASTVisitor visitor) { |
| 7361 safelyVisitChild(_function, visitor); | 5965 safelyVisitChild(_function, visitor); |
| 7362 safelyVisitChild(_argumentList, visitor); | 5966 safelyVisitChild(_argumentList, visitor); |
| 7363 } | 5967 } |
| 7364 } | 5968 } |
| 7365 /** | 5969 /** |
| 7366 * Instances of the class `FunctionTypeAlias` represent a function type alias. | 5970 * Instances of the class `FunctionTypeAlias` represent a function type alias. |
| 7367 * | 5971 * |
| 7368 * <pre> | 5972 * <pre> |
| 7369 * functionTypeAlias ::= | 5973 * functionTypeAlias ::= |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7615 * 'hide' [SimpleIdentifier] (',' [SimpleIdentifier])* | 6219 * 'hide' [SimpleIdentifier] (',' [SimpleIdentifier])* |
| 7616 * </pre> | 6220 * </pre> |
| 7617 * | 6221 * |
| 7618 * @coverage dart.engine.ast | 6222 * @coverage dart.engine.ast |
| 7619 */ | 6223 */ |
| 7620 class HideCombinator extends Combinator { | 6224 class HideCombinator extends Combinator { |
| 7621 | 6225 |
| 7622 /** | 6226 /** |
| 7623 * The list of names from the library that are hidden by this combinator. | 6227 * The list of names from the library that are hidden by this combinator. |
| 7624 */ | 6228 */ |
| 7625 NodeList<SimpleIdentifier> _hiddenNames; | 6229 NodeList<SimpleIdentifier> hiddenNames; |
| 7626 | 6230 |
| 7627 /** | 6231 /** |
| 7628 * Initialize a newly created import show combinator. | 6232 * Initialize a newly created import show combinator. |
| 7629 * | 6233 * |
| 7630 * @param keyword the comma introducing the combinator | 6234 * @param keyword the comma introducing the combinator |
| 7631 * @param hiddenNames the list of names from the library that are hidden by th
is combinator | 6235 * @param hiddenNames the list of names from the library that are hidden by th
is combinator |
| 7632 */ | 6236 */ |
| 7633 HideCombinator.full(Token keyword, List<SimpleIdentifier> hiddenNames) : super
.full(keyword) { | 6237 HideCombinator.full(Token keyword, List<SimpleIdentifier> hiddenNames) : super
.full(keyword) { |
| 7634 this._hiddenNames = new NodeList<SimpleIdentifier>(this); | 6238 this.hiddenNames = new NodeList<SimpleIdentifier>(this); |
| 7635 this._hiddenNames.addAll(hiddenNames); | 6239 this.hiddenNames.addAll(hiddenNames); |
| 7636 } | 6240 } |
| 7637 | 6241 |
| 7638 /** | 6242 /** |
| 7639 * Initialize a newly created import show combinator. | 6243 * Initialize a newly created import show combinator. |
| 7640 * | 6244 * |
| 7641 * @param keyword the comma introducing the combinator | 6245 * @param keyword the comma introducing the combinator |
| 7642 * @param hiddenNames the list of names from the library that are hidden by th
is combinator | 6246 * @param hiddenNames the list of names from the library that are hidden by th
is combinator |
| 7643 */ | 6247 */ |
| 7644 HideCombinator({Token keyword, List<SimpleIdentifier> hiddenNames}) : this.ful
l(keyword, hiddenNames); | 6248 HideCombinator({Token keyword, List<SimpleIdentifier> hiddenNames}) : this.ful
l(keyword, hiddenNames); |
| 7645 accept(ASTVisitor visitor) => visitor.visitHideCombinator(this); | 6249 accept(ASTVisitor visitor) => visitor.visitHideCombinator(this); |
| 7646 Token get endToken => _hiddenNames.endToken; | 6250 Token get endToken => hiddenNames.endToken; |
| 7647 | |
| 7648 /** | |
| 7649 * Return the list of names from the library that are hidden by this combinato
r. | |
| 7650 * | |
| 7651 * @return the list of names from the library that are hidden by this combinat
or | |
| 7652 */ | |
| 7653 NodeList<SimpleIdentifier> get hiddenNames => _hiddenNames; | |
| 7654 void visitChildren(ASTVisitor visitor) { | 6251 void visitChildren(ASTVisitor visitor) { |
| 7655 _hiddenNames.accept(visitor); | 6252 hiddenNames.accept(visitor); |
| 7656 } | 6253 } |
| 7657 } | 6254 } |
| 7658 /** | 6255 /** |
| 7659 * The abstract class `Identifier` defines the behavior common to nodes that rep
resent an | 6256 * The abstract class `Identifier` defines the behavior common to nodes that rep
resent an |
| 7660 * identifier. | 6257 * identifier. |
| 7661 * | 6258 * |
| 7662 * <pre> | 6259 * <pre> |
| 7663 * identifier ::= | 6260 * identifier ::= |
| 7664 * [SimpleIdentifier] | 6261 * [SimpleIdentifier] |
| 7665 * | [PrefixedIdentifier] | 6262 * | [PrefixedIdentifier] |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7724 * 'if' '(' [Expression] ')' [Statement] ('else' [Statement])? | 6321 * 'if' '(' [Expression] ')' [Statement] ('else' [Statement])? |
| 7725 * </pre> | 6322 * </pre> |
| 7726 * | 6323 * |
| 7727 * @coverage dart.engine.ast | 6324 * @coverage dart.engine.ast |
| 7728 */ | 6325 */ |
| 7729 class IfStatement extends Statement { | 6326 class IfStatement extends Statement { |
| 7730 | 6327 |
| 7731 /** | 6328 /** |
| 7732 * The token representing the 'if' keyword. | 6329 * The token representing the 'if' keyword. |
| 7733 */ | 6330 */ |
| 7734 Token _ifKeyword; | 6331 Token ifKeyword; |
| 7735 | 6332 |
| 7736 /** | 6333 /** |
| 7737 * The left parenthesis. | 6334 * The left parenthesis. |
| 7738 */ | 6335 */ |
| 7739 Token _leftParenthesis; | 6336 Token leftParenthesis; |
| 7740 | 6337 |
| 7741 /** | 6338 /** |
| 7742 * The condition used to determine which of the statements is executed next. | 6339 * The condition used to determine which of the statements is executed next. |
| 7743 */ | 6340 */ |
| 7744 Expression _condition; | 6341 Expression _condition; |
| 7745 | 6342 |
| 7746 /** | 6343 /** |
| 7747 * The right parenthesis. | 6344 * The right parenthesis. |
| 7748 */ | 6345 */ |
| 7749 Token _rightParenthesis; | 6346 Token rightParenthesis; |
| 7750 | 6347 |
| 7751 /** | 6348 /** |
| 7752 * The statement that is executed if the condition evaluates to `true`. | 6349 * The statement that is executed if the condition evaluates to `true`. |
| 7753 */ | 6350 */ |
| 7754 Statement _thenStatement; | 6351 Statement _thenStatement; |
| 7755 | 6352 |
| 7756 /** | 6353 /** |
| 7757 * The token representing the 'else' keyword, or `null` if there is no else st
atement. | 6354 * The token representing the 'else' keyword, or `null` if there is no else st
atement. |
| 7758 */ | 6355 */ |
| 7759 Token _elseKeyword; | 6356 Token elseKeyword; |
| 7760 | 6357 |
| 7761 /** | 6358 /** |
| 7762 * The statement that is executed if the condition evaluates to `false`, or `n
ull` if | 6359 * The statement that is executed if the condition evaluates to `false`, or `n
ull` if |
| 7763 * there is no else statement. | 6360 * there is no else statement. |
| 7764 */ | 6361 */ |
| 7765 Statement _elseStatement; | 6362 Statement _elseStatement; |
| 7766 | 6363 |
| 7767 /** | 6364 /** |
| 7768 * Initialize a newly created if statement. | 6365 * Initialize a newly created if statement. |
| 7769 * | 6366 * |
| 7770 * @param ifKeyword the token representing the 'if' keyword | 6367 * @param ifKeyword the token representing the 'if' keyword |
| 7771 * @param leftParenthesis the left parenthesis | 6368 * @param leftParenthesis the left parenthesis |
| 7772 * @param condition the condition used to determine which of the statements is
executed next | 6369 * @param condition the condition used to determine which of the statements is
executed next |
| 7773 * @param rightParenthesis the right parenthesis | 6370 * @param rightParenthesis the right parenthesis |
| 7774 * @param thenStatement the statement that is executed if the condition evalua
tes to `true` | 6371 * @param thenStatement the statement that is executed if the condition evalua
tes to `true` |
| 7775 * @param elseKeyword the token representing the 'else' keyword | 6372 * @param elseKeyword the token representing the 'else' keyword |
| 7776 * @param elseStatement the statement that is executed if the condition evalua
tes to `false` | 6373 * @param elseStatement the statement that is executed if the condition evalua
tes to `false` |
| 7777 */ | 6374 */ |
| 7778 IfStatement.full(Token ifKeyword, Token leftParenthesis, Expression condition,
Token rightParenthesis, Statement thenStatement, Token elseKeyword, Statement e
lseStatement) { | 6375 IfStatement.full(Token ifKeyword, Token leftParenthesis, Expression condition,
Token rightParenthesis, Statement thenStatement, Token elseKeyword, Statement e
lseStatement) { |
| 7779 this._ifKeyword = ifKeyword; | 6376 this.ifKeyword = ifKeyword; |
| 7780 this._leftParenthesis = leftParenthesis; | 6377 this.leftParenthesis = leftParenthesis; |
| 7781 this._condition = becomeParentOf(condition); | 6378 this._condition = becomeParentOf(condition); |
| 7782 this._rightParenthesis = rightParenthesis; | 6379 this.rightParenthesis = rightParenthesis; |
| 7783 this._thenStatement = becomeParentOf(thenStatement); | 6380 this._thenStatement = becomeParentOf(thenStatement); |
| 7784 this._elseKeyword = elseKeyword; | 6381 this.elseKeyword = elseKeyword; |
| 7785 this._elseStatement = becomeParentOf(elseStatement); | 6382 this._elseStatement = becomeParentOf(elseStatement); |
| 7786 } | 6383 } |
| 7787 | 6384 |
| 7788 /** | 6385 /** |
| 7789 * Initialize a newly created if statement. | 6386 * Initialize a newly created if statement. |
| 7790 * | 6387 * |
| 7791 * @param ifKeyword the token representing the 'if' keyword | 6388 * @param ifKeyword the token representing the 'if' keyword |
| 7792 * @param leftParenthesis the left parenthesis | 6389 * @param leftParenthesis the left parenthesis |
| 7793 * @param condition the condition used to determine which of the statements is
executed next | 6390 * @param condition the condition used to determine which of the statements is
executed next |
| 7794 * @param rightParenthesis the right parenthesis | 6391 * @param rightParenthesis the right parenthesis |
| 7795 * @param thenStatement the statement that is executed if the condition evalua
tes to `true` | 6392 * @param thenStatement the statement that is executed if the condition evalua
tes to `true` |
| 7796 * @param elseKeyword the token representing the 'else' keyword | 6393 * @param elseKeyword the token representing the 'else' keyword |
| 7797 * @param elseStatement the statement that is executed if the condition evalua
tes to `false` | 6394 * @param elseStatement the statement that is executed if the condition evalua
tes to `false` |
| 7798 */ | 6395 */ |
| 7799 IfStatement({Token ifKeyword, Token leftParenthesis, Expression condition, Tok
en rightParenthesis, Statement thenStatement, Token elseKeyword, Statement elseS
tatement}) : this.full(ifKeyword, leftParenthesis, condition, rightParenthesis,
thenStatement, elseKeyword, elseStatement); | 6396 IfStatement({Token ifKeyword, Token leftParenthesis, Expression condition, Tok
en rightParenthesis, Statement thenStatement, Token elseKeyword, Statement elseS
tatement}) : this.full(ifKeyword, leftParenthesis, condition, rightParenthesis,
thenStatement, elseKeyword, elseStatement); |
| 7800 accept(ASTVisitor visitor) => visitor.visitIfStatement(this); | 6397 accept(ASTVisitor visitor) => visitor.visitIfStatement(this); |
| 7801 Token get beginToken => _ifKeyword; | 6398 Token get beginToken => ifKeyword; |
| 7802 | 6399 |
| 7803 /** | 6400 /** |
| 7804 * Return the condition used to determine which of the statements is executed
next. | 6401 * Return the condition used to determine which of the statements is executed
next. |
| 7805 * | 6402 * |
| 7806 * @return the condition used to determine which statement is executed next | 6403 * @return the condition used to determine which statement is executed next |
| 7807 */ | 6404 */ |
| 7808 Expression get condition => _condition; | 6405 Expression get condition => _condition; |
| 7809 | 6406 |
| 7810 /** | 6407 /** |
| 7811 * Return the token representing the 'else' keyword, or `null` if there is no
else | |
| 7812 * statement. | |
| 7813 * | |
| 7814 * @return the token representing the 'else' keyword | |
| 7815 */ | |
| 7816 Token get elseKeyword => _elseKeyword; | |
| 7817 | |
| 7818 /** | |
| 7819 * Return the statement that is executed if the condition evaluates to `false`
, or | 6408 * Return the statement that is executed if the condition evaluates to `false`
, or |
| 7820 * `null` if there is no else statement. | 6409 * `null` if there is no else statement. |
| 7821 * | 6410 * |
| 7822 * @return the statement that is executed if the condition evaluates to `false
` | 6411 * @return the statement that is executed if the condition evaluates to `false
` |
| 7823 */ | 6412 */ |
| 7824 Statement get elseStatement => _elseStatement; | 6413 Statement get elseStatement => _elseStatement; |
| 7825 Token get endToken { | 6414 Token get endToken { |
| 7826 if (_elseStatement != null) { | 6415 if (_elseStatement != null) { |
| 7827 return _elseStatement.endToken; | 6416 return _elseStatement.endToken; |
| 7828 } | 6417 } |
| 7829 return _thenStatement.endToken; | 6418 return _thenStatement.endToken; |
| 7830 } | 6419 } |
| 7831 | 6420 |
| 7832 /** | 6421 /** |
| 7833 * Return the token representing the 'if' keyword. | |
| 7834 * | |
| 7835 * @return the token representing the 'if' keyword | |
| 7836 */ | |
| 7837 Token get ifKeyword => _ifKeyword; | |
| 7838 | |
| 7839 /** | |
| 7840 * Return the left parenthesis. | |
| 7841 * | |
| 7842 * @return the left parenthesis | |
| 7843 */ | |
| 7844 Token get leftParenthesis => _leftParenthesis; | |
| 7845 | |
| 7846 /** | |
| 7847 * Return the right parenthesis. | |
| 7848 * | |
| 7849 * @return the right parenthesis | |
| 7850 */ | |
| 7851 Token get rightParenthesis => _rightParenthesis; | |
| 7852 | |
| 7853 /** | |
| 7854 * Return the statement that is executed if the condition evaluates to `true`. | 6422 * Return the statement that is executed if the condition evaluates to `true`. |
| 7855 * | 6423 * |
| 7856 * @return the statement that is executed if the condition evaluates to `true` | 6424 * @return the statement that is executed if the condition evaluates to `true` |
| 7857 */ | 6425 */ |
| 7858 Statement get thenStatement => _thenStatement; | 6426 Statement get thenStatement => _thenStatement; |
| 7859 | 6427 |
| 7860 /** | 6428 /** |
| 7861 * Set the condition used to determine which of the statements is executed nex
t to the given | 6429 * Set the condition used to determine which of the statements is executed nex
t to the given |
| 7862 * expression. | 6430 * expression. |
| 7863 * | 6431 * |
| 7864 * @param expression the condition used to determine which statement is execut
ed next | 6432 * @param expression the condition used to determine which statement is execut
ed next |
| 7865 */ | 6433 */ |
| 7866 void set condition(Expression expression) { | 6434 void set condition(Expression expression) { |
| 7867 _condition = becomeParentOf(expression); | 6435 _condition = becomeParentOf(expression); |
| 7868 } | 6436 } |
| 7869 | 6437 |
| 7870 /** | 6438 /** |
| 7871 * Set the token representing the 'else' keyword to the given token. | |
| 7872 * | |
| 7873 * @param elseKeyword the token representing the 'else' keyword | |
| 7874 */ | |
| 7875 void set elseKeyword(Token elseKeyword2) { | |
| 7876 this._elseKeyword = elseKeyword2; | |
| 7877 } | |
| 7878 | |
| 7879 /** | |
| 7880 * Set the statement that is executed if the condition evaluates to `false` to
the given | 6439 * Set the statement that is executed if the condition evaluates to `false` to
the given |
| 7881 * statement. | 6440 * statement. |
| 7882 * | 6441 * |
| 7883 * @param statement the statement that is executed if the condition evaluates
to `false` | 6442 * @param statement the statement that is executed if the condition evaluates
to `false` |
| 7884 */ | 6443 */ |
| 7885 void set elseStatement(Statement statement) { | 6444 void set elseStatement(Statement statement) { |
| 7886 _elseStatement = becomeParentOf(statement); | 6445 _elseStatement = becomeParentOf(statement); |
| 7887 } | 6446 } |
| 7888 | 6447 |
| 7889 /** | 6448 /** |
| 7890 * Set the token representing the 'if' keyword to the given token. | |
| 7891 * | |
| 7892 * @param ifKeyword the token representing the 'if' keyword | |
| 7893 */ | |
| 7894 void set ifKeyword(Token ifKeyword2) { | |
| 7895 this._ifKeyword = ifKeyword2; | |
| 7896 } | |
| 7897 | |
| 7898 /** | |
| 7899 * Set the left parenthesis to the given token. | |
| 7900 * | |
| 7901 * @param leftParenthesis the left parenthesis | |
| 7902 */ | |
| 7903 void set leftParenthesis(Token leftParenthesis2) { | |
| 7904 this._leftParenthesis = leftParenthesis2; | |
| 7905 } | |
| 7906 | |
| 7907 /** | |
| 7908 * Set the right parenthesis to the given token. | |
| 7909 * | |
| 7910 * @param rightParenthesis the right parenthesis | |
| 7911 */ | |
| 7912 void set rightParenthesis(Token rightParenthesis2) { | |
| 7913 this._rightParenthesis = rightParenthesis2; | |
| 7914 } | |
| 7915 | |
| 7916 /** | |
| 7917 * Set the statement that is executed if the condition evaluates to `true` to
the given | 6449 * Set the statement that is executed if the condition evaluates to `true` to
the given |
| 7918 * statement. | 6450 * statement. |
| 7919 * | 6451 * |
| 7920 * @param statement the statement that is executed if the condition evaluates
to `true` | 6452 * @param statement the statement that is executed if the condition evaluates
to `true` |
| 7921 */ | 6453 */ |
| 7922 void set thenStatement(Statement statement) { | 6454 void set thenStatement(Statement statement) { |
| 7923 _thenStatement = becomeParentOf(statement); | 6455 _thenStatement = becomeParentOf(statement); |
| 7924 } | 6456 } |
| 7925 void visitChildren(ASTVisitor visitor) { | 6457 void visitChildren(ASTVisitor visitor) { |
| 7926 safelyVisitChild(_condition, visitor); | 6458 safelyVisitChild(_condition, visitor); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 7937 * 'implements' [TypeName] (',' [TypeName])* | 6469 * 'implements' [TypeName] (',' [TypeName])* |
| 7938 * </pre> | 6470 * </pre> |
| 7939 * | 6471 * |
| 7940 * @coverage dart.engine.ast | 6472 * @coverage dart.engine.ast |
| 7941 */ | 6473 */ |
| 7942 class ImplementsClause extends ASTNode { | 6474 class ImplementsClause extends ASTNode { |
| 7943 | 6475 |
| 7944 /** | 6476 /** |
| 7945 * The token representing the 'implements' keyword. | 6477 * The token representing the 'implements' keyword. |
| 7946 */ | 6478 */ |
| 7947 Token _keyword; | 6479 Token keyword; |
| 7948 | 6480 |
| 7949 /** | 6481 /** |
| 7950 * The interfaces that are being implemented. | 6482 * The interfaces that are being implemented. |
| 7951 */ | 6483 */ |
| 7952 NodeList<TypeName> _interfaces; | 6484 NodeList<TypeName> interfaces; |
| 7953 | 6485 |
| 7954 /** | 6486 /** |
| 7955 * Initialize a newly created implements clause. | 6487 * Initialize a newly created implements clause. |
| 7956 * | 6488 * |
| 7957 * @param keyword the token representing the 'implements' keyword | 6489 * @param keyword the token representing the 'implements' keyword |
| 7958 * @param interfaces the interfaces that are being implemented | 6490 * @param interfaces the interfaces that are being implemented |
| 7959 */ | 6491 */ |
| 7960 ImplementsClause.full(Token keyword, List<TypeName> interfaces) { | 6492 ImplementsClause.full(Token keyword, List<TypeName> interfaces) { |
| 7961 this._interfaces = new NodeList<TypeName>(this); | 6493 this.interfaces = new NodeList<TypeName>(this); |
| 7962 this._keyword = keyword; | 6494 this.keyword = keyword; |
| 7963 this._interfaces.addAll(interfaces); | 6495 this.interfaces.addAll(interfaces); |
| 7964 } | 6496 } |
| 7965 | 6497 |
| 7966 /** | 6498 /** |
| 7967 * Initialize a newly created implements clause. | 6499 * Initialize a newly created implements clause. |
| 7968 * | 6500 * |
| 7969 * @param keyword the token representing the 'implements' keyword | 6501 * @param keyword the token representing the 'implements' keyword |
| 7970 * @param interfaces the interfaces that are being implemented | 6502 * @param interfaces the interfaces that are being implemented |
| 7971 */ | 6503 */ |
| 7972 ImplementsClause({Token keyword, List<TypeName> interfaces}) : this.full(keywo
rd, interfaces); | 6504 ImplementsClause({Token keyword, List<TypeName> interfaces}) : this.full(keywo
rd, interfaces); |
| 7973 accept(ASTVisitor visitor) => visitor.visitImplementsClause(this); | 6505 accept(ASTVisitor visitor) => visitor.visitImplementsClause(this); |
| 7974 Token get beginToken => _keyword; | 6506 Token get beginToken => keyword; |
| 7975 Token get endToken => _interfaces.endToken; | 6507 Token get endToken => interfaces.endToken; |
| 7976 | |
| 7977 /** | |
| 7978 * Return the list of the interfaces that are being implemented. | |
| 7979 * | |
| 7980 * @return the list of the interfaces that are being implemented | |
| 7981 */ | |
| 7982 NodeList<TypeName> get interfaces => _interfaces; | |
| 7983 | |
| 7984 /** | |
| 7985 * Return the token representing the 'implements' keyword. | |
| 7986 * | |
| 7987 * @return the token representing the 'implements' keyword | |
| 7988 */ | |
| 7989 Token get keyword => _keyword; | |
| 7990 | |
| 7991 /** | |
| 7992 * Set the token representing the 'implements' keyword to the given token. | |
| 7993 * | |
| 7994 * @param keyword the token representing the 'implements' keyword | |
| 7995 */ | |
| 7996 void set keyword(Token keyword2) { | |
| 7997 this._keyword = keyword2; | |
| 7998 } | |
| 7999 void visitChildren(ASTVisitor visitor) { | 6508 void visitChildren(ASTVisitor visitor) { |
| 8000 _interfaces.accept(visitor); | 6509 interfaces.accept(visitor); |
| 8001 } | 6510 } |
| 8002 } | 6511 } |
| 8003 /** | 6512 /** |
| 8004 * Instances of the class `ImportDirective` represent an import directive. | 6513 * Instances of the class `ImportDirective` represent an import directive. |
| 8005 * | 6514 * |
| 8006 * <pre> | 6515 * <pre> |
| 8007 * importDirective ::= | 6516 * importDirective ::= |
| 8008 * [Annotation] 'import' [StringLiteral] ('as' identifier)? [Combinator]* ';
' | 6517 * [Annotation] 'import' [StringLiteral] ('as' identifier)? [Combinator]* ';
' |
| 8009 * </pre> | 6518 * </pre> |
| 8010 * | 6519 * |
| 8011 * @coverage dart.engine.ast | 6520 * @coverage dart.engine.ast |
| 8012 */ | 6521 */ |
| 8013 class ImportDirective extends NamespaceDirective { | 6522 class ImportDirective extends NamespaceDirective { |
| 8014 | 6523 |
| 8015 /** | 6524 /** |
| 8016 * The token representing the 'as' token, or `null` if the imported names are
not prefixed. | 6525 * The token representing the 'as' token, or `null` if the imported names are
not prefixed. |
| 8017 */ | 6526 */ |
| 8018 Token _asToken; | 6527 Token asToken; |
| 8019 | 6528 |
| 8020 /** | 6529 /** |
| 8021 * The prefix to be used with the imported names, or `null` if the imported na
mes are not | 6530 * The prefix to be used with the imported names, or `null` if the imported na
mes are not |
| 8022 * prefixed. | 6531 * prefixed. |
| 8023 */ | 6532 */ |
| 8024 SimpleIdentifier _prefix; | 6533 SimpleIdentifier _prefix; |
| 8025 | 6534 |
| 8026 /** | 6535 /** |
| 8027 * Initialize a newly created import directive. | 6536 * Initialize a newly created import directive. |
| 8028 * | 6537 * |
| 8029 * @param comment the documentation comment associated with this directive | 6538 * @param comment the documentation comment associated with this directive |
| 8030 * @param metadata the annotations associated with the directive | 6539 * @param metadata the annotations associated with the directive |
| 8031 * @param keyword the token representing the 'import' keyword | 6540 * @param keyword the token representing the 'import' keyword |
| 8032 * @param libraryUri the URI of the library being imported | 6541 * @param libraryUri the URI of the library being imported |
| 8033 * @param asToken the token representing the 'as' token | 6542 * @param asToken the token representing the 'as' token |
| 8034 * @param prefix the prefix to be used with the imported names | 6543 * @param prefix the prefix to be used with the imported names |
| 8035 * @param combinators the combinators used to control how names are imported | 6544 * @param combinators the combinators used to control how names are imported |
| 8036 * @param semicolon the semicolon terminating the directive | 6545 * @param semicolon the semicolon terminating the directive |
| 8037 */ | 6546 */ |
| 8038 ImportDirective.full(Comment comment, List<Annotation> metadata, Token keyword
, StringLiteral libraryUri, Token asToken, SimpleIdentifier prefix, List<Combina
tor> combinators, Token semicolon) : super.full(comment, metadata, keyword, libr
aryUri, combinators, semicolon) { | 6547 ImportDirective.full(Comment comment, List<Annotation> metadata, Token keyword
, StringLiteral libraryUri, Token asToken, SimpleIdentifier prefix, List<Combina
tor> combinators, Token semicolon) : super.full(comment, metadata, keyword, libr
aryUri, combinators, semicolon) { |
| 8039 this._asToken = asToken; | 6548 this.asToken = asToken; |
| 8040 this._prefix = becomeParentOf(prefix); | 6549 this._prefix = becomeParentOf(prefix); |
| 8041 } | 6550 } |
| 8042 | 6551 |
| 8043 /** | 6552 /** |
| 8044 * Initialize a newly created import directive. | 6553 * Initialize a newly created import directive. |
| 8045 * | 6554 * |
| 8046 * @param comment the documentation comment associated with this directive | 6555 * @param comment the documentation comment associated with this directive |
| 8047 * @param metadata the annotations associated with the directive | 6556 * @param metadata the annotations associated with the directive |
| 8048 * @param keyword the token representing the 'import' keyword | 6557 * @param keyword the token representing the 'import' keyword |
| 8049 * @param libraryUri the URI of the library being imported | 6558 * @param libraryUri the URI of the library being imported |
| 8050 * @param asToken the token representing the 'as' token | 6559 * @param asToken the token representing the 'as' token |
| 8051 * @param prefix the prefix to be used with the imported names | 6560 * @param prefix the prefix to be used with the imported names |
| 8052 * @param combinators the combinators used to control how names are imported | 6561 * @param combinators the combinators used to control how names are imported |
| 8053 * @param semicolon the semicolon terminating the directive | 6562 * @param semicolon the semicolon terminating the directive |
| 8054 */ | 6563 */ |
| 8055 ImportDirective({Comment comment, List<Annotation> metadata, Token keyword, St
ringLiteral libraryUri, Token asToken, SimpleIdentifier prefix, List<Combinator>
combinators, Token semicolon}) : this.full(comment, metadata, keyword, libraryU
ri, asToken, prefix, combinators, semicolon); | 6564 ImportDirective({Comment comment, List<Annotation> metadata, Token keyword, St
ringLiteral libraryUri, Token asToken, SimpleIdentifier prefix, List<Combinator>
combinators, Token semicolon}) : this.full(comment, metadata, keyword, libraryU
ri, asToken, prefix, combinators, semicolon); |
| 8056 accept(ASTVisitor visitor) => visitor.visitImportDirective(this); | 6565 accept(ASTVisitor visitor) => visitor.visitImportDirective(this); |
| 8057 | 6566 |
| 8058 /** | 6567 /** |
| 8059 * Return the token representing the 'as' token, or `null` if the imported nam
es are not | |
| 8060 * prefixed. | |
| 8061 * | |
| 8062 * @return the token representing the 'as' token | |
| 8063 */ | |
| 8064 Token get asToken => _asToken; | |
| 8065 | |
| 8066 /** | |
| 8067 * Return the prefix to be used with the imported names, or `null` if the impo
rted names are | 6568 * Return the prefix to be used with the imported names, or `null` if the impo
rted names are |
| 8068 * not prefixed. | 6569 * not prefixed. |
| 8069 * | 6570 * |
| 8070 * @return the prefix to be used with the imported names | 6571 * @return the prefix to be used with the imported names |
| 8071 */ | 6572 */ |
| 8072 SimpleIdentifier get prefix => _prefix; | 6573 SimpleIdentifier get prefix => _prefix; |
| 8073 LibraryElement get uriElement { | 6574 LibraryElement get uriElement { |
| 8074 Element element = this.element; | 6575 Element element2 = element; |
| 8075 if (element is ImportElement) { | 6576 if (element2 is ImportElement) { |
| 8076 return ((element as ImportElement)).importedLibrary; | 6577 return ((element2 as ImportElement)).importedLibrary; |
| 8077 } | 6578 } |
| 8078 return null; | 6579 return null; |
| 8079 } | 6580 } |
| 8080 | 6581 |
| 8081 /** | 6582 /** |
| 8082 * Set the token representing the 'as' token to the given token. | |
| 8083 * | |
| 8084 * @param asToken the token representing the 'as' token | |
| 8085 */ | |
| 8086 void set asToken(Token asToken2) { | |
| 8087 this._asToken = asToken2; | |
| 8088 } | |
| 8089 | |
| 8090 /** | |
| 8091 * Set the prefix to be used with the imported names to the given identifier. | 6583 * Set the prefix to be used with the imported names to the given identifier. |
| 8092 * | 6584 * |
| 8093 * @param prefix the prefix to be used with the imported names | 6585 * @param prefix the prefix to be used with the imported names |
| 8094 */ | 6586 */ |
| 8095 void set prefix(SimpleIdentifier prefix2) { | 6587 void set prefix(SimpleIdentifier prefix2) { |
| 8096 this._prefix = becomeParentOf(prefix2); | 6588 this._prefix = becomeParentOf(prefix2); |
| 8097 } | 6589 } |
| 8098 void visitChildren(ASTVisitor visitor) { | 6590 void visitChildren(ASTVisitor visitor) { |
| 8099 super.visitChildren(visitor); | 6591 super.visitChildren(visitor); |
| 8100 safelyVisitChild(_prefix, visitor); | 6592 safelyVisitChild(_prefix, visitor); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8116 /** | 6608 /** |
| 8117 * The expression used to compute the object being indexed, or `null` if this
index | 6609 * The expression used to compute the object being indexed, or `null` if this
index |
| 8118 * expression is part of a cascade expression. | 6610 * expression is part of a cascade expression. |
| 8119 */ | 6611 */ |
| 8120 Expression _target; | 6612 Expression _target; |
| 8121 | 6613 |
| 8122 /** | 6614 /** |
| 8123 * The period ("..") before a cascaded index expression, or `null` if this ind
ex expression | 6615 * The period ("..") before a cascaded index expression, or `null` if this ind
ex expression |
| 8124 * is not part of a cascade expression. | 6616 * is not part of a cascade expression. |
| 8125 */ | 6617 */ |
| 8126 Token _period; | 6618 Token period; |
| 8127 | 6619 |
| 8128 /** | 6620 /** |
| 8129 * The left square bracket. | 6621 * The left square bracket. |
| 8130 */ | 6622 */ |
| 8131 Token _leftBracket; | 6623 Token _leftBracket; |
| 8132 | 6624 |
| 8133 /** | 6625 /** |
| 8134 * The expression used to compute the index. | 6626 * The expression used to compute the index. |
| 8135 */ | 6627 */ |
| 8136 Expression _index; | 6628 Expression _index; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8152 * `null` if the AST structure has not been resolved or if the operator could
not be | 6644 * `null` if the AST structure has not been resolved or if the operator could
not be |
| 8153 * resolved. | 6645 * resolved. |
| 8154 */ | 6646 */ |
| 8155 MethodElement _propagatedElement; | 6647 MethodElement _propagatedElement; |
| 8156 | 6648 |
| 8157 /** | 6649 /** |
| 8158 * If this expression is both in a getter and setter context, the [AuxiliaryEl
ements] will | 6650 * If this expression is both in a getter and setter context, the [AuxiliaryEl
ements] will |
| 8159 * be set to hold onto the static and propagated information. The auxiliary el
ement will hold onto | 6651 * be set to hold onto the static and propagated information. The auxiliary el
ement will hold onto |
| 8160 * the elements from the getter context. | 6652 * the elements from the getter context. |
| 8161 */ | 6653 */ |
| 8162 AuxiliaryElements _auxiliaryElements = null; | 6654 AuxiliaryElements auxiliaryElements = null; |
| 8163 | 6655 |
| 8164 /** | 6656 /** |
| 8165 * Initialize a newly created index expression. | 6657 * Initialize a newly created index expression. |
| 8166 * | 6658 * |
| 8167 * @param target the expression used to compute the object being indexed | 6659 * @param target the expression used to compute the object being indexed |
| 8168 * @param leftBracket the left square bracket | 6660 * @param leftBracket the left square bracket |
| 8169 * @param index the expression used to compute the index | 6661 * @param index the expression used to compute the index |
| 8170 * @param rightBracket the right square bracket | 6662 * @param rightBracket the right square bracket |
| 8171 */ | 6663 */ |
| 8172 IndexExpression.forTarget_full(Expression target, Token leftBracket, Expressio
n index, Token rightBracket) { | 6664 IndexExpression.forTarget_full(Expression target, Token leftBracket, Expressio
n index, Token rightBracket) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8188 | 6680 |
| 8189 /** | 6681 /** |
| 8190 * Initialize a newly created index expression. | 6682 * Initialize a newly created index expression. |
| 8191 * | 6683 * |
| 8192 * @param period the period ("..") before a cascaded index expression | 6684 * @param period the period ("..") before a cascaded index expression |
| 8193 * @param leftBracket the left square bracket | 6685 * @param leftBracket the left square bracket |
| 8194 * @param index the expression used to compute the index | 6686 * @param index the expression used to compute the index |
| 8195 * @param rightBracket the right square bracket | 6687 * @param rightBracket the right square bracket |
| 8196 */ | 6688 */ |
| 8197 IndexExpression.forCascade_full(Token period, Token leftBracket, Expression in
dex, Token rightBracket) { | 6689 IndexExpression.forCascade_full(Token period, Token leftBracket, Expression in
dex, Token rightBracket) { |
| 8198 this._period = period; | 6690 this.period = period; |
| 8199 this._leftBracket = leftBracket; | 6691 this._leftBracket = leftBracket; |
| 8200 this._index = becomeParentOf(index); | 6692 this._index = becomeParentOf(index); |
| 8201 this._rightBracket = rightBracket; | 6693 this._rightBracket = rightBracket; |
| 8202 } | 6694 } |
| 8203 | 6695 |
| 8204 /** | 6696 /** |
| 8205 * Initialize a newly created index expression. | 6697 * Initialize a newly created index expression. |
| 8206 * | 6698 * |
| 8207 * @param period the period ("..") before a cascaded index expression | 6699 * @param period the period ("..") before a cascaded index expression |
| 8208 * @param leftBracket the left square bracket | 6700 * @param leftBracket the left square bracket |
| 8209 * @param index the expression used to compute the index | 6701 * @param index the expression used to compute the index |
| 8210 * @param rightBracket the right square bracket | 6702 * @param rightBracket the right square bracket |
| 8211 */ | 6703 */ |
| 8212 IndexExpression.forCascade({Token period, Token leftBracket, Expression index,
Token rightBracket}) : this.forCascade_full(period, leftBracket, index, rightBr
acket); | 6704 IndexExpression.forCascade({Token period, Token leftBracket, Expression index,
Token rightBracket}) : this.forCascade_full(period, leftBracket, index, rightBr
acket); |
| 8213 accept(ASTVisitor visitor) => visitor.visitIndexExpression(this); | 6705 accept(ASTVisitor visitor) => visitor.visitIndexExpression(this); |
| 8214 | |
| 8215 /** | |
| 8216 * Get the auxiliary elements, this will be `null` if the node is not in a get
ter and setter | |
| 8217 * context, or if it is not yet fully resolved. | |
| 8218 */ | |
| 8219 AuxiliaryElements get auxiliaryElements => _auxiliaryElements; | |
| 8220 Token get beginToken { | 6706 Token get beginToken { |
| 8221 if (_target != null) { | 6707 if (_target != null) { |
| 8222 return _target.beginToken; | 6708 return _target.beginToken; |
| 8223 } | 6709 } |
| 8224 return _period; | 6710 return period; |
| 8225 } | 6711 } |
| 8226 | 6712 |
| 8227 /** | 6713 /** |
| 8228 * Return the best element available for this operator. If resolution was able
to find a better | 6714 * Return the best element available for this operator. If resolution was able
to find a better |
| 8229 * element based on type propagation, that element will be returned. Otherwise
, the element found | 6715 * element based on type propagation, that element will be returned. Otherwise
, the element found |
| 8230 * using the result of static analysis will be returned. If resolution has not
been performed, | 6716 * using the result of static analysis will be returned. If resolution has not
been performed, |
| 8231 * then `null` will be returned. | 6717 * then `null` will be returned. |
| 8232 * | 6718 * |
| 8233 * @return the best element available for this operator | 6719 * @return the best element available for this operator |
| 8234 */ | 6720 */ |
| (...skipping 14 matching lines...) Expand all Loading... |
| 8249 Expression get index => _index; | 6735 Expression get index => _index; |
| 8250 | 6736 |
| 8251 /** | 6737 /** |
| 8252 * Return the left square bracket. | 6738 * Return the left square bracket. |
| 8253 * | 6739 * |
| 8254 * @return the left square bracket | 6740 * @return the left square bracket |
| 8255 */ | 6741 */ |
| 8256 Token get leftBracket => _leftBracket; | 6742 Token get leftBracket => _leftBracket; |
| 8257 | 6743 |
| 8258 /** | 6744 /** |
| 8259 * Return the period ("..") before a cascaded index expression, or `null` if t
his index | |
| 8260 * expression is not part of a cascade expression. | |
| 8261 * | |
| 8262 * @return the period ("..") before a cascaded index expression | |
| 8263 */ | |
| 8264 Token get period => _period; | |
| 8265 | |
| 8266 /** | |
| 8267 * Return the element associated with the operator based on the propagated typ
e of the target, or | 6745 * Return the element associated with the operator based on the propagated typ
e of the target, or |
| 8268 * `null` if the AST structure has not been resolved or if the operator could
not be | 6746 * `null` if the AST structure has not been resolved or if the operator could
not be |
| 8269 * resolved. One example of the latter case is an operator that is not defined
for the type of the | 6747 * resolved. One example of the latter case is an operator that is not defined
for the type of the |
| 8270 * target. | 6748 * target. |
| 8271 * | 6749 * |
| 8272 * @return the element associated with this operator | 6750 * @return the element associated with this operator |
| 8273 */ | 6751 */ |
| 8274 MethodElement get propagatedElement => _propagatedElement; | 6752 MethodElement get propagatedElement => _propagatedElement; |
| 8275 | 6753 |
| 8276 /** | 6754 /** |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8365 } | 6843 } |
| 8366 bool get isAssignable => true; | 6844 bool get isAssignable => true; |
| 8367 | 6845 |
| 8368 /** | 6846 /** |
| 8369 * Return `true` if this expression is cascaded. If it is, then the target of
this | 6847 * Return `true` if this expression is cascaded. If it is, then the target of
this |
| 8370 * expression is not stored locally but is stored in the nearest ancestor that
is a | 6848 * expression is not stored locally but is stored in the nearest ancestor that
is a |
| 8371 * [CascadeExpression]. | 6849 * [CascadeExpression]. |
| 8372 * | 6850 * |
| 8373 * @return `true` if this expression is cascaded | 6851 * @return `true` if this expression is cascaded |
| 8374 */ | 6852 */ |
| 8375 bool get isCascaded => _period != null; | 6853 bool get isCascaded => period != null; |
| 8376 | |
| 8377 /** | |
| 8378 * Set the auxiliary elements. | |
| 8379 */ | |
| 8380 void set auxiliaryElements(AuxiliaryElements auxiliaryElements2) { | |
| 8381 this._auxiliaryElements = auxiliaryElements2; | |
| 8382 } | |
| 8383 | 6854 |
| 8384 /** | 6855 /** |
| 8385 * Set the expression used to compute the index to the given expression. | 6856 * Set the expression used to compute the index to the given expression. |
| 8386 * | 6857 * |
| 8387 * @param expression the expression used to compute the index | 6858 * @param expression the expression used to compute the index |
| 8388 */ | 6859 */ |
| 8389 void set index(Expression expression) { | 6860 void set index(Expression expression) { |
| 8390 _index = becomeParentOf(expression); | 6861 _index = becomeParentOf(expression); |
| 8391 } | 6862 } |
| 8392 | 6863 |
| 8393 /** | 6864 /** |
| 8394 * Set the left square bracket to the given token. | 6865 * Set the left square bracket to the given token. |
| 8395 * | 6866 * |
| 8396 * @param bracket the left square bracket | 6867 * @param bracket the left square bracket |
| 8397 */ | 6868 */ |
| 8398 void set leftBracket(Token bracket) { | 6869 void set leftBracket(Token bracket) { |
| 8399 _leftBracket = bracket; | 6870 _leftBracket = bracket; |
| 8400 } | 6871 } |
| 8401 | 6872 |
| 8402 /** | 6873 /** |
| 8403 * Set the period ("..") before a cascaded index expression to the given token
. | |
| 8404 * | |
| 8405 * @param period the period ("..") before a cascaded index expression | |
| 8406 */ | |
| 8407 void set period(Token period2) { | |
| 8408 this._period = period2; | |
| 8409 } | |
| 8410 | |
| 8411 /** | |
| 8412 * Set the element associated with the operator based on the propagated type o
f the target to the | 6874 * Set the element associated with the operator based on the propagated type o
f the target to the |
| 8413 * given element. | 6875 * given element. |
| 8414 * | 6876 * |
| 8415 * @param element the element to be associated with this operator | 6877 * @param element the element to be associated with this operator |
| 8416 */ | 6878 */ |
| 8417 void set propagatedElement(MethodElement element) { | 6879 void set propagatedElement(MethodElement element) { |
| 8418 _propagatedElement = element; | 6880 _propagatedElement = element; |
| 8419 } | 6881 } |
| 8420 | 6882 |
| 8421 /** | 6883 /** |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8501 * ('new' | 'const') [TypeName] ('.' [SimpleIdentifier])? [ArgumentList] | 6963 * ('new' | 'const') [TypeName] ('.' [SimpleIdentifier])? [ArgumentList] |
| 8502 * </pre> | 6964 * </pre> |
| 8503 * | 6965 * |
| 8504 * @coverage dart.engine.ast | 6966 * @coverage dart.engine.ast |
| 8505 */ | 6967 */ |
| 8506 class InstanceCreationExpression extends Expression { | 6968 class InstanceCreationExpression extends Expression { |
| 8507 | 6969 |
| 8508 /** | 6970 /** |
| 8509 * The keyword used to indicate how an object should be created. | 6971 * The keyword used to indicate how an object should be created. |
| 8510 */ | 6972 */ |
| 8511 Token _keyword; | 6973 Token keyword; |
| 8512 | 6974 |
| 8513 /** | 6975 /** |
| 8514 * The name of the constructor to be invoked. | 6976 * The name of the constructor to be invoked. |
| 8515 */ | 6977 */ |
| 8516 ConstructorName _constructorName; | 6978 ConstructorName constructorName; |
| 8517 | 6979 |
| 8518 /** | 6980 /** |
| 8519 * The list of arguments to the constructor. | 6981 * The list of arguments to the constructor. |
| 8520 */ | 6982 */ |
| 8521 ArgumentList _argumentList; | 6983 ArgumentList _argumentList; |
| 8522 | 6984 |
| 8523 /** | 6985 /** |
| 8524 * The element associated with the constructor based on static type informatio
n, or `null` | 6986 * The element associated with the constructor based on static type informatio
n, or `null` |
| 8525 * if the AST structure has not been resolved or if the constructor could not
be resolved. | 6987 * if the AST structure has not been resolved or if the constructor could not
be resolved. |
| 8526 */ | 6988 */ |
| 8527 ConstructorElement _staticElement; | 6989 ConstructorElement staticElement; |
| 8528 | 6990 |
| 8529 /** | 6991 /** |
| 8530 * The element associated with the constructor based on propagated type inform
ation, or | 6992 * The element associated with the constructor based on propagated type inform
ation, or |
| 8531 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | 6993 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be |
| 8532 * resolved. | 6994 * resolved. |
| 8533 */ | 6995 */ |
| 8534 ConstructorElement _propagatedElement; | 6996 ConstructorElement element; |
| 8535 | 6997 |
| 8536 /** | 6998 /** |
| 8537 * Initialize a newly created instance creation expression. | 6999 * Initialize a newly created instance creation expression. |
| 8538 * | 7000 * |
| 8539 * @param keyword the keyword used to indicate how an object should be created | 7001 * @param keyword the keyword used to indicate how an object should be created |
| 8540 * @param constructorName the name of the constructor to be invoked | 7002 * @param constructorName the name of the constructor to be invoked |
| 8541 * @param argumentList the list of arguments to the constructor | 7003 * @param argumentList the list of arguments to the constructor |
| 8542 */ | 7004 */ |
| 8543 InstanceCreationExpression.full(Token keyword, ConstructorName constructorName
, ArgumentList argumentList) { | 7005 InstanceCreationExpression.full(Token keyword, ConstructorName constructorName
, ArgumentList argumentList) { |
| 8544 this._keyword = keyword; | 7006 this.keyword = keyword; |
| 8545 this._constructorName = becomeParentOf(constructorName); | 7007 this.constructorName = becomeParentOf(constructorName); |
| 8546 this._argumentList = becomeParentOf(argumentList); | 7008 this._argumentList = becomeParentOf(argumentList); |
| 8547 } | 7009 } |
| 8548 | 7010 |
| 8549 /** | 7011 /** |
| 8550 * Initialize a newly created instance creation expression. | 7012 * Initialize a newly created instance creation expression. |
| 8551 * | 7013 * |
| 8552 * @param keyword the keyword used to indicate how an object should be created | 7014 * @param keyword the keyword used to indicate how an object should be created |
| 8553 * @param constructorName the name of the constructor to be invoked | 7015 * @param constructorName the name of the constructor to be invoked |
| 8554 * @param argumentList the list of arguments to the constructor | 7016 * @param argumentList the list of arguments to the constructor |
| 8555 */ | 7017 */ |
| 8556 InstanceCreationExpression({Token keyword, ConstructorName constructorName, Ar
gumentList argumentList}) : this.full(keyword, constructorName, argumentList); | 7018 InstanceCreationExpression({Token keyword, ConstructorName constructorName, Ar
gumentList argumentList}) : this.full(keyword, constructorName, argumentList); |
| 8557 accept(ASTVisitor visitor) => visitor.visitInstanceCreationExpression(this); | 7019 accept(ASTVisitor visitor) => visitor.visitInstanceCreationExpression(this); |
| 8558 | 7020 |
| 8559 /** | 7021 /** |
| 8560 * Return the list of arguments to the constructor. | 7022 * Return the list of arguments to the constructor. |
| 8561 * | 7023 * |
| 8562 * @return the list of arguments to the constructor | 7024 * @return the list of arguments to the constructor |
| 8563 */ | 7025 */ |
| 8564 ArgumentList get argumentList => _argumentList; | 7026 ArgumentList get argumentList => _argumentList; |
| 8565 Token get beginToken => _keyword; | 7027 Token get beginToken => keyword; |
| 8566 | |
| 8567 /** | |
| 8568 * Return the name of the constructor to be invoked. | |
| 8569 * | |
| 8570 * @return the name of the constructor to be invoked | |
| 8571 */ | |
| 8572 ConstructorName get constructorName => _constructorName; | |
| 8573 | |
| 8574 /** | |
| 8575 * Return the element associated with the constructor based on propagated type
information, or | |
| 8576 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | |
| 8577 * resolved. | |
| 8578 * | |
| 8579 * @return the element associated with the constructor | |
| 8580 */ | |
| 8581 ConstructorElement get element => _propagatedElement; | |
| 8582 Token get endToken => _argumentList.endToken; | 7028 Token get endToken => _argumentList.endToken; |
| 8583 | 7029 |
| 8584 /** | 7030 /** |
| 8585 * Return the keyword used to indicate how an object should be created. | |
| 8586 * | |
| 8587 * @return the keyword used to indicate how an object should be created | |
| 8588 */ | |
| 8589 Token get keyword => _keyword; | |
| 8590 | |
| 8591 /** | |
| 8592 * Return the element associated with the constructor based on static type inf
ormation, or | |
| 8593 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | |
| 8594 * resolved. | |
| 8595 * | |
| 8596 * @return the element associated with the constructor | |
| 8597 */ | |
| 8598 ConstructorElement get staticElement => _staticElement; | |
| 8599 | |
| 8600 /** | |
| 8601 * Return `true` if this creation expression is used to invoke a constant cons
tructor. | 7031 * Return `true` if this creation expression is used to invoke a constant cons
tructor. |
| 8602 * | 7032 * |
| 8603 * @return `true` if this creation expression is used to invoke a constant con
structor | 7033 * @return `true` if this creation expression is used to invoke a constant con
structor |
| 8604 */ | 7034 */ |
| 8605 bool get isConst => _keyword is KeywordToken && identical(((_keyword as Keywor
dToken)).keyword, Keyword.CONST); | 7035 bool get isConst => keyword is KeywordToken && identical(((keyword as KeywordT
oken)).keyword, Keyword.CONST); |
| 8606 | 7036 |
| 8607 /** | 7037 /** |
| 8608 * Set the list of arguments to the constructor to the given list. | 7038 * Set the list of arguments to the constructor to the given list. |
| 8609 * | 7039 * |
| 8610 * @param argumentList the list of arguments to the constructor | 7040 * @param argumentList the list of arguments to the constructor |
| 8611 */ | 7041 */ |
| 8612 void set argumentList(ArgumentList argumentList2) { | 7042 void set argumentList(ArgumentList argumentList2) { |
| 8613 this._argumentList = becomeParentOf(argumentList2); | 7043 this._argumentList = becomeParentOf(argumentList2); |
| 8614 } | 7044 } |
| 8615 | |
| 8616 /** | |
| 8617 * Set the name of the constructor to be invoked to the given name. | |
| 8618 * | |
| 8619 * @param constructorName the name of the constructor to be invoked | |
| 8620 */ | |
| 8621 void set constructorName(ConstructorName constructorName2) { | |
| 8622 this._constructorName = constructorName2; | |
| 8623 } | |
| 8624 | |
| 8625 /** | |
| 8626 * Set the element associated with the constructor based on propagated type in
formation to the | |
| 8627 * given element. | |
| 8628 * | |
| 8629 * @param element the element to be associated with the constructor | |
| 8630 */ | |
| 8631 void set element(ConstructorElement element2) { | |
| 8632 this._propagatedElement = element2; | |
| 8633 } | |
| 8634 | |
| 8635 /** | |
| 8636 * Set the keyword used to indicate how an object should be created to the giv
en keyword. | |
| 8637 * | |
| 8638 * @param keyword the keyword used to indicate how an object should be created | |
| 8639 */ | |
| 8640 void set keyword(Token keyword2) { | |
| 8641 this._keyword = keyword2; | |
| 8642 } | |
| 8643 | |
| 8644 /** | |
| 8645 * Set the element associated with the constructor based on static type inform
ation to the given | |
| 8646 * element. | |
| 8647 * | |
| 8648 * @param element the element to be associated with the constructor | |
| 8649 */ | |
| 8650 void set staticElement(ConstructorElement element) { | |
| 8651 this._staticElement = element; | |
| 8652 } | |
| 8653 void visitChildren(ASTVisitor visitor) { | 7045 void visitChildren(ASTVisitor visitor) { |
| 8654 safelyVisitChild(_constructorName, visitor); | 7046 safelyVisitChild(constructorName, visitor); |
| 8655 safelyVisitChild(_argumentList, visitor); | 7047 safelyVisitChild(_argumentList, visitor); |
| 8656 } | 7048 } |
| 8657 } | 7049 } |
| 8658 /** | 7050 /** |
| 8659 * Instances of the class `IntegerLiteral` represent an integer literal expressi
on. | 7051 * Instances of the class `IntegerLiteral` represent an integer literal expressi
on. |
| 8660 * | 7052 * |
| 8661 * <pre> | 7053 * <pre> |
| 8662 * integerLiteral ::= | 7054 * integerLiteral ::= |
| 8663 * decimalIntegerLiteral | 7055 * decimalIntegerLiteral |
| 8664 * | hexidecimalIntegerLiteral | 7056 * | hexidecimalIntegerLiteral |
| 8665 * | 7057 * |
| 8666 * decimalIntegerLiteral ::= | 7058 * decimalIntegerLiteral ::= |
| 8667 * decimalDigit+ | 7059 * decimalDigit+ |
| 8668 * | 7060 * |
| 8669 * hexidecimalIntegerLiteral ::= | 7061 * hexidecimalIntegerLiteral ::= |
| 8670 * '0x' hexidecimalDigit+ | 7062 * '0x' hexidecimalDigit+ |
| 8671 * | '0X' hexidecimalDigit+ | 7063 * | '0X' hexidecimalDigit+ |
| 8672 * </pre> | 7064 * </pre> |
| 8673 * | 7065 * |
| 8674 * @coverage dart.engine.ast | 7066 * @coverage dart.engine.ast |
| 8675 */ | 7067 */ |
| 8676 class IntegerLiteral extends Literal { | 7068 class IntegerLiteral extends Literal { |
| 8677 | 7069 |
| 8678 /** | 7070 /** |
| 8679 * The token representing the literal. | 7071 * The token representing the literal. |
| 8680 */ | 7072 */ |
| 8681 Token _literal; | 7073 Token literal; |
| 8682 | 7074 |
| 8683 /** | 7075 /** |
| 8684 * The value of the literal. | 7076 * The value of the literal. |
| 8685 */ | 7077 */ |
| 8686 int _value = 0; | 7078 int value = 0; |
| 8687 | 7079 |
| 8688 /** | 7080 /** |
| 8689 * Initialize a newly created integer literal. | 7081 * Initialize a newly created integer literal. |
| 8690 * | 7082 * |
| 8691 * @param literal the token representing the literal | 7083 * @param literal the token representing the literal |
| 8692 * @param value the value of the literal | 7084 * @param value the value of the literal |
| 8693 */ | 7085 */ |
| 8694 IntegerLiteral.full(Token literal, int value) { | 7086 IntegerLiteral.full(Token literal, int value) { |
| 8695 this._literal = literal; | 7087 this.literal = literal; |
| 8696 this._value = value; | 7088 this.value = value; |
| 8697 } | 7089 } |
| 8698 | 7090 |
| 8699 /** | 7091 /** |
| 8700 * Initialize a newly created integer literal. | 7092 * Initialize a newly created integer literal. |
| 8701 * | 7093 * |
| 8702 * @param literal the token representing the literal | 7094 * @param literal the token representing the literal |
| 8703 * @param value the value of the literal | 7095 * @param value the value of the literal |
| 8704 */ | 7096 */ |
| 8705 IntegerLiteral({Token literal, int value}) : this.full(literal, value); | 7097 IntegerLiteral({Token literal, int value}) : this.full(literal, value); |
| 8706 accept(ASTVisitor visitor) => visitor.visitIntegerLiteral(this); | 7098 accept(ASTVisitor visitor) => visitor.visitIntegerLiteral(this); |
| 8707 Token get beginToken => _literal; | 7099 Token get beginToken => literal; |
| 8708 Token get endToken => _literal; | 7100 Token get endToken => literal; |
| 8709 | |
| 8710 /** | |
| 8711 * Return the token representing the literal. | |
| 8712 * | |
| 8713 * @return the token representing the literal | |
| 8714 */ | |
| 8715 Token get literal => _literal; | |
| 8716 | |
| 8717 /** | |
| 8718 * Return the value of the literal. | |
| 8719 * | |
| 8720 * @return the value of the literal | |
| 8721 */ | |
| 8722 int get value => _value; | |
| 8723 | |
| 8724 /** | |
| 8725 * Set the token representing the literal to the given token. | |
| 8726 * | |
| 8727 * @param literal the token representing the literal | |
| 8728 */ | |
| 8729 void set literal(Token literal2) { | |
| 8730 this._literal = literal2; | |
| 8731 } | |
| 8732 | |
| 8733 /** | |
| 8734 * Set the value of the literal to the given value. | |
| 8735 * | |
| 8736 * @param value the value of the literal | |
| 8737 */ | |
| 8738 void set value(int value2) { | |
| 8739 this._value = value2; | |
| 8740 } | |
| 8741 void visitChildren(ASTVisitor visitor) { | 7101 void visitChildren(ASTVisitor visitor) { |
| 8742 } | 7102 } |
| 8743 } | 7103 } |
| 8744 /** | 7104 /** |
| 8745 * The abstract class `InterpolationElement` defines the behavior common to elem
ents within a | 7105 * The abstract class `InterpolationElement` defines the behavior common to elem
ents within a |
| 8746 * [StringInterpolation]. | 7106 * [StringInterpolation]. |
| 8747 * | 7107 * |
| 8748 * <pre> | 7108 * <pre> |
| 8749 * interpolationElement ::= | 7109 * interpolationElement ::= |
| 8750 * [InterpolationExpression] | 7110 * [InterpolationExpression] |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8766 * </pre> | 7126 * </pre> |
| 8767 * | 7127 * |
| 8768 * @coverage dart.engine.ast | 7128 * @coverage dart.engine.ast |
| 8769 */ | 7129 */ |
| 8770 class InterpolationExpression extends InterpolationElement { | 7130 class InterpolationExpression extends InterpolationElement { |
| 8771 | 7131 |
| 8772 /** | 7132 /** |
| 8773 * The token used to introduce the interpolation expression; either '$' if the
expression is a | 7133 * The token used to introduce the interpolation expression; either '$' if the
expression is a |
| 8774 * simple identifier or '${' if the expression is a full expression. | 7134 * simple identifier or '${' if the expression is a full expression. |
| 8775 */ | 7135 */ |
| 8776 Token _leftBracket; | 7136 Token leftBracket; |
| 8777 | 7137 |
| 8778 /** | 7138 /** |
| 8779 * The expression to be evaluated for the value to be converted into a string. | 7139 * The expression to be evaluated for the value to be converted into a string. |
| 8780 */ | 7140 */ |
| 8781 Expression _expression; | 7141 Expression _expression; |
| 8782 | 7142 |
| 8783 /** | 7143 /** |
| 8784 * The right curly bracket, or `null` if the expression is an identifier witho
ut brackets. | 7144 * The right curly bracket, or `null` if the expression is an identifier witho
ut brackets. |
| 8785 */ | 7145 */ |
| 8786 Token _rightBracket; | 7146 Token rightBracket; |
| 8787 | 7147 |
| 8788 /** | 7148 /** |
| 8789 * Initialize a newly created interpolation expression. | 7149 * Initialize a newly created interpolation expression. |
| 8790 * | 7150 * |
| 8791 * @param leftBracket the left curly bracket | 7151 * @param leftBracket the left curly bracket |
| 8792 * @param expression the expression to be evaluated for the value to be conver
ted into a string | 7152 * @param expression the expression to be evaluated for the value to be conver
ted into a string |
| 8793 * @param rightBracket the right curly bracket | 7153 * @param rightBracket the right curly bracket |
| 8794 */ | 7154 */ |
| 8795 InterpolationExpression.full(Token leftBracket, Expression expression, Token r
ightBracket) { | 7155 InterpolationExpression.full(Token leftBracket, Expression expression, Token r
ightBracket) { |
| 8796 this._leftBracket = leftBracket; | 7156 this.leftBracket = leftBracket; |
| 8797 this._expression = becomeParentOf(expression); | 7157 this._expression = becomeParentOf(expression); |
| 8798 this._rightBracket = rightBracket; | 7158 this.rightBracket = rightBracket; |
| 8799 } | 7159 } |
| 8800 | 7160 |
| 8801 /** | 7161 /** |
| 8802 * Initialize a newly created interpolation expression. | 7162 * Initialize a newly created interpolation expression. |
| 8803 * | 7163 * |
| 8804 * @param leftBracket the left curly bracket | 7164 * @param leftBracket the left curly bracket |
| 8805 * @param expression the expression to be evaluated for the value to be conver
ted into a string | 7165 * @param expression the expression to be evaluated for the value to be conver
ted into a string |
| 8806 * @param rightBracket the right curly bracket | 7166 * @param rightBracket the right curly bracket |
| 8807 */ | 7167 */ |
| 8808 InterpolationExpression({Token leftBracket, Expression expression, Token right
Bracket}) : this.full(leftBracket, expression, rightBracket); | 7168 InterpolationExpression({Token leftBracket, Expression expression, Token right
Bracket}) : this.full(leftBracket, expression, rightBracket); |
| 8809 accept(ASTVisitor visitor) => visitor.visitInterpolationExpression(this); | 7169 accept(ASTVisitor visitor) => visitor.visitInterpolationExpression(this); |
| 8810 Token get beginToken => _leftBracket; | 7170 Token get beginToken => leftBracket; |
| 8811 Token get endToken { | 7171 Token get endToken { |
| 8812 if (_rightBracket != null) { | 7172 if (rightBracket != null) { |
| 8813 return _rightBracket; | 7173 return rightBracket; |
| 8814 } | 7174 } |
| 8815 return _expression.endToken; | 7175 return _expression.endToken; |
| 8816 } | 7176 } |
| 8817 | 7177 |
| 8818 /** | 7178 /** |
| 8819 * Return the expression to be evaluated for the value to be converted into a
string. | 7179 * Return the expression to be evaluated for the value to be converted into a
string. |
| 8820 * | 7180 * |
| 8821 * @return the expression to be evaluated for the value to be converted into a
string | 7181 * @return the expression to be evaluated for the value to be converted into a
string |
| 8822 */ | 7182 */ |
| 8823 Expression get expression => _expression; | 7183 Expression get expression => _expression; |
| 8824 | 7184 |
| 8825 /** | 7185 /** |
| 8826 * Return the left curly bracket. | |
| 8827 * | |
| 8828 * @return the left curly bracket | |
| 8829 */ | |
| 8830 Token get leftBracket => _leftBracket; | |
| 8831 | |
| 8832 /** | |
| 8833 * Return the right curly bracket. | |
| 8834 * | |
| 8835 * @return the right curly bracket | |
| 8836 */ | |
| 8837 Token get rightBracket => _rightBracket; | |
| 8838 | |
| 8839 /** | |
| 8840 * Set the expression to be evaluated for the value to be converted into a str
ing to the given | 7186 * Set the expression to be evaluated for the value to be converted into a str
ing to the given |
| 8841 * expression. | 7187 * expression. |
| 8842 * | 7188 * |
| 8843 * @param expression the expression to be evaluated for the value to be conver
ted into a string | 7189 * @param expression the expression to be evaluated for the value to be conver
ted into a string |
| 8844 */ | 7190 */ |
| 8845 void set expression(Expression expression2) { | 7191 void set expression(Expression expression2) { |
| 8846 this._expression = becomeParentOf(expression2); | 7192 this._expression = becomeParentOf(expression2); |
| 8847 } | 7193 } |
| 8848 | |
| 8849 /** | |
| 8850 * Set the left curly bracket to the given token. | |
| 8851 * | |
| 8852 * @param leftBracket the left curly bracket | |
| 8853 */ | |
| 8854 void set leftBracket(Token leftBracket2) { | |
| 8855 this._leftBracket = leftBracket2; | |
| 8856 } | |
| 8857 | |
| 8858 /** | |
| 8859 * Set the right curly bracket to the given token. | |
| 8860 * | |
| 8861 * @param rightBracket the right curly bracket | |
| 8862 */ | |
| 8863 void set rightBracket(Token rightBracket2) { | |
| 8864 this._rightBracket = rightBracket2; | |
| 8865 } | |
| 8866 void visitChildren(ASTVisitor visitor) { | 7194 void visitChildren(ASTVisitor visitor) { |
| 8867 safelyVisitChild(_expression, visitor); | 7195 safelyVisitChild(_expression, visitor); |
| 8868 } | 7196 } |
| 8869 } | 7197 } |
| 8870 /** | 7198 /** |
| 8871 * Instances of the class `InterpolationString` represent a non-empty substring
of an | 7199 * Instances of the class `InterpolationString` represent a non-empty substring
of an |
| 8872 * interpolated string. | 7200 * interpolated string. |
| 8873 * | 7201 * |
| 8874 * <pre> | 7202 * <pre> |
| 8875 * interpolationString ::= | 7203 * interpolationString ::= |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8959 class IsExpression extends Expression { | 7287 class IsExpression extends Expression { |
| 8960 | 7288 |
| 8961 /** | 7289 /** |
| 8962 * The expression used to compute the value whose type is being tested. | 7290 * The expression used to compute the value whose type is being tested. |
| 8963 */ | 7291 */ |
| 8964 Expression _expression; | 7292 Expression _expression; |
| 8965 | 7293 |
| 8966 /** | 7294 /** |
| 8967 * The is operator. | 7295 * The is operator. |
| 8968 */ | 7296 */ |
| 8969 Token _isOperator; | 7297 Token isOperator; |
| 8970 | 7298 |
| 8971 /** | 7299 /** |
| 8972 * The not operator, or `null` if the sense of the test is not negated. | 7300 * The not operator, or `null` if the sense of the test is not negated. |
| 8973 */ | 7301 */ |
| 8974 Token _notOperator; | 7302 Token notOperator; |
| 8975 | 7303 |
| 8976 /** | 7304 /** |
| 8977 * The name of the type being tested for. | 7305 * The name of the type being tested for. |
| 8978 */ | 7306 */ |
| 8979 TypeName _type; | 7307 TypeName _type; |
| 8980 | 7308 |
| 8981 /** | 7309 /** |
| 8982 * Initialize a newly created is expression. | 7310 * Initialize a newly created is expression. |
| 8983 * | 7311 * |
| 8984 * @param expression the expression used to compute the value whose type is be
ing tested | 7312 * @param expression the expression used to compute the value whose type is be
ing tested |
| 8985 * @param isOperator the is operator | 7313 * @param isOperator the is operator |
| 8986 * @param notOperator the not operator, or `null` if the sense of the test is
not negated | 7314 * @param notOperator the not operator, or `null` if the sense of the test is
not negated |
| 8987 * @param type the name of the type being tested for | 7315 * @param type the name of the type being tested for |
| 8988 */ | 7316 */ |
| 8989 IsExpression.full(Expression expression, Token isOperator, Token notOperator,
TypeName type) { | 7317 IsExpression.full(Expression expression, Token isOperator, Token notOperator,
TypeName type) { |
| 8990 this._expression = becomeParentOf(expression); | 7318 this._expression = becomeParentOf(expression); |
| 8991 this._isOperator = isOperator; | 7319 this.isOperator = isOperator; |
| 8992 this._notOperator = notOperator; | 7320 this.notOperator = notOperator; |
| 8993 this._type = becomeParentOf(type); | 7321 this._type = becomeParentOf(type); |
| 8994 } | 7322 } |
| 8995 | 7323 |
| 8996 /** | 7324 /** |
| 8997 * Initialize a newly created is expression. | 7325 * Initialize a newly created is expression. |
| 8998 * | 7326 * |
| 8999 * @param expression the expression used to compute the value whose type is be
ing tested | 7327 * @param expression the expression used to compute the value whose type is be
ing tested |
| 9000 * @param isOperator the is operator | 7328 * @param isOperator the is operator |
| 9001 * @param notOperator the not operator, or `null` if the sense of the test is
not negated | 7329 * @param notOperator the not operator, or `null` if the sense of the test is
not negated |
| 9002 * @param type the name of the type being tested for | 7330 * @param type the name of the type being tested for |
| 9003 */ | 7331 */ |
| 9004 IsExpression({Expression expression, Token isOperator, Token notOperator, Type
Name type}) : this.full(expression, isOperator, notOperator, type); | 7332 IsExpression({Expression expression, Token isOperator, Token notOperator, Type
Name type}) : this.full(expression, isOperator, notOperator, type); |
| 9005 accept(ASTVisitor visitor) => visitor.visitIsExpression(this); | 7333 accept(ASTVisitor visitor) => visitor.visitIsExpression(this); |
| 9006 Token get beginToken => _expression.beginToken; | 7334 Token get beginToken => _expression.beginToken; |
| 9007 Token get endToken => _type.endToken; | 7335 Token get endToken => _type.endToken; |
| 9008 | 7336 |
| 9009 /** | 7337 /** |
| 9010 * Return the expression used to compute the value whose type is being tested. | 7338 * Return the expression used to compute the value whose type is being tested. |
| 9011 * | 7339 * |
| 9012 * @return the expression used to compute the value whose type is being tested | 7340 * @return the expression used to compute the value whose type is being tested |
| 9013 */ | 7341 */ |
| 9014 Expression get expression => _expression; | 7342 Expression get expression => _expression; |
| 9015 | 7343 |
| 9016 /** | 7344 /** |
| 9017 * Return the is operator being applied. | |
| 9018 * | |
| 9019 * @return the is operator being applied | |
| 9020 */ | |
| 9021 Token get isOperator => _isOperator; | |
| 9022 | |
| 9023 /** | |
| 9024 * Return the not operator being applied. | |
| 9025 * | |
| 9026 * @return the not operator being applied | |
| 9027 */ | |
| 9028 Token get notOperator => _notOperator; | |
| 9029 | |
| 9030 /** | |
| 9031 * Return the name of the type being tested for. | 7345 * Return the name of the type being tested for. |
| 9032 * | 7346 * |
| 9033 * @return the name of the type being tested for | 7347 * @return the name of the type being tested for |
| 9034 */ | 7348 */ |
| 9035 TypeName get type => _type; | 7349 TypeName get type => _type; |
| 9036 | 7350 |
| 9037 /** | 7351 /** |
| 9038 * Set the expression used to compute the value whose type is being tested to
the given | 7352 * Set the expression used to compute the value whose type is being tested to
the given |
| 9039 * expression. | 7353 * expression. |
| 9040 * | 7354 * |
| 9041 * @param expression the expression used to compute the value whose type is be
ing tested | 7355 * @param expression the expression used to compute the value whose type is be
ing tested |
| 9042 */ | 7356 */ |
| 9043 void set expression(Expression expression2) { | 7357 void set expression(Expression expression2) { |
| 9044 this._expression = becomeParentOf(expression2); | 7358 this._expression = becomeParentOf(expression2); |
| 9045 } | 7359 } |
| 9046 | 7360 |
| 9047 /** | 7361 /** |
| 9048 * Set the is operator being applied to the given operator. | |
| 9049 * | |
| 9050 * @param isOperator the is operator being applied | |
| 9051 */ | |
| 9052 void set isOperator(Token isOperator2) { | |
| 9053 this._isOperator = isOperator2; | |
| 9054 } | |
| 9055 | |
| 9056 /** | |
| 9057 * Set the not operator being applied to the given operator. | |
| 9058 * | |
| 9059 * @param notOperator the is operator being applied | |
| 9060 */ | |
| 9061 void set notOperator(Token notOperator2) { | |
| 9062 this._notOperator = notOperator2; | |
| 9063 } | |
| 9064 | |
| 9065 /** | |
| 9066 * Set the name of the type being tested for to the given name. | 7362 * Set the name of the type being tested for to the given name. |
| 9067 * | 7363 * |
| 9068 * @param name the name of the type being tested for | 7364 * @param name the name of the type being tested for |
| 9069 */ | 7365 */ |
| 9070 void set type(TypeName name) { | 7366 void set type(TypeName name) { |
| 9071 this._type = becomeParentOf(name); | 7367 this._type = becomeParentOf(name); |
| 9072 } | 7368 } |
| 9073 void visitChildren(ASTVisitor visitor) { | 7369 void visitChildren(ASTVisitor visitor) { |
| 9074 safelyVisitChild(_expression, visitor); | 7370 safelyVisitChild(_expression, visitor); |
| 9075 safelyVisitChild(_type, visitor); | 7371 safelyVisitChild(_type, visitor); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 9088 class Label extends ASTNode { | 7384 class Label extends ASTNode { |
| 9089 | 7385 |
| 9090 /** | 7386 /** |
| 9091 * The label being associated with the statement. | 7387 * The label being associated with the statement. |
| 9092 */ | 7388 */ |
| 9093 SimpleIdentifier _label; | 7389 SimpleIdentifier _label; |
| 9094 | 7390 |
| 9095 /** | 7391 /** |
| 9096 * The colon that separates the label from the statement. | 7392 * The colon that separates the label from the statement. |
| 9097 */ | 7393 */ |
| 9098 Token _colon; | 7394 Token colon; |
| 9099 | 7395 |
| 9100 /** | 7396 /** |
| 9101 * Initialize a newly created label. | 7397 * Initialize a newly created label. |
| 9102 * | 7398 * |
| 9103 * @param label the label being applied | 7399 * @param label the label being applied |
| 9104 * @param colon the colon that separates the label from whatever follows | 7400 * @param colon the colon that separates the label from whatever follows |
| 9105 */ | 7401 */ |
| 9106 Label.full(SimpleIdentifier label, Token colon) { | 7402 Label.full(SimpleIdentifier label, Token colon) { |
| 9107 this._label = becomeParentOf(label); | 7403 this._label = becomeParentOf(label); |
| 9108 this._colon = colon; | 7404 this.colon = colon; |
| 9109 } | 7405 } |
| 9110 | 7406 |
| 9111 /** | 7407 /** |
| 9112 * Initialize a newly created label. | 7408 * Initialize a newly created label. |
| 9113 * | 7409 * |
| 9114 * @param label the label being applied | 7410 * @param label the label being applied |
| 9115 * @param colon the colon that separates the label from whatever follows | 7411 * @param colon the colon that separates the label from whatever follows |
| 9116 */ | 7412 */ |
| 9117 Label({SimpleIdentifier label, Token colon}) : this.full(label, colon); | 7413 Label({SimpleIdentifier label, Token colon}) : this.full(label, colon); |
| 9118 accept(ASTVisitor visitor) => visitor.visitLabel(this); | 7414 accept(ASTVisitor visitor) => visitor.visitLabel(this); |
| 9119 Token get beginToken => _label.beginToken; | 7415 Token get beginToken => _label.beginToken; |
| 9120 | 7416 Token get endToken => colon; |
| 9121 /** | |
| 9122 * Return the colon that separates the label from the statement. | |
| 9123 * | |
| 9124 * @return the colon that separates the label from the statement | |
| 9125 */ | |
| 9126 Token get colon => _colon; | |
| 9127 Token get endToken => _colon; | |
| 9128 | 7417 |
| 9129 /** | 7418 /** |
| 9130 * Return the label being associated with the statement. | 7419 * Return the label being associated with the statement. |
| 9131 * | 7420 * |
| 9132 * @return the label being associated with the statement | 7421 * @return the label being associated with the statement |
| 9133 */ | 7422 */ |
| 9134 SimpleIdentifier get label => _label; | 7423 SimpleIdentifier get label => _label; |
| 9135 | 7424 |
| 9136 /** | 7425 /** |
| 9137 * Set the colon that separates the label from the statement to the given toke
n. | |
| 9138 * | |
| 9139 * @param colon the colon that separates the label from the statement | |
| 9140 */ | |
| 9141 void set colon(Token colon2) { | |
| 9142 this._colon = colon2; | |
| 9143 } | |
| 9144 | |
| 9145 /** | |
| 9146 * Set the label being associated with the statement to the given label. | 7426 * Set the label being associated with the statement to the given label. |
| 9147 * | 7427 * |
| 9148 * @param label the label being associated with the statement | 7428 * @param label the label being associated with the statement |
| 9149 */ | 7429 */ |
| 9150 void set label(SimpleIdentifier label2) { | 7430 void set label(SimpleIdentifier label2) { |
| 9151 this._label = becomeParentOf(label2); | 7431 this._label = becomeParentOf(label2); |
| 9152 } | 7432 } |
| 9153 void visitChildren(ASTVisitor visitor) { | 7433 void visitChildren(ASTVisitor visitor) { |
| 9154 safelyVisitChild(_label, visitor); | 7434 safelyVisitChild(_label, visitor); |
| 9155 } | 7435 } |
| 9156 } | 7436 } |
| 9157 /** | 7437 /** |
| 9158 * Instances of the class `LabeledStatement` represent a statement that has a la
bel associated | 7438 * Instances of the class `LabeledStatement` represent a statement that has a la
bel associated |
| 9159 * with them. | 7439 * with them. |
| 9160 * | 7440 * |
| 9161 * <pre> | 7441 * <pre> |
| 9162 * labeledStatement ::= | 7442 * labeledStatement ::= |
| 9163 * [Label]+ [Statement] | 7443 * [Label]+ [Statement] |
| 9164 * </pre> | 7444 * </pre> |
| 9165 * | 7445 * |
| 9166 * @coverage dart.engine.ast | 7446 * @coverage dart.engine.ast |
| 9167 */ | 7447 */ |
| 9168 class LabeledStatement extends Statement { | 7448 class LabeledStatement extends Statement { |
| 9169 | 7449 |
| 9170 /** | 7450 /** |
| 9171 * The labels being associated with the statement. | 7451 * The labels being associated with the statement. |
| 9172 */ | 7452 */ |
| 9173 NodeList<Label> _labels; | 7453 NodeList<Label> labels; |
| 9174 | 7454 |
| 9175 /** | 7455 /** |
| 9176 * The statement with which the labels are being associated. | 7456 * The statement with which the labels are being associated. |
| 9177 */ | 7457 */ |
| 9178 Statement _statement; | 7458 Statement _statement; |
| 9179 | 7459 |
| 9180 /** | 7460 /** |
| 9181 * Initialize a newly created labeled statement. | 7461 * Initialize a newly created labeled statement. |
| 9182 * | 7462 * |
| 9183 * @param labels the labels being associated with the statement | 7463 * @param labels the labels being associated with the statement |
| 9184 * @param statement the statement with which the labels are being associated | 7464 * @param statement the statement with which the labels are being associated |
| 9185 */ | 7465 */ |
| 9186 LabeledStatement.full(List<Label> labels, Statement statement) { | 7466 LabeledStatement.full(List<Label> labels, Statement statement) { |
| 9187 this._labels = new NodeList<Label>(this); | 7467 this.labels = new NodeList<Label>(this); |
| 9188 this._labels.addAll(labels); | 7468 this.labels.addAll(labels); |
| 9189 this._statement = becomeParentOf(statement); | 7469 this._statement = becomeParentOf(statement); |
| 9190 } | 7470 } |
| 9191 | 7471 |
| 9192 /** | 7472 /** |
| 9193 * Initialize a newly created labeled statement. | 7473 * Initialize a newly created labeled statement. |
| 9194 * | 7474 * |
| 9195 * @param labels the labels being associated with the statement | 7475 * @param labels the labels being associated with the statement |
| 9196 * @param statement the statement with which the labels are being associated | 7476 * @param statement the statement with which the labels are being associated |
| 9197 */ | 7477 */ |
| 9198 LabeledStatement({List<Label> labels, Statement statement}) : this.full(labels
, statement); | 7478 LabeledStatement({List<Label> labels, Statement statement}) : this.full(labels
, statement); |
| 9199 accept(ASTVisitor visitor) => visitor.visitLabeledStatement(this); | 7479 accept(ASTVisitor visitor) => visitor.visitLabeledStatement(this); |
| 9200 Token get beginToken { | 7480 Token get beginToken { |
| 9201 if (!_labels.isEmpty) { | 7481 if (!labels.isEmpty) { |
| 9202 return _labels.beginToken; | 7482 return labels.beginToken; |
| 9203 } | 7483 } |
| 9204 return _statement.beginToken; | 7484 return _statement.beginToken; |
| 9205 } | 7485 } |
| 9206 Token get endToken => _statement.endToken; | 7486 Token get endToken => _statement.endToken; |
| 9207 | 7487 |
| 9208 /** | 7488 /** |
| 9209 * Return the labels being associated with the statement. | |
| 9210 * | |
| 9211 * @return the labels being associated with the statement | |
| 9212 */ | |
| 9213 NodeList<Label> get labels => _labels; | |
| 9214 | |
| 9215 /** | |
| 9216 * Return the statement with which the labels are being associated. | 7489 * Return the statement with which the labels are being associated. |
| 9217 * | 7490 * |
| 9218 * @return the statement with which the labels are being associated | 7491 * @return the statement with which the labels are being associated |
| 9219 */ | 7492 */ |
| 9220 Statement get statement => _statement; | 7493 Statement get statement => _statement; |
| 9221 | 7494 |
| 9222 /** | 7495 /** |
| 9223 * Set the statement with which the labels are being associated to the given s
tatement. | 7496 * Set the statement with which the labels are being associated to the given s
tatement. |
| 9224 * | 7497 * |
| 9225 * @param statement the statement with which the labels are being associated | 7498 * @param statement the statement with which the labels are being associated |
| 9226 */ | 7499 */ |
| 9227 void set statement(Statement statement2) { | 7500 void set statement(Statement statement2) { |
| 9228 this._statement = becomeParentOf(statement2); | 7501 this._statement = becomeParentOf(statement2); |
| 9229 } | 7502 } |
| 9230 void visitChildren(ASTVisitor visitor) { | 7503 void visitChildren(ASTVisitor visitor) { |
| 9231 _labels.accept(visitor); | 7504 labels.accept(visitor); |
| 9232 safelyVisitChild(_statement, visitor); | 7505 safelyVisitChild(_statement, visitor); |
| 9233 } | 7506 } |
| 9234 } | 7507 } |
| 9235 /** | 7508 /** |
| 9236 * Instances of the class `LibraryDirective` represent a library directive. | 7509 * Instances of the class `LibraryDirective` represent a library directive. |
| 9237 * | 7510 * |
| 9238 * <pre> | 7511 * <pre> |
| 9239 * libraryDirective ::= | 7512 * libraryDirective ::= |
| 9240 * [Annotation] 'library' [Identifier] ';' | 7513 * [Annotation] 'library' [Identifier] ';' |
| 9241 * </pre> | 7514 * </pre> |
| 9242 * | 7515 * |
| 9243 * @coverage dart.engine.ast | 7516 * @coverage dart.engine.ast |
| 9244 */ | 7517 */ |
| 9245 class LibraryDirective extends Directive { | 7518 class LibraryDirective extends Directive { |
| 9246 | 7519 |
| 9247 /** | 7520 /** |
| 9248 * The token representing the 'library' token. | 7521 * The token representing the 'library' token. |
| 9249 */ | 7522 */ |
| 9250 Token _libraryToken; | 7523 Token libraryToken; |
| 9251 | 7524 |
| 9252 /** | 7525 /** |
| 9253 * The name of the library being defined. | 7526 * The name of the library being defined. |
| 9254 */ | 7527 */ |
| 9255 LibraryIdentifier _name; | 7528 LibraryIdentifier _name; |
| 9256 | 7529 |
| 9257 /** | 7530 /** |
| 9258 * The semicolon terminating the directive. | 7531 * The semicolon terminating the directive. |
| 9259 */ | 7532 */ |
| 9260 Token _semicolon; | 7533 Token semicolon; |
| 9261 | 7534 |
| 9262 /** | 7535 /** |
| 9263 * Initialize a newly created library directive. | 7536 * Initialize a newly created library directive. |
| 9264 * | 7537 * |
| 9265 * @param comment the documentation comment associated with this directive | 7538 * @param comment the documentation comment associated with this directive |
| 9266 * @param metadata the annotations associated with the directive | 7539 * @param metadata the annotations associated with the directive |
| 9267 * @param libraryToken the token representing the 'library' token | 7540 * @param libraryToken the token representing the 'library' token |
| 9268 * @param name the name of the library being defined | 7541 * @param name the name of the library being defined |
| 9269 * @param semicolon the semicolon terminating the directive | 7542 * @param semicolon the semicolon terminating the directive |
| 9270 */ | 7543 */ |
| 9271 LibraryDirective.full(Comment comment, List<Annotation> metadata, Token librar
yToken, LibraryIdentifier name, Token semicolon) : super.full(comment, metadata)
{ | 7544 LibraryDirective.full(Comment comment, List<Annotation> metadata, Token librar
yToken, LibraryIdentifier name, Token semicolon) : super.full(comment, metadata)
{ |
| 9272 this._libraryToken = libraryToken; | 7545 this.libraryToken = libraryToken; |
| 9273 this._name = becomeParentOf(name); | 7546 this._name = becomeParentOf(name); |
| 9274 this._semicolon = semicolon; | 7547 this.semicolon = semicolon; |
| 9275 } | 7548 } |
| 9276 | 7549 |
| 9277 /** | 7550 /** |
| 9278 * Initialize a newly created library directive. | 7551 * Initialize a newly created library directive. |
| 9279 * | 7552 * |
| 9280 * @param comment the documentation comment associated with this directive | 7553 * @param comment the documentation comment associated with this directive |
| 9281 * @param metadata the annotations associated with the directive | 7554 * @param metadata the annotations associated with the directive |
| 9282 * @param libraryToken the token representing the 'library' token | 7555 * @param libraryToken the token representing the 'library' token |
| 9283 * @param name the name of the library being defined | 7556 * @param name the name of the library being defined |
| 9284 * @param semicolon the semicolon terminating the directive | 7557 * @param semicolon the semicolon terminating the directive |
| 9285 */ | 7558 */ |
| 9286 LibraryDirective({Comment comment, List<Annotation> metadata, Token libraryTok
en, LibraryIdentifier name, Token semicolon}) : this.full(comment, metadata, lib
raryToken, name, semicolon); | 7559 LibraryDirective({Comment comment, List<Annotation> metadata, Token libraryTok
en, LibraryIdentifier name, Token semicolon}) : this.full(comment, metadata, lib
raryToken, name, semicolon); |
| 9287 accept(ASTVisitor visitor) => visitor.visitLibraryDirective(this); | 7560 accept(ASTVisitor visitor) => visitor.visitLibraryDirective(this); |
| 9288 Token get endToken => _semicolon; | 7561 Token get endToken => semicolon; |
| 9289 Token get keyword => _libraryToken; | 7562 Token get keyword => libraryToken; |
| 9290 | |
| 9291 /** | |
| 9292 * Return the token representing the 'library' token. | |
| 9293 * | |
| 9294 * @return the token representing the 'library' token | |
| 9295 */ | |
| 9296 Token get libraryToken => _libraryToken; | |
| 9297 | 7563 |
| 9298 /** | 7564 /** |
| 9299 * Return the name of the library being defined. | 7565 * Return the name of the library being defined. |
| 9300 * | 7566 * |
| 9301 * @return the name of the library being defined | 7567 * @return the name of the library being defined |
| 9302 */ | 7568 */ |
| 9303 LibraryIdentifier get name => _name; | 7569 LibraryIdentifier get name => _name; |
| 9304 | 7570 |
| 9305 /** | 7571 /** |
| 9306 * Return the semicolon terminating the directive. | |
| 9307 * | |
| 9308 * @return the semicolon terminating the directive | |
| 9309 */ | |
| 9310 Token get semicolon => _semicolon; | |
| 9311 | |
| 9312 /** | |
| 9313 * Set the token representing the 'library' token to the given token. | |
| 9314 * | |
| 9315 * @param libraryToken the token representing the 'library' token | |
| 9316 */ | |
| 9317 void set libraryToken(Token libraryToken2) { | |
| 9318 this._libraryToken = libraryToken2; | |
| 9319 } | |
| 9320 | |
| 9321 /** | |
| 9322 * Set the name of the library being defined to the given name. | 7572 * Set the name of the library being defined to the given name. |
| 9323 * | 7573 * |
| 9324 * @param name the name of the library being defined | 7574 * @param name the name of the library being defined |
| 9325 */ | 7575 */ |
| 9326 void set name(LibraryIdentifier name2) { | 7576 void set name(LibraryIdentifier name2) { |
| 9327 this._name = becomeParentOf(name2); | 7577 this._name = becomeParentOf(name2); |
| 9328 } | 7578 } |
| 9329 | |
| 9330 /** | |
| 9331 * Set the semicolon terminating the directive to the given token. | |
| 9332 * | |
| 9333 * @param semicolon the semicolon terminating the directive | |
| 9334 */ | |
| 9335 void set semicolon(Token semicolon2) { | |
| 9336 this._semicolon = semicolon2; | |
| 9337 } | |
| 9338 void visitChildren(ASTVisitor visitor) { | 7579 void visitChildren(ASTVisitor visitor) { |
| 9339 super.visitChildren(visitor); | 7580 super.visitChildren(visitor); |
| 9340 safelyVisitChild(_name, visitor); | 7581 safelyVisitChild(_name, visitor); |
| 9341 } | 7582 } |
| 9342 Token get firstTokenAfterCommentAndMetadata => _libraryToken; | 7583 Token get firstTokenAfterCommentAndMetadata => libraryToken; |
| 9343 } | 7584 } |
| 9344 /** | 7585 /** |
| 9345 * Instances of the class `LibraryIdentifier` represent the identifier for a lib
rary. | 7586 * Instances of the class `LibraryIdentifier` represent the identifier for a lib
rary. |
| 9346 * | 7587 * |
| 9347 * <pre> | 7588 * <pre> |
| 9348 * libraryIdentifier ::= | 7589 * libraryIdentifier ::= |
| 9349 * [SimpleIdentifier] ('.' [SimpleIdentifier])* | 7590 * [SimpleIdentifier] ('.' [SimpleIdentifier])* |
| 9350 * </pre> | 7591 * </pre> |
| 9351 * | 7592 * |
| 9352 * @coverage dart.engine.ast | 7593 * @coverage dart.engine.ast |
| 9353 */ | 7594 */ |
| 9354 class LibraryIdentifier extends Identifier { | 7595 class LibraryIdentifier extends Identifier { |
| 9355 | 7596 |
| 9356 /** | 7597 /** |
| 9357 * The components of the identifier. | 7598 * The components of the identifier. |
| 9358 */ | 7599 */ |
| 9359 NodeList<SimpleIdentifier> _components; | 7600 NodeList<SimpleIdentifier> components; |
| 9360 | 7601 |
| 9361 /** | 7602 /** |
| 9362 * Initialize a newly created prefixed identifier. | 7603 * Initialize a newly created prefixed identifier. |
| 9363 * | 7604 * |
| 9364 * @param components the components of the identifier | 7605 * @param components the components of the identifier |
| 9365 */ | 7606 */ |
| 9366 LibraryIdentifier.full(List<SimpleIdentifier> components) { | 7607 LibraryIdentifier.full(List<SimpleIdentifier> components) { |
| 9367 this._components = new NodeList<SimpleIdentifier>(this); | 7608 this.components = new NodeList<SimpleIdentifier>(this); |
| 9368 this._components.addAll(components); | 7609 this.components.addAll(components); |
| 9369 } | 7610 } |
| 9370 | 7611 |
| 9371 /** | 7612 /** |
| 9372 * Initialize a newly created prefixed identifier. | 7613 * Initialize a newly created prefixed identifier. |
| 9373 * | 7614 * |
| 9374 * @param components the components of the identifier | 7615 * @param components the components of the identifier |
| 9375 */ | 7616 */ |
| 9376 LibraryIdentifier({List<SimpleIdentifier> components}) : this.full(components)
; | 7617 LibraryIdentifier({List<SimpleIdentifier> components}) : this.full(components)
; |
| 9377 accept(ASTVisitor visitor) => visitor.visitLibraryIdentifier(this); | 7618 accept(ASTVisitor visitor) => visitor.visitLibraryIdentifier(this); |
| 9378 Token get beginToken => _components.beginToken; | 7619 Token get beginToken => components.beginToken; |
| 9379 Element get bestElement => staticElement; | 7620 Element get bestElement => staticElement; |
| 9380 | 7621 Token get endToken => components.endToken; |
| 9381 /** | |
| 9382 * Return the components of the identifier. | |
| 9383 * | |
| 9384 * @return the components of the identifier | |
| 9385 */ | |
| 9386 NodeList<SimpleIdentifier> get components => _components; | |
| 9387 Token get endToken => _components.endToken; | |
| 9388 String get name { | 7622 String get name { |
| 9389 JavaStringBuilder builder = new JavaStringBuilder(); | 7623 JavaStringBuilder builder = new JavaStringBuilder(); |
| 9390 bool needsPeriod = false; | 7624 bool needsPeriod = false; |
| 9391 for (SimpleIdentifier identifier in _components) { | 7625 for (SimpleIdentifier identifier in components) { |
| 9392 if (needsPeriod) { | 7626 if (needsPeriod) { |
| 9393 builder.append("."); | 7627 builder.append("."); |
| 9394 } else { | 7628 } else { |
| 9395 needsPeriod = true; | 7629 needsPeriod = true; |
| 9396 } | 7630 } |
| 9397 builder.append(identifier.name); | 7631 builder.append(identifier.name); |
| 9398 } | 7632 } |
| 9399 return builder.toString(); | 7633 return builder.toString(); |
| 9400 } | 7634 } |
| 9401 Element get propagatedElement => null; | 7635 Element get propagatedElement => null; |
| 9402 Element get staticElement => null; | 7636 Element get staticElement => null; |
| 9403 void visitChildren(ASTVisitor visitor) { | 7637 void visitChildren(ASTVisitor visitor) { |
| 9404 _components.accept(visitor); | 7638 components.accept(visitor); |
| 9405 } | 7639 } |
| 9406 } | 7640 } |
| 9407 /** | 7641 /** |
| 9408 * Instances of the class `ListLiteral` represent a list literal. | 7642 * Instances of the class `ListLiteral` represent a list literal. |
| 9409 * | 7643 * |
| 9410 * <pre> | 7644 * <pre> |
| 9411 * listLiteral ::= | 7645 * listLiteral ::= |
| 9412 * 'const'? ('<' [TypeName] '>')? '[' ([Expression] ','?)? ']' | 7646 * 'const'? ('<' [TypeName] '>')? '[' ([Expression] ','?)? ']' |
| 9413 * </pre> | 7647 * </pre> |
| 9414 * | 7648 * |
| 9415 * @coverage dart.engine.ast | 7649 * @coverage dart.engine.ast |
| 9416 */ | 7650 */ |
| 9417 class ListLiteral extends TypedLiteral { | 7651 class ListLiteral extends TypedLiteral { |
| 9418 | 7652 |
| 9419 /** | 7653 /** |
| 9420 * The left square bracket. | 7654 * The left square bracket. |
| 9421 */ | 7655 */ |
| 9422 Token _leftBracket; | 7656 Token _leftBracket; |
| 9423 | 7657 |
| 9424 /** | 7658 /** |
| 9425 * The expressions used to compute the elements of the list. | 7659 * The expressions used to compute the elements of the list. |
| 9426 */ | 7660 */ |
| 9427 NodeList<Expression> _elements; | 7661 NodeList<Expression> elements; |
| 9428 | 7662 |
| 9429 /** | 7663 /** |
| 9430 * The right square bracket. | 7664 * The right square bracket. |
| 9431 */ | 7665 */ |
| 9432 Token _rightBracket; | 7666 Token _rightBracket; |
| 9433 | 7667 |
| 9434 /** | 7668 /** |
| 9435 * Initialize a newly created list literal. | 7669 * Initialize a newly created list literal. |
| 9436 * | 7670 * |
| 9437 * @param constKeyword the token representing the 'const' keyword | 7671 * @param constKeyword the token representing the 'const' keyword |
| 9438 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 7672 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 9439 * arguments were declared | 7673 * arguments were declared |
| 9440 * @param leftBracket the left square bracket | 7674 * @param leftBracket the left square bracket |
| 9441 * @param elements the expressions used to compute the elements of the list | 7675 * @param elements the expressions used to compute the elements of the list |
| 9442 * @param rightBracket the right square bracket | 7676 * @param rightBracket the right square bracket |
| 9443 */ | 7677 */ |
| 9444 ListLiteral.full(Token constKeyword, TypeArgumentList typeArguments, Token lef
tBracket, List<Expression> elements, Token rightBracket) : super.full(constKeywo
rd, typeArguments) { | 7678 ListLiteral.full(Token constKeyword, TypeArgumentList typeArguments, Token lef
tBracket, List<Expression> elements, Token rightBracket) : super.full(constKeywo
rd, typeArguments) { |
| 9445 this._elements = new NodeList<Expression>(this); | 7679 this.elements = new NodeList<Expression>(this); |
| 9446 this._leftBracket = leftBracket; | 7680 this._leftBracket = leftBracket; |
| 9447 this._elements.addAll(elements); | 7681 this.elements.addAll(elements); |
| 9448 this._rightBracket = rightBracket; | 7682 this._rightBracket = rightBracket; |
| 9449 } | 7683 } |
| 9450 | 7684 |
| 9451 /** | 7685 /** |
| 9452 * Initialize a newly created list literal. | 7686 * Initialize a newly created list literal. |
| 9453 * | 7687 * |
| 9454 * @param constKeyword the token representing the 'const' keyword | 7688 * @param constKeyword the token representing the 'const' keyword |
| 9455 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 7689 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 9456 * arguments were declared | 7690 * arguments were declared |
| 9457 * @param leftBracket the left square bracket | 7691 * @param leftBracket the left square bracket |
| 9458 * @param elements the expressions used to compute the elements of the list | 7692 * @param elements the expressions used to compute the elements of the list |
| 9459 * @param rightBracket the right square bracket | 7693 * @param rightBracket the right square bracket |
| 9460 */ | 7694 */ |
| 9461 ListLiteral({Token constKeyword, TypeArgumentList typeArguments, Token leftBra
cket, List<Expression> elements, Token rightBracket}) : this.full(constKeyword,
typeArguments, leftBracket, elements, rightBracket); | 7695 ListLiteral({Token constKeyword, TypeArgumentList typeArguments, Token leftBra
cket, List<Expression> elements, Token rightBracket}) : this.full(constKeyword,
typeArguments, leftBracket, elements, rightBracket); |
| 9462 accept(ASTVisitor visitor) => visitor.visitListLiteral(this); | 7696 accept(ASTVisitor visitor) => visitor.visitListLiteral(this); |
| 9463 Token get beginToken { | 7697 Token get beginToken { |
| 9464 Token token = constKeyword; | 7698 Token token = constKeyword; |
| 9465 if (token != null) { | 7699 if (token != null) { |
| 9466 return token; | 7700 return token; |
| 9467 } | 7701 } |
| 9468 TypeArgumentList typeArguments = this.typeArguments; | 7702 TypeArgumentList typeArguments2 = typeArguments; |
| 9469 if (typeArguments != null) { | 7703 if (typeArguments2 != null) { |
| 9470 return typeArguments.beginToken; | 7704 return typeArguments2.beginToken; |
| 9471 } | 7705 } |
| 9472 return _leftBracket; | 7706 return _leftBracket; |
| 9473 } | 7707 } |
| 9474 | |
| 9475 /** | |
| 9476 * Return the expressions used to compute the elements of the list. | |
| 9477 * | |
| 9478 * @return the expressions used to compute the elements of the list | |
| 9479 */ | |
| 9480 NodeList<Expression> get elements => _elements; | |
| 9481 Token get endToken => _rightBracket; | 7708 Token get endToken => _rightBracket; |
| 9482 | 7709 |
| 9483 /** | 7710 /** |
| 9484 * Return the left square bracket. | 7711 * Return the left square bracket. |
| 9485 * | 7712 * |
| 9486 * @return the left square bracket | 7713 * @return the left square bracket |
| 9487 */ | 7714 */ |
| 9488 Token get leftBracket => _leftBracket; | 7715 Token get leftBracket => _leftBracket; |
| 9489 | 7716 |
| 9490 /** | 7717 /** |
| (...skipping 15 matching lines...) Expand all Loading... |
| 9506 /** | 7733 /** |
| 9507 * Set the right square bracket to the given token. | 7734 * Set the right square bracket to the given token. |
| 9508 * | 7735 * |
| 9509 * @param bracket the right square bracket | 7736 * @param bracket the right square bracket |
| 9510 */ | 7737 */ |
| 9511 void set rightBracket(Token bracket) { | 7738 void set rightBracket(Token bracket) { |
| 9512 _rightBracket = bracket; | 7739 _rightBracket = bracket; |
| 9513 } | 7740 } |
| 9514 void visitChildren(ASTVisitor visitor) { | 7741 void visitChildren(ASTVisitor visitor) { |
| 9515 super.visitChildren(visitor); | 7742 super.visitChildren(visitor); |
| 9516 _elements.accept(visitor); | 7743 elements.accept(visitor); |
| 9517 } | 7744 } |
| 9518 } | 7745 } |
| 9519 /** | 7746 /** |
| 9520 * The abstract class `Literal` defines the behavior common to nodes that repres
ent a literal | 7747 * The abstract class `Literal` defines the behavior common to nodes that repres
ent a literal |
| 9521 * expression. | 7748 * expression. |
| 9522 * | 7749 * |
| 9523 * <pre> | 7750 * <pre> |
| 9524 * literal ::= | 7751 * literal ::= |
| 9525 * [BooleanLiteral] | 7752 * [BooleanLiteral] |
| 9526 * | [DoubleLiteral] | 7753 * | [DoubleLiteral] |
| (...skipping 21 matching lines...) Expand all Loading... |
| 9548 class MapLiteral extends TypedLiteral { | 7775 class MapLiteral extends TypedLiteral { |
| 9549 | 7776 |
| 9550 /** | 7777 /** |
| 9551 * The left curly bracket. | 7778 * The left curly bracket. |
| 9552 */ | 7779 */ |
| 9553 Token _leftBracket; | 7780 Token _leftBracket; |
| 9554 | 7781 |
| 9555 /** | 7782 /** |
| 9556 * The entries in the map. | 7783 * The entries in the map. |
| 9557 */ | 7784 */ |
| 9558 NodeList<MapLiteralEntry> _entries; | 7785 NodeList<MapLiteralEntry> entries; |
| 9559 | 7786 |
| 9560 /** | 7787 /** |
| 9561 * The right curly bracket. | 7788 * The right curly bracket. |
| 9562 */ | 7789 */ |
| 9563 Token _rightBracket; | 7790 Token _rightBracket; |
| 9564 | 7791 |
| 9565 /** | 7792 /** |
| 9566 * Initialize a newly created map literal. | 7793 * Initialize a newly created map literal. |
| 9567 * | 7794 * |
| 9568 * @param constKeyword the token representing the 'const' keyword | 7795 * @param constKeyword the token representing the 'const' keyword |
| 9569 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 7796 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 9570 * arguments were declared | 7797 * arguments were declared |
| 9571 * @param leftBracket the left curly bracket | 7798 * @param leftBracket the left curly bracket |
| 9572 * @param entries the entries in the map | 7799 * @param entries the entries in the map |
| 9573 * @param rightBracket the right curly bracket | 7800 * @param rightBracket the right curly bracket |
| 9574 */ | 7801 */ |
| 9575 MapLiteral.full(Token constKeyword, TypeArgumentList typeArguments, Token left
Bracket, List<MapLiteralEntry> entries, Token rightBracket) : super.full(constKe
yword, typeArguments) { | 7802 MapLiteral.full(Token constKeyword, TypeArgumentList typeArguments, Token left
Bracket, List<MapLiteralEntry> entries, Token rightBracket) : super.full(constKe
yword, typeArguments) { |
| 9576 this._entries = new NodeList<MapLiteralEntry>(this); | 7803 this.entries = new NodeList<MapLiteralEntry>(this); |
| 9577 this._leftBracket = leftBracket; | 7804 this._leftBracket = leftBracket; |
| 9578 this._entries.addAll(entries); | 7805 this.entries.addAll(entries); |
| 9579 this._rightBracket = rightBracket; | 7806 this._rightBracket = rightBracket; |
| 9580 } | 7807 } |
| 9581 | 7808 |
| 9582 /** | 7809 /** |
| 9583 * Initialize a newly created map literal. | 7810 * Initialize a newly created map literal. |
| 9584 * | 7811 * |
| 9585 * @param constKeyword the token representing the 'const' keyword | 7812 * @param constKeyword the token representing the 'const' keyword |
| 9586 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 7813 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 9587 * arguments were declared | 7814 * arguments were declared |
| 9588 * @param leftBracket the left curly bracket | 7815 * @param leftBracket the left curly bracket |
| 9589 * @param entries the entries in the map | 7816 * @param entries the entries in the map |
| 9590 * @param rightBracket the right curly bracket | 7817 * @param rightBracket the right curly bracket |
| 9591 */ | 7818 */ |
| 9592 MapLiteral({Token constKeyword, TypeArgumentList typeArguments, Token leftBrac
ket, List<MapLiteralEntry> entries, Token rightBracket}) : this.full(constKeywor
d, typeArguments, leftBracket, entries, rightBracket); | 7819 MapLiteral({Token constKeyword, TypeArgumentList typeArguments, Token leftBrac
ket, List<MapLiteralEntry> entries, Token rightBracket}) : this.full(constKeywor
d, typeArguments, leftBracket, entries, rightBracket); |
| 9593 accept(ASTVisitor visitor) => visitor.visitMapLiteral(this); | 7820 accept(ASTVisitor visitor) => visitor.visitMapLiteral(this); |
| 9594 Token get beginToken { | 7821 Token get beginToken { |
| 9595 Token token = constKeyword; | 7822 Token token = constKeyword; |
| 9596 if (token != null) { | 7823 if (token != null) { |
| 9597 return token; | 7824 return token; |
| 9598 } | 7825 } |
| 9599 TypeArgumentList typeArguments = this.typeArguments; | 7826 TypeArgumentList typeArguments2 = typeArguments; |
| 9600 if (typeArguments != null) { | 7827 if (typeArguments2 != null) { |
| 9601 return typeArguments.beginToken; | 7828 return typeArguments2.beginToken; |
| 9602 } | 7829 } |
| 9603 return _leftBracket; | 7830 return _leftBracket; |
| 9604 } | 7831 } |
| 9605 Token get endToken => _rightBracket; | 7832 Token get endToken => _rightBracket; |
| 9606 | 7833 |
| 9607 /** | 7834 /** |
| 9608 * Return the entries in the map. | |
| 9609 * | |
| 9610 * @return the entries in the map | |
| 9611 */ | |
| 9612 NodeList<MapLiteralEntry> get entries => _entries; | |
| 9613 | |
| 9614 /** | |
| 9615 * Return the left curly bracket. | 7835 * Return the left curly bracket. |
| 9616 * | 7836 * |
| 9617 * @return the left curly bracket | 7837 * @return the left curly bracket |
| 9618 */ | 7838 */ |
| 9619 Token get leftBracket => _leftBracket; | 7839 Token get leftBracket => _leftBracket; |
| 9620 | 7840 |
| 9621 /** | 7841 /** |
| 9622 * Return the right curly bracket. | 7842 * Return the right curly bracket. |
| 9623 * | 7843 * |
| 9624 * @return the right curly bracket | 7844 * @return the right curly bracket |
| (...skipping 12 matching lines...) Expand all Loading... |
| 9637 /** | 7857 /** |
| 9638 * Set the right curly bracket to the given token. | 7858 * Set the right curly bracket to the given token. |
| 9639 * | 7859 * |
| 9640 * @param bracket the right curly bracket | 7860 * @param bracket the right curly bracket |
| 9641 */ | 7861 */ |
| 9642 void set rightBracket(Token bracket) { | 7862 void set rightBracket(Token bracket) { |
| 9643 _rightBracket = bracket; | 7863 _rightBracket = bracket; |
| 9644 } | 7864 } |
| 9645 void visitChildren(ASTVisitor visitor) { | 7865 void visitChildren(ASTVisitor visitor) { |
| 9646 super.visitChildren(visitor); | 7866 super.visitChildren(visitor); |
| 9647 _entries.accept(visitor); | 7867 entries.accept(visitor); |
| 9648 } | 7868 } |
| 9649 } | 7869 } |
| 9650 /** | 7870 /** |
| 9651 * Instances of the class `MapLiteralEntry` represent a single key/value pair in
a map | 7871 * Instances of the class `MapLiteralEntry` represent a single key/value pair in
a map |
| 9652 * literal. | 7872 * literal. |
| 9653 * | 7873 * |
| 9654 * <pre> | 7874 * <pre> |
| 9655 * mapLiteralEntry ::= | 7875 * mapLiteralEntry ::= |
| 9656 * [Expression] ':' [Expression] | 7876 * [Expression] ':' [Expression] |
| 9657 * </pre> | 7877 * </pre> |
| 9658 * | 7878 * |
| 9659 * @coverage dart.engine.ast | 7879 * @coverage dart.engine.ast |
| 9660 */ | 7880 */ |
| 9661 class MapLiteralEntry extends ASTNode { | 7881 class MapLiteralEntry extends ASTNode { |
| 9662 | 7882 |
| 9663 /** | 7883 /** |
| 9664 * The expression computing the key with which the value will be associated. | 7884 * The expression computing the key with which the value will be associated. |
| 9665 */ | 7885 */ |
| 9666 Expression _key; | 7886 Expression _key; |
| 9667 | 7887 |
| 9668 /** | 7888 /** |
| 9669 * The colon that separates the key from the value. | 7889 * The colon that separates the key from the value. |
| 9670 */ | 7890 */ |
| 9671 Token _separator; | 7891 Token separator; |
| 9672 | 7892 |
| 9673 /** | 7893 /** |
| 9674 * The expression computing the value that will be associated with the key. | 7894 * The expression computing the value that will be associated with the key. |
| 9675 */ | 7895 */ |
| 9676 Expression _value; | 7896 Expression _value; |
| 9677 | 7897 |
| 9678 /** | 7898 /** |
| 9679 * Initialize a newly created map literal entry. | 7899 * Initialize a newly created map literal entry. |
| 9680 * | 7900 * |
| 9681 * @param key the expression computing the key with which the value will be as
sociated | 7901 * @param key the expression computing the key with which the value will be as
sociated |
| 9682 * @param separator the colon that separates the key from the value | 7902 * @param separator the colon that separates the key from the value |
| 9683 * @param value the expression computing the value that will be associated wit
h the key | 7903 * @param value the expression computing the value that will be associated wit
h the key |
| 9684 */ | 7904 */ |
| 9685 MapLiteralEntry.full(Expression key, Token separator, Expression value) { | 7905 MapLiteralEntry.full(Expression key, Token separator, Expression value) { |
| 9686 this._key = becomeParentOf(key); | 7906 this._key = becomeParentOf(key); |
| 9687 this._separator = separator; | 7907 this.separator = separator; |
| 9688 this._value = becomeParentOf(value); | 7908 this._value = becomeParentOf(value); |
| 9689 } | 7909 } |
| 9690 | 7910 |
| 9691 /** | 7911 /** |
| 9692 * Initialize a newly created map literal entry. | 7912 * Initialize a newly created map literal entry. |
| 9693 * | 7913 * |
| 9694 * @param key the expression computing the key with which the value will be as
sociated | 7914 * @param key the expression computing the key with which the value will be as
sociated |
| 9695 * @param separator the colon that separates the key from the value | 7915 * @param separator the colon that separates the key from the value |
| 9696 * @param value the expression computing the value that will be associated wit
h the key | 7916 * @param value the expression computing the value that will be associated wit
h the key |
| 9697 */ | 7917 */ |
| 9698 MapLiteralEntry({Expression key, Token separator, Expression value}) : this.fu
ll(key, separator, value); | 7918 MapLiteralEntry({Expression key, Token separator, Expression value}) : this.fu
ll(key, separator, value); |
| 9699 accept(ASTVisitor visitor) => visitor.visitMapLiteralEntry(this); | 7919 accept(ASTVisitor visitor) => visitor.visitMapLiteralEntry(this); |
| 9700 Token get beginToken => _key.beginToken; | 7920 Token get beginToken => _key.beginToken; |
| 9701 Token get endToken => _value.endToken; | 7921 Token get endToken => _value.endToken; |
| 9702 | 7922 |
| 9703 /** | 7923 /** |
| 9704 * Return the expression computing the key with which the value will be associ
ated. | 7924 * Return the expression computing the key with which the value will be associ
ated. |
| 9705 * | 7925 * |
| 9706 * @return the expression computing the key with which the value will be assoc
iated | 7926 * @return the expression computing the key with which the value will be assoc
iated |
| 9707 */ | 7927 */ |
| 9708 Expression get key => _key; | 7928 Expression get key => _key; |
| 9709 | 7929 |
| 9710 /** | 7930 /** |
| 9711 * Return the colon that separates the key from the value. | |
| 9712 * | |
| 9713 * @return the colon that separates the key from the value | |
| 9714 */ | |
| 9715 Token get separator => _separator; | |
| 9716 | |
| 9717 /** | |
| 9718 * Return the expression computing the value that will be associated with the
key. | 7931 * Return the expression computing the value that will be associated with the
key. |
| 9719 * | 7932 * |
| 9720 * @return the expression computing the value that will be associated with the
key | 7933 * @return the expression computing the value that will be associated with the
key |
| 9721 */ | 7934 */ |
| 9722 Expression get value => _value; | 7935 Expression get value => _value; |
| 9723 | 7936 |
| 9724 /** | 7937 /** |
| 9725 * Set the expression computing the key with which the value will be associate
d to the given | 7938 * Set the expression computing the key with which the value will be associate
d to the given |
| 9726 * string. | 7939 * string. |
| 9727 * | 7940 * |
| 9728 * @param string the expression computing the key with which the value will be
associated | 7941 * @param string the expression computing the key with which the value will be
associated |
| 9729 */ | 7942 */ |
| 9730 void set key(Expression string) { | 7943 void set key(Expression string) { |
| 9731 _key = becomeParentOf(string); | 7944 _key = becomeParentOf(string); |
| 9732 } | 7945 } |
| 9733 | 7946 |
| 9734 /** | 7947 /** |
| 9735 * Set the colon that separates the key from the value to the given token. | |
| 9736 * | |
| 9737 * @param separator the colon that separates the key from the value | |
| 9738 */ | |
| 9739 void set separator(Token separator2) { | |
| 9740 this._separator = separator2; | |
| 9741 } | |
| 9742 | |
| 9743 /** | |
| 9744 * Set the expression computing the value that will be associated with the key
to the given | 7948 * Set the expression computing the value that will be associated with the key
to the given |
| 9745 * expression. | 7949 * expression. |
| 9746 * | 7950 * |
| 9747 * @param expression the expression computing the value that will be associate
d with the key | 7951 * @param expression the expression computing the value that will be associate
d with the key |
| 9748 */ | 7952 */ |
| 9749 void set value(Expression expression) { | 7953 void set value(Expression expression) { |
| 9750 _value = becomeParentOf(expression); | 7954 _value = becomeParentOf(expression); |
| 9751 } | 7955 } |
| 9752 void visitChildren(ASTVisitor visitor) { | 7956 void visitChildren(ASTVisitor visitor) { |
| 9753 safelyVisitChild(_key, visitor); | 7957 safelyVisitChild(_key, visitor); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 9770 * | 'operator' [SimpleIdentifier] | 7974 * | 'operator' [SimpleIdentifier] |
| 9771 * </pre> | 7975 * </pre> |
| 9772 * | 7976 * |
| 9773 * @coverage dart.engine.ast | 7977 * @coverage dart.engine.ast |
| 9774 */ | 7978 */ |
| 9775 class MethodDeclaration extends ClassMember { | 7979 class MethodDeclaration extends ClassMember { |
| 9776 | 7980 |
| 9777 /** | 7981 /** |
| 9778 * The token for the 'external' keyword, or `null` if the constructor is not e
xternal. | 7982 * The token for the 'external' keyword, or `null` if the constructor is not e
xternal. |
| 9779 */ | 7983 */ |
| 9780 Token _externalKeyword; | 7984 Token externalKeyword; |
| 9781 | 7985 |
| 9782 /** | 7986 /** |
| 9783 * The token representing the 'abstract' or 'static' keyword, or `null` if nei
ther modifier | 7987 * The token representing the 'abstract' or 'static' keyword, or `null` if nei
ther modifier |
| 9784 * was specified. | 7988 * was specified. |
| 9785 */ | 7989 */ |
| 9786 Token _modifierKeyword; | 7990 Token modifierKeyword; |
| 9787 | 7991 |
| 9788 /** | 7992 /** |
| 9789 * The return type of the method, or `null` if no return type was declared. | 7993 * The return type of the method, or `null` if no return type was declared. |
| 9790 */ | 7994 */ |
| 9791 TypeName _returnType; | 7995 TypeName _returnType; |
| 9792 | 7996 |
| 9793 /** | 7997 /** |
| 9794 * The token representing the 'get' or 'set' keyword, or `null` if this is a m
ethod | 7998 * The token representing the 'get' or 'set' keyword, or `null` if this is a m
ethod |
| 9795 * declaration rather than a property declaration. | 7999 * declaration rather than a property declaration. |
| 9796 */ | 8000 */ |
| 9797 Token _propertyKeyword; | 8001 Token propertyKeyword; |
| 9798 | 8002 |
| 9799 /** | 8003 /** |
| 9800 * The token representing the 'operator' keyword, or `null` if this method doe
s not declare | 8004 * The token representing the 'operator' keyword, or `null` if this method doe
s not declare |
| 9801 * an operator. | 8005 * an operator. |
| 9802 */ | 8006 */ |
| 9803 Token _operatorKeyword; | 8007 Token operatorKeyword; |
| 9804 | 8008 |
| 9805 /** | 8009 /** |
| 9806 * The name of the method. | 8010 * The name of the method. |
| 9807 */ | 8011 */ |
| 9808 SimpleIdentifier _name; | 8012 SimpleIdentifier _name; |
| 9809 | 8013 |
| 9810 /** | 8014 /** |
| 9811 * The parameters associated with the method, or `null` if this method declare
s a getter. | 8015 * The parameters associated with the method, or `null` if this method declare
s a getter. |
| 9812 */ | 8016 */ |
| 9813 FormalParameterList _parameters; | 8017 FormalParameterList _parameters; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 9826 * @param modifierKeyword the token representing the 'abstract' or 'static' ke
yword | 8030 * @param modifierKeyword the token representing the 'abstract' or 'static' ke
yword |
| 9827 * @param returnType the return type of the method | 8031 * @param returnType the return type of the method |
| 9828 * @param propertyKeyword the token representing the 'get' or 'set' keyword | 8032 * @param propertyKeyword the token representing the 'get' or 'set' keyword |
| 9829 * @param operatorKeyword the token representing the 'operator' keyword | 8033 * @param operatorKeyword the token representing the 'operator' keyword |
| 9830 * @param name the name of the method | 8034 * @param name the name of the method |
| 9831 * @param parameters the parameters associated with the method, or `null` if t
his method | 8035 * @param parameters the parameters associated with the method, or `null` if t
his method |
| 9832 * declares a getter | 8036 * declares a getter |
| 9833 * @param body the body of the method | 8037 * @param body the body of the method |
| 9834 */ | 8038 */ |
| 9835 MethodDeclaration.full(Comment comment, List<Annotation> metadata, Token exter
nalKeyword, Token modifierKeyword, TypeName returnType, Token propertyKeyword, T
oken operatorKeyword, SimpleIdentifier name, FormalParameterList parameters, Fun
ctionBody body) : super.full(comment, metadata) { | 8039 MethodDeclaration.full(Comment comment, List<Annotation> metadata, Token exter
nalKeyword, Token modifierKeyword, TypeName returnType, Token propertyKeyword, T
oken operatorKeyword, SimpleIdentifier name, FormalParameterList parameters, Fun
ctionBody body) : super.full(comment, metadata) { |
| 9836 this._externalKeyword = externalKeyword; | 8040 this.externalKeyword = externalKeyword; |
| 9837 this._modifierKeyword = modifierKeyword; | 8041 this.modifierKeyword = modifierKeyword; |
| 9838 this._returnType = becomeParentOf(returnType); | 8042 this._returnType = becomeParentOf(returnType); |
| 9839 this._propertyKeyword = propertyKeyword; | 8043 this.propertyKeyword = propertyKeyword; |
| 9840 this._operatorKeyword = operatorKeyword; | 8044 this.operatorKeyword = operatorKeyword; |
| 9841 this._name = becomeParentOf(name); | 8045 this._name = becomeParentOf(name); |
| 9842 this._parameters = becomeParentOf(parameters); | 8046 this._parameters = becomeParentOf(parameters); |
| 9843 this._body = becomeParentOf(body); | 8047 this._body = becomeParentOf(body); |
| 9844 } | 8048 } |
| 9845 | 8049 |
| 9846 /** | 8050 /** |
| 9847 * Initialize a newly created method declaration. | 8051 * Initialize a newly created method declaration. |
| 9848 * | 8052 * |
| 9849 * @param externalKeyword the token for the 'external' keyword | 8053 * @param externalKeyword the token for the 'external' keyword |
| 9850 * @param comment the documentation comment associated with this method | 8054 * @param comment the documentation comment associated with this method |
| (...skipping 22 matching lines...) Expand all Loading... |
| 9873 * been resolved. The element can either be a [MethodElement], if this represe
nts the | 8077 * been resolved. The element can either be a [MethodElement], if this represe
nts the |
| 9874 * declaration of a normal method, or a [PropertyAccessorElement] if this repr
esents the | 8078 * declaration of a normal method, or a [PropertyAccessorElement] if this repr
esents the |
| 9875 * declaration of either a getter or a setter. | 8079 * declaration of either a getter or a setter. |
| 9876 * | 8080 * |
| 9877 * @return the element associated with this method | 8081 * @return the element associated with this method |
| 9878 */ | 8082 */ |
| 9879 ExecutableElement get element => _name != null ? (_name.staticElement as Execu
tableElement) : null; | 8083 ExecutableElement get element => _name != null ? (_name.staticElement as Execu
tableElement) : null; |
| 9880 Token get endToken => _body.endToken; | 8084 Token get endToken => _body.endToken; |
| 9881 | 8085 |
| 9882 /** | 8086 /** |
| 9883 * Return the token for the 'external' keyword, or `null` if the constructor i
s not | |
| 9884 * external. | |
| 9885 * | |
| 9886 * @return the token for the 'external' keyword | |
| 9887 */ | |
| 9888 Token get externalKeyword => _externalKeyword; | |
| 9889 | |
| 9890 /** | |
| 9891 * Return the token representing the 'abstract' or 'static' keyword, or `null`
if neither | |
| 9892 * modifier was specified. | |
| 9893 * | |
| 9894 * @return the token representing the 'abstract' or 'static' keyword | |
| 9895 */ | |
| 9896 Token get modifierKeyword => _modifierKeyword; | |
| 9897 | |
| 9898 /** | |
| 9899 * Return the name of the method. | 8087 * Return the name of the method. |
| 9900 * | 8088 * |
| 9901 * @return the name of the method | 8089 * @return the name of the method |
| 9902 */ | 8090 */ |
| 9903 SimpleIdentifier get name => _name; | 8091 SimpleIdentifier get name => _name; |
| 9904 | 8092 |
| 9905 /** | 8093 /** |
| 9906 * Return the token representing the 'operator' keyword, or `null` if this met
hod does not | |
| 9907 * declare an operator. | |
| 9908 * | |
| 9909 * @return the token representing the 'operator' keyword | |
| 9910 */ | |
| 9911 Token get operatorKeyword => _operatorKeyword; | |
| 9912 | |
| 9913 /** | |
| 9914 * Return the parameters associated with the method, or `null` if this method
declares a | 8094 * Return the parameters associated with the method, or `null` if this method
declares a |
| 9915 * getter. | 8095 * getter. |
| 9916 * | 8096 * |
| 9917 * @return the parameters associated with the method | 8097 * @return the parameters associated with the method |
| 9918 */ | 8098 */ |
| 9919 FormalParameterList get parameters => _parameters; | 8099 FormalParameterList get parameters => _parameters; |
| 9920 | 8100 |
| 9921 /** | 8101 /** |
| 9922 * Return the token representing the 'get' or 'set' keyword, or `null` if this
is a method | |
| 9923 * declaration rather than a property declaration. | |
| 9924 * | |
| 9925 * @return the token representing the 'get' or 'set' keyword | |
| 9926 */ | |
| 9927 Token get propertyKeyword => _propertyKeyword; | |
| 9928 | |
| 9929 /** | |
| 9930 * Return the return type of the method, or `null` if no return type was decla
red. | 8102 * Return the return type of the method, or `null` if no return type was decla
red. |
| 9931 * | 8103 * |
| 9932 * @return the return type of the method | 8104 * @return the return type of the method |
| 9933 */ | 8105 */ |
| 9934 TypeName get returnType => _returnType; | 8106 TypeName get returnType => _returnType; |
| 9935 | 8107 |
| 9936 /** | 8108 /** |
| 9937 * Return `true` if this method is declared to be an abstract method. | 8109 * Return `true` if this method is declared to be an abstract method. |
| 9938 * | 8110 * |
| 9939 * @return `true` if this method is declared to be an abstract method | 8111 * @return `true` if this method is declared to be an abstract method |
| 9940 */ | 8112 */ |
| 9941 bool get isAbstract => _externalKeyword == null && (_body is EmptyFunctionBody
); | 8113 bool get isAbstract => externalKeyword == null && (_body is EmptyFunctionBody)
; |
| 9942 | 8114 |
| 9943 /** | 8115 /** |
| 9944 * Return `true` if this method declares a getter. | 8116 * Return `true` if this method declares a getter. |
| 9945 * | 8117 * |
| 9946 * @return `true` if this method declares a getter | 8118 * @return `true` if this method declares a getter |
| 9947 */ | 8119 */ |
| 9948 bool get isGetter => _propertyKeyword != null && identical(((_propertyKeyword
as KeywordToken)).keyword, Keyword.GET); | 8120 bool get isGetter => propertyKeyword != null && identical(((propertyKeyword as
KeywordToken)).keyword, Keyword.GET); |
| 9949 | 8121 |
| 9950 /** | 8122 /** |
| 9951 * Return `true` if this method declares an operator. | 8123 * Return `true` if this method declares an operator. |
| 9952 * | 8124 * |
| 9953 * @return `true` if this method declares an operator | 8125 * @return `true` if this method declares an operator |
| 9954 */ | 8126 */ |
| 9955 bool get isOperator => _operatorKeyword != null; | 8127 bool get isOperator => operatorKeyword != null; |
| 9956 | 8128 |
| 9957 /** | 8129 /** |
| 9958 * Return `true` if this method declares a setter. | 8130 * Return `true` if this method declares a setter. |
| 9959 * | 8131 * |
| 9960 * @return `true` if this method declares a setter | 8132 * @return `true` if this method declares a setter |
| 9961 */ | 8133 */ |
| 9962 bool get isSetter => _propertyKeyword != null && identical(((_propertyKeyword
as KeywordToken)).keyword, Keyword.SET); | 8134 bool get isSetter => propertyKeyword != null && identical(((propertyKeyword as
KeywordToken)).keyword, Keyword.SET); |
| 9963 | 8135 |
| 9964 /** | 8136 /** |
| 9965 * Return `true` if this method is declared to be a static method. | 8137 * Return `true` if this method is declared to be a static method. |
| 9966 * | 8138 * |
| 9967 * @return `true` if this method is declared to be a static method | 8139 * @return `true` if this method is declared to be a static method |
| 9968 */ | 8140 */ |
| 9969 bool get isStatic => _modifierKeyword != null && identical(((_modifierKeyword
as KeywordToken)).keyword, Keyword.STATIC); | 8141 bool get isStatic => modifierKeyword != null && identical(((modifierKeyword as
KeywordToken)).keyword, Keyword.STATIC); |
| 9970 | 8142 |
| 9971 /** | 8143 /** |
| 9972 * Set the body of the method to the given function body. | 8144 * Set the body of the method to the given function body. |
| 9973 * | 8145 * |
| 9974 * @param functionBody the body of the method | 8146 * @param functionBody the body of the method |
| 9975 */ | 8147 */ |
| 9976 void set body(FunctionBody functionBody) { | 8148 void set body(FunctionBody functionBody) { |
| 9977 _body = becomeParentOf(functionBody); | 8149 _body = becomeParentOf(functionBody); |
| 9978 } | 8150 } |
| 9979 | 8151 |
| 9980 /** | 8152 /** |
| 9981 * Set the token for the 'external' keyword to the given token. | |
| 9982 * | |
| 9983 * @param externalKeyword the token for the 'external' keyword | |
| 9984 */ | |
| 9985 void set externalKeyword(Token externalKeyword2) { | |
| 9986 this._externalKeyword = externalKeyword2; | |
| 9987 } | |
| 9988 | |
| 9989 /** | |
| 9990 * Set the token representing the 'abstract' or 'static' keyword to the given
token. | |
| 9991 * | |
| 9992 * @param modifierKeyword the token representing the 'abstract' or 'static' ke
yword | |
| 9993 */ | |
| 9994 void set modifierKeyword(Token modifierKeyword2) { | |
| 9995 this._modifierKeyword = modifierKeyword2; | |
| 9996 } | |
| 9997 | |
| 9998 /** | |
| 9999 * Set the name of the method to the given identifier. | 8153 * Set the name of the method to the given identifier. |
| 10000 * | 8154 * |
| 10001 * @param identifier the name of the method | 8155 * @param identifier the name of the method |
| 10002 */ | 8156 */ |
| 10003 void set name(SimpleIdentifier identifier) { | 8157 void set name(SimpleIdentifier identifier) { |
| 10004 _name = becomeParentOf(identifier); | 8158 _name = becomeParentOf(identifier); |
| 10005 } | 8159 } |
| 10006 | 8160 |
| 10007 /** | 8161 /** |
| 10008 * Set the token representing the 'operator' keyword to the given token. | |
| 10009 * | |
| 10010 * @param operatorKeyword the token representing the 'operator' keyword | |
| 10011 */ | |
| 10012 void set operatorKeyword(Token operatorKeyword2) { | |
| 10013 this._operatorKeyword = operatorKeyword2; | |
| 10014 } | |
| 10015 | |
| 10016 /** | |
| 10017 * Set the parameters associated with the method to the given list of paramete
rs. | 8162 * Set the parameters associated with the method to the given list of paramete
rs. |
| 10018 * | 8163 * |
| 10019 * @param parameters the parameters associated with the method | 8164 * @param parameters the parameters associated with the method |
| 10020 */ | 8165 */ |
| 10021 void set parameters(FormalParameterList parameters2) { | 8166 void set parameters(FormalParameterList parameters2) { |
| 10022 this._parameters = becomeParentOf(parameters2); | 8167 this._parameters = becomeParentOf(parameters2); |
| 10023 } | 8168 } |
| 10024 | 8169 |
| 10025 /** | 8170 /** |
| 10026 * Set the token representing the 'get' or 'set' keyword to the given token. | |
| 10027 * | |
| 10028 * @param propertyKeyword the token representing the 'get' or 'set' keyword | |
| 10029 */ | |
| 10030 void set propertyKeyword(Token propertyKeyword2) { | |
| 10031 this._propertyKeyword = propertyKeyword2; | |
| 10032 } | |
| 10033 | |
| 10034 /** | |
| 10035 * Set the return type of the method to the given type name. | 8171 * Set the return type of the method to the given type name. |
| 10036 * | 8172 * |
| 10037 * @param typeName the return type of the method | 8173 * @param typeName the return type of the method |
| 10038 */ | 8174 */ |
| 10039 void set returnType(TypeName typeName) { | 8175 void set returnType(TypeName typeName) { |
| 10040 _returnType = becomeParentOf(typeName); | 8176 _returnType = becomeParentOf(typeName); |
| 10041 } | 8177 } |
| 10042 void visitChildren(ASTVisitor visitor) { | 8178 void visitChildren(ASTVisitor visitor) { |
| 10043 super.visitChildren(visitor); | 8179 super.visitChildren(visitor); |
| 10044 safelyVisitChild(_returnType, visitor); | 8180 safelyVisitChild(_returnType, visitor); |
| 10045 safelyVisitChild(_name, visitor); | 8181 safelyVisitChild(_name, visitor); |
| 10046 safelyVisitChild(_parameters, visitor); | 8182 safelyVisitChild(_parameters, visitor); |
| 10047 safelyVisitChild(_body, visitor); | 8183 safelyVisitChild(_body, visitor); |
| 10048 } | 8184 } |
| 10049 Token get firstTokenAfterCommentAndMetadata { | 8185 Token get firstTokenAfterCommentAndMetadata { |
| 10050 if (_modifierKeyword != null) { | 8186 if (modifierKeyword != null) { |
| 10051 return _modifierKeyword; | 8187 return modifierKeyword; |
| 10052 } else if (_returnType != null) { | 8188 } else if (_returnType != null) { |
| 10053 return _returnType.beginToken; | 8189 return _returnType.beginToken; |
| 10054 } else if (_propertyKeyword != null) { | 8190 } else if (propertyKeyword != null) { |
| 10055 return _propertyKeyword; | 8191 return propertyKeyword; |
| 10056 } else if (_operatorKeyword != null) { | 8192 } else if (operatorKeyword != null) { |
| 10057 return _operatorKeyword; | 8193 return operatorKeyword; |
| 10058 } | 8194 } |
| 10059 return _name.beginToken; | 8195 return _name.beginToken; |
| 10060 } | 8196 } |
| 10061 } | 8197 } |
| 10062 /** | 8198 /** |
| 10063 * Instances of the class `MethodInvocation` represent the invocation of either
a function or | 8199 * Instances of the class `MethodInvocation` represent the invocation of either
a function or |
| 10064 * a method. Invocations of functions resulting from evaluating an expression ar
e represented by | 8200 * a method. Invocations of functions resulting from evaluating an expression ar
e represented by |
| 10065 * [FunctionExpressionInvocation] nodes. Invocations of getters | 8201 * [FunctionExpressionInvocation] nodes. Invocations of getters |
| 10066 * and setters are represented by either [PrefixedIdentifier] or | 8202 * and setters are represented by either [PrefixedIdentifier] or |
| 10067 * [PropertyAccess] nodes. | 8203 * [PropertyAccess] nodes. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 10078 /** | 8214 /** |
| 10079 * The expression producing the object on which the method is defined, or `nul
l` if there is | 8215 * The expression producing the object on which the method is defined, or `nul
l` if there is |
| 10080 * no target (that is, the target is implicitly `this`). | 8216 * no target (that is, the target is implicitly `this`). |
| 10081 */ | 8217 */ |
| 10082 Expression _target; | 8218 Expression _target; |
| 10083 | 8219 |
| 10084 /** | 8220 /** |
| 10085 * The period that separates the target from the method name, or `null` if the
re is no | 8221 * The period that separates the target from the method name, or `null` if the
re is no |
| 10086 * target. | 8222 * target. |
| 10087 */ | 8223 */ |
| 10088 Token _period; | 8224 Token period; |
| 10089 | 8225 |
| 10090 /** | 8226 /** |
| 10091 * The name of the method being invoked. | 8227 * The name of the method being invoked. |
| 10092 */ | 8228 */ |
| 10093 SimpleIdentifier _methodName; | 8229 SimpleIdentifier _methodName; |
| 10094 | 8230 |
| 10095 /** | 8231 /** |
| 10096 * The list of arguments to the method. | 8232 * The list of arguments to the method. |
| 10097 */ | 8233 */ |
| 10098 ArgumentList _argumentList; | 8234 ArgumentList _argumentList; |
| 10099 | 8235 |
| 10100 /** | 8236 /** |
| 10101 * Initialize a newly created method invocation. | 8237 * Initialize a newly created method invocation. |
| 10102 * | 8238 * |
| 10103 * @param target the expression producing the object on which the method is de
fined | 8239 * @param target the expression producing the object on which the method is de
fined |
| 10104 * @param period the period that separates the target from the method name | 8240 * @param period the period that separates the target from the method name |
| 10105 * @param methodName the name of the method being invoked | 8241 * @param methodName the name of the method being invoked |
| 10106 * @param argumentList the list of arguments to the method | 8242 * @param argumentList the list of arguments to the method |
| 10107 */ | 8243 */ |
| 10108 MethodInvocation.full(Expression target, Token period, SimpleIdentifier method
Name, ArgumentList argumentList) { | 8244 MethodInvocation.full(Expression target, Token period, SimpleIdentifier method
Name, ArgumentList argumentList) { |
| 10109 this._target = becomeParentOf(target); | 8245 this._target = becomeParentOf(target); |
| 10110 this._period = period; | 8246 this.period = period; |
| 10111 this._methodName = becomeParentOf(methodName); | 8247 this._methodName = becomeParentOf(methodName); |
| 10112 this._argumentList = becomeParentOf(argumentList); | 8248 this._argumentList = becomeParentOf(argumentList); |
| 10113 } | 8249 } |
| 10114 | 8250 |
| 10115 /** | 8251 /** |
| 10116 * Initialize a newly created method invocation. | 8252 * Initialize a newly created method invocation. |
| 10117 * | 8253 * |
| 10118 * @param target the expression producing the object on which the method is de
fined | 8254 * @param target the expression producing the object on which the method is de
fined |
| 10119 * @param period the period that separates the target from the method name | 8255 * @param period the period that separates the target from the method name |
| 10120 * @param methodName the name of the method being invoked | 8256 * @param methodName the name of the method being invoked |
| 10121 * @param argumentList the list of arguments to the method | 8257 * @param argumentList the list of arguments to the method |
| 10122 */ | 8258 */ |
| 10123 MethodInvocation({Expression target, Token period, SimpleIdentifier methodName
, ArgumentList argumentList}) : this.full(target, period, methodName, argumentLi
st); | 8259 MethodInvocation({Expression target, Token period, SimpleIdentifier methodName
, ArgumentList argumentList}) : this.full(target, period, methodName, argumentLi
st); |
| 10124 accept(ASTVisitor visitor) => visitor.visitMethodInvocation(this); | 8260 accept(ASTVisitor visitor) => visitor.visitMethodInvocation(this); |
| 10125 | 8261 |
| 10126 /** | 8262 /** |
| 10127 * Return the list of arguments to the method. | 8263 * Return the list of arguments to the method. |
| 10128 * | 8264 * |
| 10129 * @return the list of arguments to the method | 8265 * @return the list of arguments to the method |
| 10130 */ | 8266 */ |
| 10131 ArgumentList get argumentList => _argumentList; | 8267 ArgumentList get argumentList => _argumentList; |
| 10132 Token get beginToken { | 8268 Token get beginToken { |
| 10133 if (_target != null) { | 8269 if (_target != null) { |
| 10134 return _target.beginToken; | 8270 return _target.beginToken; |
| 10135 } else if (_period != null) { | 8271 } else if (period != null) { |
| 10136 return _period; | 8272 return period; |
| 10137 } | 8273 } |
| 10138 return _methodName.beginToken; | 8274 return _methodName.beginToken; |
| 10139 } | 8275 } |
| 10140 Token get endToken => _argumentList.endToken; | 8276 Token get endToken => _argumentList.endToken; |
| 10141 | 8277 |
| 10142 /** | 8278 /** |
| 10143 * Return the name of the method being invoked. | 8279 * Return the name of the method being invoked. |
| 10144 * | 8280 * |
| 10145 * @return the name of the method being invoked | 8281 * @return the name of the method being invoked |
| 10146 */ | 8282 */ |
| 10147 SimpleIdentifier get methodName => _methodName; | 8283 SimpleIdentifier get methodName => _methodName; |
| 10148 | 8284 |
| 10149 /** | 8285 /** |
| 10150 * Return the period that separates the target from the method name, or `null`
if there is | |
| 10151 * no target. | |
| 10152 * | |
| 10153 * @return the period that separates the target from the method name | |
| 10154 */ | |
| 10155 Token get period => _period; | |
| 10156 | |
| 10157 /** | |
| 10158 * Return the expression used to compute the receiver of the invocation. If th
is invocation is not | 8286 * Return the expression used to compute the receiver of the invocation. If th
is invocation is not |
| 10159 * part of a cascade expression, then this is the same as [getTarget]. If this
invocation | 8287 * part of a cascade expression, then this is the same as [getTarget]. If this
invocation |
| 10160 * is part of a cascade expression, then the target stored with the cascade ex
pression is | 8288 * is part of a cascade expression, then the target stored with the cascade ex
pression is |
| 10161 * returned. | 8289 * returned. |
| 10162 * | 8290 * |
| 10163 * @return the expression used to compute the receiver of the invocation | 8291 * @return the expression used to compute the receiver of the invocation |
| 10164 * @see #getTarget() | 8292 * @see #getTarget() |
| 10165 */ | 8293 */ |
| 10166 Expression get realTarget { | 8294 Expression get realTarget { |
| 10167 if (isCascaded) { | 8295 if (isCascaded) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 10187 */ | 8315 */ |
| 10188 Expression get target => _target; | 8316 Expression get target => _target; |
| 10189 | 8317 |
| 10190 /** | 8318 /** |
| 10191 * Return `true` if this expression is cascaded. If it is, then the target of
this | 8319 * Return `true` if this expression is cascaded. If it is, then the target of
this |
| 10192 * expression is not stored locally but is stored in the nearest ancestor that
is a | 8320 * expression is not stored locally but is stored in the nearest ancestor that
is a |
| 10193 * [CascadeExpression]. | 8321 * [CascadeExpression]. |
| 10194 * | 8322 * |
| 10195 * @return `true` if this expression is cascaded | 8323 * @return `true` if this expression is cascaded |
| 10196 */ | 8324 */ |
| 10197 bool get isCascaded => _period != null && identical(_period.type, TokenType.PE
RIOD_PERIOD); | 8325 bool get isCascaded => period != null && identical(period.type, TokenType.PERI
OD_PERIOD); |
| 10198 | 8326 |
| 10199 /** | 8327 /** |
| 10200 * Set the list of arguments to the method to the given list. | 8328 * Set the list of arguments to the method to the given list. |
| 10201 * | 8329 * |
| 10202 * @param argumentList the list of arguments to the method | 8330 * @param argumentList the list of arguments to the method |
| 10203 */ | 8331 */ |
| 10204 void set argumentList(ArgumentList argumentList2) { | 8332 void set argumentList(ArgumentList argumentList2) { |
| 10205 this._argumentList = becomeParentOf(argumentList2); | 8333 this._argumentList = becomeParentOf(argumentList2); |
| 10206 } | 8334 } |
| 10207 | 8335 |
| 10208 /** | 8336 /** |
| 10209 * Set the name of the method being invoked to the given identifier. | 8337 * Set the name of the method being invoked to the given identifier. |
| 10210 * | 8338 * |
| 10211 * @param identifier the name of the method being invoked | 8339 * @param identifier the name of the method being invoked |
| 10212 */ | 8340 */ |
| 10213 void set methodName(SimpleIdentifier identifier) { | 8341 void set methodName(SimpleIdentifier identifier) { |
| 10214 _methodName = becomeParentOf(identifier); | 8342 _methodName = becomeParentOf(identifier); |
| 10215 } | 8343 } |
| 10216 | 8344 |
| 10217 /** | 8345 /** |
| 10218 * Set the period that separates the target from the method name to the given
token. | |
| 10219 * | |
| 10220 * @param period the period that separates the target from the method name | |
| 10221 */ | |
| 10222 void set period(Token period2) { | |
| 10223 this._period = period2; | |
| 10224 } | |
| 10225 | |
| 10226 /** | |
| 10227 * Set the expression producing the object on which the method is defined to t
he given expression. | 8346 * Set the expression producing the object on which the method is defined to t
he given expression. |
| 10228 * | 8347 * |
| 10229 * @param expression the expression producing the object on which the method i
s defined | 8348 * @param expression the expression producing the object on which the method i
s defined |
| 10230 */ | 8349 */ |
| 10231 void set target(Expression expression) { | 8350 void set target(Expression expression) { |
| 10232 _target = becomeParentOf(expression); | 8351 _target = becomeParentOf(expression); |
| 10233 } | 8352 } |
| 10234 void visitChildren(ASTVisitor visitor) { | 8353 void visitChildren(ASTVisitor visitor) { |
| 10235 safelyVisitChild(_target, visitor); | 8354 safelyVisitChild(_target, visitor); |
| 10236 safelyVisitChild(_methodName, visitor); | 8355 safelyVisitChild(_methodName, visitor); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10348 abstract class NamespaceDirective extends UriBasedDirective { | 8467 abstract class NamespaceDirective extends UriBasedDirective { |
| 10349 | 8468 |
| 10350 /** | 8469 /** |
| 10351 * The token representing the 'import' or 'export' keyword. | 8470 * The token representing the 'import' or 'export' keyword. |
| 10352 */ | 8471 */ |
| 10353 Token _keyword; | 8472 Token _keyword; |
| 10354 | 8473 |
| 10355 /** | 8474 /** |
| 10356 * The combinators used to control which names are imported or exported. | 8475 * The combinators used to control which names are imported or exported. |
| 10357 */ | 8476 */ |
| 10358 NodeList<Combinator> _combinators; | 8477 NodeList<Combinator> combinators; |
| 10359 | 8478 |
| 10360 /** | 8479 /** |
| 10361 * The semicolon terminating the directive. | 8480 * The semicolon terminating the directive. |
| 10362 */ | 8481 */ |
| 10363 Token _semicolon; | 8482 Token semicolon; |
| 10364 | 8483 |
| 10365 /** | 8484 /** |
| 10366 * Initialize a newly created namespace directive. | 8485 * Initialize a newly created namespace directive. |
| 10367 * | 8486 * |
| 10368 * @param comment the documentation comment associated with this directive | 8487 * @param comment the documentation comment associated with this directive |
| 10369 * @param metadata the annotations associated with the directive | 8488 * @param metadata the annotations associated with the directive |
| 10370 * @param keyword the token representing the 'import' or 'export' keyword | 8489 * @param keyword the token representing the 'import' or 'export' keyword |
| 10371 * @param libraryUri the URI of the library being imported or exported | 8490 * @param libraryUri the URI of the library being imported or exported |
| 10372 * @param combinators the combinators used to control which names are imported
or exported | 8491 * @param combinators the combinators used to control which names are imported
or exported |
| 10373 * @param semicolon the semicolon terminating the directive | 8492 * @param semicolon the semicolon terminating the directive |
| 10374 */ | 8493 */ |
| 10375 NamespaceDirective.full(Comment comment, List<Annotation> metadata, Token keyw
ord, StringLiteral libraryUri, List<Combinator> combinators, Token semicolon) :
super.full(comment, metadata, libraryUri) { | 8494 NamespaceDirective.full(Comment comment, List<Annotation> metadata, Token keyw
ord, StringLiteral libraryUri, List<Combinator> combinators, Token semicolon) :
super.full(comment, metadata, libraryUri) { |
| 10376 this._combinators = new NodeList<Combinator>(this); | 8495 this.combinators = new NodeList<Combinator>(this); |
| 10377 this._keyword = keyword; | 8496 this._keyword = keyword; |
| 10378 this._combinators.addAll(combinators); | 8497 this.combinators.addAll(combinators); |
| 10379 this._semicolon = semicolon; | 8498 this.semicolon = semicolon; |
| 10380 } | 8499 } |
| 10381 | 8500 |
| 10382 /** | 8501 /** |
| 10383 * Initialize a newly created namespace directive. | 8502 * Initialize a newly created namespace directive. |
| 10384 * | 8503 * |
| 10385 * @param comment the documentation comment associated with this directive | 8504 * @param comment the documentation comment associated with this directive |
| 10386 * @param metadata the annotations associated with the directive | 8505 * @param metadata the annotations associated with the directive |
| 10387 * @param keyword the token representing the 'import' or 'export' keyword | 8506 * @param keyword the token representing the 'import' or 'export' keyword |
| 10388 * @param libraryUri the URI of the library being imported or exported | 8507 * @param libraryUri the URI of the library being imported or exported |
| 10389 * @param combinators the combinators used to control which names are imported
or exported | 8508 * @param combinators the combinators used to control which names are imported
or exported |
| 10390 * @param semicolon the semicolon terminating the directive | 8509 * @param semicolon the semicolon terminating the directive |
| 10391 */ | 8510 */ |
| 10392 NamespaceDirective({Comment comment, List<Annotation> metadata, Token keyword,
StringLiteral libraryUri, List<Combinator> combinators, Token semicolon}) : thi
s.full(comment, metadata, keyword, libraryUri, combinators, semicolon); | 8511 NamespaceDirective({Comment comment, List<Annotation> metadata, Token keyword,
StringLiteral libraryUri, List<Combinator> combinators, Token semicolon}) : thi
s.full(comment, metadata, keyword, libraryUri, combinators, semicolon); |
| 10393 | 8512 Token get endToken => semicolon; |
| 10394 /** | |
| 10395 * Return the combinators used to control how names are imported or exported. | |
| 10396 * | |
| 10397 * @return the combinators used to control how names are imported or exported | |
| 10398 */ | |
| 10399 NodeList<Combinator> get combinators => _combinators; | |
| 10400 Token get endToken => _semicolon; | |
| 10401 Token get keyword => _keyword; | 8513 Token get keyword => _keyword; |
| 10402 | |
| 10403 /** | |
| 10404 * Return the semicolon terminating the directive. | |
| 10405 * | |
| 10406 * @return the semicolon terminating the directive | |
| 10407 */ | |
| 10408 Token get semicolon => _semicolon; | |
| 10409 LibraryElement get uriElement; | 8514 LibraryElement get uriElement; |
| 10410 | 8515 |
| 10411 /** | 8516 /** |
| 10412 * Set the token representing the 'import' or 'export' keyword to the given to
ken. | 8517 * Set the token representing the 'import' or 'export' keyword to the given to
ken. |
| 10413 * | 8518 * |
| 10414 * @param exportToken the token representing the 'import' or 'export' keyword | 8519 * @param exportToken the token representing the 'import' or 'export' keyword |
| 10415 */ | 8520 */ |
| 10416 void set keyword(Token exportToken) { | 8521 void set keyword(Token exportToken) { |
| 10417 this._keyword = exportToken; | 8522 this._keyword = exportToken; |
| 10418 } | 8523 } |
| 10419 | |
| 10420 /** | |
| 10421 * Set the semicolon terminating the directive to the given token. | |
| 10422 * | |
| 10423 * @param semicolon the semicolon terminating the directive | |
| 10424 */ | |
| 10425 void set semicolon(Token semicolon2) { | |
| 10426 this._semicolon = semicolon2; | |
| 10427 } | |
| 10428 Token get firstTokenAfterCommentAndMetadata => _keyword; | 8524 Token get firstTokenAfterCommentAndMetadata => _keyword; |
| 10429 } | 8525 } |
| 10430 /** | 8526 /** |
| 10431 * Instances of the class `NativeClause` represent the "native" clause in an cla
ss | 8527 * Instances of the class `NativeClause` represent the "native" clause in an cla
ss |
| 10432 * declaration. | 8528 * declaration. |
| 10433 * | 8529 * |
| 10434 * <pre> | 8530 * <pre> |
| 10435 * nativeClause ::= | 8531 * nativeClause ::= |
| 10436 * 'native' [StringLiteral] | 8532 * 'native' [StringLiteral] |
| 10437 * </pre> | 8533 * </pre> |
| 10438 * | 8534 * |
| 10439 * @coverage dart.engine.ast | 8535 * @coverage dart.engine.ast |
| 10440 */ | 8536 */ |
| 10441 class NativeClause extends ASTNode { | 8537 class NativeClause extends ASTNode { |
| 10442 | 8538 |
| 10443 /** | 8539 /** |
| 10444 * The token representing the 'native' keyword. | 8540 * The token representing the 'native' keyword. |
| 10445 */ | 8541 */ |
| 10446 Token _keyword; | 8542 Token keyword; |
| 10447 | 8543 |
| 10448 /** | 8544 /** |
| 10449 * The name of the native object that implements the class. | 8545 * The name of the native object that implements the class. |
| 10450 */ | 8546 */ |
| 10451 StringLiteral _name; | 8547 StringLiteral name; |
| 10452 | 8548 |
| 10453 /** | 8549 /** |
| 10454 * Initialize a newly created native clause. | 8550 * Initialize a newly created native clause. |
| 10455 * | 8551 * |
| 10456 * @param keyword the token representing the 'native' keyword | 8552 * @param keyword the token representing the 'native' keyword |
| 10457 * @param name the name of the native object that implements the class. | 8553 * @param name the name of the native object that implements the class. |
| 10458 */ | 8554 */ |
| 10459 NativeClause.full(Token keyword, StringLiteral name) { | 8555 NativeClause.full(Token keyword, StringLiteral name) { |
| 10460 this._keyword = keyword; | 8556 this.keyword = keyword; |
| 10461 this._name = name; | 8557 this.name = name; |
| 10462 } | 8558 } |
| 10463 | 8559 |
| 10464 /** | 8560 /** |
| 10465 * Initialize a newly created native clause. | 8561 * Initialize a newly created native clause. |
| 10466 * | 8562 * |
| 10467 * @param keyword the token representing the 'native' keyword | 8563 * @param keyword the token representing the 'native' keyword |
| 10468 * @param name the name of the native object that implements the class. | 8564 * @param name the name of the native object that implements the class. |
| 10469 */ | 8565 */ |
| 10470 NativeClause({Token keyword, StringLiteral name}) : this.full(keyword, name); | 8566 NativeClause({Token keyword, StringLiteral name}) : this.full(keyword, name); |
| 10471 accept(ASTVisitor visitor) => visitor.visitNativeClause(this); | 8567 accept(ASTVisitor visitor) => visitor.visitNativeClause(this); |
| 10472 Token get beginToken => _keyword; | 8568 Token get beginToken => keyword; |
| 10473 Token get endToken => _name.endToken; | 8569 Token get endToken => name.endToken; |
| 10474 | |
| 10475 /** | |
| 10476 * Return the token representing the 'native' keyword. | |
| 10477 * | |
| 10478 * @return the token representing the 'native' keyword | |
| 10479 */ | |
| 10480 Token get keyword => _keyword; | |
| 10481 | |
| 10482 /** | |
| 10483 * Return the name of the native object that implements the class. | |
| 10484 * | |
| 10485 * @return the name of the native object that implements the class | |
| 10486 */ | |
| 10487 StringLiteral get name => _name; | |
| 10488 | |
| 10489 /** | |
| 10490 * Set the token representing the 'native' keyword to the given token. | |
| 10491 * | |
| 10492 * @param keyword the token representing the 'native' keyword | |
| 10493 */ | |
| 10494 void set keyword(Token keyword2) { | |
| 10495 this._keyword = keyword2; | |
| 10496 } | |
| 10497 | |
| 10498 /** | |
| 10499 * Sets the name of the native object that implements the class. | |
| 10500 * | |
| 10501 * @param name the name of the native object that implements the class. | |
| 10502 */ | |
| 10503 void set name(StringLiteral name2) { | |
| 10504 this._name = name2; | |
| 10505 } | |
| 10506 void visitChildren(ASTVisitor visitor) { | 8570 void visitChildren(ASTVisitor visitor) { |
| 10507 safelyVisitChild(_name, visitor); | 8571 safelyVisitChild(name, visitor); |
| 10508 } | 8572 } |
| 10509 } | 8573 } |
| 10510 /** | 8574 /** |
| 10511 * Instances of the class `NativeFunctionBody` represent a function body that co
nsists of a | 8575 * Instances of the class `NativeFunctionBody` represent a function body that co
nsists of a |
| 10512 * native keyword followed by a string literal. | 8576 * native keyword followed by a string literal. |
| 10513 * | 8577 * |
| 10514 * <pre> | 8578 * <pre> |
| 10515 * nativeFunctionBody ::= | 8579 * nativeFunctionBody ::= |
| 10516 * 'native' [SimpleStringLiteral] ';' | 8580 * 'native' [SimpleStringLiteral] ';' |
| 10517 * </pre> | 8581 * </pre> |
| 10518 * | 8582 * |
| 10519 * @coverage dart.engine.ast | 8583 * @coverage dart.engine.ast |
| 10520 */ | 8584 */ |
| 10521 class NativeFunctionBody extends FunctionBody { | 8585 class NativeFunctionBody extends FunctionBody { |
| 10522 | 8586 |
| 10523 /** | 8587 /** |
| 10524 * The token representing 'native' that marks the start of the function body. | 8588 * The token representing 'native' that marks the start of the function body. |
| 10525 */ | 8589 */ |
| 10526 Token _nativeToken; | 8590 Token nativeToken; |
| 10527 | 8591 |
| 10528 /** | 8592 /** |
| 10529 * The string literal, after the 'native' token. | 8593 * The string literal, after the 'native' token. |
| 10530 */ | 8594 */ |
| 10531 StringLiteral _stringLiteral; | 8595 StringLiteral stringLiteral; |
| 10532 | 8596 |
| 10533 /** | 8597 /** |
| 10534 * The token representing the semicolon that marks the end of the function bod
y. | 8598 * The token representing the semicolon that marks the end of the function bod
y. |
| 10535 */ | 8599 */ |
| 10536 Token _semicolon; | 8600 Token semicolon; |
| 10537 | 8601 |
| 10538 /** | 8602 /** |
| 10539 * Initialize a newly created function body consisting of the 'native' token,
a string literal, | 8603 * Initialize a newly created function body consisting of the 'native' token,
a string literal, |
| 10540 * and a semicolon. | 8604 * and a semicolon. |
| 10541 * | 8605 * |
| 10542 * @param nativeToken the token representing 'native' that marks the start of
the function body | 8606 * @param nativeToken the token representing 'native' that marks the start of
the function body |
| 10543 * @param stringLiteral the string literal | 8607 * @param stringLiteral the string literal |
| 10544 * @param semicolon the token representing the semicolon that marks the end of
the function body | 8608 * @param semicolon the token representing the semicolon that marks the end of
the function body |
| 10545 */ | 8609 */ |
| 10546 NativeFunctionBody.full(Token nativeToken, StringLiteral stringLiteral, Token
semicolon) { | 8610 NativeFunctionBody.full(Token nativeToken, StringLiteral stringLiteral, Token
semicolon) { |
| 10547 this._nativeToken = nativeToken; | 8611 this.nativeToken = nativeToken; |
| 10548 this._stringLiteral = becomeParentOf(stringLiteral); | 8612 this.stringLiteral = becomeParentOf(stringLiteral); |
| 10549 this._semicolon = semicolon; | 8613 this.semicolon = semicolon; |
| 10550 } | 8614 } |
| 10551 | 8615 |
| 10552 /** | 8616 /** |
| 10553 * Initialize a newly created function body consisting of the 'native' token,
a string literal, | 8617 * Initialize a newly created function body consisting of the 'native' token,
a string literal, |
| 10554 * and a semicolon. | 8618 * and a semicolon. |
| 10555 * | 8619 * |
| 10556 * @param nativeToken the token representing 'native' that marks the start of
the function body | 8620 * @param nativeToken the token representing 'native' that marks the start of
the function body |
| 10557 * @param stringLiteral the string literal | 8621 * @param stringLiteral the string literal |
| 10558 * @param semicolon the token representing the semicolon that marks the end of
the function body | 8622 * @param semicolon the token representing the semicolon that marks the end of
the function body |
| 10559 */ | 8623 */ |
| 10560 NativeFunctionBody({Token nativeToken, StringLiteral stringLiteral, Token semi
colon}) : this.full(nativeToken, stringLiteral, semicolon); | 8624 NativeFunctionBody({Token nativeToken, StringLiteral stringLiteral, Token semi
colon}) : this.full(nativeToken, stringLiteral, semicolon); |
| 10561 accept(ASTVisitor visitor) => visitor.visitNativeFunctionBody(this); | 8625 accept(ASTVisitor visitor) => visitor.visitNativeFunctionBody(this); |
| 10562 Token get beginToken => _nativeToken; | 8626 Token get beginToken => nativeToken; |
| 10563 Token get endToken => _semicolon; | 8627 Token get endToken => semicolon; |
| 10564 | |
| 10565 /** | |
| 10566 * Return the simple identifier representing the 'native' token. | |
| 10567 * | |
| 10568 * @return the simple identifier representing the 'native' token | |
| 10569 */ | |
| 10570 Token get nativeToken => _nativeToken; | |
| 10571 | |
| 10572 /** | |
| 10573 * Return the token representing the semicolon that marks the end of the funct
ion body. | |
| 10574 * | |
| 10575 * @return the token representing the semicolon that marks the end of the func
tion body | |
| 10576 */ | |
| 10577 Token get semicolon => _semicolon; | |
| 10578 | |
| 10579 /** | |
| 10580 * Return the string literal representing the string after the 'native' token. | |
| 10581 * | |
| 10582 * @return the string literal representing the string after the 'native' token | |
| 10583 */ | |
| 10584 StringLiteral get stringLiteral => _stringLiteral; | |
| 10585 void visitChildren(ASTVisitor visitor) { | 8628 void visitChildren(ASTVisitor visitor) { |
| 10586 safelyVisitChild(_stringLiteral, visitor); | 8629 safelyVisitChild(stringLiteral, visitor); |
| 10587 } | 8630 } |
| 10588 } | 8631 } |
| 10589 /** | 8632 /** |
| 10590 * The abstract class `NormalFormalParameter` defines the behavior common to for
mal parameters | 8633 * The abstract class `NormalFormalParameter` defines the behavior common to for
mal parameters |
| 10591 * that are required (are not optional). | 8634 * that are required (are not optional). |
| 10592 * | 8635 * |
| 10593 * <pre> | 8636 * <pre> |
| 10594 * normalFormalParameter ::= | 8637 * normalFormalParameter ::= |
| 10595 * [FunctionTypedFormalParameter] | 8638 * [FunctionTypedFormalParameter] |
| 10596 * | [FieldFormalParameter] | 8639 * | [FieldFormalParameter] |
| 10597 * | [SimpleFormalParameter] | 8640 * | [SimpleFormalParameter] |
| 10598 * </pre> | 8641 * </pre> |
| 10599 * | 8642 * |
| 10600 * @coverage dart.engine.ast | 8643 * @coverage dart.engine.ast |
| 10601 */ | 8644 */ |
| 10602 abstract class NormalFormalParameter extends FormalParameter { | 8645 abstract class NormalFormalParameter extends FormalParameter { |
| 10603 | 8646 |
| 10604 /** | 8647 /** |
| 10605 * The documentation comment associated with this parameter, or `null` if this
parameter | 8648 * The documentation comment associated with this parameter, or `null` if this
parameter |
| 10606 * does not have a documentation comment associated with it. | 8649 * does not have a documentation comment associated with it. |
| 10607 */ | 8650 */ |
| 10608 Comment _comment; | 8651 Comment _comment; |
| 10609 | 8652 |
| 10610 /** | 8653 /** |
| 10611 * The annotations associated with this parameter. | 8654 * The annotations associated with this parameter. |
| 10612 */ | 8655 */ |
| 10613 NodeList<Annotation> _metadata; | 8656 NodeList<Annotation> metadata; |
| 10614 | 8657 |
| 10615 /** | 8658 /** |
| 10616 * The name of the parameter being declared. | 8659 * The name of the parameter being declared. |
| 10617 */ | 8660 */ |
| 10618 SimpleIdentifier _identifier; | 8661 SimpleIdentifier _identifier; |
| 10619 | 8662 |
| 10620 /** | 8663 /** |
| 10621 * Initialize a newly created formal parameter. | 8664 * Initialize a newly created formal parameter. |
| 10622 * | 8665 * |
| 10623 * @param comment the documentation comment associated with this parameter | 8666 * @param comment the documentation comment associated with this parameter |
| 10624 * @param metadata the annotations associated with this parameter | 8667 * @param metadata the annotations associated with this parameter |
| 10625 * @param identifier the name of the parameter being declared | 8668 * @param identifier the name of the parameter being declared |
| 10626 */ | 8669 */ |
| 10627 NormalFormalParameter.full(Comment comment, List<Annotation> metadata, SimpleI
dentifier identifier) { | 8670 NormalFormalParameter.full(Comment comment, List<Annotation> metadata, SimpleI
dentifier identifier) { |
| 10628 this._metadata = new NodeList<Annotation>(this); | 8671 this.metadata = new NodeList<Annotation>(this); |
| 10629 this._comment = becomeParentOf(comment); | 8672 this._comment = becomeParentOf(comment); |
| 10630 this._metadata.addAll(metadata); | 8673 this.metadata.addAll(metadata); |
| 10631 this._identifier = becomeParentOf(identifier); | 8674 this._identifier = becomeParentOf(identifier); |
| 10632 } | 8675 } |
| 10633 | 8676 |
| 10634 /** | 8677 /** |
| 10635 * Initialize a newly created formal parameter. | 8678 * Initialize a newly created formal parameter. |
| 10636 * | 8679 * |
| 10637 * @param comment the documentation comment associated with this parameter | 8680 * @param comment the documentation comment associated with this parameter |
| 10638 * @param metadata the annotations associated with this parameter | 8681 * @param metadata the annotations associated with this parameter |
| 10639 * @param identifier the name of the parameter being declared | 8682 * @param identifier the name of the parameter being declared |
| 10640 */ | 8683 */ |
| 10641 NormalFormalParameter({Comment comment, List<Annotation> metadata, SimpleIdent
ifier identifier}) : this.full(comment, metadata, identifier); | 8684 NormalFormalParameter({Comment comment, List<Annotation> metadata, SimpleIdent
ifier identifier}) : this.full(comment, metadata, identifier); |
| 10642 | 8685 |
| 10643 /** | 8686 /** |
| 10644 * Return the documentation comment associated with this parameter, or `null`
if this | 8687 * Return the documentation comment associated with this parameter, or `null`
if this |
| 10645 * parameter does not have a documentation comment associated with it. | 8688 * parameter does not have a documentation comment associated with it. |
| 10646 * | 8689 * |
| 10647 * @return the documentation comment associated with this parameter | 8690 * @return the documentation comment associated with this parameter |
| 10648 */ | 8691 */ |
| 10649 Comment get documentationComment => _comment; | 8692 Comment get documentationComment => _comment; |
| 10650 SimpleIdentifier get identifier => _identifier; | 8693 SimpleIdentifier get identifier => _identifier; |
| 10651 ParameterKind get kind { | 8694 ParameterKind get kind { |
| 10652 ASTNode parent = this.parent; | 8695 ASTNode parent = this.parent; |
| 10653 if (parent is DefaultFormalParameter) { | 8696 if (parent is DefaultFormalParameter) { |
| 10654 return ((parent as DefaultFormalParameter)).kind; | 8697 return ((parent as DefaultFormalParameter)).kind; |
| 10655 } | 8698 } |
| 10656 return ParameterKind.REQUIRED; | 8699 return ParameterKind.REQUIRED; |
| 10657 } | 8700 } |
| 10658 | 8701 |
| 10659 /** | 8702 /** |
| 10660 * Return the annotations associated with this parameter. | |
| 10661 * | |
| 10662 * @return the annotations associated with this parameter | |
| 10663 */ | |
| 10664 NodeList<Annotation> get metadata => _metadata; | |
| 10665 | |
| 10666 /** | |
| 10667 * Set the documentation comment associated with this parameter to the given c
omment | 8703 * Set the documentation comment associated with this parameter to the given c
omment |
| 10668 * | 8704 * |
| 10669 * @param comment the documentation comment to be associated with this paramet
er | 8705 * @param comment the documentation comment to be associated with this paramet
er |
| 10670 */ | 8706 */ |
| 10671 void set documentationComment(Comment comment2) { | 8707 void set documentationComment(Comment comment2) { |
| 10672 this._comment = becomeParentOf(comment2); | 8708 this._comment = becomeParentOf(comment2); |
| 10673 } | 8709 } |
| 10674 | 8710 |
| 10675 /** | 8711 /** |
| 10676 * Set the name of the parameter being declared to the given identifier. | 8712 * Set the name of the parameter being declared to the given identifier. |
| 10677 * | 8713 * |
| 10678 * @param identifier the name of the parameter being declared | 8714 * @param identifier the name of the parameter being declared |
| 10679 */ | 8715 */ |
| 10680 void set identifier(SimpleIdentifier identifier2) { | 8716 void set identifier(SimpleIdentifier identifier2) { |
| 10681 this._identifier = becomeParentOf(identifier2); | 8717 this._identifier = becomeParentOf(identifier2); |
| 10682 } | 8718 } |
| 10683 void visitChildren(ASTVisitor visitor) { | 8719 void visitChildren(ASTVisitor visitor) { |
| 10684 if (commentIsBeforeAnnotations()) { | 8720 if (commentIsBeforeAnnotations()) { |
| 10685 safelyVisitChild(_comment, visitor); | 8721 safelyVisitChild(_comment, visitor); |
| 10686 _metadata.accept(visitor); | 8722 metadata.accept(visitor); |
| 10687 } else { | 8723 } else { |
| 10688 for (ASTNode child in sortedCommentAndAnnotations) { | 8724 for (ASTNode child in sortedCommentAndAnnotations) { |
| 10689 child.accept(visitor); | 8725 child.accept(visitor); |
| 10690 } | 8726 } |
| 10691 } | 8727 } |
| 10692 } | 8728 } |
| 10693 | 8729 |
| 10694 /** | 8730 /** |
| 10695 * Return `true` if the comment is lexically before any annotations. | 8731 * Return `true` if the comment is lexically before any annotations. |
| 10696 * | 8732 * |
| 10697 * @return `true` if the comment is lexically before any annotations | 8733 * @return `true` if the comment is lexically before any annotations |
| 10698 */ | 8734 */ |
| 10699 bool commentIsBeforeAnnotations() { | 8735 bool commentIsBeforeAnnotations() { |
| 10700 if (_comment == null || _metadata.isEmpty) { | 8736 if (_comment == null || metadata.isEmpty) { |
| 10701 return true; | 8737 return true; |
| 10702 } | 8738 } |
| 10703 Annotation firstAnnotation = _metadata[0]; | 8739 Annotation firstAnnotation = metadata[0]; |
| 10704 return _comment.offset < firstAnnotation.offset; | 8740 return _comment.offset < firstAnnotation.offset; |
| 10705 } | 8741 } |
| 10706 | 8742 |
| 10707 /** | 8743 /** |
| 10708 * Return an array containing the comment and annotations associated with this
parameter, sorted | 8744 * Return an array containing the comment and annotations associated with this
parameter, sorted |
| 10709 * in lexical order. | 8745 * in lexical order. |
| 10710 * | 8746 * |
| 10711 * @return the comment and annotations associated with this parameter in the o
rder in which they | 8747 * @return the comment and annotations associated with this parameter in the o
rder in which they |
| 10712 * appeared in the original source | 8748 * appeared in the original source |
| 10713 */ | 8749 */ |
| 10714 List<ASTNode> get sortedCommentAndAnnotations { | 8750 List<ASTNode> get sortedCommentAndAnnotations { |
| 10715 List<ASTNode> childList = new List<ASTNode>(); | 8751 List<ASTNode> childList = new List<ASTNode>(); |
| 10716 childList.add(_comment); | 8752 childList.add(_comment); |
| 10717 childList.addAll(_metadata); | 8753 childList.addAll(metadata); |
| 10718 List<ASTNode> children = new List.from(childList); | 8754 List<ASTNode> children = new List.from(childList); |
| 10719 children.sort(ASTNode.LEXICAL_ORDER); | 8755 children.sort(ASTNode.LEXICAL_ORDER); |
| 10720 return children; | 8756 return children; |
| 10721 } | 8757 } |
| 10722 } | 8758 } |
| 10723 /** | 8759 /** |
| 10724 * Instances of the class `NullLiteral` represent a null literal expression. | 8760 * Instances of the class `NullLiteral` represent a null literal expression. |
| 10725 * | 8761 * |
| 10726 * <pre> | 8762 * <pre> |
| 10727 * nullLiteral ::= | 8763 * nullLiteral ::= |
| 10728 * 'null' | 8764 * 'null' |
| 10729 * </pre> | 8765 * </pre> |
| 10730 * | 8766 * |
| 10731 * @coverage dart.engine.ast | 8767 * @coverage dart.engine.ast |
| 10732 */ | 8768 */ |
| 10733 class NullLiteral extends Literal { | 8769 class NullLiteral extends Literal { |
| 10734 | 8770 |
| 10735 /** | 8771 /** |
| 10736 * The token representing the literal. | 8772 * The token representing the literal. |
| 10737 */ | 8773 */ |
| 10738 Token _literal; | 8774 Token literal; |
| 10739 | 8775 |
| 10740 /** | 8776 /** |
| 10741 * Initialize a newly created null literal. | 8777 * Initialize a newly created null literal. |
| 10742 * | 8778 * |
| 10743 * @param token the token representing the literal | 8779 * @param token the token representing the literal |
| 10744 */ | 8780 */ |
| 10745 NullLiteral.full(Token token) { | 8781 NullLiteral.full(Token token) { |
| 10746 this._literal = token; | 8782 this.literal = token; |
| 10747 } | 8783 } |
| 10748 | 8784 |
| 10749 /** | 8785 /** |
| 10750 * Initialize a newly created null literal. | 8786 * Initialize a newly created null literal. |
| 10751 * | 8787 * |
| 10752 * @param token the token representing the literal | 8788 * @param token the token representing the literal |
| 10753 */ | 8789 */ |
| 10754 NullLiteral({Token token}) : this.full(token); | 8790 NullLiteral({Token token}) : this.full(token); |
| 10755 accept(ASTVisitor visitor) => visitor.visitNullLiteral(this); | 8791 accept(ASTVisitor visitor) => visitor.visitNullLiteral(this); |
| 10756 Token get beginToken => _literal; | 8792 Token get beginToken => literal; |
| 10757 Token get endToken => _literal; | 8793 Token get endToken => literal; |
| 10758 | |
| 10759 /** | |
| 10760 * Return the token representing the literal. | |
| 10761 * | |
| 10762 * @return the token representing the literal | |
| 10763 */ | |
| 10764 Token get literal => _literal; | |
| 10765 | |
| 10766 /** | |
| 10767 * Set the token representing the literal to the given token. | |
| 10768 * | |
| 10769 * @param literal the token representing the literal | |
| 10770 */ | |
| 10771 void set literal(Token literal2) { | |
| 10772 this._literal = literal2; | |
| 10773 } | |
| 10774 void visitChildren(ASTVisitor visitor) { | 8794 void visitChildren(ASTVisitor visitor) { |
| 10775 } | 8795 } |
| 10776 } | 8796 } |
| 10777 /** | 8797 /** |
| 10778 * Instances of the class `ParenthesizedExpression` represent a parenthesized ex
pression. | 8798 * Instances of the class `ParenthesizedExpression` represent a parenthesized ex
pression. |
| 10779 * | 8799 * |
| 10780 * <pre> | 8800 * <pre> |
| 10781 * parenthesizedExpression ::= | 8801 * parenthesizedExpression ::= |
| 10782 * '(' [Expression] ')' | 8802 * '(' [Expression] ')' |
| 10783 * </pre> | 8803 * </pre> |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10885 * [Annotation] 'part' [StringLiteral] ';' | 8905 * [Annotation] 'part' [StringLiteral] ';' |
| 10886 * </pre> | 8906 * </pre> |
| 10887 * | 8907 * |
| 10888 * @coverage dart.engine.ast | 8908 * @coverage dart.engine.ast |
| 10889 */ | 8909 */ |
| 10890 class PartDirective extends UriBasedDirective { | 8910 class PartDirective extends UriBasedDirective { |
| 10891 | 8911 |
| 10892 /** | 8912 /** |
| 10893 * The token representing the 'part' token. | 8913 * The token representing the 'part' token. |
| 10894 */ | 8914 */ |
| 10895 Token _partToken; | 8915 Token partToken; |
| 10896 | 8916 |
| 10897 /** | 8917 /** |
| 10898 * The semicolon terminating the directive. | 8918 * The semicolon terminating the directive. |
| 10899 */ | 8919 */ |
| 10900 Token _semicolon; | 8920 Token semicolon; |
| 10901 | 8921 |
| 10902 /** | 8922 /** |
| 10903 * Initialize a newly created part directive. | 8923 * Initialize a newly created part directive. |
| 10904 * | 8924 * |
| 10905 * @param comment the documentation comment associated with this directive | 8925 * @param comment the documentation comment associated with this directive |
| 10906 * @param metadata the annotations associated with the directive | 8926 * @param metadata the annotations associated with the directive |
| 10907 * @param partToken the token representing the 'part' token | 8927 * @param partToken the token representing the 'part' token |
| 10908 * @param partUri the URI of the part being included | 8928 * @param partUri the URI of the part being included |
| 10909 * @param semicolon the semicolon terminating the directive | 8929 * @param semicolon the semicolon terminating the directive |
| 10910 */ | 8930 */ |
| 10911 PartDirective.full(Comment comment, List<Annotation> metadata, Token partToken
, StringLiteral partUri, Token semicolon) : super.full(comment, metadata, partUr
i) { | 8931 PartDirective.full(Comment comment, List<Annotation> metadata, Token partToken
, StringLiteral partUri, Token semicolon) : super.full(comment, metadata, partUr
i) { |
| 10912 this._partToken = partToken; | 8932 this.partToken = partToken; |
| 10913 this._semicolon = semicolon; | 8933 this.semicolon = semicolon; |
| 10914 } | 8934 } |
| 10915 | 8935 |
| 10916 /** | 8936 /** |
| 10917 * Initialize a newly created part directive. | 8937 * Initialize a newly created part directive. |
| 10918 * | 8938 * |
| 10919 * @param comment the documentation comment associated with this directive | 8939 * @param comment the documentation comment associated with this directive |
| 10920 * @param metadata the annotations associated with the directive | 8940 * @param metadata the annotations associated with the directive |
| 10921 * @param partToken the token representing the 'part' token | 8941 * @param partToken the token representing the 'part' token |
| 10922 * @param partUri the URI of the part being included | 8942 * @param partUri the URI of the part being included |
| 10923 * @param semicolon the semicolon terminating the directive | 8943 * @param semicolon the semicolon terminating the directive |
| 10924 */ | 8944 */ |
| 10925 PartDirective({Comment comment, List<Annotation> metadata, Token partToken, St
ringLiteral partUri, Token semicolon}) : this.full(comment, metadata, partToken,
partUri, semicolon); | 8945 PartDirective({Comment comment, List<Annotation> metadata, Token partToken, St
ringLiteral partUri, Token semicolon}) : this.full(comment, metadata, partToken,
partUri, semicolon); |
| 10926 accept(ASTVisitor visitor) => visitor.visitPartDirective(this); | 8946 accept(ASTVisitor visitor) => visitor.visitPartDirective(this); |
| 10927 Token get endToken => _semicolon; | 8947 Token get endToken => semicolon; |
| 10928 Token get keyword => _partToken; | 8948 Token get keyword => partToken; |
| 10929 | |
| 10930 /** | |
| 10931 * Return the token representing the 'part' token. | |
| 10932 * | |
| 10933 * @return the token representing the 'part' token | |
| 10934 */ | |
| 10935 Token get partToken => _partToken; | |
| 10936 | |
| 10937 /** | |
| 10938 * Return the semicolon terminating the directive. | |
| 10939 * | |
| 10940 * @return the semicolon terminating the directive | |
| 10941 */ | |
| 10942 Token get semicolon => _semicolon; | |
| 10943 CompilationUnitElement get uriElement => element as CompilationUnitElement; | 8949 CompilationUnitElement get uriElement => element as CompilationUnitElement; |
| 10944 | 8950 Token get firstTokenAfterCommentAndMetadata => partToken; |
| 10945 /** | |
| 10946 * Set the token representing the 'part' token to the given token. | |
| 10947 * | |
| 10948 * @param partToken the token representing the 'part' token | |
| 10949 */ | |
| 10950 void set partToken(Token partToken2) { | |
| 10951 this._partToken = partToken2; | |
| 10952 } | |
| 10953 | |
| 10954 /** | |
| 10955 * Set the semicolon terminating the directive to the given token. | |
| 10956 * | |
| 10957 * @param semicolon the semicolon terminating the directive | |
| 10958 */ | |
| 10959 void set semicolon(Token semicolon2) { | |
| 10960 this._semicolon = semicolon2; | |
| 10961 } | |
| 10962 Token get firstTokenAfterCommentAndMetadata => _partToken; | |
| 10963 } | 8951 } |
| 10964 /** | 8952 /** |
| 10965 * Instances of the class `PartOfDirective` represent a part-of directive. | 8953 * Instances of the class `PartOfDirective` represent a part-of directive. |
| 10966 * | 8954 * |
| 10967 * <pre> | 8955 * <pre> |
| 10968 * partOfDirective ::= | 8956 * partOfDirective ::= |
| 10969 * [Annotation] 'part' 'of' [Identifier] ';' | 8957 * [Annotation] 'part' 'of' [Identifier] ';' |
| 10970 * </pre> | 8958 * </pre> |
| 10971 * | 8959 * |
| 10972 * @coverage dart.engine.ast | 8960 * @coverage dart.engine.ast |
| 10973 */ | 8961 */ |
| 10974 class PartOfDirective extends Directive { | 8962 class PartOfDirective extends Directive { |
| 10975 | 8963 |
| 10976 /** | 8964 /** |
| 10977 * The token representing the 'part' token. | 8965 * The token representing the 'part' token. |
| 10978 */ | 8966 */ |
| 10979 Token _partToken; | 8967 Token partToken; |
| 10980 | 8968 |
| 10981 /** | 8969 /** |
| 10982 * The token representing the 'of' token. | 8970 * The token representing the 'of' token. |
| 10983 */ | 8971 */ |
| 10984 Token _ofToken; | 8972 Token ofToken; |
| 10985 | 8973 |
| 10986 /** | 8974 /** |
| 10987 * The name of the library that the containing compilation unit is part of. | 8975 * The name of the library that the containing compilation unit is part of. |
| 10988 */ | 8976 */ |
| 10989 LibraryIdentifier _libraryName; | 8977 LibraryIdentifier _libraryName; |
| 10990 | 8978 |
| 10991 /** | 8979 /** |
| 10992 * The semicolon terminating the directive. | 8980 * The semicolon terminating the directive. |
| 10993 */ | 8981 */ |
| 10994 Token _semicolon; | 8982 Token semicolon; |
| 10995 | 8983 |
| 10996 /** | 8984 /** |
| 10997 * Initialize a newly created part-of directive. | 8985 * Initialize a newly created part-of directive. |
| 10998 * | 8986 * |
| 10999 * @param comment the documentation comment associated with this directive | 8987 * @param comment the documentation comment associated with this directive |
| 11000 * @param metadata the annotations associated with the directive | 8988 * @param metadata the annotations associated with the directive |
| 11001 * @param partToken the token representing the 'part' token | 8989 * @param partToken the token representing the 'part' token |
| 11002 * @param ofToken the token representing the 'of' token | 8990 * @param ofToken the token representing the 'of' token |
| 11003 * @param libraryName the name of the library that the containing compilation
unit is part of | 8991 * @param libraryName the name of the library that the containing compilation
unit is part of |
| 11004 * @param semicolon the semicolon terminating the directive | 8992 * @param semicolon the semicolon terminating the directive |
| 11005 */ | 8993 */ |
| 11006 PartOfDirective.full(Comment comment, List<Annotation> metadata, Token partTok
en, Token ofToken, LibraryIdentifier libraryName, Token semicolon) : super.full(
comment, metadata) { | 8994 PartOfDirective.full(Comment comment, List<Annotation> metadata, Token partTok
en, Token ofToken, LibraryIdentifier libraryName, Token semicolon) : super.full(
comment, metadata) { |
| 11007 this._partToken = partToken; | 8995 this.partToken = partToken; |
| 11008 this._ofToken = ofToken; | 8996 this.ofToken = ofToken; |
| 11009 this._libraryName = becomeParentOf(libraryName); | 8997 this._libraryName = becomeParentOf(libraryName); |
| 11010 this._semicolon = semicolon; | 8998 this.semicolon = semicolon; |
| 11011 } | 8999 } |
| 11012 | 9000 |
| 11013 /** | 9001 /** |
| 11014 * Initialize a newly created part-of directive. | 9002 * Initialize a newly created part-of directive. |
| 11015 * | 9003 * |
| 11016 * @param comment the documentation comment associated with this directive | 9004 * @param comment the documentation comment associated with this directive |
| 11017 * @param metadata the annotations associated with the directive | 9005 * @param metadata the annotations associated with the directive |
| 11018 * @param partToken the token representing the 'part' token | 9006 * @param partToken the token representing the 'part' token |
| 11019 * @param ofToken the token representing the 'of' token | 9007 * @param ofToken the token representing the 'of' token |
| 11020 * @param libraryName the name of the library that the containing compilation
unit is part of | 9008 * @param libraryName the name of the library that the containing compilation
unit is part of |
| 11021 * @param semicolon the semicolon terminating the directive | 9009 * @param semicolon the semicolon terminating the directive |
| 11022 */ | 9010 */ |
| 11023 PartOfDirective({Comment comment, List<Annotation> metadata, Token partToken,
Token ofToken, LibraryIdentifier libraryName, Token semicolon}) : this.full(comm
ent, metadata, partToken, ofToken, libraryName, semicolon); | 9011 PartOfDirective({Comment comment, List<Annotation> metadata, Token partToken,
Token ofToken, LibraryIdentifier libraryName, Token semicolon}) : this.full(comm
ent, metadata, partToken, ofToken, libraryName, semicolon); |
| 11024 accept(ASTVisitor visitor) => visitor.visitPartOfDirective(this); | 9012 accept(ASTVisitor visitor) => visitor.visitPartOfDirective(this); |
| 11025 Token get endToken => _semicolon; | 9013 Token get endToken => semicolon; |
| 11026 Token get keyword => _partToken; | 9014 Token get keyword => partToken; |
| 11027 | 9015 |
| 11028 /** | 9016 /** |
| 11029 * Return the name of the library that the containing compilation unit is part
of. | 9017 * Return the name of the library that the containing compilation unit is part
of. |
| 11030 * | 9018 * |
| 11031 * @return the name of the library that the containing compilation unit is par
t of | 9019 * @return the name of the library that the containing compilation unit is par
t of |
| 11032 */ | 9020 */ |
| 11033 LibraryIdentifier get libraryName => _libraryName; | 9021 LibraryIdentifier get libraryName => _libraryName; |
| 11034 | 9022 |
| 11035 /** | 9023 /** |
| 11036 * Return the token representing the 'of' token. | |
| 11037 * | |
| 11038 * @return the token representing the 'of' token | |
| 11039 */ | |
| 11040 Token get ofToken => _ofToken; | |
| 11041 | |
| 11042 /** | |
| 11043 * Return the token representing the 'part' token. | |
| 11044 * | |
| 11045 * @return the token representing the 'part' token | |
| 11046 */ | |
| 11047 Token get partToken => _partToken; | |
| 11048 | |
| 11049 /** | |
| 11050 * Return the semicolon terminating the directive. | |
| 11051 * | |
| 11052 * @return the semicolon terminating the directive | |
| 11053 */ | |
| 11054 Token get semicolon => _semicolon; | |
| 11055 | |
| 11056 /** | |
| 11057 * Set the name of the library that the containing compilation unit is part of
to the given name. | 9024 * Set the name of the library that the containing compilation unit is part of
to the given name. |
| 11058 * | 9025 * |
| 11059 * @param libraryName the name of the library that the containing compilation
unit is part of | 9026 * @param libraryName the name of the library that the containing compilation
unit is part of |
| 11060 */ | 9027 */ |
| 11061 void set libraryName(LibraryIdentifier libraryName2) { | 9028 void set libraryName(LibraryIdentifier libraryName2) { |
| 11062 this._libraryName = becomeParentOf(libraryName2); | 9029 this._libraryName = becomeParentOf(libraryName2); |
| 11063 } | 9030 } |
| 11064 | |
| 11065 /** | |
| 11066 * Set the token representing the 'of' token to the given token. | |
| 11067 * | |
| 11068 * @param ofToken the token representing the 'of' token | |
| 11069 */ | |
| 11070 void set ofToken(Token ofToken2) { | |
| 11071 this._ofToken = ofToken2; | |
| 11072 } | |
| 11073 | |
| 11074 /** | |
| 11075 * Set the token representing the 'part' token to the given token. | |
| 11076 * | |
| 11077 * @param partToken the token representing the 'part' token | |
| 11078 */ | |
| 11079 void set partToken(Token partToken2) { | |
| 11080 this._partToken = partToken2; | |
| 11081 } | |
| 11082 | |
| 11083 /** | |
| 11084 * Set the semicolon terminating the directive to the given token. | |
| 11085 * | |
| 11086 * @param semicolon the semicolon terminating the directive | |
| 11087 */ | |
| 11088 void set semicolon(Token semicolon2) { | |
| 11089 this._semicolon = semicolon2; | |
| 11090 } | |
| 11091 void visitChildren(ASTVisitor visitor) { | 9031 void visitChildren(ASTVisitor visitor) { |
| 11092 super.visitChildren(visitor); | 9032 super.visitChildren(visitor); |
| 11093 safelyVisitChild(_libraryName, visitor); | 9033 safelyVisitChild(_libraryName, visitor); |
| 11094 } | 9034 } |
| 11095 Token get firstTokenAfterCommentAndMetadata => _partToken; | 9035 Token get firstTokenAfterCommentAndMetadata => partToken; |
| 11096 } | 9036 } |
| 11097 /** | 9037 /** |
| 11098 * Instances of the class `PostfixExpression` represent a postfix unary expressi
on. | 9038 * Instances of the class `PostfixExpression` represent a postfix unary expressi
on. |
| 11099 * | 9039 * |
| 11100 * <pre> | 9040 * <pre> |
| 11101 * postfixExpression ::= | 9041 * postfixExpression ::= |
| 11102 * [Expression] [Token] | 9042 * [Expression] [Token] |
| 11103 * </pre> | 9043 * </pre> |
| 11104 * | 9044 * |
| 11105 * @coverage dart.engine.ast | 9045 * @coverage dart.engine.ast |
| 11106 */ | 9046 */ |
| 11107 class PostfixExpression extends Expression { | 9047 class PostfixExpression extends Expression { |
| 11108 | 9048 |
| 11109 /** | 9049 /** |
| 11110 * The expression computing the operand for the operator. | 9050 * The expression computing the operand for the operator. |
| 11111 */ | 9051 */ |
| 11112 Expression _operand; | 9052 Expression _operand; |
| 11113 | 9053 |
| 11114 /** | 9054 /** |
| 11115 * The postfix operator being applied to the operand. | 9055 * The postfix operator being applied to the operand. |
| 11116 */ | 9056 */ |
| 11117 Token _operator; | 9057 Token operator; |
| 11118 | 9058 |
| 11119 /** | 9059 /** |
| 11120 * The element associated with this the operator based on the propagated type
of the operand, or | 9060 * The element associated with this the operator based on the propagated type
of the operand, or |
| 11121 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9061 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11122 * or if the operator could not be resolved. | 9062 * or if the operator could not be resolved. |
| 11123 */ | 9063 */ |
| 11124 MethodElement _propagatedElement; | 9064 MethodElement _propagatedElement; |
| 11125 | 9065 |
| 11126 /** | 9066 /** |
| 11127 * The element associated with the operator based on the static type of the op
erand, or | 9067 * The element associated with the operator based on the static type of the op
erand, or |
| 11128 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9068 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11129 * or if the operator could not be resolved. | 9069 * or if the operator could not be resolved. |
| 11130 */ | 9070 */ |
| 11131 MethodElement _staticElement; | 9071 MethodElement _staticElement; |
| 11132 | 9072 |
| 11133 /** | 9073 /** |
| 11134 * Initialize a newly created postfix expression. | 9074 * Initialize a newly created postfix expression. |
| 11135 * | 9075 * |
| 11136 * @param operand the expression computing the operand for the operator | 9076 * @param operand the expression computing the operand for the operator |
| 11137 * @param operator the postfix operator being applied to the operand | 9077 * @param operator the postfix operator being applied to the operand |
| 11138 */ | 9078 */ |
| 11139 PostfixExpression.full(Expression operand, Token operator) { | 9079 PostfixExpression.full(Expression operand, Token operator) { |
| 11140 this._operand = becomeParentOf(operand); | 9080 this._operand = becomeParentOf(operand); |
| 11141 this._operator = operator; | 9081 this.operator = operator; |
| 11142 } | 9082 } |
| 11143 | 9083 |
| 11144 /** | 9084 /** |
| 11145 * Initialize a newly created postfix expression. | 9085 * Initialize a newly created postfix expression. |
| 11146 * | 9086 * |
| 11147 * @param operand the expression computing the operand for the operator | 9087 * @param operand the expression computing the operand for the operator |
| 11148 * @param operator the postfix operator being applied to the operand | 9088 * @param operator the postfix operator being applied to the operand |
| 11149 */ | 9089 */ |
| 11150 PostfixExpression({Expression operand, Token operator}) : this.full(operand, o
perator); | 9090 PostfixExpression({Expression operand, Token operator}) : this.full(operand, o
perator); |
| 11151 accept(ASTVisitor visitor) => visitor.visitPostfixExpression(this); | 9091 accept(ASTVisitor visitor) => visitor.visitPostfixExpression(this); |
| 11152 Token get beginToken => _operand.beginToken; | 9092 Token get beginToken => _operand.beginToken; |
| 11153 | 9093 |
| 11154 /** | 9094 /** |
| 11155 * Return the best element available for this operator. If resolution was able
to find a better | 9095 * Return the best element available for this operator. If resolution was able
to find a better |
| 11156 * element based on type propagation, that element will be returned. Otherwise
, the element found | 9096 * element based on type propagation, that element will be returned. Otherwise
, the element found |
| 11157 * using the result of static analysis will be returned. If resolution has not
been performed, | 9097 * using the result of static analysis will be returned. If resolution has not
been performed, |
| 11158 * then `null` will be returned. | 9098 * then `null` will be returned. |
| 11159 * | 9099 * |
| 11160 * @return the best element available for this operator | 9100 * @return the best element available for this operator |
| 11161 */ | 9101 */ |
| 11162 MethodElement get bestElement { | 9102 MethodElement get bestElement { |
| 11163 MethodElement element = propagatedElement; | 9103 MethodElement element = propagatedElement; |
| 11164 if (element == null) { | 9104 if (element == null) { |
| 11165 element = staticElement; | 9105 element = staticElement; |
| 11166 } | 9106 } |
| 11167 return element; | 9107 return element; |
| 11168 } | 9108 } |
| 11169 Token get endToken => _operator; | 9109 Token get endToken => operator; |
| 11170 | 9110 |
| 11171 /** | 9111 /** |
| 11172 * Return the expression computing the operand for the operator. | 9112 * Return the expression computing the operand for the operator. |
| 11173 * | 9113 * |
| 11174 * @return the expression computing the operand for the operator | 9114 * @return the expression computing the operand for the operator |
| 11175 */ | 9115 */ |
| 11176 Expression get operand => _operand; | 9116 Expression get operand => _operand; |
| 11177 | 9117 |
| 11178 /** | 9118 /** |
| 11179 * Return the postfix operator being applied to the operand. | |
| 11180 * | |
| 11181 * @return the postfix operator being applied to the operand | |
| 11182 */ | |
| 11183 Token get operator => _operator; | |
| 11184 | |
| 11185 /** | |
| 11186 * Return the element associated with the operator based on the propagated typ
e of the operand, or | 9119 * Return the element associated with the operator based on the propagated typ
e of the operand, or |
| 11187 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9120 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11188 * or if the operator could not be resolved. One example of the latter case is
an operator that is | 9121 * or if the operator could not be resolved. One example of the latter case is
an operator that is |
| 11189 * not defined for the type of the operand. | 9122 * not defined for the type of the operand. |
| 11190 * | 9123 * |
| 11191 * @return the element associated with the operator | 9124 * @return the element associated with the operator |
| 11192 */ | 9125 */ |
| 11193 MethodElement get propagatedElement => _propagatedElement; | 9126 MethodElement get propagatedElement => _propagatedElement; |
| 11194 | 9127 |
| 11195 /** | 9128 /** |
| 11196 * Return the element associated with the operator based on the static type of
the operand, or | 9129 * Return the element associated with the operator based on the static type of
the operand, or |
| 11197 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9130 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11198 * or if the operator could not be resolved. One example of the latter case is
an operator that is | 9131 * or if the operator could not be resolved. One example of the latter case is
an operator that is |
| 11199 * not defined for the type of the operand. | 9132 * not defined for the type of the operand. |
| 11200 * | 9133 * |
| 11201 * @return the element associated with the operator | 9134 * @return the element associated with the operator |
| 11202 */ | 9135 */ |
| 11203 MethodElement get staticElement => _staticElement; | 9136 MethodElement get staticElement => _staticElement; |
| 11204 | 9137 |
| 11205 /** | 9138 /** |
| 11206 * Set the expression computing the operand for the operator to the given expr
ession. | 9139 * Set the expression computing the operand for the operator to the given expr
ession. |
| 11207 * | 9140 * |
| 11208 * @param expression the expression computing the operand for the operator | 9141 * @param expression the expression computing the operand for the operator |
| 11209 */ | 9142 */ |
| 11210 void set operand(Expression expression) { | 9143 void set operand(Expression expression) { |
| 11211 _operand = becomeParentOf(expression); | 9144 _operand = becomeParentOf(expression); |
| 11212 } | 9145 } |
| 11213 | 9146 |
| 11214 /** | 9147 /** |
| 11215 * Set the postfix operator being applied to the operand to the given operator
. | |
| 11216 * | |
| 11217 * @param operator the postfix operator being applied to the operand | |
| 11218 */ | |
| 11219 void set operator(Token operator2) { | |
| 11220 this._operator = operator2; | |
| 11221 } | |
| 11222 | |
| 11223 /** | |
| 11224 * Set the element associated with the operator based on the propagated type o
f the operand to the | 9148 * Set the element associated with the operator based on the propagated type o
f the operand to the |
| 11225 * given element. | 9149 * given element. |
| 11226 * | 9150 * |
| 11227 * @param element the element to be associated with the operator | 9151 * @param element the element to be associated with the operator |
| 11228 */ | 9152 */ |
| 11229 void set propagatedElement(MethodElement element) { | 9153 void set propagatedElement(MethodElement element) { |
| 11230 _propagatedElement = element; | 9154 _propagatedElement = element; |
| 11231 } | 9155 } |
| 11232 | 9156 |
| 11233 /** | 9157 /** |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11293 * [Token] [Expression] | 9217 * [Token] [Expression] |
| 11294 * </pre> | 9218 * </pre> |
| 11295 * | 9219 * |
| 11296 * @coverage dart.engine.ast | 9220 * @coverage dart.engine.ast |
| 11297 */ | 9221 */ |
| 11298 class PrefixExpression extends Expression { | 9222 class PrefixExpression extends Expression { |
| 11299 | 9223 |
| 11300 /** | 9224 /** |
| 11301 * The prefix operator being applied to the operand. | 9225 * The prefix operator being applied to the operand. |
| 11302 */ | 9226 */ |
| 11303 Token _operator; | 9227 Token operator; |
| 11304 | 9228 |
| 11305 /** | 9229 /** |
| 11306 * The expression computing the operand for the operator. | 9230 * The expression computing the operand for the operator. |
| 11307 */ | 9231 */ |
| 11308 Expression _operand; | 9232 Expression _operand; |
| 11309 | 9233 |
| 11310 /** | 9234 /** |
| 11311 * The element associated with the operator based on the static type of the op
erand, or | 9235 * The element associated with the operator based on the static type of the op
erand, or |
| 11312 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9236 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11313 * or if the operator could not be resolved. | 9237 * or if the operator could not be resolved. |
| 11314 */ | 9238 */ |
| 11315 MethodElement _staticElement; | 9239 MethodElement _staticElement; |
| 11316 | 9240 |
| 11317 /** | 9241 /** |
| 11318 * The element associated with the operator based on the propagated type of th
e operand, or | 9242 * The element associated with the operator based on the propagated type of th
e operand, or |
| 11319 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9243 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11320 * or if the operator could not be resolved. | 9244 * or if the operator could not be resolved. |
| 11321 */ | 9245 */ |
| 11322 MethodElement _propagatedElement; | 9246 MethodElement _propagatedElement; |
| 11323 | 9247 |
| 11324 /** | 9248 /** |
| 11325 * Initialize a newly created prefix expression. | 9249 * Initialize a newly created prefix expression. |
| 11326 * | 9250 * |
| 11327 * @param operator the prefix operator being applied to the operand | 9251 * @param operator the prefix operator being applied to the operand |
| 11328 * @param operand the expression computing the operand for the operator | 9252 * @param operand the expression computing the operand for the operator |
| 11329 */ | 9253 */ |
| 11330 PrefixExpression.full(Token operator, Expression operand) { | 9254 PrefixExpression.full(Token operator, Expression operand) { |
| 11331 this._operator = operator; | 9255 this.operator = operator; |
| 11332 this._operand = becomeParentOf(operand); | 9256 this._operand = becomeParentOf(operand); |
| 11333 } | 9257 } |
| 11334 | 9258 |
| 11335 /** | 9259 /** |
| 11336 * Initialize a newly created prefix expression. | 9260 * Initialize a newly created prefix expression. |
| 11337 * | 9261 * |
| 11338 * @param operator the prefix operator being applied to the operand | 9262 * @param operator the prefix operator being applied to the operand |
| 11339 * @param operand the expression computing the operand for the operator | 9263 * @param operand the expression computing the operand for the operator |
| 11340 */ | 9264 */ |
| 11341 PrefixExpression({Token operator, Expression operand}) : this.full(operator, o
perand); | 9265 PrefixExpression({Token operator, Expression operand}) : this.full(operator, o
perand); |
| 11342 accept(ASTVisitor visitor) => visitor.visitPrefixExpression(this); | 9266 accept(ASTVisitor visitor) => visitor.visitPrefixExpression(this); |
| 11343 Token get beginToken => _operator; | 9267 Token get beginToken => operator; |
| 11344 | 9268 |
| 11345 /** | 9269 /** |
| 11346 * Return the best element available for this operator. If resolution was able
to find a better | 9270 * Return the best element available for this operator. If resolution was able
to find a better |
| 11347 * element based on type propagation, that element will be returned. Otherwise
, the element found | 9271 * element based on type propagation, that element will be returned. Otherwise
, the element found |
| 11348 * using the result of static analysis will be returned. If resolution has not
been performed, | 9272 * using the result of static analysis will be returned. If resolution has not
been performed, |
| 11349 * then `null` will be returned. | 9273 * then `null` will be returned. |
| 11350 * | 9274 * |
| 11351 * @return the best element available for this operator | 9275 * @return the best element available for this operator |
| 11352 */ | 9276 */ |
| 11353 MethodElement get bestElement { | 9277 MethodElement get bestElement { |
| 11354 MethodElement element = propagatedElement; | 9278 MethodElement element = propagatedElement; |
| 11355 if (element == null) { | 9279 if (element == null) { |
| 11356 element = staticElement; | 9280 element = staticElement; |
| 11357 } | 9281 } |
| 11358 return element; | 9282 return element; |
| 11359 } | 9283 } |
| 11360 Token get endToken => _operand.endToken; | 9284 Token get endToken => _operand.endToken; |
| 11361 | 9285 |
| 11362 /** | 9286 /** |
| 11363 * Return the expression computing the operand for the operator. | 9287 * Return the expression computing the operand for the operator. |
| 11364 * | 9288 * |
| 11365 * @return the expression computing the operand for the operator | 9289 * @return the expression computing the operand for the operator |
| 11366 */ | 9290 */ |
| 11367 Expression get operand => _operand; | 9291 Expression get operand => _operand; |
| 11368 | 9292 |
| 11369 /** | 9293 /** |
| 11370 * Return the prefix operator being applied to the operand. | |
| 11371 * | |
| 11372 * @return the prefix operator being applied to the operand | |
| 11373 */ | |
| 11374 Token get operator => _operator; | |
| 11375 | |
| 11376 /** | |
| 11377 * Return the element associated with the operator based on the propagated typ
e of the operand, or | 9294 * Return the element associated with the operator based on the propagated typ
e of the operand, or |
| 11378 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9295 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11379 * or if the operator could not be resolved. One example of the latter case is
an operator that is | 9296 * or if the operator could not be resolved. One example of the latter case is
an operator that is |
| 11380 * not defined for the type of the operand. | 9297 * not defined for the type of the operand. |
| 11381 * | 9298 * |
| 11382 * @return the element associated with the operator | 9299 * @return the element associated with the operator |
| 11383 */ | 9300 */ |
| 11384 MethodElement get propagatedElement => _propagatedElement; | 9301 MethodElement get propagatedElement => _propagatedElement; |
| 11385 | 9302 |
| 11386 /** | 9303 /** |
| 11387 * Return the element associated with the operator based on the static type of
the operand, or | 9304 * Return the element associated with the operator based on the static type of
the operand, or |
| 11388 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, | 9305 * `null` if the AST structure has not been resolved, if the operator is not u
ser definable, |
| 11389 * or if the operator could not be resolved. One example of the latter case is
an operator that is | 9306 * or if the operator could not be resolved. One example of the latter case is
an operator that is |
| 11390 * not defined for the type of the operand. | 9307 * not defined for the type of the operand. |
| 11391 * | 9308 * |
| 11392 * @return the element associated with the operator | 9309 * @return the element associated with the operator |
| 11393 */ | 9310 */ |
| 11394 MethodElement get staticElement => _staticElement; | 9311 MethodElement get staticElement => _staticElement; |
| 11395 | 9312 |
| 11396 /** | 9313 /** |
| 11397 * Set the expression computing the operand for the operator to the given expr
ession. | 9314 * Set the expression computing the operand for the operator to the given expr
ession. |
| 11398 * | 9315 * |
| 11399 * @param expression the expression computing the operand for the operator | 9316 * @param expression the expression computing the operand for the operator |
| 11400 */ | 9317 */ |
| 11401 void set operand(Expression expression) { | 9318 void set operand(Expression expression) { |
| 11402 _operand = becomeParentOf(expression); | 9319 _operand = becomeParentOf(expression); |
| 11403 } | 9320 } |
| 11404 | 9321 |
| 11405 /** | 9322 /** |
| 11406 * Set the prefix operator being applied to the operand to the given operator. | |
| 11407 * | |
| 11408 * @param operator the prefix operator being applied to the operand | |
| 11409 */ | |
| 11410 void set operator(Token operator2) { | |
| 11411 this._operator = operator2; | |
| 11412 } | |
| 11413 | |
| 11414 /** | |
| 11415 * Set the element associated with the operator based on the propagated type o
f the operand to the | 9323 * Set the element associated with the operator based on the propagated type o
f the operand to the |
| 11416 * given element. | 9324 * given element. |
| 11417 * | 9325 * |
| 11418 * @param element the element to be associated with the operator | 9326 * @param element the element to be associated with the operator |
| 11419 */ | 9327 */ |
| 11420 void set propagatedElement(MethodElement element) { | 9328 void set propagatedElement(MethodElement element) { |
| 11421 _propagatedElement = element; | 9329 _propagatedElement = element; |
| 11422 } | 9330 } |
| 11423 | 9331 |
| 11424 /** | 9332 /** |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11491 class PrefixedIdentifier extends Identifier { | 9399 class PrefixedIdentifier extends Identifier { |
| 11492 | 9400 |
| 11493 /** | 9401 /** |
| 11494 * The prefix associated with the library in which the identifier is defined. | 9402 * The prefix associated with the library in which the identifier is defined. |
| 11495 */ | 9403 */ |
| 11496 SimpleIdentifier _prefix; | 9404 SimpleIdentifier _prefix; |
| 11497 | 9405 |
| 11498 /** | 9406 /** |
| 11499 * The period used to separate the prefix from the identifier. | 9407 * The period used to separate the prefix from the identifier. |
| 11500 */ | 9408 */ |
| 11501 Token _period; | 9409 Token period; |
| 11502 | 9410 |
| 11503 /** | 9411 /** |
| 11504 * The identifier being prefixed. | 9412 * The identifier being prefixed. |
| 11505 */ | 9413 */ |
| 11506 SimpleIdentifier _identifier; | 9414 SimpleIdentifier _identifier; |
| 11507 | 9415 |
| 11508 /** | 9416 /** |
| 11509 * Initialize a newly created prefixed identifier. | 9417 * Initialize a newly created prefixed identifier. |
| 11510 * | 9418 * |
| 11511 * @param prefix the identifier being prefixed | 9419 * @param prefix the identifier being prefixed |
| 11512 * @param period the period used to separate the prefix from the identifier | 9420 * @param period the period used to separate the prefix from the identifier |
| 11513 * @param identifier the prefix associated with the library in which the ident
ifier is defined | 9421 * @param identifier the prefix associated with the library in which the ident
ifier is defined |
| 11514 */ | 9422 */ |
| 11515 PrefixedIdentifier.full(SimpleIdentifier prefix, Token period, SimpleIdentifie
r identifier) { | 9423 PrefixedIdentifier.full(SimpleIdentifier prefix, Token period, SimpleIdentifie
r identifier) { |
| 11516 this._prefix = becomeParentOf(prefix); | 9424 this._prefix = becomeParentOf(prefix); |
| 11517 this._period = period; | 9425 this.period = period; |
| 11518 this._identifier = becomeParentOf(identifier); | 9426 this._identifier = becomeParentOf(identifier); |
| 11519 } | 9427 } |
| 11520 | 9428 |
| 11521 /** | 9429 /** |
| 11522 * Initialize a newly created prefixed identifier. | 9430 * Initialize a newly created prefixed identifier. |
| 11523 * | 9431 * |
| 11524 * @param prefix the identifier being prefixed | 9432 * @param prefix the identifier being prefixed |
| 11525 * @param period the period used to separate the prefix from the identifier | 9433 * @param period the period used to separate the prefix from the identifier |
| 11526 * @param identifier the prefix associated with the library in which the ident
ifier is defined | 9434 * @param identifier the prefix associated with the library in which the ident
ifier is defined |
| 11527 */ | 9435 */ |
| (...skipping 10 matching lines...) Expand all Loading... |
| 11538 | 9446 |
| 11539 /** | 9447 /** |
| 11540 * Return the identifier being prefixed. | 9448 * Return the identifier being prefixed. |
| 11541 * | 9449 * |
| 11542 * @return the identifier being prefixed | 9450 * @return the identifier being prefixed |
| 11543 */ | 9451 */ |
| 11544 SimpleIdentifier get identifier => _identifier; | 9452 SimpleIdentifier get identifier => _identifier; |
| 11545 String get name => "${_prefix.name}.${_identifier.name}"; | 9453 String get name => "${_prefix.name}.${_identifier.name}"; |
| 11546 | 9454 |
| 11547 /** | 9455 /** |
| 11548 * Return the period used to separate the prefix from the identifier. | |
| 11549 * | |
| 11550 * @return the period used to separate the prefix from the identifier | |
| 11551 */ | |
| 11552 Token get period => _period; | |
| 11553 | |
| 11554 /** | |
| 11555 * Return the prefix associated with the library in which the identifier is de
fined. | 9456 * Return the prefix associated with the library in which the identifier is de
fined. |
| 11556 * | 9457 * |
| 11557 * @return the prefix associated with the library in which the identifier is d
efined | 9458 * @return the prefix associated with the library in which the identifier is d
efined |
| 11558 */ | 9459 */ |
| 11559 SimpleIdentifier get prefix => _prefix; | 9460 SimpleIdentifier get prefix => _prefix; |
| 11560 Element get propagatedElement { | 9461 Element get propagatedElement { |
| 11561 if (_identifier == null) { | 9462 if (_identifier == null) { |
| 11562 return null; | 9463 return null; |
| 11563 } | 9464 } |
| 11564 return _identifier.propagatedElement; | 9465 return _identifier.propagatedElement; |
| 11565 } | 9466 } |
| 11566 Element get staticElement { | 9467 Element get staticElement { |
| 11567 if (_identifier == null) { | 9468 if (_identifier == null) { |
| 11568 return null; | 9469 return null; |
| 11569 } | 9470 } |
| 11570 return _identifier.staticElement; | 9471 return _identifier.staticElement; |
| 11571 } | 9472 } |
| 11572 | 9473 |
| 11573 /** | 9474 /** |
| 11574 * Set the identifier being prefixed to the given identifier. | 9475 * Set the identifier being prefixed to the given identifier. |
| 11575 * | 9476 * |
| 11576 * @param identifier the identifier being prefixed | 9477 * @param identifier the identifier being prefixed |
| 11577 */ | 9478 */ |
| 11578 void set identifier(SimpleIdentifier identifier2) { | 9479 void set identifier(SimpleIdentifier identifier2) { |
| 11579 this._identifier = becomeParentOf(identifier2); | 9480 this._identifier = becomeParentOf(identifier2); |
| 11580 } | 9481 } |
| 11581 | 9482 |
| 11582 /** | 9483 /** |
| 11583 * Set the period used to separate the prefix from the identifier to the given
token. | |
| 11584 * | |
| 11585 * @param period the period used to separate the prefix from the identifier | |
| 11586 */ | |
| 11587 void set period(Token period2) { | |
| 11588 this._period = period2; | |
| 11589 } | |
| 11590 | |
| 11591 /** | |
| 11592 * Set the prefix associated with the library in which the identifier is defin
ed to the given | 9484 * Set the prefix associated with the library in which the identifier is defin
ed to the given |
| 11593 * identifier. | 9485 * identifier. |
| 11594 * | 9486 * |
| 11595 * @param identifier the prefix associated with the library in which the ident
ifier is defined | 9487 * @param identifier the prefix associated with the library in which the ident
ifier is defined |
| 11596 */ | 9488 */ |
| 11597 void set prefix(SimpleIdentifier identifier) { | 9489 void set prefix(SimpleIdentifier identifier) { |
| 11598 _prefix = becomeParentOf(identifier); | 9490 _prefix = becomeParentOf(identifier); |
| 11599 } | 9491 } |
| 11600 void visitChildren(ASTVisitor visitor) { | 9492 void visitChildren(ASTVisitor visitor) { |
| 11601 safelyVisitChild(_prefix, visitor); | 9493 safelyVisitChild(_prefix, visitor); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 11619 class PropertyAccess extends Expression { | 9511 class PropertyAccess extends Expression { |
| 11620 | 9512 |
| 11621 /** | 9513 /** |
| 11622 * The expression computing the object defining the property being accessed. | 9514 * The expression computing the object defining the property being accessed. |
| 11623 */ | 9515 */ |
| 11624 Expression _target; | 9516 Expression _target; |
| 11625 | 9517 |
| 11626 /** | 9518 /** |
| 11627 * The property access operator. | 9519 * The property access operator. |
| 11628 */ | 9520 */ |
| 11629 Token _operator; | 9521 Token operator; |
| 11630 | 9522 |
| 11631 /** | 9523 /** |
| 11632 * The name of the property being accessed. | 9524 * The name of the property being accessed. |
| 11633 */ | 9525 */ |
| 11634 SimpleIdentifier _propertyName; | 9526 SimpleIdentifier _propertyName; |
| 11635 | 9527 |
| 11636 /** | 9528 /** |
| 11637 * Initialize a newly created property access expression. | 9529 * Initialize a newly created property access expression. |
| 11638 * | 9530 * |
| 11639 * @param target the expression computing the object defining the property bei
ng accessed | 9531 * @param target the expression computing the object defining the property bei
ng accessed |
| 11640 * @param operator the property access operator | 9532 * @param operator the property access operator |
| 11641 * @param propertyName the name of the property being accessed | 9533 * @param propertyName the name of the property being accessed |
| 11642 */ | 9534 */ |
| 11643 PropertyAccess.full(Expression target, Token operator, SimpleIdentifier proper
tyName) { | 9535 PropertyAccess.full(Expression target, Token operator, SimpleIdentifier proper
tyName) { |
| 11644 this._target = becomeParentOf(target); | 9536 this._target = becomeParentOf(target); |
| 11645 this._operator = operator; | 9537 this.operator = operator; |
| 11646 this._propertyName = becomeParentOf(propertyName); | 9538 this._propertyName = becomeParentOf(propertyName); |
| 11647 } | 9539 } |
| 11648 | 9540 |
| 11649 /** | 9541 /** |
| 11650 * Initialize a newly created property access expression. | 9542 * Initialize a newly created property access expression. |
| 11651 * | 9543 * |
| 11652 * @param target the expression computing the object defining the property bei
ng accessed | 9544 * @param target the expression computing the object defining the property bei
ng accessed |
| 11653 * @param operator the property access operator | 9545 * @param operator the property access operator |
| 11654 * @param propertyName the name of the property being accessed | 9546 * @param propertyName the name of the property being accessed |
| 11655 */ | 9547 */ |
| 11656 PropertyAccess({Expression target, Token operator, SimpleIdentifier propertyNa
me}) : this.full(target, operator, propertyName); | 9548 PropertyAccess({Expression target, Token operator, SimpleIdentifier propertyNa
me}) : this.full(target, operator, propertyName); |
| 11657 accept(ASTVisitor visitor) => visitor.visitPropertyAccess(this); | 9549 accept(ASTVisitor visitor) => visitor.visitPropertyAccess(this); |
| 11658 Token get beginToken { | 9550 Token get beginToken { |
| 11659 if (_target != null) { | 9551 if (_target != null) { |
| 11660 return _target.beginToken; | 9552 return _target.beginToken; |
| 11661 } | 9553 } |
| 11662 return _operator; | 9554 return operator; |
| 11663 } | 9555 } |
| 11664 Token get endToken => _propertyName.endToken; | 9556 Token get endToken => _propertyName.endToken; |
| 11665 | 9557 |
| 11666 /** | 9558 /** |
| 11667 * Return the property access operator. | |
| 11668 * | |
| 11669 * @return the property access operator | |
| 11670 */ | |
| 11671 Token get operator => _operator; | |
| 11672 | |
| 11673 /** | |
| 11674 * Return the name of the property being accessed. | 9559 * Return the name of the property being accessed. |
| 11675 * | 9560 * |
| 11676 * @return the name of the property being accessed | 9561 * @return the name of the property being accessed |
| 11677 */ | 9562 */ |
| 11678 SimpleIdentifier get propertyName => _propertyName; | 9563 SimpleIdentifier get propertyName => _propertyName; |
| 11679 | 9564 |
| 11680 /** | 9565 /** |
| 11681 * Return the expression used to compute the receiver of the invocation. If th
is invocation is not | 9566 * Return the expression used to compute the receiver of the invocation. If th
is invocation is not |
| 11682 * part of a cascade expression, then this is the same as [getTarget]. If this
invocation | 9567 * part of a cascade expression, then this is the same as [getTarget]. If this
invocation |
| 11683 * is part of a cascade expression, then the target stored with the cascade ex
pression is | 9568 * is part of a cascade expression, then the target stored with the cascade ex
pression is |
| (...skipping 26 matching lines...) Expand all Loading... |
| 11710 Expression get target => _target; | 9595 Expression get target => _target; |
| 11711 bool get isAssignable => true; | 9596 bool get isAssignable => true; |
| 11712 | 9597 |
| 11713 /** | 9598 /** |
| 11714 * Return `true` if this expression is cascaded. If it is, then the target of
this | 9599 * Return `true` if this expression is cascaded. If it is, then the target of
this |
| 11715 * expression is not stored locally but is stored in the nearest ancestor that
is a | 9600 * expression is not stored locally but is stored in the nearest ancestor that
is a |
| 11716 * [CascadeExpression]. | 9601 * [CascadeExpression]. |
| 11717 * | 9602 * |
| 11718 * @return `true` if this expression is cascaded | 9603 * @return `true` if this expression is cascaded |
| 11719 */ | 9604 */ |
| 11720 bool get isCascaded => _operator != null && identical(_operator.type, TokenTyp
e.PERIOD_PERIOD); | 9605 bool get isCascaded => operator != null && identical(operator.type, TokenType.
PERIOD_PERIOD); |
| 11721 | |
| 11722 /** | |
| 11723 * Set the property access operator to the given token. | |
| 11724 * | |
| 11725 * @param operator the property access operator | |
| 11726 */ | |
| 11727 void set operator(Token operator2) { | |
| 11728 this._operator = operator2; | |
| 11729 } | |
| 11730 | 9606 |
| 11731 /** | 9607 /** |
| 11732 * Set the name of the property being accessed to the given identifier. | 9608 * Set the name of the property being accessed to the given identifier. |
| 11733 * | 9609 * |
| 11734 * @param identifier the name of the property being accessed | 9610 * @param identifier the name of the property being accessed |
| 11735 */ | 9611 */ |
| 11736 void set propertyName(SimpleIdentifier identifier) { | 9612 void set propertyName(SimpleIdentifier identifier) { |
| 11737 _propertyName = becomeParentOf(identifier); | 9613 _propertyName = becomeParentOf(identifier); |
| 11738 } | 9614 } |
| 11739 | 9615 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 11760 * 'this' ('.' identifier)? arguments | 9636 * 'this' ('.' identifier)? arguments |
| 11761 * </pre> | 9637 * </pre> |
| 11762 * | 9638 * |
| 11763 * @coverage dart.engine.ast | 9639 * @coverage dart.engine.ast |
| 11764 */ | 9640 */ |
| 11765 class RedirectingConstructorInvocation extends ConstructorInitializer { | 9641 class RedirectingConstructorInvocation extends ConstructorInitializer { |
| 11766 | 9642 |
| 11767 /** | 9643 /** |
| 11768 * The token for the 'this' keyword. | 9644 * The token for the 'this' keyword. |
| 11769 */ | 9645 */ |
| 11770 Token _keyword; | 9646 Token keyword; |
| 11771 | 9647 |
| 11772 /** | 9648 /** |
| 11773 * The token for the period before the name of the constructor that is being i
nvoked, or | 9649 * The token for the period before the name of the constructor that is being i
nvoked, or |
| 11774 * `null` if the unnamed constructor is being invoked. | 9650 * `null` if the unnamed constructor is being invoked. |
| 11775 */ | 9651 */ |
| 11776 Token _period; | 9652 Token period; |
| 11777 | 9653 |
| 11778 /** | 9654 /** |
| 11779 * The name of the constructor that is being invoked, or `null` if the unnamed
constructor | 9655 * The name of the constructor that is being invoked, or `null` if the unnamed
constructor |
| 11780 * is being invoked. | 9656 * is being invoked. |
| 11781 */ | 9657 */ |
| 11782 SimpleIdentifier _constructorName; | 9658 SimpleIdentifier _constructorName; |
| 11783 | 9659 |
| 11784 /** | 9660 /** |
| 11785 * The list of arguments to the constructor. | 9661 * The list of arguments to the constructor. |
| 11786 */ | 9662 */ |
| 11787 ArgumentList _argumentList; | 9663 ArgumentList _argumentList; |
| 11788 | 9664 |
| 11789 /** | 9665 /** |
| 11790 * The element associated with the constructor based on static type informatio
n, or `null` | 9666 * The element associated with the constructor based on static type informatio
n, or `null` |
| 11791 * if the AST structure has not been resolved or if the constructor could not
be resolved. | 9667 * if the AST structure has not been resolved or if the constructor could not
be resolved. |
| 11792 */ | 9668 */ |
| 11793 ConstructorElement _staticElement; | 9669 ConstructorElement staticElement; |
| 11794 | 9670 |
| 11795 /** | 9671 /** |
| 11796 * The element associated with the constructor based on propagated type inform
ation, or | 9672 * The element associated with the constructor based on propagated type inform
ation, or |
| 11797 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | 9673 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be |
| 11798 * resolved. | 9674 * resolved. |
| 11799 */ | 9675 */ |
| 11800 ConstructorElement _propagatedElement; | 9676 ConstructorElement _propagatedElement; |
| 11801 | 9677 |
| 11802 /** | 9678 /** |
| 11803 * Initialize a newly created redirecting invocation to invoke the constructor
with the given name | 9679 * Initialize a newly created redirecting invocation to invoke the constructor
with the given name |
| 11804 * with the given arguments. | 9680 * with the given arguments. |
| 11805 * | 9681 * |
| 11806 * @param keyword the token for the 'this' keyword | 9682 * @param keyword the token for the 'this' keyword |
| 11807 * @param period the token for the period before the name of the constructor t
hat is being invoked | 9683 * @param period the token for the period before the name of the constructor t
hat is being invoked |
| 11808 * @param constructorName the name of the constructor that is being invoked | 9684 * @param constructorName the name of the constructor that is being invoked |
| 11809 * @param argumentList the list of arguments to the constructor | 9685 * @param argumentList the list of arguments to the constructor |
| 11810 */ | 9686 */ |
| 11811 RedirectingConstructorInvocation.full(Token keyword, Token period, SimpleIdent
ifier constructorName, ArgumentList argumentList) { | 9687 RedirectingConstructorInvocation.full(Token keyword, Token period, SimpleIdent
ifier constructorName, ArgumentList argumentList) { |
| 11812 this._keyword = keyword; | 9688 this.keyword = keyword; |
| 11813 this._period = period; | 9689 this.period = period; |
| 11814 this._constructorName = becomeParentOf(constructorName); | 9690 this._constructorName = becomeParentOf(constructorName); |
| 11815 this._argumentList = becomeParentOf(argumentList); | 9691 this._argumentList = becomeParentOf(argumentList); |
| 11816 } | 9692 } |
| 11817 | 9693 |
| 11818 /** | 9694 /** |
| 11819 * Initialize a newly created redirecting invocation to invoke the constructor
with the given name | 9695 * Initialize a newly created redirecting invocation to invoke the constructor
with the given name |
| 11820 * with the given arguments. | 9696 * with the given arguments. |
| 11821 * | 9697 * |
| 11822 * @param keyword the token for the 'this' keyword | 9698 * @param keyword the token for the 'this' keyword |
| 11823 * @param period the token for the period before the name of the constructor t
hat is being invoked | 9699 * @param period the token for the period before the name of the constructor t
hat is being invoked |
| 11824 * @param constructorName the name of the constructor that is being invoked | 9700 * @param constructorName the name of the constructor that is being invoked |
| 11825 * @param argumentList the list of arguments to the constructor | 9701 * @param argumentList the list of arguments to the constructor |
| 11826 */ | 9702 */ |
| 11827 RedirectingConstructorInvocation({Token keyword, Token period, SimpleIdentifie
r constructorName, ArgumentList argumentList}) : this.full(keyword, period, cons
tructorName, argumentList); | 9703 RedirectingConstructorInvocation({Token keyword, Token period, SimpleIdentifie
r constructorName, ArgumentList argumentList}) : this.full(keyword, period, cons
tructorName, argumentList); |
| 11828 accept(ASTVisitor visitor) => visitor.visitRedirectingConstructorInvocation(th
is); | 9704 accept(ASTVisitor visitor) => visitor.visitRedirectingConstructorInvocation(th
is); |
| 11829 | 9705 |
| 11830 /** | 9706 /** |
| 11831 * Return the list of arguments to the constructor. | 9707 * Return the list of arguments to the constructor. |
| 11832 * | 9708 * |
| 11833 * @return the list of arguments to the constructor | 9709 * @return the list of arguments to the constructor |
| 11834 */ | 9710 */ |
| 11835 ArgumentList get argumentList => _argumentList; | 9711 ArgumentList get argumentList => _argumentList; |
| 11836 Token get beginToken => _keyword; | 9712 Token get beginToken => keyword; |
| 11837 | 9713 |
| 11838 /** | 9714 /** |
| 11839 * Return the name of the constructor that is being invoked, or `null` if the
unnamed | 9715 * Return the name of the constructor that is being invoked, or `null` if the
unnamed |
| 11840 * constructor is being invoked. | 9716 * constructor is being invoked. |
| 11841 * | 9717 * |
| 11842 * @return the name of the constructor that is being invoked | 9718 * @return the name of the constructor that is being invoked |
| 11843 */ | 9719 */ |
| 11844 SimpleIdentifier get constructorName => _constructorName; | 9720 SimpleIdentifier get constructorName => _constructorName; |
| 11845 | 9721 |
| 11846 /** | 9722 /** |
| 11847 * Return the element associated with the constructor based on propagated type
information, or | 9723 * Return the element associated with the constructor based on propagated type
information, or |
| 11848 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | 9724 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be |
| 11849 * resolved. | 9725 * resolved. |
| 11850 * | 9726 * |
| 11851 * @return the element associated with the super constructor | 9727 * @return the element associated with the super constructor |
| 11852 */ | 9728 */ |
| 11853 ConstructorElement get element => _propagatedElement; | 9729 ConstructorElement get element => _propagatedElement; |
| 11854 Token get endToken => _argumentList.endToken; | 9730 Token get endToken => _argumentList.endToken; |
| 11855 | 9731 |
| 11856 /** | 9732 /** |
| 11857 * Return the token for the 'this' keyword. | |
| 11858 * | |
| 11859 * @return the token for the 'this' keyword | |
| 11860 */ | |
| 11861 Token get keyword => _keyword; | |
| 11862 | |
| 11863 /** | |
| 11864 * Return the token for the period before the name of the constructor that is
being invoked, or | |
| 11865 * `null` if the unnamed constructor is being invoked. | |
| 11866 * | |
| 11867 * @return the token for the period before the name of the constructor that is
being invoked | |
| 11868 */ | |
| 11869 Token get period => _period; | |
| 11870 | |
| 11871 /** | |
| 11872 * Return the element associated with the constructor based on static type inf
ormation, or | |
| 11873 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | |
| 11874 * resolved. | |
| 11875 * | |
| 11876 * @return the element associated with the constructor | |
| 11877 */ | |
| 11878 ConstructorElement get staticElement => _staticElement; | |
| 11879 | |
| 11880 /** | |
| 11881 * Set the list of arguments to the constructor to the given list. | 9733 * Set the list of arguments to the constructor to the given list. |
| 11882 * | 9734 * |
| 11883 * @param argumentList the list of arguments to the constructor | 9735 * @param argumentList the list of arguments to the constructor |
| 11884 */ | 9736 */ |
| 11885 void set argumentList(ArgumentList argumentList2) { | 9737 void set argumentList(ArgumentList argumentList2) { |
| 11886 this._argumentList = becomeParentOf(argumentList2); | 9738 this._argumentList = becomeParentOf(argumentList2); |
| 11887 } | 9739 } |
| 11888 | 9740 |
| 11889 /** | 9741 /** |
| 11890 * Set the name of the constructor that is being invoked to the given identifi
er. | 9742 * Set the name of the constructor that is being invoked to the given identifi
er. |
| 11891 * | 9743 * |
| 11892 * @param identifier the name of the constructor that is being invoked | 9744 * @param identifier the name of the constructor that is being invoked |
| 11893 */ | 9745 */ |
| 11894 void set constructorName(SimpleIdentifier identifier) { | 9746 void set constructorName(SimpleIdentifier identifier) { |
| 11895 _constructorName = becomeParentOf(identifier); | 9747 _constructorName = becomeParentOf(identifier); |
| 11896 } | 9748 } |
| 11897 | 9749 |
| 11898 /** | 9750 /** |
| 11899 * Set the element associated with the constructor based on propagated type in
formation to the | 9751 * Set the element associated with the constructor based on propagated type in
formation to the |
| 11900 * given element. | 9752 * given element. |
| 11901 * | 9753 * |
| 11902 * @param element the element to be associated with the constructor | 9754 * @param element the element to be associated with the constructor |
| 11903 */ | 9755 */ |
| 11904 void set element(ConstructorElement element2) { | 9756 void set element(ConstructorElement element2) { |
| 11905 _propagatedElement = element2; | 9757 _propagatedElement = element2; |
| 11906 } | 9758 } |
| 11907 | |
| 11908 /** | |
| 11909 * Set the token for the 'this' keyword to the given token. | |
| 11910 * | |
| 11911 * @param keyword the token for the 'this' keyword | |
| 11912 */ | |
| 11913 void set keyword(Token keyword2) { | |
| 11914 this._keyword = keyword2; | |
| 11915 } | |
| 11916 | |
| 11917 /** | |
| 11918 * Set the token for the period before the name of the constructor that is bei
ng invoked to the | |
| 11919 * given token. | |
| 11920 * | |
| 11921 * @param period the token for the period before the name of the constructor t
hat is being invoked | |
| 11922 */ | |
| 11923 void set period(Token period2) { | |
| 11924 this._period = period2; | |
| 11925 } | |
| 11926 | |
| 11927 /** | |
| 11928 * Set the element associated with the constructor based on static type inform
ation to the given | |
| 11929 * element. | |
| 11930 * | |
| 11931 * @param element the element to be associated with the constructor | |
| 11932 */ | |
| 11933 void set staticElement(ConstructorElement element) { | |
| 11934 this._staticElement = element; | |
| 11935 } | |
| 11936 void visitChildren(ASTVisitor visitor) { | 9759 void visitChildren(ASTVisitor visitor) { |
| 11937 safelyVisitChild(_constructorName, visitor); | 9760 safelyVisitChild(_constructorName, visitor); |
| 11938 safelyVisitChild(_argumentList, visitor); | 9761 safelyVisitChild(_argumentList, visitor); |
| 11939 } | 9762 } |
| 11940 } | 9763 } |
| 11941 /** | 9764 /** |
| 11942 * Instances of the class `RethrowExpression` represent a rethrow expression. | 9765 * Instances of the class `RethrowExpression` represent a rethrow expression. |
| 11943 * | 9766 * |
| 11944 * <pre> | 9767 * <pre> |
| 11945 * rethrowExpression ::= | 9768 * rethrowExpression ::= |
| 11946 * 'rethrow' | 9769 * 'rethrow' |
| 11947 * </pre> | 9770 * </pre> |
| 11948 * | 9771 * |
| 11949 * @coverage dart.engine.ast | 9772 * @coverage dart.engine.ast |
| 11950 */ | 9773 */ |
| 11951 class RethrowExpression extends Expression { | 9774 class RethrowExpression extends Expression { |
| 11952 | 9775 |
| 11953 /** | 9776 /** |
| 11954 * The token representing the 'rethrow' keyword. | 9777 * The token representing the 'rethrow' keyword. |
| 11955 */ | 9778 */ |
| 11956 Token _keyword; | 9779 Token keyword; |
| 11957 | 9780 |
| 11958 /** | 9781 /** |
| 11959 * Initialize a newly created rethrow expression. | 9782 * Initialize a newly created rethrow expression. |
| 11960 * | 9783 * |
| 11961 * @param keyword the token representing the 'rethrow' keyword | 9784 * @param keyword the token representing the 'rethrow' keyword |
| 11962 */ | 9785 */ |
| 11963 RethrowExpression.full(Token keyword) { | 9786 RethrowExpression.full(Token keyword) { |
| 11964 this._keyword = keyword; | 9787 this.keyword = keyword; |
| 11965 } | 9788 } |
| 11966 | 9789 |
| 11967 /** | 9790 /** |
| 11968 * Initialize a newly created rethrow expression. | 9791 * Initialize a newly created rethrow expression. |
| 11969 * | 9792 * |
| 11970 * @param keyword the token representing the 'rethrow' keyword | 9793 * @param keyword the token representing the 'rethrow' keyword |
| 11971 */ | 9794 */ |
| 11972 RethrowExpression({Token keyword}) : this.full(keyword); | 9795 RethrowExpression({Token keyword}) : this.full(keyword); |
| 11973 accept(ASTVisitor visitor) => visitor.visitRethrowExpression(this); | 9796 accept(ASTVisitor visitor) => visitor.visitRethrowExpression(this); |
| 11974 Token get beginToken => _keyword; | 9797 Token get beginToken => keyword; |
| 11975 Token get endToken => _keyword; | 9798 Token get endToken => keyword; |
| 11976 | |
| 11977 /** | |
| 11978 * Return the token representing the 'rethrow' keyword. | |
| 11979 * | |
| 11980 * @return the token representing the 'rethrow' keyword | |
| 11981 */ | |
| 11982 Token get keyword => _keyword; | |
| 11983 | |
| 11984 /** | |
| 11985 * Set the token representing the 'rethrow' keyword to the given token. | |
| 11986 * | |
| 11987 * @param keyword the token representing the 'rethrow' keyword | |
| 11988 */ | |
| 11989 void set keyword(Token keyword2) { | |
| 11990 this._keyword = keyword2; | |
| 11991 } | |
| 11992 void visitChildren(ASTVisitor visitor) { | 9799 void visitChildren(ASTVisitor visitor) { |
| 11993 } | 9800 } |
| 11994 } | 9801 } |
| 11995 /** | 9802 /** |
| 11996 * Instances of the class `ReturnStatement` represent a return statement. | 9803 * Instances of the class `ReturnStatement` represent a return statement. |
| 11997 * | 9804 * |
| 11998 * <pre> | 9805 * <pre> |
| 11999 * returnStatement ::= | 9806 * returnStatement ::= |
| 12000 * 'return' [Expression]? ';' | 9807 * 'return' [Expression]? ';' |
| 12001 * </pre> | 9808 * </pre> |
| 12002 * | 9809 * |
| 12003 * @coverage dart.engine.ast | 9810 * @coverage dart.engine.ast |
| 12004 */ | 9811 */ |
| 12005 class ReturnStatement extends Statement { | 9812 class ReturnStatement extends Statement { |
| 12006 | 9813 |
| 12007 /** | 9814 /** |
| 12008 * The token representing the 'return' keyword. | 9815 * The token representing the 'return' keyword. |
| 12009 */ | 9816 */ |
| 12010 Token _keyword; | 9817 Token keyword; |
| 12011 | 9818 |
| 12012 /** | 9819 /** |
| 12013 * The expression computing the value to be returned, or `null` if no explicit
value was | 9820 * The expression computing the value to be returned, or `null` if no explicit
value was |
| 12014 * provided. | 9821 * provided. |
| 12015 */ | 9822 */ |
| 12016 Expression _expression; | 9823 Expression _expression; |
| 12017 | 9824 |
| 12018 /** | 9825 /** |
| 12019 * The semicolon terminating the statement. | 9826 * The semicolon terminating the statement. |
| 12020 */ | 9827 */ |
| 12021 Token _semicolon; | 9828 Token semicolon; |
| 12022 | 9829 |
| 12023 /** | 9830 /** |
| 12024 * Initialize a newly created return statement. | 9831 * Initialize a newly created return statement. |
| 12025 * | 9832 * |
| 12026 * @param keyword the token representing the 'return' keyword | 9833 * @param keyword the token representing the 'return' keyword |
| 12027 * @param expression the expression computing the value to be returned | 9834 * @param expression the expression computing the value to be returned |
| 12028 * @param semicolon the semicolon terminating the statement | 9835 * @param semicolon the semicolon terminating the statement |
| 12029 */ | 9836 */ |
| 12030 ReturnStatement.full(Token keyword, Expression expression, Token semicolon) { | 9837 ReturnStatement.full(Token keyword, Expression expression, Token semicolon) { |
| 12031 this._keyword = keyword; | 9838 this.keyword = keyword; |
| 12032 this._expression = becomeParentOf(expression); | 9839 this._expression = becomeParentOf(expression); |
| 12033 this._semicolon = semicolon; | 9840 this.semicolon = semicolon; |
| 12034 } | 9841 } |
| 12035 | 9842 |
| 12036 /** | 9843 /** |
| 12037 * Initialize a newly created return statement. | 9844 * Initialize a newly created return statement. |
| 12038 * | 9845 * |
| 12039 * @param keyword the token representing the 'return' keyword | 9846 * @param keyword the token representing the 'return' keyword |
| 12040 * @param expression the expression computing the value to be returned | 9847 * @param expression the expression computing the value to be returned |
| 12041 * @param semicolon the semicolon terminating the statement | 9848 * @param semicolon the semicolon terminating the statement |
| 12042 */ | 9849 */ |
| 12043 ReturnStatement({Token keyword, Expression expression, Token semicolon}) : thi
s.full(keyword, expression, semicolon); | 9850 ReturnStatement({Token keyword, Expression expression, Token semicolon}) : thi
s.full(keyword, expression, semicolon); |
| 12044 accept(ASTVisitor visitor) => visitor.visitReturnStatement(this); | 9851 accept(ASTVisitor visitor) => visitor.visitReturnStatement(this); |
| 12045 Token get beginToken => _keyword; | 9852 Token get beginToken => keyword; |
| 12046 Token get endToken => _semicolon; | 9853 Token get endToken => semicolon; |
| 12047 | 9854 |
| 12048 /** | 9855 /** |
| 12049 * Return the expression computing the value to be returned, or `null` if no e
xplicit value | 9856 * Return the expression computing the value to be returned, or `null` if no e
xplicit value |
| 12050 * was provided. | 9857 * was provided. |
| 12051 * | 9858 * |
| 12052 * @return the expression computing the value to be returned | 9859 * @return the expression computing the value to be returned |
| 12053 */ | 9860 */ |
| 12054 Expression get expression => _expression; | 9861 Expression get expression => _expression; |
| 12055 | 9862 |
| 12056 /** | 9863 /** |
| 12057 * Return the token representing the 'return' keyword. | |
| 12058 * | |
| 12059 * @return the token representing the 'return' keyword | |
| 12060 */ | |
| 12061 Token get keyword => _keyword; | |
| 12062 | |
| 12063 /** | |
| 12064 * Return the semicolon terminating the statement. | |
| 12065 * | |
| 12066 * @return the semicolon terminating the statement | |
| 12067 */ | |
| 12068 Token get semicolon => _semicolon; | |
| 12069 | |
| 12070 /** | |
| 12071 * Set the expression computing the value to be returned to the given expressi
on. | 9864 * Set the expression computing the value to be returned to the given expressi
on. |
| 12072 * | 9865 * |
| 12073 * @param expression the expression computing the value to be returned | 9866 * @param expression the expression computing the value to be returned |
| 12074 */ | 9867 */ |
| 12075 void set expression(Expression expression2) { | 9868 void set expression(Expression expression2) { |
| 12076 this._expression = becomeParentOf(expression2); | 9869 this._expression = becomeParentOf(expression2); |
| 12077 } | 9870 } |
| 12078 | |
| 12079 /** | |
| 12080 * Set the token representing the 'return' keyword to the given token. | |
| 12081 * | |
| 12082 * @param keyword the token representing the 'return' keyword | |
| 12083 */ | |
| 12084 void set keyword(Token keyword2) { | |
| 12085 this._keyword = keyword2; | |
| 12086 } | |
| 12087 | |
| 12088 /** | |
| 12089 * Set the semicolon terminating the statement to the given token. | |
| 12090 * | |
| 12091 * @param semicolon the semicolon terminating the statement | |
| 12092 */ | |
| 12093 void set semicolon(Token semicolon2) { | |
| 12094 this._semicolon = semicolon2; | |
| 12095 } | |
| 12096 void visitChildren(ASTVisitor visitor) { | 9871 void visitChildren(ASTVisitor visitor) { |
| 12097 safelyVisitChild(_expression, visitor); | 9872 safelyVisitChild(_expression, visitor); |
| 12098 } | 9873 } |
| 12099 } | 9874 } |
| 12100 /** | 9875 /** |
| 12101 * Instances of the class `ScriptTag` represent the script tag that can optional
ly occur at | 9876 * Instances of the class `ScriptTag` represent the script tag that can optional
ly occur at |
| 12102 * the beginning of a compilation unit. | 9877 * the beginning of a compilation unit. |
| 12103 * | 9878 * |
| 12104 * <pre> | 9879 * <pre> |
| 12105 * scriptTag ::= | 9880 * scriptTag ::= |
| 12106 * '#!' (~NEWLINE)* NEWLINE | 9881 * '#!' (~NEWLINE)* NEWLINE |
| 12107 * </pre> | 9882 * </pre> |
| 12108 * | 9883 * |
| 12109 * @coverage dart.engine.ast | 9884 * @coverage dart.engine.ast |
| 12110 */ | 9885 */ |
| 12111 class ScriptTag extends ASTNode { | 9886 class ScriptTag extends ASTNode { |
| 12112 | 9887 |
| 12113 /** | 9888 /** |
| 12114 * The token representing this script tag. | 9889 * The token representing this script tag. |
| 12115 */ | 9890 */ |
| 12116 Token _scriptTag; | 9891 Token scriptTag; |
| 12117 | 9892 |
| 12118 /** | 9893 /** |
| 12119 * Initialize a newly created script tag. | 9894 * Initialize a newly created script tag. |
| 12120 * | 9895 * |
| 12121 * @param scriptTag the token representing this script tag | 9896 * @param scriptTag the token representing this script tag |
| 12122 */ | 9897 */ |
| 12123 ScriptTag.full(Token scriptTag) { | 9898 ScriptTag.full(Token scriptTag) { |
| 12124 this._scriptTag = scriptTag; | 9899 this.scriptTag = scriptTag; |
| 12125 } | 9900 } |
| 12126 | 9901 |
| 12127 /** | 9902 /** |
| 12128 * Initialize a newly created script tag. | 9903 * Initialize a newly created script tag. |
| 12129 * | 9904 * |
| 12130 * @param scriptTag the token representing this script tag | 9905 * @param scriptTag the token representing this script tag |
| 12131 */ | 9906 */ |
| 12132 ScriptTag({Token scriptTag}) : this.full(scriptTag); | 9907 ScriptTag({Token scriptTag}) : this.full(scriptTag); |
| 12133 accept(ASTVisitor visitor) => visitor.visitScriptTag(this); | 9908 accept(ASTVisitor visitor) => visitor.visitScriptTag(this); |
| 12134 Token get beginToken => _scriptTag; | 9909 Token get beginToken => scriptTag; |
| 12135 Token get endToken => _scriptTag; | 9910 Token get endToken => scriptTag; |
| 12136 | |
| 12137 /** | |
| 12138 * Return the token representing this script tag. | |
| 12139 * | |
| 12140 * @return the token representing this script tag | |
| 12141 */ | |
| 12142 Token get scriptTag => _scriptTag; | |
| 12143 | |
| 12144 /** | |
| 12145 * Set the token representing this script tag to the given script tag. | |
| 12146 * | |
| 12147 * @param scriptTag the token representing this script tag | |
| 12148 */ | |
| 12149 void set scriptTag(Token scriptTag2) { | |
| 12150 this._scriptTag = scriptTag2; | |
| 12151 } | |
| 12152 void visitChildren(ASTVisitor visitor) { | 9911 void visitChildren(ASTVisitor visitor) { |
| 12153 } | 9912 } |
| 12154 } | 9913 } |
| 12155 /** | 9914 /** |
| 12156 * Instances of the class `ShowCombinator` represent a combinator that restricts
the names | 9915 * Instances of the class `ShowCombinator` represent a combinator that restricts
the names |
| 12157 * being imported to those in a given list. | 9916 * being imported to those in a given list. |
| 12158 * | 9917 * |
| 12159 * <pre> | 9918 * <pre> |
| 12160 * showCombinator ::= | 9919 * showCombinator ::= |
| 12161 * 'show' [SimpleIdentifier] (',' [SimpleIdentifier])* | 9920 * 'show' [SimpleIdentifier] (',' [SimpleIdentifier])* |
| 12162 * </pre> | 9921 * </pre> |
| 12163 * | 9922 * |
| 12164 * @coverage dart.engine.ast | 9923 * @coverage dart.engine.ast |
| 12165 */ | 9924 */ |
| 12166 class ShowCombinator extends Combinator { | 9925 class ShowCombinator extends Combinator { |
| 12167 | 9926 |
| 12168 /** | 9927 /** |
| 12169 * The list of names from the library that are made visible by this combinator
. | 9928 * The list of names from the library that are made visible by this combinator
. |
| 12170 */ | 9929 */ |
| 12171 NodeList<SimpleIdentifier> _shownNames; | 9930 NodeList<SimpleIdentifier> shownNames; |
| 12172 | 9931 |
| 12173 /** | 9932 /** |
| 12174 * Initialize a newly created import show combinator. | 9933 * Initialize a newly created import show combinator. |
| 12175 * | 9934 * |
| 12176 * @param keyword the comma introducing the combinator | 9935 * @param keyword the comma introducing the combinator |
| 12177 * @param shownNames the list of names from the library that are made visible
by this combinator | 9936 * @param shownNames the list of names from the library that are made visible
by this combinator |
| 12178 */ | 9937 */ |
| 12179 ShowCombinator.full(Token keyword, List<SimpleIdentifier> shownNames) : super.
full(keyword) { | 9938 ShowCombinator.full(Token keyword, List<SimpleIdentifier> shownNames) : super.
full(keyword) { |
| 12180 this._shownNames = new NodeList<SimpleIdentifier>(this); | 9939 this.shownNames = new NodeList<SimpleIdentifier>(this); |
| 12181 this._shownNames.addAll(shownNames); | 9940 this.shownNames.addAll(shownNames); |
| 12182 } | 9941 } |
| 12183 | 9942 |
| 12184 /** | 9943 /** |
| 12185 * Initialize a newly created import show combinator. | 9944 * Initialize a newly created import show combinator. |
| 12186 * | 9945 * |
| 12187 * @param keyword the comma introducing the combinator | 9946 * @param keyword the comma introducing the combinator |
| 12188 * @param shownNames the list of names from the library that are made visible
by this combinator | 9947 * @param shownNames the list of names from the library that are made visible
by this combinator |
| 12189 */ | 9948 */ |
| 12190 ShowCombinator({Token keyword, List<SimpleIdentifier> shownNames}) : this.full
(keyword, shownNames); | 9949 ShowCombinator({Token keyword, List<SimpleIdentifier> shownNames}) : this.full
(keyword, shownNames); |
| 12191 accept(ASTVisitor visitor) => visitor.visitShowCombinator(this); | 9950 accept(ASTVisitor visitor) => visitor.visitShowCombinator(this); |
| 12192 Token get endToken => _shownNames.endToken; | 9951 Token get endToken => shownNames.endToken; |
| 12193 | |
| 12194 /** | |
| 12195 * Return the list of names from the library that are made visible by this com
binator. | |
| 12196 * | |
| 12197 * @return the list of names from the library that are made visible by this co
mbinator | |
| 12198 */ | |
| 12199 NodeList<SimpleIdentifier> get shownNames => _shownNames; | |
| 12200 void visitChildren(ASTVisitor visitor) { | 9952 void visitChildren(ASTVisitor visitor) { |
| 12201 _shownNames.accept(visitor); | 9953 shownNames.accept(visitor); |
| 12202 } | 9954 } |
| 12203 } | 9955 } |
| 12204 /** | 9956 /** |
| 12205 * Instances of the class `SimpleFormalParameter` represent a simple formal para
meter. | 9957 * Instances of the class `SimpleFormalParameter` represent a simple formal para
meter. |
| 12206 * | 9958 * |
| 12207 * <pre> | 9959 * <pre> |
| 12208 * simpleFormalParameter ::= | 9960 * simpleFormalParameter ::= |
| 12209 * ('final' [TypeName] | 'var' | [TypeName])? [SimpleIdentifier] | 9961 * ('final' [TypeName] | 'var' | [TypeName])? [SimpleIdentifier] |
| 12210 * </pre> | 9962 * </pre> |
| 12211 * | 9963 * |
| 12212 * @coverage dart.engine.ast | 9964 * @coverage dart.engine.ast |
| 12213 */ | 9965 */ |
| 12214 class SimpleFormalParameter extends NormalFormalParameter { | 9966 class SimpleFormalParameter extends NormalFormalParameter { |
| 12215 | 9967 |
| 12216 /** | 9968 /** |
| 12217 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no | 9969 * The token representing either the 'final', 'const' or 'var' keyword, or `nu
ll` if no |
| 12218 * keyword was used. | 9970 * keyword was used. |
| 12219 */ | 9971 */ |
| 12220 Token _keyword; | 9972 Token keyword; |
| 12221 | 9973 |
| 12222 /** | 9974 /** |
| 12223 * The name of the declared type of the parameter, or `null` if the parameter
does not have | 9975 * The name of the declared type of the parameter, or `null` if the parameter
does not have |
| 12224 * a declared type. | 9976 * a declared type. |
| 12225 */ | 9977 */ |
| 12226 TypeName _type; | 9978 TypeName _type; |
| 12227 | 9979 |
| 12228 /** | 9980 /** |
| 12229 * Initialize a newly created formal parameter. | 9981 * Initialize a newly created formal parameter. |
| 12230 * | 9982 * |
| 12231 * @param comment the documentation comment associated with this parameter | 9983 * @param comment the documentation comment associated with this parameter |
| 12232 * @param metadata the annotations associated with this parameter | 9984 * @param metadata the annotations associated with this parameter |
| 12233 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 9985 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 12234 * @param type the name of the declared type of the parameter | 9986 * @param type the name of the declared type of the parameter |
| 12235 * @param identifier the name of the parameter being declared | 9987 * @param identifier the name of the parameter being declared |
| 12236 */ | 9988 */ |
| 12237 SimpleFormalParameter.full(Comment comment, List<Annotation> metadata, Token k
eyword, TypeName type, SimpleIdentifier identifier) : super.full(comment, metada
ta, identifier) { | 9989 SimpleFormalParameter.full(Comment comment, List<Annotation> metadata, Token k
eyword, TypeName type, SimpleIdentifier identifier) : super.full(comment, metada
ta, identifier) { |
| 12238 this._keyword = keyword; | 9990 this.keyword = keyword; |
| 12239 this._type = becomeParentOf(type); | 9991 this._type = becomeParentOf(type); |
| 12240 } | 9992 } |
| 12241 | 9993 |
| 12242 /** | 9994 /** |
| 12243 * Initialize a newly created formal parameter. | 9995 * Initialize a newly created formal parameter. |
| 12244 * | 9996 * |
| 12245 * @param comment the documentation comment associated with this parameter | 9997 * @param comment the documentation comment associated with this parameter |
| 12246 * @param metadata the annotations associated with this parameter | 9998 * @param metadata the annotations associated with this parameter |
| 12247 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | 9999 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword |
| 12248 * @param type the name of the declared type of the parameter | 10000 * @param type the name of the declared type of the parameter |
| 12249 * @param identifier the name of the parameter being declared | 10001 * @param identifier the name of the parameter being declared |
| 12250 */ | 10002 */ |
| 12251 SimpleFormalParameter({Comment comment, List<Annotation> metadata, Token keywo
rd, TypeName type, SimpleIdentifier identifier}) : this.full(comment, metadata,
keyword, type, identifier); | 10003 SimpleFormalParameter({Comment comment, List<Annotation> metadata, Token keywo
rd, TypeName type, SimpleIdentifier identifier}) : this.full(comment, metadata,
keyword, type, identifier); |
| 12252 accept(ASTVisitor visitor) => visitor.visitSimpleFormalParameter(this); | 10004 accept(ASTVisitor visitor) => visitor.visitSimpleFormalParameter(this); |
| 12253 Token get beginToken { | 10005 Token get beginToken { |
| 12254 if (_keyword != null) { | 10006 if (keyword != null) { |
| 12255 return _keyword; | 10007 return keyword; |
| 12256 } else if (_type != null) { | 10008 } else if (_type != null) { |
| 12257 return _type.beginToken; | 10009 return _type.beginToken; |
| 12258 } | 10010 } |
| 12259 return identifier.beginToken; | 10011 return identifier.beginToken; |
| 12260 } | 10012 } |
| 12261 Token get endToken => identifier.endToken; | 10013 Token get endToken => identifier.endToken; |
| 12262 | 10014 |
| 12263 /** | 10015 /** |
| 12264 * Return the token representing either the 'final', 'const' or 'var' keyword. | |
| 12265 * | |
| 12266 * @return the token representing either the 'final', 'const' or 'var' keyword | |
| 12267 */ | |
| 12268 Token get keyword => _keyword; | |
| 12269 | |
| 12270 /** | |
| 12271 * Return the name of the declared type of the parameter, or `null` if the par
ameter does | 10016 * Return the name of the declared type of the parameter, or `null` if the par
ameter does |
| 12272 * not have a declared type. | 10017 * not have a declared type. |
| 12273 * | 10018 * |
| 12274 * @return the name of the declared type of the parameter | 10019 * @return the name of the declared type of the parameter |
| 12275 */ | 10020 */ |
| 12276 TypeName get type => _type; | 10021 TypeName get type => _type; |
| 12277 bool get isConst => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.CONST); | 10022 bool get isConst => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.CONST); |
| 12278 bool get isFinal => (_keyword is KeywordToken) && identical(((_keyword as Keyw
ordToken)).keyword, Keyword.FINAL); | 10023 bool get isFinal => (keyword is KeywordToken) && identical(((keyword as Keywor
dToken)).keyword, Keyword.FINAL); |
| 12279 | |
| 12280 /** | |
| 12281 * Set the token representing either the 'final', 'const' or 'var' keyword to
the given token. | |
| 12282 * | |
| 12283 * @param keyword the token representing either the 'final', 'const' or 'var'
keyword | |
| 12284 */ | |
| 12285 void set keyword(Token keyword2) { | |
| 12286 this._keyword = keyword2; | |
| 12287 } | |
| 12288 | 10024 |
| 12289 /** | 10025 /** |
| 12290 * Set the name of the declared type of the parameter to the given type name. | 10026 * Set the name of the declared type of the parameter to the given type name. |
| 12291 * | 10027 * |
| 12292 * @param typeName the name of the declared type of the parameter | 10028 * @param typeName the name of the declared type of the parameter |
| 12293 */ | 10029 */ |
| 12294 void set type(TypeName typeName) { | 10030 void set type(TypeName typeName) { |
| 12295 _type = becomeParentOf(typeName); | 10031 _type = becomeParentOf(typeName); |
| 12296 } | 10032 } |
| 12297 void visitChildren(ASTVisitor visitor) { | 10033 void visitChildren(ASTVisitor visitor) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 12312 * internalCharacter ::= '_' | '$' | letter | digit | 10048 * internalCharacter ::= '_' | '$' | letter | digit |
| 12313 * </pre> | 10049 * </pre> |
| 12314 * | 10050 * |
| 12315 * @coverage dart.engine.ast | 10051 * @coverage dart.engine.ast |
| 12316 */ | 10052 */ |
| 12317 class SimpleIdentifier extends Identifier { | 10053 class SimpleIdentifier extends Identifier { |
| 12318 | 10054 |
| 12319 /** | 10055 /** |
| 12320 * The token representing the identifier. | 10056 * The token representing the identifier. |
| 12321 */ | 10057 */ |
| 12322 Token _token; | 10058 Token token; |
| 12323 | 10059 |
| 12324 /** | 10060 /** |
| 12325 * The element associated with this identifier based on static type informatio
n, or `null` | 10061 * The element associated with this identifier based on static type informatio
n, or `null` |
| 12326 * if the AST structure has not been resolved or if this identifier could not
be resolved. | 10062 * if the AST structure has not been resolved or if this identifier could not
be resolved. |
| 12327 */ | 10063 */ |
| 12328 Element _staticElement; | 10064 Element _staticElement; |
| 12329 | 10065 |
| 12330 /** | 10066 /** |
| 12331 * The element associated with this identifier based on propagated type inform
ation, or | 10067 * The element associated with this identifier based on propagated type inform
ation, or |
| 12332 * `null` if the AST structure has not been resolved or if this identifier cou
ld not be | 10068 * `null` if the AST structure has not been resolved or if this identifier cou
ld not be |
| 12333 * resolved. | 10069 * resolved. |
| 12334 */ | 10070 */ |
| 12335 Element _propagatedElement; | 10071 Element _propagatedElement; |
| 12336 | 10072 |
| 12337 /** | 10073 /** |
| 12338 * If this expression is both in a getter and setter context, the [AuxiliaryEl
ements] will | 10074 * If this expression is both in a getter and setter context, the [AuxiliaryEl
ements] will |
| 12339 * be set to hold onto the static and propagated information. The auxiliary el
ement will hold onto | 10075 * be set to hold onto the static and propagated information. The auxiliary el
ement will hold onto |
| 12340 * the elements from the getter context. | 10076 * the elements from the getter context. |
| 12341 */ | 10077 */ |
| 12342 AuxiliaryElements _auxiliaryElements = null; | 10078 AuxiliaryElements auxiliaryElements = null; |
| 12343 | 10079 |
| 12344 /** | 10080 /** |
| 12345 * Initialize a newly created identifier. | 10081 * Initialize a newly created identifier. |
| 12346 * | 10082 * |
| 12347 * @param token the token representing the identifier | 10083 * @param token the token representing the identifier |
| 12348 */ | 10084 */ |
| 12349 SimpleIdentifier.full(Token token) { | 10085 SimpleIdentifier.full(Token token) { |
| 12350 this._token = token; | 10086 this.token = token; |
| 12351 } | 10087 } |
| 12352 | 10088 |
| 12353 /** | 10089 /** |
| 12354 * Initialize a newly created identifier. | 10090 * Initialize a newly created identifier. |
| 12355 * | 10091 * |
| 12356 * @param token the token representing the identifier | 10092 * @param token the token representing the identifier |
| 12357 */ | 10093 */ |
| 12358 SimpleIdentifier({Token token}) : this.full(token); | 10094 SimpleIdentifier({Token token}) : this.full(token); |
| 12359 accept(ASTVisitor visitor) => visitor.visitSimpleIdentifier(this); | 10095 accept(ASTVisitor visitor) => visitor.visitSimpleIdentifier(this); |
| 12360 | 10096 Token get beginToken => token; |
| 12361 /** | |
| 12362 * Get the auxiliary elements, this will be `null` if the node is not in a get
ter and setter | |
| 12363 * context, or if it is not yet fully resolved. | |
| 12364 */ | |
| 12365 AuxiliaryElements get auxiliaryElements => _auxiliaryElements; | |
| 12366 Token get beginToken => _token; | |
| 12367 Element get bestElement { | 10097 Element get bestElement { |
| 12368 if (_propagatedElement == null) { | 10098 if (_propagatedElement == null) { |
| 12369 return _staticElement; | 10099 return _staticElement; |
| 12370 } | 10100 } |
| 12371 return _propagatedElement; | 10101 return _propagatedElement; |
| 12372 } | 10102 } |
| 12373 Token get endToken => _token; | 10103 Token get endToken => token; |
| 12374 String get name => _token.lexeme; | 10104 String get name => token.lexeme; |
| 12375 Element get propagatedElement => _propagatedElement; | 10105 Element get propagatedElement => _propagatedElement; |
| 12376 Element get staticElement => _staticElement; | 10106 Element get staticElement => _staticElement; |
| 12377 | 10107 |
| 12378 /** | 10108 /** |
| 12379 * Return the token representing the identifier. | |
| 12380 * | |
| 12381 * @return the token representing the identifier | |
| 12382 */ | |
| 12383 Token get token => _token; | |
| 12384 | |
| 12385 /** | |
| 12386 * Return `true` if this identifier is the name being declared in a declaratio
n. | 10109 * Return `true` if this identifier is the name being declared in a declaratio
n. |
| 12387 * | 10110 * |
| 12388 * @return `true` if this identifier is the name being declared in a declarati
on | 10111 * @return `true` if this identifier is the name being declared in a declarati
on |
| 12389 */ | 10112 */ |
| 12390 bool inDeclarationContext() { | 10113 bool inDeclarationContext() { |
| 12391 ASTNode parent = this.parent; | 10114 ASTNode parent = this.parent; |
| 12392 if (parent is CatchClause) { | 10115 if (parent is CatchClause) { |
| 12393 CatchClause clause = parent as CatchClause; | 10116 CatchClause clause = parent as CatchClause; |
| 12394 return identical(this, clause.exceptionParameter) || identical(this, claus
e.stackTraceParameter); | 10117 return identical(this, clause.exceptionParameter) || identical(this, claus
e.stackTraceParameter); |
| 12395 } else if (parent is ClassDeclaration) { | 10118 } else if (parent is ClassDeclaration) { |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12486 } | 10209 } |
| 12487 if (parent is PrefixExpression) { | 10210 if (parent is PrefixExpression) { |
| 12488 return ((parent as PrefixExpression)).operator.type.isIncrementOperator; | 10211 return ((parent as PrefixExpression)).operator.type.isIncrementOperator; |
| 12489 } else if (parent is PostfixExpression) { | 10212 } else if (parent is PostfixExpression) { |
| 12490 return true; | 10213 return true; |
| 12491 } else if (parent is AssignmentExpression) { | 10214 } else if (parent is AssignmentExpression) { |
| 12492 return identical(((parent as AssignmentExpression)).leftHandSide, target); | 10215 return identical(((parent as AssignmentExpression)).leftHandSide, target); |
| 12493 } | 10216 } |
| 12494 return false; | 10217 return false; |
| 12495 } | 10218 } |
| 12496 bool get isSynthetic => _token.isSynthetic; | 10219 bool get isSynthetic => token.isSynthetic; |
| 12497 | |
| 12498 /** | |
| 12499 * Set the auxiliary elements. | |
| 12500 */ | |
| 12501 void set auxiliaryElements(AuxiliaryElements auxiliaryElements2) { | |
| 12502 this._auxiliaryElements = auxiliaryElements2; | |
| 12503 } | |
| 12504 | 10220 |
| 12505 /** | 10221 /** |
| 12506 * Set the element associated with this identifier based on propagated type in
formation to the | 10222 * Set the element associated with this identifier based on propagated type in
formation to the |
| 12507 * given element. | 10223 * given element. |
| 12508 * | 10224 * |
| 12509 * @param element the element to be associated with this identifier | 10225 * @param element the element to be associated with this identifier |
| 12510 */ | 10226 */ |
| 12511 void set propagatedElement(Element element) { | 10227 void set propagatedElement(Element element) { |
| 12512 _propagatedElement = validateElement2(element); | 10228 _propagatedElement = validateElement2(element); |
| 12513 } | 10229 } |
| 12514 | 10230 |
| 12515 /** | 10231 /** |
| 12516 * Set the element associated with this identifier based on static type inform
ation to the given | 10232 * Set the element associated with this identifier based on static type inform
ation to the given |
| 12517 * element. | 10233 * element. |
| 12518 * | 10234 * |
| 12519 * @param element the element to be associated with this identifier | 10235 * @param element the element to be associated with this identifier |
| 12520 */ | 10236 */ |
| 12521 void set staticElement(Element element) { | 10237 void set staticElement(Element element) { |
| 12522 _staticElement = validateElement2(element); | 10238 _staticElement = validateElement2(element); |
| 12523 } | 10239 } |
| 12524 | |
| 12525 /** | |
| 12526 * Set the token representing the identifier to the given token. | |
| 12527 * | |
| 12528 * @param token the token representing the literal | |
| 12529 */ | |
| 12530 void set token(Token token2) { | |
| 12531 this._token = token2; | |
| 12532 } | |
| 12533 void visitChildren(ASTVisitor visitor) { | 10240 void visitChildren(ASTVisitor visitor) { |
| 12534 } | 10241 } |
| 12535 | 10242 |
| 12536 /** | 10243 /** |
| 12537 * Return the given element if it is an appropriate element based on the paren
t of this | 10244 * Return the given element if it is an appropriate element based on the paren
t of this |
| 12538 * identifier, or `null` if it is not appropriate. | 10245 * identifier, or `null` if it is not appropriate. |
| 12539 * | 10246 * |
| 12540 * @param element the element to be associated with this identifier | 10247 * @param element the element to be associated with this identifier |
| 12541 * @return the element to be associated with this identifier | 10248 * @return the element to be associated with this identifier |
| 12542 */ | 10249 */ |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12607 * '"' characters '"' | 10314 * '"' characters '"' |
| 12608 * </pre> | 10315 * </pre> |
| 12609 * | 10316 * |
| 12610 * @coverage dart.engine.ast | 10317 * @coverage dart.engine.ast |
| 12611 */ | 10318 */ |
| 12612 class SimpleStringLiteral extends StringLiteral { | 10319 class SimpleStringLiteral extends StringLiteral { |
| 12613 | 10320 |
| 12614 /** | 10321 /** |
| 12615 * The token representing the literal. | 10322 * The token representing the literal. |
| 12616 */ | 10323 */ |
| 12617 Token _literal; | 10324 Token literal; |
| 12618 | 10325 |
| 12619 /** | 10326 /** |
| 12620 * The value of the literal. | 10327 * The value of the literal. |
| 12621 */ | 10328 */ |
| 12622 String _value; | 10329 String _value; |
| 12623 | 10330 |
| 12624 /** | 10331 /** |
| 12625 * Initialize a newly created simple string literal. | 10332 * Initialize a newly created simple string literal. |
| 12626 * | 10333 * |
| 12627 * @param literal the token representing the literal | 10334 * @param literal the token representing the literal |
| 12628 * @param value the value of the literal | 10335 * @param value the value of the literal |
| 12629 */ | 10336 */ |
| 12630 SimpleStringLiteral.full(Token literal, String value) { | 10337 SimpleStringLiteral.full(Token literal, String value) { |
| 12631 this._literal = literal; | 10338 this.literal = literal; |
| 12632 this._value = StringUtilities.intern(value); | 10339 this._value = StringUtilities.intern(value); |
| 12633 } | 10340 } |
| 12634 | 10341 |
| 12635 /** | 10342 /** |
| 12636 * Initialize a newly created simple string literal. | 10343 * Initialize a newly created simple string literal. |
| 12637 * | 10344 * |
| 12638 * @param literal the token representing the literal | 10345 * @param literal the token representing the literal |
| 12639 * @param value the value of the literal | 10346 * @param value the value of the literal |
| 12640 */ | 10347 */ |
| 12641 SimpleStringLiteral({Token literal, String value}) : this.full(literal, value)
; | 10348 SimpleStringLiteral({Token literal, String value}) : this.full(literal, value)
; |
| 12642 accept(ASTVisitor visitor) => visitor.visitSimpleStringLiteral(this); | 10349 accept(ASTVisitor visitor) => visitor.visitSimpleStringLiteral(this); |
| 12643 Token get beginToken => _literal; | 10350 Token get beginToken => literal; |
| 12644 Token get endToken => _literal; | 10351 Token get endToken => literal; |
| 12645 | |
| 12646 /** | |
| 12647 * Return the token representing the literal. | |
| 12648 * | |
| 12649 * @return the token representing the literal | |
| 12650 */ | |
| 12651 Token get literal => _literal; | |
| 12652 | 10352 |
| 12653 /** | 10353 /** |
| 12654 * Return the value of the literal. | 10354 * Return the value of the literal. |
| 12655 * | 10355 * |
| 12656 * @return the value of the literal | 10356 * @return the value of the literal |
| 12657 */ | 10357 */ |
| 12658 String get value => _value; | 10358 String get value => _value; |
| 12659 | 10359 |
| 12660 /** | 10360 /** |
| 12661 * Return `true` if this string literal is a multi-line string. | 10361 * Return `true` if this string literal is a multi-line string. |
| 12662 * | 10362 * |
| 12663 * @return `true` if this string literal is a multi-line string | 10363 * @return `true` if this string literal is a multi-line string |
| 12664 */ | 10364 */ |
| 12665 bool get isMultiline { | 10365 bool get isMultiline { |
| 12666 if (_value.length < 6) { | 10366 if (_value.length < 6) { |
| 12667 return false; | 10367 return false; |
| 12668 } | 10368 } |
| 12669 return _value.endsWith("\"\"\"") || _value.endsWith("'''"); | 10369 return _value.endsWith("\"\"\"") || _value.endsWith("'''"); |
| 12670 } | 10370 } |
| 12671 | 10371 |
| 12672 /** | 10372 /** |
| 12673 * Return `true` if this string literal is a raw string. | 10373 * Return `true` if this string literal is a raw string. |
| 12674 * | 10374 * |
| 12675 * @return `true` if this string literal is a raw string | 10375 * @return `true` if this string literal is a raw string |
| 12676 */ | 10376 */ |
| 12677 bool get isRaw => _value.codeUnitAt(0) == 0x40; | 10377 bool get isRaw => _value.codeUnitAt(0) == 0x40; |
| 12678 bool get isSynthetic => _literal.isSynthetic; | 10378 bool get isSynthetic => literal.isSynthetic; |
| 12679 | |
| 12680 /** | |
| 12681 * Set the token representing the literal to the given token. | |
| 12682 * | |
| 12683 * @param literal the token representing the literal | |
| 12684 */ | |
| 12685 void set literal(Token literal2) { | |
| 12686 this._literal = literal2; | |
| 12687 } | |
| 12688 | 10379 |
| 12689 /** | 10380 /** |
| 12690 * Set the value of the literal to the given string. | 10381 * Set the value of the literal to the given string. |
| 12691 * | 10382 * |
| 12692 * @param string the value of the literal | 10383 * @param string the value of the literal |
| 12693 */ | 10384 */ |
| 12694 void set value(String string) { | 10385 void set value(String string) { |
| 12695 _value = StringUtilities.intern(_value); | 10386 _value = StringUtilities.intern(_value); |
| 12696 } | 10387 } |
| 12697 void visitChildren(ASTVisitor visitor) { | 10388 void visitChildren(ASTVisitor visitor) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12735 * | '"' [InterpolationElement]* '"' | 10426 * | '"' [InterpolationElement]* '"' |
| 12736 * </pre> | 10427 * </pre> |
| 12737 * | 10428 * |
| 12738 * @coverage dart.engine.ast | 10429 * @coverage dart.engine.ast |
| 12739 */ | 10430 */ |
| 12740 class StringInterpolation extends StringLiteral { | 10431 class StringInterpolation extends StringLiteral { |
| 12741 | 10432 |
| 12742 /** | 10433 /** |
| 12743 * The elements that will be composed to produce the resulting string. | 10434 * The elements that will be composed to produce the resulting string. |
| 12744 */ | 10435 */ |
| 12745 NodeList<InterpolationElement> _elements; | 10436 NodeList<InterpolationElement> elements; |
| 12746 | 10437 |
| 12747 /** | 10438 /** |
| 12748 * Initialize a newly created string interpolation expression. | 10439 * Initialize a newly created string interpolation expression. |
| 12749 * | 10440 * |
| 12750 * @param elements the elements that will be composed to produce the resulting
string | 10441 * @param elements the elements that will be composed to produce the resulting
string |
| 12751 */ | 10442 */ |
| 12752 StringInterpolation.full(List<InterpolationElement> elements) { | 10443 StringInterpolation.full(List<InterpolationElement> elements) { |
| 12753 this._elements = new NodeList<InterpolationElement>(this); | 10444 this.elements = new NodeList<InterpolationElement>(this); |
| 12754 this._elements.addAll(elements); | 10445 this.elements.addAll(elements); |
| 12755 } | 10446 } |
| 12756 | 10447 |
| 12757 /** | 10448 /** |
| 12758 * Initialize a newly created string interpolation expression. | 10449 * Initialize a newly created string interpolation expression. |
| 12759 * | 10450 * |
| 12760 * @param elements the elements that will be composed to produce the resulting
string | 10451 * @param elements the elements that will be composed to produce the resulting
string |
| 12761 */ | 10452 */ |
| 12762 StringInterpolation({List<InterpolationElement> elements}) : this.full(element
s); | 10453 StringInterpolation({List<InterpolationElement> elements}) : this.full(element
s); |
| 12763 accept(ASTVisitor visitor) => visitor.visitStringInterpolation(this); | 10454 accept(ASTVisitor visitor) => visitor.visitStringInterpolation(this); |
| 12764 Token get beginToken => _elements.beginToken; | 10455 Token get beginToken => elements.beginToken; |
| 12765 | 10456 Token get endToken => elements.endToken; |
| 12766 /** | |
| 12767 * Return the elements that will be composed to produce the resulting string. | |
| 12768 * | |
| 12769 * @return the elements that will be composed to produce the resulting string | |
| 12770 */ | |
| 12771 NodeList<InterpolationElement> get elements => _elements; | |
| 12772 Token get endToken => _elements.endToken; | |
| 12773 void visitChildren(ASTVisitor visitor) { | 10457 void visitChildren(ASTVisitor visitor) { |
| 12774 _elements.accept(visitor); | 10458 elements.accept(visitor); |
| 12775 } | 10459 } |
| 12776 void appendStringValue(JavaStringBuilder builder) { | 10460 void appendStringValue(JavaStringBuilder builder) { |
| 12777 throw new IllegalArgumentException(); | 10461 throw new IllegalArgumentException(); |
| 12778 } | 10462 } |
| 12779 } | 10463 } |
| 12780 /** | 10464 /** |
| 12781 * Instances of the class `StringLiteral` represent a string literal expression. | 10465 * Instances of the class `StringLiteral` represent a string literal expression. |
| 12782 * | 10466 * |
| 12783 * <pre> | 10467 * <pre> |
| 12784 * stringLiteral ::= | 10468 * stringLiteral ::= |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12825 * 'super' ('.' [SimpleIdentifier])? [ArgumentList] | 10509 * 'super' ('.' [SimpleIdentifier])? [ArgumentList] |
| 12826 * </pre> | 10510 * </pre> |
| 12827 * | 10511 * |
| 12828 * @coverage dart.engine.ast | 10512 * @coverage dart.engine.ast |
| 12829 */ | 10513 */ |
| 12830 class SuperConstructorInvocation extends ConstructorInitializer { | 10514 class SuperConstructorInvocation extends ConstructorInitializer { |
| 12831 | 10515 |
| 12832 /** | 10516 /** |
| 12833 * The token for the 'super' keyword. | 10517 * The token for the 'super' keyword. |
| 12834 */ | 10518 */ |
| 12835 Token _keyword; | 10519 Token keyword; |
| 12836 | 10520 |
| 12837 /** | 10521 /** |
| 12838 * The token for the period before the name of the constructor that is being i
nvoked, or | 10522 * The token for the period before the name of the constructor that is being i
nvoked, or |
| 12839 * `null` if the unnamed constructor is being invoked. | 10523 * `null` if the unnamed constructor is being invoked. |
| 12840 */ | 10524 */ |
| 12841 Token _period; | 10525 Token period; |
| 12842 | 10526 |
| 12843 /** | 10527 /** |
| 12844 * The name of the constructor that is being invoked, or `null` if the unnamed
constructor | 10528 * The name of the constructor that is being invoked, or `null` if the unnamed
constructor |
| 12845 * is being invoked. | 10529 * is being invoked. |
| 12846 */ | 10530 */ |
| 12847 SimpleIdentifier _constructorName; | 10531 SimpleIdentifier _constructorName; |
| 12848 | 10532 |
| 12849 /** | 10533 /** |
| 12850 * The list of arguments to the constructor. | 10534 * The list of arguments to the constructor. |
| 12851 */ | 10535 */ |
| 12852 ArgumentList _argumentList; | 10536 ArgumentList _argumentList; |
| 12853 | 10537 |
| 12854 /** | 10538 /** |
| 12855 * The element associated with the constructor based on static type informatio
n, or `null` | 10539 * The element associated with the constructor based on static type informatio
n, or `null` |
| 12856 * if the AST structure has not been resolved or if the constructor could not
be resolved. | 10540 * if the AST structure has not been resolved or if the constructor could not
be resolved. |
| 12857 */ | 10541 */ |
| 12858 ConstructorElement _staticElement; | 10542 ConstructorElement staticElement; |
| 12859 | 10543 |
| 12860 /** | 10544 /** |
| 12861 * The element associated with the constructor based on propagated type inform
ation, or `null` if the AST structure has not been | 10545 * The element associated with the constructor based on propagated type inform
ation, or `null` if the AST structure has not been |
| 12862 * resolved or if the constructor could not be resolved. | 10546 * resolved or if the constructor could not be resolved. |
| 12863 */ | 10547 */ |
| 12864 ConstructorElement _propagatedElement; | 10548 ConstructorElement _propagatedElement; |
| 12865 | 10549 |
| 12866 /** | 10550 /** |
| 12867 * Initialize a newly created super invocation to invoke the inherited constru
ctor with the given | 10551 * Initialize a newly created super invocation to invoke the inherited constru
ctor with the given |
| 12868 * name with the given arguments. | 10552 * name with the given arguments. |
| 12869 * | 10553 * |
| 12870 * @param keyword the token for the 'super' keyword | 10554 * @param keyword the token for the 'super' keyword |
| 12871 * @param period the token for the period before the name of the constructor t
hat is being invoked | 10555 * @param period the token for the period before the name of the constructor t
hat is being invoked |
| 12872 * @param constructorName the name of the constructor that is being invoked | 10556 * @param constructorName the name of the constructor that is being invoked |
| 12873 * @param argumentList the list of arguments to the constructor | 10557 * @param argumentList the list of arguments to the constructor |
| 12874 */ | 10558 */ |
| 12875 SuperConstructorInvocation.full(Token keyword, Token period, SimpleIdentifier
constructorName, ArgumentList argumentList) { | 10559 SuperConstructorInvocation.full(Token keyword, Token period, SimpleIdentifier
constructorName, ArgumentList argumentList) { |
| 12876 this._keyword = keyword; | 10560 this.keyword = keyword; |
| 12877 this._period = period; | 10561 this.period = period; |
| 12878 this._constructorName = becomeParentOf(constructorName); | 10562 this._constructorName = becomeParentOf(constructorName); |
| 12879 this._argumentList = becomeParentOf(argumentList); | 10563 this._argumentList = becomeParentOf(argumentList); |
| 12880 } | 10564 } |
| 12881 | 10565 |
| 12882 /** | 10566 /** |
| 12883 * Initialize a newly created super invocation to invoke the inherited constru
ctor with the given | 10567 * Initialize a newly created super invocation to invoke the inherited constru
ctor with the given |
| 12884 * name with the given arguments. | 10568 * name with the given arguments. |
| 12885 * | 10569 * |
| 12886 * @param keyword the token for the 'super' keyword | 10570 * @param keyword the token for the 'super' keyword |
| 12887 * @param period the token for the period before the name of the constructor t
hat is being invoked | 10571 * @param period the token for the period before the name of the constructor t
hat is being invoked |
| 12888 * @param constructorName the name of the constructor that is being invoked | 10572 * @param constructorName the name of the constructor that is being invoked |
| 12889 * @param argumentList the list of arguments to the constructor | 10573 * @param argumentList the list of arguments to the constructor |
| 12890 */ | 10574 */ |
| 12891 SuperConstructorInvocation({Token keyword, Token period, SimpleIdentifier cons
tructorName, ArgumentList argumentList}) : this.full(keyword, period, constructo
rName, argumentList); | 10575 SuperConstructorInvocation({Token keyword, Token period, SimpleIdentifier cons
tructorName, ArgumentList argumentList}) : this.full(keyword, period, constructo
rName, argumentList); |
| 12892 accept(ASTVisitor visitor) => visitor.visitSuperConstructorInvocation(this); | 10576 accept(ASTVisitor visitor) => visitor.visitSuperConstructorInvocation(this); |
| 12893 | 10577 |
| 12894 /** | 10578 /** |
| 12895 * Return the list of arguments to the constructor. | 10579 * Return the list of arguments to the constructor. |
| 12896 * | 10580 * |
| 12897 * @return the list of arguments to the constructor | 10581 * @return the list of arguments to the constructor |
| 12898 */ | 10582 */ |
| 12899 ArgumentList get argumentList => _argumentList; | 10583 ArgumentList get argumentList => _argumentList; |
| 12900 Token get beginToken => _keyword; | 10584 Token get beginToken => keyword; |
| 12901 | 10585 |
| 12902 /** | 10586 /** |
| 12903 * Return the name of the constructor that is being invoked, or `null` if the
unnamed | 10587 * Return the name of the constructor that is being invoked, or `null` if the
unnamed |
| 12904 * constructor is being invoked. | 10588 * constructor is being invoked. |
| 12905 * | 10589 * |
| 12906 * @return the name of the constructor that is being invoked | 10590 * @return the name of the constructor that is being invoked |
| 12907 */ | 10591 */ |
| 12908 SimpleIdentifier get constructorName => _constructorName; | 10592 SimpleIdentifier get constructorName => _constructorName; |
| 12909 | 10593 |
| 12910 /** | 10594 /** |
| 12911 * Return the element associated with the constructor based on propagated type
information, or | 10595 * Return the element associated with the constructor based on propagated type
information, or |
| 12912 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | 10596 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be |
| 12913 * resolved. | 10597 * resolved. |
| 12914 * | 10598 * |
| 12915 * @return the element associated with the super constructor | 10599 * @return the element associated with the super constructor |
| 12916 */ | 10600 */ |
| 12917 ConstructorElement get element => _propagatedElement; | 10601 ConstructorElement get element => _propagatedElement; |
| 12918 Token get endToken => _argumentList.endToken; | 10602 Token get endToken => _argumentList.endToken; |
| 12919 | 10603 |
| 12920 /** | 10604 /** |
| 12921 * Return the token for the 'super' keyword. | |
| 12922 * | |
| 12923 * @return the token for the 'super' keyword | |
| 12924 */ | |
| 12925 Token get keyword => _keyword; | |
| 12926 | |
| 12927 /** | |
| 12928 * Return the token for the period before the name of the constructor that is
being invoked, or | |
| 12929 * `null` if the unnamed constructor is being invoked. | |
| 12930 * | |
| 12931 * @return the token for the period before the name of the constructor that is
being invoked | |
| 12932 */ | |
| 12933 Token get period => _period; | |
| 12934 | |
| 12935 /** | |
| 12936 * Return the element associated with the constructor based on static type inf
ormation, or | |
| 12937 * `null` if the AST structure has not been resolved or if the constructor cou
ld not be | |
| 12938 * resolved. | |
| 12939 * | |
| 12940 * @return the element associated with the constructor | |
| 12941 */ | |
| 12942 ConstructorElement get staticElement => _staticElement; | |
| 12943 | |
| 12944 /** | |
| 12945 * Set the list of arguments to the constructor to the given list. | 10605 * Set the list of arguments to the constructor to the given list. |
| 12946 * | 10606 * |
| 12947 * @param argumentList the list of arguments to the constructor | 10607 * @param argumentList the list of arguments to the constructor |
| 12948 */ | 10608 */ |
| 12949 void set argumentList(ArgumentList argumentList2) { | 10609 void set argumentList(ArgumentList argumentList2) { |
| 12950 this._argumentList = becomeParentOf(argumentList2); | 10610 this._argumentList = becomeParentOf(argumentList2); |
| 12951 } | 10611 } |
| 12952 | 10612 |
| 12953 /** | 10613 /** |
| 12954 * Set the name of the constructor that is being invoked to the given identifi
er. | 10614 * Set the name of the constructor that is being invoked to the given identifi
er. |
| 12955 * | 10615 * |
| 12956 * @param identifier the name of the constructor that is being invoked | 10616 * @param identifier the name of the constructor that is being invoked |
| 12957 */ | 10617 */ |
| 12958 void set constructorName(SimpleIdentifier identifier) { | 10618 void set constructorName(SimpleIdentifier identifier) { |
| 12959 _constructorName = becomeParentOf(identifier); | 10619 _constructorName = becomeParentOf(identifier); |
| 12960 } | 10620 } |
| 12961 | 10621 |
| 12962 /** | 10622 /** |
| 12963 * Set the element associated with the constructor based on propagated type in
formation to the | 10623 * Set the element associated with the constructor based on propagated type in
formation to the |
| 12964 * given element. | 10624 * given element. |
| 12965 * | 10625 * |
| 12966 * @param element the element to be associated with the constructor | 10626 * @param element the element to be associated with the constructor |
| 12967 */ | 10627 */ |
| 12968 void set element(ConstructorElement element2) { | 10628 void set element(ConstructorElement element2) { |
| 12969 _propagatedElement = element2; | 10629 _propagatedElement = element2; |
| 12970 } | 10630 } |
| 12971 | |
| 12972 /** | |
| 12973 * Set the token for the 'super' keyword to the given token. | |
| 12974 * | |
| 12975 * @param keyword the token for the 'super' keyword | |
| 12976 */ | |
| 12977 void set keyword(Token keyword2) { | |
| 12978 this._keyword = keyword2; | |
| 12979 } | |
| 12980 | |
| 12981 /** | |
| 12982 * Set the token for the period before the name of the constructor that is bei
ng invoked to the | |
| 12983 * given token. | |
| 12984 * | |
| 12985 * @param period the token for the period before the name of the constructor t
hat is being invoked | |
| 12986 */ | |
| 12987 void set period(Token period2) { | |
| 12988 this._period = period2; | |
| 12989 } | |
| 12990 | |
| 12991 /** | |
| 12992 * Set the element associated with the constructor based on static type inform
ation to the given | |
| 12993 * element. | |
| 12994 * | |
| 12995 * @param element the element to be associated with the constructor | |
| 12996 */ | |
| 12997 void set staticElement(ConstructorElement element) { | |
| 12998 this._staticElement = element; | |
| 12999 } | |
| 13000 void visitChildren(ASTVisitor visitor) { | 10631 void visitChildren(ASTVisitor visitor) { |
| 13001 safelyVisitChild(_constructorName, visitor); | 10632 safelyVisitChild(_constructorName, visitor); |
| 13002 safelyVisitChild(_argumentList, visitor); | 10633 safelyVisitChild(_argumentList, visitor); |
| 13003 } | 10634 } |
| 13004 } | 10635 } |
| 13005 /** | 10636 /** |
| 13006 * Instances of the class `SuperExpression` represent a super expression. | 10637 * Instances of the class `SuperExpression` represent a super expression. |
| 13007 * | 10638 * |
| 13008 * <pre> | 10639 * <pre> |
| 13009 * superExpression ::= | 10640 * superExpression ::= |
| 13010 * 'super' | 10641 * 'super' |
| 13011 * </pre> | 10642 * </pre> |
| 13012 * | 10643 * |
| 13013 * @coverage dart.engine.ast | 10644 * @coverage dart.engine.ast |
| 13014 */ | 10645 */ |
| 13015 class SuperExpression extends Expression { | 10646 class SuperExpression extends Expression { |
| 13016 | 10647 |
| 13017 /** | 10648 /** |
| 13018 * The token representing the keyword. | 10649 * The token representing the keyword. |
| 13019 */ | 10650 */ |
| 13020 Token _keyword; | 10651 Token keyword; |
| 13021 | 10652 |
| 13022 /** | 10653 /** |
| 13023 * Initialize a newly created super expression. | 10654 * Initialize a newly created super expression. |
| 13024 * | 10655 * |
| 13025 * @param keyword the token representing the keyword | 10656 * @param keyword the token representing the keyword |
| 13026 */ | 10657 */ |
| 13027 SuperExpression.full(Token keyword) { | 10658 SuperExpression.full(Token keyword) { |
| 13028 this._keyword = keyword; | 10659 this.keyword = keyword; |
| 13029 } | 10660 } |
| 13030 | 10661 |
| 13031 /** | 10662 /** |
| 13032 * Initialize a newly created super expression. | 10663 * Initialize a newly created super expression. |
| 13033 * | 10664 * |
| 13034 * @param keyword the token representing the keyword | 10665 * @param keyword the token representing the keyword |
| 13035 */ | 10666 */ |
| 13036 SuperExpression({Token keyword}) : this.full(keyword); | 10667 SuperExpression({Token keyword}) : this.full(keyword); |
| 13037 accept(ASTVisitor visitor) => visitor.visitSuperExpression(this); | 10668 accept(ASTVisitor visitor) => visitor.visitSuperExpression(this); |
| 13038 Token get beginToken => _keyword; | 10669 Token get beginToken => keyword; |
| 13039 Token get endToken => _keyword; | 10670 Token get endToken => keyword; |
| 13040 | |
| 13041 /** | |
| 13042 * Return the token representing the keyword. | |
| 13043 * | |
| 13044 * @return the token representing the keyword | |
| 13045 */ | |
| 13046 Token get keyword => _keyword; | |
| 13047 | |
| 13048 /** | |
| 13049 * Set the token representing the keyword to the given token. | |
| 13050 * | |
| 13051 * @param keyword the token representing the keyword | |
| 13052 */ | |
| 13053 void set keyword(Token keyword2) { | |
| 13054 this._keyword = keyword2; | |
| 13055 } | |
| 13056 void visitChildren(ASTVisitor visitor) { | 10671 void visitChildren(ASTVisitor visitor) { |
| 13057 } | 10672 } |
| 13058 } | 10673 } |
| 13059 /** | 10674 /** |
| 13060 * Instances of the class `SwitchCase` represent the case in a switch statement. | 10675 * Instances of the class `SwitchCase` represent the case in a switch statement. |
| 13061 * | 10676 * |
| 13062 * <pre> | 10677 * <pre> |
| 13063 * switchCase ::= | 10678 * switchCase ::= |
| 13064 * [SimpleIdentifier]* 'case' [Expression] ':' [Statement]* | 10679 * [SimpleIdentifier]* 'case' [Expression] ':' [Statement]* |
| 13065 * </pre> | 10680 * </pre> |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13166 * | switchDefault | 10781 * | switchDefault |
| 13167 * </pre> | 10782 * </pre> |
| 13168 * | 10783 * |
| 13169 * @coverage dart.engine.ast | 10784 * @coverage dart.engine.ast |
| 13170 */ | 10785 */ |
| 13171 abstract class SwitchMember extends ASTNode { | 10786 abstract class SwitchMember extends ASTNode { |
| 13172 | 10787 |
| 13173 /** | 10788 /** |
| 13174 * The labels associated with the switch member. | 10789 * The labels associated with the switch member. |
| 13175 */ | 10790 */ |
| 13176 NodeList<Label> _labels; | 10791 NodeList<Label> labels; |
| 13177 | 10792 |
| 13178 /** | 10793 /** |
| 13179 * The token representing the 'case' or 'default' keyword. | 10794 * The token representing the 'case' or 'default' keyword. |
| 13180 */ | 10795 */ |
| 13181 Token _keyword; | 10796 Token keyword; |
| 13182 | 10797 |
| 13183 /** | 10798 /** |
| 13184 * The colon separating the keyword or the expression from the statements. | 10799 * The colon separating the keyword or the expression from the statements. |
| 13185 */ | 10800 */ |
| 13186 Token _colon; | 10801 Token colon; |
| 13187 | 10802 |
| 13188 /** | 10803 /** |
| 13189 * The statements that will be executed if this switch member is selected. | 10804 * The statements that will be executed if this switch member is selected. |
| 13190 */ | 10805 */ |
| 13191 NodeList<Statement> _statements; | 10806 NodeList<Statement> statements; |
| 13192 | 10807 |
| 13193 /** | 10808 /** |
| 13194 * Initialize a newly created switch member. | 10809 * Initialize a newly created switch member. |
| 13195 * | 10810 * |
| 13196 * @param labels the labels associated with the switch member | 10811 * @param labels the labels associated with the switch member |
| 13197 * @param keyword the token representing the 'case' or 'default' keyword | 10812 * @param keyword the token representing the 'case' or 'default' keyword |
| 13198 * @param colon the colon separating the keyword or the expression from the st
atements | 10813 * @param colon the colon separating the keyword or the expression from the st
atements |
| 13199 * @param statements the statements that will be executed if this switch membe
r is selected | 10814 * @param statements the statements that will be executed if this switch membe
r is selected |
| 13200 */ | 10815 */ |
| 13201 SwitchMember.full(List<Label> labels, Token keyword, Token colon, List<Stateme
nt> statements) { | 10816 SwitchMember.full(List<Label> labels, Token keyword, Token colon, List<Stateme
nt> statements) { |
| 13202 this._labels = new NodeList<Label>(this); | 10817 this.labels = new NodeList<Label>(this); |
| 13203 this._statements = new NodeList<Statement>(this); | 10818 this.statements = new NodeList<Statement>(this); |
| 13204 this._labels.addAll(labels); | 10819 this.labels.addAll(labels); |
| 13205 this._keyword = keyword; | 10820 this.keyword = keyword; |
| 13206 this._colon = colon; | 10821 this.colon = colon; |
| 13207 this._statements.addAll(statements); | 10822 this.statements.addAll(statements); |
| 13208 } | 10823 } |
| 13209 | 10824 |
| 13210 /** | 10825 /** |
| 13211 * Initialize a newly created switch member. | 10826 * Initialize a newly created switch member. |
| 13212 * | 10827 * |
| 13213 * @param labels the labels associated with the switch member | 10828 * @param labels the labels associated with the switch member |
| 13214 * @param keyword the token representing the 'case' or 'default' keyword | 10829 * @param keyword the token representing the 'case' or 'default' keyword |
| 13215 * @param colon the colon separating the keyword or the expression from the st
atements | 10830 * @param colon the colon separating the keyword or the expression from the st
atements |
| 13216 * @param statements the statements that will be executed if this switch membe
r is selected | 10831 * @param statements the statements that will be executed if this switch membe
r is selected |
| 13217 */ | 10832 */ |
| 13218 SwitchMember({List<Label> labels, Token keyword, Token colon, List<Statement>
statements}) : this.full(labels, keyword, colon, statements); | 10833 SwitchMember({List<Label> labels, Token keyword, Token colon, List<Statement>
statements}) : this.full(labels, keyword, colon, statements); |
| 13219 Token get beginToken { | 10834 Token get beginToken { |
| 13220 if (!_labels.isEmpty) { | 10835 if (!labels.isEmpty) { |
| 13221 return _labels.beginToken; | 10836 return labels.beginToken; |
| 13222 } | 10837 } |
| 13223 return _keyword; | 10838 return keyword; |
| 13224 } | 10839 } |
| 13225 | |
| 13226 /** | |
| 13227 * Return the colon separating the keyword or the expression from the statemen
ts. | |
| 13228 * | |
| 13229 * @return the colon separating the keyword or the expression from the stateme
nts | |
| 13230 */ | |
| 13231 Token get colon => _colon; | |
| 13232 Token get endToken { | 10840 Token get endToken { |
| 13233 if (!_statements.isEmpty) { | 10841 if (!statements.isEmpty) { |
| 13234 return _statements.endToken; | 10842 return statements.endToken; |
| 13235 } | 10843 } |
| 13236 return _colon; | 10844 return colon; |
| 13237 } | |
| 13238 | |
| 13239 /** | |
| 13240 * Return the token representing the 'case' or 'default' keyword. | |
| 13241 * | |
| 13242 * @return the token representing the 'case' or 'default' keyword | |
| 13243 */ | |
| 13244 Token get keyword => _keyword; | |
| 13245 | |
| 13246 /** | |
| 13247 * Return the labels associated with the switch member. | |
| 13248 * | |
| 13249 * @return the labels associated with the switch member | |
| 13250 */ | |
| 13251 NodeList<Label> get labels => _labels; | |
| 13252 | |
| 13253 /** | |
| 13254 * Return the statements that will be executed if this switch member is select
ed. | |
| 13255 * | |
| 13256 * @return the statements that will be executed if this switch member is selec
ted | |
| 13257 */ | |
| 13258 NodeList<Statement> get statements => _statements; | |
| 13259 | |
| 13260 /** | |
| 13261 * Set the colon separating the keyword or the expression from the statements
to the given token. | |
| 13262 * | |
| 13263 * @param colon the colon separating the keyword or the expression from the st
atements | |
| 13264 */ | |
| 13265 void set colon(Token colon2) { | |
| 13266 this._colon = colon2; | |
| 13267 } | |
| 13268 | |
| 13269 /** | |
| 13270 * Set the token representing the 'case' or 'default' keyword to the given tok
en. | |
| 13271 * | |
| 13272 * @param keyword the token representing the 'case' or 'default' keyword | |
| 13273 */ | |
| 13274 void set keyword(Token keyword2) { | |
| 13275 this._keyword = keyword2; | |
| 13276 } | 10845 } |
| 13277 } | 10846 } |
| 13278 /** | 10847 /** |
| 13279 * Instances of the class `SwitchStatement` represent a switch statement. | 10848 * Instances of the class `SwitchStatement` represent a switch statement. |
| 13280 * | 10849 * |
| 13281 * <pre> | 10850 * <pre> |
| 13282 * switchStatement ::= | 10851 * switchStatement ::= |
| 13283 * 'switch' '(' [Expression] ')' '{' [SwitchCase]* [SwitchDefault]? '}' | 10852 * 'switch' '(' [Expression] ')' '{' [SwitchCase]* [SwitchDefault]? '}' |
| 13284 * </pre> | 10853 * </pre> |
| 13285 * | 10854 * |
| 13286 * @coverage dart.engine.ast | 10855 * @coverage dart.engine.ast |
| 13287 */ | 10856 */ |
| 13288 class SwitchStatement extends Statement { | 10857 class SwitchStatement extends Statement { |
| 13289 | 10858 |
| 13290 /** | 10859 /** |
| 13291 * The token representing the 'switch' keyword. | 10860 * The token representing the 'switch' keyword. |
| 13292 */ | 10861 */ |
| 13293 Token _keyword; | 10862 Token keyword; |
| 13294 | 10863 |
| 13295 /** | 10864 /** |
| 13296 * The left parenthesis. | 10865 * The left parenthesis. |
| 13297 */ | 10866 */ |
| 13298 Token _leftParenthesis; | 10867 Token leftParenthesis; |
| 13299 | 10868 |
| 13300 /** | 10869 /** |
| 13301 * The expression used to determine which of the switch members will be select
ed. | 10870 * The expression used to determine which of the switch members will be select
ed. |
| 13302 */ | 10871 */ |
| 13303 Expression _expression; | 10872 Expression _expression; |
| 13304 | 10873 |
| 13305 /** | 10874 /** |
| 13306 * The right parenthesis. | 10875 * The right parenthesis. |
| 13307 */ | 10876 */ |
| 13308 Token _rightParenthesis; | 10877 Token rightParenthesis; |
| 13309 | 10878 |
| 13310 /** | 10879 /** |
| 13311 * The left curly bracket. | 10880 * The left curly bracket. |
| 13312 */ | 10881 */ |
| 13313 Token _leftBracket; | 10882 Token leftBracket; |
| 13314 | 10883 |
| 13315 /** | 10884 /** |
| 13316 * The switch members that can be selected by the expression. | 10885 * The switch members that can be selected by the expression. |
| 13317 */ | 10886 */ |
| 13318 NodeList<SwitchMember> _members; | 10887 NodeList<SwitchMember> members; |
| 13319 | 10888 |
| 13320 /** | 10889 /** |
| 13321 * The right curly bracket. | 10890 * The right curly bracket. |
| 13322 */ | 10891 */ |
| 13323 Token _rightBracket; | 10892 Token rightBracket; |
| 13324 | 10893 |
| 13325 /** | 10894 /** |
| 13326 * Initialize a newly created switch statement. | 10895 * Initialize a newly created switch statement. |
| 13327 * | 10896 * |
| 13328 * @param keyword the token representing the 'switch' keyword | 10897 * @param keyword the token representing the 'switch' keyword |
| 13329 * @param leftParenthesis the left parenthesis | 10898 * @param leftParenthesis the left parenthesis |
| 13330 * @param expression the expression used to determine which of the switch memb
ers will be selected | 10899 * @param expression the expression used to determine which of the switch memb
ers will be selected |
| 13331 * @param rightParenthesis the right parenthesis | 10900 * @param rightParenthesis the right parenthesis |
| 13332 * @param leftBracket the left curly bracket | 10901 * @param leftBracket the left curly bracket |
| 13333 * @param members the switch members that can be selected by the expression | 10902 * @param members the switch members that can be selected by the expression |
| 13334 * @param rightBracket the right curly bracket | 10903 * @param rightBracket the right curly bracket |
| 13335 */ | 10904 */ |
| 13336 SwitchStatement.full(Token keyword, Token leftParenthesis, Expression expressi
on, Token rightParenthesis, Token leftBracket, List<SwitchMember> members, Token
rightBracket) { | 10905 SwitchStatement.full(Token keyword, Token leftParenthesis, Expression expressi
on, Token rightParenthesis, Token leftBracket, List<SwitchMember> members, Token
rightBracket) { |
| 13337 this._members = new NodeList<SwitchMember>(this); | 10906 this.members = new NodeList<SwitchMember>(this); |
| 13338 this._keyword = keyword; | 10907 this.keyword = keyword; |
| 13339 this._leftParenthesis = leftParenthesis; | 10908 this.leftParenthesis = leftParenthesis; |
| 13340 this._expression = becomeParentOf(expression); | 10909 this._expression = becomeParentOf(expression); |
| 13341 this._rightParenthesis = rightParenthesis; | 10910 this.rightParenthesis = rightParenthesis; |
| 13342 this._leftBracket = leftBracket; | 10911 this.leftBracket = leftBracket; |
| 13343 this._members.addAll(members); | 10912 this.members.addAll(members); |
| 13344 this._rightBracket = rightBracket; | 10913 this.rightBracket = rightBracket; |
| 13345 } | 10914 } |
| 13346 | 10915 |
| 13347 /** | 10916 /** |
| 13348 * Initialize a newly created switch statement. | 10917 * Initialize a newly created switch statement. |
| 13349 * | 10918 * |
| 13350 * @param keyword the token representing the 'switch' keyword | 10919 * @param keyword the token representing the 'switch' keyword |
| 13351 * @param leftParenthesis the left parenthesis | 10920 * @param leftParenthesis the left parenthesis |
| 13352 * @param expression the expression used to determine which of the switch memb
ers will be selected | 10921 * @param expression the expression used to determine which of the switch memb
ers will be selected |
| 13353 * @param rightParenthesis the right parenthesis | 10922 * @param rightParenthesis the right parenthesis |
| 13354 * @param leftBracket the left curly bracket | 10923 * @param leftBracket the left curly bracket |
| 13355 * @param members the switch members that can be selected by the expression | 10924 * @param members the switch members that can be selected by the expression |
| 13356 * @param rightBracket the right curly bracket | 10925 * @param rightBracket the right curly bracket |
| 13357 */ | 10926 */ |
| 13358 SwitchStatement({Token keyword, Token leftParenthesis, Expression expression,
Token rightParenthesis, Token leftBracket, List<SwitchMember> members, Token rig
htBracket}) : this.full(keyword, leftParenthesis, expression, rightParenthesis,
leftBracket, members, rightBracket); | 10927 SwitchStatement({Token keyword, Token leftParenthesis, Expression expression,
Token rightParenthesis, Token leftBracket, List<SwitchMember> members, Token rig
htBracket}) : this.full(keyword, leftParenthesis, expression, rightParenthesis,
leftBracket, members, rightBracket); |
| 13359 accept(ASTVisitor visitor) => visitor.visitSwitchStatement(this); | 10928 accept(ASTVisitor visitor) => visitor.visitSwitchStatement(this); |
| 13360 Token get beginToken => _keyword; | 10929 Token get beginToken => keyword; |
| 13361 Token get endToken => _rightBracket; | 10930 Token get endToken => rightBracket; |
| 13362 | 10931 |
| 13363 /** | 10932 /** |
| 13364 * Return the expression used to determine which of the switch members will be
selected. | 10933 * Return the expression used to determine which of the switch members will be
selected. |
| 13365 * | 10934 * |
| 13366 * @return the expression used to determine which of the switch members will b
e selected | 10935 * @return the expression used to determine which of the switch members will b
e selected |
| 13367 */ | 10936 */ |
| 13368 Expression get expression => _expression; | 10937 Expression get expression => _expression; |
| 13369 | 10938 |
| 13370 /** | 10939 /** |
| 13371 * Return the token representing the 'switch' keyword. | |
| 13372 * | |
| 13373 * @return the token representing the 'switch' keyword | |
| 13374 */ | |
| 13375 Token get keyword => _keyword; | |
| 13376 | |
| 13377 /** | |
| 13378 * Return the left curly bracket. | |
| 13379 * | |
| 13380 * @return the left curly bracket | |
| 13381 */ | |
| 13382 Token get leftBracket => _leftBracket; | |
| 13383 | |
| 13384 /** | |
| 13385 * Return the left parenthesis. | |
| 13386 * | |
| 13387 * @return the left parenthesis | |
| 13388 */ | |
| 13389 Token get leftParenthesis => _leftParenthesis; | |
| 13390 | |
| 13391 /** | |
| 13392 * Return the switch members that can be selected by the expression. | |
| 13393 * | |
| 13394 * @return the switch members that can be selected by the expression | |
| 13395 */ | |
| 13396 NodeList<SwitchMember> get members => _members; | |
| 13397 | |
| 13398 /** | |
| 13399 * Return the right curly bracket. | |
| 13400 * | |
| 13401 * @return the right curly bracket | |
| 13402 */ | |
| 13403 Token get rightBracket => _rightBracket; | |
| 13404 | |
| 13405 /** | |
| 13406 * Return the right parenthesis. | |
| 13407 * | |
| 13408 * @return the right parenthesis | |
| 13409 */ | |
| 13410 Token get rightParenthesis => _rightParenthesis; | |
| 13411 | |
| 13412 /** | |
| 13413 * Set the expression used to determine which of the switch members will be se
lected to the given | 10940 * Set the expression used to determine which of the switch members will be se
lected to the given |
| 13414 * expression. | 10941 * expression. |
| 13415 * | 10942 * |
| 13416 * @param expression the expression used to determine which of the switch memb
ers will be selected | 10943 * @param expression the expression used to determine which of the switch memb
ers will be selected |
| 13417 */ | 10944 */ |
| 13418 void set expression(Expression expression2) { | 10945 void set expression(Expression expression2) { |
| 13419 this._expression = becomeParentOf(expression2); | 10946 this._expression = becomeParentOf(expression2); |
| 13420 } | 10947 } |
| 13421 | |
| 13422 /** | |
| 13423 * Set the token representing the 'switch' keyword to the given token. | |
| 13424 * | |
| 13425 * @param keyword the token representing the 'switch' keyword | |
| 13426 */ | |
| 13427 void set keyword(Token keyword2) { | |
| 13428 this._keyword = keyword2; | |
| 13429 } | |
| 13430 | |
| 13431 /** | |
| 13432 * Set the left curly bracket to the given token. | |
| 13433 * | |
| 13434 * @param leftBracket the left curly bracket | |
| 13435 */ | |
| 13436 void set leftBracket(Token leftBracket2) { | |
| 13437 this._leftBracket = leftBracket2; | |
| 13438 } | |
| 13439 | |
| 13440 /** | |
| 13441 * Set the left parenthesis to the given token. | |
| 13442 * | |
| 13443 * @param leftParenthesis the left parenthesis | |
| 13444 */ | |
| 13445 void set leftParenthesis(Token leftParenthesis2) { | |
| 13446 this._leftParenthesis = leftParenthesis2; | |
| 13447 } | |
| 13448 | |
| 13449 /** | |
| 13450 * Set the right curly bracket to the given token. | |
| 13451 * | |
| 13452 * @param rightBracket the right curly bracket | |
| 13453 */ | |
| 13454 void set rightBracket(Token rightBracket2) { | |
| 13455 this._rightBracket = rightBracket2; | |
| 13456 } | |
| 13457 | |
| 13458 /** | |
| 13459 * Set the right parenthesis to the given token. | |
| 13460 * | |
| 13461 * @param rightParenthesis the right parenthesis | |
| 13462 */ | |
| 13463 void set rightParenthesis(Token rightParenthesis2) { | |
| 13464 this._rightParenthesis = rightParenthesis2; | |
| 13465 } | |
| 13466 void visitChildren(ASTVisitor visitor) { | 10948 void visitChildren(ASTVisitor visitor) { |
| 13467 safelyVisitChild(_expression, visitor); | 10949 safelyVisitChild(_expression, visitor); |
| 13468 _members.accept(visitor); | 10950 members.accept(visitor); |
| 13469 } | 10951 } |
| 13470 } | 10952 } |
| 13471 /** | 10953 /** |
| 13472 * Instances of the class `SymbolLiteral` represent a symbol literal expression. | 10954 * Instances of the class `SymbolLiteral` represent a symbol literal expression. |
| 13473 * | 10955 * |
| 13474 * <pre> | 10956 * <pre> |
| 13475 * symbolLiteral ::= | 10957 * symbolLiteral ::= |
| 13476 * '#' (operator | (identifier ('.' identifier)*)) | 10958 * '#' (operator | (identifier ('.' identifier)*)) |
| 13477 * </pre> | 10959 * </pre> |
| 13478 * | 10960 * |
| 13479 * @coverage dart.engine.ast | 10961 * @coverage dart.engine.ast |
| 13480 */ | 10962 */ |
| 13481 class SymbolLiteral extends Literal { | 10963 class SymbolLiteral extends Literal { |
| 13482 | 10964 |
| 13483 /** | 10965 /** |
| 13484 * The token introducing the literal. | 10966 * The token introducing the literal. |
| 13485 */ | 10967 */ |
| 13486 Token _poundSign; | 10968 Token poundSign; |
| 13487 | 10969 |
| 13488 /** | 10970 /** |
| 13489 * The components of the literal. | 10971 * The components of the literal. |
| 13490 */ | 10972 */ |
| 13491 List<Token> _components; | 10973 List<Token> components; |
| 13492 | 10974 |
| 13493 /** | 10975 /** |
| 13494 * Initialize a newly created symbol literal. | 10976 * Initialize a newly created symbol literal. |
| 13495 * | 10977 * |
| 13496 * @param poundSign the token introducing the literal | 10978 * @param poundSign the token introducing the literal |
| 13497 * @param components the components of the literal | 10979 * @param components the components of the literal |
| 13498 */ | 10980 */ |
| 13499 SymbolLiteral.full(Token poundSign, List<Token> components) { | 10981 SymbolLiteral.full(Token poundSign, List<Token> components) { |
| 13500 this._poundSign = poundSign; | 10982 this.poundSign = poundSign; |
| 13501 this._components = components; | 10983 this.components = components; |
| 13502 } | 10984 } |
| 13503 | 10985 |
| 13504 /** | 10986 /** |
| 13505 * Initialize a newly created symbol literal. | 10987 * Initialize a newly created symbol literal. |
| 13506 * | 10988 * |
| 13507 * @param poundSign the token introducing the literal | 10989 * @param poundSign the token introducing the literal |
| 13508 * @param components the components of the literal | 10990 * @param components the components of the literal |
| 13509 */ | 10991 */ |
| 13510 SymbolLiteral({Token poundSign, List<Token> components}) : this.full(poundSign
, components); | 10992 SymbolLiteral({Token poundSign, List<Token> components}) : this.full(poundSign
, components); |
| 13511 accept(ASTVisitor visitor) => visitor.visitSymbolLiteral(this); | 10993 accept(ASTVisitor visitor) => visitor.visitSymbolLiteral(this); |
| 13512 Token get beginToken => _poundSign; | 10994 Token get beginToken => poundSign; |
| 13513 | 10995 Token get endToken => components[components.length - 1]; |
| 13514 /** | |
| 13515 * Return the components of the literal. | |
| 13516 * | |
| 13517 * @return the components of the literal | |
| 13518 */ | |
| 13519 List<Token> get components => _components; | |
| 13520 Token get endToken => _components[_components.length - 1]; | |
| 13521 | |
| 13522 /** | |
| 13523 * Return the token introducing the literal. | |
| 13524 * | |
| 13525 * @return the token introducing the literal | |
| 13526 */ | |
| 13527 Token get poundSign => _poundSign; | |
| 13528 | |
| 13529 /** | |
| 13530 * Set the token introducing the literal to the given token. | |
| 13531 * | |
| 13532 * @param poundSign the token introducing the literal | |
| 13533 */ | |
| 13534 void set poundSign(Token poundSign2) { | |
| 13535 this._poundSign = poundSign2; | |
| 13536 } | |
| 13537 void visitChildren(ASTVisitor visitor) { | 10996 void visitChildren(ASTVisitor visitor) { |
| 13538 } | 10997 } |
| 13539 } | 10998 } |
| 13540 /** | 10999 /** |
| 13541 * Instances of the class `ThisExpression` represent a this expression. | 11000 * Instances of the class `ThisExpression` represent a this expression. |
| 13542 * | 11001 * |
| 13543 * <pre> | 11002 * <pre> |
| 13544 * thisExpression ::= | 11003 * thisExpression ::= |
| 13545 * 'this' | 11004 * 'this' |
| 13546 * </pre> | 11005 * </pre> |
| 13547 * | 11006 * |
| 13548 * @coverage dart.engine.ast | 11007 * @coverage dart.engine.ast |
| 13549 */ | 11008 */ |
| 13550 class ThisExpression extends Expression { | 11009 class ThisExpression extends Expression { |
| 13551 | 11010 |
| 13552 /** | 11011 /** |
| 13553 * The token representing the keyword. | 11012 * The token representing the keyword. |
| 13554 */ | 11013 */ |
| 13555 Token _keyword; | 11014 Token keyword; |
| 13556 | 11015 |
| 13557 /** | 11016 /** |
| 13558 * Initialize a newly created this expression. | 11017 * Initialize a newly created this expression. |
| 13559 * | 11018 * |
| 13560 * @param keyword the token representing the keyword | 11019 * @param keyword the token representing the keyword |
| 13561 */ | 11020 */ |
| 13562 ThisExpression.full(Token keyword) { | 11021 ThisExpression.full(Token keyword) { |
| 13563 this._keyword = keyword; | 11022 this.keyword = keyword; |
| 13564 } | 11023 } |
| 13565 | 11024 |
| 13566 /** | 11025 /** |
| 13567 * Initialize a newly created this expression. | 11026 * Initialize a newly created this expression. |
| 13568 * | 11027 * |
| 13569 * @param keyword the token representing the keyword | 11028 * @param keyword the token representing the keyword |
| 13570 */ | 11029 */ |
| 13571 ThisExpression({Token keyword}) : this.full(keyword); | 11030 ThisExpression({Token keyword}) : this.full(keyword); |
| 13572 accept(ASTVisitor visitor) => visitor.visitThisExpression(this); | 11031 accept(ASTVisitor visitor) => visitor.visitThisExpression(this); |
| 13573 Token get beginToken => _keyword; | 11032 Token get beginToken => keyword; |
| 13574 Token get endToken => _keyword; | 11033 Token get endToken => keyword; |
| 13575 | |
| 13576 /** | |
| 13577 * Return the token representing the keyword. | |
| 13578 * | |
| 13579 * @return the token representing the keyword | |
| 13580 */ | |
| 13581 Token get keyword => _keyword; | |
| 13582 | |
| 13583 /** | |
| 13584 * Set the token representing the keyword to the given token. | |
| 13585 * | |
| 13586 * @param keyword the token representing the keyword | |
| 13587 */ | |
| 13588 void set keyword(Token keyword2) { | |
| 13589 this._keyword = keyword2; | |
| 13590 } | |
| 13591 void visitChildren(ASTVisitor visitor) { | 11034 void visitChildren(ASTVisitor visitor) { |
| 13592 } | 11035 } |
| 13593 } | 11036 } |
| 13594 /** | 11037 /** |
| 13595 * Instances of the class `ThrowExpression` represent a throw expression. | 11038 * Instances of the class `ThrowExpression` represent a throw expression. |
| 13596 * | 11039 * |
| 13597 * <pre> | 11040 * <pre> |
| 13598 * throwExpression ::= | 11041 * throwExpression ::= |
| 13599 * 'throw' [Expression] | 11042 * 'throw' [Expression] |
| 13600 * </pre> | 11043 * </pre> |
| 13601 * | 11044 * |
| 13602 * @coverage dart.engine.ast | 11045 * @coverage dart.engine.ast |
| 13603 */ | 11046 */ |
| 13604 class ThrowExpression extends Expression { | 11047 class ThrowExpression extends Expression { |
| 13605 | 11048 |
| 13606 /** | 11049 /** |
| 13607 * The token representing the 'throw' keyword. | 11050 * The token representing the 'throw' keyword. |
| 13608 */ | 11051 */ |
| 13609 Token _keyword; | 11052 Token keyword; |
| 13610 | 11053 |
| 13611 /** | 11054 /** |
| 13612 * The expression computing the exception to be thrown. | 11055 * The expression computing the exception to be thrown. |
| 13613 */ | 11056 */ |
| 13614 Expression _expression; | 11057 Expression _expression; |
| 13615 | 11058 |
| 13616 /** | 11059 /** |
| 13617 * Initialize a newly created throw expression. | 11060 * Initialize a newly created throw expression. |
| 13618 * | 11061 * |
| 13619 * @param keyword the token representing the 'throw' keyword | 11062 * @param keyword the token representing the 'throw' keyword |
| 13620 * @param expression the expression computing the exception to be thrown | 11063 * @param expression the expression computing the exception to be thrown |
| 13621 */ | 11064 */ |
| 13622 ThrowExpression.full(Token keyword, Expression expression) { | 11065 ThrowExpression.full(Token keyword, Expression expression) { |
| 13623 this._keyword = keyword; | 11066 this.keyword = keyword; |
| 13624 this._expression = becomeParentOf(expression); | 11067 this._expression = becomeParentOf(expression); |
| 13625 } | 11068 } |
| 13626 | 11069 |
| 13627 /** | 11070 /** |
| 13628 * Initialize a newly created throw expression. | 11071 * Initialize a newly created throw expression. |
| 13629 * | 11072 * |
| 13630 * @param keyword the token representing the 'throw' keyword | 11073 * @param keyword the token representing the 'throw' keyword |
| 13631 * @param expression the expression computing the exception to be thrown | 11074 * @param expression the expression computing the exception to be thrown |
| 13632 */ | 11075 */ |
| 13633 ThrowExpression({Token keyword, Expression expression}) : this.full(keyword, e
xpression); | 11076 ThrowExpression({Token keyword, Expression expression}) : this.full(keyword, e
xpression); |
| 13634 accept(ASTVisitor visitor) => visitor.visitThrowExpression(this); | 11077 accept(ASTVisitor visitor) => visitor.visitThrowExpression(this); |
| 13635 Token get beginToken => _keyword; | 11078 Token get beginToken => keyword; |
| 13636 Token get endToken { | 11079 Token get endToken { |
| 13637 if (_expression != null) { | 11080 if (_expression != null) { |
| 13638 return _expression.endToken; | 11081 return _expression.endToken; |
| 13639 } | 11082 } |
| 13640 return _keyword; | 11083 return keyword; |
| 13641 } | 11084 } |
| 13642 | 11085 |
| 13643 /** | 11086 /** |
| 13644 * Return the expression computing the exception to be thrown. | 11087 * Return the expression computing the exception to be thrown. |
| 13645 * | 11088 * |
| 13646 * @return the expression computing the exception to be thrown | 11089 * @return the expression computing the exception to be thrown |
| 13647 */ | 11090 */ |
| 13648 Expression get expression => _expression; | 11091 Expression get expression => _expression; |
| 13649 | 11092 |
| 13650 /** | 11093 /** |
| 13651 * Return the token representing the 'throw' keyword. | |
| 13652 * | |
| 13653 * @return the token representing the 'throw' keyword | |
| 13654 */ | |
| 13655 Token get keyword => _keyword; | |
| 13656 | |
| 13657 /** | |
| 13658 * Set the expression computing the exception to be thrown to the given expres
sion. | 11094 * Set the expression computing the exception to be thrown to the given expres
sion. |
| 13659 * | 11095 * |
| 13660 * @param expression the expression computing the exception to be thrown | 11096 * @param expression the expression computing the exception to be thrown |
| 13661 */ | 11097 */ |
| 13662 void set expression(Expression expression2) { | 11098 void set expression(Expression expression2) { |
| 13663 this._expression = becomeParentOf(expression2); | 11099 this._expression = becomeParentOf(expression2); |
| 13664 } | 11100 } |
| 13665 | |
| 13666 /** | |
| 13667 * Set the token representing the 'throw' keyword to the given token. | |
| 13668 * | |
| 13669 * @param keyword the token representing the 'throw' keyword | |
| 13670 */ | |
| 13671 void set keyword(Token keyword2) { | |
| 13672 this._keyword = keyword2; | |
| 13673 } | |
| 13674 void visitChildren(ASTVisitor visitor) { | 11101 void visitChildren(ASTVisitor visitor) { |
| 13675 safelyVisitChild(_expression, visitor); | 11102 safelyVisitChild(_expression, visitor); |
| 13676 } | 11103 } |
| 13677 } | 11104 } |
| 13678 /** | 11105 /** |
| 13679 * Instances of the class `TopLevelVariableDeclaration` represent the declaratio
n of one or | 11106 * Instances of the class `TopLevelVariableDeclaration` represent the declaratio
n of one or |
| 13680 * more top-level variables of the same type. | 11107 * more top-level variables of the same type. |
| 13681 * | 11108 * |
| 13682 * <pre> | 11109 * <pre> |
| 13683 * topLevelVariableDeclaration ::= | 11110 * topLevelVariableDeclaration ::= |
| 13684 * ('final' | 'const') type? staticFinalDeclarationList ';' | 11111 * ('final' | 'const') type? staticFinalDeclarationList ';' |
| 13685 * | variableDeclaration ';' | 11112 * | variableDeclaration ';' |
| 13686 * </pre> | 11113 * </pre> |
| 13687 * | 11114 * |
| 13688 * @coverage dart.engine.ast | 11115 * @coverage dart.engine.ast |
| 13689 */ | 11116 */ |
| 13690 class TopLevelVariableDeclaration extends CompilationUnitMember { | 11117 class TopLevelVariableDeclaration extends CompilationUnitMember { |
| 13691 | 11118 |
| 13692 /** | 11119 /** |
| 13693 * The top-level variables being declared. | 11120 * The top-level variables being declared. |
| 13694 */ | 11121 */ |
| 13695 VariableDeclarationList _variableList; | 11122 VariableDeclarationList _variableList; |
| 13696 | 11123 |
| 13697 /** | 11124 /** |
| 13698 * The semicolon terminating the declaration. | 11125 * The semicolon terminating the declaration. |
| 13699 */ | 11126 */ |
| 13700 Token _semicolon; | 11127 Token semicolon; |
| 13701 | 11128 |
| 13702 /** | 11129 /** |
| 13703 * Initialize a newly created top-level variable declaration. | 11130 * Initialize a newly created top-level variable declaration. |
| 13704 * | 11131 * |
| 13705 * @param comment the documentation comment associated with this variable | 11132 * @param comment the documentation comment associated with this variable |
| 13706 * @param metadata the annotations associated with this variable | 11133 * @param metadata the annotations associated with this variable |
| 13707 * @param variableList the top-level variables being declared | 11134 * @param variableList the top-level variables being declared |
| 13708 * @param semicolon the semicolon terminating the declaration | 11135 * @param semicolon the semicolon terminating the declaration |
| 13709 */ | 11136 */ |
| 13710 TopLevelVariableDeclaration.full(Comment comment, List<Annotation> metadata, V
ariableDeclarationList variableList, Token semicolon) : super.full(comment, meta
data) { | 11137 TopLevelVariableDeclaration.full(Comment comment, List<Annotation> metadata, V
ariableDeclarationList variableList, Token semicolon) : super.full(comment, meta
data) { |
| 13711 this._variableList = becomeParentOf(variableList); | 11138 this._variableList = becomeParentOf(variableList); |
| 13712 this._semicolon = semicolon; | 11139 this.semicolon = semicolon; |
| 13713 } | 11140 } |
| 13714 | 11141 |
| 13715 /** | 11142 /** |
| 13716 * Initialize a newly created top-level variable declaration. | 11143 * Initialize a newly created top-level variable declaration. |
| 13717 * | 11144 * |
| 13718 * @param comment the documentation comment associated with this variable | 11145 * @param comment the documentation comment associated with this variable |
| 13719 * @param metadata the annotations associated with this variable | 11146 * @param metadata the annotations associated with this variable |
| 13720 * @param variableList the top-level variables being declared | 11147 * @param variableList the top-level variables being declared |
| 13721 * @param semicolon the semicolon terminating the declaration | 11148 * @param semicolon the semicolon terminating the declaration |
| 13722 */ | 11149 */ |
| 13723 TopLevelVariableDeclaration({Comment comment, List<Annotation> metadata, Varia
bleDeclarationList variableList, Token semicolon}) : this.full(comment, metadata
, variableList, semicolon); | 11150 TopLevelVariableDeclaration({Comment comment, List<Annotation> metadata, Varia
bleDeclarationList variableList, Token semicolon}) : this.full(comment, metadata
, variableList, semicolon); |
| 13724 accept(ASTVisitor visitor) => visitor.visitTopLevelVariableDeclaration(this); | 11151 accept(ASTVisitor visitor) => visitor.visitTopLevelVariableDeclaration(this); |
| 13725 Element get element => null; | 11152 Element get element => null; |
| 13726 Token get endToken => _semicolon; | 11153 Token get endToken => semicolon; |
| 13727 | |
| 13728 /** | |
| 13729 * Return the semicolon terminating the declaration. | |
| 13730 * | |
| 13731 * @return the semicolon terminating the declaration | |
| 13732 */ | |
| 13733 Token get semicolon => _semicolon; | |
| 13734 | 11154 |
| 13735 /** | 11155 /** |
| 13736 * Return the top-level variables being declared. | 11156 * Return the top-level variables being declared. |
| 13737 * | 11157 * |
| 13738 * @return the top-level variables being declared | 11158 * @return the top-level variables being declared |
| 13739 */ | 11159 */ |
| 13740 VariableDeclarationList get variables => _variableList; | 11160 VariableDeclarationList get variables => _variableList; |
| 13741 | 11161 |
| 13742 /** | 11162 /** |
| 13743 * Set the semicolon terminating the declaration to the given token. | |
| 13744 * | |
| 13745 * @param semicolon the semicolon terminating the declaration | |
| 13746 */ | |
| 13747 void set semicolon(Token semicolon2) { | |
| 13748 this._semicolon = semicolon2; | |
| 13749 } | |
| 13750 | |
| 13751 /** | |
| 13752 * Set the top-level variables being declared to the given list of variables. | 11163 * Set the top-level variables being declared to the given list of variables. |
| 13753 * | 11164 * |
| 13754 * @param variableList the top-level variables being declared | 11165 * @param variableList the top-level variables being declared |
| 13755 */ | 11166 */ |
| 13756 void set variables(VariableDeclarationList variableList) { | 11167 void set variables(VariableDeclarationList variableList) { |
| 13757 variableList = becomeParentOf(variableList); | 11168 variableList = becomeParentOf(variableList); |
| 13758 } | 11169 } |
| 13759 void visitChildren(ASTVisitor visitor) { | 11170 void visitChildren(ASTVisitor visitor) { |
| 13760 super.visitChildren(visitor); | 11171 super.visitChildren(visitor); |
| 13761 safelyVisitChild(_variableList, visitor); | 11172 safelyVisitChild(_variableList, visitor); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 13773 * 'finally' [Block] | 11184 * 'finally' [Block] |
| 13774 * </pre> | 11185 * </pre> |
| 13775 * | 11186 * |
| 13776 * @coverage dart.engine.ast | 11187 * @coverage dart.engine.ast |
| 13777 */ | 11188 */ |
| 13778 class TryStatement extends Statement { | 11189 class TryStatement extends Statement { |
| 13779 | 11190 |
| 13780 /** | 11191 /** |
| 13781 * The token representing the 'try' keyword. | 11192 * The token representing the 'try' keyword. |
| 13782 */ | 11193 */ |
| 13783 Token _tryKeyword; | 11194 Token tryKeyword; |
| 13784 | 11195 |
| 13785 /** | 11196 /** |
| 13786 * The body of the statement. | 11197 * The body of the statement. |
| 13787 */ | 11198 */ |
| 13788 Block _body; | 11199 Block _body; |
| 13789 | 11200 |
| 13790 /** | 11201 /** |
| 13791 * The catch clauses contained in the try statement. | 11202 * The catch clauses contained in the try statement. |
| 13792 */ | 11203 */ |
| 13793 NodeList<CatchClause> _catchClauses; | 11204 NodeList<CatchClause> catchClauses; |
| 13794 | 11205 |
| 13795 /** | 11206 /** |
| 13796 * The token representing the 'finally' keyword, or `null` if the statement do
es not contain | 11207 * The token representing the 'finally' keyword, or `null` if the statement do
es not contain |
| 13797 * a finally clause. | 11208 * a finally clause. |
| 13798 */ | 11209 */ |
| 13799 Token _finallyKeyword; | 11210 Token finallyKeyword; |
| 13800 | 11211 |
| 13801 /** | 11212 /** |
| 13802 * The finally block contained in the try statement, or `null` if the statemen
t does not | 11213 * The finally block contained in the try statement, or `null` if the statemen
t does not |
| 13803 * contain a finally clause. | 11214 * contain a finally clause. |
| 13804 */ | 11215 */ |
| 13805 Block _finallyBlock; | 11216 Block _finallyBlock; |
| 13806 | 11217 |
| 13807 /** | 11218 /** |
| 13808 * Initialize a newly created try statement. | 11219 * Initialize a newly created try statement. |
| 13809 * | 11220 * |
| 13810 * @param tryKeyword the token representing the 'try' keyword | 11221 * @param tryKeyword the token representing the 'try' keyword |
| 13811 * @param body the body of the statement | 11222 * @param body the body of the statement |
| 13812 * @param catchClauses the catch clauses contained in the try statement | 11223 * @param catchClauses the catch clauses contained in the try statement |
| 13813 * @param finallyKeyword the token representing the 'finally' keyword | 11224 * @param finallyKeyword the token representing the 'finally' keyword |
| 13814 * @param finallyBlock the finally block contained in the try statement | 11225 * @param finallyBlock the finally block contained in the try statement |
| 13815 */ | 11226 */ |
| 13816 TryStatement.full(Token tryKeyword, Block body, List<CatchClause> catchClauses
, Token finallyKeyword, Block finallyBlock) { | 11227 TryStatement.full(Token tryKeyword, Block body, List<CatchClause> catchClauses
, Token finallyKeyword, Block finallyBlock) { |
| 13817 this._catchClauses = new NodeList<CatchClause>(this); | 11228 this.catchClauses = new NodeList<CatchClause>(this); |
| 13818 this._tryKeyword = tryKeyword; | 11229 this.tryKeyword = tryKeyword; |
| 13819 this._body = becomeParentOf(body); | 11230 this._body = becomeParentOf(body); |
| 13820 this._catchClauses.addAll(catchClauses); | 11231 this.catchClauses.addAll(catchClauses); |
| 13821 this._finallyKeyword = finallyKeyword; | 11232 this.finallyKeyword = finallyKeyword; |
| 13822 this._finallyBlock = becomeParentOf(finallyBlock); | 11233 this._finallyBlock = becomeParentOf(finallyBlock); |
| 13823 } | 11234 } |
| 13824 | 11235 |
| 13825 /** | 11236 /** |
| 13826 * Initialize a newly created try statement. | 11237 * Initialize a newly created try statement. |
| 13827 * | 11238 * |
| 13828 * @param tryKeyword the token representing the 'try' keyword | 11239 * @param tryKeyword the token representing the 'try' keyword |
| 13829 * @param body the body of the statement | 11240 * @param body the body of the statement |
| 13830 * @param catchClauses the catch clauses contained in the try statement | 11241 * @param catchClauses the catch clauses contained in the try statement |
| 13831 * @param finallyKeyword the token representing the 'finally' keyword | 11242 * @param finallyKeyword the token representing the 'finally' keyword |
| 13832 * @param finallyBlock the finally block contained in the try statement | 11243 * @param finallyBlock the finally block contained in the try statement |
| 13833 */ | 11244 */ |
| 13834 TryStatement({Token tryKeyword, Block body, List<CatchClause> catchClauses, To
ken finallyKeyword, Block finallyBlock}) : this.full(tryKeyword, body, catchClau
ses, finallyKeyword, finallyBlock); | 11245 TryStatement({Token tryKeyword, Block body, List<CatchClause> catchClauses, To
ken finallyKeyword, Block finallyBlock}) : this.full(tryKeyword, body, catchClau
ses, finallyKeyword, finallyBlock); |
| 13835 accept(ASTVisitor visitor) => visitor.visitTryStatement(this); | 11246 accept(ASTVisitor visitor) => visitor.visitTryStatement(this); |
| 13836 Token get beginToken => _tryKeyword; | 11247 Token get beginToken => tryKeyword; |
| 13837 | 11248 |
| 13838 /** | 11249 /** |
| 13839 * Return the body of the statement. | 11250 * Return the body of the statement. |
| 13840 * | 11251 * |
| 13841 * @return the body of the statement | 11252 * @return the body of the statement |
| 13842 */ | 11253 */ |
| 13843 Block get body => _body; | 11254 Block get body => _body; |
| 13844 | |
| 13845 /** | |
| 13846 * Return the catch clauses contained in the try statement. | |
| 13847 * | |
| 13848 * @return the catch clauses contained in the try statement | |
| 13849 */ | |
| 13850 NodeList<CatchClause> get catchClauses => _catchClauses; | |
| 13851 Token get endToken { | 11255 Token get endToken { |
| 13852 if (_finallyBlock != null) { | 11256 if (_finallyBlock != null) { |
| 13853 return _finallyBlock.endToken; | 11257 return _finallyBlock.endToken; |
| 13854 } else if (_finallyKeyword != null) { | 11258 } else if (finallyKeyword != null) { |
| 13855 return _finallyKeyword; | 11259 return finallyKeyword; |
| 13856 } else if (!_catchClauses.isEmpty) { | 11260 } else if (!catchClauses.isEmpty) { |
| 13857 return _catchClauses.endToken; | 11261 return catchClauses.endToken; |
| 13858 } | 11262 } |
| 13859 return _body.endToken; | 11263 return _body.endToken; |
| 13860 } | 11264 } |
| 13861 | 11265 |
| 13862 /** | 11266 /** |
| 13863 * Return the finally block contained in the try statement, or `null` if the s
tatement does | 11267 * Return the finally block contained in the try statement, or `null` if the s
tatement does |
| 13864 * not contain a finally clause. | 11268 * not contain a finally clause. |
| 13865 * | 11269 * |
| 13866 * @return the finally block contained in the try statement | 11270 * @return the finally block contained in the try statement |
| 13867 */ | 11271 */ |
| 13868 Block get finallyBlock => _finallyBlock; | 11272 Block get finallyBlock => _finallyBlock; |
| 13869 | 11273 |
| 13870 /** | 11274 /** |
| 13871 * Return the token representing the 'finally' keyword, or `null` if the state
ment does not | |
| 13872 * contain a finally clause. | |
| 13873 * | |
| 13874 * @return the token representing the 'finally' keyword | |
| 13875 */ | |
| 13876 Token get finallyKeyword => _finallyKeyword; | |
| 13877 | |
| 13878 /** | |
| 13879 * Return the token representing the 'try' keyword. | |
| 13880 * | |
| 13881 * @return the token representing the 'try' keyword | |
| 13882 */ | |
| 13883 Token get tryKeyword => _tryKeyword; | |
| 13884 | |
| 13885 /** | |
| 13886 * Set the body of the statement to the given block. | 11275 * Set the body of the statement to the given block. |
| 13887 * | 11276 * |
| 13888 * @param block the body of the statement | 11277 * @param block the body of the statement |
| 13889 */ | 11278 */ |
| 13890 void set body(Block block) { | 11279 void set body(Block block) { |
| 13891 _body = becomeParentOf(block); | 11280 _body = becomeParentOf(block); |
| 13892 } | 11281 } |
| 13893 | 11282 |
| 13894 /** | 11283 /** |
| 13895 * Set the finally block contained in the try statement to the given block. | 11284 * Set the finally block contained in the try statement to the given block. |
| 13896 * | 11285 * |
| 13897 * @param block the finally block contained in the try statement | 11286 * @param block the finally block contained in the try statement |
| 13898 */ | 11287 */ |
| 13899 void set finallyBlock(Block block) { | 11288 void set finallyBlock(Block block) { |
| 13900 _finallyBlock = becomeParentOf(block); | 11289 _finallyBlock = becomeParentOf(block); |
| 13901 } | 11290 } |
| 13902 | |
| 13903 /** | |
| 13904 * Set the token representing the 'finally' keyword to the given token. | |
| 13905 * | |
| 13906 * @param finallyKeyword the token representing the 'finally' keyword | |
| 13907 */ | |
| 13908 void set finallyKeyword(Token finallyKeyword2) { | |
| 13909 this._finallyKeyword = finallyKeyword2; | |
| 13910 } | |
| 13911 | |
| 13912 /** | |
| 13913 * Set the token representing the 'try' keyword to the given token. | |
| 13914 * | |
| 13915 * @param tryKeyword the token representing the 'try' keyword | |
| 13916 */ | |
| 13917 void set tryKeyword(Token tryKeyword2) { | |
| 13918 this._tryKeyword = tryKeyword2; | |
| 13919 } | |
| 13920 void visitChildren(ASTVisitor visitor) { | 11291 void visitChildren(ASTVisitor visitor) { |
| 13921 safelyVisitChild(_body, visitor); | 11292 safelyVisitChild(_body, visitor); |
| 13922 _catchClauses.accept(visitor); | 11293 catchClauses.accept(visitor); |
| 13923 safelyVisitChild(_finallyBlock, visitor); | 11294 safelyVisitChild(_finallyBlock, visitor); |
| 13924 } | 11295 } |
| 13925 } | 11296 } |
| 13926 /** | 11297 /** |
| 13927 * The abstract class `TypeAlias` defines the behavior common to declarations of
type aliases. | 11298 * The abstract class `TypeAlias` defines the behavior common to declarations of
type aliases. |
| 13928 * | 11299 * |
| 13929 * <pre> | 11300 * <pre> |
| 13930 * typeAlias ::= | 11301 * typeAlias ::= |
| 13931 * 'typedef' typeAliasBody | 11302 * 'typedef' typeAliasBody |
| 13932 * | 11303 * |
| 13933 * typeAliasBody ::= | 11304 * typeAliasBody ::= |
| 13934 * classTypeAlias | 11305 * classTypeAlias |
| 13935 * | functionTypeAlias | 11306 * | functionTypeAlias |
| 13936 * </pre> | 11307 * </pre> |
| 13937 * | 11308 * |
| 13938 * @coverage dart.engine.ast | 11309 * @coverage dart.engine.ast |
| 13939 */ | 11310 */ |
| 13940 abstract class TypeAlias extends CompilationUnitMember { | 11311 abstract class TypeAlias extends CompilationUnitMember { |
| 13941 | 11312 |
| 13942 /** | 11313 /** |
| 13943 * The token representing the 'typedef' keyword. | 11314 * The token representing the 'typedef' keyword. |
| 13944 */ | 11315 */ |
| 13945 Token _keyword; | 11316 Token keyword; |
| 13946 | 11317 |
| 13947 /** | 11318 /** |
| 13948 * The semicolon terminating the declaration. | 11319 * The semicolon terminating the declaration. |
| 13949 */ | 11320 */ |
| 13950 Token _semicolon; | 11321 Token semicolon; |
| 13951 | 11322 |
| 13952 /** | 11323 /** |
| 13953 * Initialize a newly created type alias. | 11324 * Initialize a newly created type alias. |
| 13954 * | 11325 * |
| 13955 * @param comment the documentation comment associated with this type alias | 11326 * @param comment the documentation comment associated with this type alias |
| 13956 * @param metadata the annotations associated with this type alias | 11327 * @param metadata the annotations associated with this type alias |
| 13957 * @param keyword the token representing the 'typedef' keyword | 11328 * @param keyword the token representing the 'typedef' keyword |
| 13958 * @param semicolon the semicolon terminating the declaration | 11329 * @param semicolon the semicolon terminating the declaration |
| 13959 */ | 11330 */ |
| 13960 TypeAlias.full(Comment comment, List<Annotation> metadata, Token keyword, Toke
n semicolon) : super.full(comment, metadata) { | 11331 TypeAlias.full(Comment comment, List<Annotation> metadata, Token keyword, Toke
n semicolon) : super.full(comment, metadata) { |
| 13961 this._keyword = keyword; | 11332 this.keyword = keyword; |
| 13962 this._semicolon = semicolon; | 11333 this.semicolon = semicolon; |
| 13963 } | 11334 } |
| 13964 | 11335 |
| 13965 /** | 11336 /** |
| 13966 * Initialize a newly created type alias. | 11337 * Initialize a newly created type alias. |
| 13967 * | 11338 * |
| 13968 * @param comment the documentation comment associated with this type alias | 11339 * @param comment the documentation comment associated with this type alias |
| 13969 * @param metadata the annotations associated with this type alias | 11340 * @param metadata the annotations associated with this type alias |
| 13970 * @param keyword the token representing the 'typedef' keyword | 11341 * @param keyword the token representing the 'typedef' keyword |
| 13971 * @param semicolon the semicolon terminating the declaration | 11342 * @param semicolon the semicolon terminating the declaration |
| 13972 */ | 11343 */ |
| 13973 TypeAlias({Comment comment, List<Annotation> metadata, Token keyword, Token se
micolon}) : this.full(comment, metadata, keyword, semicolon); | 11344 TypeAlias({Comment comment, List<Annotation> metadata, Token keyword, Token se
micolon}) : this.full(comment, metadata, keyword, semicolon); |
| 13974 Token get endToken => _semicolon; | 11345 Token get endToken => semicolon; |
| 13975 | 11346 Token get firstTokenAfterCommentAndMetadata => keyword; |
| 13976 /** | |
| 13977 * Return the token representing the 'typedef' keyword. | |
| 13978 * | |
| 13979 * @return the token representing the 'typedef' keyword | |
| 13980 */ | |
| 13981 Token get keyword => _keyword; | |
| 13982 | |
| 13983 /** | |
| 13984 * Return the semicolon terminating the declaration. | |
| 13985 * | |
| 13986 * @return the semicolon terminating the declaration | |
| 13987 */ | |
| 13988 Token get semicolon => _semicolon; | |
| 13989 | |
| 13990 /** | |
| 13991 * Set the token representing the 'typedef' keyword to the given token. | |
| 13992 * | |
| 13993 * @param keyword the token representing the 'typedef' keyword | |
| 13994 */ | |
| 13995 void set keyword(Token keyword2) { | |
| 13996 this._keyword = keyword2; | |
| 13997 } | |
| 13998 | |
| 13999 /** | |
| 14000 * Set the semicolon terminating the declaration to the given token. | |
| 14001 * | |
| 14002 * @param semicolon the semicolon terminating the declaration | |
| 14003 */ | |
| 14004 void set semicolon(Token semicolon2) { | |
| 14005 this._semicolon = semicolon2; | |
| 14006 } | |
| 14007 Token get firstTokenAfterCommentAndMetadata => _keyword; | |
| 14008 } | 11347 } |
| 14009 /** | 11348 /** |
| 14010 * Instances of the class `TypeArgumentList` represent a list of type arguments. | 11349 * Instances of the class `TypeArgumentList` represent a list of type arguments. |
| 14011 * | 11350 * |
| 14012 * <pre> | 11351 * <pre> |
| 14013 * typeArguments ::= | 11352 * typeArguments ::= |
| 14014 * '<' typeName (',' typeName)* '>' | 11353 * '<' typeName (',' typeName)* '>' |
| 14015 * </pre> | 11354 * </pre> |
| 14016 * | 11355 * |
| 14017 * @coverage dart.engine.ast | 11356 * @coverage dart.engine.ast |
| 14018 */ | 11357 */ |
| 14019 class TypeArgumentList extends ASTNode { | 11358 class TypeArgumentList extends ASTNode { |
| 14020 | 11359 |
| 14021 /** | 11360 /** |
| 14022 * The left bracket. | 11361 * The left bracket. |
| 14023 */ | 11362 */ |
| 14024 Token _leftBracket; | 11363 Token leftBracket; |
| 14025 | 11364 |
| 14026 /** | 11365 /** |
| 14027 * The type arguments associated with the type. | 11366 * The type arguments associated with the type. |
| 14028 */ | 11367 */ |
| 14029 NodeList<TypeName> _arguments; | 11368 NodeList<TypeName> arguments; |
| 14030 | 11369 |
| 14031 /** | 11370 /** |
| 14032 * The right bracket. | 11371 * The right bracket. |
| 14033 */ | 11372 */ |
| 14034 Token _rightBracket; | 11373 Token rightBracket; |
| 14035 | 11374 |
| 14036 /** | 11375 /** |
| 14037 * Initialize a newly created list of type arguments. | 11376 * Initialize a newly created list of type arguments. |
| 14038 * | 11377 * |
| 14039 * @param leftBracket the left bracket | 11378 * @param leftBracket the left bracket |
| 14040 * @param arguments the type arguments associated with the type | 11379 * @param arguments the type arguments associated with the type |
| 14041 * @param rightBracket the right bracket | 11380 * @param rightBracket the right bracket |
| 14042 */ | 11381 */ |
| 14043 TypeArgumentList.full(Token leftBracket, List<TypeName> arguments, Token right
Bracket) { | 11382 TypeArgumentList.full(Token leftBracket, List<TypeName> arguments, Token right
Bracket) { |
| 14044 this._arguments = new NodeList<TypeName>(this); | 11383 this.arguments = new NodeList<TypeName>(this); |
| 14045 this._leftBracket = leftBracket; | 11384 this.leftBracket = leftBracket; |
| 14046 this._arguments.addAll(arguments); | 11385 this.arguments.addAll(arguments); |
| 14047 this._rightBracket = rightBracket; | 11386 this.rightBracket = rightBracket; |
| 14048 } | 11387 } |
| 14049 | 11388 |
| 14050 /** | 11389 /** |
| 14051 * Initialize a newly created list of type arguments. | 11390 * Initialize a newly created list of type arguments. |
| 14052 * | 11391 * |
| 14053 * @param leftBracket the left bracket | 11392 * @param leftBracket the left bracket |
| 14054 * @param arguments the type arguments associated with the type | 11393 * @param arguments the type arguments associated with the type |
| 14055 * @param rightBracket the right bracket | 11394 * @param rightBracket the right bracket |
| 14056 */ | 11395 */ |
| 14057 TypeArgumentList({Token leftBracket, List<TypeName> arguments, Token rightBrac
ket}) : this.full(leftBracket, arguments, rightBracket); | 11396 TypeArgumentList({Token leftBracket, List<TypeName> arguments, Token rightBrac
ket}) : this.full(leftBracket, arguments, rightBracket); |
| 14058 accept(ASTVisitor visitor) => visitor.visitTypeArgumentList(this); | 11397 accept(ASTVisitor visitor) => visitor.visitTypeArgumentList(this); |
| 14059 | 11398 Token get beginToken => leftBracket; |
| 14060 /** | 11399 Token get endToken => rightBracket; |
| 14061 * Return the type arguments associated with the type. | |
| 14062 * | |
| 14063 * @return the type arguments associated with the type | |
| 14064 */ | |
| 14065 NodeList<TypeName> get arguments => _arguments; | |
| 14066 Token get beginToken => _leftBracket; | |
| 14067 Token get endToken => _rightBracket; | |
| 14068 | |
| 14069 /** | |
| 14070 * Return the left bracket. | |
| 14071 * | |
| 14072 * @return the left bracket | |
| 14073 */ | |
| 14074 Token get leftBracket => _leftBracket; | |
| 14075 | |
| 14076 /** | |
| 14077 * Return the right bracket. | |
| 14078 * | |
| 14079 * @return the right bracket | |
| 14080 */ | |
| 14081 Token get rightBracket => _rightBracket; | |
| 14082 | |
| 14083 /** | |
| 14084 * Set the left bracket to the given token. | |
| 14085 * | |
| 14086 * @param leftBracket the left bracket | |
| 14087 */ | |
| 14088 void set leftBracket(Token leftBracket2) { | |
| 14089 this._leftBracket = leftBracket2; | |
| 14090 } | |
| 14091 | |
| 14092 /** | |
| 14093 * Set the right bracket to the given token. | |
| 14094 * | |
| 14095 * @param rightBracket the right bracket | |
| 14096 */ | |
| 14097 void set rightBracket(Token rightBracket2) { | |
| 14098 this._rightBracket = rightBracket2; | |
| 14099 } | |
| 14100 void visitChildren(ASTVisitor visitor) { | 11400 void visitChildren(ASTVisitor visitor) { |
| 14101 _arguments.accept(visitor); | 11401 arguments.accept(visitor); |
| 14102 } | 11402 } |
| 14103 } | 11403 } |
| 14104 /** | 11404 /** |
| 14105 * Instances of the class `TypeName` represent the name of a type, which can opt
ionally | 11405 * Instances of the class `TypeName` represent the name of a type, which can opt
ionally |
| 14106 * include type arguments. | 11406 * include type arguments. |
| 14107 * | 11407 * |
| 14108 * <pre> | 11408 * <pre> |
| 14109 * typeName ::= | 11409 * typeName ::= |
| 14110 * [Identifier] typeArguments? | 11410 * [Identifier] typeArguments? |
| 14111 * </pre> | 11411 * </pre> |
| 14112 * | 11412 * |
| 14113 * @coverage dart.engine.ast | 11413 * @coverage dart.engine.ast |
| 14114 */ | 11414 */ |
| 14115 class TypeName extends ASTNode { | 11415 class TypeName extends ASTNode { |
| 14116 | 11416 |
| 14117 /** | 11417 /** |
| 14118 * The name of the type. | 11418 * The name of the type. |
| 14119 */ | 11419 */ |
| 14120 Identifier _name; | 11420 Identifier _name; |
| 14121 | 11421 |
| 14122 /** | 11422 /** |
| 14123 * The type arguments associated with the type, or `null` if there are no type
arguments. | 11423 * The type arguments associated with the type, or `null` if there are no type
arguments. |
| 14124 */ | 11424 */ |
| 14125 TypeArgumentList _typeArguments; | 11425 TypeArgumentList _typeArguments; |
| 14126 | 11426 |
| 14127 /** | 11427 /** |
| 14128 * The type being named, or `null` if the AST structure has not been resolved. | 11428 * The type being named, or `null` if the AST structure has not been resolved. |
| 14129 */ | 11429 */ |
| 14130 Type2 _type; | 11430 Type2 type; |
| 14131 | 11431 |
| 14132 /** | 11432 /** |
| 14133 * Initialize a newly created type name. | 11433 * Initialize a newly created type name. |
| 14134 * | 11434 * |
| 14135 * @param name the name of the type | 11435 * @param name the name of the type |
| 14136 * @param typeArguments the type arguments associated with the type, or `null`
if there are | 11436 * @param typeArguments the type arguments associated with the type, or `null`
if there are |
| 14137 * no type arguments | 11437 * no type arguments |
| 14138 */ | 11438 */ |
| 14139 TypeName.full(Identifier name, TypeArgumentList typeArguments) { | 11439 TypeName.full(Identifier name, TypeArgumentList typeArguments) { |
| 14140 this._name = becomeParentOf(name); | 11440 this._name = becomeParentOf(name); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 14159 } | 11459 } |
| 14160 | 11460 |
| 14161 /** | 11461 /** |
| 14162 * Return the name of the type. | 11462 * Return the name of the type. |
| 14163 * | 11463 * |
| 14164 * @return the name of the type | 11464 * @return the name of the type |
| 14165 */ | 11465 */ |
| 14166 Identifier get name => _name; | 11466 Identifier get name => _name; |
| 14167 | 11467 |
| 14168 /** | 11468 /** |
| 14169 * Return the type being named, or `null` if the AST structure has not been re
solved. | |
| 14170 * | |
| 14171 * @return the type being named | |
| 14172 */ | |
| 14173 Type2 get type => _type; | |
| 14174 | |
| 14175 /** | |
| 14176 * Return the type arguments associated with the type, or `null` if there are
no type | 11469 * Return the type arguments associated with the type, or `null` if there are
no type |
| 14177 * arguments. | 11470 * arguments. |
| 14178 * | 11471 * |
| 14179 * @return the type arguments associated with the type | 11472 * @return the type arguments associated with the type |
| 14180 */ | 11473 */ |
| 14181 TypeArgumentList get typeArguments => _typeArguments; | 11474 TypeArgumentList get typeArguments => _typeArguments; |
| 14182 bool get isSynthetic => _name.isSynthetic && _typeArguments == null; | 11475 bool get isSynthetic => _name.isSynthetic && _typeArguments == null; |
| 14183 | 11476 |
| 14184 /** | 11477 /** |
| 14185 * Set the name of the type to the given identifier. | 11478 * Set the name of the type to the given identifier. |
| 14186 * | 11479 * |
| 14187 * @param identifier the name of the type | 11480 * @param identifier the name of the type |
| 14188 */ | 11481 */ |
| 14189 void set name(Identifier identifier) { | 11482 void set name(Identifier identifier) { |
| 14190 _name = becomeParentOf(identifier); | 11483 _name = becomeParentOf(identifier); |
| 14191 } | 11484 } |
| 14192 | 11485 |
| 14193 /** | 11486 /** |
| 14194 * Set the type being named to the given type. | |
| 14195 * | |
| 14196 * @param type the type being named | |
| 14197 */ | |
| 14198 void set type(Type2 type2) { | |
| 14199 this._type = type2; | |
| 14200 } | |
| 14201 | |
| 14202 /** | |
| 14203 * Set the type arguments associated with the type to the given type arguments
. | 11487 * Set the type arguments associated with the type to the given type arguments
. |
| 14204 * | 11488 * |
| 14205 * @param typeArguments the type arguments associated with the type | 11489 * @param typeArguments the type arguments associated with the type |
| 14206 */ | 11490 */ |
| 14207 void set typeArguments(TypeArgumentList typeArguments2) { | 11491 void set typeArguments(TypeArgumentList typeArguments2) { |
| 14208 this._typeArguments = becomeParentOf(typeArguments2); | 11492 this._typeArguments = becomeParentOf(typeArguments2); |
| 14209 } | 11493 } |
| 14210 void visitChildren(ASTVisitor visitor) { | 11494 void visitChildren(ASTVisitor visitor) { |
| 14211 safelyVisitChild(_name, visitor); | 11495 safelyVisitChild(_name, visitor); |
| 14212 safelyVisitChild(_typeArguments, visitor); | 11496 safelyVisitChild(_typeArguments, visitor); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 14226 | 11510 |
| 14227 /** | 11511 /** |
| 14228 * The name of the type parameter. | 11512 * The name of the type parameter. |
| 14229 */ | 11513 */ |
| 14230 SimpleIdentifier _name; | 11514 SimpleIdentifier _name; |
| 14231 | 11515 |
| 14232 /** | 11516 /** |
| 14233 * The token representing the 'extends' keyword, or `null` if there was no exp
licit upper | 11517 * The token representing the 'extends' keyword, or `null` if there was no exp
licit upper |
| 14234 * bound. | 11518 * bound. |
| 14235 */ | 11519 */ |
| 14236 Token _keyword; | 11520 Token keyword; |
| 14237 | 11521 |
| 14238 /** | 11522 /** |
| 14239 * The name of the upper bound for legal arguments, or `null` if there was no
explicit upper | 11523 * The name of the upper bound for legal arguments, or `null` if there was no
explicit upper |
| 14240 * bound. | 11524 * bound. |
| 14241 */ | 11525 */ |
| 14242 TypeName _bound; | 11526 TypeName _bound; |
| 14243 | 11527 |
| 14244 /** | 11528 /** |
| 14245 * Initialize a newly created type parameter. | 11529 * Initialize a newly created type parameter. |
| 14246 * | 11530 * |
| 14247 * @param comment the documentation comment associated with the type parameter | 11531 * @param comment the documentation comment associated with the type parameter |
| 14248 * @param metadata the annotations associated with the type parameter | 11532 * @param metadata the annotations associated with the type parameter |
| 14249 * @param name the name of the type parameter | 11533 * @param name the name of the type parameter |
| 14250 * @param keyword the token representing the 'extends' keyword | 11534 * @param keyword the token representing the 'extends' keyword |
| 14251 * @param bound the name of the upper bound for legal arguments | 11535 * @param bound the name of the upper bound for legal arguments |
| 14252 */ | 11536 */ |
| 14253 TypeParameter.full(Comment comment, List<Annotation> metadata, SimpleIdentifie
r name, Token keyword, TypeName bound) : super.full(comment, metadata) { | 11537 TypeParameter.full(Comment comment, List<Annotation> metadata, SimpleIdentifie
r name, Token keyword, TypeName bound) : super.full(comment, metadata) { |
| 14254 this._name = becomeParentOf(name); | 11538 this._name = becomeParentOf(name); |
| 14255 this._keyword = keyword; | 11539 this.keyword = keyword; |
| 14256 this._bound = becomeParentOf(bound); | 11540 this._bound = becomeParentOf(bound); |
| 14257 } | 11541 } |
| 14258 | 11542 |
| 14259 /** | 11543 /** |
| 14260 * Initialize a newly created type parameter. | 11544 * Initialize a newly created type parameter. |
| 14261 * | 11545 * |
| 14262 * @param comment the documentation comment associated with the type parameter | 11546 * @param comment the documentation comment associated with the type parameter |
| 14263 * @param metadata the annotations associated with the type parameter | 11547 * @param metadata the annotations associated with the type parameter |
| 14264 * @param name the name of the type parameter | 11548 * @param name the name of the type parameter |
| 14265 * @param keyword the token representing the 'extends' keyword | 11549 * @param keyword the token representing the 'extends' keyword |
| (...skipping 11 matching lines...) Expand all Loading... |
| 14277 TypeName get bound => _bound; | 11561 TypeName get bound => _bound; |
| 14278 TypeVariableElement get element => _name != null ? (_name.staticElement as Typ
eVariableElement) : null; | 11562 TypeVariableElement get element => _name != null ? (_name.staticElement as Typ
eVariableElement) : null; |
| 14279 Token get endToken { | 11563 Token get endToken { |
| 14280 if (_bound == null) { | 11564 if (_bound == null) { |
| 14281 return _name.endToken; | 11565 return _name.endToken; |
| 14282 } | 11566 } |
| 14283 return _bound.endToken; | 11567 return _bound.endToken; |
| 14284 } | 11568 } |
| 14285 | 11569 |
| 14286 /** | 11570 /** |
| 14287 * Return the token representing the 'extends' keyword, or `null` if there was
no explicit | |
| 14288 * upper bound. | |
| 14289 * | |
| 14290 * @return the token representing the 'extends' keyword | |
| 14291 */ | |
| 14292 Token get keyword => _keyword; | |
| 14293 | |
| 14294 /** | |
| 14295 * Return the name of the type parameter. | 11571 * Return the name of the type parameter. |
| 14296 * | 11572 * |
| 14297 * @return the name of the type parameter | 11573 * @return the name of the type parameter |
| 14298 */ | 11574 */ |
| 14299 SimpleIdentifier get name => _name; | 11575 SimpleIdentifier get name => _name; |
| 14300 | 11576 |
| 14301 /** | 11577 /** |
| 14302 * Set the name of the upper bound for legal arguments to the given type name. | 11578 * Set the name of the upper bound for legal arguments to the given type name. |
| 14303 * | 11579 * |
| 14304 * @param typeName the name of the upper bound for legal arguments | 11580 * @param typeName the name of the upper bound for legal arguments |
| 14305 */ | 11581 */ |
| 14306 void set bound(TypeName typeName) { | 11582 void set bound(TypeName typeName) { |
| 14307 _bound = becomeParentOf(typeName); | 11583 _bound = becomeParentOf(typeName); |
| 14308 } | 11584 } |
| 14309 | 11585 |
| 14310 /** | 11586 /** |
| 14311 * Set the token representing the 'extends' keyword to the given token. | |
| 14312 * | |
| 14313 * @param keyword the token representing the 'extends' keyword | |
| 14314 */ | |
| 14315 void set keyword(Token keyword2) { | |
| 14316 this._keyword = keyword2; | |
| 14317 } | |
| 14318 | |
| 14319 /** | |
| 14320 * Set the name of the type parameter to the given identifier. | 11587 * Set the name of the type parameter to the given identifier. |
| 14321 * | 11588 * |
| 14322 * @param identifier the name of the type parameter | 11589 * @param identifier the name of the type parameter |
| 14323 */ | 11590 */ |
| 14324 void set name(SimpleIdentifier identifier) { | 11591 void set name(SimpleIdentifier identifier) { |
| 14325 _name = becomeParentOf(identifier); | 11592 _name = becomeParentOf(identifier); |
| 14326 } | 11593 } |
| 14327 void visitChildren(ASTVisitor visitor) { | 11594 void visitChildren(ASTVisitor visitor) { |
| 14328 super.visitChildren(visitor); | 11595 super.visitChildren(visitor); |
| 14329 safelyVisitChild(_name, visitor); | 11596 safelyVisitChild(_name, visitor); |
| 14330 safelyVisitChild(_bound, visitor); | 11597 safelyVisitChild(_bound, visitor); |
| 14331 } | 11598 } |
| 14332 Token get firstTokenAfterCommentAndMetadata => _name.beginToken; | 11599 Token get firstTokenAfterCommentAndMetadata => _name.beginToken; |
| 14333 } | 11600 } |
| 14334 /** | 11601 /** |
| 14335 * Instances of the class `TypeParameterList` represent type parameters within a
declaration. | 11602 * Instances of the class `TypeParameterList` represent type parameters within a
declaration. |
| 14336 * | 11603 * |
| 14337 * <pre> | 11604 * <pre> |
| 14338 * typeParameterList ::= | 11605 * typeParameterList ::= |
| 14339 * '<' [TypeParameter] (',' [TypeParameter])* '>' | 11606 * '<' [TypeParameter] (',' [TypeParameter])* '>' |
| 14340 * </pre> | 11607 * </pre> |
| 14341 * | 11608 * |
| 14342 * @coverage dart.engine.ast | 11609 * @coverage dart.engine.ast |
| 14343 */ | 11610 */ |
| 14344 class TypeParameterList extends ASTNode { | 11611 class TypeParameterList extends ASTNode { |
| 14345 | 11612 |
| 14346 /** | 11613 /** |
| 14347 * The left angle bracket. | 11614 * The left angle bracket. |
| 14348 */ | 11615 */ |
| 14349 Token _leftBracket; | 11616 Token leftBracket; |
| 14350 | 11617 |
| 14351 /** | 11618 /** |
| 14352 * The type parameters in the list. | 11619 * The type parameters in the list. |
| 14353 */ | 11620 */ |
| 14354 NodeList<TypeParameter> _typeParameters; | 11621 NodeList<TypeParameter> typeParameters; |
| 14355 | 11622 |
| 14356 /** | 11623 /** |
| 14357 * The right angle bracket. | 11624 * The right angle bracket. |
| 14358 */ | 11625 */ |
| 14359 Token _rightBracket; | 11626 Token rightBracket; |
| 14360 | 11627 |
| 14361 /** | 11628 /** |
| 14362 * Initialize a newly created list of type parameters. | 11629 * Initialize a newly created list of type parameters. |
| 14363 * | 11630 * |
| 14364 * @param leftBracket the left angle bracket | 11631 * @param leftBracket the left angle bracket |
| 14365 * @param typeParameters the type parameters in the list | 11632 * @param typeParameters the type parameters in the list |
| 14366 * @param rightBracket the right angle bracket | 11633 * @param rightBracket the right angle bracket |
| 14367 */ | 11634 */ |
| 14368 TypeParameterList.full(Token leftBracket, List<TypeParameter> typeParameters,
Token rightBracket) { | 11635 TypeParameterList.full(Token leftBracket, List<TypeParameter> typeParameters,
Token rightBracket) { |
| 14369 this._typeParameters = new NodeList<TypeParameter>(this); | 11636 this.typeParameters = new NodeList<TypeParameter>(this); |
| 14370 this._leftBracket = leftBracket; | 11637 this.leftBracket = leftBracket; |
| 14371 this._typeParameters.addAll(typeParameters); | 11638 this.typeParameters.addAll(typeParameters); |
| 14372 this._rightBracket = rightBracket; | 11639 this.rightBracket = rightBracket; |
| 14373 } | 11640 } |
| 14374 | 11641 |
| 14375 /** | 11642 /** |
| 14376 * Initialize a newly created list of type parameters. | 11643 * Initialize a newly created list of type parameters. |
| 14377 * | 11644 * |
| 14378 * @param leftBracket the left angle bracket | 11645 * @param leftBracket the left angle bracket |
| 14379 * @param typeParameters the type parameters in the list | 11646 * @param typeParameters the type parameters in the list |
| 14380 * @param rightBracket the right angle bracket | 11647 * @param rightBracket the right angle bracket |
| 14381 */ | 11648 */ |
| 14382 TypeParameterList({Token leftBracket, List<TypeParameter> typeParameters, Toke
n rightBracket}) : this.full(leftBracket, typeParameters, rightBracket); | 11649 TypeParameterList({Token leftBracket, List<TypeParameter> typeParameters, Toke
n rightBracket}) : this.full(leftBracket, typeParameters, rightBracket); |
| 14383 accept(ASTVisitor visitor) => visitor.visitTypeParameterList(this); | 11650 accept(ASTVisitor visitor) => visitor.visitTypeParameterList(this); |
| 14384 Token get beginToken => _leftBracket; | 11651 Token get beginToken => leftBracket; |
| 14385 Token get endToken => _rightBracket; | 11652 Token get endToken => rightBracket; |
| 14386 | |
| 14387 /** | |
| 14388 * Return the left angle bracket. | |
| 14389 * | |
| 14390 * @return the left angle bracket | |
| 14391 */ | |
| 14392 Token get leftBracket => _leftBracket; | |
| 14393 | |
| 14394 /** | |
| 14395 * Return the right angle bracket. | |
| 14396 * | |
| 14397 * @return the right angle bracket | |
| 14398 */ | |
| 14399 Token get rightBracket => _rightBracket; | |
| 14400 | |
| 14401 /** | |
| 14402 * Return the type parameters for the type. | |
| 14403 * | |
| 14404 * @return the type parameters for the type | |
| 14405 */ | |
| 14406 NodeList<TypeParameter> get typeParameters => _typeParameters; | |
| 14407 void visitChildren(ASTVisitor visitor) { | 11653 void visitChildren(ASTVisitor visitor) { |
| 14408 _typeParameters.accept(visitor); | 11654 typeParameters.accept(visitor); |
| 14409 } | 11655 } |
| 14410 } | 11656 } |
| 14411 /** | 11657 /** |
| 14412 * The abstract class `TypedLiteral` defines the behavior common to literals tha
t have a type | 11658 * The abstract class `TypedLiteral` defines the behavior common to literals tha
t have a type |
| 14413 * associated with them. | 11659 * associated with them. |
| 14414 * | 11660 * |
| 14415 * <pre> | 11661 * <pre> |
| 14416 * listLiteral ::= | 11662 * listLiteral ::= |
| 14417 * [ListLiteral] | 11663 * [ListLiteral] |
| 14418 * | [MapLiteral] | 11664 * | [MapLiteral] |
| 14419 * </pre> | 11665 * </pre> |
| 14420 * | 11666 * |
| 14421 * @coverage dart.engine.ast | 11667 * @coverage dart.engine.ast |
| 14422 */ | 11668 */ |
| 14423 abstract class TypedLiteral extends Literal { | 11669 abstract class TypedLiteral extends Literal { |
| 14424 | 11670 |
| 14425 /** | 11671 /** |
| 14426 * The token representing the 'const' keyword, or `null` if the literal is not
a constant. | 11672 * The token representing the 'const' keyword, or `null` if the literal is not
a constant. |
| 14427 */ | 11673 */ |
| 14428 Token _constKeyword; | 11674 Token constKeyword; |
| 14429 | 11675 |
| 14430 /** | 11676 /** |
| 14431 * The type argument associated with this literal, or `null` if no type argume
nts were | 11677 * The type argument associated with this literal, or `null` if no type argume
nts were |
| 14432 * declared. | 11678 * declared. |
| 14433 */ | 11679 */ |
| 14434 TypeArgumentList _typeArguments; | 11680 TypeArgumentList typeArguments; |
| 14435 | 11681 |
| 14436 /** | 11682 /** |
| 14437 * Initialize a newly created typed literal. | 11683 * Initialize a newly created typed literal. |
| 14438 * | 11684 * |
| 14439 * @param constKeyword the token representing the 'const' keyword | 11685 * @param constKeyword the token representing the 'const' keyword |
| 14440 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 11686 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 14441 * arguments were declared | 11687 * arguments were declared |
| 14442 */ | 11688 */ |
| 14443 TypedLiteral.full(Token constKeyword, TypeArgumentList typeArguments) { | 11689 TypedLiteral.full(Token constKeyword, TypeArgumentList typeArguments) { |
| 14444 this._constKeyword = constKeyword; | 11690 this.constKeyword = constKeyword; |
| 14445 this._typeArguments = becomeParentOf(typeArguments); | 11691 this.typeArguments = becomeParentOf(typeArguments); |
| 14446 } | 11692 } |
| 14447 | 11693 |
| 14448 /** | 11694 /** |
| 14449 * Initialize a newly created typed literal. | 11695 * Initialize a newly created typed literal. |
| 14450 * | 11696 * |
| 14451 * @param constKeyword the token representing the 'const' keyword | 11697 * @param constKeyword the token representing the 'const' keyword |
| 14452 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type | 11698 * @param typeArguments the type argument associated with this literal, or `nu
ll` if no type |
| 14453 * arguments were declared | 11699 * arguments were declared |
| 14454 */ | 11700 */ |
| 14455 TypedLiteral({Token constKeyword, TypeArgumentList typeArguments}) : this.full
(constKeyword, typeArguments); | 11701 TypedLiteral({Token constKeyword, TypeArgumentList typeArguments}) : this.full
(constKeyword, typeArguments); |
| 14456 | |
| 14457 /** | |
| 14458 * Return the token representing the 'const' keyword. | |
| 14459 * | |
| 14460 * @return the token representing the 'const' keyword | |
| 14461 */ | |
| 14462 Token get constKeyword => _constKeyword; | |
| 14463 | |
| 14464 /** | |
| 14465 * Return the type argument associated with this literal, or `null` if no type
arguments | |
| 14466 * were declared. | |
| 14467 * | |
| 14468 * @return the type argument associated with this literal | |
| 14469 */ | |
| 14470 TypeArgumentList get typeArguments => _typeArguments; | |
| 14471 | |
| 14472 /** | |
| 14473 * Set the token representing the 'const' keyword to the given keyword. | |
| 14474 * | |
| 14475 * @param keyword the token representing the 'const' keyword | |
| 14476 */ | |
| 14477 void set constKeyword(Token keyword) { | |
| 14478 this._constKeyword = keyword; | |
| 14479 } | |
| 14480 | |
| 14481 /** | |
| 14482 * Set the type argument associated with this literal to the given arguments. | |
| 14483 * | |
| 14484 * @param typeArguments the type argument associated with this literal | |
| 14485 */ | |
| 14486 void set typeArguments(TypeArgumentList typeArguments2) { | |
| 14487 this._typeArguments = typeArguments2; | |
| 14488 } | |
| 14489 void visitChildren(ASTVisitor visitor) { | 11702 void visitChildren(ASTVisitor visitor) { |
| 14490 safelyVisitChild(_typeArguments, visitor); | 11703 safelyVisitChild(typeArguments, visitor); |
| 14491 } | 11704 } |
| 14492 } | 11705 } |
| 14493 /** | 11706 /** |
| 14494 * The abstract class `UriBasedDirective` defines the behavior common to nodes t
hat represent | 11707 * The abstract class `UriBasedDirective` defines the behavior common to nodes t
hat represent |
| 14495 * a directive that references a URI. | 11708 * a directive that references a URI. |
| 14496 * | 11709 * |
| 14497 * <pre> | 11710 * <pre> |
| 14498 * uriBasedDirective ::= | 11711 * uriBasedDirective ::= |
| 14499 * [ExportDirective] | 11712 * [ExportDirective] |
| 14500 * | [ImportDirective] | 11713 * | [ImportDirective] |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14575 | 11788 |
| 14576 /** | 11789 /** |
| 14577 * The name of the variable being declared. | 11790 * The name of the variable being declared. |
| 14578 */ | 11791 */ |
| 14579 SimpleIdentifier _name; | 11792 SimpleIdentifier _name; |
| 14580 | 11793 |
| 14581 /** | 11794 /** |
| 14582 * The equal sign separating the variable name from the initial value, or `nul
l` if the | 11795 * The equal sign separating the variable name from the initial value, or `nul
l` if the |
| 14583 * initial value was not specified. | 11796 * initial value was not specified. |
| 14584 */ | 11797 */ |
| 14585 Token _equals; | 11798 Token equals; |
| 14586 | 11799 |
| 14587 /** | 11800 /** |
| 14588 * The expression used to compute the initial value for the variable, or `null
` if the | 11801 * The expression used to compute the initial value for the variable, or `null
` if the |
| 14589 * initial value was not specified. | 11802 * initial value was not specified. |
| 14590 */ | 11803 */ |
| 14591 Expression _initializer; | 11804 Expression _initializer; |
| 14592 | 11805 |
| 14593 /** | 11806 /** |
| 14594 * Initialize a newly created variable declaration. | 11807 * Initialize a newly created variable declaration. |
| 14595 * | 11808 * |
| 14596 * @param comment the documentation comment associated with this declaration | 11809 * @param comment the documentation comment associated with this declaration |
| 14597 * @param metadata the annotations associated with this member | 11810 * @param metadata the annotations associated with this member |
| 14598 * @param name the name of the variable being declared | 11811 * @param name the name of the variable being declared |
| 14599 * @param equals the equal sign separating the variable name from the initial
value | 11812 * @param equals the equal sign separating the variable name from the initial
value |
| 14600 * @param initializer the expression used to compute the initial value for the
variable | 11813 * @param initializer the expression used to compute the initial value for the
variable |
| 14601 */ | 11814 */ |
| 14602 VariableDeclaration.full(Comment comment, List<Annotation> metadata, SimpleIde
ntifier name, Token equals, Expression initializer) : super.full(comment, metada
ta) { | 11815 VariableDeclaration.full(Comment comment, List<Annotation> metadata, SimpleIde
ntifier name, Token equals, Expression initializer) : super.full(comment, metada
ta) { |
| 14603 this._name = becomeParentOf(name); | 11816 this._name = becomeParentOf(name); |
| 14604 this._equals = equals; | 11817 this.equals = equals; |
| 14605 this._initializer = becomeParentOf(initializer); | 11818 this._initializer = becomeParentOf(initializer); |
| 14606 } | 11819 } |
| 14607 | 11820 |
| 14608 /** | 11821 /** |
| 14609 * Initialize a newly created variable declaration. | 11822 * Initialize a newly created variable declaration. |
| 14610 * | 11823 * |
| 14611 * @param comment the documentation comment associated with this declaration | 11824 * @param comment the documentation comment associated with this declaration |
| 14612 * @param metadata the annotations associated with this member | 11825 * @param metadata the annotations associated with this member |
| 14613 * @param name the name of the variable being declared | 11826 * @param name the name of the variable being declared |
| 14614 * @param equals the equal sign separating the variable name from the initial
value | 11827 * @param equals the equal sign separating the variable name from the initial
value |
| (...skipping 20 matching lines...) Expand all Loading... |
| 14635 } | 11848 } |
| 14636 VariableElement get element => _name != null ? (_name.staticElement as Variabl
eElement) : null; | 11849 VariableElement get element => _name != null ? (_name.staticElement as Variabl
eElement) : null; |
| 14637 Token get endToken { | 11850 Token get endToken { |
| 14638 if (_initializer != null) { | 11851 if (_initializer != null) { |
| 14639 return _initializer.endToken; | 11852 return _initializer.endToken; |
| 14640 } | 11853 } |
| 14641 return _name.endToken; | 11854 return _name.endToken; |
| 14642 } | 11855 } |
| 14643 | 11856 |
| 14644 /** | 11857 /** |
| 14645 * Return the equal sign separating the variable name from the initial value,
or `null` if | |
| 14646 * the initial value was not specified. | |
| 14647 * | |
| 14648 * @return the equal sign separating the variable name from the initial value | |
| 14649 */ | |
| 14650 Token get equals => _equals; | |
| 14651 | |
| 14652 /** | |
| 14653 * Return the expression used to compute the initial value for the variable, o
r `null` if | 11858 * Return the expression used to compute the initial value for the variable, o
r `null` if |
| 14654 * the initial value was not specified. | 11859 * the initial value was not specified. |
| 14655 * | 11860 * |
| 14656 * @return the expression used to compute the initial value for the variable | 11861 * @return the expression used to compute the initial value for the variable |
| 14657 */ | 11862 */ |
| 14658 Expression get initializer => _initializer; | 11863 Expression get initializer => _initializer; |
| 14659 | 11864 |
| 14660 /** | 11865 /** |
| 14661 * Return the name of the variable being declared. | 11866 * Return the name of the variable being declared. |
| 14662 * | 11867 * |
| (...skipping 17 matching lines...) Expand all Loading... |
| 14680 * final. | 11885 * final. |
| 14681 * | 11886 * |
| 14682 * @return `true` if this variable was declared with the 'final' modifier | 11887 * @return `true` if this variable was declared with the 'final' modifier |
| 14683 */ | 11888 */ |
| 14684 bool get isFinal { | 11889 bool get isFinal { |
| 14685 ASTNode parent = this.parent; | 11890 ASTNode parent = this.parent; |
| 14686 return parent is VariableDeclarationList && ((parent as VariableDeclarationL
ist)).isFinal; | 11891 return parent is VariableDeclarationList && ((parent as VariableDeclarationL
ist)).isFinal; |
| 14687 } | 11892 } |
| 14688 | 11893 |
| 14689 /** | 11894 /** |
| 14690 * Set the equal sign separating the variable name from the initial value to t
he given token. | |
| 14691 * | |
| 14692 * @param equals the equal sign separating the variable name from the initial
value | |
| 14693 */ | |
| 14694 void set equals(Token equals2) { | |
| 14695 this._equals = equals2; | |
| 14696 } | |
| 14697 | |
| 14698 /** | |
| 14699 * Set the expression used to compute the initial value for the variable to th
e given expression. | 11895 * Set the expression used to compute the initial value for the variable to th
e given expression. |
| 14700 * | 11896 * |
| 14701 * @param initializer the expression used to compute the initial value for the
variable | 11897 * @param initializer the expression used to compute the initial value for the
variable |
| 14702 */ | 11898 */ |
| 14703 void set initializer(Expression initializer2) { | 11899 void set initializer(Expression initializer2) { |
| 14704 this._initializer = becomeParentOf(initializer2); | 11900 this._initializer = becomeParentOf(initializer2); |
| 14705 } | 11901 } |
| 14706 | 11902 |
| 14707 /** | 11903 /** |
| 14708 * Set the name of the variable being declared to the given identifier. | 11904 * Set the name of the variable being declared to the given identifier. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 14735 * </pre> | 11931 * </pre> |
| 14736 * | 11932 * |
| 14737 * @coverage dart.engine.ast | 11933 * @coverage dart.engine.ast |
| 14738 */ | 11934 */ |
| 14739 class VariableDeclarationList extends AnnotatedNode { | 11935 class VariableDeclarationList extends AnnotatedNode { |
| 14740 | 11936 |
| 14741 /** | 11937 /** |
| 14742 * The token representing the 'final', 'const' or 'var' keyword, or `null` if
no keyword was | 11938 * The token representing the 'final', 'const' or 'var' keyword, or `null` if
no keyword was |
| 14743 * included. | 11939 * included. |
| 14744 */ | 11940 */ |
| 14745 Token _keyword; | 11941 Token keyword; |
| 14746 | 11942 |
| 14747 /** | 11943 /** |
| 14748 * The type of the variables being declared, or `null` if no type was provided
. | 11944 * The type of the variables being declared, or `null` if no type was provided
. |
| 14749 */ | 11945 */ |
| 14750 TypeName _type; | 11946 TypeName _type; |
| 14751 | 11947 |
| 14752 /** | 11948 /** |
| 14753 * A list containing the individual variables being declared. | 11949 * A list containing the individual variables being declared. |
| 14754 */ | 11950 */ |
| 14755 NodeList<VariableDeclaration> _variables; | 11951 NodeList<VariableDeclaration> variables; |
| 14756 | 11952 |
| 14757 /** | 11953 /** |
| 14758 * Initialize a newly created variable declaration list. | 11954 * Initialize a newly created variable declaration list. |
| 14759 * | 11955 * |
| 14760 * @param comment the documentation comment associated with this declaration l
ist | 11956 * @param comment the documentation comment associated with this declaration l
ist |
| 14761 * @param metadata the annotations associated with this declaration list | 11957 * @param metadata the annotations associated with this declaration list |
| 14762 * @param keyword the token representing the 'final', 'const' or 'var' keyword | 11958 * @param keyword the token representing the 'final', 'const' or 'var' keyword |
| 14763 * @param type the type of the variables being declared | 11959 * @param type the type of the variables being declared |
| 14764 * @param variables a list containing the individual variables being declared | 11960 * @param variables a list containing the individual variables being declared |
| 14765 */ | 11961 */ |
| 14766 VariableDeclarationList.full(Comment comment, List<Annotation> metadata, Token
keyword, TypeName type, List<VariableDeclaration> variables) : super.full(comme
nt, metadata) { | 11962 VariableDeclarationList.full(Comment comment, List<Annotation> metadata, Token
keyword, TypeName type, List<VariableDeclaration> variables) : super.full(comme
nt, metadata) { |
| 14767 this._variables = new NodeList<VariableDeclaration>(this); | 11963 this.variables = new NodeList<VariableDeclaration>(this); |
| 14768 this._keyword = keyword; | 11964 this.keyword = keyword; |
| 14769 this._type = becomeParentOf(type); | 11965 this._type = becomeParentOf(type); |
| 14770 this._variables.addAll(variables); | 11966 this.variables.addAll(variables); |
| 14771 } | 11967 } |
| 14772 | 11968 |
| 14773 /** | 11969 /** |
| 14774 * Initialize a newly created variable declaration list. | 11970 * Initialize a newly created variable declaration list. |
| 14775 * | 11971 * |
| 14776 * @param comment the documentation comment associated with this declaration l
ist | 11972 * @param comment the documentation comment associated with this declaration l
ist |
| 14777 * @param metadata the annotations associated with this declaration list | 11973 * @param metadata the annotations associated with this declaration list |
| 14778 * @param keyword the token representing the 'final', 'const' or 'var' keyword | 11974 * @param keyword the token representing the 'final', 'const' or 'var' keyword |
| 14779 * @param type the type of the variables being declared | 11975 * @param type the type of the variables being declared |
| 14780 * @param variables a list containing the individual variables being declared | 11976 * @param variables a list containing the individual variables being declared |
| 14781 */ | 11977 */ |
| 14782 VariableDeclarationList({Comment comment, List<Annotation> metadata, Token key
word, TypeName type, List<VariableDeclaration> variables}) : this.full(comment,
metadata, keyword, type, variables); | 11978 VariableDeclarationList({Comment comment, List<Annotation> metadata, Token key
word, TypeName type, List<VariableDeclaration> variables}) : this.full(comment,
metadata, keyword, type, variables); |
| 14783 accept(ASTVisitor visitor) => visitor.visitVariableDeclarationList(this); | 11979 accept(ASTVisitor visitor) => visitor.visitVariableDeclarationList(this); |
| 14784 Token get endToken => _variables.endToken; | 11980 Token get endToken => variables.endToken; |
| 14785 | |
| 14786 /** | |
| 14787 * Return the token representing the 'final', 'const' or 'var' keyword, or `nu
ll` if no | |
| 14788 * keyword was included. | |
| 14789 * | |
| 14790 * @return the token representing the 'final', 'const' or 'var' keyword | |
| 14791 */ | |
| 14792 Token get keyword => _keyword; | |
| 14793 | 11981 |
| 14794 /** | 11982 /** |
| 14795 * Return the type of the variables being declared, or `null` if no type was p
rovided. | 11983 * Return the type of the variables being declared, or `null` if no type was p
rovided. |
| 14796 * | 11984 * |
| 14797 * @return the type of the variables being declared | 11985 * @return the type of the variables being declared |
| 14798 */ | 11986 */ |
| 14799 TypeName get type => _type; | 11987 TypeName get type => _type; |
| 14800 | 11988 |
| 14801 /** | 11989 /** |
| 14802 * Return a list containing the individual variables being declared. | |
| 14803 * | |
| 14804 * @return a list containing the individual variables being declared | |
| 14805 */ | |
| 14806 NodeList<VariableDeclaration> get variables => _variables; | |
| 14807 | |
| 14808 /** | |
| 14809 * Return `true` if the variables in this list were declared with the 'const'
modifier. | 11990 * Return `true` if the variables in this list were declared with the 'const'
modifier. |
| 14810 * | 11991 * |
| 14811 * @return `true` if the variables in this list were declared with the 'const'
modifier | 11992 * @return `true` if the variables in this list were declared with the 'const'
modifier |
| 14812 */ | 11993 */ |
| 14813 bool get isConst => _keyword is KeywordToken && identical(((_keyword as Keywor
dToken)).keyword, Keyword.CONST); | 11994 bool get isConst => keyword is KeywordToken && identical(((keyword as KeywordT
oken)).keyword, Keyword.CONST); |
| 14814 | 11995 |
| 14815 /** | 11996 /** |
| 14816 * Return `true` if the variables in this list were declared with the 'final'
modifier. | 11997 * Return `true` if the variables in this list were declared with the 'final'
modifier. |
| 14817 * Variables that are declared with the 'const' modifier will return `false` e
ven though | 11998 * Variables that are declared with the 'const' modifier will return `false` e
ven though |
| 14818 * they are implicitly final. | 11999 * they are implicitly final. |
| 14819 * | 12000 * |
| 14820 * @return `true` if the variables in this list were declared with the 'final'
modifier | 12001 * @return `true` if the variables in this list were declared with the 'final'
modifier |
| 14821 */ | 12002 */ |
| 14822 bool get isFinal => _keyword is KeywordToken && identical(((_keyword as Keywor
dToken)).keyword, Keyword.FINAL); | 12003 bool get isFinal => keyword is KeywordToken && identical(((keyword as KeywordT
oken)).keyword, Keyword.FINAL); |
| 14823 | |
| 14824 /** | |
| 14825 * Set the token representing the 'final', 'const' or 'var' keyword to the giv
en token. | |
| 14826 * | |
| 14827 * @param keyword the token representing the 'final', 'const' or 'var' keyword | |
| 14828 */ | |
| 14829 void set keyword(Token keyword2) { | |
| 14830 this._keyword = keyword2; | |
| 14831 } | |
| 14832 | 12004 |
| 14833 /** | 12005 /** |
| 14834 * Set the type of the variables being declared to the given type name. | 12006 * Set the type of the variables being declared to the given type name. |
| 14835 * | 12007 * |
| 14836 * @param typeName the type of the variables being declared | 12008 * @param typeName the type of the variables being declared |
| 14837 */ | 12009 */ |
| 14838 void set type(TypeName typeName) { | 12010 void set type(TypeName typeName) { |
| 14839 _type = becomeParentOf(typeName); | 12011 _type = becomeParentOf(typeName); |
| 14840 } | 12012 } |
| 14841 void visitChildren(ASTVisitor visitor) { | 12013 void visitChildren(ASTVisitor visitor) { |
| 14842 safelyVisitChild(_type, visitor); | 12014 safelyVisitChild(_type, visitor); |
| 14843 _variables.accept(visitor); | 12015 variables.accept(visitor); |
| 14844 } | 12016 } |
| 14845 Token get firstTokenAfterCommentAndMetadata { | 12017 Token get firstTokenAfterCommentAndMetadata { |
| 14846 if (_keyword != null) { | 12018 if (keyword != null) { |
| 14847 return _keyword; | 12019 return keyword; |
| 14848 } else if (_type != null) { | 12020 } else if (_type != null) { |
| 14849 return _type.beginToken; | 12021 return _type.beginToken; |
| 14850 } | 12022 } |
| 14851 return _variables.beginToken; | 12023 return variables.beginToken; |
| 14852 } | 12024 } |
| 14853 } | 12025 } |
| 14854 /** | 12026 /** |
| 14855 * Instances of the class `VariableDeclarationStatement` represent a list of var
iables that | 12027 * Instances of the class `VariableDeclarationStatement` represent a list of var
iables that |
| 14856 * are being declared in a context where a statement is required. | 12028 * are being declared in a context where a statement is required. |
| 14857 * | 12029 * |
| 14858 * <pre> | 12030 * <pre> |
| 14859 * variableDeclarationStatement ::= | 12031 * variableDeclarationStatement ::= |
| 14860 * [VariableDeclarationList] ';' | 12032 * [VariableDeclarationList] ';' |
| 14861 * </pre> | 12033 * </pre> |
| 14862 * | 12034 * |
| 14863 * @coverage dart.engine.ast | 12035 * @coverage dart.engine.ast |
| 14864 */ | 12036 */ |
| 14865 class VariableDeclarationStatement extends Statement { | 12037 class VariableDeclarationStatement extends Statement { |
| 14866 | 12038 |
| 14867 /** | 12039 /** |
| 14868 * The variables being declared. | 12040 * The variables being declared. |
| 14869 */ | 12041 */ |
| 14870 VariableDeclarationList _variableList; | 12042 VariableDeclarationList _variableList; |
| 14871 | 12043 |
| 14872 /** | 12044 /** |
| 14873 * The semicolon terminating the statement. | 12045 * The semicolon terminating the statement. |
| 14874 */ | 12046 */ |
| 14875 Token _semicolon; | 12047 Token semicolon; |
| 14876 | 12048 |
| 14877 /** | 12049 /** |
| 14878 * Initialize a newly created variable declaration statement. | 12050 * Initialize a newly created variable declaration statement. |
| 14879 * | 12051 * |
| 14880 * @param variableList the fields being declared | 12052 * @param variableList the fields being declared |
| 14881 * @param semicolon the semicolon terminating the statement | 12053 * @param semicolon the semicolon terminating the statement |
| 14882 */ | 12054 */ |
| 14883 VariableDeclarationStatement.full(VariableDeclarationList variableList, Token
semicolon) { | 12055 VariableDeclarationStatement.full(VariableDeclarationList variableList, Token
semicolon) { |
| 14884 this._variableList = becomeParentOf(variableList); | 12056 this._variableList = becomeParentOf(variableList); |
| 14885 this._semicolon = semicolon; | 12057 this.semicolon = semicolon; |
| 14886 } | 12058 } |
| 14887 | 12059 |
| 14888 /** | 12060 /** |
| 14889 * Initialize a newly created variable declaration statement. | 12061 * Initialize a newly created variable declaration statement. |
| 14890 * | 12062 * |
| 14891 * @param variableList the fields being declared | 12063 * @param variableList the fields being declared |
| 14892 * @param semicolon the semicolon terminating the statement | 12064 * @param semicolon the semicolon terminating the statement |
| 14893 */ | 12065 */ |
| 14894 VariableDeclarationStatement({VariableDeclarationList variableList, Token semi
colon}) : this.full(variableList, semicolon); | 12066 VariableDeclarationStatement({VariableDeclarationList variableList, Token semi
colon}) : this.full(variableList, semicolon); |
| 14895 accept(ASTVisitor visitor) => visitor.visitVariableDeclarationStatement(this); | 12067 accept(ASTVisitor visitor) => visitor.visitVariableDeclarationStatement(this); |
| 14896 Token get beginToken => _variableList.beginToken; | 12068 Token get beginToken => _variableList.beginToken; |
| 14897 Token get endToken => _semicolon; | 12069 Token get endToken => semicolon; |
| 14898 | |
| 14899 /** | |
| 14900 * Return the semicolon terminating the statement. | |
| 14901 * | |
| 14902 * @return the semicolon terminating the statement | |
| 14903 */ | |
| 14904 Token get semicolon => _semicolon; | |
| 14905 | 12070 |
| 14906 /** | 12071 /** |
| 14907 * Return the variables being declared. | 12072 * Return the variables being declared. |
| 14908 * | 12073 * |
| 14909 * @return the variables being declared | 12074 * @return the variables being declared |
| 14910 */ | 12075 */ |
| 14911 VariableDeclarationList get variables => _variableList; | 12076 VariableDeclarationList get variables => _variableList; |
| 14912 | 12077 |
| 14913 /** | 12078 /** |
| 14914 * Set the semicolon terminating the statement to the given token. | |
| 14915 * | |
| 14916 * @param semicolon the semicolon terminating the statement | |
| 14917 */ | |
| 14918 void set semicolon(Token semicolon2) { | |
| 14919 this._semicolon = semicolon2; | |
| 14920 } | |
| 14921 | |
| 14922 /** | |
| 14923 * Set the variables being declared to the given list of variables. | 12079 * Set the variables being declared to the given list of variables. |
| 14924 * | 12080 * |
| 14925 * @param variableList the variables being declared | 12081 * @param variableList the variables being declared |
| 14926 */ | 12082 */ |
| 14927 void set variables(VariableDeclarationList variableList2) { | 12083 void set variables(VariableDeclarationList variableList2) { |
| 14928 this._variableList = becomeParentOf(variableList2); | 12084 this._variableList = becomeParentOf(variableList2); |
| 14929 } | 12085 } |
| 14930 void visitChildren(ASTVisitor visitor) { | 12086 void visitChildren(ASTVisitor visitor) { |
| 14931 safelyVisitChild(_variableList, visitor); | 12087 safelyVisitChild(_variableList, visitor); |
| 14932 } | 12088 } |
| 14933 } | 12089 } |
| 14934 /** | 12090 /** |
| 14935 * Instances of the class `WhileStatement` represent a while statement. | 12091 * Instances of the class `WhileStatement` represent a while statement. |
| 14936 * | 12092 * |
| 14937 * <pre> | 12093 * <pre> |
| 14938 * whileStatement ::= | 12094 * whileStatement ::= |
| 14939 * 'while' '(' [Expression] ')' [Statement] | 12095 * 'while' '(' [Expression] ')' [Statement] |
| 14940 * </pre> | 12096 * </pre> |
| 14941 * | 12097 * |
| 14942 * @coverage dart.engine.ast | 12098 * @coverage dart.engine.ast |
| 14943 */ | 12099 */ |
| 14944 class WhileStatement extends Statement { | 12100 class WhileStatement extends Statement { |
| 14945 | 12101 |
| 14946 /** | 12102 /** |
| 14947 * The token representing the 'while' keyword. | 12103 * The token representing the 'while' keyword. |
| 14948 */ | 12104 */ |
| 14949 Token _keyword; | 12105 Token keyword; |
| 14950 | 12106 |
| 14951 /** | 12107 /** |
| 14952 * The left parenthesis. | 12108 * The left parenthesis. |
| 14953 */ | 12109 */ |
| 14954 Token _leftParenthesis; | 12110 Token leftParenthesis; |
| 14955 | 12111 |
| 14956 /** | 12112 /** |
| 14957 * The expression used to determine whether to execute the body of the loop. | 12113 * The expression used to determine whether to execute the body of the loop. |
| 14958 */ | 12114 */ |
| 14959 Expression _condition; | 12115 Expression _condition; |
| 14960 | 12116 |
| 14961 /** | 12117 /** |
| 14962 * The right parenthesis. | 12118 * The right parenthesis. |
| 14963 */ | 12119 */ |
| 14964 Token _rightParenthesis; | 12120 Token rightParenthesis; |
| 14965 | 12121 |
| 14966 /** | 12122 /** |
| 14967 * The body of the loop. | 12123 * The body of the loop. |
| 14968 */ | 12124 */ |
| 14969 Statement _body; | 12125 Statement _body; |
| 14970 | 12126 |
| 14971 /** | 12127 /** |
| 14972 * Initialize a newly created while statement. | 12128 * Initialize a newly created while statement. |
| 14973 * | 12129 * |
| 14974 * @param keyword the token representing the 'while' keyword | 12130 * @param keyword the token representing the 'while' keyword |
| 14975 * @param leftParenthesis the left parenthesis | 12131 * @param leftParenthesis the left parenthesis |
| 14976 * @param condition the expression used to determine whether to execute the bo
dy of the loop | 12132 * @param condition the expression used to determine whether to execute the bo
dy of the loop |
| 14977 * @param rightParenthesis the right parenthesis | 12133 * @param rightParenthesis the right parenthesis |
| 14978 * @param body the body of the loop | 12134 * @param body the body of the loop |
| 14979 */ | 12135 */ |
| 14980 WhileStatement.full(Token keyword, Token leftParenthesis, Expression condition
, Token rightParenthesis, Statement body) { | 12136 WhileStatement.full(Token keyword, Token leftParenthesis, Expression condition
, Token rightParenthesis, Statement body) { |
| 14981 this._keyword = keyword; | 12137 this.keyword = keyword; |
| 14982 this._leftParenthesis = leftParenthesis; | 12138 this.leftParenthesis = leftParenthesis; |
| 14983 this._condition = becomeParentOf(condition); | 12139 this._condition = becomeParentOf(condition); |
| 14984 this._rightParenthesis = rightParenthesis; | 12140 this.rightParenthesis = rightParenthesis; |
| 14985 this._body = becomeParentOf(body); | 12141 this._body = becomeParentOf(body); |
| 14986 } | 12142 } |
| 14987 | 12143 |
| 14988 /** | 12144 /** |
| 14989 * Initialize a newly created while statement. | 12145 * Initialize a newly created while statement. |
| 14990 * | 12146 * |
| 14991 * @param keyword the token representing the 'while' keyword | 12147 * @param keyword the token representing the 'while' keyword |
| 14992 * @param leftParenthesis the left parenthesis | 12148 * @param leftParenthesis the left parenthesis |
| 14993 * @param condition the expression used to determine whether to execute the bo
dy of the loop | 12149 * @param condition the expression used to determine whether to execute the bo
dy of the loop |
| 14994 * @param rightParenthesis the right parenthesis | 12150 * @param rightParenthesis the right parenthesis |
| 14995 * @param body the body of the loop | 12151 * @param body the body of the loop |
| 14996 */ | 12152 */ |
| 14997 WhileStatement({Token keyword, Token leftParenthesis, Expression condition, To
ken rightParenthesis, Statement body}) : this.full(keyword, leftParenthesis, con
dition, rightParenthesis, body); | 12153 WhileStatement({Token keyword, Token leftParenthesis, Expression condition, To
ken rightParenthesis, Statement body}) : this.full(keyword, leftParenthesis, con
dition, rightParenthesis, body); |
| 14998 accept(ASTVisitor visitor) => visitor.visitWhileStatement(this); | 12154 accept(ASTVisitor visitor) => visitor.visitWhileStatement(this); |
| 14999 Token get beginToken => _keyword; | 12155 Token get beginToken => keyword; |
| 15000 | 12156 |
| 15001 /** | 12157 /** |
| 15002 * Return the body of the loop. | 12158 * Return the body of the loop. |
| 15003 * | 12159 * |
| 15004 * @return the body of the loop | 12160 * @return the body of the loop |
| 15005 */ | 12161 */ |
| 15006 Statement get body => _body; | 12162 Statement get body => _body; |
| 15007 | 12163 |
| 15008 /** | 12164 /** |
| 15009 * Return the expression used to determine whether to execute the body of the
loop. | 12165 * Return the expression used to determine whether to execute the body of the
loop. |
| 15010 * | 12166 * |
| 15011 * @return the expression used to determine whether to execute the body of the
loop | 12167 * @return the expression used to determine whether to execute the body of the
loop |
| 15012 */ | 12168 */ |
| 15013 Expression get condition => _condition; | 12169 Expression get condition => _condition; |
| 15014 Token get endToken => _body.endToken; | 12170 Token get endToken => _body.endToken; |
| 15015 | 12171 |
| 15016 /** | 12172 /** |
| 15017 * Return the token representing the 'while' keyword. | |
| 15018 * | |
| 15019 * @return the token representing the 'while' keyword | |
| 15020 */ | |
| 15021 Token get keyword => _keyword; | |
| 15022 | |
| 15023 /** | |
| 15024 * Return the left parenthesis. | |
| 15025 * | |
| 15026 * @return the left parenthesis | |
| 15027 */ | |
| 15028 Token get leftParenthesis => _leftParenthesis; | |
| 15029 | |
| 15030 /** | |
| 15031 * Return the right parenthesis. | |
| 15032 * | |
| 15033 * @return the right parenthesis | |
| 15034 */ | |
| 15035 Token get rightParenthesis => _rightParenthesis; | |
| 15036 | |
| 15037 /** | |
| 15038 * Set the body of the loop to the given statement. | 12173 * Set the body of the loop to the given statement. |
| 15039 * | 12174 * |
| 15040 * @param statement the body of the loop | 12175 * @param statement the body of the loop |
| 15041 */ | 12176 */ |
| 15042 void set body(Statement statement) { | 12177 void set body(Statement statement) { |
| 15043 _body = becomeParentOf(statement); | 12178 _body = becomeParentOf(statement); |
| 15044 } | 12179 } |
| 15045 | 12180 |
| 15046 /** | 12181 /** |
| 15047 * Set the expression used to determine whether to execute the body of the loo
p to the given | 12182 * Set the expression used to determine whether to execute the body of the loo
p to the given |
| 15048 * expression. | 12183 * expression. |
| 15049 * | 12184 * |
| 15050 * @param expression the expression used to determine whether to execute the b
ody of the loop | 12185 * @param expression the expression used to determine whether to execute the b
ody of the loop |
| 15051 */ | 12186 */ |
| 15052 void set condition(Expression expression) { | 12187 void set condition(Expression expression) { |
| 15053 _condition = becomeParentOf(expression); | 12188 _condition = becomeParentOf(expression); |
| 15054 } | 12189 } |
| 15055 | |
| 15056 /** | |
| 15057 * Set the token representing the 'while' keyword to the given token. | |
| 15058 * | |
| 15059 * @param keyword the token representing the 'while' keyword | |
| 15060 */ | |
| 15061 void set keyword(Token keyword2) { | |
| 15062 this._keyword = keyword2; | |
| 15063 } | |
| 15064 | |
| 15065 /** | |
| 15066 * Set the left parenthesis to the given token. | |
| 15067 * | |
| 15068 * @param leftParenthesis the left parenthesis | |
| 15069 */ | |
| 15070 void set leftParenthesis(Token leftParenthesis2) { | |
| 15071 this._leftParenthesis = leftParenthesis2; | |
| 15072 } | |
| 15073 | |
| 15074 /** | |
| 15075 * Set the right parenthesis to the given token. | |
| 15076 * | |
| 15077 * @param rightParenthesis the right parenthesis | |
| 15078 */ | |
| 15079 void set rightParenthesis(Token rightParenthesis2) { | |
| 15080 this._rightParenthesis = rightParenthesis2; | |
| 15081 } | |
| 15082 void visitChildren(ASTVisitor visitor) { | 12190 void visitChildren(ASTVisitor visitor) { |
| 15083 safelyVisitChild(_condition, visitor); | 12191 safelyVisitChild(_condition, visitor); |
| 15084 safelyVisitChild(_body, visitor); | 12192 safelyVisitChild(_body, visitor); |
| 15085 } | 12193 } |
| 15086 } | 12194 } |
| 15087 /** | 12195 /** |
| 15088 * Instances of the class `WithClause` represent the with clause in a class decl
aration. | 12196 * Instances of the class `WithClause` represent the with clause in a class decl
aration. |
| 15089 * | 12197 * |
| 15090 * <pre> | 12198 * <pre> |
| 15091 * withClause ::= | 12199 * withClause ::= |
| 15092 * 'with' [TypeName] (',' [TypeName])* | 12200 * 'with' [TypeName] (',' [TypeName])* |
| 15093 * </pre> | 12201 * </pre> |
| 15094 * | 12202 * |
| 15095 * @coverage dart.engine.ast | 12203 * @coverage dart.engine.ast |
| 15096 */ | 12204 */ |
| 15097 class WithClause extends ASTNode { | 12205 class WithClause extends ASTNode { |
| 15098 | 12206 |
| 15099 /** | 12207 /** |
| 15100 * The token representing the 'with' keyword. | 12208 * The token representing the 'with' keyword. |
| 15101 */ | 12209 */ |
| 15102 Token _withKeyword; | 12210 Token withKeyword; |
| 15103 | 12211 |
| 15104 /** | 12212 /** |
| 15105 * The names of the mixins that were specified. | 12213 * The names of the mixins that were specified. |
| 15106 */ | 12214 */ |
| 15107 NodeList<TypeName> _mixinTypes; | 12215 NodeList<TypeName> mixinTypes; |
| 15108 | 12216 |
| 15109 /** | 12217 /** |
| 15110 * Initialize a newly created with clause. | 12218 * Initialize a newly created with clause. |
| 15111 * | 12219 * |
| 15112 * @param withKeyword the token representing the 'with' keyword | 12220 * @param withKeyword the token representing the 'with' keyword |
| 15113 * @param mixinTypes the names of the mixins that were specified | 12221 * @param mixinTypes the names of the mixins that were specified |
| 15114 */ | 12222 */ |
| 15115 WithClause.full(Token withKeyword, List<TypeName> mixinTypes) { | 12223 WithClause.full(Token withKeyword, List<TypeName> mixinTypes) { |
| 15116 this._mixinTypes = new NodeList<TypeName>(this); | 12224 this.mixinTypes = new NodeList<TypeName>(this); |
| 15117 this._withKeyword = withKeyword; | 12225 this.withKeyword = withKeyword; |
| 15118 this._mixinTypes.addAll(mixinTypes); | 12226 this.mixinTypes.addAll(mixinTypes); |
| 15119 } | 12227 } |
| 15120 | 12228 |
| 15121 /** | 12229 /** |
| 15122 * Initialize a newly created with clause. | 12230 * Initialize a newly created with clause. |
| 15123 * | 12231 * |
| 15124 * @param withKeyword the token representing the 'with' keyword | 12232 * @param withKeyword the token representing the 'with' keyword |
| 15125 * @param mixinTypes the names of the mixins that were specified | 12233 * @param mixinTypes the names of the mixins that were specified |
| 15126 */ | 12234 */ |
| 15127 WithClause({Token withKeyword, List<TypeName> mixinTypes}) : this.full(withKey
word, mixinTypes); | 12235 WithClause({Token withKeyword, List<TypeName> mixinTypes}) : this.full(withKey
word, mixinTypes); |
| 15128 accept(ASTVisitor visitor) => visitor.visitWithClause(this); | 12236 accept(ASTVisitor visitor) => visitor.visitWithClause(this); |
| 15129 Token get beginToken => _withKeyword; | 12237 Token get beginToken => withKeyword; |
| 15130 Token get endToken => _mixinTypes.endToken; | 12238 Token get endToken => mixinTypes.endToken; |
| 15131 | |
| 15132 /** | |
| 15133 * Return the names of the mixins that were specified. | |
| 15134 * | |
| 15135 * @return the names of the mixins that were specified | |
| 15136 */ | |
| 15137 NodeList<TypeName> get mixinTypes => _mixinTypes; | |
| 15138 | |
| 15139 /** | |
| 15140 * Return the token representing the 'with' keyword. | |
| 15141 * | |
| 15142 * @return the token representing the 'with' keyword | |
| 15143 */ | |
| 15144 Token get withKeyword => _withKeyword; | |
| 15145 | 12239 |
| 15146 /** | 12240 /** |
| 15147 * Set the token representing the 'with' keyword to the given token. | 12241 * Set the token representing the 'with' keyword to the given token. |
| 15148 * | 12242 * |
| 15149 * @param withKeyword the token representing the 'with' keyword | 12243 * @param withKeyword the token representing the 'with' keyword |
| 15150 */ | 12244 */ |
| 15151 void set mixinKeyword(Token withKeyword2) { | 12245 void set mixinKeyword(Token withKeyword2) { |
| 15152 this._withKeyword = withKeyword2; | 12246 this.withKeyword = withKeyword2; |
| 15153 } | 12247 } |
| 15154 void visitChildren(ASTVisitor visitor) { | 12248 void visitChildren(ASTVisitor visitor) { |
| 15155 _mixinTypes.accept(visitor); | 12249 mixinTypes.accept(visitor); |
| 15156 } | 12250 } |
| 15157 } | 12251 } |
| 15158 /** | 12252 /** |
| 15159 * Instances of the class `BreadthFirstVisitor` implement an AST visitor that wi
ll recursively | 12253 * Instances of the class `BreadthFirstVisitor` implement an AST visitor that wi
ll recursively |
| 15160 * visit all of the nodes in an AST structure, similar to [GeneralizingASTVisito
r]. This | 12254 * visit all of the nodes in an AST structure, similar to [GeneralizingASTVisito
r]. This |
| 15161 * visitor uses a breadth-first ordering rather than the depth-first ordering of | 12255 * visitor uses a breadth-first ordering rather than the depth-first ordering of |
| 15162 * [GeneralizingASTVisitor]. | 12256 * [GeneralizingASTVisitor]. |
| 15163 * | 12257 * |
| 15164 * Subclasses that override a visit method must either invoke the overridden vis
it method or | 12258 * Subclasses that override a visit method must either invoke the overridden vis
it method or |
| 15165 * explicitly invoke the more general visit method. Failure to do so will cause
the visit methods | 12259 * explicitly invoke the more general visit method. Failure to do so will cause
the visit methods |
| (...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15755 | 12849 |
| 15756 /** | 12850 /** |
| 15757 * The end offset of the range used to identify the node. | 12851 * The end offset of the range used to identify the node. |
| 15758 */ | 12852 */ |
| 15759 int _endOffset = 0; | 12853 int _endOffset = 0; |
| 15760 | 12854 |
| 15761 /** | 12855 /** |
| 15762 * The element that was found that corresponds to the given source range, or `
null` if there | 12856 * The element that was found that corresponds to the given source range, or `
null` if there |
| 15763 * is no such element. | 12857 * is no such element. |
| 15764 */ | 12858 */ |
| 15765 ASTNode _foundNode; | 12859 ASTNode foundNode; |
| 15766 | 12860 |
| 15767 /** | 12861 /** |
| 15768 * Initialize a newly created locator to locate one or more [ASTNode] by locat
ing | 12862 * Initialize a newly created locator to locate one or more [ASTNode] by locat
ing |
| 15769 * the node within an AST structure that corresponds to the given offset in th
e source. | 12863 * the node within an AST structure that corresponds to the given offset in th
e source. |
| 15770 * | 12864 * |
| 15771 * @param offset the offset used to identify the node | 12865 * @param offset the offset used to identify the node |
| 15772 */ | 12866 */ |
| 15773 NodeLocator.con1(int offset) : this.con2(offset, offset); | 12867 NodeLocator.con1(int offset) : this.con2(offset, offset); |
| 15774 | 12868 |
| 15775 /** | 12869 /** |
| 15776 * Initialize a newly created locator to locate one or more [ASTNode] by locat
ing | 12870 * Initialize a newly created locator to locate one or more [ASTNode] by locat
ing |
| 15777 * the node within an AST structure that corresponds to the given range of cha
racters in the | 12871 * the node within an AST structure that corresponds to the given range of cha
racters in the |
| 15778 * source. | 12872 * source. |
| 15779 * | 12873 * |
| 15780 * @param start the start offset of the range used to identify the node | 12874 * @param start the start offset of the range used to identify the node |
| 15781 * @param end the end offset of the range used to identify the node | 12875 * @param end the end offset of the range used to identify the node |
| 15782 */ | 12876 */ |
| 15783 NodeLocator.con2(int start, int end) { | 12877 NodeLocator.con2(int start, int end) { |
| 15784 this._startOffset = start; | 12878 this._startOffset = start; |
| 15785 this._endOffset = end; | 12879 this._endOffset = end; |
| 15786 } | 12880 } |
| 15787 | 12881 |
| 15788 /** | 12882 /** |
| 15789 * Return the node that was found that corresponds to the given source range,
or `null` if | |
| 15790 * there is no such node. | |
| 15791 * | |
| 15792 * @return the node that was found | |
| 15793 */ | |
| 15794 ASTNode get foundNode => _foundNode; | |
| 15795 | |
| 15796 /** | |
| 15797 * Search within the given AST node for an identifier representing a [DartElem
ent] in the specified source range. Return the element that was found, or `null`
if | 12883 * Search within the given AST node for an identifier representing a [DartElem
ent] in the specified source range. Return the element that was found, or `null`
if |
| 15798 * no element was found. | 12884 * no element was found. |
| 15799 * | 12885 * |
| 15800 * @param node the AST node within which to search | 12886 * @param node the AST node within which to search |
| 15801 * @return the element that was found | 12887 * @return the element that was found |
| 15802 */ | 12888 */ |
| 15803 ASTNode searchWithin(ASTNode node) { | 12889 ASTNode searchWithin(ASTNode node) { |
| 15804 if (node == null) { | 12890 if (node == null) { |
| 15805 return null; | 12891 return null; |
| 15806 } | 12892 } |
| 15807 try { | 12893 try { |
| 15808 node.accept(this); | 12894 node.accept(this); |
| 15809 } on NodeLocator_NodeFoundException catch (exception) { | 12895 } on NodeLocator_NodeFoundException catch (exception) { |
| 15810 } catch (exception) { | 12896 } catch (exception) { |
| 15811 AnalysisEngine.instance.logger.logInformation2("Unable to locate element a
t offset (${_startOffset} - ${_endOffset})", exception); | 12897 AnalysisEngine.instance.logger.logInformation2("Unable to locate element a
t offset (${_startOffset} - ${_endOffset})", exception); |
| 15812 return null; | 12898 return null; |
| 15813 } | 12899 } |
| 15814 return _foundNode; | 12900 return foundNode; |
| 15815 } | 12901 } |
| 15816 Object visitNode(ASTNode node) { | 12902 Object visitNode(ASTNode node) { |
| 15817 int start = node.offset; | 12903 int start = node.offset; |
| 15818 int end = start + node.length; | 12904 int end = start + node.length; |
| 15819 if (end < _startOffset) { | 12905 if (end < _startOffset) { |
| 15820 return null; | 12906 return null; |
| 15821 } | 12907 } |
| 15822 if (start > _endOffset) { | 12908 if (start > _endOffset) { |
| 15823 return null; | 12909 return null; |
| 15824 } | 12910 } |
| 15825 try { | 12911 try { |
| 15826 node.visitChildren(this); | 12912 node.visitChildren(this); |
| 15827 } on NodeLocator_NodeFoundException catch (exception) { | 12913 } on NodeLocator_NodeFoundException catch (exception) { |
| 15828 throw exception; | 12914 throw exception; |
| 15829 } catch (exception) { | 12915 } catch (exception) { |
| 15830 AnalysisEngine.instance.logger.logInformation2("Exception caught while tra
versing an AST structure.", exception); | 12916 AnalysisEngine.instance.logger.logInformation2("Exception caught while tra
versing an AST structure.", exception); |
| 15831 } | 12917 } |
| 15832 if (start <= _startOffset && _endOffset <= end) { | 12918 if (start <= _startOffset && _endOffset <= end) { |
| 15833 _foundNode = node; | 12919 foundNode = node; |
| 15834 throw new NodeLocator_NodeFoundException(); | 12920 throw new NodeLocator_NodeFoundException(); |
| 15835 } | 12921 } |
| 15836 return null; | 12922 return null; |
| 15837 } | 12923 } |
| 15838 } | 12924 } |
| 15839 /** | 12925 /** |
| 15840 * Instances of the class `NodeFoundException` are used to cancel visiting after
a node has | 12926 * Instances of the class `NodeFoundException` are used to cancel visiting after
a node has |
| 15841 * been found. | 12927 * been found. |
| 15842 */ | 12928 */ |
| 15843 class NodeLocator_NodeFoundException extends RuntimeException { | 12929 class NodeLocator_NodeFoundException extends RuntimeException { |
| (...skipping 1546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17390 * Traverse the AST from initial child node to successive parents, building a co
llection of local | 14476 * Traverse the AST from initial child node to successive parents, building a co
llection of local |
| 17391 * variable and parameter names visible to the initial child node. In case of na
me shadowing, the | 14477 * variable and parameter names visible to the initial child node. In case of na
me shadowing, the |
| 17392 * first name seen is the most specific one so names are not redefined. | 14478 * first name seen is the most specific one so names are not redefined. |
| 17393 * | 14479 * |
| 17394 * Completion test code coverage is 95%. The two basic blocks that are not execu
ted cannot be | 14480 * Completion test code coverage is 95%. The two basic blocks that are not execu
ted cannot be |
| 17395 * executed. They are included for future reference. | 14481 * executed. They are included for future reference. |
| 17396 * | 14482 * |
| 17397 * @coverage com.google.dart.engine.services.completion | 14483 * @coverage com.google.dart.engine.services.completion |
| 17398 */ | 14484 */ |
| 17399 class ScopedNameFinder extends GeneralizingASTVisitor<Object> { | 14485 class ScopedNameFinder extends GeneralizingASTVisitor<Object> { |
| 17400 Declaration _declarationNode; | 14486 Declaration declaration; |
| 17401 ASTNode _immediateChild; | 14487 ASTNode _immediateChild; |
| 17402 Map<String, SimpleIdentifier> _locals = new Map<String, SimpleIdentifier>(); | 14488 final Map<String, SimpleIdentifier> locals = new Map<String, SimpleIdentifier>
(); |
| 17403 int _position = 0; | 14489 int _position = 0; |
| 17404 bool _referenceIsWithinLocalFunction = false; | 14490 bool _referenceIsWithinLocalFunction = false; |
| 17405 ScopedNameFinder(int position) { | 14491 ScopedNameFinder(int position) { |
| 17406 this._position = position; | 14492 this._position = position; |
| 17407 } | 14493 } |
| 17408 Declaration get declaration => _declarationNode; | |
| 17409 Map<String, SimpleIdentifier> get locals => _locals; | |
| 17410 Object visitBlock(Block node) { | 14494 Object visitBlock(Block node) { |
| 17411 checkStatements(node.statements); | 14495 checkStatements(node.statements); |
| 17412 return super.visitBlock(node); | 14496 return super.visitBlock(node); |
| 17413 } | 14497 } |
| 17414 Object visitCatchClause(CatchClause node) { | 14498 Object visitCatchClause(CatchClause node) { |
| 17415 addToScope(node.exceptionParameter); | 14499 addToScope(node.exceptionParameter); |
| 17416 addToScope(node.stackTraceParameter); | 14500 addToScope(node.stackTraceParameter); |
| 17417 return super.visitCatchClause(node); | 14501 return super.visitCatchClause(node); |
| 17418 } | 14502 } |
| 17419 Object visitConstructorDeclaration(ConstructorDeclaration node) { | 14503 Object visitConstructorDeclaration(ConstructorDeclaration node) { |
| 17420 if (_immediateChild != node.parameters) { | 14504 if (_immediateChild != node.parameters) { |
| 17421 addParameters(node.parameters.parameters); | 14505 addParameters(node.parameters.parameters); |
| 17422 } | 14506 } |
| 17423 _declarationNode = node; | 14507 declaration = node; |
| 17424 return null; | 14508 return null; |
| 17425 } | 14509 } |
| 17426 Object visitFieldDeclaration(FieldDeclaration node) { | 14510 Object visitFieldDeclaration(FieldDeclaration node) { |
| 17427 _declarationNode = node; | 14511 declaration = node; |
| 17428 return null; | 14512 return null; |
| 17429 } | 14513 } |
| 17430 Object visitForEachStatement(ForEachStatement node) { | 14514 Object visitForEachStatement(ForEachStatement node) { |
| 17431 addToScope(node.loopVariable.identifier); | 14515 addToScope(node.loopVariable.identifier); |
| 17432 return super.visitForEachStatement(node); | 14516 return super.visitForEachStatement(node); |
| 17433 } | 14517 } |
| 17434 Object visitForStatement(ForStatement node) { | 14518 Object visitForStatement(ForStatement node) { |
| 17435 if (_immediateChild != node.variables && node.variables != null) { | 14519 if (_immediateChild != node.variables && node.variables != null) { |
| 17436 addVariables(node.variables.variables); | 14520 addVariables(node.variables.variables); |
| 17437 } | 14521 } |
| 17438 return super.visitForStatement(node); | 14522 return super.visitForStatement(node); |
| 17439 } | 14523 } |
| 17440 Object visitFunctionDeclaration(FunctionDeclaration node) { | 14524 Object visitFunctionDeclaration(FunctionDeclaration node) { |
| 17441 if (node.parent is! FunctionDeclarationStatement) { | 14525 if (node.parent is! FunctionDeclarationStatement) { |
| 17442 _declarationNode = node; | 14526 declaration = node; |
| 17443 return null; | 14527 return null; |
| 17444 } | 14528 } |
| 17445 return super.visitFunctionDeclaration(node); | 14529 return super.visitFunctionDeclaration(node); |
| 17446 } | 14530 } |
| 17447 Object visitFunctionDeclarationStatement(FunctionDeclarationStatement node) { | 14531 Object visitFunctionDeclarationStatement(FunctionDeclarationStatement node) { |
| 17448 _referenceIsWithinLocalFunction = true; | 14532 _referenceIsWithinLocalFunction = true; |
| 17449 return super.visitFunctionDeclarationStatement(node); | 14533 return super.visitFunctionDeclarationStatement(node); |
| 17450 } | 14534 } |
| 17451 Object visitFunctionExpression(FunctionExpression node) { | 14535 Object visitFunctionExpression(FunctionExpression node) { |
| 17452 if (node.parameters != null && _immediateChild != node.parameters) { | 14536 if (node.parameters != null && _immediateChild != node.parameters) { |
| 17453 addParameters(node.parameters.parameters); | 14537 addParameters(node.parameters.parameters); |
| 17454 } | 14538 } |
| 17455 return super.visitFunctionExpression(node); | 14539 return super.visitFunctionExpression(node); |
| 17456 } | 14540 } |
| 17457 Object visitMethodDeclaration(MethodDeclaration node) { | 14541 Object visitMethodDeclaration(MethodDeclaration node) { |
| 17458 if (node.parameters == null) { | 14542 if (node.parameters == null) { |
| 17459 return null; | 14543 return null; |
| 17460 } | 14544 } |
| 17461 if (_immediateChild != node.parameters) { | 14545 if (_immediateChild != node.parameters) { |
| 17462 addParameters(node.parameters.parameters); | 14546 addParameters(node.parameters.parameters); |
| 17463 } | 14547 } |
| 17464 _declarationNode = node; | 14548 declaration = node; |
| 17465 return null; | 14549 return null; |
| 17466 } | 14550 } |
| 17467 Object visitNode(ASTNode node) { | 14551 Object visitNode(ASTNode node) { |
| 17468 _immediateChild = node; | 14552 _immediateChild = node; |
| 17469 ASTNode parent = node.parent; | 14553 ASTNode parent = node.parent; |
| 17470 if (parent != null) { | 14554 if (parent != null) { |
| 17471 parent.accept(this); | 14555 parent.accept(this); |
| 17472 } | 14556 } |
| 17473 return null; | 14557 return null; |
| 17474 } | 14558 } |
| 17475 Object visitSwitchMember(SwitchMember node) { | 14559 Object visitSwitchMember(SwitchMember node) { |
| 17476 checkStatements(node.statements); | 14560 checkStatements(node.statements); |
| 17477 return super.visitSwitchMember(node); | 14561 return super.visitSwitchMember(node); |
| 17478 } | 14562 } |
| 17479 Object visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) { | 14563 Object visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) { |
| 17480 _declarationNode = node; | 14564 declaration = node; |
| 17481 return null; | 14565 return null; |
| 17482 } | 14566 } |
| 17483 Object visitTypeAlias(TypeAlias node) { | 14567 Object visitTypeAlias(TypeAlias node) { |
| 17484 _declarationNode = node; | 14568 declaration = node; |
| 17485 return null; | 14569 return null; |
| 17486 } | 14570 } |
| 17487 void addParameters(NodeList<FormalParameter> vars) { | 14571 void addParameters(NodeList<FormalParameter> vars) { |
| 17488 for (FormalParameter var2 in vars) { | 14572 for (FormalParameter var2 in vars) { |
| 17489 addToScope(var2.identifier); | 14573 addToScope(var2.identifier); |
| 17490 } | 14574 } |
| 17491 } | 14575 } |
| 17492 void addToScope(SimpleIdentifier identifier) { | 14576 void addToScope(SimpleIdentifier identifier) { |
| 17493 if (identifier != null && isInRange(identifier)) { | 14577 if (identifier != null && isInRange(identifier)) { |
| 17494 String name = identifier.name; | 14578 String name = identifier.name; |
| 17495 if (!_locals.containsKey(name)) { | 14579 if (!locals.containsKey(name)) { |
| 17496 _locals[name] = identifier; | 14580 locals[name] = identifier; |
| 17497 } | 14581 } |
| 17498 } | 14582 } |
| 17499 } | 14583 } |
| 17500 void addVariables(NodeList<VariableDeclaration> vars) { | 14584 void addVariables(NodeList<VariableDeclaration> vars) { |
| 17501 for (VariableDeclaration var2 in vars) { | 14585 for (VariableDeclaration var2 in vars) { |
| 17502 addToScope(var2.name); | 14586 addToScope(var2.name); |
| 17503 } | 14587 } |
| 17504 } | 14588 } |
| 17505 | 14589 |
| 17506 /** | 14590 /** |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17587 return elements[elements.length - 1].endToken; | 14671 return elements[elements.length - 1].endToken; |
| 17588 } | 14672 } |
| 17589 /** | 14673 /** |
| 17590 * Return the node that is the parent of each of the elements in the list. | 14674 * Return the node that is the parent of each of the elements in the list. |
| 17591 * @return the node that is the parent of each of the elements in the list | 14675 * @return the node that is the parent of each of the elements in the list |
| 17592 */ | 14676 */ |
| 17593 ASTNode getOwner() { | 14677 ASTNode getOwner() { |
| 17594 return owner; | 14678 return owner; |
| 17595 } | 14679 } |
| 17596 } | 14680 } |
| OLD | NEW |