   TheFunction = Builder.insertBlock.parent
 
   # Register all variables and emit their initializer.
-  for VarName, Init of @VarNames
+  for VarName, Init of @varNames
     # Emit the initializer before adding the variable to scope, this prevents
     # the initializer from referencing the variable itself, and permits stuff
     # like this:

    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
