1#![deny(unsafe_code)]
5#![warn(missing_docs)]
6#![deny(
7 missing_copy_implementations,
8 trivial_casts,
9 trivial_numeric_casts,
10 unused_import_braces,
11 unused_qualifications
12)]
13#![cfg_attr(test, deny(warnings))]
14#![cfg_attr(test, allow(missing_docs))]
15
16#[cfg(feature = "smallvec")]
17use smallvec::SmallVec;
18
19pub mod cfg;
20mod compare;
21mod occurence_map;
22pub mod precedenced_rule;
23pub mod rule_builder;
24pub mod symbol_bit_set;
25
26pub use crate::cfg::*;
27pub use crate::symbol_bit_set::SymbolBitSet;
28
29#[cfg(not(feature = "smallvec"))]
30type MaybeSmallVec<T, const N: usize = 0> = Vec<T>;
31#[cfg(feature = "smallvec")]
32type MaybeSmallVec<T, const N: usize = 8> = SmallVec<[T; N]>;
33
34mod local_prelude {
35 pub use crate::precedenced_rule::PrecedencedRuleBuilder;
36 pub use crate::*;
37 pub use cfg_history::earley;
38 pub use cfg_symbol::Symbol;
39 pub use cfg_symbol::SymbolSource;
40}