目次→その他→
プリ・プロセッサ→メタ・コマンド→
#LANG←オリジナル・サイト
コンパイラ方言を設定する、プリプロセッサ文。
構文:
#lang "lang"
パラメタ:
"lang"
設定する方言は、二重引用符でかこんだ、 "fb"、"fblite"、"qb"、"deprecated" の内の、いずれか 1 つです。
説明:
コマンドラインで、
-forcelang オプションを与えない場合に、ソース・モジュールに
#lang を記述して、方言を設定することができます。
ソース・モジュールに従って、行われる処理は、多くても、2つの処理です。
最初の処理では、指定された方言が、デフォルト方言(デフォルトで
"fb" か、
-lang で
"fb" が選ばれている)以外なら、コンパイラは、次の処理のためにパーサ(parser:構文解析)をリセットして、ソース・モジュールの始めから、コンパイルを再開します。
このメタ・コマンドが、2番目の処理をするとき、指定された方言が新しい現在の方言に合っていなければ、警告を表示します。コンパイルは、続けます。
最初の処理でエラーが発生したら、コンパイラは2番目の処理をしません。
#lang は、複合文、範囲、またはサブルーチンで、使われない場合が有ります。
この場合でも、モジュールレベル・プリプロセッサ文で、入れ子にされるか、またはインクルード・ファイルで使われることがあります。
現在は、この指示を、ソース・モジュールのどこに置かなければならない、という制限はありません。
しかし、これは、将来、変更されるかもしれません。
したがって、ソースの、最初の宣言、定義、または実行文の前に、この指示を置くことを、推奨します。
コマンド・ラインで、明示的に
-lang オプションを与えたなら、この指示は、メタ・コマンドの
-lang オプションより、優先されます。
しかし、コマンドラインで
-forcelang オプションを与えると、この指示は無効になります。
警告が表示され、指示は無視されます。そして、コンパイルは継続します。
ユーザは、これで、明示的に、
#lang 指示を無視させることができます。
例:
#lang "fblite"
QB との違い:
参照: