pub mod ast; pub mod compiler; pub mod error; pub mod lexer; pub mod parser; pub mod token; use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn compile(input: &str) -> String { let tokens = match lexer::scan(&input) { Ok(tokens) => tokens, Err(e) => return e.message, }; let select = match parser::parse(tokens) { Ok(select) => select, Err(e) => return e.message, }; let query = match compiler::compile(select) { Ok(query) => query, Err(e) => return e.message, }; format!( "GET /{}/_search\n{}", query.source.name, serde_json::to_string_pretty(&query.body).unwrap() ) }