1pub(crate) mod bracket_balancer;
2pub(crate) mod context;
3pub mod core;
4pub(crate) mod cursor;
5pub(crate) mod diagnostics;
6pub(crate) mod events;
7pub mod expr;
10pub(crate) mod lexer;
11pub(crate) mod recovery;
12pub mod reparse;
13pub mod roxygen;
16pub(crate) mod structural;
17pub(crate) mod tree_builder;
18pub(crate) mod validate;
19
20pub use core::{
21 ParseDiagnostic, ParseOptions, ParseOutput, parse, parse_with_options, reconstruct,
22};
23pub use reparse::{
24 Edit, ReparseKind, Reparsed, apply_edits, diff_edit, edits_produce, map_range_through_edit,
25 map_range_through_edits, reparse, reparse_edits, reparse_edits_with_options,
26 reparse_with_options,
27};
28pub use validate::{has_r_invalid_name, is_single_expression};
29
30#[doc(hidden)]
37pub fn lex_token_count(input: &str) -> usize {
38 lexer::lex_with_md(input, false).len()
39}