AST - Refactored binary expressions

This commit is contained in:
Emmanuel BENOîT 2023-01-09 07:40:28 +01:00
parent 58c1bbcf68
commit 75387c5ac4
2 changed files with 24 additions and 34 deletions

View file

@ -94,6 +94,17 @@ pub struct SetExpr {
pub value: Box<ExprNode>,
}
/// A binary expression.
#[derive(Debug, Clone)]
pub struct BinaryExpr {
/// The left side expression
pub left: Box<ExprNode>,
/// The operator
pub operator: Token,
/// The right side expression
pub right: Box<ExprNode>,
}
/// An AST node that represents an expression.
#[derive(Debug, Clone)]
pub enum ExprNode {
@ -106,18 +117,10 @@ pub enum ExprNode {
},
/// Logical binary expression.
Logical {
left: Box<ExprNode>,
operator: Token,
right: Box<ExprNode>,
},
Logical(BinaryExpr),
/// Binary expression.
Binary {
left: Box<ExprNode>,
operator: Token,
right: Box<ExprNode>,
},
Binary(BinaryExpr),
/// Unary expression.
Unary {