public static Boolean sePuedeParsear(String tipo1, itemValor valor2) { Object objetoParseado = valor2.getValorParseado(tipo1); if (objetoParseado != null) { return(true); } else { return(false); } }
/* * public itemEntorno(tablaSimbolos tabla) * { * this.tipo = new token("nulo"); * this.nombre = new token("--"); * this.valor = new itemValor(); * valor.setTypeNulo(); * this.visibilidad = new token("privado"); * this.dimension = 0; * this.tabla = tabla; * }*/ public itemEntorno(token nombre, token tipo, itemValor valor, token visibilidad, List <int> dimension, tablaSimbolos tabla) { //validando si lo que estoy esperando es un arreglo if (dimension.Count > 0) { if (dimension.Count == valor.dimensiones.Count) { this.tipo = tipo; this.nombre = nombre; //aqui tengo qee validar los objetos this.valor = valor; itemValor tempIt = new itemValor(); String tipoDato1 = tempIt.getTipoApartirDeString(tipo.valLower); if (tipoDato1.Equals("objeto") != valor.isTypeNulo()) { this.valor.setTypeObjeto(tipo.valLower); } this.visibilidad = visibilidad; this.dimension = valor.dimensiones; //asi ya tiene dimensiones definidas } else { tabla.tablaErrores.insertErrorSemantic("Se esta recibiendo :" + valor.dimensiones.Count + " en la matriz : " + nombre.val + " de dimension:" + dimension.Count, nombre); } } else { this.tabla = tabla; if (valor.dimensiones.Count != 0) { tabla.tablaErrores.insertErrorSemantic("Se está intentando guardar en la variable :" + nombre.val + " de tipo " + tipo.valLower + ", una matriz de dimension : " + valor.dimensiones.Count, nombre); } else if (sePuedeParsear(tipo.valLower, valor)) { this.tipo = tipo; this.nombre = nombre; //guardar el valor parseado. this.valor = valor; this.valor.valor = valor.getValorParseado(tipo.valLower); itemValor tempIt = new itemValor(); String tipoDato1 = tempIt.getTipoApartirDeString(tipo.valLower); if (tipoDato1.Equals("objeto") != valor.isTypeNulo()) { this.valor.setTypeObjeto(tipo.valLower); } this.visibilidad = visibilidad; this.dimension = dimension; } else if (validandoTipo(tipo.valLower, valor)) { this.tipo = tipo; this.nombre = nombre; //aqui tengo qee validar los objetos this.valor = valor; itemValor tempIt = new itemValor(); String tipoDato1 = tempIt.getTipoApartirDeString(tipo.valLower); if (tipoDato1.Equals("objeto") != valor.isTypeNulo()) { this.valor.setTypeObjeto(tipo.valLower); } this.visibilidad = visibilidad; this.dimension = dimension; } else { tabla.tablaErrores.insertErrorSemantic("Se está intentando guardar en :" + nombre.val + " de tipo " + tipo.valLower + ", un valor de tipo " + valor.getTipo(), nombre); //error semantico, se está intentando asiganar un valor diferente al declarado por la variable } } }