*** empty log message ***
This commit is contained in:
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 (
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user