fix(parser): allow negative numbers

made adding a minus sign before a group/primary expression implicitly multiply by -1
This commit is contained in:
ozzy committed 2026-09-27 13:26:47 -05:00
1 parent bbc0ef6045
commit d5397d1591
1 file changed
+11
+11
View File
@@ -1,3 +1,5 @@
use rust_decimal::dec;
use crate::math::{
lexer::Token,
types::{Expression, Operator},
@@ -126,6 +128,15 @@ impl Parser {
self.position += 1;
Expression::Number(num)
}
Token::Operator(Operator::Subtract) => {
self.position += 1;
let right = self.parse_group();
Expression::Operation(
Operator::Multiply,
Box::new(Expression::Number(dec!(-1))),
Box::new(right),
)
}
Token::Identifier(identifier) => {
let is_function =
matches!(self.tokens.get(self.position + 1), Some(Token::OpenParen));