Ejemplo n.º 1
0
        public bool Castear(Tipo t, Entorno e, LinkedList <Salida> log, LinkedList <Error> errores)
        {
            foreach (CollectionValue value in Valores)
            {
                if (Tipo.IsMap())
                {
                    if (!Tipo.Clave.Equals(t.Clave))
                    {
                        Casteo castClave = new Casteo(t.Clave, new Literal(Tipo.Clave, value.Clave, 0, 0), 0, 0)
                        {
                            Mostrar = false
                        };

                        object valorCastClave = castClave.GetValor(e, log, errores);

                        if (valorCastClave != null)
                        {
                            if (valorCastClave is Throw)
                            {
                                return(false);
                            }

                            value.Clave = valorCastClave;
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }

                if (!Tipo.Valor.Equals(t.Valor))
                {
                    Casteo cast = new Casteo(t.Valor, new Literal(Tipo.Valor, value.Valor, 0, 0), 0, 0)
                    {
                        Mostrar = false
                    };

                    object valorCast = cast.GetValor(e, log, errores);

                    if (valorCast != null)
                    {
                        if (valorCast is Throw)
                        {
                            return(false);
                        }

                        value.Valor = valorCast;
                        continue;
                    }
                    return(false);
                }
            }
            Tipo = t;
            return(true);
        }
Ejemplo n.º 2
0
        public override string ToString()
        {
            string cad;

            if (Tipo.IsMap())
            {
                cad = "[";
                foreach (CollectionValue value in Valores)
                {
                    cad += value.Clave.ToString() + " : " + value.Valor.ToString();

                    if (!Valores.Last.Value.Equals(value))
                    {
                        cad += ", ";
                    }
                }
                cad += "]";
                return(cad);
            }
            else if (Tipo.IsList())
            {
                cad = "[";
                foreach (CollectionValue value in Valores)
                {
                    cad += value.Valor.ToString();
                    if (!Valores.Last.Value.Equals(value))
                    {
                        cad += ", ";
                    }
                }
                cad += "]";
                return(cad);
            }
            else if (Tipo.IsSet())
            {
                cad = "{";
                foreach (CollectionValue value in Valores)
                {
                    cad += value.Valor.ToString();
                    if (!Valores.Last.Value.Equals(value))
                    {
                        cad += ", ";
                    }
                }
                cad += "}";
                return(cad);
            }
            return(base.ToString());
        }
Ejemplo n.º 3
0
 public bool EqualsCollection(Tipo t)
 {
     if (IsMap() && t.IsMap())
     {
         return(true);
     }
     else if (IsList() && t.IsList())
     {
         return(true);
     }
     else if (IsSet() && t.IsSet())
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 4
0
        public string ToString2()
        {
            string cad;

            if (Tipo.IsMap())
            {
                cad = "<";

                foreach (CollectionValue value in Valores)
                {
                    cad += "\"" + value.Clave.ToString() + "\"= ";

                    if (value.Valor is Objeto obj2)
                    {
                        cad += obj2.ToString2();
                    }
                    else if (value.Valor is Collection coll)
                    {
                        cad += coll.ToString2();
                    }
                    else if (value.Valor is Cadena cade)
                    {
                        cad += cade.ToString2();
                    }
                    else if (value.Valor is Date dat)
                    {
                        cad += dat.ToString2();
                    }
                    else if (value.Valor is Time tim)
                    {
                        cad += tim.ToString2();
                    }
                    else
                    {
                        cad += value.Valor.ToString();
                    }

                    if (!Valores.Last.Value.Equals(value))
                    {
                        cad += ", ";
                    }
                }

                cad += ">";
            }
            else
            {
                //if (Tipo.IsList())
                cad = "[";
                //else
                //cad = "{";

                foreach (CollectionValue value in Valores)
                {
                    if (value.Valor is Objeto obj2)
                    {
                        cad += obj2.ToString2();
                    }
                    else if (value.Valor is Collection coll)
                    {
                        cad += coll.ToString2();
                    }
                    else if (value.Valor is Cadena cade)
                    {
                        cad += cade.ToString2();
                    }
                    else if (value.Valor is Date dat)
                    {
                        cad += dat.ToString2();
                    }
                    else if (value.Valor is Time tim)
                    {
                        cad += tim.ToString2();
                    }
                    else
                    {
                        cad += value.Valor.ToString();
                    }

                    if (!Valores.Last.Value.Equals(value))
                    {
                        cad += ", ";
                    }
                }
                //if (Tipo.IsList())
                cad += "]";
                //else
                //cad += "}";
            }

            return(cad);
        }