GVariant parser: match strings without consuming

Add a new function that allows the parser to check that the current
token is equal to a given string without consuming the token.
Reimplement the 'consume' function in terms of the new function.
This commit is contained in:
Ryan Lortie 2011-03-31 14:45:50 +05:30
parent f6dff49136
commit 24ed841d6a

View File

@ -303,22 +303,25 @@ token_stream_is_numeric (TokenStream *stream)
}
static gboolean
token_stream_consume (TokenStream *stream,
const gchar *token)
token_stream_peek_string (TokenStream *stream,
const gchar *token)
{
gint length = strlen (token);
if (!token_stream_prepare (stream))
return token_stream_prepare (stream) &&
stream->stream - stream->this == length &&
memcmp (stream->this, token, length) == 0;
}
static gboolean
token_stream_consume (TokenStream *stream,
const gchar *token)
{
if (!token_stream_peek_string (stream, token))
return FALSE;
if (stream->stream - stream->this == length &&
memcmp (stream->this, token, length) == 0)
{
token_stream_next (stream);
return TRUE;
}
return FALSE;
token_stream_next (stream);
return TRUE;
}
static gboolean