Lines Matching refs:Expression
147 struct Expression : AstNode {
148 Expression(Kind kind, SourcePosition pos) : AstNode(kind, pos) {}
149 DEFINE_AST_NODE_INNER_BOILERPLATE(Expression)
151 using VisitCallback = std::function<void(Expression*)>;
158 struct LocationExpression : Expression {
159 LocationExpression(Kind kind, SourcePosition pos) : Expression(kind, pos) {}
292 struct IntrinsicCallExpression : Expression {
296 std::vector<Expression*> arguments)
297 : Expression(kKind, pos),
311 std::vector<Expression*> arguments;
314 struct CallMethodExpression : Expression {
316 CallMethodExpression(SourcePosition pos, Expression* target,
318 std::vector<Expression*> arguments,
320 : Expression(kKind, pos),
335 Expression* target;
337 std::vector<Expression*> arguments;
341 struct CallExpression : Expression {
344 std::vector<Expression*> arguments,
346 : Expression(kKind, pos),
360 std::vector<Expression*> arguments;
366 Expression* expression;
369 struct StructExpression : Expression {
373 : Expression(kKind, pos),
388 struct LogicalOrExpression : Expression {
390 LogicalOrExpression(SourcePosition pos, Expression* left, Expression* right)
391 : Expression(kKind, pos), left(left), right(right) {}
399 Expression* left;
400 Expression* right;
403 struct LogicalAndExpression : Expression {
405 LogicalAndExpression(SourcePosition pos, Expression* left, Expression* right)
406 : Expression(kKind, pos), left(left), right(right) {}
414 Expression* left;
415 Expression* right;
418 struct SpreadExpression : Expression {
420 SpreadExpression(SourcePosition pos, Expression* spreadee)
421 : Expression(kKind, pos), spreadee(spreadee) {}
428 Expression* spreadee;
431 struct ConditionalExpression : Expression {
433 ConditionalExpression(SourcePosition pos, Expression* condition,
434 Expression* if_true, Expression* if_false)
435 : Expression(kKind, pos),
447 Expression* condition;
448 Expression* if_true;
449 Expression* if_false;
452 struct StringLiteralExpression : Expression {
455 : Expression(kKind, pos), literal(std::move(literal)) {}
464 struct IntegerLiteralExpression : Expression {
467 : Expression(kKind, pos), value(std::move(value)) {}
476 struct FloatingPointLiteralExpression : Expression {
479 : Expression(kKind, pos), value(value) {}
490 ElementAccessExpression(SourcePosition pos, Expression* array,
491 Expression* index)
500 Expression* array;
501 Expression* index;
506 FieldAccessExpression(SourcePosition pos, Expression* object,
515 Expression* object;
521 DereferenceExpression(SourcePosition pos, Expression* reference)
529 Expression* reference;
532 struct AssignmentExpression : Expression {
534 AssignmentExpression(SourcePosition pos, Expression* location,
535 Expression* value)
537 AssignmentExpression(SourcePosition pos, Expression* location,
538 base::Optional<std::string> op, Expression* value)
539 : Expression(kKind, pos),
550 Expression* location;
552 Expression* value;
557 struct IncrementDecrementExpression : Expression {
559 IncrementDecrementExpression(SourcePosition pos, Expression* location,
561 : Expression(kKind, pos), location(location), op(op), postfix(postfix) {}
568 Expression* location;
577 struct AssumeTypeImpossibleExpression : Expression {
581 Expression* expression)
582 : Expression(kKind, pos),
592 Expression* expression;
595 struct NewExpression : Expression {
599 : Expression(kKind, pos),
690 ExpressionStatement(SourcePosition pos, Expression* expression)
692 Expression* expression;
697 IfStatement(SourcePosition pos, bool is_constexpr, Expression* condition,
704 Expression* condition;
712 WhileStatement(SourcePosition pos, Expression* condition, Statement* body)
714 Expression* condition;
720 ReturnStatement(SourcePosition pos, base::Optional<Expression*> value)
722 base::Optional<Expression*> value;
739 AssertStatement(SourcePosition pos, AssertKind kind, Expression* expression,
746 Expression* expression;
762 base::Optional<Expression*> initializer = base::nullopt)
771 base::Optional<Expression*> initializer;
787 const std::vector<Expression*>& arguments)
790 std::vector<Expression*> arguments;
796 base::Optional<Expression*> test,
807 base::Optional<Expression*> test;
828 struct StatementExpression : Expression {
831 : Expression(kKind, pos), statement(statement) {}
835 struct TryLabelExpression : Expression {
837 TryLabelExpression(SourcePosition pos, Expression* try_expression,
839 : Expression(kKind, pos),
842 Expression* try_expression;
943 Expression* expr;
1105 Expression* expression)
1112 Expression* expression;
1282 inline FieldAccessExpression* MakeFieldAccessExpression(Expression* object,
1301 IdentifierExpression* callee, std::vector<Expression*> arguments,
1308 std::string callee, std::vector<Expression*> arguments,
1315 std::string name, Expression* initializer) {