mathhook_core/parser/
error.rs

1/// Parsing error types
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum ParseError {
6    InvalidSyntax(String),
7    UnknownFunction(String),
8    UnbalancedParentheses,
9    InvalidNumber(String),
10    EmptyInput,
11    UnsupportedOperation(String),
12    SyntaxError(String),
13}
14
15impl std::fmt::Display for ParseError {
16    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
17        match self {
18            ParseError::InvalidSyntax(msg) => write!(f, "Invalid syntax: {}", msg),
19            ParseError::UnknownFunction(name) => write!(f, "Unknown function: {}", name),
20            ParseError::UnbalancedParentheses => write!(f, "Unbalanced parentheses"),
21            ParseError::InvalidNumber(num) => write!(f, "Invalid number: {}", num),
22            ParseError::EmptyInput => write!(f, "Empty input"),
23            ParseError::UnsupportedOperation(op) => write!(f, "Unsupported operation: {}", op),
24            ParseError::SyntaxError(msg) => write!(f, "Syntax error: {}", msg),
25        }
26    }
27}
28
29impl std::error::Error for ParseError {}