pub enum Expr {
Nil,
Bool(bool),
Int(i64),
Float(String),
Str(String),
Var(String),
Unary(UnOp, Box<Expr>),
Binary(BinOp, Box<Expr>, Box<Expr>),
Index(Box<Expr>, Box<Expr>),
}Variants§
Nil
Bool(bool)
Int(i64)
Float(String)
Str(String)
Var(String)
Unary(UnOp, Box<Expr>)
Binary(BinOp, Box<Expr>, Box<Expr>)
Index(Box<Expr>, Box<Expr>)
Implementations§
Source§impl Expr
impl Expr
pub fn var(name: impl Into<String>) -> Self
pub fn stack_var(idx: usize) -> Self
pub fn global_var() -> Self
pub fn global_table_var() -> Self
pub fn local_table_var() -> Self
pub fn index(base: Expr, idx: Expr) -> Self
pub fn unary(op: UnOp, a: Expr) -> Self
pub fn binary(op: BinOp, a: Expr, b: Expr) -> Self
fn precedence(&self) -> u8
fn mark_stack_var(name: &str, used_s: &mut BTreeSet<usize>)
pub fn render(&self, used_s: &mut BTreeSet<usize>, parent_prec: u8) -> String
pub fn const_eq_zero(&self) -> Option<bool>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.