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.