#[macro_use]
extern crate lazy_static;
extern crate pest;
#[macro_use]
extern crate pest_derive;
extern crate rand;
extern crate regex;
mod context;
mod core;
#[cfg(not(target_arch = "wasm32"))]
mod ffi;
mod matching;
mod parser;
mod rule;
mod state;
mod string_cache;
#[cfg(test)]
mod tests;
pub mod token;
mod update;
#[cfg(target_arch = "wasm32")]
mod wasm;
pub use crate::context::{Context, ContextBuilder};
pub use crate::core::Core;
#[cfg(not(target_arch = "wasm32"))]
#[doc(hidden)]
pub use crate::ffi::*;
pub use crate::rule::Rule;
pub use crate::state::{PhraseId, State};
pub use crate::string_cache::{Atom, StringCache};
pub use crate::token::{tokenize, Phrase, PhraseGroup, PhraseString, Token};
pub use crate::update::{update, SideInput};
#[cfg(target_arch = "wasm32")]
pub use crate::wasm::*;
pub mod errors {
pub use crate::matching::ExcessivePermutationError;
pub use crate::parser::Error as ParserError;
pub use crate::update::{Error as UpdateError, RuleRepeatError};
}