public string verificarIdentificadoresReservados(SymbolsTable table) { string resultado = ""; foreach (Symbols simbolo in table.Simbolos) { if (this.lexicConfig.reservadas.Contains(simbolo.Id)) { resultado += "El identificador [" + simbolo.Id + "] esta utilizando una palabra reservada \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Estas usando como nombre de variable una palabra que pertenece al lenguaje JAVA. Intenta cambiarla."); } } return(resultado); }
public string verificarIdentificadores(SymbolsTable tabla) { var listaIds = new List <string>(); string resultado = ""; foreach (Symbols simbolo in tabla.Simbolos) { string id = simbolo.Id; if (!listaIds.Contains(id)) { listaIds.Add(id); } else { resultado += "El identificador [" + id + "] esta repetido \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Ops!. Parece que esta variable ya fue declarada Revisa tu código."); } } return(resultado); }
public string verificarTipoDeDato(SymbolsTable tabla) { var listaIds = new List <string>(); string resultado = ""; #region vaTypes Boolean boolType; int intType; float floatType; long longType; double doubleType; #endregion foreach (Symbols simbolo in tabla.Simbolos) { switch (simbolo.Tipo.ToLower()) { case "boolean": if (!bool.TryParse(simbolo.Dato, out boolType)) { resultado += "Incoherencia de valores en [" + simbolo.Id + "] ->" + " - No puedes asignar un valor <" + simbolo.Dato + "> a una variable de tipo Bool. \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Tienes una error aqui en el tipo de dato asignado al tipo boolean." ); } break; case "int": if (!int.TryParse(simbolo.Dato, out intType)) { resultado += "Incoherencia de valores en [" + simbolo.Id + "] \r\n" + " - No puedes asignar un valor <" + simbolo.Dato + "> a una variable de tipo int. \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Tienes una error aqui en el tipo de dato asignado al tipo int."); } break; case "float": if (!float.TryParse(simbolo.Dato, out floatType)) { resultado += "Incoherencia de valores en [" + simbolo.Id + "] \r\n" + " - No puedes asignar un valor <" + simbolo.Dato + "> a una variable de tipo float. \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Tienes una error aqui en el tipo de dato asignado al tipo float."); } break; case "long": if (!long.TryParse(simbolo.Dato, out longType)) { resultado += "Incoherencia de valores en [" + simbolo.Id + "] \r\n" + " - No puedes asignar un valor <" + simbolo.Dato + "> a una variable de tipo Long. \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Tienes una error aqui en el tipo de dato asignado al tipo long."); } break; case "double": if (!double.TryParse(simbolo.Dato, out doubleType)) { resultado += "Incoherencia de valores en [" + simbolo.Id + "] \r\n" + " - No puedes asignar un valor <" + simbolo.Dato + "> a una variable de tipo Double. \r\n" + getErrorLine(simbolo.Tipo + " " + simbolo.Id + " " + simbolo.Operador + " " + simbolo.Dato, "Tienes una error aqui en el tipo de dato asignado al tipo double."); } break; default: break; } } return(resultado); }