xexprparse

xexprparse — A parser for the XEXPR language

Stability Level

Stable, unless otherwise indicated

Synopsis


#include <libxexpr/xexpr.h>

#define             XEXPR_PARSE_ERROR
enum                XexprParseError;
GQuark              xexpr_parse_error_quark             (void);
gboolean            xexpr_parse_fragment                (Xexpr *xexpr,
                                                         xmlNode *xml,
                                                         GError **err);
gboolean            xexpr_parse_node                    (Xexpr *xexpr,
                                                         xmlNode *node,
                                                         GError **err);

Description

A parser for the XEXPR language.

Details

XEXPR_PARSE_ERROR

#define XEXPR_PARSE_ERROR		xexpr_parse_error_quark()

Used to get the GError quark for libxexpr parser errors.


enum XexprParseError

typedef enum
{
    XEXPR_PARSE_ERROR_FAILED
} XexprParseError;

Enum values for parser errors.

XEXPR_PARSE_ERROR_FAILED

Indicates a generic failure.

xexpr_parse_error_quark ()

GQuark              xexpr_parse_error_quark             (void);

Registers an error quark for the libxexpr parser if necessary.

Returns :

The error quark used for libxexpr parser errors.

xexpr_parse_fragment ()

gboolean            xexpr_parse_fragment                (Xexpr *xexpr,
                                                         xmlNode *xml,
                                                         GError **err);

Parse an XEXPR expression consisting of xml and its siblings.

Typical usage of this function might be:

   xpathObj=xmlXPathEvalExpression(BAD_CAST "//params/setting",xpathCtx);
   xml=xpathObj?xpathObj->nodesetval->nodeTab[0]:NULL;
   if (xml && !xexpr_parse_fragment(xexpr,xml->children,&err))
   {
       fprintf(stderr,"%s: %s\n",filename,err->message);
       exit(1);
   }

xexpr :

an Xexpr

xml :

the first xmlNode to parse

err :

location to store error, or NULL.. allow-none.

Returns :

TRUE if xml was successfully parsed.

xexpr_parse_node ()

gboolean            xexpr_parse_node                    (Xexpr *xexpr,
                                                         xmlNode *node,
                                                         GError **err);

Parse an XEXPR expression whose root is node.

Typical usage of this function might be:

   doc=xmlReadFile(filename,NULL,0);
   if (doc && !xexpr_parse_node(xexpr,xmlDocGetRootElement(doc),&err))
   {
       fprintf(stderr,"%s: %s\n",filename,err->message);
       exit(1);
   }

xexpr :

an Xexpr

node :

the xmlNode to parse

err :

location to store error, or NULL.. allow-none.

Returns :

TRUE if node was successfully parsed.