zen_expression/compiler/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, PartialEq, Eq, Clone, Error)]
4pub enum CompilerError {
5    #[error("Unknown unary operator: {operator}")]
6    UnknownUnaryOperator { operator: String },
7
8    #[error("Unknown binary operator: {operator}")]
9    UnknownBinaryOperator { operator: String },
10
11    #[error("Argument not found for function {function} at index {index}")]
12    ArgumentNotFound { function: String, index: usize },
13
14    #[error("Unexpected error node")]
15    UnexpectedErrorNode,
16
17    #[error("Unknown function `{name}`")]
18    UnknownFunction { name: String },
19
20    #[error("Invalid function call `{name}`: {message}")]
21    InvalidFunctionCall { name: String, message: String },
22
23    #[error("Invalid  method call `{name}`: {message}")]
24    InvalidMethodCall { name: String, message: String },
25
26    #[error("Unexpected assigned object")]
27    UnexpectedAssignedObject,
28}
29
30pub(crate) type CompilerResult<T> = Result<T, CompilerError>;