Skip to main content

Compiler

Struct Compiler 

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

Compiler context.

This exists to support incremental compilation by keeping state and appending code to the image being built, which is useful in REPL scenarios.

Implementations§

Source§

impl Compiler

Source

pub fn new( upcalls: &HashMap<SymbolKey, Rc<dyn Callable>>, global_defs: &[GlobalDef], ) -> Result<Self, Error>

Creates a new compiler instance.

global_defs provides pre-defined global variables visible to the compiled program.

upcalls contains the metadata of all built-in callables that the compiled code can use.

Source

pub fn compile(self, input: &mut dyn Read) -> Result<Image, Error>

Compiles a chunk of code.

Source

pub fn compile_more( &mut self, image: &mut Image, input: &mut dyn Read, ) -> Result<(), Error>

Compiles a chunk of code and appends it to image.

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.