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