comando estruturar

Propósito

Traduz um programa FORTRAN em um programa de RATFOR.

Sintaxe

estruturar [ -s ] [ -i ] [ -a ] [ -b ] [ -n ] [ -tNúmero ] [ -cNúmero ] [ -eNúmero ] [ Arquivo ]

Descrição

O comando estruturar traduz o programa FORTRAN especificado por Arquivo (padrão de entrada padrão) em um programa de RATFOR. Sempre que possível, as construções de controle RATFOR substituem o FORTRAN original. Números de declaração aparecem apenas onde ainda é necessário. Mudanças cosméticas são feitas, incluindo alteração de strings Hollerith em strings citadas e operadores relacionais em símbolos (por exemplo, .GT. em >). A saída é adequadamente recuada.

O comando estruturar conhece a sintaxe FORTRAN 66, mas não completa FORTRAN 77. Se um programa FORTRAN de entrada contém identificadores que são palavras reservadas no RATFOR, a versão estruturada do programa não será um programa RATFOR válido. Os rótulos gerados não podem ir acima de 32767. Se você receber uma instrução goto sem um destino, tente usar o sinalizador -e.

Sinalizações

Item Descrição
-A Transforme seqüências de else-se instruções em um comutador não-RATFOR do formulário:
switch
{   case pred1: code
    case pred2: code
    case pred3: code
    default: code
         }

Os predicados caso são testados em ordem. O código adequado a apenas um caso é executado. Esta forma generalizada de instrução switch não ocorre no RATFOR.

-b Gera instruções goto em vez de instruções de vários níveis quebra .
-c Número Incrementa etiquetas sucessivas no programa de saída pelo número inteiro nonzero Número. O padrão é 1. Não insira um espaço entre -c e Número.
-e Número Se Número for 0 (padrão), coloque código dentro de um loop somente se ele puder levar a uma iteração do loop. Não insira um espaço entre -e e Número.
-i Não transforme instruções goto computadas em comutadores. (RATFOR não transforma switches de volta em instruções goto computadas.)
-n Gera instruções goto em vez de instruções de vários níveis próximo .
-S A entrada é aceita em formato padrão. Os comentários são especificados por um c, Cou * na coluna 1, e as linhas de continuação são especificadas por um caractere nonzero, não em branco na coluna 6. Entrada está no formulário aceito pelo comando f77 .
-t Número Torna o inteiro nonzero Número o rótulo mais baixo avaliado no programa de saída. O padrão é 10. Não insira um espaço entre -t e Número.

Se Número for nonzero, admita pequenos segmentos de código a um loop se caso contrário o loop teria saídas para vários lugares incluindo o segmento, e o segmento pode ser alcançado apenas a partir do loop. Nesse caso, pequeno é próximo, mas não igual a, o número de instruções no segmento de código. Valores de Número menores de 10 são sugeridos.

Exemplos

Para traduzir otest.fPrograma FORTRAN nonewtest.ratforPrograma RATFOR, digite:

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

Arquivos

Item Descrição
/tmp/struct* Arquivos temporários utilizados durante o processamento do comando estruturar .
/usr/lib/struct/structure Arquivo que manipula o processamento para o comando estruturar .
/usr/lib/struct/beautify Arquivo que manipula o processamento para o comando estruturar .
/usr/ucb/struct Contém o comando estruturar .