protected override Variable Evaluate(string data, ref int from) { // Първо проверете дали този елемент е част от масив: if (from - 1 < data.Length && data[from - 1] == Constants.START_ARRAY) { // Даден е индекс - може да е за елемент от сорта. if (_value.Tuple == null || _value.Tuple.Count == 0) { throw new ArgumentException("Няма нищо за индекса"); } Variable index = Parser.LoadAndCalculate(data, ref from, Constants.END_ARRAY_ARRAY); Utils.CheckInteger(index); if (index.Value < 0 || index.Value >= _value.Tuple.Count) { throw new ArgumentException("Неправилен индекс [" + index.Value + "] за малкия размер " + _value.Tuple.Count); } Utils.MoveForwardIf(data, ref from, Constants.END_ARRAY); return(_value.Tuple[(int)index.Value]); } return(_value); }