Trait Compile

Source
pub trait Compile {
    // Required method
    fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>;
}
Expand description

Trait for types that can be compiled into bytecode Instructions.

The compiler is responsible for converting a CalcScript abstract syntax tree into a bytecode representation that can be executed by the Vm. The available instructions are defined in the InstructionKind enum.

Required Methods§

Source

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Compiles the type into a sequence of Instructions.

Implementations on Foreign Types§

Source§

impl Compile for Expr

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Literal

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Assign

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Binary

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Block

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Of

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Then

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Call

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for For

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for If

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Index

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Break

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Continue

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Loop

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Product

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Range

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Return

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Stmt

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Sum

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for Unary

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl Compile for While

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Source§

impl<T: Compile> Compile for &T

Source§

fn compile(&self, compiler: &mut Compiler) -> Result<(), Error>

Implementors§