valkyrie-errors 0.0.3

Error types for valkyrie language
Documentation
use std::fmt::{Debug, Display};

use pratt::PrattError;

use crate::ValkyrieError;

impl<I, E> From<PrattError<I, E>> for ValkyrieError
where
    I: Debug,
    E: Into<ValkyrieError> + Display,
{
    fn from(value: PrattError<I, E>) -> Self {
        match value {
            PrattError::UserError(e) => e.into(),
            PrattError::EmptyInput => ValkyrieError::runtime_error("Empty input"),
            PrattError::UnexpectedNilfix(v) => ValkyrieError::runtime_error(format!("Unexpected nilfix: {:?}", v)),
            PrattError::UnexpectedPrefix(v) => ValkyrieError::runtime_error(format!("Unexpected prefix: {:?}", v)),
            PrattError::UnexpectedInfix(v) => ValkyrieError::runtime_error(format!("Unexpected infix: {:?}", v)),
            PrattError::UnexpectedPostfix(v) => ValkyrieError::runtime_error(format!("Unexpected postfix: {:?}", v)),
        }
    }
}