*** empty log message ***
This commit is contained in:
parent
35f724b6c9
commit
012777d425
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: parse.c,v 1.183 2006-09-27 14:13:33 bacon Exp $
|
* $Id: parse.c,v 1.184 2006-09-28 14:21:23 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/awk/awk_i.h>
|
#include <xp/awk/awk_i.h>
|
||||||
@ -1432,6 +1432,14 @@ static xp_awk_nde_t* __parse_binary_expr (
|
|||||||
|
|
||||||
xp_awk_clrpt (awk, right);
|
xp_awk_clrpt (awk, right);
|
||||||
((xp_awk_nde_int_t*)left)->val = l;
|
((xp_awk_nde_int_t*)left)->val = l;
|
||||||
|
|
||||||
|
if (((xp_awk_nde_int_t*)left)->str != XP_NULL)
|
||||||
|
{
|
||||||
|
XP_AWK_FREE (awk, ((xp_awk_nde_int_t*)left)->str);
|
||||||
|
((xp_awk_nde_int_t*)left)->str = XP_NULL;
|
||||||
|
((xp_awk_nde_int_t*)left)->len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (left->type == XP_AWK_NDE_REAL &&
|
else if (left->type == XP_AWK_NDE_REAL &&
|
||||||
@ -1451,6 +1459,14 @@ static xp_awk_nde_t* __parse_binary_expr (
|
|||||||
|
|
||||||
xp_awk_clrpt (awk, right);
|
xp_awk_clrpt (awk, right);
|
||||||
((xp_awk_nde_real_t*)left)->val = l;
|
((xp_awk_nde_real_t*)left)->val = l;
|
||||||
|
|
||||||
|
if (((xp_awk_nde_real_t*)left)->str != XP_NULL)
|
||||||
|
{
|
||||||
|
XP_AWK_FREE (awk, ((xp_awk_nde_real_t*)left)->str);
|
||||||
|
((xp_awk_nde_real_t*)left)->str = XP_NULL;
|
||||||
|
((xp_awk_nde_real_t*)left)->len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* TODO: enhance constant folding more... */
|
/* TODO: enhance constant folding more... */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: tree.c,v 1.76 2006-09-28 06:56:30 bacon Exp $
|
* $Id: tree.c,v 1.77 2006-09-28 14:21:23 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/awk/awk_i.h>
|
#include <xp/awk/awk_i.h>
|
||||||
@ -991,14 +991,16 @@ void xp_awk_clrpt (xp_awk_t* awk, xp_awk_nde_t* tree)
|
|||||||
|
|
||||||
case XP_AWK_NDE_INT:
|
case XP_AWK_NDE_INT:
|
||||||
{
|
{
|
||||||
XP_AWK_FREE (awk, ((xp_awk_nde_int_t*)p)->str);
|
if (((xp_awk_nde_int_t*)p)->str != XP_NULL)
|
||||||
|
XP_AWK_FREE (awk, ((xp_awk_nde_int_t*)p)->str);
|
||||||
XP_AWK_FREE (awk, p);
|
XP_AWK_FREE (awk, p);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case XP_AWK_NDE_REAL:
|
case XP_AWK_NDE_REAL:
|
||||||
{
|
{
|
||||||
XP_AWK_FREE (awk, ((xp_awk_nde_real_t*)p)->str);
|
if (((xp_awk_nde_real_t*)p)->str != XP_NULL)
|
||||||
|
XP_AWK_FREE (awk, ((xp_awk_nde_real_t*)p)->str);
|
||||||
XP_AWK_FREE (awk, p);
|
XP_AWK_FREE (awk, p);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: val.c,v 1.63 2006-09-28 06:56:30 bacon Exp $
|
* $Id: val.c,v 1.64 2006-09-28 14:21:23 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xp/awk/awk_i.h>
|
#include <xp/awk/awk_i.h>
|
||||||
@ -384,7 +384,7 @@ xp_char_t* xp_awk_valtostr (
|
|||||||
{
|
{
|
||||||
xp_awk_val_int_t* vi = (xp_awk_val_int_t*)v;
|
xp_awk_val_int_t* vi = (xp_awk_val_int_t*)v;
|
||||||
|
|
||||||
if (vi->nde != XP_NULL)
|
if (vi->nde != XP_NULL && vi->nde->str != XP_NULL)
|
||||||
{
|
{
|
||||||
return __str_to_str (
|
return __str_to_str (
|
||||||
run, vi->nde->str, vi->nde->len,
|
run, vi->nde->str, vi->nde->len,
|
||||||
@ -400,7 +400,7 @@ xp_char_t* xp_awk_valtostr (
|
|||||||
{
|
{
|
||||||
xp_awk_val_real_t* vr = (xp_awk_val_real_t*)v;
|
xp_awk_val_real_t* vr = (xp_awk_val_real_t*)v;
|
||||||
|
|
||||||
if (vr->nde != XP_NULL)
|
if (vr->nde != XP_NULL && vr->nde->str != XP_NULL)
|
||||||
{
|
{
|
||||||
return __str_to_str (
|
return __str_to_str (
|
||||||
run, vr->nde->str, vr->nde->len,
|
run, vr->nde->str, vr->nde->len,
|
||||||
@ -564,10 +564,10 @@ static xp_char_t* __val_real_to_str (
|
|||||||
|
|
||||||
#if (XP_SIZEOF_LONG_DOUBLE != 0)
|
#if (XP_SIZEOF_LONG_DOUBLE != 0)
|
||||||
run->awk->syscas->sprintf (
|
run->awk->syscas->sprintf (
|
||||||
tbuf, xp_countof(tbuf), XP_T("%Lf"), (long double)v->val);
|
tbuf, xp_countof(tbuf), XP_T("%.30Lg"), (long double)v->val);
|
||||||
#elif (XP_SIZEOF_DOUBLE != 0)
|
#elif (XP_SIZEOF_DOUBLE != 0)
|
||||||
run->awk->syscas->sprintf (
|
run->awk->syscas->sprintf (
|
||||||
tbuf, xp_countof(tbuf), XP_T("%f"), (double)v->val);
|
tbuf, xp_countof(tbuf), XP_T("%.30g"), (double)v->val);
|
||||||
#else
|
#else
|
||||||
#error unsupported floating-point data type
|
#error unsupported floating-point data type
|
||||||
#endif
|
#endif
|
||||||
|
@ -39,6 +39,8 @@ BEGIN {
|
|||||||
print "\" \" > a: " (" " > a);
|
print "\" \" > a: " (" " > a);
|
||||||
print "\" \" < a: " (" " < a);
|
print "\" \" < a: " (" " < a);
|
||||||
|
|
||||||
a[10] = 2;
|
#a[10] = 2;
|
||||||
print a == 1;
|
#print a == 1;
|
||||||
|
|
||||||
|
print (0.234 + 1.01123);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user