private static ValorArreglo getValorArreglo(Arreglo array) { ValorArreglo v_array = new ValorArreglo(); v_array.valor = new List<Valor>(); if (array.tipoArreglo is Arreglo) { for (int x = 0; x < array.size; x++) { ValorArreglo v_subarray = getValorArreglo((Arreglo)array.tipoArreglo); v_array.valor.Add(v_subarray); } } else { for (int x = 0; x < array.size; x++) { Valor v = getDefaultValue(array.tipoArreglo); v_array.valor.Add(v); } } return v_array; }
public override Valor interpretar() { ValorArreglo vArray = new ValorArreglo(); vArray.valor = new List<Valor>(); foreach (Initializers vinit in initializerList) { if (vinit is VariableInitializer) { VariableInitializer vInitializer = (VariableInitializer)vinit; Valor valorArreglo = vInitializer.interpretar(); vArray.valor.Add(valorArreglo); } else { VariableInitializerList vList = (VariableInitializerList)vinit; ValorArreglo vSubArray = new ValorArreglo(); vSubArray.valor = new List<Valor>(); foreach (Initializers vinit2 in vList.initializerList) { Valor valorArreglo = vinit2.interpretar(); vSubArray.valor.Add(valorArreglo); } vArray.valor.Add(vSubArray); } } return vArray; }
public override Valor clone() { ValorArreglo v_array = new ValorArreglo(); v_array.valor = valor; return v_array; }