Error

Enum Error 

Source
pub enum Error<'source> {
    Lexer(Error<'source>),
    MissingToken {
        expected: &'static [Lexigram],
        actual: Option<Token<'source>>,
    },
    ExpectedExpression(Option<Token<'source>>),
    ExpectedStatementOrExpression(Token<'source>),
    UnexpectedCloseParen(Token<'source>),
    IncompleteExpression,
}

Variants§

§

Lexer(Error<'source>)

An invalid token was encountered.

The ast interprets an erroneous token as None, which may lead to further error diagnostics.

See: espy_eyes::Error

§

MissingToken

Fields

§expected: &'static [Lexigram]

Must contain at least one element.

§actual: Option<Token<'source>>

A None token may have been caused by a Lexer error.

§

ExpectedExpression(Option<Token<'source>>)

Occurs when an expression is required, but a token that ends expression context was immediately encountered.

§

ExpectedStatementOrExpression(Token<'source>)

Occurs when a “root” Block encounters something which is not a statement or expression.

§

UnexpectedCloseParen(Token<'source>)

Occurs when parenthesis in an expression are unbalanced.

Error::IncompleteExpression serves as the opening-parenthesis equivalent.

§

IncompleteExpression

This error should only ever occur on Expressions, so positioning can be derived from surrounding context.

Trait Implementations§

Source§

impl<'source> Debug for Error<'source>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'source> PartialEq for Error<'source>

Source§

fn eq(&self, other: &Error<'source>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'source> Eq for Error<'source>

Source§

impl<'source> StructuralPartialEq for Error<'source>

Auto Trait Implementations§

§

impl<'source> Freeze for Error<'source>

§

impl<'source> RefUnwindSafe for Error<'source>

§

impl<'source> Send for Error<'source>

§

impl<'source> Sync for Error<'source>

§

impl<'source> Unpin for Error<'source>

§

impl<'source> UnwindSafe for Error<'source>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.