ralix 0.2.0

A simple, type-safe, tree walking interpreter
use crate::{ParserDiagnostic, ParserResult, Statement, Token, statements::Binding};

use super::Parser;

impl Parser<'_> {
    pub fn parse_constant_statements(&mut self) -> ParserResult<Statement> {
        self.consume_current_token(Token::Const);
        let stmt = self.parse_statement()?;

        match stmt {
            Statement::Binding(Binding {
                ident,
                type_annotation,
                value,
                ..
            }) => Ok(Statement::Binding(Binding {
                ident,
                type_annotation,
                value,
                is_constant: true,
            })),
            _ => Err(ParserDiagnostic::UnacceptableConst),
        }
    }
}