*** empty log message ***
This commit is contained in:
parent
c0256dbedb
commit
92263e8913
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: parse.c,v 1.182 2006-09-27 14:11:31 bacon Exp $
|
||||
* $Id: parse.c,v 1.183 2006-09-27 14:13:33 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <xp/awk/awk_i.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: run.c,v 1.206 2006-09-25 14:53:10 bacon Exp $
|
||||
* $Id: run.c,v 1.207 2006-09-27 14:11:31 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <xp/awk/awk_i.h>
|
||||
@ -2642,7 +2642,7 @@ static xp_awk_val_t* __eval_binop_land (
|
||||
static xp_awk_val_t* __eval_binop_in (
|
||||
xp_awk_run_t* run, xp_awk_nde_t* left, xp_awk_nde_t* right)
|
||||
{
|
||||
xp_awk_val_t* rv, * res;
|
||||
xp_awk_val_t* rv;
|
||||
xp_char_t* str;
|
||||
xp_size_t len;
|
||||
|
||||
@ -2676,21 +2676,14 @@ static xp_awk_val_t* __eval_binop_in (
|
||||
|
||||
if (rv->type == XP_AWK_VAL_NIL)
|
||||
{
|
||||
res = xp_awk_makeintval (run, 0);
|
||||
if (res == XP_NULL)
|
||||
{
|
||||
XP_AWK_FREE (run->awk, str);
|
||||
xp_awk_refdownval (run, rv);
|
||||
PANIC (run, XP_AWK_ENOMEM);
|
||||
}
|
||||
|
||||
XP_AWK_FREE (run->awk, str);
|
||||
xp_awk_refdownval (run, rv);
|
||||
return res;
|
||||
return xp_awk_val_zero;
|
||||
}
|
||||
else if (rv->type == XP_AWK_VAL_MAP)
|
||||
{
|
||||
xp_long_t r;
|
||||
xp_awk_val_t* res;
|
||||
|
||||
r = (xp_long_t)(xp_awk_map_get(((xp_awk_val_map_t*)rv)->map,str,len) != XP_NULL);
|
||||
|
||||
@ -4480,18 +4473,22 @@ static xp_awk_val_t** __get_reference_indexed (
|
||||
static xp_awk_val_t* __eval_int (xp_awk_run_t* run, xp_awk_nde_t* nde)
|
||||
{
|
||||
xp_awk_val_t* val;
|
||||
val = xp_awk_makeintval (
|
||||
run, ((xp_awk_nde_int_t*)nde)->val);
|
||||
|
||||
val = xp_awk_makeintval (run, ((xp_awk_nde_int_t*)nde)->val);
|
||||
if (val == XP_NULL) PANIC (run, XP_AWK_ENOMEM);
|
||||
((xp_awk_val_int_t*)val)->nde = (xp_awk_nde_int_t*)nde;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
static xp_awk_val_t* __eval_real (xp_awk_run_t* run, xp_awk_nde_t* nde)
|
||||
{
|
||||
xp_awk_val_t* val;
|
||||
val = xp_awk_makerealval (
|
||||
run, ((xp_awk_nde_real_t*)nde)->val);
|
||||
|
||||
val = xp_awk_makerealval (run, ((xp_awk_nde_real_t*)nde)->val);
|
||||
if (val == XP_NULL) PANIC (run, XP_AWK_ENOMEM);
|
||||
((xp_awk_val_real_t*)val)->nde = (xp_awk_nde_real_t*)nde;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
@ -4499,8 +4496,7 @@ static xp_awk_val_t* __eval_str (xp_awk_run_t* run, xp_awk_nde_t* nde)
|
||||
{
|
||||
xp_awk_val_t* val;
|
||||
|
||||
val = xp_awk_makestrval (
|
||||
run,
|
||||
val = xp_awk_makestrval (run,
|
||||
((xp_awk_nde_str_t*)nde)->buf,
|
||||
((xp_awk_nde_str_t*)nde)->len);
|
||||
if (val == XP_NULL) PANIC (run, XP_AWK_ENOMEM);
|
||||
@ -4512,8 +4508,7 @@ static xp_awk_val_t* __eval_rex (xp_awk_run_t* run, xp_awk_nde_t* nde)
|
||||
{
|
||||
xp_awk_val_t* val;
|
||||
|
||||
val = xp_awk_makerexval (
|
||||
run,
|
||||
val = xp_awk_makerexval (run,
|
||||
((xp_awk_nde_rex_t*)nde)->buf,
|
||||
((xp_awk_nde_rex_t*)nde)->len,
|
||||
((xp_awk_nde_rex_t*)nde)->code);
|
||||
|
373
ase/awk/val.c
373
ase/awk/val.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: val.c,v 1.61 2006-09-25 06:17:19 bacon Exp $
|
||||
* $Id: val.c,v 1.62 2006-09-27 14:11:32 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <xp/awk/awk_i.h>
|
||||
@ -8,6 +8,16 @@
|
||||
#include <xp/bas/assert.h>
|
||||
#endif
|
||||
|
||||
static xp_char_t* __str_to_str (
|
||||
xp_awk_run_t* run, const xp_char_t* str, xp_size_t str_len,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len);
|
||||
static xp_char_t* __val_int_to_str (
|
||||
xp_awk_run_t* run, xp_awk_val_int_t* v,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len);
|
||||
static xp_char_t* __val_real_to_str (
|
||||
xp_awk_run_t* run, xp_awk_val_real_t* v,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len);
|
||||
|
||||
static xp_awk_val_nil_t __awk_nil = { XP_AWK_VAL_NIL, 0 };
|
||||
xp_awk_val_t* xp_awk_val_nil = (xp_awk_val_t*)&__awk_nil;
|
||||
|
||||
@ -56,6 +66,7 @@ xp_awk_val_t* xp_awk_makeintval (xp_awk_run_t* run, xp_long_t v)
|
||||
val->type = XP_AWK_VAL_INT;
|
||||
val->ref = 0;
|
||||
val->val = v;
|
||||
val->nde = XP_NULL;
|
||||
|
||||
/*xp_printf (XP_T("makeintval => %p\n"), val);*/
|
||||
return (xp_awk_val_t*)val;
|
||||
@ -79,6 +90,7 @@ xp_awk_val_t* xp_awk_makerealval (xp_awk_run_t* run, xp_real_t v)
|
||||
val->type = XP_AWK_VAL_REAL;
|
||||
val->ref = 0;
|
||||
val->val = v;
|
||||
val->nde = XP_NULL;
|
||||
|
||||
/*xp_printf (XP_T("makerealval => %p\n"), val);*/
|
||||
return (xp_awk_val_t*)val;
|
||||
@ -369,200 +381,47 @@ xp_char_t* xp_awk_valtostr (
|
||||
{
|
||||
if (v->type == XP_AWK_VAL_NIL)
|
||||
{
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
xp_char_t* tmp;
|
||||
tmp = xp_awk_strdup (run->awk, XP_T(""));
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = 0;
|
||||
return tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
return XP_AWK_STR_BUF(buf);
|
||||
}
|
||||
return __str_to_str (run, XP_T(""), 0, clear_buf, buf, len);
|
||||
}
|
||||
|
||||
if (v->type == XP_AWK_VAL_INT)
|
||||
{
|
||||
xp_char_t* tmp;
|
||||
xp_long_t t;
|
||||
xp_size_t l = 0;
|
||||
xp_awk_val_int_t* vi = (xp_awk_val_int_t*)v;
|
||||
|
||||
t = ((xp_awk_val_int_t*)v)->val;
|
||||
if (t == 0)
|
||||
if (vi->nde != XP_NULL)
|
||||
{
|
||||
/* handle zero */
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_MALLOC (
|
||||
run->awk, 2 * xp_sizeof(xp_char_t));
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp[0] = XP_T('0');
|
||||
tmp[1] = XP_T('\0');
|
||||
if (len != XP_NULL) *len = 1;
|
||||
return tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
if (xp_awk_str_cat (buf, XP_T("0")) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
return XP_AWK_STR_BUF(buf);
|
||||
}
|
||||
}
|
||||
|
||||
/* non-zero values */
|
||||
if (t < 0) { t = -t; l++; }
|
||||
while (t > 0) { l++; t /= 10; }
|
||||
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_MALLOC (
|
||||
run->awk, (l + 1) * xp_sizeof(xp_char_t));
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp[l] = XP_T('\0');
|
||||
if (len != XP_NULL) *len = l;
|
||||
return __str_to_str (
|
||||
run, vi->nde->str, vi->nde->len,
|
||||
clear_buf, buf, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* clear the buffer */
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
tmp = XP_AWK_STR_BUF(buf) + XP_AWK_STR_LEN(buf);
|
||||
|
||||
/* extend the buffer */
|
||||
if (xp_awk_str_nccat (
|
||||
buf, XP_T(' '), l) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
return __val_int_to_str (run, vi, clear_buf, buf, len);
|
||||
}
|
||||
|
||||
t = ((xp_awk_val_int_t*)v)->val;
|
||||
if (t < 0) t = -t;
|
||||
|
||||
while (t > 0)
|
||||
{
|
||||
tmp[--l] = (xp_char_t)(t % 10) + XP_T('0');
|
||||
t /= 10;
|
||||
}
|
||||
|
||||
if (((xp_awk_val_int_t*)v)->val < 0) tmp[--l] = XP_T('-');
|
||||
|
||||
if (buf != XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_STR_BUF(buf);
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
if (v->type == XP_AWK_VAL_REAL)
|
||||
{
|
||||
/* TODO: change the code */
|
||||
xp_char_t tbuf[256], * tmp;
|
||||
xp_awk_val_real_t* vr = (xp_awk_val_real_t*)v;
|
||||
|
||||
#if (XP_SIZEOF_LONG_DOUBLE != 0)
|
||||
run->awk->syscas->sprintf (
|
||||
tbuf, xp_countof(tbuf), XP_T("%Lf"),
|
||||
(long double)((xp_awk_val_real_t*)v)->val);
|
||||
#elif (XP_SIZEOF_DOUBLE != 0)
|
||||
run->awk->syscas->sprintf (
|
||||
tbuf, xp_countof(tbuf), XP_T("%f"),
|
||||
(double)((xp_awk_val_real_t*)v)->val);
|
||||
#else
|
||||
#error unsupported floating-point data type
|
||||
#endif
|
||||
|
||||
if (buf == XP_NULL)
|
||||
if (vr->nde != XP_NULL)
|
||||
{
|
||||
tmp = xp_awk_strdup (run->awk, tbuf);
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = xp_awk_strlen(tmp);
|
||||
return __str_to_str (
|
||||
run, vr->nde->str, vr->nde->len,
|
||||
clear_buf, buf, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
if (xp_awk_str_cat (buf, tbuf) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp = XP_AWK_STR_BUF(buf);
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
return __val_real_to_str (run, vr, clear_buf, buf, len);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
if (v->type == XP_AWK_VAL_STR)
|
||||
{
|
||||
xp_char_t* tmp;
|
||||
xp_awk_val_str_t* vs = (xp_awk_val_str_t*)v;
|
||||
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = xp_awk_strxdup (
|
||||
run->awk,
|
||||
((xp_awk_val_str_t*)v)->buf,
|
||||
((xp_awk_val_str_t*)v)->len);
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = ((xp_awk_val_str_t*)v)->len;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
if (xp_awk_str_ncat (buf,
|
||||
((xp_awk_val_str_t*)v)->buf,
|
||||
((xp_awk_val_str_t*)v)->len) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp = XP_AWK_STR_BUF(buf);
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
return __str_to_str (
|
||||
run, vs->buf, vs->len, clear_buf, buf, len);
|
||||
}
|
||||
|
||||
/* TODO: process more value types */
|
||||
@ -572,6 +431,180 @@ xp_printf (XP_T("*** ERROR: WRONG VALUE TYPE [%d] in xp_awk_valtostr v=> %p***\n
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
static xp_char_t* __str_to_str (
|
||||
xp_awk_run_t* run, const xp_char_t* str, xp_size_t str_len,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len)
|
||||
{
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
xp_char_t* tmp;
|
||||
tmp = xp_awk_strxdup (run->awk, str, str_len);
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = str_len;
|
||||
return tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
xp_size_t n;
|
||||
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
n = xp_awk_str_ncat (buf, str, str_len);
|
||||
if (n == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
return XP_AWK_STR_BUF(buf);
|
||||
}
|
||||
}
|
||||
|
||||
static xp_char_t* __val_int_to_str (
|
||||
xp_awk_run_t* run, xp_awk_val_int_t* v,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len)
|
||||
{
|
||||
xp_char_t* tmp;
|
||||
xp_long_t t;
|
||||
xp_size_t l = 0;
|
||||
|
||||
t = v->val;
|
||||
if (t == 0)
|
||||
{
|
||||
/* handle zero */
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_MALLOC (
|
||||
run->awk, 2 * xp_sizeof(xp_char_t));
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp[0] = XP_T('0');
|
||||
tmp[1] = XP_T('\0');
|
||||
if (len != XP_NULL) *len = 1;
|
||||
return tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
if (xp_awk_str_cat (buf, XP_T("0")) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
return XP_AWK_STR_BUF(buf);
|
||||
}
|
||||
}
|
||||
|
||||
/* non-zero values */
|
||||
if (t < 0) { t = -t; l++; }
|
||||
while (t > 0) { l++; t /= 10; }
|
||||
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_MALLOC (
|
||||
run->awk, (l + 1) * xp_sizeof(xp_char_t));
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp[l] = XP_T('\0');
|
||||
if (len != XP_NULL) *len = l;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* clear the buffer */
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
tmp = XP_AWK_STR_BUF(buf) + XP_AWK_STR_LEN(buf);
|
||||
|
||||
/* extend the buffer */
|
||||
if (xp_awk_str_nccat (
|
||||
buf, XP_T(' '), l) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
t = v->val;
|
||||
if (t < 0) t = -t;
|
||||
|
||||
while (t > 0)
|
||||
{
|
||||
tmp[--l] = (xp_char_t)(t % 10) + XP_T('0');
|
||||
t /= 10;
|
||||
}
|
||||
|
||||
if (v->val < 0) tmp[--l] = XP_T('-');
|
||||
|
||||
if (buf != XP_NULL)
|
||||
{
|
||||
tmp = XP_AWK_STR_BUF(buf);
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static xp_char_t* __val_real_to_str (
|
||||
xp_awk_run_t* run, xp_awk_val_real_t* v,
|
||||
xp_bool_t clear_buf, xp_awk_str_t* buf, xp_size_t* len)
|
||||
{
|
||||
/* TODO: change the code */
|
||||
xp_char_t tbuf[256], * tmp;
|
||||
|
||||
#if (XP_SIZEOF_LONG_DOUBLE != 0)
|
||||
run->awk->syscas->sprintf (
|
||||
tbuf, xp_countof(tbuf), XP_T("%Lf"), (long double)v->val);
|
||||
#elif (XP_SIZEOF_DOUBLE != 0)
|
||||
run->awk->syscas->sprintf (
|
||||
tbuf, xp_countof(tbuf), XP_T("%f"), (double)v->val);
|
||||
#else
|
||||
#error unsupported floating-point data type
|
||||
#endif
|
||||
|
||||
if (buf == XP_NULL)
|
||||
{
|
||||
tmp = xp_awk_strdup (run->awk, tbuf);
|
||||
if (tmp == XP_NULL)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
if (len != XP_NULL) *len = xp_awk_strlen(tmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (clear_buf) xp_awk_str_clear (buf);
|
||||
|
||||
if (xp_awk_str_cat (buf, tbuf) == (xp_size_t)-1)
|
||||
{
|
||||
run->errnum = XP_AWK_ENOMEM;
|
||||
return XP_NULL;
|
||||
}
|
||||
|
||||
tmp = XP_AWK_STR_BUF(buf);
|
||||
if (len != XP_NULL) *len = XP_AWK_STR_LEN(buf);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
int xp_awk_valtonum (
|
||||
xp_awk_run_t* run, xp_awk_val_t* v, xp_long_t* l, xp_real_t* r)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: val.h,v 1.40 2006-09-01 06:22:13 bacon Exp $
|
||||
* $Id: val.h,v 1.41 2006-09-27 14:11:32 bacon Exp $
|
||||
*/
|
||||
|
||||
#ifndef _XP_AWK_VAL_H_
|
||||
@ -68,6 +68,7 @@ struct xp_awk_val_int_t
|
||||
{
|
||||
XP_AWK_VAL_HDR;
|
||||
xp_long_t val;
|
||||
xp_awk_nde_int_t* nde;
|
||||
};
|
||||
|
||||
/* XP_AWK_VAL_REAL */
|
||||
@ -75,6 +76,7 @@ struct xp_awk_val_real_t
|
||||
{
|
||||
XP_AWK_VAL_HDR;
|
||||
xp_real_t val;
|
||||
xp_awk_nde_real_t* nde;
|
||||
};
|
||||
|
||||
/* XP_AWK_VAL_STR */
|
||||
|
@ -7,8 +7,8 @@ BEGIN {
|
||||
|
||||
for (i in a) print "a[" i "]=" a[i];
|
||||
#SUBSEP=",,,";
|
||||
#SUBSEP=4.5;
|
||||
SUBSEP=555;
|
||||
SUBSEP=4.5;
|
||||
#SUBSEP=555;
|
||||
|
||||
print "------------------------";
|
||||
|
||||
|
3
ase/test/awk/t48.awk
Normal file
3
ase/test/awk/t48.awk
Normal file
@ -0,0 +1,3 @@
|
||||
BEGIN {
|
||||
print ("xx" in j);
|
||||
}
|
15
ase/types.h
15
ase/types.h
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: types.h,v 1.55 2006-09-08 11:27:01 bacon Exp $
|
||||
* $Id: types.h,v 1.56 2006-09-27 14:14:29 bacon Exp $
|
||||
*/
|
||||
|
||||
#ifndef _XP_TYPES_H_
|
||||
@ -88,17 +88,20 @@ typedef int xp_tri_t;
|
||||
#define xp_dead -1
|
||||
|
||||
/* integer that can hold a pointer */
|
||||
#if XP_SIZEOF_VOID_P == XP_SIZEOF_LONG_LONG
|
||||
typedef long long xp_int_t;
|
||||
typedef unsigned long long xp_uint_t;
|
||||
#if XP_SIZEOF_VOID_P == XP_SIZEOF_INT
|
||||
typedef int xp_int_t;
|
||||
typedef unsigned int xp_uint_t;
|
||||
#elif XP_SIZEOF_VOID_P == XP_SIZEOF_LONG
|
||||
typedef long xp_int_t;
|
||||
typedef unsigned long xp_uint_t;
|
||||
#elif XP_SIZEOF_VOID_P == XP_SIZEOF_LONG_LONG
|
||||
typedef long long xp_int_t;
|
||||
typedef unsigned long long xp_uint_t;
|
||||
#else
|
||||
typedef int xp_int_t;
|
||||
typedef unsigned int xp_uint_t;
|
||||
#error Unsupported pointer size
|
||||
#endif
|
||||
|
||||
|
||||
/* the largest integer supported by the system */
|
||||
#if XP_SIZEOF_LONG_LONG != 0
|
||||
typedef long long xp_long_t;
|
||||
|
Loading…
Reference in New Issue
Block a user