Инструкции препроцессора для установки диалекта компилятора.
Синтаксис
#lang "lang"
Параметры
"lang"
Диалект для установки, заключенный в двойные кавычки,
должен быть одним из "fb", "fblite", "qb", или "deprecated".
Описание
Если опция
-forcelang не была
указана в командной строке,
#lang может быть использован для
установки диалекта для исходного модуля, в котором он записан. В лучшем
случае два прохода будет производиться на модуле исходника. На первом
проходе, если указанный диалект отличается от диалекта по умолчанию
(выбранный с
-lang, или
"fb"
по умолчанию), компилятор сбросит синтаксический анализатор для другого
прохода и перезапустит компиляцию в начале исходного модуля. Если эта
директива встречается снова на втором проходе, и указанный диалект не
соответствует новому текущему диалекту, то выдается предупреждение и
компиляция продолжается. Если на первом проходе были обнаружены любые
ошибки, компилятор не будет пытаться сделать второй проход.
#lang не может использоваться в любом составном операторе,
области или подпрограмме. Однако может быть вложен в заявление препроцессора
на уровне модуля или использоваться во включаемом файле.
Там в настоящее время нет ограничений на то, где эта директива может быть
помещена в модуль исходника. В будущем это может измениться, поэтому лучшей
практикой было бы использовать эту директиву до первого заявления,
определения или исполняемого оператора в исходнике.
Эта директива отменяет опцию
-lang
, если она была указана в командной строке. Однако, если опция
-forcelang
была дана в командной строке, эта директива не будет иметь никакого эффекта.
Выдается предупреждение, директива игнорируется, и компиляция будет
продолжаться. Это позволяет пользователю явно переопределить директиву
#lang.
Пример
Отличия от QB
См. также