1#![warn(missing_debug_implementations)]
2#![warn(missing_docs)]
3#![warn(trivial_casts, trivial_numeric_casts)]
4#![warn(unused_qualifications)]
5#![warn(deprecated_in_future)]
6#![warn(unused_lifetimes)]
7#![allow(clippy::boxed_local)]
8#![forbid(unsafe_code)]
9#![doc = include_str!("../README.md")]
1011/*!
12A Ruby parser written in Rust.
1314Uses bison under the hood.
15*/
1617// Re-exporting lib_ruby_parser_ast
18/// Module with all known node types
19pub use lib_ruby_parser_ast::nodes;
20pub use lib_ruby_parser_ast::Bytes;
21pub use lib_ruby_parser_ast::DiagnosticMessage;
22pub use lib_ruby_parser_ast::Loc;
23pub use lib_ruby_parser_ast::Node;
2425mod loc_ext;
26pub use loc_ext::LocExt;
2728/// Module with everything related to output of the Parser, but not related to AST,
29/// like `Comment`, `Input`, `Decoder`
30pub mod source;
3132#[allow(clippy::collapsible_if)]
33#[allow(clippy::collapsible_else_if)]
34mod lexer;
3536pub use lexer::Lexer;
3738mod static_environment;
39pub use static_environment::StaticEnvironment;
4041pub(crate) mod parse_value;
4243mod parser_options;
44pub use parser_options::ParserOptions;
4546mod parser_result;
47pub use parser_result::ParserResult;
4849mod parser;
50pub use parser::Parser;
5152mod builder;
53pub(crate) use builder::Builder;
5455mod current_arg_stack;
56pub(crate) use current_arg_stack::CurrentArgStack;
5758mod max_numparam_stack;
59pub(crate) use max_numparam_stack::MaxNumparamStack;
6061mod variables_stack;
62pub(crate) use variables_stack::VariablesStack;
6364mod error;
65pub use error::{Diagnostic, ErrorLevel};
6667pub(crate) mod maybe_byte;
6869mod lex_state;
70pub use lex_state::lex_states;
71pub use lex_state::LexState;
7273mod token_buf;
74pub(crate) use token_buf::TokenBuf;
7576mod reserved_words;
77pub use reserved_words::{reserved_word, ReservedWord};
7879mod stack_state;
80pub(crate) use stack_state::StackState;
8182pub(crate) mod str_term;
8384mod context;
85pub(crate) use context::SharedContext;
8687/// Module to perform recursive traversing
88pub use lib_ruby_parser_ast::traverse;
8990mod token;
91pub use token::Token;
9293#[cfg(test)]
94mod tests;