"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const excecoes_1 = require("../../../excecoes");
const construtos_1 = require("../../../construtos");
exports.default = {
    paraVetor: {
        tipoRetorno: 'vetor',
        argumentos: [],
        implementacao: (interpretador, tupla) => {
            const objetoTupla = interpretador.resolverValor(tupla);
            if (!(objetoTupla instanceof construtos_1.TuplaN)) {
                return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, `A função "paraVetor" só pode ser chamada em tuplas.`, interpretador.linhaDeclaracaoAtual));
            }
            const valoresPuros = objetoTupla.elementos.map(elemento => interpretador.resolverValor(elemento));
            return Promise.resolve(valoresPuros);
        },
        assinaturaFormato: 'tupla.paraVetor()',
        documentacao: '# `tupla.paraVetor()` \n \n' +
            'Converte a tupla atual em um array.',
        exemploCodigo: 'tupla.paraVetor()',
    }
};
//# sourceMappingURL=primitivas-tupla.js.map