//! Stage S3, block pass: line-oriented machines that turn the flattened marker
//! text into the block-level [`DocTree`](crate::engine::ast::DocTree).
//!
//! [`block`] owns the line dispatcher (headings, lists, indent-pre, horizontal
//! rules, paragraphs) and the master frame loop; [`table`] owns the `{| … |}`
//! machine. The two interlock through an explicit frame stack — table cells
//! contain blocks and blocks contain tables, with no input-controlled
//! recursion anywhere.
pub use parse_blocks;