COBOL - Figurative constants - www.cadcobol.com.br



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

COBOL - Figurative constants

Enterprise COBOL for z/OS, V4.2, Language Reference


Constantes figurativas (Figurative constants) são palavras reservadas que nomeiam e se referem a valores constantes específicos.
As palavras reservadas para constantes figurativas e seus significados estão listadas nesta seção.

ZERO, ZEROS, ZEROES
Representa o valor numérico zero (0) ou uma ou mais ocorrências do caractere zero, dependendo do contexto.

Quando a constante figurativa ZERO, ZEROS ou ZEROES é usada em um contexto que requer um caractere alfanumérico, um caractere alfanumérico zero é usado.
Quando o contexto requer um caractere national zero, é usado um caractere national zero (valor NX'0030 ').
Quando o contexto não pode ser determinado, um caractere alfanumérico zero é usado.

SPACE, SPACES
Representa um ou mais espaços em branco ou espaços em branco.

O SPACE é tratado como um literal alfanumérico quando usado em um contexto que requer um caractere alfanumérico, como um literal DBCS quando usado em um contexto que requer um caractere DBCS e como um literal national quando usado em um contexto que requer um caractere national.
O caractere de espaço EBCDIC DBCS possui o valor X'4040 'e o caractere de espaço national possui o valor NX'0020'.

HIGH-VALUE, HIGH-VALUES
Representa uma ou mais ocorrências do caractere que possui a posição ordinal mais alta na sequência de intercalação usada.

HIGH-VALUE é tratado como um literal alfanumérico em um contexto que requer um caractere alfanumérico.
Para dados alfanuméricos com a sequência de intercalação EBCDIC, o valor é X'FF '.
Para outros dados alfanuméricos, o valor depende da sequência de intercalação em vigor.

HIGH-VALUE é tratado como um literal national quando usado em um contexto que requer um literal national.
O valor é o caractere national NX'FFFF'.

Quando o contexto não pode ser determinado, um contexto alfanumérico é assumido e o valor X'FF 'é usado.

Nota de uso: Você não deve usar HIGH-VALUE (ou um valor atribuído a HIGH-VALUE) de uma maneira que resulte na conversão entre uma representação de dados e outra. X'FF 'não representa um caractere EBCDIC válido e NX'FFFF' não representa um caractere national válido.
A conversão da representação alfanumérica ou national de ALTO VALOR em outra representação resulta em um caractere de substituição.
Por exemplo, a conversão de X'FF 'em UTF-16 daria um caractere de substituição, não NX'FFFF'.

LOW-VALUE, LOW-VALUES
Representa uma ou mais ocorrências do caractere que possui a posição ordinal mais baixa na sequência de intercalação usada.

LOW-VALUE é tratado como um literal alfanumérico em um contexto que requer um caractere alfanumérico.
Para dados alfanuméricos com a sequência de intercalação EBCDIC, o valor é X'00 '.
Para outros dados alfanuméricos, o valor depende da sequência de intercalação em vigor.

LOW-VALUE é tratado como um literal national quando usado em um contexto que requer um literal national.
O valor é o caractere national NX'0000 '.

Quando o contexto não pode ser determinado, um contexto alfanumérico é assumido e o valor X'00 'é usado.

QUOTE, QUOTES
Representa uma ou mais ocorrências de:
  • O caractere de aspas ("), se a opção do compilador QUOTE estiver em vigor
  • O caractere de apóstrofo ("), se a opção do compilador APOST estiver em vigor

QUOTE ou QUOTEA representa um caractere alfanumérico quando usado em um contexto que requer um caractere alfanumérico e representa um caractere national quando usado em um contexto que requer um caractere national.
O valor do caractere national das aspas é NX'0022 '.
O valor do caractere national do apóstrofo é NX'0027 '.

QUOTE e QUOTES não podem ser usadas no lugar de aspas ou apóstrofo para incluir um literal alfanumérico.

ALL literal
literal pode ser um literal alfanumérico, um literal DBCS, um literal national ou uma constante figurativa que não seja o literal ALL.

Quando literal não é uma constante figurativa, ALL literal representa uma ou mais ocorrências da cadeia de caracteres que compõem o literal.

Quando literal é uma constante figurativa, a palavra ALL não tem significado e é usada apenas para facilitar a leitura.

A constante figurativa ALL literal não deve ser usada com as instruções CALL, INSPECT, INVOKE, STOP ou STRING.

symbolic-character
Representa um ou mais caracteres especificados como um valor do caractere simbólico na cláusula SYMBOLIC CHARACTERS do parágrafo SPECIAL-NAMES.

caractere simbólico sempre representa um caracter alfanumérico; ele pode ser usado em um contexto que requer um caractere national somente quando a conversão implícita de caracteres alfanuméricos em caracteres nacionais é definida.
(Ele pode ser usado, por exemplo, em uma instrução MOVE em que o item de recebimento é da classe national porque a conversão implícita é definida quando o item de envio é alfanumérico e o item de recebimento é national.)

NULL, NULLS
Representa um valor usado para indicar que os itens de dados definidos com USAGE POINTER, USAGE PROCEDURE-POINTER, USAGE FUNCTION-POINTER, USAGE OBJECT REFERENCE ou o registro especial ADDRESS OF não contêm um endereço válido.
NULL pode ser usado apenas onde explicitamente permitido nos formatos de sintaxe.
NULL tem o valor zero.

As formas singular e plural de NULL, ZERO, SPACE, HIGH VALUE, LOW VALUE e QUOTE podem ser usadas de forma intercambiável.
Por exemplo, se DATA-NAME-1 é um item de dados de cinco caracteres, cada uma das seguintes instruções move cinco espaços para DATA-NAME-1:

           MOVE SPACE       TO  DATA-NAME-1
           MOVE SPACES      TO  DATA-NAME-1
           MOVE ALL SPACES  TO  DATA-NAME-1

Quando as regras do COBOL permitem a ortografia de um nome de constante figurativa, qualquer ortografia alternativa desse nome de constante figurativa pode ser especificada.

Você pode usar uma constante figurativa sempre que literal aparecer em um diagrama de sintaxe, exceto onde explicitamente proibido.
Quando um literal numérico aparece em um diagrama de sintaxe, somente a constante figurativa ZERO (ou ZEROS ou ZEROES) pode ser usada.
Constantes figurativas não são permitidas como argumentos de função, exceto em uma expressão aritmética, em que a expressão é um argumento para uma função.

O comprimento de uma constante figurativa depende do contexto de seu uso.
As seguintes regras se aplicam:

  • Quando uma constante figurativa é especificada em uma cláusula VALUE ou associada a um item de dados (por exemplo, quando é movida para ou comparada com outro item), o comprimento da cadeia de caracteres da constante figurativa é igual a 1 ou ao número de caracteres posições no item de dados associado, o que for maior.
  • Quando uma constante figurativa, que não seja o literal ALL, não está associada a outro item de dados (por exemplo, em uma instrução CALL, INVOKE, STOP, STRING ou UNSTRING), o comprimento da cadeia de caracteres é um caractere.


© Copyright IBM Corp.