// Inline-level grammar modules
//
// This module contains CommonMark inline element parsers plus a small set of
// supported extensions.
// Each parser extracts a specific inline construct and returns nom IResult.
//
// Phase 4: Inline grammar module extraction - IN PROGRESS

// Re-export the Span type for use by all inline modules
pub use nom_locate::LocatedSpan;
/// Inline grammar span type preserving location information.
pub type Span<'a> = LocatedSpan<&'a str>;

// Individual inline grammar modules
pub mod cm_autolink;
pub mod cm_backslash_escape;
pub mod cm_code_span;
pub mod cm_emphasis;
pub mod cm_image;
pub mod cm_inline_html;
pub mod cm_line_breaks;
pub mod cm_link;
pub mod cm_strong;
pub mod cm_strong_emphasis;
pub mod gfm_strikethrough;
pub mod marco_dash_strikethrough;
pub mod marco_mark;
pub mod marco_subscript;
pub mod marco_subscript_arrow;
pub mod marco_superscript;
pub mod math_display;
pub mod math_inline;

// Re-export all parser functions for convenience
pub use cm_autolink::autolink;
pub use cm_backslash_escape::backslash_escape;
pub use cm_code_span::code_span;
pub use cm_emphasis::emphasis;
pub use cm_image::image;
pub use cm_inline_html::inline_html;
pub use cm_line_breaks::{hard_line_break, soft_line_break};
pub use cm_link::link;
pub use cm_strong::strong;
pub use cm_strong_emphasis::strong_emphasis;
pub use gfm_strikethrough::strikethrough;
pub use marco_dash_strikethrough::dash_strikethrough;
pub use marco_mark::mark;
pub use marco_subscript::subscript;
pub use marco_subscript_arrow::subscript_arrow;
pub use marco_superscript::superscript;
pub use math_display::display_math;
pub use math_inline::inline_math;
