public override Lucene.Net.Analysis.Token Next()
			{
				for (Lucene.Net.Analysis.Token t = input.Next(); t != null; t = input.Next())
				{
					if (t.TermText().Equals("the"))
					{
						// stopword, do nothing
					}
					else if (t.TermText().Equals("quick"))
					{
						Lucene.Net.Analysis.Token token = new Lucene.Net.Analysis.Token(t.TermText(), t.StartOffset(), t.EndOffset(), t.Type());
						token.SetPositionIncrement(2);
						return token;
					}
					else
					{
						Lucene.Net.Analysis.Token token = new Lucene.Net.Analysis.Token(t.TermText(), t.StartOffset(), t.EndOffset(), t.Type());
						token.SetPositionIncrement(1);
						return token;
					}
				}
				return null;
			}
			public override Lucene.Net.Analysis.Token Next()
			{
				if (Lucene.Net.QueryParsers.TestMultiAnalyzer.multiToken > 0)
				{
					Lucene.Net.Analysis.Token token = new Lucene.Net.Analysis.Token("multi" + (Lucene.Net.QueryParsers.TestMultiAnalyzer.multiToken + 1), prevToken.StartOffset(), prevToken.EndOffset(), prevToken.Type());
					token.SetPositionIncrement(0);
					Lucene.Net.QueryParsers.TestMultiAnalyzer.multiToken--;
					return token;
				}
				else
				{
					Lucene.Net.Analysis.Token t = input.Next();
					prevToken = t;
					if (t == null)
						return null;
					System.String text = t.TermText();
					if (text.Equals("triplemulti"))
					{
						Lucene.Net.QueryParsers.TestMultiAnalyzer.multiToken = 2;
						return t;
					}
					else if (text.Equals("multi"))
					{
						Lucene.Net.QueryParsers.TestMultiAnalyzer.multiToken = 1;
						return t;
					}
					else
					{
						return t;
					}
				}
			}