1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use thiserror::Error;
#[derive(Debug, PartialEq, Eq, Error)]
pub enum ParserError {
#[error("Token out of bounds")]
TokenOutOfBounds,
#[error("Memory failure")]
MemoryFailure,
#[error("Unexpected token: received {received} instead of {expected}")]
UnexpectedToken { expected: String, received: String },
#[error("Failed to parse: {message}")]
FailedToParse { message: String },
#[error("Unknown built in: {token}")]
UnknownBuiltIn { token: String },
#[error("Unsupported built in: {token}")]
UnsupportedBuiltIn { token: String },
}
pub type ParserResult<T> = Result<T, ParserError>;