Вторая схема была напечатана, и по ней в старом редакторе для ДРОНА с нуля рисовалась схема, по которой должен генерироваться код. Были сделаны уточнения для проверки ошибочных ситуаций.
Замечание: имена переменных местами не совсем правильны, но с имеющимися ср-ми их переделывать трудоёмко.
Код писался под КП/ББ (декларативные/маршрутные части у Компонентного Паскаля и Активного Оберона почти одинаковы).
Вложение:
deldir.gif [ 31.17 КБ | Просмотров: 30570 ]
Вложение:
deldir.7z [1.89 КБ]
Скачиваний: 943
Сгенерированный код:
Вложение:
deldir.Mod.txt [2.78 КБ]
Скачиваний: 1244
В него нужно внести два исправления - добавить слово
CONST перед объявлением констант
Dr000VtkExit...(в АО CONST не обязателен?) и переместить процедуру Test в конец модуля (мне не понятен порядок, по которому перебираются схемы с листа). Надеюсь, уважаемый Ярослав Романченко найдёт время пояснить ситуацию.
Итоговый модуль ББ (с исп-ми и командером для вызова Test):
Вложение:
deldir.odc [3.76 КБ]
Скачиваний: 1238
С этим схемами провозился часа 2-3 (правка схемы->генерация кода->перенос с испр-ми в ББ->компиляция->правка ошибок текстового кода в схеме->...). Сколько бы потратилось время с идеальным инструментом, сказать не возьмусь, т.к. пока трудно представить, как он устроен.
После (первой) удачной компиляции, код выполняется правильно (сужу по результатам нескольких тестов). Ест-но, могу ошибаться.
Положительный опыт: почувствовал, что удобнее - быстрее чем в тексте писать заготовки IF THEN ELSE и т.п. (даже с F5) и
искать куда ткнуть текстовый курсор/бегать туда сюда кл-ми кур-ра при правках, создавать кусочек схемы-слепыша (иконы быстро натыкиваются) и
место ввода текстовых операторов видно лучше и проще выбрать. Наверно, не особо понятно, но это, имхо, надо скорее прочувствовать самостоятельно...
Замечание: первая схема не совсем правильна с т.з. ДРАКОНА. Вот более правильная схема, где выполнена "пересадка лианы" и лишние блоки INC(cf) и INC(cd) убраны:
Вложение:
deldir.right.gif [ 30.29 КБ | Просмотров: 30567 ]
Вложение:
deldir.right.7z [1.88 КБ]
Скачиваний: 955
Но по этой схеме, если не ошибся, генерируется не правильный код... Снова прошу Ярослава Романченко прокомментировать ситуацию, по-возможности.