From 771242c1e05ea00c4ccc6f626a865bbe4d212839 Mon Sep 17 00:00:00 2001 From: Ernest Gupik Date: Tue, 21 Jan 2025 18:52:32 +0100 Subject: [PATCH] Parser: fixes --- src/parser.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parser.rs b/src/parser.rs index 488337a..989e416 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -383,7 +383,9 @@ impl<'a> Parser<'a> { _ => unreachable!(), }; self.iter.next(); // Consume operator + let right = self.parse_primary()?; + left = Expr::BinExpr(Box::new(BinExpr { lhs: left, kind: operator, @@ -413,10 +415,12 @@ impl<'a> Parser<'a> { /// Parses a complete program into an AST pub fn parse(&mut self) -> Result { let mut ast = Vec::new(); - while let Some(_token) = self.iter.peek() { + + while self.iter.peek().is_some() { let expr = self.parse_expr()?; ast.push(expr); } + Ok(ast) } }