mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:47:45 +00:00
LibCpp: Parse "arrow" operator
This commit is contained in:
parent
44833f1621
commit
ec2c54ee2e
3 changed files with 8 additions and 1 deletions
|
@ -215,6 +215,9 @@ void BinaryExpression::dump(size_t indent) const
|
|||
case BinaryOp::LogicalAnd:
|
||||
op_string = "&&";
|
||||
break;
|
||||
case BinaryOp::Arrow:
|
||||
op_string = "->";
|
||||
break;
|
||||
}
|
||||
|
||||
m_lhs->dump(indent + 1);
|
||||
|
|
|
@ -422,6 +422,7 @@ enum class BinaryOp {
|
|||
NotEqual,
|
||||
LogicalOr,
|
||||
LogicalAnd,
|
||||
Arrow,
|
||||
};
|
||||
|
||||
class BinaryExpression : public Expression {
|
||||
|
|
|
@ -425,7 +425,8 @@ bool Parser::match_secondary_expression()
|
|||
|| type == Token::Type::AndAnd
|
||||
|| type == Token::Type::PipePipe
|
||||
|| type == Token::Type::ExclamationMarkEquals
|
||||
|| type == Token::Type::PipePipe;
|
||||
|| type == Token::Type::PipePipe
|
||||
|| type == Token::Type::Arrow;
|
||||
}
|
||||
|
||||
NonnullRefPtr<Expression> Parser::parse_primary_expression(ASTNode& parent)
|
||||
|
@ -577,6 +578,8 @@ NonnullRefPtr<Expression> Parser::parse_secondary_expression(ASTNode& parent, No
|
|||
return parse_binary_expression(parent, lhs, BinaryOp::BitwiseOr);
|
||||
case Token::Type::PipePipe:
|
||||
return parse_binary_expression(parent, lhs, BinaryOp::LogicalOr);
|
||||
case Token::Type::Arrow:
|
||||
return parse_binary_expression(parent, lhs, BinaryOp::Arrow);
|
||||
case Token::Type::Equals:
|
||||
return parse_assignment_expression(parent, lhs, AssignmentOp::Assignment);
|
||||
case Token::Type::Dot: {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue