public IValue Eval() { var size = _elements.Count; var array = new ArrayValue(size); for (var i = 0; i < size; i++) { array.Set(i, _elements[i].Eval()); } return(array); }
private ArrayValue CreateArray(IValue[] args, int index) { var size = (int)args[index].AsNumber(); var last = args.Length - 1; var array = new ArrayValue(size); if (index == last) { for (var i = 0; i < size; i++) { array.Set(i, NumberValue.ZERO); } } else if (index < last) { for (int i = 0; i < size; i++) { array.Set(i, CreateArray(args, index + 1)); } } return(array); }