*** empty log message ***

This commit is contained in:
hyung-hwan 2005-02-07 15:10:41 +00:00
parent d75ec654c9
commit ffe1527b0b
9 changed files with 63 additions and 58 deletions

View File

@ -1,5 +1,5 @@
/* /*
* $Id: lisp.c,v 1.6 2005-02-05 05:43:55 bacon Exp $ * $Id: lisp.c,v 1.7 2005-02-07 15:10:41 bacon Exp $
*/ */
#include <xp/lisp/lisp.h> #include <xp/lisp/lisp.h>
@ -55,7 +55,7 @@ void xp_lisp_free (xp_lisp_t* lsp)
free (lsp); free (lsp);
} }
int xp_lisp_error (xp_lisp_t* lsp, xp_lisp_char* buf, xp_size_t size) int xp_lisp_error (xp_lisp_t* lsp, xp_char_t* buf, xp_size_t size)
{ {
if (buf != XP_NULL || size == 0) return lsp->error; if (buf != XP_NULL || size == 0) return lsp->error;

View File

@ -1,5 +1,5 @@
/* /*
* $Id: lisp.h,v 1.2 2005-02-04 16:00:37 bacon Exp $ * $Id: lisp.h,v 1.3 2005-02-07 15:10:41 bacon Exp $
*/ */
#ifndef _XP_LISP_LISP_H_ #ifndef _XP_LISP_LISP_H_
@ -15,7 +15,7 @@
// NOTICE: the function of xp_lisp_creader_t must return -1 on error // NOTICE: the function of xp_lisp_creader_t must return -1 on error
// and 0 on success. the first argument must be set to // and 0 on success. the first argument must be set to
// XP_LISP_END_CHAR at the end of input. // XP_LISP_END_CHAR at the end of input.
typedef int (*xp_lisp_creader_t) (xp_lisp_cint*, void*); typedef int (*xp_lisp_creader_t) (xp_cint_t*, void*);
#define XP_LISP_ERR(lsp) ((lsp)->error) #define XP_LISP_ERR(lsp) ((lsp)->error)
#define XP_LISP_ERR_NONE 0 #define XP_LISP_ERR_NONE 0
@ -43,7 +43,7 @@ struct xp_lisp_t
int opt_undef_symbol; int opt_undef_symbol;
/* for read */ /* for read */
xp_lisp_cint curc; xp_cint_t curc;
xp_lisp_creader_t creader; xp_lisp_creader_t creader;
void* creader_extra; void* creader_extra;
int creader_just_set; int creader_just_set;
@ -69,7 +69,7 @@ extern "C" {
/* lsp.c */ /* lsp.c */
xp_lisp_t* xp_lisp_new (xp_size_t mem_ubound, xp_size_t mem_ubound_inc); xp_lisp_t* xp_lisp_new (xp_size_t mem_ubound, xp_size_t mem_ubound_inc);
void xp_lisp_free (xp_lisp_t* lsp); void xp_lisp_free (xp_lisp_t* lsp);
int xp_lisp_error (xp_lisp_t* lsp, xp_lisp_char* buf, xp_size_t size); int xp_lisp_error (xp_lisp_t* lsp, xp_char_t* buf, xp_size_t size);
/* read.c */ /* read.c */
// TODO: move xp_lisp_set_creader to lsp.c // TODO: move xp_lisp_set_creader to lsp.c

View File

@ -1,5 +1,5 @@
/* /*
* $Id: memory.c,v 1.7 2005-02-05 06:28:13 bacon Exp $ * $Id: memory.c,v 1.8 2005-02-07 15:10:41 bacon Exp $
*/ */
#include <xp/lisp/memory.h> #include <xp/lisp/memory.h>
@ -55,9 +55,9 @@ xp_lisp_mem_t* xp_lisp_mem_new (xp_size_t ubound, xp_size_t ubound_inc)
// initialize common object pointers // initialize common object pointers
mem->nil = xp_lisp_make_nil (mem); mem->nil = xp_lisp_make_nil (mem);
mem->t = xp_lisp_make_true (mem); mem->t = xp_lisp_make_true (mem);
mem->quote = xp_lisp_make_symbol (mem,XP_TEXT("quote"), 5); mem->quote = xp_lisp_make_symbol (mem, XP_TEXT("quote"), 5);
mem->lambda = xp_lisp_make_symbol (mem,XP_TEXT("lambda"), 6); mem->lambda = xp_lisp_make_symbol (mem, XP_TEXT("lambda"), 6);
mem->macro = xp_lisp_make_symbol (mem,XP_TEXT("macro"), 5); mem->macro = xp_lisp_make_symbol (mem, XP_TEXT("macro"), 5);
if (mem->nil == XP_NULL || if (mem->nil == XP_NULL ||
mem->t == XP_NULL || mem->t == XP_NULL ||
@ -92,7 +92,7 @@ void xp_lisp_mem_free (xp_lisp_mem_t* mem)
} }
static int xp_lisp_add_prim ( static int xp_lisp_add_prim (
xp_lisp_mem_t* mem, const xp_lisp_char* name, xp_size_t len, xp_lisp_pimpl_t prim) xp_lisp_mem_t* mem, const xp_char_t* name, xp_size_t len, xp_lisp_pimpl_t prim)
{ {
xp_lisp_obj_t* n, * p; xp_lisp_obj_t* n, * p;
@ -407,7 +407,8 @@ xp_lisp_obj_t* xp_lisp_make_float (xp_lisp_mem_t* mem, xp_lisp_float value)
return obj; return obj;
} }
xp_lisp_obj_t* xp_lisp_make_symbol (xp_lisp_mem_t* mem, const xp_lisp_char* str, xp_size_t len) xp_lisp_obj_t* xp_lisp_make_symbol (
xp_lisp_mem_t* mem, const xp_char_t* str, xp_size_t len)
{ {
xp_lisp_obj_t* obj; xp_lisp_obj_t* obj;
@ -421,7 +422,7 @@ xp_lisp_obj_t* xp_lisp_make_symbol (xp_lisp_mem_t* mem, const xp_lisp_char* str,
// no such symbol found. create a new one // no such symbol found. create a new one
obj = xp_lisp_allocate (mem, XP_LISP_OBJ_SYMBOL, obj = xp_lisp_allocate (mem, XP_LISP_OBJ_SYMBOL,
sizeof(xp_lisp_obj_symbol_t) + (len + 1) * sizeof(xp_lisp_char)); sizeof(xp_lisp_obj_symbol_t) + (len + 1) * sizeof(xp_char_t));
if (obj == XP_NULL) return XP_NULL; if (obj == XP_NULL) return XP_NULL;
// fill in the symbol buffer // fill in the symbol buffer
@ -430,13 +431,13 @@ xp_lisp_obj_t* xp_lisp_make_symbol (xp_lisp_mem_t* mem, const xp_lisp_char* str,
return obj; return obj;
} }
xp_lisp_obj_t* xp_lisp_make_string (xp_lisp_mem_t* mem, const xp_lisp_char* str, xp_size_t len) xp_lisp_obj_t* xp_lisp_make_string (xp_lisp_mem_t* mem, const xp_char_t* str, xp_size_t len)
{ {
xp_lisp_obj_t* obj; xp_lisp_obj_t* obj;
// allocate memory for the string // allocate memory for the string
obj = xp_lisp_allocate (mem, XP_LISP_OBJ_STRING, obj = xp_lisp_allocate (mem, XP_LISP_OBJ_STRING,
sizeof(xp_lisp_obj_string_t) + (len + 1) * sizeof(xp_lisp_char)); sizeof(xp_lisp_obj_string_t) + (len + 1) * sizeof(xp_char_t));
if (obj == XP_NULL) return XP_NULL; if (obj == XP_NULL) return XP_NULL;
// fill in the string buffer // fill in the string buffer
@ -559,9 +560,9 @@ int xp_lisp_probe_args (xp_lisp_mem_t* mem, xp_lisp_obj_t* obj, xp_size_t* len)
return 0; return 0;
} }
int xp_lisp_comp_symbol (xp_lisp_obj_t* obj, const xp_lisp_char* str) int xp_lisp_comp_symbol (xp_lisp_obj_t* obj, const xp_char_t* str)
{ {
xp_lisp_char* p; xp_char_t* p;
xp_size_t index, length; xp_size_t index, length;
xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_SYMBOL); xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_SYMBOL);
@ -579,9 +580,9 @@ int xp_lisp_comp_symbol (xp_lisp_obj_t* obj, const xp_lisp_char* str)
return (*str == XP_CHAR('\0'))? 0: -1; return (*str == XP_CHAR('\0'))? 0: -1;
} }
int xp_lisp_comp_symbol2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t len) int xp_lisp_comp_symbol2 (xp_lisp_obj_t* obj, const xp_char_t* str, xp_size_t len)
{ {
xp_lisp_char* p; xp_char_t* p;
xp_size_t index, length; xp_size_t index, length;
xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_SYMBOL); xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_SYMBOL);
@ -600,9 +601,9 @@ int xp_lisp_comp_symbol2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t
(length > len)? 1: 0; (length > len)? 1: 0;
} }
int xp_lisp_comp_string (xp_lisp_obj_t* obj, const xp_lisp_char* str) int xp_lisp_comp_string (xp_lisp_obj_t* obj, const xp_char_t* str)
{ {
xp_lisp_char* p; xp_char_t* p;
xp_size_t index, length; xp_size_t index, length;
xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_STRING); xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_STRING);
@ -620,9 +621,9 @@ int xp_lisp_comp_string (xp_lisp_obj_t* obj, const xp_lisp_char* str)
return (*str == XP_CHAR('\0'))? 0: -1; return (*str == XP_CHAR('\0'))? 0: -1;
} }
int xp_lisp_comp_string2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t len) int xp_lisp_comp_string2 (xp_lisp_obj_t* obj, const xp_char_t* str, xp_size_t len)
{ {
xp_lisp_char* p; xp_char_t* p;
xp_size_t index, length; xp_size_t index, length;
xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_STRING); xp_assert (XP_LISP_TYPE(obj) == XP_LISP_OBJ_STRING);
@ -641,14 +642,14 @@ int xp_lisp_comp_string2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t
(length > len)? 1: 0; (length > len)? 1: 0;
} }
void xp_lisp_copy_string (xp_lisp_char* dst, const xp_lisp_char* str) void xp_lisp_copy_string (xp_char_t* dst, const xp_char_t* str)
{ {
// the buffer pointed by dst should be big enough to hold str // the buffer pointed by dst should be big enough to hold str
while (*str != XP_CHAR('\0')) *dst++ = *str++; while (*str != XP_CHAR('\0')) *dst++ = *str++;
*dst = XP_CHAR('\0'); *dst = XP_CHAR('\0');
} }
void xp_lisp_copy_string2 (xp_lisp_char* dst, const xp_lisp_char* str, xp_size_t len) void xp_lisp_copy_string2 (xp_char_t* dst, const xp_char_t* str, xp_size_t len)
{ {
// the buffer pointed by dst should be big enough to hold str // the buffer pointed by dst should be big enough to hold str
while (len > 0) { while (len > 0) {

View File

@ -1,5 +1,5 @@
/* /*
* $Id: memory.h,v 1.2 2005-02-04 16:00:37 bacon Exp $ * $Id: memory.h,v 1.3 2005-02-07 15:10:41 bacon Exp $
*/ */
#ifndef _XP_LISP_MEM_H_ #ifndef _XP_LISP_MEM_H_
@ -70,8 +70,8 @@ xp_lisp_obj_t* xp_lisp_make_nil (xp_lisp_mem_t* mem);
xp_lisp_obj_t* xp_lisp_make_true (xp_lisp_mem_t* mem); xp_lisp_obj_t* xp_lisp_make_true (xp_lisp_mem_t* mem);
xp_lisp_obj_t* xp_lisp_make_int (xp_lisp_mem_t* mem, xp_lisp_int value); xp_lisp_obj_t* xp_lisp_make_int (xp_lisp_mem_t* mem, xp_lisp_int value);
xp_lisp_obj_t* xp_lisp_make_float (xp_lisp_mem_t* mem, xp_lisp_float value); xp_lisp_obj_t* xp_lisp_make_float (xp_lisp_mem_t* mem, xp_lisp_float value);
xp_lisp_obj_t* xp_lisp_make_symbol (xp_lisp_mem_t* mem, const xp_lisp_char* str, xp_size_t len); xp_lisp_obj_t* xp_lisp_make_symbol (xp_lisp_mem_t* mem, const xp_char_t* str, xp_size_t len);
xp_lisp_obj_t* xp_lisp_make_string (xp_lisp_mem_t* mem, const xp_lisp_char* str, xp_size_t len); xp_lisp_obj_t* xp_lisp_make_string (xp_lisp_mem_t* mem, const xp_char_t* str, xp_size_t len);
xp_lisp_obj_t* xp_lisp_make_cons (xp_lisp_mem_t* mem, xp_lisp_obj_t* car, xp_lisp_obj_t* cdr); xp_lisp_obj_t* xp_lisp_make_cons (xp_lisp_mem_t* mem, xp_lisp_obj_t* car, xp_lisp_obj_t* cdr);
xp_lisp_obj_t* xp_lisp_make_func (xp_lisp_mem_t* mem, xp_lisp_obj_t* formal, xp_lisp_obj_t* body); xp_lisp_obj_t* xp_lisp_make_func (xp_lisp_mem_t* mem, xp_lisp_obj_t* formal, xp_lisp_obj_t* body);
xp_lisp_obj_t* xp_lisp_make_macro (xp_lisp_mem_t* mem, xp_lisp_obj_t* formal, xp_lisp_obj_t* body); xp_lisp_obj_t* xp_lisp_make_macro (xp_lisp_mem_t* mem, xp_lisp_obj_t* formal, xp_lisp_obj_t* body);
@ -86,12 +86,12 @@ xp_size_t xp_lisp_cons_len (xp_lisp_mem_t* mem, xp_lisp_obj_t* obj);
int xp_lisp_probe_args (xp_lisp_mem_t* mem, xp_lisp_obj_t* obj, xp_size_t* len); int xp_lisp_probe_args (xp_lisp_mem_t* mem, xp_lisp_obj_t* obj, xp_size_t* len);
// symbol and string operations // symbol and string operations
int xp_lisp_comp_symbol (xp_lisp_obj_t* obj, const xp_lisp_char* str); int xp_lisp_comp_symbol (xp_lisp_obj_t* obj, const xp_char_t* str);
int xp_lisp_comp_symbol2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t len); int xp_lisp_comp_symbol2 (xp_lisp_obj_t* obj, const xp_char_t* str, xp_size_t len);
int xp_lisp_comp_string (xp_lisp_obj_t* obj, const xp_lisp_char* str); int xp_lisp_comp_string (xp_lisp_obj_t* obj, const xp_char_t* str);
int xp_lisp_comp_string2 (xp_lisp_obj_t* obj, const xp_lisp_char* str, xp_size_t len); int xp_lisp_comp_string2 (xp_lisp_obj_t* obj, const xp_char_t* str, xp_size_t len);
void xp_lisp_copy_string (xp_lisp_char* dst, const xp_lisp_char* str); void xp_lisp_copy_string (xp_char_t* dst, const xp_char_t* str);
void xp_lisp_copy_string2 (xp_lisp_char* dst, const xp_lisp_char* str, xp_size_t len); void xp_lisp_copy_string2 (xp_char_t* dst, const xp_char_t* str, xp_size_t len);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -1,5 +1,5 @@
/* /*
* $Id: object.h,v 1.2 2005-02-04 16:00:37 bacon Exp $ * $Id: object.h,v 1.3 2005-02-07 15:10:41 bacon Exp $
*/ */
#ifndef _XP_LISP_OBJECT_H_ #ifndef _XP_LISP_OBJECT_H_
@ -63,7 +63,7 @@ struct xp_lisp_obj_symbol_t
XP_LISP_OBJ_HEADER; XP_LISP_OBJ_HEADER;
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#else #else
xp_lisp_char buffer[0]; xp_char_t buffer[0];
#endif #endif
}; };
@ -72,7 +72,7 @@ struct xp_lisp_obj_string_t
XP_LISP_OBJ_HEADER; XP_LISP_OBJ_HEADER;
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#else #else
xp_lisp_char buffer[0]; xp_char_t buffer[0];
#endif #endif
}; };
@ -127,18 +127,18 @@ typedef struct xp_lisp_obj_prim_t xp_lisp_obj_prim_t;
#define XP_LISP_FVALUE(x) (((xp_lisp_obj_float_t*)x)->value) #define XP_LISP_FVALUE(x) (((xp_lisp_obj_float_t*)x)->value)
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#define XP_LISP_SYMVALUE(x) ((xp_lisp_char*)(((xp_lisp_obj_symbol_t*)x) + 1)) #define XP_LISP_SYMVALUE(x) ((xp_char_t*)(((xp_lisp_obj_symbol_t*)x) + 1))
#else #else
#define XP_LISP_SYMVALUE(x) (((xp_lisp_obj_symbol_t*)x)->buffer) #define XP_LISP_SYMVALUE(x) (((xp_lisp_obj_symbol_t*)x)->buffer)
#endif #endif
#define XP_LISP_SYMLEN(x) ((((xp_lisp_obj_symbol_t*)x)->size - sizeof(xp_lisp_obj_t)) / sizeof(xp_lisp_char) - 1) #define XP_LISP_SYMLEN(x) ((((xp_lisp_obj_symbol_t*)x)->size - sizeof(xp_lisp_obj_t)) / sizeof(xp_char_t) - 1)
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#define XP_LISP_STRVALUE(x) ((xp_lisp_char*)(((xp_lisp_obj_string_t*)x) + 1)) #define XP_LISP_STRVALUE(x) ((xp_char_t*)(((xp_lisp_obj_string_t*)x) + 1))
#else #else
#define XP_LISP_STRVALUE(x) (((xp_lisp_obj_string_t*)x)->buffer) #define XP_LISP_STRVALUE(x) (((xp_lisp_obj_string_t*)x)->buffer)
#endif #endif
#define XP_LISP_STRLEN(x) ((((xp_lisp_obj_string_t*)x)->size - sizeof(xp_lisp_obj_t)) / sizeof(xp_lisp_char) - 1) #define XP_LISP_STRLEN(x) ((((xp_lisp_obj_string_t*)x)->size - sizeof(xp_lisp_obj_t)) / sizeof(xp_char_t) - 1)
#define XP_LISP_CAR(x) (((xp_lisp_obj_cons_t*)x)->car) #define XP_LISP_CAR(x) (((xp_lisp_obj_cons_t*)x)->car)
#define XP_LISP_CDR(x) (((xp_lisp_obj_cons_t*)x)->cdr) #define XP_LISP_CDR(x) (((xp_lisp_obj_cons_t*)x)->cdr)

