public void getArray2(Dictionary <int, itemValor> diccionario, List <int> dimensioenes, token tipo, int dimensionActual, elementoEntorno elemEntor) { if (hayErrores()) { return; } //hay que contar cuántos hijos tiene, esa es una dimensión foreach (nodoModelo temp in hijos) { _LLAVES_VAL_P llaves = (_LLAVES_VAL_P)temp; if (dimensionActual > dimensioenes.Count) //voy a corroborar si ya hay un indice ingresado { dimensioenes.Add(hijos.Count); } else //indica que el indice ya esta, hay que corroborar si tiene la misma cantidad de hijos // dimensionActual-1 { if (dimensioenes[dimensionActual - 1] != hijos.Count) //hay problema con la cantidad de hijos { tablaSimbolos.tablaErrores.insertErrorSemantic("No coincide el tamaño de la dimension: " + dimensionActual + " en la matriz de tipo: " + tipo.val, tipo); } } llaves.getArray(diccionario, dimensioenes, tipo, dimensionActual, elemEntor); } return; }
public void getArray(token tipo, elementoEntorno elemEntor) { if (hayErrores()) { return; } Dictionary <int, itemValor> diccionario = new Dictionary <int, itemValor>(); List <int> dimensioenes = new List <int>(); int dimensionActual = 0; foreach (nodoModelo temp in hijos) { _LLAVES_VAL_P llaves = (_LLAVES_VAL_P)temp; llaves.getArray(diccionario, dimensioenes, tipo, dimensionActual, elemEntor); } //this.imprimiendoLstInt(dimensioenes); this.diccionario = diccionario; this.lstDimensiones = dimensioenes; }