qse/ase/test/stx/stx.c

53 lines
1.1 KiB
C
Raw Normal View History

2005-05-12 15:25:06 +00:00
#include <xp/stx/stx.h>
2005-05-06 17:18:29 +00:00
#include <xp/bas/stdio.h>
2005-05-12 15:25:06 +00:00
#include <xp/stx/hash.h>
void print_symbol_names (xp_stx_t* stx, xp_stx_word_t idx)
{
xp_stx_word_t key = XP_STX_AT(stx,idx,1);
xp_printf (XP_TEXT("%s\n"), &XP_STX_CHARAT(stx,key,0));
}
2005-05-06 17:18:29 +00:00
int xp_main ()
{
2005-05-08 10:31:25 +00:00
xp_stx_t stx;
2005-05-06 17:18:29 +00:00
xp_stx_word_t i;
2005-05-10 08:21:10 +00:00
if (xp_stx_open (&stx, 10000) == XP_NULL) {
2005-05-08 10:44:58 +00:00
xp_printf (XP_TEXT("cannot open stx\n"));
2005-05-06 17:18:29 +00:00
return -1;
}
2005-05-08 10:44:58 +00:00
if (xp_stx_bootstrap(&stx) == -1) {
xp_stx_close (&stx);
xp_printf (XP_TEXT("cannot bootstrap\n"));
return -1;
}
2005-05-08 10:31:25 +00:00
2005-05-08 10:39:40 +00:00
xp_printf (XP_TEXT("stx.nil %d\n"), stx.nil);
xp_printf (XP_TEXT("stx.true %d\n"), stx.true);
xp_printf (XP_TEXT("stx.false %d\n"), stx.false);
2005-05-12 15:25:06 +00:00
xp_stx_hash_traverse (&stx, stx.symbol_table, print_symbol_names);
2005-05-10 08:21:10 +00:00
/*
2005-05-06 17:18:29 +00:00
for (i = 0; i < 20; i++) {
xp_printf (XP_TEXT("%d, %d\n"),
2005-05-08 10:31:25 +00:00
i, xp_stx_memory_alloc(&stx.memory, 100));
2005-05-06 17:18:29 +00:00
}
2005-05-08 10:58:26 +00:00
for (i = 5; i < 10; i++) {
2005-05-08 10:31:25 +00:00
xp_stx_memory_dealloc (&stx.memory, i);
2005-05-06 17:18:29 +00:00
}
for (i = 0; i < 20; i++) {
xp_printf (XP_TEXT("%d, %d\n"),
2005-05-08 10:31:25 +00:00
i, xp_stx_memory_alloc(&stx.memory, 100));
2005-05-06 17:18:29 +00:00
}
2005-05-10 08:21:10 +00:00
*/
2005-05-08 10:31:25 +00:00
xp_stx_close (&stx);
2005-05-06 17:18:29 +00:00
xp_printf (XP_TEXT("End of program\n"));
return 0;
}