This post is Private. Only a writer or those who know its URL can access this post.

Improve article
RevisionsShow article in Markdown
Report article
Help us understand the problem. What is going on with this article?

<0> はじめに (標準 Pascal 範囲内での Delphi 入門)〔裏〕

0. はじめに

0.1. Pascal プログラムの概要

Delphi にはソース分割のための uses 句があるため、

この拡張は UCSD Pascal 由来のようです。

Delphi では実行部以外なら節を入れ替えても大丈夫ですし、

この拡張は Apple LISA Pascal 由来のようですが、他の Pascal にも類似の拡張があるようです。

See also

(0.1.1.) unit と uses

拡張 Pascal には initialization / finalization 同様の構造として、to begin do / to end do があります。

unit ユニット識別子;

// 宣言部
interface

  { 宣言部のコード }

// 実現部
implementation

  { 実現部のコード }

// 初期化文 (オプション)
to begin do
begin
  { 初期化のコード }
end;

// 終了処理文 (オプション)
to end do
begin
  { 終了処理のコード }
end;

end.             

共にとして定義されているようです。

ユニット初期化文 =
  to begin do 文 ";".
ユニット終了処理文 =
  to end do 文 ";".

(0.1.1.1.) Propagated Uses (Uses Propagation / Unit Propagation)

Mac 系の Pascal には Propagated Uses または Uses Propagation と呼ばれる機能があり、これをオンにするとユニットオブジェクトのスコープが拡張され、間接的に uses されたユニットのルーチン等を使用できるようになります。

unitA.pas
unit unitA;

uses
  unitB;
...
function FuncA: Integer;
unitB.pas
unit unitB;

uses
  unitC;

function FuncB: Integer;
...
unitC.pas
unit unitC;

function FuncC: Integer;
...

unitA のスコープでは、自身で定義されている FuncA() と unitB の FuncB() が使えますが、間接的に uses されている unitC の FuncC() も使えるのが Propagated Uses です。

・Symantec THINK Pascal の Propagated Uses
[コンパイラオプション] で "USES Extensions" にチェックを入れると Propagated Uses が有効になります 1 2
image.png

・Metroweaks CodeWarrior Pascal の Uses Propagation
[Pascal Language 設定パネル] で "Uses Propagation" にチェックを入れるか、プラグマ $pragma usespropagation on で Uses Propagation が有効になります。
image.png
See also

(0.1.2.) インクルード ファイル

(0.1.3.) パッケージとライブラリ

(0.1.3.1.) パッケージ

(0.1.3.2.) ライブラリ

0.2. 構文図

0.3. 拡張バッカス・ナウア記法 (EBNF)

0.4. 有効範囲 (スコープ)

索引

:ramen: [ ↑ 目次へ ] [ → 1. 記法: トークンと区切り文字〔裏〕 ]


  1. ノメモバスターズを入れていないので とか が表示されています。本来の表示は ‘USES’ Extensions です。 

  2. "USES Extensions" のもう一つの拡張は実装部 (Implementation) での uses です。 

ht_deko
とある熊本の障害復旧(トラブルシューター)
https://ht-deko.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away