secel/lib.rs
1mod ast;
2mod errors;
3mod evaluator;
4mod lexer;
5mod parser;
6mod values;
7
8#[cfg(test)]
9mod tests;
10
11pub use ast::AstNode;
12pub use evaluator::{Evaluator, IndexKey, IndexedValues};
13pub use values::Value;
14
15/// Parses expression, panics on failure.
16pub fn parse_expression(input: &str) -> AstNode {
17 parser::Parser::new(input).parse().unwrap()
18}
19
20/// Builds evaluator, panics on failure.
21pub fn build_evaluator(input: &str) -> Evaluator {
22 let node = parser::Parser::new(input).parse().unwrap();
23 evaluator::build_evaluator(&node).unwrap()
24}