Типичный разбор строк.
Я бы сказал, удалите ссылку на элемент, если у вас нет нескольких списков.Затем добавьте escape-символ.
Печать элементов: # item # 0 #, # item # 2,% n-1%, "," # и # item #% n% #
Другой способ: у нас есть # item # 0 # и% n-1% others # item # 2,% n-1%, "" # и # item #% n% #
Это было бы намного прощедля анализа.
Все, что находится между%, является вычислением, # обозначает ссылку.Если ссылка на список, второй и третий # заключают индекс.Запятая указывает на диапазон.Вторая запятая указывает на символ разделения.
Добавление хеш-таблицы, которая преобразует строки пользователя в фактические ссылки.Получите все, на что пользователь может ссылаться из того же базового класса, или попросите все реализовать интерфейс.
Найдите ваш escape-символ, если это ссылка на массив, посмотрите, есть ли еще этот escapeсимвол, если вы найдете запятую перед третьим escape-символом, у вас есть диапазон, вторая запятая и разделитель элементов.
Тогда вы можете просто токенизировать строку вместо интерпретации скобок.