ralix 0.2.0

A simple, type-safe, tree walking interpreter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::{Expression, Literal, Parser, ParserDiagnostic, ParserResult};

impl Parser<'_> {
    pub fn parse_string_literal(&mut self, int_lit: Literal) -> ParserResult<Expression> {
        Ok(Expression::String(int_lit.clone()))
    }

    pub fn parse_char_literal(&mut self, char_lit: Literal) -> ParserResult<Expression> {
        let value: char = match char_lit.parse().ok() {
            Some(v) => v,
            None => return Err(ParserDiagnostic::FloatParse(char_lit.clone())),
        };

        Ok(Expression::Char(value))
    }
}