emit negated declarations

This commit is contained in:
2025-11-22 22:44:25 -07:00
parent 1706698ffa
commit 17089b53e1
6 changed files with 560 additions and 27 deletions

View File

@@ -214,6 +214,14 @@ impl Parser {
// match priority expressions with a left parenthesis
TokenType::Symbol(Symbol::LParen) => Expression::Priority(self.priority()?),
// match minus symbols to handle negative numbers or negated expressions
TokenType::Symbol(Symbol::Minus) => {
self.assign_next()?; // consume the `-` symbol
let inner_expr = self.expression()?.ok_or(Error::UnexpectedEOF)?;
Expression::Negation(boxed!(inner_expr))
}
_ => {
return Err(Error::UnexpectedToken(current_token.clone()));
}