Обзор
- ZMSMMAC - библиотеки макроопределений
- ZMSMSRC - исходники.
- Первый - создание
.MAC -кода, аналогичного макрокоду MSM, о котором здесь идет речь. - Второй - создание
.INC-кода , то есть тот же.MAC , только включаемый в другие.MAC и.INC модули. Основное отличие.INC от.MAC -.INC - не компилируется непосредственно в исполняемую M-программу. - Третий - создание
.INT -кода, то есть M-кода без макросов. Именно в.INT -код компилируются.MAC модули.
В исходниках можно размещать комментарии, которые не попадут в программы. Это, по крайней мере, уменьшает размер программы, ускоряя ее загрузку в оперативную память. То есть можно сэкономить на размере раздела. Строка, которая начинается со знака ";" не попадет в текст программы. Если перед знаком ";" будет стоять пробел, то такой комментарий будет записан в программу.
По сути дела
Есть еще одно достоинство в использовании исходников перед программами для не-англоговорящих разработчиков - это программы, которые будут работать в OEM-кодировке, но разработка их ведется в ANSI-кодировке (Windows). Кроме этого возможен вариант, когда из пакета исходников надо получить М-прграммы. Открывать каждый исходник в редакторе и сохранять его - в этом случае не сама лучшая идея. Можно выполнить пакетную компиляцию исходников. Для этого есть точки входа в программе %EDP. Приведенный ниже текст является простым примером компиляции исходника.Compile(NAME) S X("Source")=NAME D COMPILE^%EDP(.X) I X W !,NAME_" compile error" E D SAVE^%EDP(.X) QРасмотрим его подробнее. В
- Source - имя исходника
- Comment - если равен 1, в программу перед скомпилированными строками будут добавляться закомментированные оригинальные строки из исходников с десятью точками впереди - может понадобиться для демонстрации "навороченных" возможностей макросов в MSM.
- LibPath - спиок библиотек
- LogRout - программа, котроая будет вызвана, для регистрации ошибок. Например, указав
"Log^Rtn" будет выполнен М-кодD Log^Rtn(.message) где message - это текст для регистрации ошибки. Если в качестве LogRout указать"Log^Rtn("""_NAME_""")", то будет выполнен М-кодD Log^Rtn(имя_исходника,.message) Если LogRout не определен явно, то список ошибок следует искать в^ZMSMLOG("%EDP",$SY_","_$P,имя_исходника). - Prefix - строка, с которой начинаются имена макроопределений (по умолчанию %%)
- LabPref - префикс, с которого будут начинаться временные метки
- Show - показывать процесс подстановки макроопределений. Может понадобиться только в очень редких случаях, т.к. мало кому доставит удовольствие нажимать ENTER после каждой выполненной макроподстановки.
- Routine - имя программы, в которую будет сохранен исходник. Если пусто, то нечего сохранять
- Code - имя глобала, содержащего строки программного кода. Наконец, в Х записывается количество ошибок, если они имели место. Если компиляция прошла без ошибок, то
X=0. В последнем случае надо сохранить полученный программный код, вызвавSAVE^%EDP. На вход надо передать все тот же массив X. Скомпилированные программы будут сохранены на диск.
Комментариев нет:
Отправить комментарий