Итак. Что удалось сделать по константным массивам на данный момент-на конец 2014 года.
1)Константные массивы любой вложенности.
2)Тип элемента - целый типов (включая BYTE), BOOLEAN или CHAR; Все эти типы в С-исходнике становятся целыми константами
3)Если массив состоит из CHAR или BYTE, то элементы можно указывать либо как перечень символов в скобках ('f',20X,"7"), либо в виде строки "ab" без лишних скобок. Но строка обязательно подразумевает в конце символ 0Х, для него тоже должно быть место в массиве!
Ставить в кавычках меньше символов можно, недостающие будут приняты за символ 0Х. В частности пустую строку "" можно указывать вместо любого массива ARRAY N CHAR (или ARRAY N BYTE).
Примеры
Код: "OBERON"
TYPE MsgStr= ARRAY 3,7 OF CHAR;
CONST Way = MsgStr("Hello!" , "Error" , "Try" );
TYPE Labirint = ARRAY 3 OF ARRAY 16 OF CHAR;
CONST Map = Labirint("...o..##...oo12", "...o..##...oo35", "...o..##...oo78");
теперь обрабатываются.
Пока не сделано:возможность опускать размер массива, чтобы Ofront автоматически его рассчитал по количеству элементов и указание $ на фиксированный символьный массив. Чую, что тут опять полезут проблемы с путаницей "символ или строка".
Не могу утверждать, что совсем нет ошибок. Так же есть куда развивать реализацию в смысле эффективности. Но то что сейчас есть уже весьма полезно.
Так что, рекомендую применять в текущих проектах, заодно и протестируем.
2
Zorko Архив с модулями вышлю личкой.