Реферат: Структура и реализация макроязыков
.
SetPrevPos;
CursorCharRight;
SetPrevPos;
CursorCharRight;
.
.
.
Макровызовы, внутри макроопределений могут включать несколько уровней. Например, команда Mac2 могла бы быть выполнена внутри другого макроопределения. Фактически, такие средства, как макро-переходы дают возможность любое число раз обращаться к любому макроопределению, и даже к самому себе. Такие вызовы называются рекурсивными.
МАКРООПРЕДЕЛЕНИЯ В МАКРООПРЕДЕЛЕНИЯХ
Мы рассматривали макрокоманды, как обобщенные сокращения для последовательности команд. Представляется разумным разрешить использование в теле макроопределения любых допустимых синтаксисом предложений, в том числе и другие макроопределения.
Необходимо, однако, понимать, что внутреннее макроопределение не будет определено до тех пор, пока не произойдет вызов внешнего макроса. Это - следствие метода реализации макроопределений. Например, пусть пользователь хочет определить группу макроопределений для обращения к подпрограммам с помощью какой-то стандартизированной вызывающей последовательности. Приведенный ниже пример определяет макрокоманду DEFINE, которая при указании в качестве ее операнда имени подпрограммы определяет соответствующий этому имени макрос. Отдельные генерируемые макроопределения получают имена связанных с ними подпрограмм.
Пример 6:
.
.
.
МАСRO DEFINE sub
.......
.......
MACRO sub(param)
......
......
sub(param)
......
......
END
......
......
END