STRUCT(1) — NEWS-OS 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/∗
関連事項
バグ
struct は Fortran66 構文を理解できますが Fortran77 は一部解釈できないものもあります。 入力された Fortran プログラムが Ratfor で予約語の識別子を持つと、 構造化されたプログラムは Ratfor プログラムで有効となりません。
32767 を越えてラベルを生成することはできません。
行き先のない goto が現れたら −e を指定してみてください。
NEWS-OSRelease 4.1C