eles 1.0.0

ELES; Extensible Logical Expression Solver
Documentation
use super::{
 ElesOption,
 Operator,
 TokenBuffer,
 TokenStream
};
use anyhow::Result;

pub fn tokenize(input: &str, o: ElesOption) -> Result<TokenStream>
{
 let mut b = TokenBuffer::new();

 for token in input.split(o.separator.as_str())
 {
  let token = token.trim();
  match token
  {
   t if t == o.and_operator => b.push_operator_token(Operator::And),
   t if t == o.or_operator => b.push_operator_token(Operator::Or),
   t if t == o.xor_operator => b.push_operator_token(Operator::Xor),
   t if t == o.not_operator => b.push_operator_token(Operator::Not),
   "((" => b.push_operator_token(Operator::OpenParen),
   "))" => b.push_operator_token(Operator::CloseParen),
   _ => b.push_literal_part(token)
  }
 }
 let r = b.flush_tokens();
 Ok(r)
}