xgrammar/parser/
ebnf_error.rs1use super::{lexer_error::LexerError, parse_error::ParserError};
4
5#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
7pub enum EbnfError {
8 #[error(transparent)]
10 Lexer(#[from] LexerError),
11 #[error(transparent)]
13 Parser(#[from] ParserError),
14 #[error("{0}")]
16 Normalization(String),
17}
18
19impl EbnfError {
20 #[must_use]
22 pub fn message(&self) -> &str {
23 match self {
24 EbnfError::Lexer(e) => &e.message,
25 EbnfError::Parser(e) => &e.message,
26 EbnfError::Normalization(message) => message,
27 }
28 }
29}