slash_lang/parser/
errors.rs1use thiserror::Error;
2
3#[derive(Debug, Clone, PartialEq, Error)]
4pub enum ParseError {
5 #[error("invalid bang suffix at position {position}: {token:?} (use ! / !! / !!! as a trailing suffix, not a standalone token)")]
6 InvalidBang { token: String, position: usize },
7
8 #[error("digits not allowed in command name at position {position}: {token:?} (only /test-family commands may contain digits)")]
9 InvalidDigits { token: String, position: usize },
10
11 #[error("missing operator at position {position}: {token:?} (two commands in sequence require | / |& / && / ||)")]
12 MissingOperator { token: String, position: usize },
13
14 #[error("invalid redirection at position {position}: {token:?}")]
15 InvalidRedirection { token: String, position: usize },
16
17 #[error("malformed builder chain at position {position}: {token:?} (check for unmatched parentheses)")]
19 MalformedChain { token: String, position: usize },
20
21 #[error("invalid suffix at position {position}: {token:?} (double ?? is not allowed)")]
23 InvalidSuffix { token: String, position: usize },
24}