@@ -677,6 +677,7 @@ class UpdateExpression extends Expression {
677
677
visitBy (Visitor v) => v.visitUpdateExpression (this );
678
678
}
679
679
680
+ /// Expression of form: `[condition] ? [then] : [otherwise]` .
680
681
class ConditionalExpression extends Expression {
681
682
Expression condition;
682
683
Expression then;
@@ -695,6 +696,7 @@ class ConditionalExpression extends Expression {
695
696
visitBy (Visitor v) => v.visitConditional (this );
696
697
}
697
698
699
+ /// Expression of form: `[callee](..[arguments]..)` or `new [callee](..[arguments]..)` .
698
700
class CallExpression extends Expression {
699
701
bool isNew;
700
702
Expression callee;
@@ -713,6 +715,7 @@ class CallExpression extends Expression {
713
715
visitBy (Visitor v) => v.visitCall (this );
714
716
}
715
717
718
+ /// Expression of form: `[object].[property].`
716
719
class MemberExpression extends Expression {
717
720
Expression object;
718
721
Name property;
@@ -729,6 +732,7 @@ class MemberExpression extends Expression {
729
732
visitBy (Visitor v) => v.visitMember (this );
730
733
}
731
734
735
+ /// Expression of form: `[object][[property]]` .
732
736
class IndexExpression extends Expression {
733
737
Expression object;
734
738
Expression property;
@@ -746,6 +750,7 @@ class IndexExpression extends Expression {
746
750
}
747
751
748
752
/// A [Name] that is used as an expression.
753
+ ///
749
754
/// Note that "undefined", "NaN", and "Infinity" are name expressions, and not literals and one might expect.
750
755
class NameExpression extends Expression {
751
756
Name name;
@@ -759,8 +764,14 @@ class NameExpression extends Expression {
759
764
visitBy (Visitor v) => v.visitNameExpression (this );
760
765
}
761
766
767
+ /// A literal string, number, boolean or null.
768
+ ///
769
+ /// Note that "undefined", "NaN", and "Infinity" are [NameExpression] s, and not literals and one might expect.
762
770
class LiteralExpression extends Expression {
771
+ /// A string, number, boolean, or null value, indicating the value of the literal.
763
772
dynamic value;
773
+
774
+ /// The verbatim source-code representation of the literal.
764
775
String raw;
765
776
766
777
LiteralExpression (this .value, [this .raw]);
@@ -784,8 +795,10 @@ class LiteralExpression extends Expression {
784
795
visitBy (Visitor v) => v.visitLiteral (this );
785
796
}
786
797
798
+ /// A regular expression literal.
787
799
class RegexpExpression extends Expression {
788
- String regexp; // Includes slashes and flags and everything (TODO: separate into regexp and flags)
800
+ /// The entire literal, including slashes and flags.
801
+ String regexp; // TODO: separate into regexp and flags
789
802
790
803
RegexpExpression (this .regexp);
791
804
0 commit comments