Example #1
0
        public Nodo asignarValor(string identificador, Nodo valor, TablaSimbolo global)
        {
            Simbolo aux = getSimbolo(identificador);    //busca en esta tabla

            if (aux == null)                            //si el simbolo no esta en esta tabla
            {
                aux = global.getSimbolo(identificador); //busca en la tabla global
            }
            if (aux == null)
            {
                return(new Nodo(0, 0, "La variable:" + identificador + " no existe", "<error>"));
            }
            return(aux.asignar(valor));//se retorna null si todo salio bien
        }
Example #2
0
        public Nodo getValor(string identificador, TablaSimbolo global) //tomado como base el ejemplo
        {
            Simbolo aux = getSimbolo(identificador);                    //busca en esta tabla

            if (aux == null)                                            //si el simbolo no esta en esta tabla
            {
                aux = global.getSimbolo(identificador);                 //busca en la tabla global
            }
            if (aux == null)                                            //si aun asi no lo encuentra
            {
                return(null);                                           //<error> la variable no existe
            }
            return(aux.Valor);                                          //si el simbolo no tuviese un valor asignado, el se encarga de mandarme un ParseNode con mensaje de error
        }
Example #3
0
        public void mas_menos(string identificador, TablaSimbolo global, bool mas)
        {
            Simbolo aux = getSimbolo(identificador);    //busca en esta tabla

            if (aux == null)                            //si el simbolo no esta en esta tabla
            {
                aux = global.getSimbolo(identificador); //busca en la tabla global
            }
            if (aux == null)
            {
                return;
            }
            double valor = double.Parse(aux.Valor.ToString());

            if (mas)
            {
                valor++;
            }
            else
            {
                valor--;
            }
            aux.asignar(new Nodo(0, 0, valor.ToString(), "Double"));
        }