private static void AnalyseProgram(Grammar g, Dictionary <string, Dictionary <string, Rule> > parseTable) { Console.Write("Give path to program: "); string path = Console.ReadLine(); string program = File.ReadAllText(path); SymbolTable sti = new SymbolTable(); SymbolTable stc = new SymbolTable(); ProgramInternalForm pif = new ProgramInternalForm(); LexicalAnalyzer.Analyze(program, sti, stc, pif); Console.WriteLine(pif); List <int> result = ParsingAlgorithm.LL1(parseTable, g, pif); if (result != null) { Console.WriteLine("Sequence accepted!\n"); foreach (int index in result) { Console.Write(index + " "); } Console.WriteLine("\n"); } else { Console.WriteLine("Sequence NOT accepted!\n"); } }
private static void AnalyseSequence(Grammar g, Dictionary <string, Dictionary <string, Rule> > parseTable) { Console.Write("Give sequence: "); string sequence = Console.ReadLine(); List <int> result = ParsingAlgorithm.LL1(parseTable, g, sequence); if (result != null) { Console.WriteLine("Sequence accepted!\n"); foreach (int index in result) { Console.Write(index + " "); } Console.WriteLine("\n"); } else { Console.WriteLine("Sequence NOT accepted!\n"); } }