STRUCT(1,C) AIX Commands Reference STRUCT(1,C)
-------------------------------------------------------------------------------
struct
PURPOSE
Structures FORTRAN programs.
SYNTAX
+---------+ +--------+
struct ---| +-----+ |---| |---|
+-| -s |-+ +- file -+
^| -i ||
|| -a ||
|| -b ||
|| -n ||
|| -tn ||
|| -cn ||
|| -en ||
|+-----+|
+-------+
DESCRIPTION
The struct command translates the FORTRAN program specified by file (standard
input default) into a Ratfor program. Wherever possible, Ratfor control
constructs replace the original FORTRAN. Statement numbers appear only where
still necessary. Cosmetic changes are made, including changing Hollerith
strings into quoted strings and relational operators into symbols (for example
".GT." into ">"). The output is appropriately indented.
Notes:
1. The struct command knows FORTRAN 66 syntax, but not full FORTRAN 77.
2. If an input FORTRAN program contains identifiers which are reserved words
in Ratfor, the structured version of the program is not a valid Ratfor
program.
3. The labels generated cannot go above 32767.
4. If you get a goto without a target, try -e.
FLAGS
The following options may occur in any order.
Processed November 8, 1990 STRUCT(1,C) 1
STRUCT(1,C) AIX Commands Reference STRUCT(1,C)
-s Input is accepted in standard format, for example comments are specified
by a c, C, or * in column 1, and continuation lines are specified by a
nonzero, nonblank character in column 6. Normally input is in the form
accepted by f77.
-i Do not turn computed goto statements into switches. (Ratfor does not
turn switches back into computed goto statements.)
-a Turn sequences of else ifs into a non-Ratfor switch of the form:
switch
{ case pred1: code
case pred2: code
case pred3: code
default: code
}
The case predicates are tested in order; the code appropriate to only one
case is executed. This generalized form of switch statement does not
occur in Ratfor.
-b Generate goto's instead of multilevel break statements.
-n Generate goto's instead of multilevel next statements.
-tn Make the nonzero integer n the lowest valued label in the output program
(default 10).
-cn Increment successive labels in the output program by the nonzero integer
n (default 1).
-en If n is 0 (default), place code within a loop only if it can lead to an
iteration of the loop.
If n is nonzero, admit a small code segments to a loop if otherwise the loop
would have exits to several places including the segment, and the segment can
be reached only from the loop. 'Small' is close to, but not equal to, the
number of statements in the code segment. Values of n under 10 are suggested.
FILES
/tmp/struct*
/usr/lib/struct/*
Processed November 8, 1990 STRUCT(1,C) 2