Оператор COMPILE
Оператор COMPILE компилирует файл процедуры или файл определения класса в r-code. Компиляцию можно хранить в памяти во время работы сессии или сохранить навсегда для использования в последующих сессиях (в виде файла r-кода с расширением .r ). Когда вы компилируете файл определения класса, AVM по умолчанию компилирует файл определения класса, указанный в операторе компиляции, и все файлы классов в унаследованной иерархии классов.
Базовое использование
COMPILE helloworld.p SAVE.
Выполнение примера кода создаёт файл с именем helloworld.r .
Параметры компиляции
Вы можете изменить поведение компилятора и применить определенные правила, указав параметры компилятора. Использование параметров компилятора позволяет выявлять и исправлять проблемы в коде, делая код однозначным и более надёжным. Правила, которые вы можете указать, включают в себя требование полных имён таблиц и полей, полных ссылок на буферы, полных ключевых слов и возвращаемых значений для определяемых пользователем функций, методов, отличных от VOID, и средств получения свойств. При желании вы можете указать уровень серьёзности (предупреждение или ошибка) для каждого типа параметра.
|
Название параметра |
Описание |
| require-full-names | Все имена таблиц и полей должны отображаться в том виде, в котором они указаны в схеме. Возможность компилятора неявно разрешать сокращённые имена таблиц отключена. |
| require-field-qualifiers | Все ссылки на буферы (включая таблицы базы данных, временные таблицы и буферы) должны быть полностью определены. Возможность компилятора неявно разрешать буфер, на который ссылается ссылка на поле, отключена. |
| require-full-keywords | Все ключевые слова языка ABL должны быть полностью прописаны. |
| require-return-values | В определяемых пользователем функциях, методах, отличных от VOID, и методах получения свойств все пути логического кода должны иметь операторы RETURN value. Дополнительные сведения см. в разделе «Параметр компилятора require-return-values». |
Установка уровня серьёзности для параметра компилятора
Пользователь может установить два возможных уровня серьёзности: warning или error. Уровень warning выдаёт сообщение о каждом нарушении, но позволяет успешно завершить компиляцию при условии, что только нарушения связаны с параметром. Уровень серьёзности error создаёт сообщение для каждого нарушения и предотвращает успешное завершение компиляции. Если вы указываете параметр без уровня серьёзности, по умолчанию используется значение warning. Если вы не укажете параметр компилятора, то для этого параметра проверка нарушений не выполняется.
Чтобы установить уровень серьёзности, добавьте двоеточие ( 🙂 к имени параметра, а затем уровень серьёзности:
option-name:severity-level
option-name
Допустимые значения: require-full-names, require-field-qualifiers, require-full-keywords или require-return-values.
severity-level
Допустимые значения warning или error.
Например, следующие возможные способы указать уровни серьёзности для параметра require-return-values компилятора:
- require-return-values
- require-return-values:warning
- require-return-values:error
Способы установки параметров компилятора
Существует четыре различных способа установки параметров компилятора, которые описаны ниже. Первые два способа используют оператор COMPILE. В третьем способе используется системный дескриптор COMPILER, а в четвёртом — параметр старта -compileroptionsfile.
- Фраза OPTIONS в операторе COMPILE.
При компиляции файла в ABL, чтобы указать нужные параметры компилятора, используется фраза OPTIONS. Каждый параметр отделяется запятой, а список параметров должен быть заключен в кавычки.Пример:COMPILE basic.p OPTIONS "require-full-names:error,require-field-qualifiers:error".
Для получения дополнительной информации о фразе OPTIONS, см. «Оператор COMPILE» в справочнике по ABL.
- Фраза OPTIONS-FILE в операторе COMPILE.
При компиляции файла в ABL чтобы указать имя фала, содержащего параметры, используется фраза OPTIONS-FILE filename в операторе COMPILE. Имя файла должно быть абсолютным или относительным к PROPATH.Пример:COMPILE basic.p OPTIONS-FILE myCompilerOptions.
Файл параметров представляет собой обычный текстовый файл. Все, что находится между хэш-тегом (#) и концом строки в файле, рассматривается как комментарий. Параметры компилятора должны быть разделены запятыми, даже если они находятся в разных строках.
Пример:
# myCompilerOptions require-full-keywords, # no severity specified; warning is the default require-full-names:error, require-field-qualifiers:error, require-return-values:warning
Для получения дополнительной информации о фразе OPTIONS-FILE, см. «Оператор COMPILE» в справочнике по ABL.
- Атрибут OPTIONS в системном дескрипторе COMPILER.
Атрибут OPTIONS устанавливается в системном дескрипторе COMPILER перед компиляцией файла в ABL.Пример:COMPILER:OPTIONS = "require-return-values:warning". COMPILE basic.p. COMPILER:OPTIONS = "". // reset to no compiler options
- Параметр старта -compileroptionsfile.
Для того, чтобы указать файл с параметрами компиляции во время старта клиента ABL применяется параметр старта -compileroptionsfile, который устанавливает атрибут OPTIONS в значения из файла.-compileroptionsfile filename
Файл имеет тот же формат, что и во втором способе для фразы OPTIONS-FILE оператора COMPILE. Дополнительные сведения об этом параметре запуска см. «Файл параметров компилятора ( -compileroptionsfile)» в «Справочнике по командам и параметрам запуска OpenEdge» .
