@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
41 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetodoPrimitiva = void 0;
const chamavel_1 = require("./chamavel");
/**
* Classe de método de primitiva.
* Exemplos:
*
* - `v.inclui(1)` (`v` é um vetor)
* - `t.minusculo()` (`t` é um texto)
*
* A aridade é sempre a quantidade de argumentos do método menos um porque o
* primeiro parâmetro é sempre a referência para a primitiva.
*/
class MetodoPrimitiva extends chamavel_1.Chamavel {
constructor(primitiva, metodo) {
super();
this.primitiva = primitiva;
this.metodo = metodo;
this.valorAridade = metodo.length - 1;
}
async chamar(interpretador, argumentos = []) {
return await this.metodo(interpretador, this.primitiva, ...argumentos);
}
/**
* Método utilizado por Delégua para inspecionar este método em depuração.
* @returns {string} A representação do método como texto.
*/
paraTexto() {
return `<método nome=${this.metodo} primitiva=${this.primitiva}>`;
}
/**
* Método utilizado pelo VSCode para representar este método quando impressa.
* @returns {string} A representação do método como texto.
*/
toString() {
return this.paraTexto();
}
}
exports.MetodoPrimitiva = MetodoPrimitiva;
//# sourceMappingURL=metodo-primitiva.js.map