2.1.3. REPOSITORY

REPOSITORY.
   [FUNCTION (nome1|ALL) INTRINSIC] .
   [FUNCTION nome2 [AS literal1] .

Parágrafo que faz parte da CONFIGURATION SECTION e que permite ao programador declarar as funções (intrínsecas ou não) que serão chamadas pelo programa.

Este parágrafo não pode ser declarado em programas aninhados, uma vez que toda a CONFIGURATION SECTION é herdada do programa pai.

A cláusula INTRINSIC permite que o programa chame uma função intrínseca cujo nome é indicado por nome1. É possível tambémp informar ao compilador que o programa poderá utilizar todas (ALL) as funções intrínsecas disponíveis.

A falta dessa declaração não impede que as funções intrínsecas sejam chamadas pelo programa, mas nesse caso o programador terá que escrever a palavra FUNCTION antes do nome da função toda vez que quiser chamá-la na PROCEDURE DIVISION.

Além de funções intrínsecas, o GnuCOBOL permite que o programador codifique suas próprias funções. Funções são como subprogramas, chamados de uma maneira diferente. O parâmetro nome2 informa o nome da função que será chamada na PROCEDURE DIVISION.

A opção AS literal1, se utilizada, faz com que o programa reconheça nome2 como um apelido da função cujo nome foi informado em literal1.

O exemplo abaixo declara que o programa pode utilizar todas as funções intrínsecas disponíveis no compilador:

repository.
   function all intrinsic.

O exemplo a seguir declara que o programa vai chamar uma função própria (previamente codificada e compilada por alguém). O nome da função é CALCULA-IMPOSTO-DE-RENDA.

repository.
   function CALCULA-IMPOSTO-DE-RENDA.

Igual ao exemplo anterior, só que agora o programa vai reconhecer a função pelo apelido IR:

repository.
   function IR as "CALCULA-IMPOSTO-DE-RENDA".

O próximo exemplo declara que o programa utilizará todas as funções intrínsecas mais a função própria CALCULA-IMPOSTO-DE-RENDA:

repository.
   function all intrinsic.
   function CALCULA-IMPOSTO-DE-RENDA.