#[cfg(test)]
#[macro_use(quickcheck)]
extern crate quickcheck_macros;
#[macro_use]
extern crate function_name;
#[macro_use]
extern crate derive_builder;
extern crate rand;
#[cfg(feature = "build")]
pub mod build;
pub use build::InnerAttributes;
mod config;
pub use config::{
CommonGeneratorConfig, Language, ParserGeneratorConfig, UserTraitGeneratorConfig,
};
#[forbid(missing_docs)]
pub mod grammar;
pub use grammar::{Cfg, Pos, Pr, Rhs, Symbol, SymbolAttribute, Terminal, TerminalKind};
#[forbid(missing_docs)]
pub mod analysis;
pub use analysis::{
CompiledTerminal, GrammarAnalysisError, KTuple, KTupleBuilder, KTuples, KTuplesBuilder,
LR1State, LRAction, LRParseTable, LookaheadDFA, RecursiveNonTerminal, RelatedHint,
calculate_lalr1_parse_table, calculate_lookahead_dfas, detect_left_recursive_non_terminals,
};
#[forbid(missing_docs)]
pub mod conversions;
pub use conversions::{render_dfa_dot_string, render_nt_dot_string, render_par_string};
#[forbid(missing_docs)]
mod error_report;
pub use error_report::ParolErrorReporter;
#[forbid(missing_docs)]
pub mod generators;
pub use generators::{
GrammarConfig, GrammarTypeInfo, LanguageGenerator, ScannerConfig, UserTraitGenerator,
check_and_transform_grammar, generate_lalr1_parser_export_model, generate_lalr1_parser_source,
generate_lexer_source, generate_parser_export_model, generate_parser_export_model_from_grammar,
generate_parser_source, try_format,
};
pub mod parser;
pub use parser::{ParolGrammar, ParolParserError, parse};
#[forbid(missing_docs)]
pub mod test_support;
#[forbid(missing_docs)]
pub mod transformation;
pub use transformation::{augment_grammar, left_factor};
pub mod utils;
pub(crate) use utils::str_vec::StrVec;
pub(crate) use utils::{generate_name, group_by};
pub use utils::{generate_tree_layout, obtain_grammar_config, obtain_grammar_config_from_string};
pub const MAX_K: usize = 10;
pub use parol_runtime;