ファイルのロードは、必要なワード定義等が書かれたファイルをMops内に読込んで、
Mops辞書の拡張等、Mopsの状態を改変し、以後のプログラムが適切に稼動するようにします。
ファイルのロードには二つの局面があります。MopsウィンドウからMops内にファイルをロードする局面と、ソースファイル内で、そこで利用するクラスライブラリやワードのファイルを予めインクルードする局面です。実際上は全く同じことに帰着します。
二つのやり方があって、これらは同義です。一つは、
// ファイル名
もう一つは、
need ファイル名
つまり、スラッシュスラッシュと、needの二つのワードがあるわけです。
Mops環境上ではいずれかのコードを書いてそれを実行します。いくつかのメッセージがあらわれて、静かになったら完了です。ロードされているファイルに書かれたコードに問題があれば、システムビープとともにエラーが表示されて、ロードが中断されます。
ソースコードファイル中では、別ファイルでの定義が必要なる手前に、上のコードを書き込みます。ただし、コードの地の部分、つまり、何かの定義の中ではない部分に書かなければなりません。そうしておけば、このソースコードファイルをロードするときに、自動的に「ファイル名」に当たる名前を持つファイルがロードされます。
あるソースコードファイルに「インクルード」されるファイルが、さらに他のファイルをインクルードしていてもかまいません(つまりneedの入れ子(nest))。Mopsマニュアルには、6段階までネスト可能としてあります(が、現状でのPowerMopsを見る限りでは、6段階という制限があるようには見えません)。この場合、一旦ロードが始まったファイルを再びロードすることはないので、「インクルード」の循環を気にする必要はありません。
ファイル名は空白を含むこともありますので、ここでの「ファイル名」は空白を含むことができます。
「ファイル名」に当たるファイルは、Mopsサーチパスの中で検索されます。そのパス内にないと、発見できないというエラーが表示され、ロードは中断されます。
さらにファイル名はパスを含むことができます。相対パスは、Mops ト(PowerMopsないしMopsアプリケーションのあるフォルダ)からの相対パスになります(ソースファイルがあるフォルダではありません。)。
Mopsのファイルシステムから考えると、ロードするファイルは、ファイルパスを含めて、ファイル名が255バイトを超えることはできないように思われます(確認したことはないので、不確かですが)。ただ、これは当面、Mopsのソースコードファイルのフォルダ階層/ファイル名に関することなので、大きな制限とは思われません。また、話は変わりますが、ロードの中断は、そこまでのロードを廃棄することはないので、新たなロードは、若干問題を引き起こし得ます。これには回避方法があります。
関連項目:
最終更新:2018年12月11日 21:36