//------------------Privados que se usan para genera AUTÓMATA---------------------------- private void GenerarExpresionRegular() { var especiales = new List <string>(); especiales.Add("~"); especiales.Add("¬"); especiales.Add("^"); especiales.Add("¨"); foreach (var Token in ManejadorArchivo.Tokens) { var token = ""; if (Token.Key != "TOKENS") { foreach (var item in Token.Value) { if (token.Length - 1 >= 0) { if (token[token.Length - 1] != '(' && token[token.Length - 1] != ')' && token[token.Length - 1] != '|' && item != "\')" && item != "\'|" && item != "\')*") { token += "."; } } if (item.Contains("*")) { var aux = item.Substring(0, item.Length - 1); if (ManejadorArchivo.Sets.ContainsKey(aux)) { if (!DiccionarioSustitucion.ContainsValue(aux)) { DiccionarioSustitucion.Add(especiales[0], aux); especiales.RemoveAt(0); foreach (var item2 in DiccionarioSustitucion) { if (item2.Value == aux) { token += item2.Key + "*"; } } } else { foreach (var item2 in DiccionarioSustitucion) { if (item2.Value == aux) { token += item2.Key + "*"; } } } } else { if (item.Contains('\'')) //si tiene comilla simple no se le agrega concateniacion, { token += item.Trim('\''); } else { token += item; } } } else if (ManejadorArchivo.Sets.ContainsKey(item)) { if (!DiccionarioSustitucion.ContainsValue(item)) { DiccionarioSustitucion.Add(especiales[0], item); especiales.RemoveAt(0); foreach (var item2 in DiccionarioSustitucion) { if (item2.Value == item) { token += item2.Key; } } } else { foreach (var item2 in DiccionarioSustitucion) { if (item2.Value == item) { token += item2.Key; } } } } else if (item.Contains('\'')) //si tiene comilla simple no se le agrega concateniacion, { token += item.Trim('\''); } else { token += item; } } ExpresionRegular += token + "|"; } } ExpresionRegular = ExpresionRegular.TrimEnd('|'); }