compile

Function compile 

Source
pub fn compile(source: &str) -> Result<Expression>
Expand description

Compiles a string into an Expression tree.

§Errors

Returns an Error when encountering invalid Input.

§Examples

use slac::{compile, Expression, Operator, Token, Value};
let ast = compile("10 + 20 >= 30");
let expected = Expression::Binary {
    left: Box::new(Expression::Binary {
        left: Box::new(Expression::Literal {
            value : Value::Number(10.0)
        }),
        right: Box::new(Expression::Literal {
            value : Value::Number(20.0)
        }),
        operator: Operator::Plus,
    }),
    right: Box::new(Expression::Literal {
        value : Value::Number(30.0)
    }),
    operator: Operator::GreaterEqual,
};

assert_eq!(ast, Ok(expected));