use thiserror::Error;
#[derive(Debug, PartialEq, Eq, Clone, Error)]
pub enum CompilerError {
#[error("Unknown unary operator: {operator}")]
UnknownUnaryOperator { operator: String },
#[error("Unknown binary operator: {operator}")]
UnknownBinaryOperator { operator: String },
#[error("Argument not found for builtin {builtin} at index {index}")]
ArgumentNotFound { builtin: String, index: usize },
}
pub(crate) type CompilerResult<T> = Result<T, CompilerError>;