}
public static void main(String[] args) {
eas.math.fundamentalAlgorithms.graphBased.algorithms.type0grammars.Grammar g = new eas.math.fundamentalAlgorithms.graphBased.algorithms.type0grammars.Grammar();
g.addRule(new Rule(
new Word(new Symbol[] {new Nonterminal(new StringBuffer("S"))}),
new Word(new Symbol[] {
new Nonterminal(new StringBuffer("a")),
new Nonterminal(new StringBuffer("S")),
new Terminal(new StringBuffer("b"))})));
g.addRule(new Rule(
new Word(new Symbol[] {new Nonterminal(new StringBuffer("S"))}),
new Word(new Symbol[] {
new Nonterminal(new StringBuffer("S")),
new Terminal(new StringBuffer("S"))})));
g.addRule(new Rule(
new Word(new Symbol[] {new Nonterminal(new StringBuffer("S"))}),
new Word(new Symbol[] {new Terminal(new StringBuffer("a")), new Terminal(new StringBuffer("b"))})));
CtxtFreeGrammar g2 = new CtxtFreeGrammar(g);