System.Web.Compilation.AspParser.GetVerbatim C# (CSharp) Method

GetVerbatim() private method

private GetVerbatim ( int token, string end ) : string
token int
end string
return string
		string GetVerbatim (int token, string end)
		{
			StringBuilder vb_text = new StringBuilder ();
			StringBuilder tmp = new StringBuilder ();
			int i = 0;

			if (tokenizer.Value.Length > 1){
				// May be we have a put_back token that is not a single character
				vb_text.Append (tokenizer.Value);
				token = tokenizer.get_token ();
			}

			end = end.ToLower (Helpers.InvariantCulture);
			int repeated = 0;
			for (int k = 0; k < end.Length; k++)
				if (end [0] == end [k])
					repeated++;
			
			while (token != Token.EOF){
				if (Char.ToLower ((char) token, Helpers.InvariantCulture) == end [i]){
					if (++i >= end.Length)
						break;
					tmp.Append ((char) token);
					token = tokenizer.get_token ();
					continue;
				} else if (i > 0) {
					if (repeated > 1 && i == repeated && (char) token == end [0]) {
						vb_text.Append ((char) token);
						token = tokenizer.get_token ();
						continue;
					}
					vb_text.Append (tmp.ToString ());
					tmp.Remove (0, tmp.Length);
					i = 0;
				}

				vb_text.Append ((char) token);
				token = tokenizer.get_token ();
			} 

			if (token == Token.EOF)
				OnError ("Expecting " + end + " and got EOF.");

			return RemoveComments (vb_text.ToString ());
		}