@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
38 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FuncaoPadrao = void 0;
const chamavel_1 = require("./chamavel");
/**
* Uma `FuncaoPadrao` normalmente é uma função em JavaScript que representa um
* método de uma biblioteca global, mas que pode ser usada para outros casos.
*/
class FuncaoPadrao extends chamavel_1.Chamavel {
constructor(valorAridade, funcao) {
super();
this.descartarPrimeiroArgumento = true;
this.valorAridade = valorAridade;
this.funcao = funcao;
}
async chamar(visitante, argumentos, simbolo) {
if (simbolo) {
this.simbolo = simbolo;
}
return await this.funcao.apply(this, [visitante, ...argumentos]);
}
/**
* Método utilizado por Delégua para inspecionar esta função em depuração.
* @returns {string} A representação da função como texto.
*/
paraTexto() {
return `<função-padrão nome=${this.simbolo?.lexema || '(função anônima)'} />`;
}
/**
* Método utilizado pelo VSCode para representar esta função quando impressa.
* @returns {string} A representação da classe como texto.
*/
toString() {
return this.paraTexto();
}
}
exports.FuncaoPadrao = FuncaoPadrao;
//# sourceMappingURL=funcao-padrao.js.map