public static void MoveMemory(MemoryBlock memory, AsquellObj to, AsquellObj from) { if (from.Type == AsquellObjectType.RunTimeValue) { if (memory.VariableInMemory(from)) { AsquellObj rawValue = memory.GetRealVariable(from); memory.ModifyVariable(to, rawValue); memory.DeleteVariable(from); return; } else { throw new KeyNotFoundException("Can not find '"+from.Value.ToString()+"' in memory!"); } } throw new ArgumentException("Invalid type for moving memory! First argument must be a variable!"); }
private static NumericObj getNumericObj(AsquellObj obj, MemoryBlock memory) { obj = memory.GetRealVariable(obj); if (obj.Type == AsquellObjectType.Number) return new NumericObj(obj); else return null; }