public StackObjectNumber(StackObjectNumber x)
 {
     this.value = x.value;
 }
 /// <summary>
 /// Sets a variable. Certain variables should not be changed until set.
 /// So it copies them.
 /// </summary>
 /// <param name="varName"></param>
 public void SetVariable(string varName)
 {
     #region Creates a copy of certain types of Variables.
     if (stack.Peek() is StackObjectBoolean)
     {
         variables[varName] = new StackObjectBoolean(((StackObjectBoolean)stack.Peek()));
     }
     else
     if (stack.Peek() is StackObjectNumber)
     {
         variables[varName] = new StackObjectNumber(((StackObjectNumber)stack.Peek()));
     }
     else
     if (stack.Peek() is StackObjectString)
     {
         variables[varName] = new StackObjectString(((StackObjectString)stack.Peek()));
     }
     #endregion
     else
     {
         variables[varName] = stack.Peek();
     }
 }
        private void BuildStackNumber()
        {
            StackObjectNumber b = new StackObjectNumber((float)variablesToBuild.Peek()["Value"]);
            buildStack.Push(b);

            currentClass.Pop();
            variablesToBuild.Pop();
        }