ralix 0.2.0

A simple, type-safe, tree walking interpreter
use crate::{ParserResult, Statement, Token, parser::expressions::Precedence};

use super::Parser;

impl Parser<'_> {
    pub fn parse_return_statement(&mut self) -> ParserResult<Statement> {
        self.consume_current_token(Token::Return);

        let value = if self.is_current_token(Token::SemiColon) {
            None
        } else {
            Some(self.parse_expression(Precedence::Lowest)?)
        };

        self.consume_peek_token(Token::SemiColon);

        Ok(Statement::Return(value))
    }
}