*** empty log message ***

This commit is contained in:
2006-10-26 09:31:28 +00:00
parent 2b50e6dfb0
commit bfa9edd9ab
33 changed files with 450 additions and 444 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: env.c,v 1.12 2006-10-26 08:17:37 bacon Exp $
* $Id: env.c,v 1.13 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -59,7 +59,7 @@ ase_lsp_assoc_t* ase_lsp_lookupinframe (
{
ase_lsp_assoc_t* assoc;
ase_lsp_assert (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
assoc = frame->assoc;
while (assoc != ASE_NULL)
@ -76,7 +76,7 @@ ase_lsp_assoc_t* ase_lsp_insertvalueintoframe (
{
ase_lsp_assoc_t* assoc;
ase_lsp_assert (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
assoc = __new_assoc (lsp, name, value, ASE_NULL);
if (assoc == ASE_NULL) return ASE_NULL;
@ -91,7 +91,7 @@ ase_lsp_assoc_t* ase_lsp_insertfuncintoframe (
{
ase_lsp_assoc_t* assoc;
ase_lsp_assert (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
assoc = __new_assoc (lsp, name, ASE_NULL, func);
if (assoc == ASE_NULL) return ASE_NULL;

View File

@ -1,5 +1,5 @@
/*
* $Id: eval.c,v 1.17 2006-10-26 08:17:37 bacon Exp $
* $Id: eval.c,v 1.18 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -91,7 +91,7 @@ static ase_lsp_obj_t* eval_cons (ase_lsp_t* lsp, ase_lsp_obj_t* cons)
{
ase_lsp_obj_t* car, * cdr;
ase_lsp_assert (lsp, ASE_LSP_TYPE(cons) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(cons) == ASE_LSP_OBJ_CONS);
car = ASE_LSP_CAR(cons);
cdr = ASE_LSP_CDR(cons);
@ -173,11 +173,11 @@ static ase_lsp_obj_t* apply (
ase_lsp_obj_t* value;
ase_lsp_mem_t* mem;
ase_lsp_assert (lsp,
ASE_LSP_ASSERT (lsp,
ASE_LSP_TYPE(func) == ASE_LSP_OBJ_FUNC ||
ASE_LSP_TYPE(func) == ASE_LSP_OBJ_MACRO);
ase_lsp_assert (lsp,
ASE_LSP_ASSERT (lsp,
ASE_LSP_TYPE(ASE_LSP_CDR(func)) == ASE_LSP_OBJ_CONS);
mem = lsp->mem;

View File

@ -1,5 +1,5 @@
/*
* $Id: lsp.c,v 1.9 2006-10-26 08:17:37 bacon Exp $
* $Id: lsp.c,v 1.10 2006-10-26 09:31:28 bacon Exp $
*/
#if defined(__BORLANDC__)
@ -110,7 +110,7 @@ int ase_lsp_attach_input (ase_lsp_t* lsp, ase_lsp_io_t input, void* arg)
{
if (ase_lsp_detach_input(lsp) == -1) return -1;
ase_lsp_assert (lsp, lsp->input_func == ASE_NULL);
ASE_LSP_ASSERT (lsp, lsp->input_func == ASE_NULL);
if (input(ASE_LSP_IO_OPEN, arg, ASE_NULL, 0) == -1) {
/* TODO: set error number */
@ -142,7 +142,7 @@ int ase_lsp_attach_output (ase_lsp_t* lsp, ase_lsp_io_t output, void* arg)
{
if (ase_lsp_detach_output(lsp) == -1) return -1;
ase_lsp_assert (lsp, lsp->output_func == ASE_NULL);
ASE_LSP_ASSERT (lsp, lsp->output_func == ASE_NULL);
if (output(ASE_LSP_IO_OPEN, arg, ASE_NULL, 0) == -1) {
/* TODO: set error number */

View File

@ -1,5 +1,5 @@
/*
* $Id: lsp.h,v 1.26 2006-10-25 13:42:31 bacon Exp $
* $Id: lsp.h,v 1.27 2006-10-26 09:31:28 bacon Exp $
*/
#ifndef _ASE_LSP_LSP_H_
@ -93,6 +93,14 @@ enum
typedef ase_lsp_obj_t* (*ase_lsp_prim_t) (ase_lsp_t* lsp, ase_lsp_obj_t* obj);
#ifdef NDEBUG
#define ASE_LSP_ASSERT(lsp,expr) ((void)0)
#else
#define ASE_LSP_ASSERT(lsp,expr) (void)((expr) || \
(ase_lsp_assertfail(lsp, ASE_T(#expr), ASE_T(__FILE__), __LINE__), 0))
#endif
#ifdef __cplusplus
extern "C" {
#endif
@ -145,6 +153,11 @@ ase_char_t* ase_lsp_strxnstr (
const ase_char_t* str, ase_size_t strsz,
const ase_char_t* sub, ase_size_t subsz);
/* abort function for assertion. use ASE_LSP_ASSERT instead */
int ase_lsp_assertfail (ase_lsp_t* lsp,
const ase_char_t* expr, const ase_char_t* file, int line);
const ase_char_t* ase_lsp_geterrstr (int errnum);
#ifdef __cplusplus

View File

@ -1,5 +1,5 @@
/*
* $Id: lsp_i.h,v 1.2 2006-10-26 08:17:37 bacon Exp $
* $Id: lsp_i.h,v 1.3 2006-10-26 09:31:28 bacon Exp $
*/
#ifndef _ASE_LSP_LSPI_H_
@ -13,13 +13,6 @@
#include <ase/lsp/prim.h>
#include <ase/lsp/name.h>
#ifdef NDEBUG
#define ase_lsp_assert(lsp,expr) ((void)0)
#else
#define ase_lsp_assert(lsp,expr) (void)((expr) || \
(ase_lsp_abort(lsp, ASE_T(#expr), ASE_T(__FILE__), __LINE__), 0))
#endif
#ifdef _MSC_VER
#pragma warning (disable: 4996)
#endif

View File

@ -1,5 +1,5 @@
/*
* $Id: mem.c,v 1.15 2006-10-26 08:17:37 bacon Exp $
* $Id: mem.c,v 1.16 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -192,8 +192,8 @@ ase_lsp_obj_t* ase_lsp_alloc (ase_lsp_mem_t* mem, int type, ase_size_t size)
void ase_lsp_dispose (
ase_lsp_mem_t* mem, ase_lsp_obj_t* prev, ase_lsp_obj_t* obj)
{
ase_lsp_assert (mem->lsp, obj != ASE_NULL);
ase_lsp_assert (mem->lsp, mem->count > 0);
ASE_LSP_ASSERT (mem->lsp, obj != ASE_NULL);
ASE_LSP_ASSERT (mem->lsp, mem->count > 0);
// TODO: push the object to the free list for more
// efficient memory management
@ -230,7 +230,7 @@ void ase_lsp_dispose_all (ase_lsp_mem_t* mem)
static void __mark_obj (ase_lsp_t* lsp, ase_lsp_obj_t* obj)
{
ase_lsp_assert (lsp, obj != ASE_NULL);
ASE_LSP_ASSERT (lsp, obj != ASE_NULL);
// TODO:....
// can it be recursive?
@ -260,20 +260,20 @@ static void __mark_obj (ase_lsp_t* lsp, ase_lsp_obj_t* obj)
*/
void ase_lsp_lockobj (ase_lsp_t* lsp, ase_lsp_obj_t* obj)
{
ase_lsp_assert (lsp, obj != ASE_NULL);
ASE_LSP_ASSERT (lsp, obj != ASE_NULL);
ASE_LSP_LOCK(obj) = 1;
//ASE_LSP_MARK(obj) = 1;
}
void ase_lsp_unlockobj (ase_lsp_t* lsp, ase_lsp_obj_t* obj)
{
ase_lsp_assert (lsp, obj != ASE_NULL);
ASE_LSP_ASSERT (lsp, obj != ASE_NULL);
ASE_LSP_LOCK(obj) = 0;
}
void ase_lsp_unlockallobjs (ase_lsp_t* lsp, ase_lsp_obj_t* obj)
{
ase_lsp_assert (lsp, obj != ASE_NULL);
ASE_LSP_ASSERT (lsp, obj != ASE_NULL);
ASE_LSP_LOCK(obj) = 0;
@ -559,7 +559,7 @@ ase_lsp_assoc_t* ase_lsp_lookup (ase_lsp_mem_t* mem, ase_lsp_obj_t* name)
ase_lsp_frame_t* frame;
ase_lsp_assoc_t* assoc;
ase_lsp_assert (mem->lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
ASE_LSP_ASSERT (mem->lsp, ASE_LSP_TYPE(name) == ASE_LSP_OBJ_SYM);
frame = mem->frame;
@ -611,7 +611,7 @@ ase_size_t ase_lsp_cons_len (ase_lsp_mem_t* mem, ase_lsp_obj_t* obj)
{
ase_size_t count;
ase_lsp_assert (mem->lsp,
ASE_LSP_ASSERT (mem->lsp,
obj == mem->nil || ASE_LSP_TYPE(obj) == ASE_LSP_OBJ_CONS);
count = 0;

View File

@ -1,5 +1,5 @@
/*
* $Id: misc.c,v 1.2 2006-10-24 04:22:39 bacon Exp $
* $Id: misc.c,v 1.3 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -43,7 +43,7 @@ ase_long_t ase_lsp_strxtolong (
ase_size_t rem;
int digit, negative = 0;
ase_lsp_assert (lsp, base < 37);
ASE_LSP_ASSERT (lsp, base < 37);
p = str;
end = str + len;
@ -750,7 +750,7 @@ ase_char_t* ase_lsp_strxnstr (
return ASE_NULL;
}
int ase_lsp_abort (ase_lsp_t* lsp,
int ase_lsp_assertfail (ase_lsp_t* lsp,
const ase_char_t* expr, const ase_char_t* file, int line)
{
lsp->syscas.dprintf (

View File

@ -1,5 +1,5 @@
/*
* $Id: misc.h,v 1.2 2006-10-24 04:22:39 bacon Exp $
* $Id: misc.h,v 1.3 2006-10-26 09:31:28 bacon Exp $
*/
#ifndef _ASE_LSP_MISC_H_
@ -16,9 +16,6 @@ extern "C" {
void* ase_lsp_memcpy (void* dst, const void* src, ase_size_t n);
void* ase_lsp_memset (void* dst, int val, ase_size_t n);
int ase_lsp_abort (ase_lsp_t* lsp,
const ase_char_t* expr, const ase_char_t* file, int line);
#ifdef __cplusplus
}
#endif

View File

@ -1,5 +1,5 @@
/*
* $Id: name.c,v 1.8 2006-10-26 08:17:37 bacon Exp $
* $Id: name.c,v 1.9 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -46,7 +46,7 @@ void ase_lsp_name_close (ase_lsp_name_t* name)
{
if (name->capa >= ase_countof(name->static_buf))
{
ase_lsp_assert (name->lsp, name->buf != name->static_buf);
ASE_LSP_ASSERT (name->lsp, name->buf != name->static_buf);
ASE_LSP_FREE (name->lsp, name->buf);
}
if (name->__dynamic) ASE_LSP_FREE (name->lsp, name);

View File

@ -1,5 +1,5 @@
/*
* $Id: obj.h,v 1.9 2006-10-26 08:17:37 bacon Exp $
* $Id: obj.h,v 1.10 2006-10-26 09:25:03 bacon Exp $
*/
#ifndef _ASE_LSP_OBJ_H_
@ -27,7 +27,6 @@ enum
};
typedef struct ase_lsp_objhdr_t ase_lsp_objhdr_t;
typedef struct ase_lsp_obj_t ase_lsp_obj_t;
typedef struct ase_lsp_obj_nil_t ase_lsp_obj_nil_t;
typedef struct ase_lsp_obj_true_t ase_lsp_obj_true_t;
typedef struct ase_lsp_obj_int_t ase_lsp_obj_int_t;
@ -96,22 +95,22 @@ struct ase_lsp_obj_str_t
struct ase_lsp_obj_cons_t
{
ase_lsp_objhdr_t hdr;
struct ase_lsp_obj_t* car;
struct ase_lsp_obj_t* cdr;
ase_lsp_obj_t* car;
ase_lsp_obj_t* cdr;
};
struct ase_lsp_obj_func_t
{
ase_lsp_objhdr_t hdr;
struct ase_lsp_obj_t* formal;
struct ase_lsp_obj_t* body;
ase_lsp_obj_t* formal;
ase_lsp_obj_t* body;
};
struct ase_lsp_obj_macro_t
{
ase_lsp_objhdr_t hdr;
struct ase_lsp_obj_t* formal;
struct ase_lsp_obj_t* body;
ase_lsp_obj_t* formal;
ase_lsp_obj_t* body;
};
struct ase_lsp_obj_prim_t

View File

@ -1,5 +1,5 @@
/*
* $Id: prim.c,v 1.12 2006-10-26 08:17:37 bacon Exp $
* $Id: prim.c,v 1.13 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -51,7 +51,7 @@ ase_lsp_obj_t* ase_lsp_prim_eval (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* tmp;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, 1);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
tmp = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (tmp == ASE_NULL) return ASE_NULL;
@ -118,7 +118,7 @@ ase_lsp_obj_t* ase_lsp_prim_if (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* tmp;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
tmp = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (tmp == ASE_NULL) return ASE_NULL;
@ -157,7 +157,7 @@ ase_lsp_obj_t* ase_lsp_prim_while (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* tmp;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
for (;;) {
tmp = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
@ -189,7 +189,7 @@ ase_lsp_obj_t* ase_lsp_prim_car (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* tmp;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, 1);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
tmp = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (tmp == ASE_NULL) return ASE_NULL;
@ -212,7 +212,7 @@ ase_lsp_obj_t* ase_lsp_prim_cdr (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* tmp;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, 1);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
tmp = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (tmp == ASE_NULL) return ASE_NULL;
@ -236,7 +236,7 @@ ase_lsp_obj_t* ase_lsp_prim_cons (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* car, * cdr, * cons;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
car = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (car == ASE_NULL) return ASE_NULL;
@ -265,7 +265,7 @@ ase_lsp_obj_t* ase_lsp_prim_set (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* p1, * p2;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -296,7 +296,7 @@ ase_lsp_obj_t* ase_lsp_prim_setq (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_lsp_obj_t* p = args, * p1, * p2 = lsp->mem->nil;
while (p != lsp->mem->nil) {
ase_lsp_assert (lsp, ASE_LSP_TYPE(p) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(p) == ASE_LSP_OBJ_CONS);
p1 = ASE_LSP_CAR(p);
if (ASE_LSP_TYPE(p1) != ASE_LSP_OBJ_SYM) {
@ -330,7 +330,7 @@ ase_lsp_obj_t* ase_lsp_prim_quote (ase_lsp_t* lsp, ase_lsp_obj_t* args)
*/
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, 1);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
return ASE_LSP_CAR(args);
}

View File

@ -1,5 +1,5 @@
/*
* $Id: prim_compar.c,v 1.6 2006-10-26 08:17:37 bacon Exp $
* $Id: prim_compar.c,v 1.7 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -10,7 +10,7 @@ ase_lsp_obj_t* ase_lsp_prim_eq (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -93,7 +93,7 @@ ase_lsp_obj_t* ase_lsp_prim_ne (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -177,7 +177,7 @@ ase_lsp_obj_t* ase_lsp_prim_gt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -261,7 +261,7 @@ ase_lsp_obj_t* ase_lsp_prim_lt (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -344,7 +344,7 @@ ase_lsp_obj_t* ase_lsp_prim_ge (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;
@ -427,7 +427,7 @@ ase_lsp_obj_t* ase_lsp_prim_le (ase_lsp_t* lsp, ase_lsp_obj_t* args)
int res;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 2, 2);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
p1 = ase_lsp_eval (lsp, ASE_LSP_CAR(args));
if (p1 == ASE_NULL) return ASE_NULL;

View File

@ -1,5 +1,5 @@
/*
* $Id: prim_math.c,v 1.10 2006-10-26 08:17:38 bacon Exp $
* $Id: prim_math.c,v 1.11 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -12,7 +12,7 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_bool_t realnum = ase_false;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
body = args;
//while (body != lsp->mem->nil) {
@ -25,7 +25,7 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_INT) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
ivalue = ASE_LSP_IVALUE(tmp);
}
else {
@ -37,7 +37,7 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
}
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
realnum = ase_true;
rvalue = ASE_LSP_RVALUE(tmp);
}
@ -58,7 +58,7 @@ ase_lsp_obj_t* ase_lsp_prim_plus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
body = ASE_LSP_CDR(body);
}
ase_lsp_assert (lsp, body == lsp->mem->nil);
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
tmp = (realnum)?
ase_lsp_makerealobj (lsp->mem, rvalue):
@ -79,7 +79,7 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_bool_t realnum = ase_false;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
body = args;
//while (body != lsp->mem->nil) {
@ -90,7 +90,7 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_INT) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
ivalue = ASE_LSP_IVALUE(tmp);
}
else {
@ -102,7 +102,7 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
}
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
realnum = ase_true;
rvalue = ASE_LSP_RVALUE(tmp);
}
@ -123,7 +123,7 @@ ase_lsp_obj_t* ase_lsp_prim_minus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
body = ASE_LSP_CDR(body);
}
ase_lsp_assert (lsp, body == lsp->mem->nil);
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
tmp = (realnum)?
ase_lsp_makerealobj (lsp->mem, rvalue):
@ -144,7 +144,7 @@ ase_lsp_obj_t* ase_lsp_prim_multiply (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_bool_t realnum = ase_false;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
body = args;
//while (body != lsp->mem->nil) {
@ -155,7 +155,7 @@ ase_lsp_obj_t* ase_lsp_prim_multiply (ase_lsp_t* lsp, ase_lsp_obj_t* args)
if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_INT) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
ivalue = ASE_LSP_IVALUE(tmp);
}
else {
@ -167,7 +167,7 @@ ase_lsp_obj_t* ase_lsp_prim_multiply (ase_lsp_t* lsp, ase_lsp_obj_t* args)
}
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
realnum = ase_true;
rvalue = ASE_LSP_RVALUE(tmp);
}
@ -188,7 +188,7 @@ ase_lsp_obj_t* ase_lsp_prim_multiply (ase_lsp_t* lsp, ase_lsp_obj_t* args)
body = ASE_LSP_CDR(body);
}
ase_lsp_assert (lsp, body == lsp->mem->nil);
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
tmp = (realnum)?
ase_lsp_makerealobj (lsp->mem, rvalue):
@ -209,7 +209,7 @@ ase_lsp_obj_t* ase_lsp_prim_divide (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_bool_t realnum = ase_false;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
body = args;
//while (body != lsp->mem->nil) {
@ -220,7 +220,7 @@ ase_lsp_obj_t* ase_lsp_prim_divide (ase_lsp_t* lsp, ase_lsp_obj_t* args)
if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_INT) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
ivalue = ASE_LSP_IVALUE(tmp);
}
else {
@ -237,7 +237,7 @@ ase_lsp_obj_t* ase_lsp_prim_divide (ase_lsp_t* lsp, ase_lsp_obj_t* args)
}
else if (ASE_LSP_TYPE(tmp) == ASE_LSP_OBJ_REAL) {
if (body == args) {
ase_lsp_assert (lsp, realnum == ase_false);
ASE_LSP_ASSERT (lsp, realnum == ase_false);
realnum = ase_true;
rvalue = ASE_LSP_RVALUE(tmp);
}
@ -258,7 +258,7 @@ ase_lsp_obj_t* ase_lsp_prim_divide (ase_lsp_t* lsp, ase_lsp_obj_t* args)
body = ASE_LSP_CDR(body);
}
ase_lsp_assert (lsp, body == lsp->mem->nil);
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
tmp = (realnum)?
ase_lsp_makerealobj (lsp->mem, rvalue):
@ -278,7 +278,7 @@ ase_lsp_obj_t* ase_lsp_prim_modulus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
ase_long_t ivalue = 0;
ASE_LSP_PRIM_CHECK_ARG_COUNT (lsp, args, 1, ASE_LSP_PRIM_MAX_ARG_COUNT);
ase_lsp_assert (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
ASE_LSP_ASSERT (lsp, ASE_LSP_TYPE(args) == ASE_LSP_OBJ_CONS);
body = args;
//while (body != lsp->mem->nil) {
@ -320,7 +320,7 @@ ase_lsp_obj_t* ase_lsp_prim_modulus (ase_lsp_t* lsp, ase_lsp_obj_t* args)
body = ASE_LSP_CDR(body);
}
ase_lsp_assert (lsp, body == lsp->mem->nil);
ASE_LSP_ASSERT (lsp, body == lsp->mem->nil);
tmp = ase_lsp_makeintobj (lsp->mem, ivalue);
if (tmp == ASE_NULL)

View File

@ -1,5 +1,5 @@
/*
* $Id: read.c,v 1.23 2006-10-26 08:17:38 bacon Exp $
* $Id: read.c,v 1.24 2006-10-26 09:31:28 bacon Exp $
*/
#include <ase/lsp/lsp_i.h>
@ -105,7 +105,7 @@ static ase_lsp_obj_t* read_obj (ase_lsp_t* lsp)
ase_lsp_lockobj (lsp, obj);
return obj;
case TOKEN_IDENT:
ase_lsp_assert (lsp,
ASE_LSP_ASSERT (lsp,
lsp->mem->nil != ASE_NULL && lsp->mem->t != ASE_NULL);
if (TOKEN_COMPARE(lsp,ASE_T("nil")) == 0) obj = lsp->mem->nil;
else if (TOKEN_COMPARE(lsp,ASE_T("t")) == 0) obj = lsp->mem->t;
@ -255,7 +255,7 @@ static int read_char (ase_lsp_t* lsp)
static int read_token (ase_lsp_t* lsp)
{
ase_lsp_assert (lsp, lsp->input_func != ASE_NULL);
ASE_LSP_ASSERT (lsp, lsp->input_func != ASE_NULL);
TOKEN_CLEAR (lsp);