BnfGrammar Convert(EbnfGrammar EG)
 {
     Bnf       = new BnfGrammar();
     Footprint = new OperationFootprintGroup <EbnfGrammar, BnfGrammar> (EG, Bnf);
     foreach (var er in EG.Rules)
     {
         BnfRule br = Convert(er);
     }
     Footprint.Parts = ops.ToArray();
     return(Bnf);
 }
 EbnfGrammar Convert(EbnfGrammar input)
 {
     Before    = input;
     After     = new EbnfGrammar();
     Footprint = new OperationFootprintGroup <EbnfGrammar, EbnfGrammar> (Before, After);
     foreach (var er in Before.Rules)
     {
         //ProcessRuleRecursivelyAddNewRulesWhenNeeded (er);
         //BnfRule br = Convert (er);
     }
     Footprint.Parts = ops.ToArray();
     return(After);
 }