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 }
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 }
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")); }