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 ());
}