public static void Display_Table() { var terminale = Get_Terminals(); Console.Write(" "); for (int i = 0; i < terminale.Count; i++) { Console.Write(" " + terminale[i] + " "); } Console.WriteLine(); for (int i = 0; i < Graf_List.Count; i++) { var rand = new List <String>(); for (int t = 0; t < terminale.Count; t++) { rand.Add("*"); } for (int t = 0; t < terminale.Count; t++) { var simbol = terminale[t]; if (simbol.Equals("$") && Graf_List[i].Lista_noduri[0].Equals("S'>S.,$") == true) { rand[terminale.IndexOf(simbol)] = "acc"; } else if (char.IsLower(simbol.ToCharArray()[0])) { var item = Graf_List[i].Lista_noduri.Where(elem => elem.Split('.')[1][0].ToString().Equals(simbol.ToString())).FirstOrDefault(); if (item != null) { var new_item = Move_Dot(item, 1); var indice = Graf_List.IndexOf(Graf_List.Where(elem => elem.Lista_noduri[0].Equals(new_item)).FirstOrDefault()); rand[terminale.IndexOf(simbol)] = "s" + indice; } } else if (char.IsUpper(simbol.ToCharArray()[0])) { var item = Graf_List[i].Lista_noduri.Where(elem => elem.Split('.')[1][0].ToString().Equals(simbol.ToString())).FirstOrDefault(); if (item != null) { var new_item = Move_Dot(item, 1); var indice = Graf_List.IndexOf(Graf_List.Where(elem => elem.Lista_noduri[0].Equals(new_item)).FirstOrDefault()); rand[terminale.IndexOf(simbol)] = indice.ToString(); } } foreach (var item in Graf_List[i].Lista_noduri) { if (item.Split('.')[1][0].Equals(',') && item.Equals("S'>S.,$") == false) { var after = item.Split(',')[1].Split('/'); var before = item.Split('.')[0]; var key = Dictionary_Grammer.Where(elem => elem.Value.Equals(before.ToString())).FirstOrDefault().Key; foreach (var aft in after) { if (aft.ToString().Equals(simbol.ToString())) { if (rand[terminale.IndexOf(simbol)].Equals("*")) { rand[terminale.IndexOf(simbol)] = "r" + (key + 1); } else { rand[terminale.IndexOf(simbol)] += ",r" + (key + 1); } } } } } } MatrixTable.Add(rand); } for (int i = 0; i < MatrixTable.Count; i++) { Console.Write(i + " "); for (int j = 0; j < MatrixTable[i].Count; j++) { Console.Write(" " + MatrixTable[i][j] + " "); } Console.WriteLine(); } }