[][src]Function inc::emit::binding

pub fn binding(s: &mut State, bindings: &[(String, AST)], body: &[AST]) -> ASM

Emit code for a let expression

A new environment is created to hold the bindings, which map the name to a stack index. All the space allocated by the let expression for local variables can be freed at the end of the body. This implies the si stays the same before and after a let expression. There is no need to keep track of the amount of space allocated inside the let expression and free it afterwards.