*** empty log message ***
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: awk.c,v 1.109 2007-02-23 08:17:48 bacon Exp $
|
||||
* $Id: awk.c,v 1.110 2007-02-24 14:31:43 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -48,7 +48,7 @@ ase_awk_t* ase_awk_open (
|
||||
awk = (ase_awk_t*) malloc (ASE_SIZEOF(ase_awk_t));
|
||||
#else
|
||||
awk = (ase_awk_t*) prmfns->mmgr.malloc (
|
||||
&prmfns->mmgr, ASE_SIZEOF(ase_awk_t));
|
||||
prmfns->mmgr.custom_data, ASE_SIZEOF(ase_awk_t));
|
||||
#endif
|
||||
if (awk == ASE_NULL)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: awk.h,v 1.191 2007-02-23 08:17:49 bacon Exp $
|
||||
* $Id: awk.h,v 1.192 2007-02-24 14:31:43 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -22,14 +22,14 @@ typedef struct ase_awk_runios_t ase_awk_runios_t;
|
||||
typedef struct ase_awk_runcbs_t ase_awk_runcbs_t;
|
||||
typedef struct ase_awk_runarg_t ase_awk_runarg_t;
|
||||
|
||||
typedef ase_real_t (*ase_awk_pow_t) (ase_real_t x, ase_real_t y);
|
||||
|
||||
typedef ase_real_t (*ase_awk_pow_t) (void* custom, ase_real_t x, ase_real_t y);
|
||||
typedef int (*ase_awk_sprintf_t) (
|
||||
ase_char_t* buf, ase_size_t size, const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_aprintf_t) (const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_dprintf_t) (const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_abort_t) (void* custom_data);
|
||||
typedef void (*ase_awk_lock_t) (void* custom_data);
|
||||
void* custom, ase_char_t* buf, ase_size_t size,
|
||||
const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_aprintf_t) (void* custom, const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_dprintf_t) (void* custom, const ase_char_t* fmt, ...);
|
||||
typedef void (*ase_awk_abort_t) (void* custom);
|
||||
typedef void (*ase_awk_lock_t) (void* custom);
|
||||
|
||||
typedef ase_ssize_t (*ase_awk_io_t) (
|
||||
int cmd, void* arg, ase_char_t* data, ase_size_t count);
|
||||
@ -81,7 +81,7 @@ struct ase_awk_prmfns_t
|
||||
ase_awk_lock_t lock; /* required if multi-threaded */
|
||||
ase_awk_lock_t unlock; /* required if multi-threaded */
|
||||
|
||||
/* user-defined data passed to selected system functions */
|
||||
/* user-defined data passed to the functions above */
|
||||
void* custom_data; /* optional */
|
||||
} misc;
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: func.c,v 1.96 2007-02-23 08:17:49 bacon Exp $
|
||||
* $Id: func.c,v 1.97 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -54,6 +54,7 @@ void* ase_awk_addbfn (
|
||||
if (ase_awk_getbfn (awk, name, name_len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' added already"), name_len, name);
|
||||
ase_awk_seterror (awk, ASE_AWK_EEXIST, 0, awk->errmsg);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: jni.c,v 1.69 2007-02-23 08:53:35 bacon Exp $
|
||||
* $Id: jni.c,v 1.70 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -96,32 +96,54 @@ struct run_data_t
|
||||
jmethodID double_value;
|
||||
};
|
||||
|
||||
static void* awk_malloc (ase_mmgr_t* mmgr, ase_size_t n)
|
||||
static void* awk_malloc (void* custom, ase_size_t n)
|
||||
{
|
||||
return malloc (n);
|
||||
}
|
||||
|
||||
static void* awk_realloc (ase_mmgr_t* mmgr, void* ptr, ase_size_t n)
|
||||
static void* awk_realloc (void* custom, void* ptr, ase_size_t n)
|
||||
{
|
||||
return realloc (ptr, n);
|
||||
}
|
||||
|
||||
static void awk_free (ase_mmgr_t* mmgr, void* ptr)
|
||||
static void awk_free (void* custom, void* ptr)
|
||||
{
|
||||
free (ptr);
|
||||
}
|
||||
|
||||
static ase_real_t awk_pow (ase_real_t x, ase_real_t y)
|
||||
static ase_real_t awk_pow (void* custom, ase_real_t x, ase_real_t y)
|
||||
{
|
||||
return pow (x, y);
|
||||
}
|
||||
|
||||
static void awk_abort (void* custom_data)
|
||||
static void awk_abort (void* custom)
|
||||
{
|
||||
abort ();
|
||||
}
|
||||
|
||||
static void awk_dprintf (const ase_char_t* fmt, ...)
|
||||
static int awk_sprintf (
|
||||
void* custom, ase_char_t* buf, ase_size_t size,
|
||||
const ase_char_t* fmt, ...)
|
||||
{
|
||||
int n;
|
||||
|
||||
va_list ap;
|
||||
va_start (ap, fmt);
|
||||
n = ase_vsprintf (buf, size, fmt, ap);
|
||||
va_end (ap);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
static void awk_printf (void* custom, const ase_char_t* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start (ap, fmt);
|
||||
ase_vfprintf (stdout, fmt, ap);
|
||||
va_end (ap);
|
||||
}
|
||||
|
||||
static void awk_dprintf (void* custom, const ase_char_t* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start (ap, fmt);
|
||||
@ -245,8 +267,8 @@ JNIEXPORT void JNICALL Java_ase_awk_Awk_open (JNIEnv* env, jobject obj)
|
||||
prmfns.ccls.custom_data = NULL;
|
||||
|
||||
prmfns.misc.pow = awk_pow;
|
||||
prmfns.misc.sprintf = ase_sprintf;
|
||||
prmfns.misc.aprintf = ase_printf;
|
||||
prmfns.misc.sprintf = awk_sprintf;
|
||||
prmfns.misc.aprintf = awk_printf;
|
||||
prmfns.misc.dprintf = awk_dprintf;
|
||||
prmfns.misc.abort = awk_abort;
|
||||
prmfns.misc.custom_data = NULL;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: misc.c,v 1.51 2007-02-23 08:17:49 bacon Exp $
|
||||
* $Id: misc.c,v 1.52 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -910,12 +910,14 @@ int ase_awk_assertfail (ase_awk_t* awk,
|
||||
if (desc == ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.aprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
ASE_T("ASSERTION FAILURE AT FILE %s LINE %d\n%s\n"),
|
||||
file, line, expr);
|
||||
}
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.aprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
ASE_T("ASSERTION FAILURE AT FILE %s LINE %d\n%s\n\nDESCRIPTION:\n%s\n"),
|
||||
file, line, expr, desc);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: parse.c,v 1.245 2007-02-23 08:17:49 bacon Exp $
|
||||
* $Id: parse.c,v 1.246 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -333,7 +333,8 @@ static struct __bvent __bvtab[] =
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
awk->prmfns.misc.sprintf ( \
|
||||
(awk)->prmfns.misc.sprintf ( \
|
||||
(awk)->prmfns.misc.custom_data, \
|
||||
(awk)->errmsg, ASE_COUNTOF((awk)->errmsg), \
|
||||
msg, \
|
||||
ASE_STR_LEN(&(awk)->token.name), \
|
||||
@ -709,6 +710,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' not a valid function name"),
|
||||
ASE_STR_LEN(&awk->token.name),
|
||||
@ -728,6 +730,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
if (ase_awk_getbfn (awk, name, name_len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("built-in function '%.*s' redefined"),
|
||||
name_len, name);
|
||||
@ -743,6 +746,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
{
|
||||
/* the function is defined previously */
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("function '%.*s' redefined"),
|
||||
name_len, name);
|
||||
@ -763,6 +767,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
if (g != (ase_size_t)-1)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("global variable '%.*s' redefined"),
|
||||
name_len, name);
|
||||
@ -850,6 +855,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' not a valid parameter name"),
|
||||
ASE_STR_LEN(&awk->token.name),
|
||||
@ -876,6 +882,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
ase_awk_tab_clear (&awk->parse.params);
|
||||
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("conflicting parameter '%.*s' with the function"),
|
||||
param_len, param);
|
||||
@ -903,6 +910,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
ase_awk_tab_clear (&awk->parse.params);
|
||||
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("duplicate parameter '%.*s'"),
|
||||
param_len, param);
|
||||
@ -991,6 +999,7 @@ static ase_awk_nde_t* __parse_function (ase_awk_t* awk)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' not a valid start of the function body"),
|
||||
ASE_STR_LEN(&awk->token.name),
|
||||
@ -1334,6 +1343,7 @@ static ase_awk_t* __add_global (
|
||||
if (ase_awk_getbfn (awk, name, len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("built-in function '%.*s' redefined"),
|
||||
len, name);
|
||||
@ -1347,6 +1357,7 @@ static ase_awk_t* __add_global (
|
||||
&awk->tree.afns, name, len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("function '%.*s' redefined"),
|
||||
len, name);
|
||||
@ -1361,6 +1372,7 @@ static ase_awk_t* __add_global (
|
||||
&awk->parse.globals, 0, name, len) != (ase_size_t)-1)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("duplicate global variable '%.*s'"),
|
||||
len, name);
|
||||
@ -1401,6 +1413,7 @@ static ase_awk_t* __collect_globals (ase_awk_t* awk)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' not a valid variable name"),
|
||||
ASE_STR_LEN(&awk->token.name),
|
||||
@ -1459,6 +1472,7 @@ static ase_awk_t* __collect_locals (ase_awk_t* awk, ase_size_t nlocals)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("'%.*s' not a valid variable name"),
|
||||
ASE_STR_LEN(&awk->token.name),
|
||||
@ -1482,6 +1496,7 @@ static ase_awk_t* __collect_locals (ase_awk_t* awk, ase_size_t nlocals)
|
||||
if (ase_awk_getbfn (awk, local, local_len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("built-in function '%.*s' redefined"),
|
||||
local_len, local);
|
||||
@ -1497,6 +1512,7 @@ static ase_awk_t* __collect_locals (ase_awk_t* awk, ase_size_t nlocals)
|
||||
&awk->tree.afns, local, local_len) != ASE_NULL)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("function '%.*s' redefined"),
|
||||
local_len, local);
|
||||
@ -1513,6 +1529,7 @@ static ase_awk_t* __collect_locals (ase_awk_t* awk, ase_size_t nlocals)
|
||||
0, local, local_len) != (ase_size_t)-1)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("parameter '%.*s' redefined"),
|
||||
local_len, local);
|
||||
@ -1529,6 +1546,7 @@ static ase_awk_t* __collect_locals (ase_awk_t* awk, ase_size_t nlocals)
|
||||
local, local_len) != (ase_size_t)-1)
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("duplicate local variable '%.*s'"),
|
||||
local_len, local);
|
||||
@ -2969,6 +2987,7 @@ static ase_awk_nde_t* __parse_primary_ident (ase_awk_t* awk, ase_size_t line)
|
||||
* of the function call */
|
||||
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("function name '%.*s' without a left parenthesis"),
|
||||
name_len, name_dup);
|
||||
@ -3080,6 +3099,7 @@ static ase_awk_nde_t* __parse_primary_ident (ase_awk_t* awk, ase_size_t line)
|
||||
}
|
||||
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("undefined identifier '%.*s'"),
|
||||
name_len, name_dup);
|
||||
@ -3223,6 +3243,7 @@ static ase_awk_nde_t* __parse_hashidx (
|
||||
ASE_AWK_FREE (awk, nde);
|
||||
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("undefined identifier '%.*s'"), name_len, name);
|
||||
ase_awk_seterror (awk, ASE_AWK_EUNDEF, line, awk->errmsg);
|
||||
@ -4610,6 +4631,7 @@ static int __get_token (ase_awk_t* awk)
|
||||
else
|
||||
{
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
awk->errmsg, ASE_COUNTOF(awk->errmsg),
|
||||
ASE_T("invalid character '%c'"), c);
|
||||
ase_awk_seterror (
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: run.c,v 1.329 2007-02-23 08:17:50 bacon Exp $
|
||||
* $Id: run.c,v 1.330 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -247,6 +247,7 @@ static int __set_global (
|
||||
if (var != ASE_NULL)
|
||||
{
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("map '%.*s' not assignable with a scalar"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -701,7 +702,6 @@ int ase_awk_run (ase_awk_t* awk,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* the run loop ended. execute the end callback if it exists */
|
||||
if (runcbs != ASE_NULL && runcbs->on_end != ASE_NULL)
|
||||
{
|
||||
@ -1776,7 +1776,7 @@ static int __run_block0 (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
||||
while (p != ASE_NULL && run->exit_level == EXIT_NONE)
|
||||
{
|
||||
/*run->awk->prmfns.dprintf (ASE_T("running a statement\n"));*/
|
||||
if (__run_statement(run,p) == -1)
|
||||
if (__run_statement (run, p) == -1)
|
||||
{
|
||||
n = -1;
|
||||
break;
|
||||
@ -1909,9 +1909,10 @@ static int __run_statement (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
||||
default:
|
||||
{
|
||||
ase_awk_val_t* v;
|
||||
v = __eval_expression(run,nde);
|
||||
v = __eval_expression (run, nde);
|
||||
if (v == ASE_NULL) return -1;
|
||||
|
||||
/* destroy the value if not referenced */
|
||||
ase_awk_refupval (run, v);
|
||||
ase_awk_refdownval (run, v);
|
||||
|
||||
@ -2412,6 +2413,7 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde)
|
||||
if (val->type != ASE_AWK_VAL_MAP)
|
||||
{
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("'%.*s' not deletable"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -2523,6 +2525,7 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde)
|
||||
if (val->type != ASE_AWK_VAL_MAP)
|
||||
{
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("'%.*s' not deletable"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -3104,6 +3107,7 @@ static ase_awk_val_t* __do_assignment_scalar (
|
||||
/* once a variable becomes a map,
|
||||
* it cannot be changed to a scalar variable */
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("map '%.*s' not assignable with a scalar"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -3138,6 +3142,7 @@ static ase_awk_val_t* __do_assignment_scalar (
|
||||
/* once the variable becomes a map,
|
||||
* it cannot be changed to a scalar variable */
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("map '%.*s' not assignable with a scalar"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -3158,6 +3163,7 @@ static ase_awk_val_t* __do_assignment_scalar (
|
||||
/* once the variable becomes a map,
|
||||
* it cannot be changed to a scalar variable */
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg, ASE_COUNTOF(run->errmsg),
|
||||
ASE_T("map '%.*s' not assignable with a scalar"),
|
||||
var->id.name_len, var->id.name);
|
||||
@ -4427,14 +4433,18 @@ static ase_awk_val_t* __eval_binop_exp (
|
||||
{
|
||||
/* left - int, right - real */
|
||||
res = ase_awk_makerealval (run,
|
||||
run->awk->prmfns.misc.pow((ase_real_t)l1,(ase_real_t)r2));
|
||||
run->awk->prmfns.misc.pow (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
(ase_real_t)l1,(ase_real_t)r2));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* left - real, right - real */
|
||||
ASE_AWK_ASSERT (run->awk, n3 == 3);
|
||||
res = ase_awk_makerealval (run,
|
||||
run->awk->prmfns.misc.pow((ase_real_t)r1,(ase_real_t)r2));
|
||||
run->awk->prmfns.misc.pow(
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
(ase_real_t)r1,(ase_real_t)r2));
|
||||
}
|
||||
|
||||
if (res == ASE_NULL)
|
||||
@ -5250,6 +5260,7 @@ static ase_awk_val_t* __eval_afn (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
||||
call->what.afn.name.len > ASE_COUNTOF(run->errmsg)-len2)
|
||||
{
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg,
|
||||
ASE_COUNTOF(run->errmsg),
|
||||
fmt2,
|
||||
@ -5259,6 +5270,7 @@ static ase_awk_val_t* __eval_afn (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
||||
else
|
||||
{
|
||||
run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->errmsg,
|
||||
ASE_COUNTOF(run->errmsg),
|
||||
fmt,
|
||||
@ -6483,6 +6495,7 @@ ase_char_t* ase_awk_format (
|
||||
do
|
||||
{
|
||||
n = run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->format.tmp.ptr,
|
||||
run->format.tmp.len,
|
||||
#if ASE_SIZEOF_LONG_LONG > 0
|
||||
@ -6588,6 +6601,7 @@ ase_char_t* ase_awk_format (
|
||||
do
|
||||
{
|
||||
n = run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->format.tmp.ptr,
|
||||
run->format.tmp.len,
|
||||
#if ASE_SIZEOF_LONG_LONG > 0
|
||||
@ -6708,6 +6722,7 @@ ase_char_t* ase_awk_format (
|
||||
do
|
||||
{
|
||||
n = run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->format.tmp.ptr,
|
||||
run->format.tmp.len,
|
||||
ASE_STR_BUF(fbu),
|
||||
@ -6795,6 +6810,7 @@ ase_char_t* ase_awk_format (
|
||||
do
|
||||
{
|
||||
n = run->awk->prmfns.misc.sprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
run->format.tmp.ptr,
|
||||
run->format.tmp.len,
|
||||
ASE_STR_BUF(fbu),
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: tree.c,v 1.103 2007-02-23 08:17:51 bacon Exp $
|
||||
* $Id: tree.c,v 1.104 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -261,10 +261,12 @@ static int __print_expression (ase_awk_t* awk, ase_awk_nde_t* nde)
|
||||
ase_char_t tmp[256];
|
||||
#if (ASE_SIZEOF_LONG_DOUBLE != 0)
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
tmp, ASE_COUNTOF(tmp), ASE_T("%Lf"),
|
||||
(long double)((ase_awk_nde_real_t*)nde)->val);
|
||||
#elif (ASE_SIZEOF_DOUBLE != 0)
|
||||
awk->prmfns.misc.sprintf (
|
||||
awk->prmfns.misc.custom_data,
|
||||
tmp, ASE_COUNTOF(tmp), ASE_T("%f"),
|
||||
(double)((ase_awk_nde_real_t*)nde)->val);
|
||||
#else
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: val.c,v 1.110 2007-02-23 08:17:51 bacon Exp $
|
||||
* $Id: val.c,v 1.111 2007-02-24 14:31:44 bacon Exp $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
@ -341,9 +341,13 @@ void ase_awk_refupval (ase_awk_run_t* run, ase_awk_val_t* val)
|
||||
if (ase_awk_isbuiltinval(val)) return;
|
||||
|
||||
/*
|
||||
run->awk->prmfns.misc.dprintf (ASE_T("ref up [ptr=%p] [count=%d] "), val, (int)val->ref);
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("ref up [ptr=%p] [count=%d] "), val, (int)val->ref);
|
||||
ase_awk_dprintval (run, val);
|
||||
run->awk->prmfns.misc.dprintf (ASE_T("\n"));
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("\n"));
|
||||
*/
|
||||
|
||||
val->ref++;
|
||||
@ -354,9 +358,13 @@ void ase_awk_refdownval (ase_awk_run_t* run, ase_awk_val_t* val)
|
||||
if (ase_awk_isbuiltinval(val)) return;
|
||||
|
||||
/*
|
||||
run->awk->prmfns.misc.dprintf (ASE_T("ref down [ptr=%p] [count=%d]\n"), val, (int)val->ref);
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("ref down [ptr=%p] [count=%d]\n"), val, (int)val->ref);
|
||||
ase_awk_dprintval (run, val);
|
||||
run->awk->prmfns.misc.dprintf (ASE_T("\n"));
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("\n"));
|
||||
*/
|
||||
|
||||
ASE_AWK_ASSERTX (run->awk, val->ref > 0,
|
||||
@ -465,6 +473,7 @@ ase_char_t* ase_awk_valtostr (
|
||||
|
||||
#ifdef _DEBUG
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("ERROR: WRONG VALUE TYPE [%d] in ase_awk_valtostr\n"),
|
||||
v->type);
|
||||
#endif
|
||||
@ -722,6 +731,7 @@ int ase_awk_valtonum (
|
||||
|
||||
#ifdef _DEBUG
|
||||
run->awk->prmfns.misc.dprintf (
|
||||
run->awk->prmfns.misc.custom_data,
|
||||
ASE_T("ERROR: WRONG VALUE TYPE [%d] in ase_awk_valtonum\n"),
|
||||
v->type);
|
||||
#endif
|
||||
@ -751,14 +761,15 @@ int ase_awk_strtonum (
|
||||
}
|
||||
|
||||
#define __DPRINTF run->awk->prmfns.misc.dprintf
|
||||
#define __DCUSTOM run->awk->prmfns.misc.custom_data
|
||||
|
||||
static int __print_pair (ase_awk_pair_t* pair, void* arg)
|
||||
{
|
||||
ase_awk_run_t* run = (ase_awk_run_t*)arg;
|
||||
|
||||
__DPRINTF (ASE_T(" %s=>"), pair->key);
|
||||
__DPRINTF (__DCUSTOM, ASE_T(" %s=>"), pair->key);
|
||||
ase_awk_dprintval ((ase_awk_run_t*)arg, pair->val);
|
||||
__DPRINTF (ASE_T(" "));
|
||||
__DPRINTF (__DCUSTOM, ASE_T(" "));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -769,21 +780,21 @@ void ase_awk_dprintval (ase_awk_run_t* run, ase_awk_val_t* val)
|
||||
switch (val->type)
|
||||
{
|
||||
case ASE_AWK_VAL_NIL:
|
||||
__DPRINTF (ASE_T("nil"));
|
||||
__DPRINTF (__DCUSTOM, ASE_T("nil"));
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_INT:
|
||||
#if ASE_SIZEOF_LONG_LONG > 0
|
||||
__DPRINTF (ASE_T("%lld"),
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%lld"),
|
||||
(long long)((ase_awk_val_int_t*)val)->val);
|
||||
#elif ASE_SIZEOF___INT64 > 0
|
||||
__DPRINTF (ASE_T("%I64d"),
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%I64d"),
|
||||
(__int64)((ase_awk_val_int_t*)val)->val);
|
||||
#elif ASE_SIZEOF_LONG > 0
|
||||
__DPRINTF (ASE_T("%ld"),
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%ld"),
|
||||
(long)((ase_awk_val_int_t*)val)->val);
|
||||
#elif ASE_SIZEOF_INT > 0
|
||||
__DPRINTF (ASE_T("%d"),
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%d"),
|
||||
(int)((ase_awk_val_int_t*)val)->val);
|
||||
#else
|
||||
#error unsupported size
|
||||
@ -791,31 +802,31 @@ void ase_awk_dprintval (ase_awk_run_t* run, ase_awk_val_t* val)
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_REAL:
|
||||
__DPRINTF (ASE_T("%Lf"),
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%Lf"),
|
||||
(long double)((ase_awk_val_real_t*)val)->val);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_STR:
|
||||
__DPRINTF (ASE_T("%s"), ((ase_awk_val_str_t*)val)->buf);
|
||||
__DPRINTF (__DCUSTOM, ASE_T("%s"), ((ase_awk_val_str_t*)val)->buf);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_REX:
|
||||
__DPRINTF (ASE_T("REX[%s]"), ((ase_awk_val_rex_t*)val)->buf);
|
||||
__DPRINTF (__DCUSTOM, ASE_T("REX[%s]"), ((ase_awk_val_rex_t*)val)->buf);
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_MAP:
|
||||
__DPRINTF (ASE_T("MAP["));
|
||||
__DPRINTF (__DCUSTOM, ASE_T("MAP["));
|
||||
ase_awk_map_walk (((ase_awk_val_map_t*)val)->map, __print_pair, run);
|
||||
__DPRINTF (ASE_T("]"));
|
||||
__DPRINTF (__DCUSTOM, ASE_T("]"));
|
||||
break;
|
||||
|
||||
case ASE_AWK_VAL_REF:
|
||||
__DPRINTF (ASE_T("REF[id=%d,val="), ((ase_awk_val_ref_t*)val)->id);
|
||||
__DPRINTF (__DCUSTOM, ASE_T("REF[id=%d,val="), ((ase_awk_val_ref_t*)val)->id);
|
||||
ase_awk_dprintval (run, *((ase_awk_val_ref_t*)val)->adr);
|
||||
__DPRINTF (ASE_T("]"));
|
||||
__DPRINTF (__DCUSTOM, ASE_T("]"));
|
||||
break;
|
||||
|
||||
default:
|
||||
__DPRINTF (ASE_T("**** INTERNAL ERROR - INVALID VALUE TYPE ****\n"));
|
||||
__DPRINTF (__DCUSTOM, ASE_T("**** INTERNAL ERROR - INVALID VALUE TYPE ****\n"));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user