Befehl "struct"
Zweck
Übersetzt ein FORTRAN-Programm in ein RATFOR-Programm.
Syntax
Struktur [ -s ] [ -i ] [ -a ] [ -b ] [ -n ] [ -t.Zahl ] [ -cZahl ] [ -eZahl ] [ Datei ]
Beschreibung
Der Befehl Struktur übersetzt das von Datei angegebene FORTRAN-Programm (Standardeingabestandardwert) in ein RATFOR-Programm. Sofern möglich, ersetzen RATFOR-Steuerkonstrukte die ursprüngliche FORTRAN. Anweisungsnummern werden nur angezeigt, sofern es erforderlich ist. Kosmetische Änderungen werden vorgenommen, einschließlich der Änderung von Hollerith-Zeichenfolgen in Zeichenfolgen in Anführungszeichen und Vergleichsoperatoren in Symbole (z. B. .GT. ). in >). Die Ausgabe wird entsprechend eingerückt.
Der Befehl struct kennt die FORTRAN 66-Syntax, aber die vollständige FORTRAN 77-Syntax nicht. Wenn ein FORTRAN-Eingabeprogramm IDs enthält, die reservierte Wörter in RATFOR sind, ist die strukturierte Version des Programms kein gültiges RATFOR-Programm. Die generierten Labels dürfen den Grenzwert von 32767 nicht überschreiten. Wenn Sie eine goto-Anweisung ohne Ziel erhalten, versuchen Sie es mit dem Flag -e.
Flags
| Element | Beschreibung |
|---|---|
| -A | Ändert Sequenzen von else-if-Anweisungen in eine switch-Anweisung mit dem folgenden Format, die in RAFTOR nicht verfügbar ist:Die case-Prädikate werden nacheinander getestet. Der Code wird nur für einen einzigen Fall ausgeführt. Diese generalisierte Form der switch-Anweisung ist in RATFOR nicht verfügbar. |
| -b | Generiert goto-Anweisungen anstelle von break-Anweisungen mit mehreren Ebenen. |
| -c Zahl | Erhöht aufeinanderfolgende Labels im Ausgabeprogramm durch die für Anzahl angegebene ganze Zahl (ungleich null). Der Standardwert ist 1. Fügen Sie kein Leerzeichen zwischen -c und Zahl. ein. |
| -e Anzahl | Wenn Anzahl 0 ist (Standard), wird Code nur dann in eine Schleife eingefügt, wenn es zu einer Schleifeniteration kommen kann. Fügen Sie kein Leerzeichen zwischen -e und Anzahl ein. |
| -i | Bewirkt, dass goto-Anweisungen nicht in switch-Anweisungen umgesetzt werden. (RATFOR setzt switch-Schalter nicht wieder in berechnete goto-Anweisungen um.) |
| -N | Generiert goto-Anweisungen anstelle von next-Anweisungen mit mehreren Ebenen. |
| -s | Die Eingabe wird im Standardformat akzeptiert. Kommentare werden durch c, C oder * in Spalte 1 angegeben und Fortsetzungszeilen werden durch ein Zeichen, das kein Nullzeichen und kein nicht leeres Zeichen ist, in Spalte 6 angegeben. Die Eingabe hat ein vom Befehl f77 akzeptiertes Format. |
| -t Anzahl | Setzt die für Anzahl angegebene ganze Zahl ungleich null in das niedrigstwertige Label im Ausgabeprogramm um. Der Standardwert ist 10. Fügen Sie kein Leerzeichen zwischen -t und Anzahl ein. |
Wenn Anzahl ungleich null ist, werden kleine Codesegmente in einer Schleife zugelassen, wenn die Schleife ansonsten zu mehreren Sprungzielen verlassen werden müsste, die ebenfalls im Segment liegen, und das Segment nur über die Schleife erreicht werden kann. In diesem Fall bedeutet klein eine Zahl, die der Anzahl der Anweisungen im Codesegment nahe kommt, ihr aber nicht entspricht. Es wird empfohlen, Werte unter 10 für Anzahl anzugeben.
Beispiele
Um dietest.fFORTRAN-Programm in dienewtest.ratforGeben Sie für das Programm RATFOR Folgendes ein:
struct -s -i -n -t2 test.f > newtest.ratforDateien
| Element | Beschreibung |
|---|---|
| /tmp/struct* | Temporäre Dateien, die während der Verarbeitung des Befehls struct verwendet werden. |
| /usr/lib/struct/structure | Datei, die die Verarbeitung für den Befehl struct festlegt. |
| /usr/lib/struct/beautify | Datei, die die Verarbeitung für den Befehl struct festlegt. |
| /usr/ucb/struct | Enthält den Befehl struct. |