UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

45 lines 1.59 kB
"use strict"; 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 dois porque os * dois primeiros parâmetros são sempre o interpretador e a referência para a primitiva. */ class MetodoPrimitiva extends chamavel_1.Chamavel { constructor(nome, primitiva, metodo, nomeMetodo, tipo = 'qualquer') { super(); this.tipo = 'qualquer'; this.nome = nome; this.primitiva = primitiva; this.metodo = metodo; this.nomeMetodo = nomeMetodo; this.tipo = tipo; this.valorAridade = metodo.length - 2; } 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.nomeMetodo} primitiva=${this.nome} tipo-da-primitiva=${this.tipo} />`; } /** * 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