pub fn compile_expr(&mut self, expr: CExpr<'e>) -> Result<CExpr<'e>> {
        let mut env = FunctionEnvs::new();

        env.start_function(self);
        debug!("Interpreting: {}", expr);
        let new_expr = self.compile(expr, &mut env)?;
        env.end_function(self);
        Ok(new_expr
            .map(|expr| expr.into_local(self.allocator))
            .unwrap_or(expr))
    }
/// Compiles an expression to a zero argument function which can be directly fed to the
/// interpreter
Compiles an expression to a zero argument function which can be directly fed to the
interpreter
Compiles an expression to a zero argument function which can be directly fed to the interpreter
pub fn compile_expr(&mut self, expr: CExpr<'e>) -> Result<CExpr<'e>> {
        let mut env = FunctionEnvs::new();
        env.start_function(self);
        debug!("Interpreting: {}", expr);
        let new_expr = self.compile(expr, &mut env)?;
        env.end_function(self);
        Ok(new_expr
            .map(|expr| expr.into_local(self.allocator))
            .unwrap_or(expr))
    }
pub fn compile_expr ( & mut self , expr : CExpr < ' e > ) -> Result < CExpr < ' e > > { let mut env = FunctionEnvs :: new ( ) ; env . start_function ( self ) ; debug ! ( " " expr ) ; let new_expr = self . compile ( expr , & mut env ) ? ; env . end_function ( self ) ; Ok ( new_expr . map ( | expr | expr . into_local ( self . allocator ) ) . unwrap_or ( expr ) ) }
Compiles an expression to a zero argument function which can be directly fed to the
interpreter
Compiles an expression to a zero argument function which can be directly fed to the interpreter
&mut self
expr
CExpr<'e>
&mut self
expr
CExpr<'e>