//! Error handling and diagnostics for sipha parsers.
//!
//! This crate provides:
//! - `ParseError` enum for parse errors
//! - `Expected` type for describing expected tokens
//! - `Diagnostic` and `DiagnosticBuilder` (when diagnostics feature enabled)
//! - Error recovery utilities

pub mod diagnostic;
pub mod error;
pub mod expected;

// Re-export ErrorContext from error module
pub use error::ErrorContext;

/// Prelude module containing commonly used error types.
pub mod prelude {
    #[cfg(feature = "diagnostics")]
    pub use crate::diagnostic::{Diagnostic, DiagnosticBuilder, Level};
    pub use crate::{error::ParseError, expected::Expected};
}

pub use crate::{error::ParseError, expected::Expected};

#[cfg(feature = "diagnostics")]
pub use crate::diagnostic::{Diagnostic, DiagnosticBuilder, Level};
