Program

Struct Program 

Source
pub struct Program { /* private fields */ }
Expand description

This structure is guaranteed to contain valid bytecode and debug info because it may only be constructed from source.

Implementations§

Source§

impl Program

Source

pub fn eval<'host>(&self) -> Result<Value<'host>, Error>

§Errors

Returns an error if the evaluating the program’s root block results in an error

Source

pub fn debug_info(&self) -> &[u8]

Source

pub fn locate_runtime_error(&self, e: &Error) -> Option<(usize, usize)>

Source

pub fn from_str_with_diagnostics<'source>( s: &'source str, for_each: impl FnMut(Diagnostic), ) -> Result<Self, CompilerError<'source>>

Compiles an espy program after iterating through all diagnostics.

§Errors

Returns an error if any error diagnostics were found in the ast. Displaying this error is probably uneccessary if error diagnostics were already shown to the user.

Trait Implementations§

Source§

impl Debug for Program

Source§

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

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

impl<'source> TryFrom<&'source str> for Program

Source§

type Error = CompilerError<'source>

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

fn try_from(s: &'source str) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.