Audacious $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Defines | Functions
tuple_compiler.c File Reference
#include "config.h"
#include <assert.h>
#include <stdarg.h>
#include "tuple_compiler.h"

Go to the source code of this file.

Defines

#define MAX_STR   (256)
#define MIN_ALLOC_NODES   (8)
#define MIN_ALLOC_BUF   (64)

Functions

void tuple_error (TupleEvalContext *ctx, const gchar *fmt,...)
static void tuple_evalctx_free_var (TupleEvalVar *var)
static void tuple_evalctx_free_function (TupleEvalFunc *func)
TupleEvalContexttuple_evalctx_new (void)
void tuple_evalctx_reset (TupleEvalContext *ctx)
void tuple_evalctx_free (TupleEvalContext *ctx)
gint tuple_evalctx_add_var (TupleEvalContext *ctx, const gchar *name, const gboolean istemp, const gint type, const TupleValueType ctype)
gint tuple_evalctx_add_function (TupleEvalContext *ctx, gchar *name)
static void tuple_evalnode_insert (TupleEvalNode **nodes, TupleEvalNode *node)
static TupleEvalNodetuple_evalnode_new (void)
void tuple_evalnode_free (TupleEvalNode *expr)
static TupleEvalNodetuple_compiler_pass1 (gint *level, TupleEvalContext *ctx, gchar **expression)
static gboolean tc_get_item (TupleEvalContext *ctx, gchar **str, gchar *buf, gssize max, gchar endch, gboolean *literal, gchar *errstr, gchar *item)
static gint tc_get_variable (TupleEvalContext *ctx, gchar *name, gint type)
static gboolean tc_parse_construct (TupleEvalContext *ctx, TupleEvalNode **res, gchar *item, gchar **c, gint *level, gint opcode)
static TupleEvalNodetuple_compiler_pass2 (gboolean *changed, TupleEvalContext *ctx, TupleEvalNode *expr)
TupleEvalNodetuple_formatter_compile (TupleEvalContext *ctx, gchar *expr)
static TupleValuetf_get_fieldref (TupleEvalVar *var, const Tuple *tuple)
static TupleValueType tf_get_var (gchar **tmps, gint *tmpi, TupleEvalVar *var, const Tuple *tuple)
static gboolean tuple_formatter_eval_do (TupleEvalContext *ctx, TupleEvalNode *expr, const Tuple *tuple, gchar **res, gssize *resmax, gssize *reslen)
gchar * tuple_formatter_eval (TupleEvalContext *ctx, TupleEvalNode *expr, const Tuple *tuple)
static void print_vars (FILE *f, TupleEvalContext *ctx, TupleEvalNode *node, gint start, gint end)
gint tuple_formatter_print (FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr)

Define Documentation

#define MAX_STR   (256)
#define MIN_ALLOC_BUF   (64)

Definition at line 41 of file tuple_compiler.c.

Referenced by tuple_formatter_eval_do().

#define MIN_ALLOC_NODES   (8)

Definition at line 40 of file tuple_compiler.c.

Referenced by tuple_evalctx_add_var().


Function Documentation

static void print_vars ( FILE *  f,
TupleEvalContext ctx,
TupleEvalNode node,
gint  start,
gint  end 
) [static]

Definition at line 835 of file tuple_compiler.c.

Referenced by tuple_formatter_print().

static gboolean tc_get_item ( TupleEvalContext ctx,
gchar **  str,
gchar *  buf,
gssize  max,
gchar  endch,
gboolean literal,
gchar *  errstr,
gchar *  item 
) [static]

Definition at line 224 of file tuple_compiler.c.

Referenced by tc_parse_construct(), and tuple_compiler_pass1().

static gint tc_get_variable ( TupleEvalContext ctx,
gchar *  name,
gint  type 
) [static]

Definition at line 285 of file tuple_compiler.c.

Referenced by tc_parse_construct(), and tuple_compiler_pass1().

static gboolean tc_parse_construct ( TupleEvalContext ctx,
TupleEvalNode **  res,
gchar *  item,
gchar **  c,
gint level,
gint  opcode 
) [static]

