COBOL - Character strings - Figurative constants
Constantes figurativas são palavras reservadas que nomeiam e se referem a valores constantes específicos. As palavras reservadas para constantes figurativas e seus significados são:
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 nacional zero, é usado um caractere nacional zero (valor NX'0030 '). Quando o contexto não pode ser determinado, um caractere alfanumérico zero é usado.
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 nacional quando usado em um contexto que requer um literal nacional. O valor é o caractere nacional 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 nacional válido. A conversão da representação alfanumérica ou nacional de HIGH-VALUE 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 é 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 nacional quando usado em um contexto que requer um literal nacional. O valor é o caractere nacional NX'0000 '.
Quando o contexto não pode ser determinado, é assumido um contexto alfanumérico e o valor X'00 'é usado.
QUOTE ou QUOTES representa um caractere alfanumérico quando usado em um contexto que requer um caractere alfanumérico e representa um caractere nacional quando usado em um contexto que requer um caractere nacional. O valor do caractere nacional das aspas é NX'0022 '. O valor do caractere nacional do apóstrofo é NX'0027 '.
QUOTE and QUOTES não podem ser usadas no lugar de aspas ou apóstrofo para incluir um literal alfanumérico.
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 sempre representa um caracter alfanumérico; ele pode ser usado em um contexto que requer um caractere nacional somente quando a conversão implícita de caracteres alfanuméricos em caracteres nacionais é definida. (Pode ser usado, por exemplo, em uma instrução MOVE em que o item de recebimento é da classe nacional porque a conversão implícita é definida quando o item de envio é alfanumérico e o item de recebimento é nacional.)
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 for 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 specificada.
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: