Войти на сайт ( )
[Вход] [Регистрация]
Компьютеры » Программирование » Структура и реализация макроязыков [Gaist-Endruy]
[Обновить]
[ Ответить ]
[Добавить в закладки]
Страница: 1, 2, 3, 4, 5, 6 ... 12, 13, 14
Gaist-Endruy ( off )
( 09:33 24-03-2009 )
Иногда возникают потребности изменять порядок команд макрорасширения внутри макроса.
Рассмотрим следующую программу:

Gaist-Endruy ( off )
( 09:33 24-03-2009 )
Пример 4:
.
.
.
ScrollScreenLeft(1);
LiteralChar('-');
.
.
.
ScrollScreenDown;
ScrollScreenLeft(2);
LiteralChar('*');
.
.
.

Gaist-Endruy ( off )
( 09:33 24-03-2009 )
В этом примере не только параметры, но и количество команд - переменная величина. Эта программа может быть записана следующим образом:

Gaist-Endruy ( off )
( 09:33 24-03-2009 )
.
.
.
MACRO Mac1(p1,left,chr)
IF p1==1 THEN
ScrollScreenDown;
ENDIF
ScrollScreenLeft(2);
LiteralChar('*');
END
.
.
.
Mac1(1,2,'-')
.
.
.
Mac1(0,1,'*')
.
.
.

Gaist-Endruy ( off )
( 09:33 24-03-2009 )
.
.
.
ScrollScreenLeft(1);
LiteralChar('-');
.
.
.
ScrollScreenDown;
ScrollScreenLeft(2);
LiteralChar('*');
.
.
.

Gaist-Endruy ( off )
( 09:34 24-03-2009 )
Комбинация IF...THEN...ELSE является макрометками или символами следования и не появляются в выходном тексте макропроцессора. В макроязыке также могут быть предусмотрены псевдокоманды условного и безусловного перехода на псевдо-метку, с которой макропроцессор продолжит обработку текста программы.

Gaist-Endruy ( off )
( 09:34 24-03-2009 )
Точно так же, как и в случае выполнения программы, операторы переходов служат для указания выполнения операторов программы, операторы макро-переходов служат для указания порядка компиляции текста программы.

Gaist-Endruy ( off )
( 09:34 24-03-2009 )
Это дает возможность в процессе расширения получать конкретные варианты последовательностей команд, соответствующие данному случаю применения макрокоманды. Выполнение переходов и проверок внутри выполняемого кода увеличивает его размер и время выполнения, в то время, как проверка и переходы в макросах происходят на стадии компиляции и поэтому не требуют затрат времени при выполнении кода.

Gaist-Endruy ( off )
( 09:34 24-03-2009 )
Эта возможность избирательной выборки нужных частей текста является одним из самых мощных средств в системном программировании.

Gaist-Endruy ( off )
( 09:34 24-03-2009 )
МАКРОВЫЗОВЫ ВНУТРИ МАКРООПРЕДЕЛЕНИЯ

Далее »
« Назад
Страница: 1, 2, 3, 4, 5, 6 ... 12, 13, 14
[ Ответить ]
[Обновить]
[Добавить в закладки]
Компьютеры » Программирование » Структура и реализация макроязыков [Gaist-Endruy]
На главную
© s.sasisa.me