Итак, предлагаю такой вариант:
Структура
Общие
Список_и/или_описания_систем
Список_функций
Значение
Личные
Список_и/или_описания_систем
Список_функций
Значение
При этом разрешить использовать варианты для Общие и Личные как с двоеточием так и без (предыдущий опыт показал, что они постоянно забываются к написанию).
Дальше, касательно описания самих систем, предлагается такой вариант:
Общие
Х=5
Контакты это spisok.Список
Добавить_контакт это функция
Значение='Привет мир!'
Организация
(Название='',
ИНН=0, КПП=0,
ОГРН это Деньги.данные_по_ОГРН)
Здесь первое обозначение это система Х с инициализированным значением, равным 5. По сути вырожденная система, аналог обычных переменных. Думаю, что через запятую позволительно упоминать несколько таких объявлений.
- Контакт здесь описание системы, тягаемой из внешнего модуля.
- Добавить_контакт здесь идет объявление функции.
- Значение это поле системы, просто строка (именно оно инициализировалось у Х).
- Организация здесь аналог record (или struct в с++) - создается система Организация с перечисленными подсистемами (название, ИНН, КПП и ОГРН, последнее тягается из внешнего модуля Деньги).
Что мне самому не очень нравится - если Добавить_контакт будет иметь параметры, то описание будет очень сильно напоминать описание системы Организация и может появиться путаница.