@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
38 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AcessoIntervaloVariavel = void 0;
/**
* Construto para acesso de intervalos (fatiamento/slicing) em vetores.
* Ex: vetor[1:4], vetor[1:4:2], vetor[1:], vetor[:3] ou vetor[:]
*/
class AcessoIntervaloVariavel {
constructor(hashArquivo, entidadeChamada, indiceInicio, indiceFim, indicePasso, simboloFechamento, tipo = 'qualquer') {
this.tipo = 'qualquer';
this.linha = entidadeChamada.linha;
this.hashArquivo = hashArquivo;
this.entidadeChamada = entidadeChamada;
this.indiceInicio = indiceInicio;
this.indiceFim = indiceFim;
this.indicePasso = indicePasso;
this.simboloFechamento = simboloFechamento;
this.tipo = tipo;
}
async aceitar(visitante) {
return await visitante.visitarExpressaoAcessoIntervaloVariavel(this);
}
paraTexto() {
const inicio = this.indiceInicio ? this.indiceInicio.paraTexto() : '(sem início)';
const fim = this.indiceFim ? this.indiceFim.paraTexto() : '(sem fim)';
const passo = this.indicePasso ? this.indicePasso.paraTexto() : '(sem passo)';
return (`<acesso-índice-variável entidadeChamada=${this.entidadeChamada.paraTexto()} ` +
`inicio=${inicio} ` +
`fim=${fim}` +
`passo=${passo}` +
`/>`);
}
paraTextoSaida() {
throw new Error('Método não implementado.');
}
}
exports.AcessoIntervaloVariavel = AcessoIntervaloVariavel;
//# sourceMappingURL=acesso-intervalo-variavel.js.map