Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. static void forLab4()
  2. {
  3.  
  4. var nonterms = "ETFGH";
  5. var terms = "+-*/nmh";
  6.  
  7. ContextFreeGrammar CFGrammar = new ContextFreeGrammar(terms.ToCharArray(), nonterms.ToCharArray());
  8.  
  9. CFGrammar.AddRule("E", "T");
  10. CFGrammar.AddRule("E", "E+T");
  11. CFGrammar.AddRule("E", "E-T");
  12. CFGrammar.AddRule("E", "eps");
  13.  
  14. CFGrammar.AddRule("T", "F");
  15. CFGrammar.AddRule("T", "F*T");
  16. CFGrammar.AddRule("T", "F/T");
  17. CFGrammar.AddRule("T", "eps");
  18.  
  19. CFGrammar.AddRule("F", "G");
  20. CFGrammar.AddRule("F", "Fn");
  21. CFGrammar.AddRule("F", "n");
  22.  
  23. CFGrammar.AddRule("G", "Gm");
  24. CFGrammar.AddRule("H", "Hh");
  25. CFGrammar.AddRule("H", "h");
  26.  
  27.  
  28. CFGrammar.Show();
  29. Console.WriteLine("Grammar type: " + CFGrammar.IsContextFree());
  30. Console.WriteLine(CFGrammar.IsExisting() ? "Grammar is existing\n" : "Grammar is not existing\n");
  31. CFGrammar.DeleteUselessNonterminals();
  32. CFGrammar.Show();
  33. CFGrammar.DeleteUnreachableSymbols();
  34. CFGrammar.Show();
  35. CFGrammar.DeleteEpsilonRules();
  36. CFGrammar.Show();
  37. CFGrammar.DeleteChainRules();
  38. CFGrammar.Show();
  39. CFGrammar.DeleteLeftFactorizedRules();
  40. CFGrammar.Show();
  41. CFGrammar.DeleteLeftRecursion();
  42. CFGrammar.Show();
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement