use thiserror::Error;
use crate::tokens::Token;
#[derive(Debug, Error)]
pub enum SqlglotError {
#[error("Tokenizer error at position {position}: {message}")]
TokenizerError { message: String, position: usize },
#[error("Parser error: {message}")]
ParserError { message: String },
#[error("Unexpected token: {token:?}")]
UnexpectedToken { token: Token },
#[error("Unsupported feature for dialect: {0}")]
UnsupportedDialectFeature(String),
#[error("Internal error: {0}")]
Internal(String),
}
pub type Result<T> = std::result::Result<T, SqlglotError>;