use chumsky::{Parser as _, input::Input as _};

#[derive(Debug, thiserror::Error)]
pub enum EvalError {}

pub struct Engine {
    // runtime: rquickjs::Context,
}

impl Engine {
    pub fn new() {}

    pub fn eval(&self, filter: &str) -> Result<(), EvalError> {
        let tokens = crate::filter::parser::lexer().parse(filter).unwrap();
        let expr = crate::filter::parser::parser()
            .parse(tokens[..].split_spanned((0..filter.len()).into()))
            .unwrap();
        let js = crate::filter::convert::ast_to_js(&expr.inner);

        // self.runtime.with(|ctx| {});

        Ok(())
    }
}
