UNPKG

@designliquido/delegua

Version:

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

39 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PilhaEscopos = void 0; class PilhaEscopos { constructor() { this.pilha = []; } empilhar(item) { this.pilha.push(item); } eVazio() { return this.pilha.length === 0; } topoDaPilha() { if (this.eVazio()) throw new Error('Pilha vazia.'); return this.pilha[this.pilha.length - 1]; } removerUltimo() { if (this.eVazio()) throw new Error('Pilha vazia.'); return this.pilha.pop(); } obterTipoVariavelPorNome(nome) { for (let i = 1; i <= this.pilha.length; i++) { const informacaoEscopo = this.pilha[this.pilha.length - i]; if (informacaoEscopo.variaveisEConstantes[nome] !== undefined) { return informacaoEscopo.variaveisEConstantes[nome]; } } throw new Error("Variável não definida: '" + nome + "'."); } definirTipoVariavel(nomeVariavel, tipo) { const topoDaPilha = this.topoDaPilha(); topoDaPilha.variaveisEConstantes[nomeVariavel] = tipo; } } exports.PilhaEscopos = PilhaEscopos; //# sourceMappingURL=pilha-escopos.js.map