Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ struct(1) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

f77(1)

STRUCT(1)  —  UNIX Programmer’s Manual

名称

struct − Fortran プログラムを構造化する

形式

struct [ option ] ... 

解説

struct は ファイル (デフォルトでは標準入力) で指定された Fortran プログラムを Ratfor プログラムに変換します。 Ratfor 制御構文で、 元の Fortran プログラムを置換します。 文番号はどうしても必要なところにだけ現れます。 ホレリス文字列を引用符文字列に変更、および 関係演算子を記号 (たとえば、.GT. を > ) に変更します。

出力はインデント付けされます。 次のオプションは順不動です。

−s 入力は標準フォーマットで受け付けられた、 つまり、 コメントはカラム 1 の c、 C、 または ∗ で指定され、 継続行はカラム 6 の 0 以外、 ブランク以外の文字で指定されます。 通常、 入力は f77 (1) で承認された形式です。

−i 計算型 goto 文を switches に変えません。 (Ratfor は switches を計算型 goto 文に変換しません。)

−a else if の順序を次の形式の Ratfor 以外の switch に変換します。

switch
    {   case pred1: code
        case pred2: code
        case pred3: code
        default: code
    }

case の属性順番にテストされ、 code は 1つの case が成立したとき実行されます。 switche 文のこの一般式は Ratfor にはありません。

−b 多重レベルブレーク文に代えて複数の goto 文を生成します。

−n 多重 next 文に代えて複数の goto 文を生成します。

−t n ゼロでない整数 n を出力プログラムのラベルの最小値とします。 (デフォルトは 10)

−c n 出力プログラムの中の連続するラベルをゼロでない整数 n づつ増加させます。

−e n n が 0 (デフォルト) の時ループが繰り返す場合に限り、 コードをループ内に置きます。 n が 0 でないときは、 ループがセグメントを含むいくつかの出口を持つなら、 そして、 セグメントがループからしか到達できないときは、 小さなユーザセグメントをループに入れます。 small はユーザセグメント内のステートメント数に近いけれど 等しくはありません。 n は 10 より小さくしたほうがいいでしょう。

関連ファイル

/tmp/struct∗ /usr/lib/struct/∗

関連事項

f77(1)

バグ

struct は Fortran66 構文を理解できますが Fortran77 は一部解釈できないものもあります。 入力された Fortran プログラムが Ratfor で予約語の識別子を持つと、 構造化されたプログラムは Ratfor プログラムで有効となりません。
32767 を越えてラベルを生成することはできません。
行き先のない goto が現れたら −e を指定してみてください。

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026