COBOL - Statement operations - CORRESPONDING phrase



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Statement operations - CORRESPONDING phrase
Enterprise COBOL for z/OS, V4.2, Language Reference

A frase CORRESPONDING (CORR) faz com que as operações ADD, SUBTRACT e MOVE sejam executadas em itens de dados elementares com o mesmo nome se o item de grupo alfanumérico ou item de grupo nacional ao qual eles pertencem for especificado.
Um grupo national é processado como um item de grupo quando a frase CORRESPONDING é usada.

Os dois identificadores que seguem a palavra-chave CORRESPONDING devem nomear itens de grupo.
Nesta discussão, esses identificadores são referidos como identifier-1 e identifier-2.
identifier-1 referencia o item do grupo de envio. O identifier-2 faz referência ao item do grupo receptor.

Dois itens de dados subordinados, um do identifier-1 e outro do identifier-2, correspondem se as seguintes condições forem verdadeiras:

  • Em uma instrução ADD ou SUBTRACT, os dois itens de dados são itens de dados numéricos elementares. Outros itens de dados são ignorados.
  • Em uma instrução MOVE, pelo menos um dos itens de dados é um item elementar, e a movimentação é permitida pelas regras de movimentação.
  • Os dois itens subordinados têm o mesmo nome e os mesmos qualificadores até, mas não incluindo, o identifier-1 e o identifier-2.
  • Os itens subordinados não são identificados pela palavra-chave FILLER.
  • Nem o identifier-1 nem o identifier-2 são descritos como itens de nível 66, 77 ou 88 e nem como itens de dados de índice.
    Nem o identifier-1 nem o identifier-2 podem ser modificados por referência.
  • Nem o identifier-1 nem o identifier-2 são descritos com USIN POINTER, USAGE FUNCTION-POINTER, USAGE PROCEDURE-POINTER ou USAGE OBJECT REFERENCE.
  • Os itens subordinados não incluem uma cláusula REDEFINES, RENAMES, OCORS, USAGE INDEX, US POINTER, USAGE PROCEDURE-POINTER, USAGE FUNCTION-POINTER ou USAGE OBJECT REFERENCE nas descrições.

    No entanto, o identifier-1 e o próprio identifier-2 podem conter ou estar subordinados a itens que contêm uma cláusula REDEFINES ou OCCURS em suas descrições.

  • O nome de cada item de dados subordinado que satisfaz essas condições é exclusivo após a aplicação de qualificadores implícitos.

identifier-1, identifier-2 ou ambos podem estar subordinados a um item FILLER.

Por exemplo, considere duas hierarquias de dados definidas da seguinte maneira:

       05  ITEM-1 OCCURS 6.
           10  ITEM-A PIC S9(3).
           10  ITEM-B PIC +99.9.
           10  ITEM-C PIC X(4).
           10  ITEM-D REDEFINES ITEM-C PIC 9(4).
           10  ITEM-E USAGE COMP-1.
           10  ITEM-F USAGE INDEX.

       05  ITEM-2.
           10  ITEM-A PIC 99.
           10  ITEM-B PIC +9V9.
           10  ITEM-C PIC A(4).
           10  ITEM-D PIC 9(4).
           10  ITEM-E PIC 9(9) USAGE COMP.
           10  ITEM-F USAGE INDEX.

Se ADD CORR ITEM-2 TO ITEM-1 (x) for especificado, ITEM-A e ITEM-A (x), ITEM-B e ITEM-B (x) e ITEM-E e ITEM-E (x) serão considerados correspondentes e são somados.

ITEM-C e ITEM-C (x) não estão incluídos porque não são numéricos.
ITEM-D e ITEM-D (x) não estão incluídos porque o ITEM-D (x) inclui uma cláusula REDEFINES em sua descrição de dados.

ITEM-F e ITEM-F (x) não estão incluídos porque são itens de dados de índice.

Observe que o ITEM-1 é válido como identifier-1 ou identifier-2.

Se qualquer uma das operações individuais na instrução ADD CORRESPONDING produzir uma condição de erro de tamanho, a imperative-statement-1 na frase ON SIZE ERROR não será executada até que todas as adições individuais sejam concluídas.



© Copyright IBM Corp.