pub enum Expr {
Ident(String),
Const(i64),
Func(Box<Expr>, Box<Expr>),
Binary(Box<BinaryExpr>),
Unary(Box<UnaryExpr>),
}Expand description
Assembly uses constant expressions to avoid copying magic numbers around. Expr represents these constant expressions.
The run method evaluates the constant expression. The get_2bytes, get_byte and get_bit_index evaluate the constant expression but also convert to a specific low level type needed by instructions.
Variants§
Implementations§
Source§impl Expr
impl Expr
pub fn binary(left: Expr, operator: BinaryOperator, right: Expr) -> Expr
pub fn unary(expr: Expr, operator: UnaryOperator) -> Expr
pub fn get_words( &self, constants: &dyn Context, ) -> Result<[u8; 2], ExprRunError>
pub fn get_double_words( &self, constants: &dyn Context, ) -> Result<[u8; 4], ExprRunError>
pub fn get_quad_words( &self, constants: &dyn Context, ) -> Result<[u8; 8], ExprRunError>
pub fn get_byte(&self, constants: &dyn Context) -> Result<u8, ExprRunError>
pub fn get_bit_index(&self, constants: &dyn Context) -> Result<u8, ExprRunError>
pub fn run(&self, constants: &dyn Context) -> Result<i64, ExprRunError>
Trait Implementations§
impl Eq for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnwindSafe for Expr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more