<!-- ##### SECTION Title ##### -->
Expressions

<!-- ##### SECTION Short_Description ##### -->
Query language expressions.

<!-- ##### SECTION Long_Description ##### -->
<para>
Expressions form an expression tree that can be evaluated using
rasqal_expression_evaluate() over #rasqal_op operators, #rasqal_literal
constants and #rasqal_variable values bound in some
#rasqal_query_result.  The result is a #rasqal_literal value.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### TYPEDEF rasqal_expression ##### -->
<para>

</para>


<!-- ##### ENUM rasqal_expression_flags ##### -->
<para>

</para>

@RASQAL_EXPR_FLAG_DISTINCT: 
@RASQAL_EXPR_FLAG_AGGREGATE: 

<!-- ##### STRUCT rasqal_evaluation_context ##### -->
<para>

</para>

@world: 
@base_uri: 
@locator: 
@flags: 
@seed: 
@random: 

<!-- ##### ENUM rasqal_op ##### -->
<para>

</para>

@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: 
@RASQAL_EXPR_SUM: 
@RASQAL_EXPR_AVG: 
@RASQAL_EXPR_MIN: 
@RASQAL_EXPR_MAX: 
@RASQAL_EXPR_COALESCE: 
@RASQAL_EXPR_IF: 
@RASQAL_EXPR_URI: 
@RASQAL_EXPR_IRI: 
@RASQAL_EXPR_STRLANG: 
@RASQAL_EXPR_STRDT: 
@RASQAL_EXPR_BNODE: 
@RASQAL_EXPR_GROUP_CONCAT: 
@RASQAL_EXPR_SAMPLE: 
@RASQAL_EXPR_IN: 
@RASQAL_EXPR_NOT_IN: 
@RASQAL_EXPR_ISNUMERIC: 
@RASQAL_EXPR_YEAR: 
@RASQAL_EXPR_MONTH: 
@RASQAL_EXPR_DAY: 
@RASQAL_EXPR_HOURS: 
@RASQAL_EXPR_MINUTES: 
@RASQAL_EXPR_SECONDS: 
@RASQAL_EXPR_TIMEZONE: 
@RASQAL_EXPR_CURRENT_DATETIME: 
@RASQAL_EXPR_NOW: 
@RASQAL_EXPR_FROM_UNIXTIME: 
@RASQAL_EXPR_TO_UNIXTIME: 
@RASQAL_EXPR_CONCAT: 
@RASQAL_EXPR_STRLEN: 
@RASQAL_EXPR_SUBSTR: 
@RASQAL_EXPR_UCASE: 
@RASQAL_EXPR_LCASE: 
@RASQAL_EXPR_STRSTARTS: 
@RASQAL_EXPR_STRENDS: 
@RASQAL_EXPR_CONTAINS: 
@RASQAL_EXPR_ENCODE_FOR_URI: 
@RASQAL_EXPR_TZ: 
@RASQAL_EXPR_RAND: 
@RASQAL_EXPR_ABS: 
@RASQAL_EXPR_ROUND: 
@RASQAL_EXPR_CEIL: 
@RASQAL_EXPR_FLOOR: 
@RASQAL_EXPR_MD5: 
@RASQAL_EXPR_SHA1: 
@RASQAL_EXPR_SHA224: 
@RASQAL_EXPR_SHA256: 
@RASQAL_EXPR_SHA384: 
@RASQAL_EXPR_SHA512: 
@RASQAL_EXPR_STRBEFORE: 
@RASQAL_EXPR_STRAFTER: 
@RASQAL_EXPR_REPLACE: 
@RASQAL_EXPR_UUID: 
@RASQAL_EXPR_STRUUID: 
@RASQAL_EXPR_LAST: 

<!-- ##### ENUM rasqal_compare_flags ##### -->
<para>

</para>

@RASQAL_COMPARE_NOCASE: 
@RASQAL_COMPARE_XQUERY: 
@RASQAL_COMPARE_RDF: 
@RASQAL_COMPARE_URI: 
@RASQAL_COMPARE_SAMETERM: 

<!-- ##### ENUM rasqal_pattern_flags ##### -->
<para>

</para>

@RASQAL_PATTERN_FLAGS_OPTIONAL: 
@RASQAL_PATTERN_FLAGS_LAST: 

<!-- ##### FUNCTION rasqal_new_0op_expression ##### -->
<para>

</para>

@world: 
@op: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_1op_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_2op_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@arg2: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_3op_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@arg2: 
@arg3: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_4op_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@arg2: 
@arg3: 
@arg4: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_aggregate_function_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@params: 
@flags: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_cast_expression ##### -->
<para>

</para>

@world: 
@name: 
@value: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_function_expression ##### -->
<para>

</para>

@world: 
@name: 
@args: 
@params: 
@flags: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_group_concat_expression ##### -->
<para>

</para>

@world: 
@flags: 
@args: 
@separator: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_literal_expression ##### -->
<para>

</para>

@world: 
@literal: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_set_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@args: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_string_op_expression ##### -->
<para>

</para>

@world: 
@op: 
@arg1: 
@literal: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_expression_from_expression ##### -->
<para>

</para>

@e: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_expr_seq_expression ##### -->
<para>

</para>

@world: 
@op: 
@args: 
@Returns: 


<!-- ##### FUNCTION rasqal_free_expression ##### -->
<para>

</para>

@e: 


<!-- ##### FUNCTION rasqal_expression_compare ##### -->
<para>

</para>

@e1: 
@e2: 
@flags: 
@error_p: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_evaluate ##### -->
<para>

</para>

@world: 
@locator: 
@e: 
@flags: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_evaluate2 ##### -->
<para>

</para>

@e: 
@eval_context: 
@error_p: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_op_label ##### -->
<para>

</para>

@op: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_print ##### -->
<para>

</para>

@e: 
@fh: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_print_op ##### -->
<para>

</para>

@e: 
@fh: 


<!-- ##### USER_FUNCTION rasqal_expression_visit_fn ##### -->
<para>

</para>

@user_data: 
@e: 
@Returns: 


<!-- ##### FUNCTION rasqal_expression_visit ##### -->
<para>

</para>

@e: 
@fn: 
@user_data: 
@Returns: 


<!-- ##### FUNCTION rasqal_new_evaluation_context ##### -->
<para>

</para>

@world: 
@locator: 
@flags: 
@Returns: 


<!-- ##### FUNCTION rasqal_free_evaluation_context ##### -->
<para>

</para>

@eval_context: 


<!-- ##### FUNCTION rasqal_evaluation_context_set_base_uri ##### -->
<para>

</para>

@eval_context: 
@base_uri: 
@Returns: 


<!-- ##### FUNCTION rasqal_evaluation_context_set_rand_seed ##### -->
<para>

</para>

@eval_context: 
@seed: 
@Returns: 