View File

@ -1,5 +1,5 @@
/* /*
* $Id: token.c,v 1.6 2005-02-05 05:43:55 bacon Exp $ * $Id: token.c,v 1.7 2005-02-07 15:10:41 bacon Exp $
*/ */
#include <xp/lisp/token.h> #include <xp/lisp/token.h>
@ -15,7 +15,7 @@ xp_lisp_token_t* xp_lisp_token_new (xp_size_t capacity)
token = (xp_lisp_token_t*)xp_malloc (sizeof(xp_lisp_token_t)); token = (xp_lisp_token_t*)xp_malloc (sizeof(xp_lisp_token_t));
if (token == XP_NULL) return XP_NULL; if (token == XP_NULL) return XP_NULL;
token->buffer = (xp_lisp_char*)xp_malloc ((capacity + 1) * sizeof(xp_lisp_char)); token->buffer = (xp_char_t*)xp_malloc ((capacity + 1) * sizeof(xp_char_t));
if (token->buffer == XP_NULL) { if (token->buffer == XP_NULL) {
xp_free (token); xp_free (token);
return XP_NULL; return XP_NULL;
@ -37,12 +37,12 @@ void xp_lisp_token_free (xp_lisp_token_t* token)
xp_free (token); xp_free (token);
} }
int xp_lisp_token_addc (xp_lisp_token_t* token, xp_lisp_cint c) int xp_lisp_token_addc (xp_lisp_token_t* token, xp_cint_t c)
{ {
if (token->size >= token->capacity) { if (token->size >= token->capacity) {
// double the capacity. // double the capacity.
xp_lisp_char* new_buffer = (xp_lisp_char*)realloc ( xp_char_t* new_buffer = (xp_char_t*)realloc (
token->buffer, (token->capacity * 2 + 1) * sizeof(xp_lisp_char)); token->buffer, (token->capacity * 2 + 1) * sizeof(xp_char_t));
if (new_buffer == XP_NULL) return -1; if (new_buffer == XP_NULL) return -1;
token->buffer = new_buffer; token->buffer = new_buffer;
token->capacity = token->capacity * 2; token->capacity = token->capacity * 2;
@ -62,11 +62,11 @@ void xp_lisp_token_clear (xp_lisp_token_t* token)
token->buffer[0] = XP_CHAR('\0'); token->buffer[0] = XP_CHAR('\0');
} }
xp_lisp_char* xp_lisp_token_transfer (xp_lisp_token_t* token, xp_size_t capacity) xp_char_t* xp_lisp_token_transfer (xp_lisp_token_t* token, xp_size_t capacity)
{ {
xp_lisp_char* old_buffer, * new_buffer; xp_char_t* old_buffer, * new_buffer;
new_buffer = (xp_lisp_char*)xp_malloc((capacity + 1) * sizeof(xp_lisp_char)); new_buffer = (xp_char_t*)xp_malloc((capacity + 1) * sizeof(xp_char_t));
if (new_buffer == XP_NULL) return XP_NULL; if (new_buffer == XP_NULL) return XP_NULL;
old_buffer = token->buffer; old_buffer = token->buffer;
@ -78,9 +78,9 @@ xp_lisp_char* xp_lisp_token_transfer (xp_lisp_token_t* token, xp_size_t capacity
return old_buffer; return old_buffer;
} }
int xp_lisp_token_compare (xp_lisp_token_t* token, const xp_lisp_char* str) int xp_lisp_token_compare (xp_lisp_token_t* token, const xp_char_t* str)
{ {
xp_lisp_char* p = token->buffer; xp_char_t* p = token->buffer;
xp_size_t index = 0; xp_size_t index = 0;
while (index < token->size) { while (index < token->size) {

View File

@ -1,5 +1,5 @@
/* /*
* $Id: token.h,v 1.3 2005-02-04 16:03:25 bacon Exp $ * $Id: token.h,v 1.4 2005-02-07 15:10:41 bacon Exp $
*/ */
#ifndef _XP_LISP_TOKEN_H_ #ifndef _XP_LISP_TOKEN_H_
@ -16,7 +16,7 @@ struct xp_lisp_token_t
xp_size_t capacity; xp_size_t capacity;
xp_size_t size; xp_size_t size;
xp_lisp_char* buffer; xp_char_t* buffer;
}; };
typedef struct xp_lisp_token_t xp_lisp_token_t; typedef struct xp_lisp_token_t xp_lisp_token_t;
@ -27,10 +27,10 @@ extern "C" {
xp_lisp_token_t* xp_lisp_token_new (xp_size_t capacity); xp_lisp_token_t* xp_lisp_token_new (xp_size_t capacity);
void xp_lisp_token_free (xp_lisp_token_t* token); void xp_lisp_token_free (xp_lisp_token_t* token);
int xp_lisp_token_addc (xp_lisp_token_t* token, xp_lisp_cint c); int xp_lisp_token_addc (xp_lisp_token_t* token, xp_cint_t c);
void xp_lisp_token_clear (xp_lisp_token_t* token); void xp_lisp_token_clear (xp_lisp_token_t* token);
xp_lisp_char* xp_lisp_token_transfer (xp_lisp_token_t* token, xp_size_t capacity); xp_char_t* xp_lisp_token_transfer (xp_lisp_token_t* token, xp_size_t capacity);
int xp_lisp_token_compare (xp_lisp_token_t* token, const xp_lisp_char* str); int xp_lisp_token_compare (xp_lisp_token_t* token, const xp_char_t* str);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -1,5 +1,5 @@
/* /*
* $Id: types.h,v 1.3 2005-02-04 16:23:34 bacon Exp $ * $Id: types.h,v 1.4 2005-02-07 15:10:41 bacon Exp $
*/ */
#ifndef _XP_LISP_TYPES_H_ #ifndef _XP_LISP_TYPES_H_
@ -8,7 +8,6 @@
#include <xp/types.h> #include <xp/types.h>
#include <xp/macros.h> #include <xp/macros.h>
typedef xp_char_t xp_lisp_char;
typedef xp_cint_t xp_lisp_cint; typedef xp_cint_t xp_lisp_cint;
typedef xp_long_t xp_lisp_int; typedef xp_long_t xp_lisp_int;
typedef xp_real_t xp_lisp_float; typedef xp_real_t xp_lisp_float;

View File

@ -33,6 +33,8 @@ int to_int (const xp_char_t* str)
return r; return r;
} }
#include <locale.h>
int xp_main (int argc, xp_char_t* argv[]) int xp_main (int argc, xp_char_t* argv[])
{ {
xp_lisp_t* lisp; xp_lisp_t* lisp;
@ -41,6 +43,9 @@ int xp_main (int argc, xp_char_t* argv[])
#ifdef LINUX #ifdef LINUX
mtrace (); mtrace ();
#endif #endif
setlocale (LC_ALL, "");
if (argc != 3) { if (argc != 3) {
xp_fprintf (xp_stderr, XP_TEXT("usage: %s mem_ubound mem_ubound_inc\n"), argv[0]); xp_fprintf (xp_stderr, XP_TEXT("usage: %s mem_ubound mem_ubound_inc\n"), argv[0]);
return -1; return -1;