public IGrammarParser CreateGrammar() {
		
			List<IGrammarIdentifier> identifiers = new List<IGrammarIdentifier> ();

			List<DefaultGram> unidentified = new List<DefaultGram> ();

			English1AdverbIdentifier adverbs = null;
			English1AdjectiveIdentifier adjectives = null;

			foreach (DefaultGram gram in m_grammar.Grammar) {
			
				if (gram.Name == "noun") {

					identifiers.Add (new English1NounIdentifier (gram, m_counter));

				} else if (gram.Name == "verb") {

					identifiers.Add (new English1VerbIdentifier (gram, m_counter));

				} else if (gram.Name == "adjective") {

					adjectives = new English1AdjectiveIdentifier (gram, m_counter);

						identifiers.Add (adjectives);

				} else if (gram.Name == "adverb") {

					adverbs = new English1AdverbIdentifier (gram, m_counter);
					identifiers.Add (adverbs);

				}   else {

					unidentified.Add (gram);
				}
			}

			foreach (DefaultGram gram in unidentified) {
			
				identifiers.Add (new GenericGrammarIdentifier (unidentified, m_counter));

			}

			adjectives.ContainsWordDelegate = adverbs;
			adverbs.ContainsWordDelegate = adjectives;

			return new DefaultGrammarParser (identifiers, m_grammar.IgnoreIdentifiers, m_grammar.IgnoreWords);
		}
        public IGrammarParser CreateGrammar()
        {
            List <IGrammarIdentifier> identifiers = new List <IGrammarIdentifier> ();

            List <DefaultGram> unidentified = new List <DefaultGram> ();

            English1AdverbIdentifier    adverbs    = null;
            English1AdjectiveIdentifier adjectives = null;

            foreach (DefaultGram gram in m_grammar.Grammar)
            {
                if (gram.Name == "noun")
                {
                    identifiers.Add(new English1NounIdentifier(gram, m_counter));
                }
                else if (gram.Name == "verb")
                {
                    identifiers.Add(new English1VerbIdentifier(gram, m_counter));
                }
                else if (gram.Name == "adjective")
                {
                    adjectives = new English1AdjectiveIdentifier(gram, m_counter);

                    identifiers.Add(adjectives);
                }
                else if (gram.Name == "adverb")
                {
                    adverbs = new English1AdverbIdentifier(gram, m_counter);
                    identifiers.Add(adverbs);
                }
                else
                {
                    unidentified.Add(gram);
                }
            }

            foreach (DefaultGram gram in unidentified)
            {
                identifiers.Add(new GenericGrammarIdentifier(unidentified, m_counter));
            }

            adjectives.ContainsWordDelegate = adverbs;
            adverbs.ContainsWordDelegate    = adjectives;

            return(new DefaultGrammarParser(identifiers, m_grammar.IgnoreIdentifiers, m_grammar.IgnoreWords));
        }