private int DetermineFormat( TokenizerStream stream )
{
if (stream.GetNextToken() == Tokenizer.bra)
{
if (stream.GetNextToken() == Tokenizer.quest)
{
_t.GetTokens( stream, -1, true );
stream.GoToPosition( 2 );
bool sawEquals = false;
bool sawEncoding = false;
short i;
for (i = stream.GetNextToken(); i != -1 && i != Tokenizer.ket; i = stream.GetNextToken())
{
switch (i)
{
case Tokenizer.cstr:
if (sawEquals && sawEncoding)
{
_t.ChangeFormat( System.Text.Encoding.GetEncoding( stream.GetNextString() ) );
return 0;
}
else if (!sawEquals)
{
if (String.Compare( stream.GetNextString(), "encoding", StringComparison.Ordinal) == 0)
sawEncoding = true;
}
else
{
sawEquals = false;
sawEncoding = false;
stream.ThrowAwayNextString();
}
break;
case Tokenizer.equals:
sawEquals = true;
break;
default:
throw new XmlSyntaxException (_t.LineNo, Environment.GetResourceString( "XMLSyntax_UnexpectedEndOfFile" ));
}
}
return 0;
}
}
return 2;
}