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));