#lang
 
Инструкции препроцессора для установки диалекта компилятора.

Синтаксис

#lang "lang"

Параметры

"lang"
Диалект для установки, заключенный в двойные кавычки, должен быть одним из "fb", "fblite", "qb", или "deprecated".

Описание

Если опция -forcelang не была указана в командной строке, #lang может быть использован для установки диалекта для исходного модуля, в котором он записан. В лучшем случае два прохода будет производиться на модуле исходника. На первом проходе, если указанный диалект отличается от диалекта по умолчанию (выбранный с -lang, или "fb" по умолчанию), компилятор сбросит синтаксический анализатор для другого прохода и перезапустит компиляцию в начале исходного модуля. Если эта директива встречается снова на втором проходе, и указанный диалект не соответствует новому текущему диалекту, то выдается предупреждение и компиляция продолжается. Если на первом проходе были обнаружены любые ошибки, компилятор не будет пытаться сделать второй проход.

#lang не может использоваться в любом составном операторе, области или подпрограмме. Однако может быть вложен в заявление препроцессора на уровне модуля или использоваться во включаемом файле.

Там в настоящее время нет ограничений на то, где эта директива может быть помещена в модуль исходника. В будущем это может измениться, поэтому лучшей практикой было бы использовать эту директиву до первого заявления, определения или исполняемого оператора в исходнике.

Эта директива отменяет опцию -lang , если она была указана в командной строке. Однако, если опция -forcelang была дана в командной строке, эта директива не будет иметь никакого эффекта. Выдается предупреждение, директива игнорируется, и компиляция будет продолжаться. Это позволяет пользователю явно переопределить директиву #lang.

Пример

#lang "fblite"


Отличия от QB

  • Новое в FreeBASIC

См. также