Struct tokay::compiler::Compiler

source ·
pub struct Compiler {
    pub debug: u8,
    /* private fields */
}
Expand description

Tokay compiler instance

A tokay compiler initializes a Tokay parser for later re-use when called multiple times.

The compiler works in a mode so that statics, variables and constants once built won’t be removed and can be accessed on later calls.

Fields§

§debug: u8

Implementations§

source§

impl Compiler

source

pub fn new() -> Self

Initialize a new compiler.

The compiler serves functions to compile Tokay source code into programs executable by the Tokay VM. It uses an intermediate language representation to implement derives of generics, statics, etc.

The compiler struct serves as some kind of helper that should be used during traversal of a Tokay program’s AST. It therefore offers functions to open particular blocks and handle symbols in different levels. Parselets are created by using the parselet_pop() function with provided parameters.

source

pub fn compile(&mut self, reader: Reader) -> Result<Option<Program>, Vec<Error>>

Compile a Tokay program from a Reader source into the compiler.

source

pub fn compile_from_str( &mut self, src: &str ) -> Result<Option<Program>, Vec<Error>>

Shortcut to compile a Tokay program from a &str into the compiler.

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>,

§

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>,

§

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.