XesamGUserSearchParser

XesamGUserSearchParser — A general purpose parser for the Xesam User Search Language

Synopsis

                    XesamGUserSearchParserPrivate;
                    XesamGUserSearchParser;
enum                XesamGUserSearchParserError;
void                xesam_g_user_search_parser_add_builder
                                                        (XesamGUserSearchParser *self,
                                                         XesamGQueryBuilder *builder);
XesamGUserSearchParser* xesam_g_user_search_parser_new  (void);
gboolean            xesam_g_user_search_parser_parse_string
                                                        (XesamGUserSearchParser *self,
                                                         const char *text,
                                                         GError **error);
#define             XESAM_G_USER_SEARCH_PARSER_ERROR

Object Hierarchy

  GObject
   +----XesamGUserSearchParser

Properties

  "emit-query-tokens"        gboolean              : Read / Write

Description

XesamGUserSearchParser is a general purpose parser for the Xesam User Search Language version 1.0.

To actually build a query that is machine understandable a XesamGQueryBuilder should be implemented by the consumer and added to the parser via xesam_g_user_search_parser_add_builder().

XesamGUserSearchParser is available since 1.0

Details

XesamGUserSearchParserPrivate

typedef struct _XesamGUserSearchParserPrivate XesamGUserSearchParserPrivate;


XesamGUserSearchParser

typedef struct _XesamGUserSearchParser XesamGUserSearchParser;


enum XesamGUserSearchParserError

typedef enum  {
	XESAM_G_USER_SEARCH_PARSER_ERROR_CONCURRENT_PARSE,
	XESAM_G_USER_SEARCH_PARSER_ERROR_MALFORMED_SEARCH_STRING,
	XESAM_G_USER_SEARCH_PARSER_ERROR_EMPTY_QUERY,
	XESAM_G_USER_SEARCH_PARSER_ERROR_INTERNAL
} XesamGUserSearchParserError;


xesam_g_user_search_parser_add_builder ()

void                xesam_g_user_search_parser_add_builder
                                                        (XesamGUserSearchParser *self,
                                                         XesamGQueryBuilder *builder);

Add a XesamGQueryBuilder to a user search parser. When the parser has build a query from the user string the relevant methods on all registered builders will be invoked. More than one builder may be registered via this function.

The consumer need to add a way to retrieve the compiled query from builder itself.

self :

The parser to add the builder to

builder :

The builder to add

xesam_g_user_search_parser_new ()

XesamGUserSearchParser* xesam_g_user_search_parser_new  (void);

Returns :


xesam_g_user_search_parser_parse_string ()

gboolean            xesam_g_user_search_parser_parse_string
                                                        (XesamGUserSearchParser *self,
                                                         const char *text,
                                                         GError **error);

Parse a NULL-terminated string formatted in the Xesam 1.0 User Search Language. Returns TRUE if and only if the parsing complete without errors.

When this method returns succesfully the compiled query can be retrieved from the XesamGQueryBuilders installed with xesam_g_user_search_parser_add_builder(). The application consuming the parser needs to add a way to retrieve the query from the builder it self.

self :

The parser to use

text :

error :

An optional place to store a GError or NULL to ignore errors

Returns :

TRUE if and only if the parsing completed without errors

XESAM_G_USER_SEARCH_PARSER_ERROR

#define XESAM_G_USER_SEARCH_PARSER_ERROR xesam_g_user_search_parser_error_quark ()

Property Details

The "emit-query-tokens" property

  "emit-query-tokens"        gboolean              : Read / Write

If TRUE xesam_g_query_builder_start_query() and xesam_g_query_builder_close_query() will be invoked on the query builders installed with xesam_g_user_search_parser_add_builder().

If this property is FALSE only the tokens not of a query type will be emitted. This is useful for embedding queries from user search strings inside queries constructed from other sources (such as xml).

Default value: TRUE