Skip to content

Add unary operators #23

@linuskmr

Description

@linuskmr

Add unary operators like:

  • Double vertical bar |x|, e.g. for getting the length of an array or the positive value of a number
  • Unary minus, e.g. -5

May be added here as a primary expression:

fn parse_primary_expression(&mut self) -> miette::Result<Expression> {
match self.tokens.peek() {
Some(Token { data: TokenKind::Identifier(_), .. }) => self.parse_identifier_expression(),
Some(Token { data: TokenKind::Number(_), .. }) => Ok(Expression::Number(self.parse_number()?)),
Some(Token { data: TokenKind::OpeningParentheses, .. }) => self.parse_parentheses(),
Some(Token { data: TokenKind::If, .. }) => Ok(Expression::IfElse(Box::new(self.parse_if_expression()?))),
Some(Token { data: TokenKind::For, .. }) => Ok(Expression::ForLoop(Box::new(self.parse_for_expression()?))),
other => {

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions