CtplEval

CtplEval — Expression evaluation

Synopsis

#include <ctpl/ctpl.h>

#define             CTPL_EVAL_ERROR
enum                CtplEvalError;
gboolean            ctpl_eval_value                     (const CtplTokenExpr *expr,
                                                         CtplEnviron *env,
                                                         CtplValue *value,
                                                         GError **error);
gboolean            ctpl_eval_bool                      (const CtplTokenExpr *expr,
                                                         CtplEnviron *env,
                                                         gboolean *result,
                                                         GError **error);

Description

Computes a CtplTokenExpr against a CtplEnviron. It is the equivalent of the parser for expressions.

Theses functions computes an expressions and flattens it to a single value: the result. To evaluate an expression, use ctpl_eval_value(). You can evaluate an expression to a boolean with ctpl_eval_bool().

Details

CTPL_EVAL_ERROR

#define CTPL_EVAL_ERROR  (ctpl_eval_error_quark ())

Error domain of CtplEval.


enum CtplEvalError

typedef enum _CtplEvalError
{
  CTPL_EVAL_ERROR_INVALID_OPERAND,
  CTPL_EVAL_ERROR_SYMBOL_NOT_FOUND,
  CTPL_EVAL_ERROR_FAILED
} CtplEvalError;

Error codes that eval functions can throw, from the CTPL_EVAL_ERROR domain.

CTPL_EVAL_ERROR_INVALID_OPERAND

An operand is incompatible with is usage.

CTPL_EVAL_ERROR_SYMBOL_NOT_FOUND

A symbol cannot be found in the environment.

CTPL_EVAL_ERROR_FAILED

An error occurred without any precision on what failed.

ctpl_eval_value ()

gboolean            ctpl_eval_value                     (const CtplTokenExpr *expr,
                                                         CtplEnviron *env,
                                                         CtplValue *value,
                                                         GError **error);

Computes the given CtplTokenExpr with the environ env, storing the resutl in value.

expr :

The CtplTokenExpr to evaluate

env :

The expression's environment, where lookup symbols

value :

CtplValue where store the evaluation result on success

error :

Return location for errors, or NULL to ignore them

Returns :

TRUE on success, FALSE otherwise.

Since 0.2


ctpl_eval_bool ()

gboolean            ctpl_eval_bool                      (const CtplTokenExpr *expr,
                                                         CtplEnviron *env,
                                                         gboolean *result,
                                                         GError **error);

Computes the given expression to a boolean. Computing to a boolean means computing the expression's value and then check if this value should be considered as false or true.

expr :

The CtplTokenExpr to evaluate

env :

The expression's environment, where lookup symbols

result :

Return location for the expression result, or NULL. [out][allow-none]

error :

Return location for errors, or NULL to ignore them

Returns :

TRUE on success, FALSE otherwise.

Since 0.2