public static void AñadirVariable(Nodo var) { Variable x; x.nombre = var.getLexema(); x.linea = var.getLinea(); x.tipo = var.getTipoDato(); if (!BuscarVariable(var)) { tabla.Add(var.getLexema(), x); tablaS.Add(var.getLexema() + "/" + var.getLinea() + "/" + var.getTipoDato().ToString()); } else { // Console.WriteLine($"Var = {var.getLexema()} no añadida\t"); errores.Add($"La llave {var.getLexema()} ya se encuentra en la tabla"); } /* try * { * tabla.Add(var.getLexema(), x); * } * catch * { * errores.Add($"La llave {var.getLexema()} ya se encuentra en la tabla"); * ; * }*/ }
public static void ActualizarVariable(Nodo var) { Variable temp = tabla[var.getLexema()]; temp.linea = var.getLinea(); //temp.tipo = var.getTipoDato(); tabla[var.getLexema()] = temp; }
private void ImprimirArbol(Nodo nodo) { if (nodo != null) { nodosArbol += $"Linea:{nodo.getLinea()}, Lexema:{nodo.getLexema()}, Token:{nodo.getTipoToken()}, Tipo:{nodo.getTipoDato()}" + Environment.NewLine;; ImprimirArbol(nodo.hijos[0]); ImprimirArbol(nodo.hijos[1]); ImprimirArbol(nodo.hijos[2]); ImprimirArbol(nodo.hermano); } }
private static void TypeError(Nodo n, string msg) { errores.Add($"Error de tipo en linea {n.getLinea()}: {msg}"); }