//! Core parsing functionality for the Wasot markup language
//!
//! This module provides the fundamental parsing capabilities for Wasot documents,
//! including tokenization, meta-line detection, block parsing, and document structure.

pub mod arguments;
pub mod block;
pub mod document_id_index;
pub mod document_parser;
pub mod element_parser;
pub mod facade;
pub mod footnote_parser;
pub mod interceptor;
pub mod link_parser;
#[allow(clippy::module_inception)]
pub mod parser;
pub mod quote_aware_tokenizer;
pub mod quoted_text;
pub mod simple_tokenizer;
pub mod tokenizer;

#[cfg(test)]
mod honey_badger_tests;

#[cfg(test)]
mod fuzz_tests;

// Re-export commonly used types
pub use arguments::ParsedArguments;
pub use block::{Block, Element, Text};
pub use document_parser::DocumentParser;
pub use element_parser::ElementParser;
pub use facade::WasotParser;
pub use footnote_parser::{parse_footnotes, Footnote};
pub use interceptor::{FootnoteInterceptor, InterceptorChain};
pub use link_parser::{detect_links, parse_link};
pub use parser::{
    extract_line_type, is_meta_line, split_into_parts, split_into_parts_and_trim, Id, Link,
    MetaLine, QuotedString,
};
