1#[cfg(test)]
5#[macro_use(quickcheck)]
6extern crate quickcheck_macros;
7
8#[macro_use]
9extern crate function_name;
10
11#[macro_use]
12extern crate derive_builder;
13
14extern crate rand;
15
16#[cfg(feature = "build")]
17pub mod build;
18pub use build::InnerAttributes;
19
20mod config;
21pub use config::{
22 CommonGeneratorConfig, Language, ParserGeneratorConfig, UserTraitGeneratorConfig,
23};
24
25#[forbid(missing_docs)]
29pub mod grammar;
30
31pub use grammar::{Cfg, Pos, Pr, Rhs, Symbol, SymbolAttribute, Terminal, TerminalKind};
32
33#[forbid(missing_docs)]
37pub mod analysis;
38
39pub use analysis::{
40 CompiledTerminal, GrammarAnalysisError, KTuple, KTupleBuilder, KTuples, KTuplesBuilder,
41 LR1State, LRAction, LRParseTable, LookaheadDFA, RecursiveNonTerminal, RelatedHint,
42 calculate_lalr1_parse_table, calculate_lookahead_dfas, detect_left_recursive_non_terminals,
43};
44
45#[forbid(missing_docs)]
49pub mod conversions;
50
51pub use conversions::{render_dfa_dot_string, render_nt_dot_string, render_par_string};
52
53#[forbid(missing_docs)]
57mod error_report;
58pub use error_report::ParolErrorReporter;
59
60#[forbid(missing_docs)]
64pub mod generators;
65pub use generators::{
66 GrammarConfig, GrammarTypeInfo, LanguageGenerator, ScannerConfig, UserTraitGenerator,
67 check_and_transform_grammar, generate_lalr1_parser_export_model, generate_lalr1_parser_source,
68 generate_lexer_source, generate_parser_export_model, generate_parser_export_model_from_grammar,
69 generate_parser_source, try_format,
70};
71
72pub mod parser;
76pub use parser::{ParolGrammar, ParolParserError, parse};
77
78#[forbid(missing_docs)]
82pub mod test_support;
83
84#[forbid(missing_docs)]
88pub mod transformation;
89pub use transformation::{augment_grammar, left_factor};
90
91pub mod utils;
95pub(crate) use utils::str_vec::StrVec;
96pub(crate) use utils::{generate_name, group_by};
97pub use utils::{generate_tree_layout, obtain_grammar_config, obtain_grammar_config_from_string};
98
99pub const MAX_K: usize = 10;
105
106pub use parol_runtime;