Definition at line 308 of file tuple_compiler.c.

Referenced by tuple_compiler_pass1().

static TupleValue* tf_get_fieldref ( TupleEvalVar var,
const Tuple tuple 
) [static]

Definition at line 579 of file tuple_compiler.c.

Referenced by tf_get_var(), and tuple_formatter_eval_do().

static TupleValueType tf_get_var ( gchar **  tmps,
gint tmpi,
TupleEvalVar var,
const Tuple tuple 
) [static]

Definition at line 595 of file tuple_compiler.c.

Referenced by tuple_formatter_eval_do().

static TupleEvalNode * tuple_compiler_pass1 ( gint level,
TupleEvalContext ctx,
gchar **  expression 
) [static]

Definition at line 346 of file tuple_compiler.c.

Referenced by tc_parse_construct(), and tuple_formatter_compile().

static TupleEvalNode* tuple_compiler_pass2 ( gboolean changed,
TupleEvalContext ctx,
TupleEvalNode expr 
) [static]

Definition at line 539 of file tuple_compiler.c.

Referenced by tuple_formatter_compile().

void tuple_error ( TupleEvalContext ctx,
const gchar *  fmt,
  ... 
)
gint tuple_evalctx_add_function ( TupleEvalContext ctx,
gchar *  name 
)

Definition at line 169 of file tuple_compiler.c.

gint tuple_evalctx_add_var ( TupleEvalContext ctx,
const gchar *  name,
const gboolean  istemp,
const gint  type,
const TupleValueType  ctype 
)

Definition at line 125 of file tuple_compiler.c.

Referenced by tc_get_variable().

void tuple_evalctx_free ( TupleEvalContext ctx)

Definition at line 102 of file tuple_compiler.c.

Referenced by tuple_formatter_process_string().

static void tuple_evalctx_free_function ( TupleEvalFunc func) [static]

Definition at line 65 of file tuple_compiler.c.

Referenced by tuple_evalctx_free().

static void tuple_evalctx_free_var ( TupleEvalVar var) [static]

Definition at line 55 of file tuple_compiler.c.

Referenced by tuple_evalctx_free(), and tuple_evalctx_reset().

TupleEvalContext* tuple_evalctx_new ( void  )

Definition at line 76 of file tuple_compiler.c.

Referenced by tuple_formatter_process_string().

void tuple_evalctx_reset ( TupleEvalContext ctx)

Definition at line 84 of file tuple_compiler.c.

Referenced by tuple_formatter_process_string().

void tuple_evalnode_free ( TupleEvalNode expr)
static void tuple_evalnode_insert ( TupleEvalNode **  nodes,
TupleEvalNode node 
) [static]

Definition at line 178 of file tuple_compiler.c.

Referenced by tc_parse_construct(), and tuple_compiler_pass1().

static TupleEvalNode* tuple_evalnode_new ( void  ) [static]

Definition at line 196 of file tuple_compiler.c.

Referenced by tc_parse_construct(), and tuple_compiler_pass1().

TupleEvalNode* tuple_formatter_compile ( TupleEvalContext ctx,
gchar *  expr 
)

Definition at line 549 of file tuple_compiler.c.

Referenced by tuple_formatter_process_string().

gchar* tuple_formatter_eval ( TupleEvalContext ctx,
TupleEvalNode expr,
const Tuple tuple 
)

Definition at line 819 of file tuple_compiler.c.

Referenced by tuple_formatter_process_string().

static gboolean tuple_formatter_eval_do ( TupleEvalContext ctx,
TupleEvalNode expr,
const Tuple tuple,
gchar **  res,
gssize *  resmax,
gssize *  reslen 
) [static]

Definition at line 639 of file tuple_compiler.c.

Referenced by tuple_formatter_eval().

gint tuple_formatter_print ( FILE *  f,
gint level,
TupleEvalContext ctx,
TupleEvalNode expr 
)

Definition at line 861 of file tuple_compiler.c.

Referenced by tuple_formatter_print(), and tuple_formatter_process_string().