text: "use strict";
  // Object.defineProperty(exports, "__esModule", { value: true });
  // exports.Primitivo = void 0;
  // const Tipo_1 = require("../AST/Tipo");
  class Primitivo {
      constructor(valor, linea, columna) {
          this.linea = linea;
          this.columna = columna;
          this.valor = valor;
      }
      getTipo(ent) {
          const valor = this.getValorImplicito(ent);
          if (typeof (valor) === 'boolean') {
              return Tipo_1.Tipo.BOOL;
          }
          else if (typeof (valor) === 'string') {
              return Tipo_1.Tipo.STRING;
          }
          else if (typeof (valor) === 'number') {
              if (this.isInt(Number(valor))) {
                  return Tipo_1.Tipo.INT;
              }
              return Tipo_1.Tipo.DOUBLE;
          }
          else if (valor === null) {
              return Tipo_1.Tipo.NULL;
          }
          return Tipo_1.Tipo.VOID;
      }
      getValorImplicito(ent) {
          return this.valor;
      }
      isInt(n) {
          return Number(n) === n && n % 1 === 0;
      }
  }
  // exports.Primitivo = Primitivo;
  