Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void forLab4()
- {
- var nonterms = "ETFGH";
- var terms = "+-*/nmh";
- ContextFreeGrammar CFGrammar = new ContextFreeGrammar(terms.ToCharArray(), nonterms.ToCharArray());
- CFGrammar.AddRule("E", "T");
- CFGrammar.AddRule("E", "E+T");
- CFGrammar.AddRule("E", "E-T");
- CFGrammar.AddRule("E", "eps");
- CFGrammar.AddRule("T", "F");
- CFGrammar.AddRule("T", "F*T");
- CFGrammar.AddRule("T", "F/T");
- CFGrammar.AddRule("T", "eps");
- CFGrammar.AddRule("F", "G");
- CFGrammar.AddRule("F", "Fn");
- CFGrammar.AddRule("F", "n");
- CFGrammar.AddRule("G", "Gm");
- CFGrammar.AddRule("H", "Hh");
- CFGrammar.AddRule("H", "h");
- CFGrammar.Show();
- Console.WriteLine("Grammar type: " + CFGrammar.IsContextFree());
- Console.WriteLine(CFGrammar.IsExisting() ? "Grammar is existing\n" : "Grammar is not existing\n");
- CFGrammar.DeleteUselessNonterminals();
- CFGrammar.Show();
- CFGrammar.DeleteUnreachableSymbols();
- CFGrammar.Show();
- CFGrammar.DeleteEpsilonRules();
- CFGrammar.Show();
- CFGrammar.DeleteChainRules();
- CFGrammar.Show();
- CFGrammar.DeleteLeftFactorizedRules();
- CFGrammar.Show();
- CFGrammar.DeleteLeftRecursion();
- CFGrammar.Show();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement