Cтраница 1
Модельные предложения являются прообразами будущих команд базисного языка, составляющих макрорасширение. [1]
Обработка модельного предложения второго уровня генерации заключается в замене признака вторичной генерации на признак предложения генерации. Полученное предложение генерации не выполняется, но помещается в выходной текст. [2]
В модельных предложениях макроопределения ключевые параметры применяются точно так же, как и позиционные, но значения им присваиваются по-другому. Те параметры, ключи которых присутствуют в списке операндов, приобретают значения, указанные в соответствующих операндах. Все остальные ключевые операнды сохраняют свои априорные значения. [3]
Поле имени модельного предложения может быть пробелом, содержать ассемблерное имя, параметр, а также конкатенации ( соединения) параметров с последовательностями букв и цифр и другими параметрами. Правило конкатенации состоит в следующем. Соединение параметра с параметром и присоединение последовательности символов к параметру слева от последнего производится непосредственным объединением их текстов. Если же мы хотим присоединить последовательность букв или цифр ( или других символов в конкатенациях на поле операндов) к параметру справа, между ним и присоединенным текстом нужно поместить точку. [4]
Для записи модельных предложений второго уровня генерации изменяется семантика символа §, который может применяться только для идентификации переменных второго уровня генерации. [5]
Метка перехода на поле имени модельного предложения не переносится в выходной текст макропроцессора. [6]
На втором шаге все параметры, входящие в состав трех первых полей модельных предложений, замещаются присвоенными им в качестве значений текстами. При этом точки, употребленные при конкатенации параметров с расположенными справа от них текстами, опускаются. [7]
Комментарий в составе макроопределения может располагаться не только между параметрами макропрототипа и на полях комментария макропрототипа и модельных предложений, но также и в специальных модельных предложениях, содержащих символ в позиции 1 или пару символов в позициях соответственно 1 и 2 строки бланка. В макрорасширение переносятся только комментарии, расположенные на поле комментария модельных предложений и в предложениях, начинающихся символом в первой позиции. Никакой обработки их не производится, и параметры, включенные в их состав, значениями не заменяются. [8]
Они могут также использоваться отдельно или в конкатенациях с текстами, параметрами и другими переменными для формирования имени, операции или операндов в модельных предложениях. [9]
Комментарий в составе макроопределения может располагаться не только между параметрами макропрототипа и на полях комментария макропрототипа и модельных предложений, но также и в специальных модельных предложениях, содержащих символ в позиции 1 или пару символов в позициях соответственно 1 и 2 строки бланка. В макрорасширение переносятся только комментарии, расположенные на поле комментария модельных предложений и в предложениях, начинающихся символом в первой позиции. Никакой обработки их не производится, и параметры, включенные в их состав, значениями не заменяются. [10]
Переменные типа А могут фигурировать в следующих конструкциях: в левой части операторов SETA, в арифметических выражениях, в символьных выражениях ( см. § 5.2) и в модельных предложениях как внутри, так и вне макроопределений. В модельных предложениях эти переменные можно использовать в конкатенациях с текстами, параметрами и другими переменными для формирования частей поля имени и операндов. При преобразовании модельного предложения в команду базисного языка переменная типа А заменяется десятичным изображением соответствующего значения без знака и ведущих нулей. [11]
Если в подполе названия макрокоманды записан символ, а в предложении прототипа и в каком-либо предложении модели указан соответствующий ему символический параметр, то при компиляции символ макрокоманды заменит символический параметр в модельном предложении. Если в подполе названия макрокоманды - пробел или метка следования, то символический параметр в подполе названия модели ничем не замещается. [12]
Переменные типа А могут фигурировать в следующих конструкциях: в левой части операторов SETA, в арифметических выражениях, в символьных выражениях ( см. § 5.2) и в модельных предложениях как внутри, так и вне макроопределений. В модельных предложениях эти переменные можно использовать в конкатенациях с текстами, параметрами и другими переменными для формирования частей поля имени и операндов. При преобразовании модельного предложения в команду базисного языка переменная типа А заменяется десятичным изображением соответствующего значения без знака и ведущих нулей. [13]
При записи модельных предложений макроопределений может встретиться случай, когда к предложению необходимо обратиться по метке перехода, а это предложение уже имеет имя. Команда ANOP, записанная перед таким предложением, позволяет указать в своем подполе названия метку перехода без выполнения какой-либо операции. [14]
За предложением прототипа макроопределения следуют предложения модели. В частном случае модельные предложения могут отсутствовать. [15]