XesamGQueryParser

XesamGQueryParser — A general purpose parser for the Xesam Query Language

Synopsis

                    XesamGQueryParserPrivate;
                    XesamGQueryParser;
enum                XesamGQueryParserError;
void                xesam_g_query_parser_add_builder    (XesamGQueryParser *self,
                                                         XesamGQueryBuilder *builder);
XesamGQueryParser*  xesam_g_query_parser_new            (void);
gboolean            xesam_g_query_parser_parse_string   (XesamGQueryParser *self,
                                                         const char *query,
                                                         GError **error);
#define             XESAM_G_QUERY_PARSER_ERROR

Object Hierarchy

  GObject
   +----XesamGQueryParser

Description

XesamGQueryParser is a general purpose parser for the Xesam Query 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_query_parser_add_builder().

XesamGQueryParser is available since 1.0

Details

XesamGQueryParserPrivate

typedef struct _XesamGQueryParserPrivate XesamGQueryParserPrivate;


XesamGQueryParser

typedef struct _XesamGQueryParser XesamGQueryParser;


enum XesamGQueryParserError

typedef enum  {
	XESAM_G_QUERY_PARSER_ERROR_CONCURRENT_PARSE,
	XESAM_G_QUERY_PARSER_ERROR_MALFORMED_QUERY,
	XESAM_G_QUERY_PARSER_ERROR_MISSING_REQUEST,
	XESAM_G_QUERY_PARSER_ERROR_UNKNOWN_ELEMENT
} XesamGQueryParserError;


xesam_g_query_parser_add_builder ()

void                xesam_g_query_parser_add_builder    (XesamGQueryParser *self,
                                                         XesamGQueryBuilder *builder);

Add a XesamGQueryBuilder to be notified when parsing a query. It is possible to add more than one builder to a query parser.

As the query parser scans through a query the methods of the builder will be invoked appropriately. Applications should provide their own implementations of XesamGQueryBuilders adding some way to retrieve the build query.

self :

The query parser to add a builder to

builder :

The query builder to add

xesam_g_query_parser_new ()

XesamGQueryParser*  xesam_g_query_parser_new            (void);

Returns :


xesam_g_query_parser_parse_string ()

gboolean            xesam_g_query_parser_parse_string   (XesamGQueryParser *self,
                                                         const char *query,
                                                         GError **error);

Parse a NULL-terminated string. Returns TRUE if and only if the parsing complete without errors.

When this method returns succesfully the query can be retrieved from all XesamGQueryBuilders registered on this parser with xesam_g_query_parser_add_builder(). Applications need to add a way to retrieve the parsed query from the builder(s).

self :

The parser to use

query :

A NULL-terminated string in the Xesam Query Language

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_QUERY_PARSER_ERROR

#define XESAM_G_QUERY_PARSER_ERROR xesam_g_query_parser_error_quark ()