1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-11 14:41:06 +02:00
audacity/lib-src/redland/rasqal/docs/html/rasqal-section-expression.html
2010-01-24 09:19:39 +00:00

982 lines
48 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Expressions</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Rasqal RDF Query Library Manual">
<link rel="up" href="pt01.html" title="Part I. Reference Manual">
<link rel="prev" href="rasqal-section-data.html" title="Data Graphs">
<link rel="next" href="rasqal-section-graph-pattern.html" title="Graph patterns">
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="rasqal.html" title="Rasqal Overview">
<link rel="part" href="pt01.html" title="Part I. Reference Manual">
<link rel="index" href="ix01.html" title="Index">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="rasqal-section-data.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Rasqal RDF Query Library Manual</th>
<td><a accesskey="n" href="rasqal-section-graph-pattern.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#rasqal-section-expression.synopsis" class="shortcut">Top</a>
 | 
<a href="#rasqal-section-expression.description" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="rasqal-section-expression"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="rasqal-section-expression.top_of_page"></a>Expressions</span></h2>
<p>Expressions — Query language expressions.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="rasqal-section-expression.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
typedef <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>;
enum <a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a>;
enum <a class="link" href="rasqal-section-expression.html#rasqal-compare-flags" title="enum rasqal_compare_flags">rasqal_compare_flags</a>;
enum <a class="link" href="rasqal-section-expression.html#rasqal-pattern-flags" title="enum rasqal_pattern_flags">rasqal_pattern_flags</a>;
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-0op-expression" title="rasqal_new_0op_expression ()">rasqal_new_0op_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-1op-expression" title="rasqal_new_1op_expression ()">rasqal_new_1op_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-2op-expression" title="rasqal_new_2op_expression ()">rasqal_new_2op_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg2);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-3op-expression" title="rasqal_new_3op_expression ()">rasqal_new_3op_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg2,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg3);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-cast-expression" title="rasqal_new_cast_expression ()">rasqal_new_cast_expression</a> (<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-uri.html#raptor-uri"
>raptor_uri</a> *name,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *value);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-function-expression" title="rasqal_new_function_expression ()">rasqal_new_function_expression</a> (<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-uri.html#raptor-uri"
>raptor_uri</a> *name,
<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"
>raptor_sequence</a> *args);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-literal-expression" title="rasqal_new_literal_expression ()">rasqal_new_literal_expression</a> (<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a> *literal);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-string-op-expression" title="rasqal_new_string_op_expression ()">rasqal_new_string_op_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a> *literal);
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* <a class="link" href="rasqal-section-expression.html#rasqal-new-expression-from-expression" title="rasqal_new_expression_from_expression ()">rasqal_new_expression_from_expression</a>
(<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);
void <a class="link" href="rasqal-section-expression.html#rasqal-free-expression" title="rasqal_free_expression ()">rasqal_free_expression</a> (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);
<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a>* <a class="link" href="rasqal-section-expression.html#rasqal-expression-evaluate" title="rasqal_expression_evaluate ()">rasqal_expression_evaluate</a> (<a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query">rasqal_query</a> *query,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
int flags);
void <a class="link" href="rasqal-section-expression.html#rasqal-expression-print" title="rasqal_expression_print ()">rasqal_expression_print</a> (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
FILE *fh);
void <a class="link" href="rasqal-section-expression.html#rasqal-expression-print-op" title="rasqal_expression_print_op ()">rasqal_expression_print_op</a> (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
FILE *fh);
int (<a class="link" href="rasqal-section-expression.html#rasqal-expression-visit-fn" title="rasqal_expression_visit_fn ()">*rasqal_expression_visit_fn</a>) (void *user_data,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);
int <a class="link" href="rasqal-section-expression.html#rasqal-expression-visit" title="rasqal_expression_visit ()">rasqal_expression_visit</a> (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
<a class="link" href="rasqal-section-expression.html#rasqal-expression-visit-fn" title="rasqal_expression_visit_fn ()">rasqal_expression_visit_fn</a> fn,
void *user_data);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="rasqal-section-expression.description"></a><h2>Description</h2>
<p>
Expressions form an expression tree that can be evaluated using
<a class="link" href="rasqal-section-expression.html#rasqal-expression-evaluate" title="rasqal_expression_evaluate ()"><code class="function">rasqal_expression_evaluate()</code></a> over <a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op"><span class="type">rasqal_op</span></a> operators, <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a>
constants and <a class="link" href="rasqal-section-variable.html#rasqal-variable" title="rasqal_variable"><span class="type">rasqal_variable</span></a> values bound in some
<span class="type">rasqal_query_result</span>. The result is a <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a> value.
</p>
</div>
<div class="refsect1" lang="en">
<a name="rasqal-section-expression.details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="rasqal-expression"></a><h3>rasqal_expression</h3>
<pre class="programlisting">typedef struct rasqal_expression_s rasqal_expression;
</pre>
<p>
expression (arg1), unary op (arg1), binary op (arg1,arg2),
literal or variable</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-op"></a><h3>enum rasqal_op</h3>
<pre class="programlisting">typedef enum {
/* internal */
RASQAL_EXPR_UNKNOWN,
RASQAL_EXPR_AND,
RASQAL_EXPR_OR,
RASQAL_EXPR_EQ,
RASQAL_EXPR_NEQ,
RASQAL_EXPR_LT,
RASQAL_EXPR_GT,
RASQAL_EXPR_LE,
RASQAL_EXPR_GE,
RASQAL_EXPR_UMINUS,
RASQAL_EXPR_PLUS,
RASQAL_EXPR_MINUS,
RASQAL_EXPR_STAR,
RASQAL_EXPR_SLASH,
RASQAL_EXPR_REM,
RASQAL_EXPR_STR_EQ,
RASQAL_EXPR_STR_NEQ,
RASQAL_EXPR_STR_MATCH,
RASQAL_EXPR_STR_NMATCH,
RASQAL_EXPR_TILDE,
RASQAL_EXPR_BANG,
RASQAL_EXPR_LITERAL,
RASQAL_EXPR_FUNCTION,
RASQAL_EXPR_BOUND,
RASQAL_EXPR_STR,
RASQAL_EXPR_LANG,
RASQAL_EXPR_DATATYPE,
RASQAL_EXPR_ISURI,
RASQAL_EXPR_ISBLANK,
RASQAL_EXPR_ISLITERAL,
RASQAL_EXPR_CAST,
RASQAL_EXPR_ORDER_COND_ASC,
RASQAL_EXPR_ORDER_COND_DESC,
RASQAL_EXPR_LANGMATCHES,
RASQAL_EXPR_REGEX,
RASQAL_EXPR_GROUP_COND_ASC,
RASQAL_EXPR_GROUP_COND_DESC,
RASQAL_EXPR_COUNT,
RASQAL_EXPR_VARSTAR,
RASQAL_EXPR_SAMETERM,
/* internal */
RASQAL_EXPR_LAST= RASQAL_EXPR_SAMETERM
} rasqal_op;
</pre>
<p>
Rasqal expression operators. A mixture of unary, binary and
tertiary operators (string matches). Also includes casting and
two ordering operators from ORDER BY in SPARQL.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="RASQAL-EXPR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_UNKNOWN</code></span></p></td>
<td> Internal
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-AND:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_AND</code></span></p></td>
<td> Expression for AND(A, B)
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-OR:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_OR</code></span></p></td>
<td> Expression for OR(A, B)
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-EQ:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_EQ</code></span></p></td>
<td> Expression for A equals B
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-NEQ:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_NEQ</code></span></p></td>
<td> Expression for A not equals B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LT:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LT</code></span></p></td>
<td> Expression for A less than B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-GT:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_GT</code></span></p></td>
<td> Expression for A greather than B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LE:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LE</code></span></p></td>
<td> Expression for A less than or equal to B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-GE:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_GE</code></span></p></td>
<td> Expression for A greater than or equal to B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-UMINUS:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_UMINUS</code></span></p></td>
<td> Expression for -A.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-PLUS:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_PLUS</code></span></p></td>
<td> Expression for +A.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-MINUS:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_MINUS</code></span></p></td>
<td> Expression for A-B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STAR:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STAR</code></span></p></td>
<td> Expression for A*B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-SLASH:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_SLASH</code></span></p></td>
<td> Expression for A/B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-REM:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_REM</code></span></p></td>
<td> Expression for A/B remainder.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STR-EQ:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STR_EQ</code></span></p></td>
<td> Expression for A string equals B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STR-NEQ:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STR_NEQ</code></span></p></td>
<td> Expression for A string not-equals B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STR-MATCH:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STR_MATCH</code></span></p></td>
<td> Expression for string A matches literal regex B with flags.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STR-NMATCH:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STR_NMATCH</code></span></p></td>
<td> Expression for string A not-matches literal regex B with flags.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-TILDE:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_TILDE</code></span></p></td>
<td> Expression for binary not A.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-BANG:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_BANG</code></span></p></td>
<td> Expression for logical not A.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LITERAL:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LITERAL</code></span></p></td>
<td> Expression for a <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a>.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-FUNCTION:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_FUNCTION</code></span></p></td>
<td> Expression for a function A with arguments (B...).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-BOUND:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_BOUND</code></span></p></td>
<td> Expression for SPARQL ISBOUND(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-STR:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_STR</code></span></p></td>
<td> Expression for SPARQL STR(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LANG:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LANG</code></span></p></td>
<td> Expression for SPARQL LANG(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-DATATYPE:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_DATATYPE</code></span></p></td>
<td> Expression for SPARQL DATATYPE(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-ISURI:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_ISURI</code></span></p></td>
<td> Expression for SPARQL ISURI(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-ISBLANK:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_ISBLANK</code></span></p></td>
<td> Expression for SPARQL ISBLANK(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-ISLITERAL:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_ISLITERAL</code></span></p></td>
<td> Expression for SPARQL ISLITERAL(A).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-CAST:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_CAST</code></span></p></td>
<td> Expression for cast literal A to type B.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-ORDER-COND-ASC:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_ORDER_COND_ASC</code></span></p></td>
<td> Expression for SPARQL order condition ascending.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-ORDER-COND-DESC:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_ORDER_COND_DESC</code></span></p></td>
<td> Expression for SPARQL order condition descending.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LANGMATCHES:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LANGMATCHES</code></span></p></td>
<td> Expression for SPARQL LANGMATCHES(A, B).
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-REGEX:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_REGEX</code></span></p></td>
<td> Expression for string A matches expression regex B with flags.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-GROUP-COND-ASC:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_GROUP_COND_ASC</code></span></p></td>
<td> Expression for LAQRS group condition ascending.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-GROUP-COND-DESC:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_GROUP_COND_DESC</code></span></p></td>
<td> Expression for LAQRS group condition descending.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-COUNT:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_COUNT</code></span></p></td>
<td> Expression for LAQRS select <code class="function">COUNT()</code>
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-VARSTAR:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_VARSTAR</code></span></p></td>
<td> Expression for LAQRS select Variable *
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-SAMETERM:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_SAMETERM</code></span></p></td>
<td> Expression for SPARQL sameTerm
</td>
</tr>
<tr>
<td><p><a name="RASQAL-EXPR-LAST:CAPS"></a><span class="term"><code class="literal">RASQAL_EXPR_LAST</code></span></p></td>
<td> Internal
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-compare-flags"></a><h3>enum rasqal_compare_flags</h3>
<pre class="programlisting">typedef enum {
RASQAL_COMPARE_NOCASE = 1,
RASQAL_COMPARE_XQUERY = 2,
RASQAL_COMPARE_RDF = 4,
RASQAL_COMPARE_URI = 8
} rasqal_compare_flags;
</pre>
<p>
Flags for <a class="link" href="rasqal-section-expression.html#rasqal-expression-evaluate" title="rasqal_expression_evaluate ()"><code class="function">rasqal_expression_evaluate()</code></a> or <a class="link" href="rasqal-section-literal.html#rasqal-literal-compare" title="rasqal_literal_compare ()"><code class="function">rasqal_literal_compare()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="RASQAL-COMPARE-NOCASE:CAPS"></a><span class="term"><code class="literal">RASQAL_COMPARE_NOCASE</code></span></p></td>
<td> String comparisons are case independent.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-COMPARE-XQUERY:CAPS"></a><span class="term"><code class="literal">RASQAL_COMPARE_XQUERY</code></span></p></td>
<td> XQuery comparsion rules apply.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-COMPARE-RDF:CAPS"></a><span class="term"><code class="literal">RASQAL_COMPARE_RDF</code></span></p></td>
<td> RDF Term comparsion rules apply.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-COMPARE-URI:CAPS"></a><span class="term"><code class="literal">RASQAL_COMPARE_URI</code></span></p></td>
<td> Allow comparison of URIs
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-pattern-flags"></a><h3>enum rasqal_pattern_flags</h3>
<pre class="programlisting">typedef enum {
RASQAL_PATTERN_FLAGS_OPTIONAL=1,
RASQAL_PATTERN_FLAGS_LAST=RASQAL_PATTERN_FLAGS_OPTIONAL
} rasqal_pattern_flags;
</pre>
<p>
Flags for <a class="link" href="rasqal-section-graph-pattern.html#rasqal-graph-pattern" title="rasqal_graph_pattern"><span class="type">rasqal_graph_pattern</span></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="RASQAL-PATTERN-FLAGS-OPTIONAL:CAPS"></a><span class="term"><code class="literal">RASQAL_PATTERN_FLAGS_OPTIONAL</code></span></p></td>
<td> True when the graph pattern is an optional match.
</td>
</tr>
<tr>
<td><p><a name="RASQAL-PATTERN-FLAGS-LAST:CAPS"></a><span class="term"><code class="literal">RASQAL_PATTERN_FLAGS_LAST</code></span></p></td>
<td> Internal
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-0op-expression"></a><h3>rasqal_new_0op_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_0op_expression (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op);</pre>
<p>
Constructor - create a new 0-operand (constant) expression.
</p>
<p>
The operators are:
<em class="parameter"><code>RASQAL_EXPR_VARSTAR</code></em>
</p>
<p>
The only operator here is the '*' in COUNT(*) as used by LAQRS.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td> Expression operator
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-1op-expression"></a><h3>rasqal_new_1op_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_1op_expression (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg);</pre>
<p>
Constructor - create a new 1-operand expression.
Takes ownership of the operand expression.
</p>
<p>
The operators are:
<em class="parameter"><code>RASQAL_EXPR_TILDE</code></em> <em class="parameter"><code>RASQAL_EXPR_BANG</code></em> <em class="parameter"><code>RASQAL_EXPR_UMINUS</code></em>
<em class="parameter"><code>RASQAL_EXPR_BOUND</code></em> <em class="parameter"><code>RASQAL_EXPR_STR</code></em> <em class="parameter"><code>RASQAL_EXPR_LANG</code></em>
<em class="parameter"><code>RASQAL_EXPR_LANGMATCHES</code></em>
<em class="parameter"><code>RASQAL_EXPR_DATATYPE</code></em> <em class="parameter"><code>RASQAL_EXPR_ISURI</code></em> <em class="parameter"><code>RASQAL_EXPR_ISBLANK</code></em>
<em class="parameter"><code>RASQAL_EXPR_ISLITERAL</code></em> <em class="parameter"><code>RASQAL_EXPR_ORDER_COND_ASC</code></em>
<em class="parameter"><code>RASQAL_EXPR_ORDER_COND_DESC</code></em> <em class="parameter"><code>RASQAL_EXPR_GROUP_COND_ASC</code></em>
<em class="parameter"><code>RASQAL_EXPR_GROUP_COND_DESC</code></em> <em class="parameter"><code>RASQAL_EXPR_COUNT</code></em>
</p>
<p>
<em class="parameter"><code>RASQAL_EXPR_BANG</code></em> and <em class="parameter"><code>RASQAL_EXPR_UMINUS</code></em> are used by RDQL and
SPARQL. <em class="parameter"><code>RASQAL_EXPR_TILDE</code></em> by RDQL only. The rest by SPARQL
only.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td> Expression operator
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg</code></em> :</span></p></td>
<td> Operand 1
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-2op-expression"></a><h3>rasqal_new_2op_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_2op_expression (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg2);</pre>
<p>
Constructor - create a new 2-operand expression.
Takes ownership of the operand expressions.
</p>
<p>
The operators are:
<em class="parameter"><code>RASQAL_EXPR_AND</code></em> <em class="parameter"><code>RASQAL_EXPR_OR</code></em> <em class="parameter"><code>RASQAL_EXPR_EQ</code></em>
<em class="parameter"><code>RASQAL_EXPR_NEQ</code></em> <em class="parameter"><code>RASQAL_EXPR_LT</code></em> <em class="parameter"><code>RASQAL_EXPR_GT</code></em> <em class="parameter"><code>RASQAL_EXPR_LE</code></em>
<em class="parameter"><code>RASQAL_EXPR_GE</code></em> <em class="parameter"><code>RASQAL_EXPR_PLUS</code></em> <em class="parameter"><code>RASQAL_EXPR_MINUS</code></em>
<em class="parameter"><code>RASQAL_EXPR_STAR</code></em> <em class="parameter"><code>RASQAL_EXPR_SLASH</code></em> <em class="parameter"><code>RASQAL_EXPR_REM</code></em>
<em class="parameter"><code>RASQAL_EXPR_STR_EQ</code></em> <em class="parameter"><code>RASQAL_EXPR_STR_NEQ</code></em>
</p>
<p>
<em class="parameter"><code>RASQAL_EXPR_REM</code></em> <em class="parameter"><code>RASQAL_EXPR_STR_EQ</code></em> and <em class="parameter"><code>RASQAL_EXPR_STR_NEQ</code></em> are
not used by SPARQL. <em class="parameter"><code>RASQAL_EXPR_REM</code></em> is used by RDQL.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td> Expression operator
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg1</code></em> :</span></p></td>
<td> Operand 1
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg2</code></em> :</span></p></td>
<td> Operand 2
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-3op-expression"></a><h3>rasqal_new_3op_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_3op_expression (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg2,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg3);</pre>
<p>
Constructor - create a new 3-operand expression.
Takes ownership of the operands.
</p>
<p>
The only operator is:
<em class="parameter"><code>RASQAL_EXPR_REGEX</code></em></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td> Expression operator
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg1</code></em> :</span></p></td>
<td> Operand 1
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg2</code></em> :</span></p></td>
<td> Operand 2
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg3</code></em> :</span></p></td>
<td> Operand 3 (may be NULL)
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-cast-expression"></a><h3>rasqal_new_cast_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_cast_expression (<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-uri.html#raptor-uri"
>raptor_uri</a> *name,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *value);</pre>
<p>
Constructor - create a new expression for casting and expression to a datatype.
Takes ownership of the datatype uri and expression value.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td> cast datatype URI
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td> expression value to cast to <em class="parameter"><code>datatype</code></em> type
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-function-expression"></a><h3>rasqal_new_function_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_function_expression (<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-uri.html#raptor-uri"
>raptor_uri</a> *name,
<a
href="/usr/share/gtk-doc/html/raptor/raptor-section-sequence.html#raptor-sequence"
>raptor_sequence</a> *args);</pre>
<p>
Constructor - create a new expression for a function with expression arguments.
Takes ownership of the function uri and arguments.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td> function name
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>args</code></em> :</span></p></td>
<td> sequence of <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> function arguments
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-literal-expression"></a><h3>rasqal_new_literal_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_literal_expression (<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a> *literal);</pre>
<p>
Constructor - create a new expression for a <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a>
Takes ownership of the operand literal.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>literal</code></em> :</span></p></td>
<td> Literal operand 1
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-string-op-expression"></a><h3>rasqal_new_string_op_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_string_op_expression (<a class="link" href="rasqal-section-expression.html#rasqal-op" title="enum rasqal_op">rasqal_op</a> op,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *arg1,
<a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a> *literal);</pre>
<p>
Constructor - create a new expression with one expression and one string operand.
Takes ownership of the operands.
</p>
<p>
The operators are:
<em class="parameter"><code>RASQAL_EXPR_STR_MATCH</code></em> (RDQL, SPARQL) and
<em class="parameter"><code>RASQAL_EXPR_STR_NMATCH</code></em> (RDQL)</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>op</code></em> :</span></p></td>
<td> Expression operator
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>arg1</code></em> :</span></p></td>
<td> Operand 1
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>literal</code></em> :</span></p></td>
<td> Literal operand 2
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-new-expression-from-expression"></a><h3>rasqal_new_expression_from_expression ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a>* rasqal_new_expression_from_expression
(<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);</pre>
<p>
Copy Constructor - create a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object from an existing rasqal_expression object.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object to copy
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object or NULL on failure
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-free-expression"></a><h3>rasqal_free_expression ()</h3>
<pre class="programlisting">void rasqal_free_expression (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);</pre>
<p>
Destructor - destroy a <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-expression-evaluate"></a><h3>rasqal_expression_evaluate ()</h3>
<pre class="programlisting"><a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal">rasqal_literal</a>* rasqal_expression_evaluate (<a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query">rasqal_query</a> *query,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
int flags);</pre>
<p>
Evaluate a <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> tree to give a <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a> result
or error.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
<td> <a class="link" href="rasqal-section-query.html#rasqal-query" title="rasqal_query"><span class="type">rasqal_query</span></a> this expression belongs to
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> The expression to evaluate.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td> Flags for <a class="link" href="rasqal-section-literal.html#rasqal-literal-compare" title="rasqal_literal_compare ()"><code class="function">rasqal_literal_compare()</code></a> and RASQAL_COMPARE_NOCASE for string matches.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a <a class="link" href="rasqal-section-literal.html#rasqal-literal" title="rasqal_literal"><span class="type">rasqal_literal</span></a> value or NULL on failure.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-expression-print"></a><h3>rasqal_expression_print ()</h3>
<pre class="programlisting">void rasqal_expression_print (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
FILE *fh);</pre>
<p>
Print a Rasqal expression in a debug format.
</p>
<p>
The print debug format may change in any release.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fh</code></em> :</span></p></td>
<td> The <span class="type">FILE</span>* handle to print to.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-expression-print-op"></a><h3>rasqal_expression_print_op ()</h3>
<pre class="programlisting">void rasqal_expression_print_op (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
FILE *fh);</pre>
<p>
Print a rasqal expression operator in a debug format.
</p>
<p>
The print debug format may change in any release.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> the <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fh</code></em> :</span></p></td>
<td> the <span class="type">FILE</span>* handle to print to
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-expression-visit-fn"></a><h3>rasqal_expression_visit_fn ()</h3>
<pre class="programlisting">int (*rasqal_expression_visit_fn) (void *user_data,
<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e);</pre>
<p>
User function to visit an expression and operate on it with
<a class="link" href="rasqal-section-expression.html#rasqal-expression-visit" title="rasqal_expression_visit ()"><code class="function">rasqal_expression_visit()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td> user data passed in with <a class="link" href="rasqal-section-expression.html#rasqal-expression-visit" title="rasqal_expression_visit ()"><code class="function">rasqal_expression_visit()</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> current expression
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> 0 to truncate the visit
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="rasqal-expression-visit"></a><h3>rasqal_expression_visit ()</h3>
<pre class="programlisting">int rasqal_expression_visit (<a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression">rasqal_expression</a> *e,
<a class="link" href="rasqal-section-expression.html#rasqal-expression-visit-fn" title="rasqal_expression_visit_fn ()">rasqal_expression_visit_fn</a> fn,
void *user_data);</pre>
<p>
Visit a user function over a <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a>
</p>
<p>
If the user function <em class="parameter"><code>fn</code></em> returns 0, the visit is truncated.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
<td> <a class="link" href="rasqal-section-expression.html#rasqal-expression" title="rasqal_expression"><span class="type">rasqal_expression</span></a> to visit
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
<td> visit function
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td> user data to pass to visit function
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> 0 if the visit was truncated.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.10</div>
</body>
</html>