     NamedValues[VarName] = Alloca
   
   # Codegen the body, now that all vars are in scope.
-  BodyVal = Body.Codegen()
+  BodyVal = @body.Codegen()
   if not BodyVal then return null
   
   # Pop all our variables from scope.
-  for vn, i in VarNames
+  for vn, i in @varNames
     NamedValues[vn] = OldBindings[i]
 
   # Return the body computation.

    Body = @ParseExpression()
    if not Body then return null
    
    return new @VarExprAST(VarNames, Body)

  # primary
  #   ::= identifierexpr

  if @op == '='
    # Assignment requires the LHS to be an identifier.
    if @lhs not instanceof VariableExprAST
      throw new Error("destination of '=' must be a variable")
    # Codegen the RHS.
    Val = @rhs.Codegen()
    if not Val then return null

    # Look up the name.
    Variable = NamedValues[@lhs.name]
    if not Variable then throw new Error("Unknown variable name")

    Builder.createStore(Val, Variable)
    return Val
