@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
34 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Var = void 0;
const declaracao_1 = require("./declaracao");
/**
* Uma declaração de variável.
*/
class Var extends declaracao_1.Declaracao {
constructor(simbolo, inicializador, tipo = 'qualquer', tipoExplicito = false, decoradores = [], tipoOriginal) {
super(Number(simbolo.linha), simbolo.hashArquivo, decoradores);
this.escopo = 'local';
this.simbolo = simbolo;
this.inicializador = inicializador;
// Preserva o tipo original especificado pelo usuário (antes de inferência do parser)
this.tipoOriginal = tipoOriginal !== undefined ? tipoOriginal : tipo;
if (tipo !== 'qualquer') {
this.tipo = tipo;
}
else {
this.tipo = (inicializador === null || inicializador === void 0 ? void 0 : inicializador.tipo) || tipo;
}
this.tipoExplicito = tipoExplicito;
this.referencia = false;
this.desestruturacao = false;
}
async aceitar(visitante) {
return await visitante.visitarDeclaracaoVar(this);
}
paraTexto() {
return `<var nome=${this.simbolo.lexema} valor=${this.inicializador ? this.inicializador.paraTexto() : 'Nada'} />`;
}
}
exports.Var = Var;
//# sourceMappingURL=var.js.map