pub mod lexer;
pub mod syntax;
pub mod error;
#[cfg(test)]
mod lexer_tests;
#[cfg(test)]
mod syntax_tests;
use crate::core::Expression;
pub use error::ParseError;
pub trait Parser: Send + Sync {
fn parse(&self, input: &str) -> Result<Expression, ParseError>;
fn validate(&self, input: &str) -> Result<(), ParseError>;
}