*** empty log message ***
This commit is contained in:
parent
8748b41fa5
commit
859c42d281
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: mem.c,v 1.18 2006-10-29 13:40:33 bacon Exp $
|
* $Id: mem.c,v 1.19 2006-10-30 03:49:05 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/lsp/lsp_i.h>
|
#include <ase/lsp/lsp_i.h>
|
||||||
@ -401,7 +401,7 @@ ase_lsp_obj_t* ase_lsp_makeintobj (ase_lsp_mem_t* mem, ase_long_t value)
|
|||||||
ASE_LSP_OBJ_INT, ase_sizeof(ase_lsp_obj_int_t));
|
ASE_LSP_OBJ_INT, ase_sizeof(ase_lsp_obj_int_t));
|
||||||
if (obj == ASE_NULL) return ASE_NULL;
|
if (obj == ASE_NULL) return ASE_NULL;
|
||||||
|
|
||||||
ASE_LSP_IVALUE(obj) = value;
|
ASE_LSP_IVAL(obj) = value;
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
@ -414,7 +414,7 @@ ase_lsp_obj_t* ase_lsp_makerealobj (ase_lsp_mem_t* mem, ase_real_t value)
|
|||||||
ASE_LSP_OBJ_REAL, ase_sizeof(ase_lsp_obj_real_t));
|
ASE_LSP_OBJ_REAL, ase_sizeof(ase_lsp_obj_real_t));
|
||||||
if (obj == ASE_NULL) return ASE_NULL;
|
if (obj == ASE_NULL) return ASE_NULL;
|
||||||
|
|
||||||
ASE_LSP_RVALUE(obj) = value;
|
ASE_LSP_RVAL(obj) = value;
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: obj.h,v 1.11 2006-10-29 13:00:39 bacon Exp $
|
* $Id: obj.h,v 1.12 2006-10-30 03:49:05 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASE_LSP_OBJ_H_
|
#ifndef _ASE_LSP_OBJ_H_
|
||||||
@ -129,8 +129,8 @@ struct ase_lsp_obj_prim_t
|
|||||||
#define ASE_LSP_LINK(x) (((ase_lsp_obj_t*)x)->hdr.link)
|
#define ASE_LSP_LINK(x) (((ase_lsp_obj_t*)x)->hdr.link)
|
||||||
|
|
||||||
/* value access */
|
/* value access */
|
||||||
#define ASE_LSP_IVALUE(x) (((ase_lsp_obj_int_t*)x)->value)
|
#define ASE_LSP_IVAL(x) (((ase_lsp_obj_int_t*)x)->value)
|
||||||
#define ASE_LSP_RVALUE(x) (((ase_lsp_obj_real_t*)x)->value)
|
#define ASE_LSP_RVAL(x) (((ase_lsp_obj_real_t*)x)->value)
|
||||||
|
|
||||||
#if defined(__BORLANDC__) || defined(_MSC_VER)
|
#if defined(__BORLANDC__) || defined(_MSC_VER)
|
||||||
#define ASE_LSP_SYMPTR(x) ((ase_char_t*)(((ase_lsp_obj_sym_t*)x) + 1))
|
#define ASE_LSP_SYMPTR(x) ((ase_char_t*)(((ase_lsp_obj_sym_t*)x) + 1))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: prim_compar.c,v 1.8 2006-10-29 13:40:33 bacon Exp $
|
* $Id: prim_compar.c,v 1.9 2006-10-30 03:49:05 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/lsp/lsp_i.h>
|
#include <ase/lsp/lsp_i.h>
|
||||||
@ -22,11 +22,11 @@ ase_lsp_obj_t* ase_lsp_prim_eq (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) == ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) == ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) == ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) == ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -38,11 +38,11 @@ ase_lsp_obj_t* ase_lsp_prim_eq (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) == ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) == ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) == ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) == ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -104,11 +104,11 @@ ase_lsp_obj_t* ase_lsp_prim_ne (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) != ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) != ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) != ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) != ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -120,11 +120,11 @@ ase_lsp_obj_t* ase_lsp_prim_ne (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) != ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) != ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) != ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) != ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -187,11 +187,11 @@ ase_lsp_obj_t* ase_lsp_prim_gt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) > ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) > ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) > ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) > ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -203,11 +203,11 @@ ase_lsp_obj_t* ase_lsp_prim_gt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) > ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) > ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) > ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) > ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -270,11 +270,11 @@ ase_lsp_obj_t* ase_lsp_prim_lt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) < ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) < ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) < ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) < ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -286,11 +286,11 @@ ase_lsp_obj_t* ase_lsp_prim_lt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) < ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) < ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) < ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) < ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -352,11 +352,11 @@ ase_lsp_obj_t* ase_lsp_prim_ge (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) >= ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) >= ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) >= ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) >= ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -368,11 +368,11 @@ ase_lsp_obj_t* ase_lsp_prim_ge (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) >= ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) >= ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) >= ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) >= ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -434,11 +434,11 @@ ase_lsp_obj_t* ase_lsp_prim_le (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) <= ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_IVAL(p1) <= ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_IVALUE(p1) <= ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_IVAL(p1) <= ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -450,11 +450,11 @@ ase_lsp_obj_t* ase_lsp_prim_le (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_INT)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) <= ASE_LSP_IVALUE(p2);
|
res = ASE_LSP_RVAL(p1) <= ASE_LSP_IVAL(p2);
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(p2) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
res = ASE_LSP_RVALUE(p1) <= ASE_LSP_RVALUE(p2);
|
res = ASE_LSP_RVAL(p1) <= ASE_LSP_RVAL(p2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: prim_math.c,v 1.13 2006-10-29 13:40:33 bacon Exp $
|
* $Id: prim_math.c,v 1.14 2006-10-30 03:49:06 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/lsp/lsp_i.h>
|
#include <ase/lsp/lsp_i.h>
|
||||||
@ -7,8 +7,8 @@
|
|||||||
ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
||||||
{
|
{
|
||||||
ase_lsp_obj_t* body, * tmp;
|
ase_lsp_obj_t* body, * tmp;
|
||||||
ase_long_t ivalue = 0;
|
ase_long_t ival = 0;
|
||||||
ase_real_t rvalue = .0;
|
ase_real_t rval = .0;
|
||||||
ase_bool_t realnum = ase_false;
|
ase_bool_t realnum = ase_false;
|
||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
||||||
@ -29,14 +29,14 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
ivalue = ASE_LSP_IVALUE(tmp);
|
ival = ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
ivalue = ivalue + ASE_LSP_IVALUE(tmp);
|
ival = ival + ASE_LSP_IVAL(tmp);
|
||||||
else
|
else
|
||||||
rvalue = rvalue + ASE_LSP_IVALUE(tmp);
|
rval = rval + ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
||||||
@ -45,16 +45,16 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = ASE_LSP_RVALUE(tmp);
|
rval = ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
{
|
{
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = (ase_real_t)ivalue;
|
rval = (ase_real_t)ival;
|
||||||
}
|
}
|
||||||
rvalue = rvalue + ASE_LSP_RVALUE(tmp);
|
rval = rval + ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -70,8 +70,8 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
||||||
|
|
||||||
tmp = (realnum)?
|
tmp = (realnum)?
|
||||||
ase_lsp_makerealobj (lsp->mem, rvalue):
|
ase_lsp_makerealobj (lsp->mem, rval):
|
||||||
ase_lsp_makeintobj (lsp->mem, ivalue);
|
ase_lsp_makeintobj (lsp->mem, ival);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_ENOMEM;
|
lsp->errnum = ASE_LSP_ENOMEM;
|
||||||
@ -84,8 +84,8 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
||||||
{
|
{
|
||||||
ase_lsp_obj_t* body, * tmp;
|
ase_lsp_obj_t* body, * tmp;
|
||||||
ase_long_t ivalue = 0;
|
ase_long_t ival = 0;
|
||||||
ase_real_t rvalue = .0;
|
ase_real_t rval = .0;
|
||||||
ase_bool_t realnum = ase_false;
|
ase_bool_t realnum = ase_false;
|
||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
||||||
@ -103,14 +103,14 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
ivalue = ASE_LSP_IVALUE(tmp);
|
ival = ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
ivalue = ivalue - ASE_LSP_IVALUE(tmp);
|
ival = ival - ASE_LSP_IVAL(tmp);
|
||||||
else
|
else
|
||||||
rvalue = rvalue - ASE_LSP_IVALUE(tmp);
|
rval = rval - ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
||||||
@ -119,16 +119,16 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = ASE_LSP_RVALUE(tmp);
|
rval = ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
{
|
{
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = (ase_real_t)ivalue;
|
rval = (ase_real_t)ival;
|
||||||
}
|
}
|
||||||
rvalue = rvalue - ASE_LSP_RVALUE(tmp);
|
rval = rval - ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -144,8 +144,8 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
||||||
|
|
||||||
tmp = (realnum)?
|
tmp = (realnum)?
|
||||||
ase_lsp_makerealobj (lsp->mem, rvalue):
|
ase_lsp_makerealobj (lsp->mem, rval):
|
||||||
ase_lsp_makeintobj (lsp->mem, ivalue);
|
ase_lsp_makeintobj (lsp->mem, ival);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_ENOMEM;
|
lsp->errnum = ASE_LSP_ENOMEM;
|
||||||
@ -158,8 +158,8 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
||||||
{
|
{
|
||||||
ase_lsp_obj_t* body, * tmp;
|
ase_lsp_obj_t* body, * tmp;
|
||||||
ase_long_t ivalue = 0;
|
ase_long_t ival = 0;
|
||||||
ase_real_t rvalue = .0;
|
ase_real_t rval = .0;
|
||||||
ase_bool_t realnum = ase_false;
|
ase_bool_t realnum = ase_false;
|
||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
||||||
@ -176,14 +176,14 @@ ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
ivalue = ASE_LSP_IVALUE(tmp);
|
ival = ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
ivalue = ivalue * ASE_LSP_IVALUE(tmp);
|
ival = ival * ASE_LSP_IVAL(tmp);
|
||||||
else
|
else
|
||||||
rvalue = rvalue * ASE_LSP_IVALUE(tmp);
|
rval = rval * ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
||||||
@ -192,16 +192,16 @@ ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = ASE_LSP_RVALUE(tmp);
|
rval = ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
{
|
{
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = (ase_real_t)ivalue;
|
rval = (ase_real_t)ival;
|
||||||
}
|
}
|
||||||
rvalue = rvalue * ASE_LSP_RVALUE(tmp);
|
rval = rval * ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -217,8 +217,8 @@ ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
||||||
|
|
||||||
tmp = (realnum)?
|
tmp = (realnum)?
|
||||||
ase_lsp_makerealobj (lsp->mem, rvalue):
|
ase_lsp_makerealobj (lsp->mem, rval):
|
||||||
ase_lsp_makeintobj (lsp->mem, ivalue);
|
ase_lsp_makeintobj (lsp->mem, ival);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_ENOMEM;
|
lsp->errnum = ASE_LSP_ENOMEM;
|
||||||
@ -231,8 +231,8 @@ ase_lsp_obj_t* ase_lsp_prim_mul (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
||||||
{
|
{
|
||||||
ase_lsp_obj_t* body, * tmp;
|
ase_lsp_obj_t* body, * tmp;
|
||||||
ase_long_t ivalue = 0;
|
ase_long_t ival = 0;
|
||||||
ase_real_t rvalue = .0;
|
ase_real_t rval = .0;
|
||||||
ase_bool_t realnum = ase_false;
|
ase_bool_t realnum = ase_false;
|
||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
||||||
@ -249,21 +249,21 @@ ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
ivalue = ASE_LSP_IVALUE(tmp);
|
ival = ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
{
|
{
|
||||||
if (ASE_LSP_IVALUE(tmp) == 0)
|
if (ASE_LSP_IVAL(tmp) == 0)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
ivalue = ivalue / ASE_LSP_IVALUE(tmp);
|
ival = ival / ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rvalue = rvalue / ASE_LSP_IVALUE(tmp);
|
rval = rval / ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
||||||
@ -272,16 +272,16 @@ ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
ASE_LSP_ASSERT (lsp, realnum == ase_false);
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = ASE_LSP_RVALUE(tmp);
|
rval = ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!realnum)
|
if (!realnum)
|
||||||
{
|
{
|
||||||
realnum = ase_true;
|
realnum = ase_true;
|
||||||
rvalue = (ase_real_t)ivalue;
|
rval = (ase_real_t)ival;
|
||||||
}
|
}
|
||||||
rvalue = rvalue / ASE_LSP_RVALUE(tmp);
|
rval = rval / ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -297,8 +297,8 @@ ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
||||||
|
|
||||||
tmp = (realnum)?
|
tmp = (realnum)?
|
||||||
ase_lsp_makerealobj (lsp->mem, rvalue):
|
ase_lsp_makerealobj (lsp->mem, rval):
|
||||||
ase_lsp_makeintobj (lsp->mem, ivalue);
|
ase_lsp_makeintobj (lsp->mem, ival);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_ENOMEM;
|
lsp->errnum = ASE_LSP_ENOMEM;
|
||||||
@ -311,7 +311,7 @@ ase_lsp_obj_t* ase_lsp_prim_div (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
ase_lsp_obj_t* ase_lsp_prim_mod (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
ase_lsp_obj_t* ase_lsp_prim_mod (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
||||||
{
|
{
|
||||||
ase_lsp_obj_t* body, * tmp;
|
ase_lsp_obj_t* body, * tmp;
|
||||||
ase_long_t ivalue = 0;
|
ase_long_t ival = 0;
|
||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
|
||||||
|
|
||||||
@ -326,33 +326,33 @@ ase_lsp_obj_t* ase_lsp_prim_mod (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
{
|
{
|
||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ivalue = ASE_LSP_IVALUE(tmp);
|
ival = ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ASE_LSP_IVALUE(tmp) == 0)
|
if (ASE_LSP_IVAL(tmp) == 0)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
ivalue = ivalue % ASE_LSP_IVALUE(tmp);
|
ival = ival % ASE_LSP_IVAL(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL)
|
||||||
{
|
{
|
||||||
if (body == args)
|
if (body == args)
|
||||||
{
|
{
|
||||||
ivalue = (ase_long_t)ASE_LSP_RVALUE(tmp);
|
ival = (ase_long_t)ASE_LSP_RVAL(tmp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ase_long_t tmpi = (ase_long_t)ASE_LSP_RVALUE(tmp);
|
ase_long_t tmpi = (ase_long_t)ASE_LSP_RVAL(tmp);
|
||||||
if (tmpi == 0)
|
if (tmpi == 0)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
lsp->errnum = ASE_LSP_EDIVBYZERO;
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
ivalue = ivalue % tmpi;
|
ival = ival % tmpi;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -367,7 +367,7 @@ ase_lsp_obj_t* ase_lsp_prim_mod (ase_lsp_t* lsp, ase_lsp_obj_t* args)
|
|||||||
|
|
||||||
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
|
||||||
|
|
||||||
tmp = ase_lsp_makeintobj (lsp->mem, ivalue);
|
tmp = ase_lsp_makeintobj (lsp->mem, ival);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
lsp->errnum = ASE_LSP_ENOMEM;
|
lsp->errnum = ASE_LSP_ENOMEM;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: print.c,v 1.17 2006-10-29 13:00:39 bacon Exp $
|
* $Id: print.c,v 1.18 2006-10-30 03:49:06 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/lsp/lsp_i.h>
|
#include <ase/lsp/lsp_i.h>
|
||||||
@ -44,22 +44,22 @@ static int __print (ase_lsp_t* lsp, const ase_lsp_obj_t* obj, ase_bool_t prt_con
|
|||||||
#if defined(__BORLANDC__) || defined(_MSC_VER)
|
#if defined(__BORLANDC__) || defined(_MSC_VER)
|
||||||
lsp->syscas.sprintf (
|
lsp->syscas.sprintf (
|
||||||
buf, ase_countof(buf),
|
buf, ase_countof(buf),
|
||||||
ASE_T("%I64d"), (__int64)ASE_LSP_IVALUE(obj));
|
ASE_T("%I64d"), (__int64)ASE_LSP_IVAL(obj));
|
||||||
#elif defined(vax) || defined(__vax) || defined(_SCO_DS)
|
#elif defined(vax) || defined(__vax) || defined(_SCO_DS)
|
||||||
lsp->syscas.sprintf (
|
lsp->syscas.sprintf (
|
||||||
buf, ase_countof(buf),
|
buf, ase_countof(buf),
|
||||||
ASE_T("%ld"), (long)ASE_LSP_IVALUE(obj));
|
ASE_T("%ld"), (long)ASE_LSP_IVAL(obj));
|
||||||
#else
|
#else
|
||||||
lsp->syscas.sprintf (
|
lsp->syscas.sprintf (
|
||||||
buf, ase_countof(buf),
|
buf, ase_countof(buf),
|
||||||
ASE_T("%lld"), (long long)ASE_LSP_IVALUE(obj));
|
ASE_T("%lld"), (long long)ASE_LSP_IVAL(obj));
|
||||||
#endif
|
#endif
|
||||||
OUTPUT_STR (lsp, buf);
|
OUTPUT_STR (lsp, buf);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASE_LSP_OBJ_REAL:
|
case ASE_LSP_OBJ_REAL:
|
||||||
lsp->syscas.sprintf (buf, ase_countof(buf),
|
lsp->syscas.sprintf (buf, ase_countof(buf),
|
||||||
ASE_T("%Lf"), (long double)ASE_LSP_RVALUE(obj));
|
ASE_T("%Lf"), (long double)ASE_LSP_RVAL(obj));
|
||||||
|
|
||||||
OUTPUT_STR (lsp, buf);
|
OUTPUT_STR (lsp, buf);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user