Ajout des If, des opérateurs logiques et des boucles While

This commit is contained in:
2025-10-11 23:39:25 +02:00
parent bba863687d
commit e72a52d885
7 changed files with 211 additions and 15 deletions

View File

@@ -37,11 +37,19 @@ pub struct Variable {
pub name: Token,
}
#[derive(Clone)]
pub struct Logical {
pub left: Box<Expr>,
pub operator: Token,
pub right: Box<Expr>,
}
#[derive(Clone)]
pub enum Expr {
BinaryExpr(Binary),
GroupingExpr(Grouping),
LiteralExpr(Literal),
LogicalExpr(Logical),
UnaryExpr(Unary),
VariableExpr(Variable),
AssignExpr(Assign),
@@ -55,5 +63,6 @@ pub trait ExprVisitor<T> {
fn visit_expr(&mut self, e: &Expr) -> T;
fn visit_variable(&mut self, v: &Variable) -> T;
fn visit_assign(&mut self, a: &Assign) -> T;
fn visit_logical(&mut self, l: &Logical) -> T;
}