//! The flat event stream the parser emits.
//!
//! The grammar never touches the tree directly: it pushes [`Event`]s, and a separate pass
//! ([`crate::builder::build_tree`]) replays them into a `rowan` `GreenNodeBuilder`, re-inserting
//! trivia (whitespace/comments) so the resulting CST is byte-exact-lossless.
use SyntaxKind;
pub