eltl 0.7.0

An engineer's calculator. Written in Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! A parselet for numeric literals.

use crate::parselet_utils::*;

pub struct LiteralParselet;

impl PrefixParselet for LiteralParselet {
    fn parse(&self, _parser: &Parser, _tokenizer: &mut Tokenizer, token: Token) -> Expression {
        // Note: it's ok to use `Result::unwrap()` here because we checked that
        // the token's value parses to valid data during tokenization.
        match token.get_class() {
            TokenClass::Int => Expression::Int (str::parse::<i64>(&token.get_value()).unwrap()),
            TokenClass::Float => Expression::Float (str::parse::<f64>(&token.get_value()).unwrap()),
            _ => unreachable!(),
        }
    }
}