mod fmt;
use super::{SourcePos, Token, TokenKind};
#[derive(Debug)]
pub enum Expected {
Token(TokenKind),
Message(&'static str),
}
#[derive(Debug)]
pub enum Error {
UnexpectedEof,
Unexpected { token: Token, expected: Expected },
EmptyCommandBlock { pos: SourcePos },
InvalidEnvAssign,
}
impl Error {
pub fn unexpected_eof() -> Self {
Self::UnexpectedEof
}
pub fn unexpected(token: Token, expected: TokenKind) -> Self {
Self::Unexpected { token, expected: Expected::Token(expected) }
}
pub fn unexpected_msg(token: Token, message: &'static str) -> Self {
Self::Unexpected { token, expected: Expected::Message(message) }
}
pub fn empty_command_block(pos: SourcePos) -> Self {
Self::EmptyCommandBlock { pos }
}
}
impl std::error::Error for Error {}