struct 命令

用途

将 FORTRAN 程序转换成 RATFOR 程序。

语法

结构 [ -s ] [ -一 ] [ ] [ -b ] [ -n ] [ -t数字 ] [ -c数字 ] [ -e数字 ] [ 文件 ]

描述

struct 命令将 File(标准输入缺省值)指定的 FORTRAN 程序转换为 RATFOR 程序。 在任何可能之处,RATFOR 控制构造替换原始的 FORTRAN。 语句号仅出现在仍为必要之处。 进行外观更改,包括将 Hollerith 字符串更改为带引号的字符串,并将关系运算符更改为符号 (例如, .GT. ) 到 >)。 输出将适当缩进。

struct 命令知道 FORTRAN 66 语法,但不知道全部的 FORTRAN 77 语法。 如果输入的 FORTRAN 程序包含 RATFOR 中保留字的标识符,那么该程序的结构版本将不是有效的 RATFOR 程序。 生成的标号不能超过 32767。 如果您遇到一个没有目标的 goto 语句,请尝试使用 -e 标志。

标志

描述
else-if 语句的序列变为非 RATFOR switch 的格式:
switch
{   case pred1: code
    case pred2: code
    case pred3: code
    default: code
         }

按顺序测试 case 谓词。 只执行一个与 case 对应的代码。 RATFOR 中不出现此通用的 switch 语句格式。

-b 生成 goto 语句,而不是多级别的 break 语句。
-c 数字 通过非零整数 Number 来递增输出程序中的连续标号。 缺省值为 1。 请勿在 -c数字。 之间插入空格
-e 数字 如果 Number 为 0(缺省值),请仅在循环中放入能导致循环迭代的代码。 请不要在 -eNumber 之间插入空格。
-一 请不要将计算过的 goto 语句变为 switch 语句。 (RATFOR 不会将 switch 语句变回计算过的 goto 语句。)
-n 生成 goto 语句,而不是多级别的 next 语句。
-s 接受标准格式的输入。 注释由第 1 列中的 CC* 指定,而连续行由第 6 列中的非零非空白字符指定。 输入的格式为 f77 命令接受的格式。
-t 数字 将非零整数 Number 作为输出程序中的最低值标号。 缺省值为 10。 请不要在 -tNumber 之间插入空格。

如果 Number 非零,那么将小代码段引进循环,否则该循环会退出到几处地方(包括该段),并且该段只能从循环处到达。 在这种情况下,“小”接近但不等于代码段中的语句数目。 建议使用小于 10 的 Number 值。

示例

要翻译test.fFORTRAN 程序进入newtest.ratforRATFOR 程序,输入:

struct -s -i -n -t2 test.f > newtest.ratfor

文件

描述
/tmp/struct* 处理 struct 命令时使用的临时文件。
/usr/lib/struct/structure 处理 struct 命令进程的文件。
/usr/lib/struct/beautify 处理 struct 命令进程的文件。
/usr/ucb/struct 包含 struct 命令。