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