private void ProcessGrammarElement(SrgsGrammar source, IGrammar grammar)
 {
     grammar.Culture = source.Culture;
     grammar.Mode    = source.Mode;
     if (source.Root != null)
     {
         grammar.Root = source.Root.Id;
     }
     grammar.TagFormat        = source.TagFormat;
     grammar.XmlBase          = source.XmlBase;
     grammar.GlobalTags       = source.GlobalTags;
     grammar.PhoneticAlphabet = source.PhoneticAlphabet;
     foreach (SrgsRule rule2 in source.Rules)
     {
         IRule rule = ParseRule(grammar, rule2);
         rule.PostParse(grammar);
     }
     grammar.AssemblyReferences = source.AssemblyReferences;
     grammar.CodeBehind         = source.CodeBehind;
     grammar.Debug            = source.Debug;
     grammar.ImportNamespaces = source.ImportNamespaces;
     grammar.Language         = ((source.Language == null) ? "C#" : source.Language);
     grammar.Namespace        = source.Namespace;
     _parser.AddScript(grammar, source.Script, null, -1);
     grammar.PostParse(null);
 }