Changeset 492 for abuse/trunk
- Timestamp:
- Apr 17, 2011, 10:28:52 AM (12 years ago)
- Location:
- abuse/trunk/src
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
abuse/trunk/src/ant.cpp
r491 r492 113 113 PtrRef r1(call_list); 114 114 push_onto_list(new_lisp_pointer(b),call_list); 115 push_onto_list(L ispNumber::Create(angle),call_list);116 push_onto_list(L ispNumber::Create(firey),call_list);117 push_onto_list(L ispNumber::Create(firex),call_list);118 push_onto_list(L ispNumber::Create(o->aitype()),call_list);115 push_onto_list(LNumber::Create(angle),call_list); 116 push_onto_list(LNumber::Create(firey),call_list); 117 push_onto_list(LNumber::Create(firex),call_list); 118 push_onto_list(LNumber::Create(o->aitype()),call_list); 119 119 push_onto_list(new_lisp_pointer(o),call_list); 120 eval_user_fun((L ispSymbol *)l_fire_object,call_list);120 eval_user_fun((LSymbol *)l_fire_object,call_list); 121 121 o->set_state((character_state)S_weapon_fire); 122 122 } -
abuse/trunk/src/cache.cpp
r491 r492 384 384 385 385 void *call_with=NULL; 386 push_onto_list(L ispNumber::Create(type),call_with);387 388 void *CacheList=eval_function((L ispSymbol *)cache_fun,call_with);386 push_onto_list(LNumber::Create(type),call_with); 387 388 void *CacheList=eval_function((LSymbol *)cache_fun,call_with); 389 389 PtrRef r1(CacheList); 390 390 -
abuse/trunk/src/chars.cpp
r491 r492 110 110 int sp=current_space; 111 111 current_space=PERM_SPACE; 112 ((L ispSymbol *)symbol)->SetNumber(num);112 ((LSymbol *)symbol)->SetNumber(num); 113 113 current_space=sp; 114 114 } … … 119 119 lbreak("symbol has been assigned value %d, but value already in use by state %s\n" 120 120 "use a different symbol for this state\n", 121 lstring_value(((L ispSymbol *)seq_syms[num])->GetName()));121 lstring_value(((LSymbol *)seq_syms[num])->GetName())); 122 122 exit(0); 123 123 } else if (num>=ts) … … 173 173 return 0; 174 174 } 175 return L ispNumber::Create(current_object->lvars[t->var_index[number]]);175 return LNumber::Create(current_object->lvars[t->var_index[number]]); 176 176 } 177 177 … … 202 202 /* First see if the variable has been defined for another object 203 203 if so report a conflict if any occur */ 204 L ispSymbol *s=(LispSymbol *)symbol;204 LSymbol *s=(LSymbol *)symbol; 205 205 if (DEFINEDP(s->value) && (item_type(s->value)!=L_OBJECT_VAR)) 206 206 { … … 210 210 } else if (DEFINEDP(s->value)) 211 211 { 212 int index=((L ispObjectVar *)s->value)->number;212 int index=((LObjectVar *)s->value)->number; 213 213 if (index<tiv) 214 214 { … … 219 219 " with index %d, but %s has a var listed '%s' with same index\n" 220 220 " try moving definition of %s before previously declared object", 221 lstring_value(((L ispSymbol *)name)->GetName()),222 lstring_value(((L ispSymbol *)symbol)->GetName()),221 lstring_value(((LSymbol *)name)->GetName()), 222 lstring_value(((LSymbol *)symbol)->GetName()), 223 223 index, 224 lstring_value(((L ispSymbol *)name)->GetName()),225 lstring_value(((L ispSymbol *)vars[index])->GetName()),226 lstring_value(((L ispSymbol *)name)->GetName())224 lstring_value(((LSymbol *)name)->GetName()), 225 lstring_value(((LSymbol *)vars[index])->GetName()), 226 lstring_value(((LSymbol *)name)->GetName()) 227 227 ); 228 228 exit(0); … … 285 285 } 286 286 for (i=0;i<tiv;i++) 287 if (!strcmp(lstring_value(((L ispSymbol *)vars[i])->GetName()),name))287 if (!strcmp(lstring_value(((LSymbol *)vars[i])->GetName()),name)) 288 288 return 1; 289 289 return 0; … … 301 301 tiv=0; 302 302 303 L ispSymbol *l_abil = LispSymbol::FindOrCreate("abilities");304 L ispSymbol *l_funs = LispSymbol::FindOrCreate("funs");305 L ispSymbol *l_states = LispSymbol::FindOrCreate("states");306 L ispSymbol *l_flags = LispSymbol::FindOrCreate("flags");307 L ispSymbol *l_range = LispSymbol::FindOrCreate("range");308 L ispSymbol *l_draw_range = LispSymbol::FindOrCreate("draw_range");309 L ispSymbol *l_fields = LispSymbol::FindOrCreate("fields");310 L ispSymbol *l_logo = LispSymbol::FindOrCreate("logo");311 L ispSymbol *l_vars = LispSymbol::FindOrCreate("vars");303 LSymbol *l_abil = LSymbol::FindOrCreate("abilities"); 304 LSymbol *l_funs = LSymbol::FindOrCreate("funs"); 305 LSymbol *l_states = LSymbol::FindOrCreate("states"); 306 LSymbol *l_flags = LSymbol::FindOrCreate("flags"); 307 LSymbol *l_range = LSymbol::FindOrCreate("range"); 308 LSymbol *l_draw_range = LSymbol::FindOrCreate("draw_range"); 309 LSymbol *l_fields = LSymbol::FindOrCreate("fields"); 310 LSymbol *l_logo = LSymbol::FindOrCreate("logo"); 311 LSymbol *l_vars = LSymbol::FindOrCreate("vars"); 312 312 313 313 memset(fun_table,0,sizeof(fun_table)); // destory all hopes of fun … … 336 336 for (i=0;i<TOTAL_ABILITIES;i++) 337 337 { 338 Cell *ab=assoc(L ispSymbol::FindOrCreate(ability_names[i]),l);338 Cell *ab=assoc(LSymbol::FindOrCreate(ability_names[i]),l); 339 339 PtrRef r5(ab); 340 340 if (!NILP(ab)) … … 347 347 for (i=0;i<TOTAL_OFUNS;i++) 348 348 { 349 Cell *ab=assoc(L ispSymbol::FindOrCreate(ofun_names[i]),l);349 Cell *ab=assoc(LSymbol::FindOrCreate(ofun_names[i]),l); 350 350 PtrRef r5(ab); 351 351 if (!NILP(ab) && lcar(lcdr(ab))) … … 358 358 for (i=0;i<TOTAL_CFLAGS;i++) 359 359 { 360 Cell *ab=assoc(L ispSymbol::FindOrCreate(cflag_names[i]),l);360 Cell *ab=assoc(LSymbol::FindOrCreate(cflag_names[i]),l); 361 361 PtrRef r5(ab); 362 362 if (!NILP(ab) && eval(lcar(lcdr(ab)))) … … 440 440 if (!seq[stopped]) 441 441 lbreak("object (%s) has no stopped state, please define one!\n", 442 lstring_value(((L ispSymbol *)name)->GetName()));442 lstring_value(((LSymbol *)name)->GetName())); 443 443 444 444 /* char *fn=lstring_value(lcar(desc)); -
abuse/trunk/src/clisp.cpp
r491 r492 39 39 40 40 // the following are references to lisp symbols 41 L ispSymbol *l_chat_input, *l_post_render;42 43 L ispSymbol *l_difficulty, *l_easy, *l_hard, *l_medium, *l_extreme,41 LSymbol *l_chat_input, *l_post_render; 42 43 LSymbol *l_difficulty, *l_easy, *l_hard, *l_medium, *l_extreme, 44 44 *l_max_hp, *l_max_power, 45 45 *l_empty_cache; 46 46 47 // FIXME: port these to L ispSymbol47 // FIXME: port these to LSymbol 48 48 void *l_main_menu, *l_logo,*l_state_art,*l_abilities,*l_state_sfx, 49 49 *l_song_list,*l_filename,*l_sfx_directory,*l_default_font, … … 103 103 // to irnterface with c 104 104 { 105 l_easy = L ispSymbol::FindOrCreate("easy");106 l_medium = L ispSymbol::FindOrCreate("medium");107 l_hard = L ispSymbol::FindOrCreate("hard");108 l_extreme = L ispSymbol::FindOrCreate("extreme");109 110 l_logo = L ispSymbol::FindOrCreate("logo");111 l_morph = L ispSymbol::FindOrCreate("morph");112 113 l_pushx = L ispSymbol::FindOrCreate("pushx");114 l_pushy = L ispSymbol::FindOrCreate("pushy");115 116 l_dist = L ispSymbol::FindOrCreate("dist");117 l_state_art = L ispSymbol::FindOrCreate("state_art");118 l_abilities = L ispSymbol::FindOrCreate("abilities");119 l_default_abilities = L ispSymbol::FindOrCreate("default_abilities");120 l_state_sfx = L ispSymbol::FindOrCreate("state_sfx");121 l_filename = L ispSymbol::FindOrCreate("filename");122 l_sfx_directory = L ispSymbol::FindOrCreate("sfx_directory");123 l_default_font = L ispSymbol::FindOrCreate("default_font");124 l_console_font = L ispSymbol::FindOrCreate("console_font");125 l_default_ai_function = L ispSymbol::FindOrCreate("default_ai");126 l_tile_files = L ispSymbol::FindOrCreate("tile_files");127 l_empty_cache = L ispSymbol::FindOrCreate("empty_cache");128 l_range = L ispSymbol::FindOrCreate("range");129 l_difficulty = L ispSymbol::FindOrCreate("difficulty");130 l_death_handler = L ispSymbol::FindOrCreate("death_handler");131 l_title_screen = L ispSymbol::FindOrCreate("title_screen");132 l_fields = L ispSymbol::FindOrCreate("fields");133 l_FIRE = L ispSymbol::FindOrCreate("FIRE");134 l_fire_object = L ispSymbol::FindOrCreate("fire_object");135 l_cop_dead_parts = L ispSymbol::FindOrCreate("cop_dead_parts");105 l_easy = LSymbol::FindOrCreate("easy"); 106 l_medium = LSymbol::FindOrCreate("medium"); 107 l_hard = LSymbol::FindOrCreate("hard"); 108 l_extreme = LSymbol::FindOrCreate("extreme"); 109 110 l_logo = LSymbol::FindOrCreate("logo"); 111 l_morph = LSymbol::FindOrCreate("morph"); 112 113 l_pushx = LSymbol::FindOrCreate("pushx"); 114 l_pushy = LSymbol::FindOrCreate("pushy"); 115 116 l_dist = LSymbol::FindOrCreate("dist"); 117 l_state_art = LSymbol::FindOrCreate("state_art"); 118 l_abilities = LSymbol::FindOrCreate("abilities"); 119 l_default_abilities = LSymbol::FindOrCreate("default_abilities"); 120 l_state_sfx = LSymbol::FindOrCreate("state_sfx"); 121 l_filename = LSymbol::FindOrCreate("filename"); 122 l_sfx_directory = LSymbol::FindOrCreate("sfx_directory"); 123 l_default_font = LSymbol::FindOrCreate("default_font"); 124 l_console_font = LSymbol::FindOrCreate("console_font"); 125 l_default_ai_function = LSymbol::FindOrCreate("default_ai"); 126 l_tile_files = LSymbol::FindOrCreate("tile_files"); 127 l_empty_cache = LSymbol::FindOrCreate("empty_cache"); 128 l_range = LSymbol::FindOrCreate("range"); 129 l_difficulty = LSymbol::FindOrCreate("difficulty"); 130 l_death_handler = LSymbol::FindOrCreate("death_handler"); 131 l_title_screen = LSymbol::FindOrCreate("title_screen"); 132 l_fields = LSymbol::FindOrCreate("fields"); 133 l_FIRE = LSymbol::FindOrCreate("FIRE"); 134 l_fire_object = LSymbol::FindOrCreate("fire_object"); 135 l_cop_dead_parts = LSymbol::FindOrCreate("cop_dead_parts"); 136 136 l_difficulty->SetValue(l_hard); 137 l_restart_player = L ispSymbol::FindOrCreate("restart_player");138 l_help_screens = L ispSymbol::FindOrCreate("help_screens");139 l_save_order = L ispSymbol::FindOrCreate("save_order");140 l_next_song = L ispSymbol::FindOrCreate("next_song");141 l_player_draw = L ispSymbol::FindOrCreate("player_draw");142 l_sneaky_draw = L ispSymbol::FindOrCreate("sneaky_draw");143 l_keep_backup = L ispSymbol::FindOrCreate("keep_backup");144 l_level_loaded = L ispSymbol::FindOrCreate("level_loaded");145 146 l_draw_fast = L ispSymbol::FindOrCreate("draw_fast");147 l_player_tints = L ispSymbol::FindOrCreate("player_tints");148 149 l_max_hp = L ispSymbol::FindOrCreate("max_hp");137 l_restart_player = LSymbol::FindOrCreate("restart_player"); 138 l_help_screens = LSymbol::FindOrCreate("help_screens"); 139 l_save_order = LSymbol::FindOrCreate("save_order"); 140 l_next_song = LSymbol::FindOrCreate("next_song"); 141 l_player_draw = LSymbol::FindOrCreate("player_draw"); 142 l_sneaky_draw = LSymbol::FindOrCreate("sneaky_draw"); 143 l_keep_backup = LSymbol::FindOrCreate("keep_backup"); 144 l_level_loaded = LSymbol::FindOrCreate("level_loaded"); 145 146 l_draw_fast = LSymbol::FindOrCreate("draw_fast"); 147 l_player_tints = LSymbol::FindOrCreate("player_tints"); 148 149 l_max_hp = LSymbol::FindOrCreate("max_hp"); 150 150 l_max_hp->SetNumber(200); 151 l_max_power = L ispSymbol::FindOrCreate("max_power");152 l_main_menu = L ispSymbol::FindOrCreate("main_menu");151 l_max_power = LSymbol::FindOrCreate("max_power"); 152 l_main_menu = LSymbol::FindOrCreate("main_menu"); 153 153 l_max_power->SetNumber(999); 154 154 155 L ispSymbol::FindOrCreate("run_state")->SetNumber(RUN_STATE);156 L ispSymbol::FindOrCreate("pause_state")->SetNumber(PAUSE_STATE);157 L ispSymbol::FindOrCreate("menu_state")->SetNumber(MENU_STATE);158 L ispSymbol::FindOrCreate("scene_state")->SetNumber(SCENE_STATE);159 160 l_statbar_ammo_x = L ispSymbol::FindOrCreate("statbar_ammo_x");161 l_statbar_ammo_y = L ispSymbol::FindOrCreate("statbar_ammo_y");162 l_statbar_ammo_w = L ispSymbol::FindOrCreate("statbar_ammo_w");163 l_statbar_ammo_h = L ispSymbol::FindOrCreate("statbar_ammo_h");164 l_statbar_ammo_bg_color = L ispSymbol::FindOrCreate("statbar_ammo_bg_color");165 166 l_statbar_health_x = L ispSymbol::FindOrCreate("statbar_health_x");167 l_statbar_health_y = L ispSymbol::FindOrCreate("statbar_health_y");168 l_statbar_health_w = L ispSymbol::FindOrCreate("statbar_health_w");169 l_statbar_health_h = L ispSymbol::FindOrCreate("statbar_health_h");170 l_statbar_health_bg_color = L ispSymbol::FindOrCreate("statbar_health_bg_color");171 172 l_statbar_logo_x = L ispSymbol::FindOrCreate("statbar_logo_x");173 l_statbar_logo_y = L ispSymbol::FindOrCreate("statbar_logo_y");174 l_object = L ispSymbol::FindOrCreate("object");175 l_tile = L ispSymbol::FindOrCreate("tile");176 l_cdc_logo = L ispSymbol::FindOrCreate("logo");177 178 l_switch_to_powerful = L ispSymbol::FindOrCreate("switch_to_powerful");179 l_mouse_can_switch = L ispSymbol::FindOrCreate("mouse_can_switch");180 l_ask_save_slot = L ispSymbol::FindOrCreate("ask_save_slot");181 182 l_level_load_start = L ispSymbol::FindOrCreate("level_load_start");183 l_level_load_end = L ispSymbol::FindOrCreate("level_load_end");184 l_get_local_input = L ispSymbol::FindOrCreate("get_local_input");185 l_chat_input = L ispSymbol::FindOrCreate("chat_input");186 l_player_text_color = L ispSymbol::FindOrCreate("player_text_color");155 LSymbol::FindOrCreate("run_state")->SetNumber(RUN_STATE); 156 LSymbol::FindOrCreate("pause_state")->SetNumber(PAUSE_STATE); 157 LSymbol::FindOrCreate("menu_state")->SetNumber(MENU_STATE); 158 LSymbol::FindOrCreate("scene_state")->SetNumber(SCENE_STATE); 159 160 l_statbar_ammo_x = LSymbol::FindOrCreate("statbar_ammo_x"); 161 l_statbar_ammo_y = LSymbol::FindOrCreate("statbar_ammo_y"); 162 l_statbar_ammo_w = LSymbol::FindOrCreate("statbar_ammo_w"); 163 l_statbar_ammo_h = LSymbol::FindOrCreate("statbar_ammo_h"); 164 l_statbar_ammo_bg_color = LSymbol::FindOrCreate("statbar_ammo_bg_color"); 165 166 l_statbar_health_x = LSymbol::FindOrCreate("statbar_health_x"); 167 l_statbar_health_y = LSymbol::FindOrCreate("statbar_health_y"); 168 l_statbar_health_w = LSymbol::FindOrCreate("statbar_health_w"); 169 l_statbar_health_h = LSymbol::FindOrCreate("statbar_health_h"); 170 l_statbar_health_bg_color = LSymbol::FindOrCreate("statbar_health_bg_color"); 171 172 l_statbar_logo_x = LSymbol::FindOrCreate("statbar_logo_x"); 173 l_statbar_logo_y = LSymbol::FindOrCreate("statbar_logo_y"); 174 l_object = LSymbol::FindOrCreate("object"); 175 l_tile = LSymbol::FindOrCreate("tile"); 176 l_cdc_logo = LSymbol::FindOrCreate("logo"); 177 178 l_switch_to_powerful = LSymbol::FindOrCreate("switch_to_powerful"); 179 l_mouse_can_switch = LSymbol::FindOrCreate("mouse_can_switch"); 180 l_ask_save_slot = LSymbol::FindOrCreate("ask_save_slot"); 181 182 l_level_load_start = LSymbol::FindOrCreate("level_load_start"); 183 l_level_load_end = LSymbol::FindOrCreate("level_load_end"); 184 l_get_local_input = LSymbol::FindOrCreate("get_local_input"); 185 l_chat_input = LSymbol::FindOrCreate("chat_input"); 186 l_player_text_color = LSymbol::FindOrCreate("player_text_color"); 187 187 188 188 int i; 189 189 for (i=0;i<MAX_STATE;i++) 190 L ispSymbol::FindOrCreate(state_names[i])->SetNumber(i);190 LSymbol::FindOrCreate(state_names[i])->SetNumber(i); 191 191 for (i=0;i<TOTAL_ABILITIES;i++) 192 L ispSymbol::FindOrCreate(ability_names[i])->SetNumber(i);192 LSymbol::FindOrCreate(ability_names[i])->SetNumber(i); 193 193 for (i=0;i<TOTAL_CFLAGS;i++) 194 L ispSymbol::FindOrCreate(cflag_names[i])->SetNumber(i);195 196 l_song_list = L ispSymbol::FindOrCreate("song_list");197 l_post_render = L ispSymbol::FindOrCreate("post_render");194 LSymbol::FindOrCreate(cflag_names[i])->SetNumber(i); 195 196 l_song_list = LSymbol::FindOrCreate("song_list"); 197 l_post_render = LSymbol::FindOrCreate("post_render"); 198 198 199 199 add_c_function("distx",0,0, 1); … … 581 581 exit(0); 582 582 } 583 return eval_function((L ispSymbol *)ai,NULL);583 return eval_function((LSymbol *)ai,NULL); 584 584 } break; 585 585 case 1 : … … 709 709 void *f=figures[current_object->otype]->get_fun(OFUN_USER_FUN); 710 710 if (!f) return NULL; 711 return eval_function((L ispSymbol *)f,args);711 return eval_function((LSymbol *)f,args); 712 712 } break; 713 713 case 17 : … … 725 725 } break; 726 726 case 18 : 727 { return L ispString::Create(object_names[current_object->otype]); } break;727 { return LString::Create(object_names[current_object->otype]); } break; 728 728 case 19 : 729 729 { return current_object->float_tick(); } break; … … 758 758 case 23 : // def_character 759 759 { 760 L ispSymbol *sym=(LispSymbol *)lcar(args);760 LSymbol *sym=(LSymbol *)lcar(args); 761 761 if (item_type(sym)!=L_SYMBOL) 762 762 { … … 782 782 figures[total_objects]=new character_type(CDR(args),sym); 783 783 total_objects++; 784 return L ispNumber::Create(total_objects-1);784 return LNumber::Create(total_objects-1); 785 785 } break; 786 786 case 24 : … … 792 792 current_level->foreground_intersect(x1,y1,x2,y2); 793 793 void *ret=NULL; 794 push_onto_list(L ispNumber::Create(y2),ret);795 push_onto_list(L ispNumber::Create(x2),ret);794 push_onto_list(LNumber::Create(y2),ret); 795 push_onto_list(LNumber::Create(x2),ret); 796 796 return ret; 797 797 } break; … … 799 799 { 800 800 #ifdef __linux__ 801 return L ispSymbol::FindOrCreate("LINUX");801 return LSymbol::FindOrCreate("LINUX"); 802 802 #endif 803 803 #ifdef __sgi 804 return L ispSymbol::FindOrCreate("IRIX");804 return LSymbol::FindOrCreate("IRIX"); 805 805 #endif 806 806 #ifdef __WIN32 807 return L ispSymbol::FindOrCreate("WIN32");807 return LSymbol::FindOrCreate("WIN32"); 808 808 #endif 809 809 } break; 810 810 case 26 : 811 811 { 812 return L ispString::Create(current_level->name());812 return LString::Create(current_level->name()); 813 813 } break; 814 814 case 27 : return ant_ai(); break; … … 855 855 char nm[50]; 856 856 last_savegame_name(nm); 857 return L ispString::Create(nm);857 return LString::Create(nm); 858 858 } break; 859 859 case 45 : … … 863 863 // get_savegame_name(nm); 864 864 the_game->reset_keymap(); 865 return L ispString::Create(nm);865 return LString::Create(nm); 866 866 } break; 867 867 case 46 : 868 868 { 869 return L ispString::Create(start_argv[lnumber_value(eval(CAR(args)))]);869 return LString::Create(start_argv[lnumber_value(eval(CAR(args)))]); 870 870 } break; 871 871 case 47 : … … 878 878 void *ret=NULL; 879 879 PtrRef r1(ret); 880 push_onto_list(L ispNumber::Create(b3),ret);881 push_onto_list(L ispNumber::Create(b2),ret);882 push_onto_list(L ispNumber::Create(b1),ret);883 push_onto_list(L ispNumber::Create(yv),ret);884 push_onto_list(L ispNumber::Create(xv),ret);880 push_onto_list(LNumber::Create(b3),ret); 881 push_onto_list(LNumber::Create(b2),ret); 882 push_onto_list(LNumber::Create(b1),ret); 883 push_onto_list(LNumber::Create(yv),ret); 884 push_onto_list(LNumber::Create(xv),ret); 885 885 return ret; 886 886 } break; … … 890 890 { 891 891 PtrRef r1(ret); 892 push_onto_list(L ispNumber::Create((last_demo_mbut&4)==4),ret);893 push_onto_list(L ispNumber::Create((last_demo_mbut&2)==2),ret);894 push_onto_list(L ispNumber::Create((last_demo_mbut&1)==1),ret);895 push_onto_list(L ispNumber::Create(last_demo_my),ret);896 push_onto_list(L ispNumber::Create(last_demo_mx),ret);892 push_onto_list(LNumber::Create((last_demo_mbut&4)==4),ret); 893 push_onto_list(LNumber::Create((last_demo_mbut&2)==2),ret); 894 push_onto_list(LNumber::Create((last_demo_mbut&1)==1),ret); 895 push_onto_list(LNumber::Create(last_demo_my),ret); 896 push_onto_list(LNumber::Create(last_demo_mx),ret); 897 897 } 898 898 return ret; … … 908 908 { 909 909 PtrRef r1(ret); 910 push_onto_list(L ispNumber::Create(ry),ret);911 push_onto_list(L ispNumber::Create(rx),ret);910 push_onto_list(LNumber::Create(ry),ret); 911 push_onto_list(LNumber::Create(rx),ret); 912 912 } 913 913 return ret; … … 923 923 { 924 924 PtrRef r1(ret); 925 push_onto_list(L ispNumber::Create(ry),ret);926 push_onto_list(L ispNumber::Create(rx),ret);925 push_onto_list(LNumber::Create(ry),ret); 926 push_onto_list(LNumber::Create(rx),ret); 927 927 } 928 928 return ret; … … 935 935 lbreak("object is not a player, cannot return name"); 936 936 else 937 return L ispString::Create(c->name);937 return LString::Create(c->name); 938 938 } break; 939 939 case 54 : … … 941 941 char cd[150]; 942 942 getcwd(cd,100); 943 return L ispString::Create(cd);943 return LString::Create(cd); 944 944 } break; 945 945 case 55 : … … 964 964 *tp=0; 965 965 } 966 return L ispString::Create(tmp);966 return LString::Create(tmp); 967 967 } break; 968 968 case 58 : … … 976 976 PtrRef r1(fl),r2(dl); 977 977 978 for (i=tfiles-1;i>=0;i--) { push_onto_list(L ispString::Create(files[i]),fl); free(files[i]); }978 for (i=tfiles-1;i>=0;i--) { push_onto_list(LString::Create(files[i]),fl); free(files[i]); } 979 979 free(files); 980 980 981 for (i=tdirs-1;i>=0;i--) { push_onto_list(L ispString::Create(dirs[i]),dl); free(dirs[i]); }981 for (i=tdirs-1;i>=0;i--) { push_onto_list(LString::Create(dirs[i]),dl); free(dirs[i]); } 982 982 free(dirs); 983 983 … … 1012 1012 { 1013 1013 sprintf(name2,"%s%04ld.pcx",name,i); 1014 push_onto_list(L ispString::Create(name2),ret);1014 push_onto_list(LString::Create(name2),ret); 1015 1015 } 1016 1016 } else … … 1019 1019 { 1020 1020 sprintf(name2,"%s%04ld.pcx",name,i); 1021 push_onto_list(L ispString::Create(name2),ret);1021 push_onto_list(LString::Create(name2),ret); 1022 1022 } 1023 1023 } … … 1355 1355 case 133 : // def_sound 1356 1356 { 1357 L ispSymbol *sym=NULL;1357 LSymbol *sym=NULL; 1358 1358 if (CDR(args)) 1359 1359 { 1360 sym=(L ispSymbol *)lcar(args);1360 sym=(LSymbol *)lcar(args); 1361 1361 if (item_type(sym)!=L_SYMBOL) 1362 1362 { … … 2264 2264 current_object=v->focus; 2265 2265 2266 eval_function((L ispSymbol *)l_restart_player,NULL);2266 eval_function((LSymbol *)l_restart_player,NULL); 2267 2267 v->reset_player(); 2268 2268 v->focus->set_aistate(0); -
abuse/trunk/src/clisp.h
r484 r492 14 14 15 15 // variables for the status bar 16 extern L ispSymbol *l_chat_input, *l_post_render;16 extern LSymbol *l_chat_input, *l_post_render; 17 17 18 // FIXME: port these to L ispSymbol18 // FIXME: port these to LSymbol 19 19 extern void *l_statbar_ammo_x,*l_statbar_ammo_y, 20 20 *l_statbar_ammo_w,*l_statbar_ammo_h, … … 42 42 43 43 /******************************** Lisp objects **********************************/ 44 extern L ispSymbol *l_difficulty, *l_easy, *l_hard, *l_medium, *l_extreme,44 extern LSymbol *l_difficulty, *l_easy, *l_hard, *l_medium, *l_extreme, 45 45 *l_max_hp, *l_max_power, 46 46 *l_empty_cache; 47 47 48 // FIXME: port these to L ispSymbol48 // FIXME: port these to LSymbol 49 49 extern void *l_main_menu, 50 50 *l_logo,*l_state_art,*l_default_abilities,*l_abilities, -
abuse/trunk/src/compiled.cpp
r484 r492 42 42 static int32_t c_state(char const *name) 43 43 { 44 void *sym = L ispSymbol::Find(name);44 void *sym = LSymbol::Find(name); 45 45 if (sym) 46 46 { 47 if (item_type(((L ispSymbol *)sym)->value)!=L_NUMBER)47 if (item_type(((LSymbol *)sym)->value)!=L_NUMBER) 48 48 compile_error=1; 49 49 else 50 return lnumber_value(((L ispSymbol *)sym)->value);50 return lnumber_value(((LSymbol *)sym)->value); 51 51 } else compile_error=1; 52 52 return 0; … … 122 122 S_DELETE_SND= c_state("DEL_OBJECT_SND"); 123 123 124 void *b = L ispSymbol::FindOrCreate("bad_guy_list");124 void *b = LSymbol::FindOrCreate("bad_guy_list"); 125 125 if (b && DEFINEDP(symbol_value(b))) 126 126 { … … 138 138 } 139 139 140 void *v = L ispSymbol::FindOrCreate("last_save_game")->GetValue();140 void *v = LSymbol::FindOrCreate("last_save_game")->GetValue(); 141 141 if (DEFINEDP(v)) 142 142 last_save_game_number=lnumber_value(v); -
abuse/trunk/src/configuration.cpp
r484 r492 36 36 char tmp[40]; 37 37 sprintf( tmp, "player%d", player ); 38 L ispSymbol *f = LispSymbol::Find(tmp);38 LSymbol *f = LSymbol::Find(tmp); 39 39 if( !NILP(f) && DEFINEDP(f->GetValue())) 40 40 { 41 41 void *what = f->GetValue(); 42 if(what == L ispSymbol::FindOrCreate("keyboard"))42 if(what == LSymbol::FindOrCreate("keyboard")) 43 43 return 1; 44 else if(what == L ispSymbol::FindOrCreate("joystick"))44 else if(what == LSymbol::FindOrCreate("joystick")) 45 45 return 2; 46 46 } -
abuse/trunk/src/cop.cpp
r491 r492 228 228 PtrRef r1(list); 229 229 push_onto_list(new_lisp_pointer(target),list); 230 push_onto_list(L ispNumber::Create(angle),list);231 push_onto_list(L ispNumber::Create(y2),list);232 push_onto_list(L ispNumber::Create(x2),list);233 push_onto_list(L ispNumber::Create(type),list);230 push_onto_list(LNumber::Create(angle),list); 231 push_onto_list(LNumber::Create(y2),list); 232 push_onto_list(LNumber::Create(x2),list); 233 push_onto_list(LNumber::Create(type),list); 234 234 push_onto_list(new_lisp_pointer(o->get_object(0)),list); 235 eval_function((L ispSymbol *)l_fire_object,list);235 eval_function((LSymbol *)l_fire_object,list); 236 236 o->lvars[top_just_fired]=1; 237 237 other->lvars[just_fired]=1; … … 260 260 o->lvars[fire_delay1]=3; 261 261 if (player_fire_weapon(o,SHOTGUN,NULL,o->lvars[point_angle],small_fire_off)) 262 ret=L ispNumber::Create(-1);263 else ret=L ispNumber::Create(0);262 ret=LNumber::Create(-1); 263 else ret=LNumber::Create(0); 264 264 } else 265 265 { 266 266 o->lvars[fire_delay1]=5; // no ammo, set large fire delay for next shot 267 267 player_fire_weapon(o,SHOTGUN,NULL,o->lvars[point_angle],small_fire_off); 268 ret=L ispNumber::Create(0);268 ret=LNumber::Create(0); 269 269 } 270 } else ret=L ispNumber::Create(0); // can't fire yet, return 0 ammo subtract270 } else ret=LNumber::Create(0); // can't fire yet, return 0 ammo subtract 271 271 } 272 272 return ret; … … 303 303 if (player_fire_weapon(o,ammo_type(o->otype),NULL,o->lvars[point_angle], 304 304 o->otype==DFRIS ? large_fire_off : small_fire_off )) 305 ret=L ispNumber::Create(-1);306 else ret=L ispNumber::Create(0);307 } else ret=L ispNumber::Create(0);308 } else ret=L ispNumber::Create(0); // can't fire yet, return 0 ammo subtract305 ret=LNumber::Create(-1); 306 else ret=LNumber::Create(0); 307 } else ret=LNumber::Create(0); 308 } else ret=LNumber::Create(0); // can't fire yet, return 0 ammo subtract 309 309 } 310 310 return ret; … … 329 329 o->lvars[fire_delay1]=2; 330 330 if (player_fire_weapon(o,PLASMA,NULL,o->lvars[point_angle],small_fire_off)) 331 ret=L ispNumber::Create(-1);332 else ret=L ispNumber::Create(0);333 } else ret=L ispNumber::Create(0);334 } else ret=L ispNumber::Create(0); // can't fire yet, return 0 ammo subtract331 ret=LNumber::Create(-1); 332 else ret=LNumber::Create(0); 333 } else ret=LNumber::Create(0); 334 } else ret=LNumber::Create(0); // can't fire yet, return 0 ammo subtract 335 335 } 336 336 return ret; … … 354 354 if (player_fire_weapon(o,LSABER,NULL,o->lvars[point_angle]+(current_level->tick_counter()&7)-8, 355 355 small_fire_off)) 356 ret=L ispNumber::Create(-1);357 else ret=L ispNumber::Create(0);358 } else ret=L ispNumber::Create(0);359 } else ret=L ispNumber::Create(0); // can't fire yet, return 0 ammo subtract356 ret=LNumber::Create(-1); 357 else ret=LNumber::Create(0); 358 } else ret=LNumber::Create(0); 359 } else ret=LNumber::Create(0); // can't fire yet, return 0 ammo subtract 360 360 } 361 361 return ret; … … 403 403 } 404 404 if (player_fire_weapon(o,ROCKET,target,o->lvars[point_angle],large_fire_off)) 405 ret=L ispNumber::Create(-1);406 else ret=L ispNumber::Create(0);407 408 } else ret=L ispNumber::Create(0);409 } else ret=L ispNumber::Create(0); // can't fire yet, return 0 ammo subtract405 ret=LNumber::Create(-1); 406 else ret=LNumber::Create(0); 407 408 } else ret=LNumber::Create(0); 409 } else ret=LNumber::Create(0); // can't fire yet, return 0 ammo subtract 410 410 } 411 411 return ret; … … 658 658 view *v=o->controller(); 659 659 660 push_onto_list(L ispNumber::Create(v->weapon_total(v->current_weapon)),args);660 push_onto_list(LNumber::Create(v->weapon_total(v->current_weapon)),args); 661 661 push_onto_list(l_FIRE,args); 662 662 663 663 current_object=top; 664 void *ret=eval_function((L ispSymbol *)figures[top->otype]->get_fun(OFUN_USER_FUN),args);664 void *ret=eval_function((LSymbol *)figures[top->otype]->get_fun(OFUN_USER_FUN),args); 665 665 current_object=o; 666 666 v->add_ammo(v->current_weapon,lnumber_value(ret)); … … 672 672 { 673 673 // call the user function to reset the player 674 eval_function((L ispSymbol *)l_restart_player,NULL);674 eval_function((LSymbol *)l_restart_player,NULL); 675 675 o->controller()->reset_player(); 676 676 o->set_aistate(0); … … 681 681 } 682 682 683 return L ispNumber::Create(ret);683 return LNumber::Create(ret); 684 684 } 685 685 … … 727 727 if (o->lvars[just_fired_var]) 728 728 { 729 o->draw_double_tint(lnumber_value(((L ispArray *)((LispSymbol *)l_player_tints)->GetValue())->Get(num)), S_bright_tint);729 o->draw_double_tint(lnumber_value(((LArray *)((LSymbol *)l_player_tints)->GetValue())->Get(num)), S_bright_tint); 730 730 o->lvars[just_fired_var]=0; 731 731 } else 732 o->draw_tint(lnumber_value(((L ispArray *)((LispSymbol *)l_player_tints)->GetValue())->Get(num)));732 o->draw_tint(lnumber_value(((LArray *)((LSymbol *)l_player_tints)->GetValue())->Get(num))); 733 733 } 734 734 return NULL; … … 755 755 PtrRef r1(ret); 756 756 757 push_onto_list(L ispNumber::Create(bot->get_tint()),ret);757 push_onto_list(LNumber::Create(bot->get_tint()),ret); 758 758 759 759 if (bot->lvars[special_power]==SNEAKY_POWER) … … 766 766 o->draw_predator(); 767 767 } else 768 eval_function((L ispSymbol *)l_player_draw,ret);768 eval_function((LSymbol *)l_player_draw,ret); 769 769 770 770 o->y=oldy; … … 829 829 case FAST_POWER : 830 830 { 831 eval_function((L ispSymbol *)l_draw_fast,NULL);831 eval_function((LSymbol *)l_draw_fast,NULL); 832 832 int old_state=o->state; 833 833 switch (o->state) … … 1021 1021 for (i=0;i<tp;i++) 1022 1022 { 1023 int color=lnumber_value(((L ispArray *)((LispSymbol *)l_player_text_color)->GetValue())->Get(sorted_players[i]->get_tint()));1023 int color=lnumber_value(((LArray *)((LSymbol *)l_player_text_color)->GetValue())->Get(sorted_players[i]->get_tint())); 1024 1024 sprintf(msg,"%3ld %s",(long)sorted_players[i]->kills,sorted_players[i]->name); 1025 1025 if (sorted_players[i]==local) … … 1062 1062 { 1063 1063 enum { NAME_LEN=18 } ; 1064 int color=lnumber_value(((L ispArray *)((LispSymbol *)l_player_text_color)->GetValue())->Get(v->get_tint()));1064 int color=lnumber_value(((LArray *)((LSymbol *)l_player_text_color)->GetValue())->Get(v->get_tint())); 1065 1065 char max_name[NAME_LEN]; 1066 1066 strncpy(max_name,v->name,NAME_LEN-1); -
abuse/trunk/src/demo.h
r484 r492 16 16 class demo_manager 17 17 { 18 L ispSymbol *initial_difficulty;18 LSymbol *initial_difficulty; 19 19 bFILE *record_file; 20 20 int skip_next; -
abuse/trunk/src/dev.cpp
r484 r492 42 42 char const *symbol_str(char const *name) 43 43 { 44 L ispSymbol *sym = LispSymbol::FindOrCreate(name);44 LSymbol *sym = LSymbol::FindOrCreate(name); 45 45 if (sym->GetValue() && item_type(sym->GetValue())==L_STRING) 46 46 return lstring_value(sym->GetValue()); … … 67 67 68 68 // check again to see if the symbol is there 69 sym = L ispSymbol::FindOrCreate(name);69 sym = LSymbol::FindOrCreate(name); 70 70 if (sym->GetValue() && item_type(sym->GetValue())==L_STRING) 71 71 return lstring_value(sym->GetValue()); … … 73 73 74 74 // check to see if there is a missing symbol definition 75 sym = L ispSymbol::FindOrCreate("missing_sym");75 sym = LSymbol::FindOrCreate("missing_sym"); 76 76 if (sym->GetValue() && item_type(sym->GetValue())==L_STRING) 77 77 return lstring_value(sym->GetValue()); -
abuse/trunk/src/director.cpp
r484 r492 126 126 pan_time=frame_time=text_time=NULL; 127 127 int done=0; 128 L ispSymbol *pan_symbol = LispSymbol::FindOrCreate("pan"),129 *text_symbol = L ispSymbol::FindOrCreate("text");128 LSymbol *pan_symbol = LSymbol::FindOrCreate("pan"), 129 *text_symbol = LSymbol::FindOrCreate("text"); 130 130 131 131 JCFont *font=wm->font(); -
abuse/trunk/src/endgame.cpp
r491 r492 153 153 154 154 155 int explo_snd = lnumber_value(L ispSymbol::FindOrCreate("P_EXPLODE_SND")->GetValue());156 int space_snd = lnumber_value(L ispSymbol::FindOrCreate("SPACE_SND")->GetValue());157 int zip_snd = lnumber_value(L ispSymbol::FindOrCreate("SHIP_ZIP_SND")->GetValue());155 int explo_snd = lnumber_value(LSymbol::FindOrCreate("P_EXPLODE_SND")->GetValue()); 156 int space_snd = lnumber_value(LSymbol::FindOrCreate("SPACE_SND")->GetValue()); 157 int zip_snd = lnumber_value(LSymbol::FindOrCreate("SHIP_ZIP_SND")->GetValue()); 158 158 159 159 … … 370 370 cmap[i]=pal->find_closest(i*256/32,i*256/32,i*256/32); 371 371 372 void *end_plot = L ispSymbol::FindOrCreate("plot_end")->GetValue();372 void *end_plot = LSymbol::FindOrCreate("plot_end")->GetValue(); 373 373 374 374 … … 427 427 image *im=cache.img(cache.reg("art/endgame.spe","tbc",SPEC_IMAGE,1)); 428 428 429 void *to_be = L ispSymbol::FindOrCreate("to_be_continued")->GetValue();429 void *to_be = LSymbol::FindOrCreate("to_be_continued")->GetValue(); 430 430 PtrRef r1(to_be); 431 431 432 void *mid_plot = L ispSymbol::FindOrCreate("plot_middle")->GetValue();432 void *mid_plot = LSymbol::FindOrCreate("plot_middle")->GetValue(); 433 433 PtrRef r2(mid_plot); 434 434 … … 485 485 int dx=(xres+1)/2-320/2,dy=(yres+1)/2-200/2; 486 486 487 void *end_plot = L ispSymbol::FindOrCreate("plot_end")->GetValue();487 void *end_plot = LSymbol::FindOrCreate("plot_end")->GetValue(); 488 488 PtrRef r2(end_plot); 489 489 -
abuse/trunk/src/game.cpp
r491 r492 1232 1232 } 1233 1233 1234 void *logo_snd = L ispSymbol::FindOrCreate("LOGO_SND")->GetValue();1234 void *logo_snd = LSymbol::FindOrCreate("LOGO_SND")->GetValue(); 1235 1235 1236 1236 if(DEFINEDP(logo_snd) && (sound_avail & SFX_INITIALIZED)) … … 1249 1249 milli_wait(400); 1250 1250 1251 void *space_snd = L ispSymbol::FindOrCreate("SPACE_SND")->GetValue();1251 void *space_snd = LSymbol::FindOrCreate("SPACE_SND")->GetValue(); 1252 1252 1253 1253 fade_out(32); … … 1255 1255 1256 1256 int i; 1257 char *str = lstring_value(eval(L ispSymbol::FindOrCreate("plot_start")));1257 char *str = lstring_value(eval(LSymbol::FindOrCreate("plot_start"))); 1258 1258 1259 1259 bFILE *fp = open_file("art/smoke.spe", "rb"); … … 2344 2344 int sp = current_space; 2345 2345 current_space = PERM_SPACE; 2346 eval_function((L ispSymbol *)l_next_song, NULL);2346 eval_function((LSymbol *)l_next_song, NULL); 2347 2347 current_space = sp; 2348 2348 } */ … … 2637 2637 if(!(main_net_cfg && main_net_cfg->restart_state())) 2638 2638 { 2639 L ispSymbol *end_msg = LispSymbol::FindOrCreate("end_msg");2639 LSymbol *end_msg = LSymbol::FindOrCreate("end_msg"); 2640 2640 if(DEFINEDP(end_msg->GetValue())) 2641 2641 printf("%s\n", lstring_value(end_msg->GetValue())); -
abuse/trunk/src/gamma.cpp
r484 r492 57 57 static char const *lang_string(char const *symbol) 58 58 { 59 L ispSymbol *v = LispSymbol::Find(symbol);59 LSymbol *v = LSymbol::Find(symbol); 60 60 if (!v || !DEFINEDP(v->GetValue())) 61 61 return "Language symbol missing!"; … … 69 69 70 70 // see if user has already done this routine 71 L ispSymbol *gs = LispSymbol::Find("darkest_gray");71 LSymbol *gs = LSymbol::Find("darkest_gray"); 72 72 73 73 if(old_pal) … … 182 182 int sp = current_space; 183 183 current_space = PERM_SPACE; 184 L ispSymbol::FindOrCreate("darkest_gray")->SetNumber(dg);184 LSymbol::FindOrCreate("darkest_gray")->SetNumber(dg); 185 185 186 186 current_space = sp; -
abuse/trunk/src/lcache.cpp
r491 r492 27 27 for (;b && item_type(b)==L_CONS_CELL;b=CDR(b)) 28 28 { 29 t+=sizeof(L ispList);29 t+=sizeof(LList); 30 30 } 31 31 if (b) t+=block_size(b); … … 34 34 ret=t; 35 35 } else if (type== L_NUMBER) 36 { ret=sizeof(L ispNumber); }36 { ret=sizeof(LNumber); } 37 37 else if (type==L_CHARACTER) 38 { ret=sizeof(L ispChar); }38 { ret=sizeof(LChar); } 39 39 else if (type==L_STRING) 40 40 { 41 ret=sizeof(L ispString)+strlen(lstring_value(level))+1;41 ret=sizeof(LString)+strlen(lstring_value(level))+1; 42 42 if (ret<8) 43 43 ret=8; 44 44 } 45 45 else if (type==L_POINTER) 46 { ret=sizeof(L ispPointer); }46 { ret=sizeof(LPointer); } 47 47 else ret=0; 48 48 } … … 103 103 { 104 104 case L_NUMBER : 105 { return L ispNumber::Create(fp->read_uint32()); } break;105 { return LNumber::Create(fp->read_uint32()); } break; 106 106 case L_CHARACTER : 107 107 { return new_lisp_character(fp->read_uint16()); } break; 108 108 case L_STRING : 109 109 { long l=fp->read_uint32(); 110 L ispString *s = LispString::Create(l);110 LString *s = LString::Create(l); 111 111 fp->read(lstring_value(s),l); 112 112 return s; … … 121 121 { 122 122 long x=abs(t); 123 L ispList *last=NULL,*first=NULL;123 LList *last=NULL,*first=NULL; 124 124 while (x) 125 125 { 126 L ispList *c = LispList::Create();126 LList *c = LList::Create(); 127 127 if (first) 128 128 last->cdr=c; … … 131 131 x--; 132 132 } 133 last->cdr = (t < 0) ? (L ispObject *)load_block(fp) : NULL;133 last->cdr = (t < 0) ? (LObject *)load_block(fp) : NULL; 134 134 135 for (last=first,x=0;x<abs(t);x++,last=(L ispList *)last->cdr)136 last->car = (L ispObject *)load_block(fp);135 for (last=first,x=0;x<abs(t);x++,last=(LList *)last->cdr) 136 last->car = (LObject *)load_block(fp); 137 137 return first; 138 138 } -
abuse/trunk/src/level.cpp
r491 r492 1080 1080 { 1081 1081 if (figures[new_type]->seq[k] && 1082 !strcmp(lstring_value(((L ispSymbol *)figures[new_type]->seq_syms[k])->GetName()),old_name))1082 !strcmp(lstring_value(((LSymbol *)figures[new_type]->seq_syms[k])->GetName()),old_name)) 1083 1083 *(s_remap[i]+j)=k; 1084 1084 } … … 1119 1119 if (figures[new_type]->vars[k]) 1120 1120 { 1121 if (!strcmp(lstring_value(((L ispSymbol *)figures[new_type]->vars[k])->GetName()),old_name))1121 if (!strcmp(lstring_value(((LSymbol *)figures[new_type]->vars[k])->GetName()),old_name)) 1122 1122 *(v_remap[i]+j)=figures[new_type]->var_index[k]; 1123 1123 } … … 1510 1510 void *arg_list=NULL; 1511 1511 PtrRef r1(arg_list); 1512 push_onto_list(L ispString::Create(n),arg_list);1513 eval_function((L ispSymbol *)l_level_loaded,arg_list);1512 push_onto_list(LString::Create(n),arg_list); 1513 eval_function((LSymbol *)l_level_loaded,arg_list); 1514 1514 1515 1515 current_space=sp; … … 1560 1560 for (;j<figures[i]->ts;j++) 1561 1561 if (figures[i]->seq[j]) 1562 size+=1+strlen(lstring_value(((L ispSymbol *)figures[i]->seq_syms[j])->GetName()))+1;1562 size+=1+strlen(lstring_value(((LSymbol *)figures[i]->seq_syms[j])->GetName()))+1; 1563 1563 } 1564 1564 sd.add_by_hand(new spec_entry(SPEC_DATA_ARRAY,"describe_states",NULL,size,0)); … … 1573 1573 for (;j<figures[i]->tiv;j++) 1574 1574 if (figures[i]->vars[j]) 1575 size+=1+strlen(lstring_value(((L ispSymbol *)figures[i]->vars[j])->GetName()))+1;1575 size+=1+strlen(lstring_value(((LSymbol *)figures[i]->vars[j])->GetName()))+1; 1576 1576 } 1577 1577 sd.add_by_hand(new spec_entry(SPEC_DATA_ARRAY,"describe_lvars",NULL,size,0)); … … 1827 1827 } else 1828 1828 { 1829 L ispSymbol *fun = LispSymbol::FindOrCreate("set_player_defaults");1829 LSymbol *fun = LSymbol::FindOrCreate("set_player_defaults"); 1830 1830 if (DEFINEDP(fun->GetFunction())) 1831 1831 { … … 1887 1887 if (figures[i]->seq[j]) 1888 1888 { 1889 char *state_name=lstring_value(((L ispSymbol *)figures[i]->seq_syms[j])->GetName());1889 char *state_name=lstring_value(((LSymbol *)figures[i]->seq_syms[j])->GetName()); 1890 1890 fp->write_uint8(strlen(state_name)+1); 1891 1891 fp->write(state_name,strlen(state_name)+1); … … 1906 1906 if (figures[i]->vars[j] && figures[i]->var_index[j]==x) 1907 1907 { 1908 char *var_name=lstring_value(((L ispSymbol *)figures[i]->vars[j])->GetName());1908 char *var_name=lstring_value(((LSymbol *)figures[i]->vars[j])->GetName()); 1909 1909 fp->write_uint8(strlen(var_name)+1); 1910 1910 fp->write(var_name,strlen(var_name)+1); -
abuse/trunk/src/lisp/lisp.cpp
r491 r492 41 41 42 42 bFILE *current_print_file=NULL; 43 L ispSymbol *lsym_root=NULL;43 LSymbol *lsym_root=NULL; 44 44 long ltotal_syms=0; 45 45 … … 220 220 } 221 221 222 L ispArray *LispArray::Create(int size, void *rest)222 LArray *LArray::Create(int size, void *rest) 223 223 { 224 224 PtrRef r11(rest); 225 size_t s = sizeof(L ispArray)226 + ((size < 1 ? 1 : size) - 1) * sizeof(L ispObject *);227 L ispArray *p = (LispArray *)lmalloc(s, current_space);225 size_t s = sizeof(LArray) 226 + ((size < 1 ? 1 : size) - 1) * sizeof(LObject *); 227 LArray *p = (LArray *)lmalloc(s, current_space); 228 228 p->type = L_1D_ARRAY; 229 229 p->size = size; 230 L ispObject **data = p->GetData();231 memset(data, 0, size * sizeof(L ispObject *));230 LObject **data = p->GetData(); 231 memset(data, 0, size * sizeof(LObject *)); 232 232 PtrRef r1(p); 233 233 … … 247 247 exit(0); 248 248 } 249 data[i] = (L ispObject *)CAR(x);249 data[i] = (LObject *)CAR(x); 250 250 } 251 251 if (x) … … 261 261 data = p->GetData(); 262 262 for (int i=0;i<size;i++) 263 data[i] = (L ispObject *)x;263 data[i] = (LObject *)x; 264 264 } 265 265 else … … 274 274 } 275 275 276 L ispFixedPoint *new_lisp_fixed_point(int32_t x)277 { 278 L ispFixedPoint *p=(LispFixedPoint *)lmalloc(sizeof(LispFixedPoint), current_space);276 LFixedPoint *new_lisp_fixed_point(int32_t x) 277 { 278 LFixedPoint *p=(LFixedPoint *)lmalloc(sizeof(LFixedPoint), current_space); 279 279 p->type=L_FIXED_POINT; 280 280 p->x=x; … … 283 283 284 284 285 L ispObjectVar *new_lisp_object_var(int16_t number)286 { 287 L ispObjectVar *p=(LispObjectVar *)lmalloc(sizeof(LispObjectVar), current_space);285 LObjectVar *new_lisp_object_var(int16_t number) 286 { 287 LObjectVar *p=(LObjectVar *)lmalloc(sizeof(LObjectVar), current_space); 288 288 p->type=L_OBJECT_VAR; 289 289 p->number=number; … … 292 292 293 293 294 struct L ispPointer *new_lisp_pointer(void *addr)294 struct LPointer *new_lisp_pointer(void *addr) 295 295 { 296 296 if (addr==NULL) return NULL; 297 L ispPointer *p=(LispPointer *)lmalloc(sizeof(LispPointer), current_space);297 LPointer *p=(LPointer *)lmalloc(sizeof(LPointer), current_space); 298 298 p->type=L_POINTER; 299 299 p->addr=addr; … … 301 301 } 302 302 303 struct L ispChar *new_lisp_character(uint16_t ch)304 { 305 L ispChar *c=(LispChar *)lmalloc(sizeof(LispChar), current_space);303 struct LChar *new_lisp_character(uint16_t ch) 304 { 305 LChar *c=(LChar *)lmalloc(sizeof(LChar), current_space); 306 306 c->type=L_CHARACTER; 307 307 c->ch=ch; … … 309 309 } 310 310 311 struct L ispString *LispString::Create(char const *string)312 { 313 size_t size = sizeof(L ispString) + strlen(string);314 if (size < sizeof(L ispRedirect))315 size = sizeof(L ispRedirect);316 317 L ispString *s = (LispString *)lmalloc(size, current_space);311 struct LString *LString::Create(char const *string) 312 { 313 size_t size = sizeof(LString) + strlen(string); 314 if (size < sizeof(LRedirect)) 315 size = sizeof(LRedirect); 316 317 LString *s = (LString *)lmalloc(size, current_space); 318 318 s->type = L_STRING; 319 319 strcpy(s->str, string); … … 321 321 } 322 322 323 struct L ispString *LispString::Create(char const *string, int length)324 { 325 size_t size = sizeof(L ispString) + length;326 if (size < sizeof(L ispRedirect))327 size = sizeof(L ispRedirect);328 329 L ispString *s = (LispString *)lmalloc(size, current_space);323 struct LString *LString::Create(char const *string, int length) 324 { 325 size_t size = sizeof(LString) + length; 326 if (size < sizeof(LRedirect)) 327 size = sizeof(LRedirect); 328 329 LString *s = (LString *)lmalloc(size, current_space); 330 330 s->type = L_STRING; 331 331 memcpy(s->str, string, length); … … 334 334 } 335 335 336 struct L ispString *LispString::Create(int length)337 { 338 size_t size = sizeof(L ispString) + length - 1;339 if (size < sizeof(L ispRedirect))340 size = sizeof(L ispRedirect);341 342 L ispString *s = (LispString *)lmalloc(size, current_space);336 struct LString *LString::Create(int length) 337 { 338 size_t size = sizeof(LString) + length - 1; 339 if (size < sizeof(LRedirect)) 340 size = sizeof(LRedirect); 341 342 LString *s = (LString *)lmalloc(size, current_space); 343 343 s->type = L_STRING; 344 344 s->str[0] = '\0'; … … 347 347 348 348 #ifdef NO_LIBS 349 L ispUserFunction *new_lisp_user_function(void *arg_list, void *block_list)349 LUserFunction *new_lisp_user_function(void *arg_list, void *block_list) 350 350 { 351 351 PtrRef r1(arg_list), r2(block_list); 352 L ispUserFunction *lu=(LispUserFunction *)lmalloc(sizeof(LispUserFunction), current_space);352 LUserFunction *lu=(LUserFunction *)lmalloc(sizeof(LUserFunction), current_space); 353 353 lu->type=L_USER_FUNCTION; 354 354 lu->arg_list=arg_list; … … 357 357 } 358 358 #else 359 L ispUserFunction *new_lisp_user_function(intptr_t arg_list, intptr_t block_list)359 LUserFunction *new_lisp_user_function(intptr_t arg_list, intptr_t block_list) 360 360 { 361 361 int sp=current_space; … … 363 363 current_space=PERM_SPACE; // make sure all functions get defined in permanant space 364 364 365 L ispUserFunction *lu=(LispUserFunction *)lmalloc(sizeof(LispUserFunction), current_space);365 LUserFunction *lu=(LUserFunction *)lmalloc(sizeof(LUserFunction), current_space); 366 366 lu->type=L_USER_FUNCTION; 367 367 lu->alist=arg_list; … … 375 375 376 376 377 L ispSysFunction *new_lisp_sys_function(int min_args, int max_args, int fun_number)377 LSysFunction *new_lisp_sys_function(int min_args, int max_args, int fun_number) 378 378 { 379 379 // sys functions should reside in permanant space 380 L ispSysFunction *ls=(LispSysFunction *)lmalloc(sizeof(LispSysFunction),380 LSysFunction *ls=(LSysFunction *)lmalloc(sizeof(LSysFunction), 381 381 current_space==GC_SPACE ? GC_SPACE : PERM_SPACE); 382 382 ls->type=L_SYS_FUNCTION; … … 387 387 } 388 388 389 L ispSysFunction *new_lisp_c_function(int min_args, int max_args, int fun_number)389 LSysFunction *new_lisp_c_function(int min_args, int max_args, int fun_number) 390 390 { 391 391 // sys functions should reside in permanant space 392 L ispSysFunction *ls=(LispSysFunction *)lmalloc(sizeof(LispSysFunction),392 LSysFunction *ls=(LSysFunction *)lmalloc(sizeof(LSysFunction), 393 393 current_space==GC_SPACE ? GC_SPACE : PERM_SPACE); 394 394 ls->type=L_C_FUNCTION; … … 399 399 } 400 400 401 L ispSysFunction *new_lisp_c_bool(int min_args, int max_args, int fun_number)401 LSysFunction *new_lisp_c_bool(int min_args, int max_args, int fun_number) 402 402 { 403 403 // sys functions should reside in permanant space 404 L ispSysFunction *ls=(LispSysFunction *)lmalloc(sizeof(LispSysFunction),404 LSysFunction *ls=(LSysFunction *)lmalloc(sizeof(LSysFunction), 405 405 current_space==GC_SPACE ? GC_SPACE : PERM_SPACE); 406 406 ls->type=L_C_BOOL; … … 411 411 } 412 412 413 L ispSysFunction *new_user_lisp_function(int min_args, int max_args, int fun_number)413 LSysFunction *new_user_lisp_function(int min_args, int max_args, int fun_number) 414 414 { 415 415 // sys functions should reside in permanant space 416 L ispSysFunction *ls=(LispSysFunction *)lmalloc(sizeof(LispSysFunction),416 LSysFunction *ls=(LSysFunction *)lmalloc(sizeof(LSysFunction), 417 417 current_space==GC_SPACE ? GC_SPACE : PERM_SPACE); 418 418 ls->type=L_L_FUNCTION; … … 423 423 } 424 424 425 L ispNumber *new_lisp_node(long num)426 { 427 L ispNumber *n=(LispNumber *)lmalloc(sizeof(LispNumber), current_space);425 LNumber *new_lisp_node(long num) 426 { 427 LNumber *n=(LNumber *)lmalloc(sizeof(LNumber), current_space); 428 428 n->type=L_NUMBER; 429 429 n->num=num; … … 431 431 } 432 432 433 L ispSymbol *new_lisp_symbol(char *name)434 { 435 L ispSymbol *s=(LispSymbol *)lmalloc(sizeof(LispSymbol), current_space);433 LSymbol *new_lisp_symbol(char *name) 434 { 435 LSymbol *s=(LSymbol *)lmalloc(sizeof(LSymbol), current_space); 436 436 s->type=L_SYMBOL; 437 s->name=L ispString::Create(name);437 s->name=LString::Create(name); 438 438 s->value=l_undefined; 439 439 s->function=l_undefined; … … 444 444 } 445 445 446 L ispNumber *LispNumber::Create(long num)447 { 448 L ispNumber *s = (LispNumber *)lmalloc(sizeof(LispNumber), current_space);446 LNumber *LNumber::Create(long num) 447 { 448 LNumber *s = (LNumber *)lmalloc(sizeof(LNumber), current_space); 449 449 s->type = L_NUMBER; 450 450 s->num = num; … … 452 452 } 453 453 454 L ispList *LispList::Create()455 { 456 L ispList *c = (LispList *)lmalloc(sizeof(LispList), current_space);454 LList *LList::Create() 455 { 456 LList *c = (LList *)lmalloc(sizeof(LList), current_space); 457 457 c->type = L_CONS_CELL; 458 458 c->car = NULL; … … 508 508 } 509 509 #endif 510 return ((L ispPointer *)lpointer)->addr;510 return ((LPointer *)lpointer)->addr; 511 511 } 512 512 … … 516 516 { 517 517 case L_NUMBER : 518 return ((L ispNumber *)lnumber)->num;518 return ((LNumber *)lnumber)->num; 519 519 case L_FIXED_POINT : 520 return (((L ispFixedPoint *)lnumber)->x)>>16;520 return (((LFixedPoint *)lnumber)->x)>>16; 521 521 case L_STRING : 522 522 return (uint8_t)*lstring_value(lnumber); … … 533 533 } 534 534 535 char *L ispString::GetString()535 char *LString::GetString() 536 536 { 537 537 #ifdef TYPE_CHECKING … … 557 557 if (!c) return NULL; 558 558 else if (item_type(c)==(ltype)L_CONS_CELL) 559 return ((L ispList *)c)->cdr;559 return ((LList *)c)->cdr; 560 560 else 561 561 return NULL; … … 566 566 if (!c) return NULL; 567 567 else if (item_type(c)==(ltype)L_CONS_CELL) 568 return ((L ispList *)c)->car;568 return ((LList *)c)->car; 569 569 else return NULL; 570 570 } … … 580 580 } 581 581 #endif 582 return ((L ispChar *)c)->ch;582 return ((LChar *)c)->ch; 583 583 } 584 584 … … 588 588 { 589 589 case L_NUMBER : 590 return ((L ispNumber *)c)->num<<16; break;590 return ((LNumber *)c)->num<<16; break; 591 591 case L_FIXED_POINT : 592 return (((L ispFixedPoint *)c)->x); break;592 return (((LFixedPoint *)c)->x); break; 593 593 default : 594 594 { … … 609 609 if (t1!=t2) return NULL; 610 610 else if (t1==L_NUMBER) 611 { if (((L ispNumber *)n1)->num==((LispNumber *)n2)->num)611 { if (((LNumber *)n1)->num==((LNumber *)n2)->num) 612 612 return true_symbol; 613 613 else return NULL; 614 614 } else if (t1==L_CHARACTER) 615 615 { 616 if (((L ispChar *)n1)->ch==((LispChar *)n2)->ch)616 if (((LChar *)n1)->ch==((LChar *)n2)->ch) 617 617 return true_symbol; 618 618 else return NULL; … … 626 626 } 627 627 628 L ispObject *LispArray::Get(long x)628 LObject *LArray::Get(long x) 629 629 { 630 630 #ifdef TYPE_CHECKING … … 784 784 785 785 /* 786 L ispSymbol *find_symbol(char const *name)787 { 788 L ispList *cs;789 for (cs=(L ispList *)symbol_list;cs;cs=(LispList *)CDR(cs))790 { 791 if (!strcmp( ((char *)((L ispSymbol *)cs->car)->name)+sizeof(LispString), name))792 return (L ispSymbol *)(cs->car);786 LSymbol *find_symbol(char const *name) 787 { 788 LList *cs; 789 for (cs=(LList *)symbol_list;cs;cs=(LList *)CDR(cs)) 790 { 791 if (!strcmp( ((char *)((LSymbol *)cs->car)->name)+sizeof(LString), name)) 792 return (LSymbol *)(cs->car); 793 793 } 794 794 return NULL; … … 796 796 797 797 798 L ispSymbol *make_find_symbol(char const *name) // find a symbol, if it doesn't exsist it is created799 { 800 L ispSymbol *s=find_symbol(name);798 LSymbol *make_find_symbol(char const *name) // find a symbol, if it doesn't exsist it is created 799 { 800 LSymbol *s=find_symbol(name); 801 801 if (s) return s; 802 802 else … … 805 805 if (current_space!=GC_SPACE) 806 806 current_space=PERM_SPACE; // make sure all symbols get defined in permanant space 807 L ispList *cs;808 cs=L ispList::Create();807 LList *cs; 808 cs=LList::Create(); 809 809 s=new_lisp_symbol(name); 810 810 cs->car=s; … … 818 818 */ 819 819 820 L ispSymbol *LispSymbol::Find(char const *name)821 { 822 L ispSymbol *p = lsym_root;820 LSymbol *LSymbol::Find(char const *name) 821 { 822 LSymbol *p = lsym_root; 823 823 while (p) 824 824 { … … 831 831 } 832 832 833 L ispSymbol *LispSymbol::FindOrCreate(char const *name)834 { 835 L ispSymbol *p = lsym_root;836 L ispSymbol **parent = &lsym_root;833 LSymbol *LSymbol::FindOrCreate(char const *name) 834 { 835 LSymbol *p = lsym_root; 836 LSymbol **parent = &lsym_root; 837 837 while (p) 838 838 { … … 849 849 current_space = PERM_SPACE; 850 850 851 p = (L ispSymbol *)malloc(sizeof(LispSymbol));851 p = (LSymbol *)malloc(sizeof(LSymbol)); 852 852 p->type = L_SYMBOL; 853 p->name = L ispString::Create(name);853 p->name = LString::Create(name); 854 854 855 855 // If constant, set the value to ourself … … 867 867 } 868 868 869 void ldelete_syms(L ispSymbol *root)869 void ldelete_syms(LSymbol *root) 870 870 { 871 871 if (root) … … 887 887 if (lisp_eq(CAR(CAR(list)), item)) 888 888 return lcar(list); 889 list=(L ispList *)(CDR(list));889 list=(LList *)(CDR(list)); 890 890 } 891 891 } … … 893 893 } 894 894 895 size_t L ispList::GetLength()895 size_t LList::GetLength() 896 896 { 897 897 size_t ret = 0; … … 906 906 #endif 907 907 908 for (L ispObject *p = this; p; p = CDR(p))908 for (LObject *p = this; p; p = CDR(p)) 909 909 ret++; 910 910 return ret; … … 917 917 918 918 void *ret=NULL; 919 size_t l1 = ((L ispList *)list1)->GetLength();920 size_t l2 = ((L ispList *)list2)->GetLength();919 size_t l1 = ((LList *)list1)->GetLength(); 920 size_t l2 = ((LList *)list2)->GetLength(); 921 921 922 922 if (l1!=l2) … … 929 929 if (l1!=0) 930 930 { 931 L ispList *first = NULL, *last = NULL, *cur = NULL;932 L ispObject *tmp;931 LList *first = NULL, *last = NULL, *cur = NULL; 932 LObject *tmp; 933 933 PtrRef r1(first), r2(last), r3(cur); 934 934 while (list1) 935 935 { 936 cur = L ispList::Create();936 cur = LList::Create(); 937 937 if (!first) 938 938 first = cur; … … 941 941 last = cur; 942 942 943 L ispList *cell = LispList::Create();944 tmp = (L ispObject *)lcar(list1);943 LList *cell = LList::Create(); 944 tmp = (LObject *)lcar(list1); 945 945 cell->car = tmp; 946 tmp = (L ispObject *)lcar(list2);946 tmp = (LObject *)lcar(list2); 947 947 cell->cdr = tmp; 948 948 cur->car = cell; 949 949 950 list1 = ((L ispList *)list1)->cdr;951 list2 = ((L ispList *)list2)->cdr;952 } 953 cur->cdr = (L ispObject *)list3;950 list1 = ((LList *)list1)->cdr; 951 list2 = ((LList *)list2)->cdr; 952 } 953 cur->cdr = (LObject *)list3; 954 954 ret=first; 955 955 } else ret=NULL; … … 957 957 } 958 958 959 void L ispSymbol::SetFunction(LispObject *fun)959 void LSymbol::SetFunction(LObject *fun) 960 960 { 961 961 function = fun; 962 962 } 963 963 964 L ispSymbol *add_sys_function(char const *name, short min_args, short max_args, short number)964 LSymbol *add_sys_function(char const *name, short min_args, short max_args, short number) 965 965 { 966 966 need_perm_space("add_sys_function"); 967 L ispSymbol *s = LispSymbol::FindOrCreate(name);967 LSymbol *s = LSymbol::FindOrCreate(name); 968 968 if (s->function!=l_undefined) 969 969 { … … 975 975 } 976 976 977 L ispSymbol *add_c_object(void *symbol, int16_t number)977 LSymbol *add_c_object(void *symbol, int16_t number) 978 978 { 979 979 need_perm_space("add_c_object"); 980 L ispSymbol *s=(LispSymbol *)symbol;980 LSymbol *s=(LSymbol *)symbol; 981 981 if (s->value!=l_undefined) 982 982 { … … 988 988 } 989 989 990 L ispSymbol *add_c_function(char const *name, short min_args, short max_args, short number)990 LSymbol *add_c_function(char const *name, short min_args, short max_args, short number) 991 991 { 992 992 total_user_functions++; 993 993 need_perm_space("add_c_function"); 994 L ispSymbol *s = LispSymbol::FindOrCreate(name);994 LSymbol *s = LSymbol::FindOrCreate(name); 995 995 if (s->function!=l_undefined) 996 996 { … … 1002 1002 } 1003 1003 1004 L ispSymbol *add_c_bool_fun(char const *name, short min_args, short max_args, short number)1004 LSymbol *add_c_bool_fun(char const *name, short min_args, short max_args, short number) 1005 1005 { 1006 1006 total_user_functions++; 1007 1007 need_perm_space("add_c_bool_fun"); 1008 L ispSymbol *s = LispSymbol::FindOrCreate(name);1008 LSymbol *s = LSymbol::FindOrCreate(name); 1009 1009 if (s->function!=l_undefined) 1010 1010 { … … 1017 1017 1018 1018 1019 L ispSymbol *add_lisp_function(char const *name, short min_args, short max_args, short number)1019 LSymbol *add_lisp_function(char const *name, short min_args, short max_args, short number) 1020 1020 { 1021 1021 total_user_functions++; 1022 1022 need_perm_space("add_c_bool_fun"); 1023 L ispSymbol *s = LispSymbol::FindOrCreate(name);1023 LSymbol *s = LSymbol::FindOrCreate(name); 1024 1024 if (s->function!=l_undefined) 1025 1025 { … … 1106 1106 { 1107 1107 PtrRef r1(object), r2(list); 1108 L ispList *c = LispList::Create();1109 c->car = (L ispObject *)object;1110 c->cdr = (L ispObject *)list;1108 LList *c = LList::Create(); 1109 c->car = (LObject *)object; 1110 c->cdr = (LObject *)list; 1111 1111 list=c; 1112 1112 } … … 1125 1125 else if (n[0]=='\'') // short hand for quote function 1126 1126 { 1127 void *cs = L ispList::Create(), *c2=NULL, *tmp;1127 void *cs = LList::Create(), *c2=NULL, *tmp; 1128 1128 PtrRef r1(cs), r2(c2); 1129 1129 1130 ((L ispList *)cs)->car=quote_symbol;1131 c2 = L ispList::Create();1130 ((LList *)cs)->car=quote_symbol; 1131 c2 = LList::Create(); 1132 1132 tmp=compile(s); 1133 ((L ispList *)c2)->car = (LispObject *)tmp;1134 ((L ispList *)c2)->cdr=NULL;1135 ((L ispList *)cs)->cdr = (LispObject *)c2;1133 ((LList *)c2)->car = (LObject *)tmp; 1134 ((LList *)c2)->cdr=NULL; 1135 ((LList *)cs)->cdr = (LObject *)c2; 1136 1136 ret=cs; 1137 1137 } 1138 1138 else if (n[0]=='`') // short hand for backquote function 1139 1139 { 1140 void *cs = L ispList::Create(), *c2=NULL, *tmp;1140 void *cs = LList::Create(), *c2=NULL, *tmp; 1141 1141 PtrRef r1(cs), r2(c2); 1142 1142 1143 ((L ispList *)cs)->car=backquote_symbol;1144 c2 = L ispList::Create();1143 ((LList *)cs)->car=backquote_symbol; 1144 c2 = LList::Create(); 1145 1145 tmp=compile(s); 1146 ((L ispList *)c2)->car = (LispObject *)tmp;1147 ((L ispList *)c2)->cdr=NULL;1148 ((L ispList *)cs)->cdr = (LispObject *)c2;1146 ((LList *)c2)->car = (LObject *)tmp; 1147 ((LList *)c2)->cdr=NULL; 1148 ((LList *)cs)->cdr = (LObject *)c2; 1149 1149 ret=cs; 1150 1150 } else if (n[0]==',') // short hand for comma function 1151 1151 { 1152 void *cs = L ispList::Create(), *c2=NULL, *tmp;1152 void *cs = LList::Create(), *c2=NULL, *tmp; 1153 1153 PtrRef r1(cs), r2(c2); 1154 1154 1155 ((L ispList *)cs)->car=comma_symbol;1156 c2 = L ispList::Create();1155 ((LList *)cs)->car=comma_symbol; 1156 c2 = LList::Create(); 1157 1157 tmp=compile(s); 1158 ((L ispList *)c2)->car = (LispObject *)tmp;1159 ((L ispList *)c2)->cdr=NULL;1160 ((L ispList *)cs)->cdr = (LispObject *)c2;1158 ((LList *)c2)->car = (LObject *)tmp; 1159 ((LList *)c2)->cdr=NULL; 1160 ((LList *)cs)->cdr = (LObject *)c2; 1161 1161 ret=cs; 1162 1162 } … … 1187 1187 read_ltoken(s, n); // skip the '.' 1188 1188 tmp=compile(s); 1189 ((L ispList *)last)->cdr = (LispObject *)tmp; // link the last cdr to1189 ((LList *)last)->cdr = (LObject *)tmp; // link the last cdr to 1190 1190 last=NULL; 1191 1191 } … … 1195 1195 { 1196 1196 void *tmp; 1197 cur = L ispList::Create();1197 cur = LList::Create(); 1198 1198 PtrRef r1(cur); 1199 1199 if (!first) first=cur; 1200 1200 tmp=compile(s); 1201 ((L ispList *)cur)->car = (LispObject *)tmp;1201 ((LList *)cur)->car = (LObject *)tmp; 1202 1202 if (last) 1203 ((L ispList *)last)->cdr = (LispObject *)cur;1203 ((LList *)last)->cdr = (LObject *)cur; 1204 1204 last=cur; 1205 1205 } … … 1212 1212 else if (isdigit(n[0]) || (n[0]=='-' && isdigit(n[1]))) 1213 1213 { 1214 L ispNumber *num = LispNumber::Create(0);1214 LNumber *num = LNumber::Create(0); 1215 1215 sscanf(n, "%ld", &num->num); 1216 1216 ret=num; 1217 1217 } else if (n[0]=='"') 1218 1218 { 1219 ret = L ispString::Create(str_token_len(s));1219 ret = LString::Create(str_token_len(s)); 1220 1220 char *start=lstring_value(ret); 1221 1221 for (;*s && (*s!='"' || s[1]=='"');s++, start++) … … 1247 1247 else if (n[1]==0) // short hand for function 1248 1248 { 1249 void *cs = L ispList::Create(), *c2=NULL, *tmp;1249 void *cs = LList::Create(), *c2=NULL, *tmp; 1250 1250 PtrRef r4(cs), r5(c2); 1251 tmp = L ispSymbol::FindOrCreate("function");1252 ((L ispList *)cs)->car = (LispObject *)tmp;1253 c2 = L ispList::Create();1251 tmp = LSymbol::FindOrCreate("function"); 1252 ((LList *)cs)->car = (LObject *)tmp; 1253 c2 = LList::Create(); 1254 1254 tmp=compile(s); 1255 ((L ispList *)c2)->car = (LispObject *)tmp;1256 ((L ispList *)cs)->cdr = (LispObject *)c2;1255 ((LList *)c2)->car = (LObject *)tmp; 1256 ((LList *)cs)->cdr = (LObject *)c2; 1257 1257 ret=cs; 1258 1258 } … … 1263 1263 } 1264 1264 } else { 1265 ret = L ispSymbol::FindOrCreate(n);1265 ret = LSymbol::FindOrCreate(n); 1266 1266 } 1267 1267 return ret; … … 1306 1306 case L_CONS_CELL : 1307 1307 { 1308 L ispList *cs=(LispList *)i;1308 LList *cs=(LList *)i; 1309 1309 lprint_string("("); 1310 for (;cs;cs=(L ispList *)lcdr(cs))1310 for (;cs;cs=(LList *)lcdr(cs)) 1311 1311 { 1312 1312 if (item_type(cs)==(ltype)L_CONS_CELL) … … 1329 1329 { 1330 1330 char num[10]; 1331 sprintf(num, "%ld", ((L ispNumber *)i)->num);1331 sprintf(num, "%ld", ((LNumber *)i)->num); 1332 1332 lprint_string(num); 1333 1333 } 1334 1334 break; 1335 1335 case L_SYMBOL : 1336 lprint_string(((L ispSymbol *)i)->name->GetString());1336 lprint_string(((LSymbol *)i)->name->GetString()); 1337 1337 break; 1338 1338 case L_USER_FUNCTION : … … 1376 1376 if (current_print_file) 1377 1377 { 1378 uint8_t ch=((L ispChar *)i)->ch;1378 uint8_t ch=((LChar *)i)->ch; 1379 1379 current_print_file->write(&ch, 1); 1380 1380 } else 1381 1381 { 1382 uint16_t ch=((L ispChar *)i)->ch;1382 uint16_t ch=((LChar *)i)->ch; 1383 1383 dprintf("#\\"); 1384 1384 switch (ch) … … 1395 1395 case L_OBJECT_VAR : 1396 1396 { 1397 l_obj_print(((L ispObjectVar *)i)->number);1397 l_obj_print(((LObjectVar *)i)->number); 1398 1398 } break; 1399 1399 case L_1D_ARRAY : 1400 1400 { 1401 L ispArray *a = (LispArray *)i;1402 L ispObject **data = a->GetData();1401 LArray *a = (LArray *)i; 1402 LObject **data = a->GetData(); 1403 1403 dprintf("#("); 1404 1404 for (int j = 0; j < a->size; j++) … … 1413 1413 { 1414 1414 lprint_string("GC_refrence->"); 1415 lprint(((L ispRedirect *)i)->new_reference);1415 lprint(((LRedirect *)i)->new_reference); 1416 1416 } break; 1417 1417 default : … … 1424 1424 } 1425 1425 1426 void *eval_sys_function(L ispSysFunction *fun, void *arg_list);1427 1428 void *eval_function(L ispSymbol *sym, void *arg_list)1426 void *eval_sys_function(LSysFunction *fun, void *arg_list); 1427 1428 void *eval_function(LSymbol *sym, void *arg_list) 1429 1429 { 1430 1430 #ifdef TYPE_CHECKING … … 1438 1438 #endif 1439 1439 1440 void *fun=(L ispSysFunction *)(((LispSymbol *)sym)->function);1440 void *fun=(LSysFunction *)(((LSymbol *)sym)->function); 1441 1441 PtrRef ref2( fun ); 1442 1442 … … 1452 1452 case L_L_FUNCTION : 1453 1453 { 1454 req_min=((L ispSysFunction *)fun)->min_args;1455 req_max=((L ispSysFunction *)fun)->max_args;1454 req_min=((LSysFunction *)fun)->min_args; 1455 req_max=((LSysFunction *)fun)->max_args; 1456 1456 } break; 1457 1457 case L_USER_FUNCTION : … … 1499 1499 { 1500 1500 case L_SYS_FUNCTION : 1501 { ret=eval_sys_function( ((L ispSysFunction *)fun), arg_list); } break;1501 { ret=eval_sys_function( ((LSysFunction *)fun), arg_list); } break; 1502 1502 case L_L_FUNCTION : 1503 { ret=l_caller( ((L ispSysFunction *)fun)->fun_number, arg_list); } break;1503 { ret=l_caller( ((LSysFunction *)fun)->fun_number, arg_list); } break; 1504 1504 case L_USER_FUNCTION : 1505 1505 { … … 1514 1514 { 1515 1515 if (first) { 1516 tmp = L ispList::Create();1517 ((L ispList *)cur)->cdr = (LispObject *)tmp;1516 tmp = LList::Create(); 1517 ((LList *)cur)->cdr = (LObject *)tmp; 1518 1518 cur=tmp; 1519 1519 } else 1520 cur=first = L ispList::Create();1520 cur=first = LList::Create(); 1521 1521 1522 1522 void *val=eval(CAR(arg_list)); 1523 ((L ispList *)cur)->car = (LispObject *)val;1523 ((LList *)cur)->car = (LObject *)val; 1524 1524 arg_list=lcdr(arg_list); 1525 1525 } 1526 1526 if(t == L_C_FUNCTION) 1527 ret = L ispNumber::Create(c_caller( ((LispSysFunction *)fun)->fun_number, first));1528 else if (c_caller( ((L ispSysFunction *)fun)->fun_number, first))1527 ret = LNumber::Create(c_caller( ((LSysFunction *)fun)->fun_number, first)); 1528 else if (c_caller( ((LSysFunction *)fun)->fun_number, first)) 1529 1529 ret=true_symbol; 1530 1530 else ret=NULL; … … 1536 1536 #ifdef L_PROFILE 1537 1537 time_marker end; 1538 ((L ispSymbol *)sym)->time_taken+=end.diff_time(&start);1538 ((LSymbol *)sym)->time_taken+=end.diff_time(&start); 1539 1539 #endif 1540 1540 … … 1543 1543 1544 1544 #ifdef L_PROFILE 1545 void pro_print(bFILE *out, L ispSymbol *p)1545 void pro_print(bFILE *out, LSymbol *p) 1546 1546 { 1547 1547 if (p) … … 1582 1582 } 1583 1583 } 1584 int i, stop = 0, num_args = ((L ispList *)CDR(arg_list))->GetLength();1584 int i, stop = 0, num_args = ((LList *)CDR(arg_list))->GetLength(); 1585 1585 if (!num_args) return 0; 1586 1586 1587 1587 void **arg_on=(void **)malloc(sizeof(void *)*num_args); 1588 L ispList *list_on=(LispList *)CDR(arg_list);1588 LList *list_on=(LList *)CDR(arg_list); 1589 1589 long old_ptr_son=PtrRef::stack.son; 1590 1590 1591 1591 for (i=0;i<num_args;i++) 1592 1592 { 1593 arg_on[i]=(L ispList *)eval(CAR(list_on));1593 arg_on[i]=(LList *)eval(CAR(list_on)); 1594 1594 PtrRef::stack.push(&arg_on[i]); 1595 1595 1596 list_on=(L ispList *)CDR(list_on);1596 list_on=(LList *)CDR(list_on); 1597 1597 if (!arg_on[i]) stop=1; 1598 1598 } … … 1604 1604 } 1605 1605 1606 L ispList *na_list=NULL, *return_list=NULL, *last_return=NULL;1606 LList *na_list=NULL, *return_list=NULL, *last_return=NULL; 1607 1607 1608 1608 do … … 1610 1610 na_list=NULL; // create a cons list with all of the parameters for the function 1611 1611 1612 L ispList *first=NULL; // save the start of the list1612 LList *first=NULL; // save the start of the list 1613 1613 for (i=0;!stop &&i<num_args;i++) 1614 1614 { 1615 1615 if (!na_list) 1616 first=na_list = L ispList::Create();1616 first=na_list = LList::Create(); 1617 1617 else 1618 1618 { 1619 na_list->cdr = (L ispObject *)LispList::Create();1620 na_list=(L ispList *)CDR(na_list);1619 na_list->cdr = (LObject *)LList::Create(); 1620 na_list=(LList *)CDR(na_list); 1621 1621 } 1622 1622 … … 1624 1624 if (arg_on[i]) 1625 1625 { 1626 na_list->car = (L ispObject *)CAR(arg_on[i]);1627 arg_on[i]=(L ispList *)CDR(arg_on[i]);1626 na_list->car = (LObject *)CAR(arg_on[i]); 1627 arg_on[i]=(LList *)CDR(arg_on[i]); 1628 1628 } 1629 1629 else stop=1; … … 1631 1631 if (!stop) 1632 1632 { 1633 L ispList *c = LispList::Create();1634 c->car = (L ispObject *)eval_function((LispSymbol *)sym, first);1633 LList *c = LList::Create(); 1634 c->car = (LObject *)eval_function((LSymbol *)sym, first); 1635 1635 if (return_list) 1636 1636 last_return->cdr=c; … … 1657 1657 if (rtype==string_symbol) 1658 1658 { 1659 int elements = ((L ispList *)el_list)->GetLength(); // see how many things we need to concat1660 if (!elements) ret = L ispString::Create("");1659 int elements = ((LList *)el_list)->GetLength(); // see how many things we need to concat 1660 if (!elements) ret = LString::Create(""); 1661 1661 else 1662 1662 { … … 1674 1674 case L_CONS_CELL : 1675 1675 { 1676 L ispList *char_list=(LispList *)str_eval[i];1676 LList *char_list=(LList *)str_eval[i]; 1677 1677 while (char_list) 1678 1678 { … … 1685 1685 exit(0); 1686 1686 } 1687 char_list=(L ispList *)CDR(char_list);1687 char_list=(LList *)CDR(char_list); 1688 1688 } 1689 1689 } break; … … 1697 1697 } 1698 1698 } 1699 L ispString *st = LispString::Create(len+1);1699 LString *st = LString::Create(len+1); 1700 1700 char *s=lstring_value(st); 1701 1701 … … 1707 1707 case L_CONS_CELL : 1708 1708 { 1709 L ispList *char_list=(LispList *)str_eval[i];1709 LList *char_list=(LList *)str_eval[i]; 1710 1710 while (char_list) 1711 1711 { 1712 1712 if (item_type(CAR(char_list))==L_CHARACTER) 1713 *(s++)=((L ispChar *)CAR(char_list))->ch;1714 char_list=(L ispList *)CDR(char_list);1713 *(s++)=((LChar *)CAR(char_list))->ch; 1714 char_list=(LList *)CDR(char_list); 1715 1715 } 1716 1716 } break; … … 1745 1745 else if (args==NULL) 1746 1746 return NULL; 1747 else if ((L ispSymbol *) (((LispList *)args)->car)==comma_symbol)1747 else if ((LSymbol *) (((LList *)args)->car)==comma_symbol) 1748 1748 return eval(CAR(CDR(args))); 1749 1749 else … … 1758 1758 { 1759 1759 tmp=eval(CAR(CDR(args))); 1760 ((L ispList *)last)->cdr = (LispObject *)tmp;1760 ((LList *)last)->cdr = (LObject *)tmp; 1761 1761 args=NULL; 1762 1762 } 1763 1763 else 1764 1764 { 1765 cur = L ispList::Create();1765 cur = LList::Create(); 1766 1766 if (first) 1767 ((L ispList *)last)->cdr = (LispObject *)cur;1767 ((LList *)last)->cdr = (LObject *)cur; 1768 1768 else 1769 1769 first=cur; 1770 1770 last=cur; 1771 1771 tmp=backquote_eval(CAR(args)); 1772 ((L ispList *)cur)->car = (LispObject *)tmp;1772 ((LList *)cur)->car = (LObject *)tmp; 1773 1773 args=CDR(args); 1774 1774 } … … 1776 1776 { 1777 1777 tmp=backquote_eval(args); 1778 ((L ispList *)last)->cdr = (LispObject *)tmp;1778 ((LList *)last)->cdr = (LObject *)tmp; 1779 1779 args=NULL; 1780 1780 } … … 1787 1787 1788 1788 1789 void *eval_sys_function(L ispSysFunction *fun, void *arg_list)1789 void *eval_sys_function(LSysFunction *fun, void *arg_list) 1790 1790 { 1791 1791 PtrRef ref1(arg_list); … … 1812 1812 switch (item_type(v)) 1813 1813 { 1814 case L_STRING : ret = L ispNumber::Create(strlen(lstring_value(v))); break;1815 case L_CONS_CELL : ret = L ispNumber::Create(((LispList *)v)->GetLength()); break;1814 case L_STRING : ret = LNumber::Create(strlen(lstring_value(v))); break; 1815 case L_CONS_CELL : ret = LNumber::Create(((LList *)v)->GetLength()); break; 1816 1816 default : 1817 1817 { lprint(v); … … 1826 1826 while (arg_list) 1827 1827 { 1828 cur = L ispList::Create();1828 cur = LList::Create(); 1829 1829 void *val=eval(CAR(arg_list)); 1830 ((L ispList *) cur)->car = (LispObject *)val;1830 ((LList *) cur)->car = (LObject *)val; 1831 1831 if (last) 1832 ((L ispList *)last)->cdr = (LispObject *)cur;1832 ((LList *)last)->cdr = (LObject *)cur; 1833 1833 else first=cur; 1834 1834 last=cur; 1835 arg_list=(L ispList *)CDR(arg_list);1835 arg_list=(LList *)CDR(arg_list); 1836 1836 } 1837 1837 ret=first; 1838 1838 } break; 1839 1839 case SYS_FUNC_CONS: 1840 { void *c = L ispList::Create();1840 { void *c = LList::Create(); 1841 1841 PtrRef r1(c); 1842 1842 void *val=eval(CAR(arg_list)); 1843 ((L ispList *)c)->car = (LispObject *)val;1843 ((LList *)c)->car = (LObject *)val; 1844 1844 val=eval(CAR(CDR(arg_list))); 1845 ((L ispList *)c)->cdr = (LispObject *)val;1845 ((LList *)c)->cdr = (LObject *)val; 1846 1846 ret=c; 1847 1847 } break; … … 1869 1869 arg_list=CDR(arg_list); 1870 1870 } 1871 ret = L ispNumber::Create(sum);1871 ret = LNumber::Create(sum); 1872 1872 } 1873 1873 break; … … 1896 1896 if (arg_list) first=eval(CAR(arg_list)); 1897 1897 } while (arg_list); 1898 ret = L ispNumber::Create(sum);1898 ret = LNumber::Create(sum); 1899 1899 } 1900 1900 } … … 1914 1914 } else if (first) 1915 1915 { 1916 sum=((L ispNumber *)i)->num;1916 sum=((LNumber *)i)->num; 1917 1917 first=0; 1918 1918 } 1919 else sum/=((L ispNumber *)i)->num;1919 else sum/=((LNumber *)i)->num; 1920 1920 arg_list=CDR(arg_list); 1921 1921 } 1922 ret = L ispNumber::Create(sum);1922 ret = LNumber::Create(sum); 1923 1923 } 1924 1924 break; … … 1931 1931 arg_list=CDR(arg_list); 1932 1932 } 1933 ret = L ispNumber::Create(x);1933 ret = LNumber::Create(x); 1934 1934 } 1935 1935 break; … … 1957 1957 case L_SYMBOL : 1958 1958 { 1959 switch (item_type (((L ispSymbol *)i)->value))1959 switch (item_type (((LSymbol *)i)->value)) 1960 1960 { 1961 1961 case L_NUMBER : 1962 1962 { 1963 if (x==L_NUMBER && ((L ispSymbol *)i)->value!=l_undefined)1964 ((L ispSymbol *)i)->SetNumber(lnumber_value(set_to));1963 if (x==L_NUMBER && ((LSymbol *)i)->value!=l_undefined) 1964 ((LSymbol *)i)->SetNumber(lnumber_value(set_to)); 1965 1965 else 1966 ((L ispSymbol *)i)->SetValue((LispNumber *)set_to);1966 ((LSymbol *)i)->SetValue((LNumber *)set_to); 1967 1967 } break; 1968 1968 case L_OBJECT_VAR : 1969 1969 { 1970 l_obj_set(((L ispObjectVar *)(((LispSymbol *)i)->value))->number, set_to);1970 l_obj_set(((LObjectVar *)(((LSymbol *)i)->value))->number, set_to); 1971 1971 } break; 1972 1972 default : 1973 ((L ispSymbol *)i)->SetValue((LispObject *)set_to);1973 ((LSymbol *)i)->SetValue((LObject *)set_to); 1974 1974 } 1975 ret=((L ispSymbol *)i)->value;1975 ret=((LSymbol *)i)->value; 1976 1976 } break; 1977 1977 case L_CONS_CELL : // this better be an 'aref' 1978 1978 { 1979 1979 #ifdef TYPE_CHECKING 1980 void *car=((L ispList *)i)->car;1980 void *car=((LList *)i)->car; 1981 1981 if (car==car_symbol) 1982 1982 { … … 1984 1984 if (!car || item_type(car)!=L_CONS_CELL) 1985 1985 { lprint(car); lbreak("setq car : evaled object is not a cons cell\n"); exit(0); } 1986 ((L ispList *)car)->car = (LispObject *)set_to;1986 ((LList *)car)->car = (LObject *)set_to; 1987 1987 } else if (car==cdr_symbol) 1988 1988 { … … 1990 1990 if (!car || item_type(car)!=L_CONS_CELL) 1991 1991 { lprint(car); lbreak("setq cdr : evaled object is not a cons cell\n"); exit(0); } 1992 ((L ispList *)car)->cdr = (LispObject *)set_to;1992 ((LList *)car)->cdr = (LObject *)set_to; 1993 1993 } else if (car==aref_symbol) 1994 1994 { 1995 1995 #endif 1996 L ispArray *a = (LispArray *)eval(CAR(CDR(i)));1996 LArray *a = (LArray *)eval(CAR(CDR(i))); 1997 1997 PtrRef r1(a); 1998 1998 #ifdef TYPE_CHECKING … … 2012 2012 } 2013 2013 #endif 2014 a->GetData()[num] = (L ispObject *)set_to;2014 a->GetData()[num] = (LObject *)set_to; 2015 2015 #ifdef TYPE_CHECKING 2016 2016 } else … … 2038 2038 void *item=eval(CAR(arg_list)); 2039 2039 PtrRef r1(item); 2040 void *list=(L ispList *)eval(CAR(CDR(arg_list)));2040 void *list=(LList *)eval(CAR(CDR(arg_list))); 2041 2041 PtrRef r2(list); 2042 ret=assoc(item, (L ispList *)list);2042 ret=assoc(item, (LList *)list); 2043 2043 } break; 2044 2044 case SYS_FUNC_NOT: … … 2050 2050 void *i1=eval(CAR(arg_list)), *i2=eval(CAR(CDR(arg_list))); 2051 2051 PtrRef r1(i1); 2052 L ispList *cs = LispList::Create();2053 cs->car = (L ispObject *)i1;2054 cs->cdr = (L ispObject *)i2;2052 LList *cs = LList::Create(); 2053 cs->car = (LObject *)i1; 2054 cs->cdr = (LObject *)i2; 2055 2055 ret=cs; 2056 2056 } break; … … 2085 2085 #endif 2086 2086 2087 l_user_stack.push(((L ispSymbol *)var_name)->value);2087 l_user_stack.push(((LSymbol *)var_name)->value); 2088 2088 tmp=eval(CAR(CDR(CAR(var_list)))); 2089 ((L ispSymbol *)var_name)->SetValue((LispObject *)tmp);2089 ((LSymbol *)var_name)->SetValue((LObject *)tmp); 2090 2090 var_list=CDR(var_list); 2091 2091 } … … 2104 2104 { 2105 2105 void *var_name=CAR(CAR(var_list)); 2106 ((L ispSymbol *)var_name)->SetValue((LispObject *)l_user_stack.sdata[cur_stack++]);2106 ((LSymbol *)var_name)->SetValue((LObject *)l_user_stack.sdata[cur_stack++]); 2107 2107 var_list=CDR(var_list); 2108 2108 } … … 2112 2112 case SYS_FUNC_DEFUN: 2113 2113 { 2114 L ispSymbol *symbol = (LispSymbol *)CAR(arg_list);2114 LSymbol *symbol = (LSymbol *)CAR(arg_list); 2115 2115 #ifdef TYPE_CHECKING 2116 2116 if (item_type(symbol)!=L_SYMBOL) … … 2133 2133 intptr_t a=cache.reg_lisp_block(lcar(lcdr(arg_list))); 2134 2134 intptr_t b=cache.reg_lisp_block(block_list); 2135 L ispUserFunction *ufun=new_lisp_user_function(a, b);2135 LUserFunction *ufun=new_lisp_user_function(a, b); 2136 2136 #else 2137 L ispUserFunction *ufun=new_lisp_user_function(lcar(lcdr(arg_list)), block_list);2137 LUserFunction *ufun=new_lisp_user_function(lcar(lcdr(arg_list)), block_list); 2138 2138 #endif 2139 2139 symbol->SetFunction(ufun); … … 2183 2183 { 2184 2184 case L_CHARACTER : 2185 { ret = L ispNumber::Create(((LispChar *)i)->ch); } break;2185 { ret = LNumber::Create(((LChar *)i)->ch); } break; 2186 2186 case L_STRING : 2187 { ret = L ispNumber::Create(*lstring_value(i)); } break;2187 { ret = LNumber::Create(*lstring_value(i)); } break; 2188 2188 default : 2189 2189 { … … 2204 2204 exit(0); 2205 2205 } 2206 ret=new_lisp_character(((L ispNumber *)i)->num);2206 ret=new_lisp_character(((LNumber *)i)->num); 2207 2207 } break; 2208 2208 case SYS_FUNC_COND: … … 2242 2242 } break; 2243 2243 case SYS_FUNC_FUNCTION: 2244 ret = ((L ispSymbol *)eval(CAR(arg_list)))->GetFunction();2244 ret = ((LSymbol *)eval(CAR(arg_list)))->GetFunction(); 2245 2245 break; 2246 2246 case SYS_FUNC_MAPCAR: … … 2249 2249 { 2250 2250 void *n1=eval(CAR(arg_list)); 2251 ret=eval_function((L ispSymbol *)n1, CDR(arg_list));2251 ret=eval_function((LSymbol *)n1, CDR(arg_list)); 2252 2252 } break; 2253 2253 case SYS_FUNC_GT: … … 2299 2299 } 2300 2300 #endif 2301 ret=((L ispSymbol *)symb)->name;2301 ret=((LSymbol *)symb)->name; 2302 2302 break; 2303 2303 case SYS_FUNC_TRACE: … … 2331 2331 while (dig--) 2332 2332 *(tp--)='0'; 2333 ret=L ispString::Create(tp+1);2333 ret=LString::Create(tp+1); 2334 2334 } break; 2335 2335 case SYS_FUNC_LOCAL_LOAD: … … 2365 2365 { 2366 2366 delete fp; 2367 if( DEFINEDP(((L ispSymbol *)load_warning)->GetValue())2368 && ((L ispSymbol *)load_warning)->GetValue())2367 if( DEFINEDP(((LSymbol *)load_warning)->GetValue()) 2368 && ((LSymbol *)load_warning)->GetValue()) 2369 2369 dprintf("Warning : file %s does not exist\n", st); 2370 2370 ret = NULL; … … 2412 2412 } break; 2413 2413 case SYS_FUNC_ABS: 2414 ret = L ispNumber::Create(abs(lnumber_value(eval(CAR(arg_list))))); break;2414 ret = LNumber::Create(abs(lnumber_value(eval(CAR(arg_list))))); break; 2415 2415 case SYS_FUNC_MIN: 2416 2416 { 2417 2417 int x=lnumber_value(eval(CAR(arg_list))), y=lnumber_value(eval(CAR(CDR(arg_list)))); 2418 ret = L ispNumber::Create(x < y ? x : y);2418 ret = LNumber::Create(x < y ? x : y); 2419 2419 } break; 2420 2420 case SYS_FUNC_MAX: 2421 2421 { 2422 2422 int x=lnumber_value(eval(CAR(arg_list))), y=lnumber_value(eval(CAR(CDR(arg_list)))); 2423 ret = L ispNumber::Create(x > y ? x : y);2423 ret = LNumber::Create(x > y ? x : y); 2424 2424 } break; 2425 2425 case SYS_FUNC_BACKQUOTE: … … 2451 2451 long y=(lnumber_value(eval(CAR(arg_list)))); arg_list=CDR(arg_list); 2452 2452 long x=(lnumber_value(eval(CAR(arg_list)))); 2453 ret = L ispNumber::Create(lisp_atan2(y, x));2453 ret = LNumber::Create(lisp_atan2(y, x)); 2454 2454 } break; 2455 2455 case SYS_FUNC_ENUM: … … 2465 2465 { 2466 2466 case L_SYMBOL : 2467 { ((L ispSymbol *)sym)->value = LispNumber::Create(x); } break;2467 { ((LSymbol *)sym)->value = LNumber::Create(x); } break; 2468 2468 case L_CONS_CELL : 2469 2469 { … … 2478 2478 #endif 2479 2479 x=lnumber_value(eval(CAR(CDR(sym)))); 2480 ((L ispSymbol *)sym)->value = LispNumber::Create(x);2480 ((LSymbol *)sym)->value = LNumber::Create(x); 2481 2481 } break; 2482 2482 default : … … 2506 2506 long y=lnumber_value(eval(CAR(arg_list))); 2507 2507 if (y==0) { lbreak("mod : division by zero\n"); y=1; } 2508 ret = L ispNumber::Create(x%y);2508 ret = LNumber::Create(x%y); 2509 2509 } break; 2510 2510 /* case SYS_FUNC_WRITE_PROFILE: … … 2517 2517 { 2518 2518 for (void *s=symbol_list;s;s=CDR(s)) 2519 fprintf(fp, "%8d %s\n", ((L ispSymbol *)(CAR(s)))->call_counter,2520 lstring_value(((L ispSymbol *)(CAR(s)))->name));2519 fprintf(fp, "%8d %s\n", ((LSymbol *)(CAR(s)))->call_counter, 2520 lstring_value(((LSymbol *)(CAR(s)))->name)); 2521 2521 fclose(fp); 2522 2522 } … … 2524 2524 case SYS_FUNC_FOR: 2525 2525 { 2526 L ispSymbol *bind_var = (LispSymbol *)CAR(arg_list);2526 LSymbol *bind_var = (LSymbol *)CAR(arg_list); 2527 2527 arg_list = CDR(arg_list); 2528 2528 PtrRef r1(bind_var); … … 2546 2546 while (ilist) 2547 2547 { 2548 bind_var->SetValue((L ispObject *)CAR(ilist));2548 bind_var->SetValue((LObject *)CAR(ilist)); 2549 2549 for (block=arg_list;block;block=CDR(block)) 2550 2550 ret=eval(CAR(block)); 2551 2551 ilist=CDR(ilist); 2552 2552 } 2553 bind_var->SetValue((L ispObject *)l_user_stack.pop(1)); // restore symbol value2553 bind_var->SetValue((LObject *)l_user_stack.pop(1)); // restore symbol value 2554 2554 ret=ret; 2555 2555 } break; … … 2585 2585 arg_list=CDR(arg_list); 2586 2586 } 2587 ret = L ispNumber::Create(first);2587 ret = LNumber::Create(first); 2588 2588 } break; 2589 2589 case SYS_FUNC_BIT_OR: … … 2595 2595 arg_list=CDR(arg_list); 2596 2596 } 2597 ret = L ispNumber::Create(first);2597 ret = LNumber::Create(first); 2598 2598 } break; 2599 2599 case SYS_FUNC_BIT_XOR: … … 2605 2605 arg_list=CDR(arg_list); 2606 2606 } 2607 ret = L ispNumber::Create(first);2607 ret = LNumber::Create(first); 2608 2608 } break; 2609 2609 case SYS_FUNC_MAKE_ARRAY: … … 2615 2615 exit(0); 2616 2616 } 2617 ret = L ispArray::Create(l, CDR(arg_list));2617 ret = LArray::Create(l, CDR(arg_list)); 2618 2618 } break; 2619 2619 case SYS_FUNC_AREF: 2620 2620 { 2621 2621 long x=lnumber_value(eval(CAR(CDR(arg_list)))); 2622 ret = ((L ispArray *)eval(CAR(arg_list)))->Get(x);2622 ret = ((LArray *)eval(CAR(arg_list)))->Get(x); 2623 2623 } break; 2624 2624 case SYS_FUNC_IF_1PROGN: … … 2646 2646 { 2647 2647 void *v=eval(CAR(arg_list)); 2648 if (item_type(v)!=L_NUMBER || (((L ispNumber *)v)->num!=0))2648 if (item_type(v)!=L_NUMBER || (((LNumber *)v)->num!=0)) 2649 2649 ret=NULL; 2650 2650 else ret=true_symbol; … … 2666 2666 char *find=strstr(haystack, needle); 2667 2667 if (find) 2668 ret = L ispNumber::Create(find-haystack);2668 ret = LNumber::Create(find-haystack); 2669 2669 else ret=NULL; 2670 2670 } break; … … 2694 2694 PtrRef r1(init_var); 2695 2695 int i, ustack_start=l_user_stack.son; // restore stack at end 2696 L ispSymbol *sym = NULL;2696 LSymbol *sym = NULL; 2697 2697 PtrRef r2(sym); 2698 2698 … … 2700 2700 for (init_var=CAR(arg_list);init_var;init_var=CDR(init_var)) 2701 2701 { 2702 sym = (L ispSymbol *)CAR(CAR(init_var));2702 sym = (LSymbol *)CAR(CAR(init_var)); 2703 2703 if (item_type(sym)!=L_SYMBOL) 2704 2704 { lbreak("expecting symbol name for iteration var\n"); exit(0); } … … 2714 2714 for (init_var=CAR(arg_list);init_var;init_var=CDR(init_var), do_evaled++) 2715 2715 { 2716 sym = (L ispSymbol *)CAR(CAR(init_var));2717 sym->SetValue((L ispObject *)*do_evaled);2716 sym = (LSymbol *)CAR(CAR(init_var)); 2717 sym->SetValue((LObject *)*do_evaled); 2718 2718 } 2719 2719 … … 2736 2736 for (init_var=CAR(arg_list);init_var;init_var=CDR(init_var), do_evaled++) 2737 2737 { 2738 sym = (L ispSymbol *)CAR(CAR(init_var));2739 sym->SetValue((L ispObject *)*do_evaled);2738 sym = (LSymbol *)CAR(CAR(init_var)); 2739 sym->SetValue((LObject *)*do_evaled); 2740 2740 } 2741 2741 … … 2765 2765 char str[20]; 2766 2766 sprintf(str, "%ld", (long int)lnumber_value(eval(CAR(arg_list)))); 2767 ret=L ispString::Create(str);2767 ret=LString::Create(str); 2768 2768 } break; 2769 2769 case SYS_FUNC_NCONC: … … 2786 2786 next=l1; 2787 2787 while (next) { l1=next; next=lcdr(next); } 2788 ((L ispList *)l1)->cdr = (LispObject *)eval(CAR(arg_list));2788 ((LList *)l1)->cdr = (LObject *)eval(CAR(arg_list)); 2789 2789 arg_list=CDR(arg_list); 2790 2790 } while (arg_list); … … 2821 2821 lbreak("substr : bad x1 or x2 value"); 2822 2822 2823 L ispString *s=LispString::Create(x2-x1+2);2823 LString *s=LString::Create(x2-x1+2); 2824 2824 if (x2-x1) 2825 2825 memcpy(lstring_value(s), lstring_value(st)+x1, x2-x1+1); … … 2837 2837 if (!rstart) rstart=q; 2838 2838 while (r && CDR(r)) r=CDR(r); 2839 CDR(r) = (L ispObject *)q;2839 CDR(r) = (LObject *)q; 2840 2840 arg_list=CDR(arg_list); 2841 2841 } … … 2844 2844 2845 2845 default : 2846 { dprintf("Undefined system function number %d\n", ((L ispSysFunction *)fun)->fun_number); }2846 { dprintf("Undefined system function number %d\n", ((LSysFunction *)fun)->fun_number); } 2847 2847 } 2848 2848 return ret; … … 2867 2867 2868 2868 2869 void *eval_user_fun(L ispSymbol *sym, void *arg_list)2869 void *eval_user_fun(LSymbol *sym, void *arg_list) 2870 2870 { 2871 2871 void *ret=NULL; … … 2885 2885 2886 2886 2887 L ispUserFunction *fun=(LispUserFunction *)(((LispSymbol *)sym)->function);2887 LUserFunction *fun=(LUserFunction *)(((LSymbol *)sym)->function); 2888 2888 2889 2889 #ifdef TYPE_CHECKING … … 2916 2916 for (;f_arg;f_arg=CDR(f_arg)) 2917 2917 { 2918 L ispSymbol *s = (LispSymbol *)CAR(f_arg);2918 LSymbol *s = (LSymbol *)CAR(f_arg); 2919 2919 l_user_stack.push(s->value); 2920 2920 } … … 2937 2937 // now store all the values and put them into the symbols 2938 2938 for (f_arg=fun_arg_list;f_arg;f_arg=CDR(f_arg)) 2939 ((L ispSymbol *)CAR(f_arg))->SetValue((LispObject *)l_user_stack.sdata[i++]);2939 ((LSymbol *)CAR(f_arg))->SetValue((LObject *)l_user_stack.sdata[i++]); 2940 2940 2941 2941 l_user_stack.son=new_start; … … 2957 2957 long cur_stack=stack_start; 2958 2958 for (f_arg=fun_arg_list;f_arg;f_arg=CDR(f_arg)) 2959 ((L ispSymbol *)CAR(f_arg))->SetValue((LispObject *)l_user_stack.sdata[cur_stack++]);2959 ((LSymbol *)CAR(f_arg))->SetValue((LObject *)l_user_stack.sdata[cur_stack++]); 2960 2960 2961 2961 l_user_stack.son=stack_start; … … 2963 2963 #ifdef L_PROFILE 2964 2964 time_marker end; 2965 ((L ispSymbol *)sym)->time_taken+=end.diff_time(&start);2965 ((LSymbol *)sym)->time_taken+=end.diff_time(&start); 2966 2966 #endif 2967 2967 … … 3015 3015 else 3016 3016 { 3017 ret = ((L ispSymbol *)prog)->GetValue();3017 ret = ((LSymbol *)prog)->GetValue(); 3018 3018 if (item_type(ret)==L_OBJECT_VAR) 3019 ret=l_obj_get(((L ispObjectVar *)ret)->number);3019 ret=l_obj_get(((LObjectVar *)ret)->number); 3020 3020 } 3021 3021 } break; 3022 3022 case L_CONS_CELL : 3023 3023 { 3024 ret=eval_function((L ispSymbol *)CAR(prog), CDR(prog));3024 ret=eval_function((LSymbol *)CAR(prog), CDR(prog)); 3025 3025 } 3026 3026 break; … … 3127 3127 } 3128 3128 3129 L ispString *LispSymbol::GetName()3129 LString *LSymbol::GetName() 3130 3130 { 3131 3131 #ifdef TYPE_CHECKING … … 3140 3140 } 3141 3141 3142 void L ispSymbol::SetNumber(long num)3142 void LSymbol::SetNumber(long num) 3143 3143 { 3144 3144 #ifdef TYPE_CHECKING … … 3151 3151 #endif 3152 3152 if (value != l_undefined && item_type(value) == L_NUMBER) 3153 ((L ispNumber *)value)->num = num;3153 ((LNumber *)value)->num = num; 3154 3154 else 3155 value = L ispNumber::Create(num);3156 } 3157 3158 void L ispSymbol::SetValue(LispObject *val)3155 value = LNumber::Create(num); 3156 } 3157 3158 void LSymbol::SetValue(LObject *val) 3159 3159 { 3160 3160 #ifdef TYPE_CHECKING … … 3169 3169 } 3170 3170 3171 L ispObject *LispSymbol::GetFunction()3171 LObject *LSymbol::GetFunction() 3172 3172 { 3173 3173 #ifdef TYPE_CHECKING … … 3182 3182 } 3183 3183 3184 L ispObject *LispSymbol::GetValue()3184 LObject *LSymbol::GetValue() 3185 3185 { 3186 3186 #ifdef TYPE_CHECKING -
abuse/trunk/src/lisp/lisp.h
r491 r492 45 45 // and sure that word, etc are word aligned 46 46 47 struct L ispObject47 struct LObject 48 48 { 49 49 ltype type; 50 50 }; 51 51 52 struct L ispObjectVar : LispObject52 struct LObjectVar : LObject 53 53 { 54 54 long number; 55 55 }; 56 56 57 struct L ispList : LispObject58 { 59 static L ispList *Create();57 struct LList : LObject 58 { 59 static LList *Create(); 60 60 61 61 size_t GetLength(); 62 62 63 L ispObject *cdr, *car;64 }; 65 66 struct L ispNumber : LispObject67 { 68 static L ispNumber *Create(long num);63 LObject *cdr, *car; 64 }; 65 66 struct LNumber : LObject 67 { 68 static LNumber *Create(long num); 69 69 70 70 long num; 71 71 }; 72 72 73 struct L ispRedirect : LispObject74 { 75 L ispObject *new_reference;76 }; 77 78 struct L ispString : LispObject79 { 80 static L ispString *Create(char const *string);81 static L ispString *Create(char const *string, int length);82 static L ispString *Create(int length);73 struct LRedirect : LObject 74 { 75 LObject *new_reference; 76 }; 77 78 struct LString : LObject 79 { 80 static LString *Create(char const *string); 81 static LString *Create(char const *string, int length); 82 static LString *Create(int length); 83 83 84 84 char *GetString(); … … 87 87 }; 88 88 89 struct L ispSymbol : LispObject90 { 91 static L ispSymbol *Find(char const *name);92 static L ispSymbol *FindOrCreate(char const *name);93 94 L ispString *GetName();95 L ispObject *GetFunction();96 L ispObject *GetValue();97 98 void SetFunction(L ispObject *fun);99 void SetValue(L ispObject *value);89 struct LSymbol : LObject 90 { 91 static LSymbol *Find(char const *name); 92 static LSymbol *FindOrCreate(char const *name); 93 94 LString *GetName(); 95 LObject *GetFunction(); 96 LObject *GetValue(); 97 98 void SetFunction(LObject *fun); 99 void SetValue(LObject *value); 100 100 void SetNumber(long num); 101 101 … … 103 103 float time_taken; 104 104 #endif 105 L ispObject *value;106 L ispObject *function;107 L ispString *name;108 L ispSymbol *left, *right; // tree structure109 }; 110 111 struct L ispSysFunction : LispObject105 LObject *value; 106 LObject *function; 107 LString *name; 108 LSymbol *left, *right; // tree structure 109 }; 110 111 struct LSysFunction : LObject 112 112 { 113 113 short min_args, max_args; … … 115 115 }; 116 116 117 struct L ispUserFunction : LispObject117 struct LUserFunction : LObject 118 118 { 119 119 #ifndef NO_LIBS … … 124 124 }; 125 125 126 struct L ispArray : LispObject127 { 128 static L ispArray *Create(int size, void *rest);129 130 inline L ispObject **GetData() { return data; }131 L ispObject *Get(long x);126 struct LArray : LObject 127 { 128 static LArray *Create(int size, void *rest); 129 130 inline LObject **GetData() { return data; } 131 LObject *Get(long x); 132 132 133 133 unsigned short size; … … 135 135 136 136 private: 137 L ispObject *data[1];138 }; 139 140 struct L ispChar : LispObject137 LObject *data[1]; 138 }; 139 140 struct LChar : LObject 141 141 { 142 142 int16_t pad; … … 144 144 }; 145 145 146 struct L ispPointer : LispObject146 struct LPointer : LObject 147 147 { 148 148 void *addr; 149 149 }; 150 150 151 152 struct LispFixedPoint : LispObject 151 struct LFixedPoint : LObject 153 152 { 154 153 int32_t x; 155 154 }; 156 155 157 static inline L ispObject *&CAR(void *x) { return ((LispList *)x)->car; }158 static inline L ispObject *&CDR(void *x) { return ((LispList *)x)->cdr; }156 static inline LObject *&CAR(void *x) { return ((LList *)x)->car; } 157 static inline LObject *&CDR(void *x) { return ((LList *)x)->cdr; } 159 158 static inline ltype item_type(void *x) { if (x) return *(ltype *)x; return L_CONS_CELL; } 160 159 … … 174 173 void *eval(void *prog); 175 174 void *eval_block(void *list); 176 void *eval_function(L ispSymbol *sym, void *arg_list);177 void *eval_user_fun(L ispSymbol *sym, void *arg_list);175 void *eval_function(LSymbol *sym, void *arg_list); 176 void *eval_user_fun(LSymbol *sym, void *arg_list); 178 177 void *compile(char const *&s); 179 178 void *assoc(void *item, void *list); … … 182 181 183 182 void push_onto_list(void *object, void *&list); 184 L ispSymbol *add_c_object(void *symbol, int16_t number);185 L ispSymbol *add_c_function(char const *name, short min_args, short max_args, short number);186 L ispSymbol *add_c_bool_fun(char const *name, short min_args, short max_args, short number);187 L ispSymbol *add_lisp_function(char const *name, short min_args, short max_args, short number);183 LSymbol *add_c_object(void *symbol, int16_t number); 184 LSymbol *add_c_function(char const *name, short min_args, short max_args, short number); 185 LSymbol *add_c_bool_fun(char const *name, short min_args, short max_args, short number); 186 LSymbol *add_lisp_function(char const *name, short min_args, short max_args, short number); 188 187 int read_ltoken(char *&s, char *buffer); 189 188 void print_trace_stack(int max_levels); 190 189 191 190 192 L ispPointer *new_lisp_pointer(void *addr);193 L ispChar *new_lisp_character(uint16_t ch);194 L ispFixedPoint *new_lisp_fixed_point(int32_t x);195 L ispObjectVar *new_lisp_object_var(int16_t number);196 L ispSysFunction *new_lisp_sys_function(int min_args, int max_args, int fun_number);197 L ispSysFunction *new_lisp_c_function(int min_args, int max_args, int fun_number);198 L ispSysFunction *new_lisp_c_bool(int min_args, int max_args, int fun_number);191 LPointer *new_lisp_pointer(void *addr); 192 LChar *new_lisp_character(uint16_t ch); 193 LFixedPoint *new_lisp_fixed_point(int32_t x); 194 LObjectVar *new_lisp_object_var(int16_t number); 195 LSysFunction *new_lisp_sys_function(int min_args, int max_args, int fun_number); 196 LSysFunction *new_lisp_c_function(int min_args, int max_args, int fun_number); 197 LSysFunction *new_lisp_c_bool(int min_args, int max_args, int fun_number); 199 198 200 199 #ifdef NO_LIBS 201 L ispUserFunction *new_lisp_user_function(void *arg_list, void *block_list);200 LUserFunction *new_lisp_user_function(void *arg_list, void *block_list); 202 201 #else 203 L ispUserFunction *new_lisp_user_function(intptr_t arg_list, intptr_t block_list);204 #endif 205 206 L ispSysFunction *new_user_lisp_function(int min_args, int max_args, int fun_number);202 LUserFunction *new_lisp_user_function(intptr_t arg_list, intptr_t block_list); 203 #endif 204 205 LSysFunction *new_user_lisp_function(int min_args, int max_args, int fun_number); 207 206 208 207 int end_of_program(char *s); … … 210 209 void lisp_init(long perm_size, long tmp_size); 211 210 void lisp_uninit(); 212 extern L ispSymbol *lsym_root;211 extern LSymbol *lsym_root; 213 212 214 213 extern uint8_t *space[4], *free_space[4]; … … 234 233 235 234 // FIXME: get rid of this later 236 static inline void *symbol_value(void *sym) { return ((L ispSymbol *)sym)->GetValue(); }237 static inline char *lstring_value(void *str) { return ((L ispString *)str)->GetString(); }235 static inline void *symbol_value(void *sym) { return ((LSymbol *)sym)->GetValue(); } 236 static inline char *lstring_value(void *str) { return ((LString *)str)->GetString(); } 238 237 239 238 #include "lisp_opt.h" -
abuse/trunk/src/lisp/lisp_gc.cpp
r491 r492 84 84 } 85 85 86 static L ispObject *CollectObject(LispObject *x);87 88 static L ispArray *CollectArray(LispArray *x)86 static LObject *CollectObject(LObject *x); 87 88 static LArray *CollectArray(LArray *x) 89 89 { 90 90 size_t s = x->size; 91 L ispArray *a = LispArray::Create(s, NULL);92 L ispObject **src = x->GetData();93 L ispObject **dst = a->GetData();91 LArray *a = LArray::Create(s, NULL); 92 LObject **src = x->GetData(); 93 LObject **dst = a->GetData(); 94 94 for (size_t i = 0; i < s; i++) 95 95 dst[i] = CollectObject(src[i]); … … 98 98 } 99 99 100 inline L ispList *CollectList(LispList *x)101 { 102 L ispList *last = NULL, *first = NULL;100 inline LList *CollectList(LList *x) 101 { 102 LList *last = NULL, *first = NULL; 103 103 104 104 for (; x && item_type(x) == L_CONS_CELL; ) 105 105 { 106 L ispList *p = LispList::Create();107 L ispObject *old_car = x->car;108 L ispObject *old_cdr = x->cdr;109 L ispObject *old_x = x;110 x = (L ispList *)CDR(x);111 ((L ispRedirect *)old_x)->type = L_COLLECTED_OBJECT;112 ((L ispRedirect *)old_x)->new_reference = p;106 LList *p = LList::Create(); 107 LObject *old_car = x->car; 108 LObject *old_cdr = x->cdr; 109 LObject *old_x = x; 110 x = (LList *)CDR(x); 111 ((LRedirect *)old_x)->type = L_COLLECTED_OBJECT; 112 ((LRedirect *)old_x)->new_reference = p; 113 113 114 114 p->car = CollectObject(old_car); … … 126 126 } 127 127 128 static L ispObject *CollectObject(LispObject *x)129 { 130 L ispObject *ret = x;128 static LObject *CollectObject(LObject *x) 129 { 130 LObject *ret = x; 131 131 132 132 if (((uint8_t *)x) >= cstart && ((uint8_t *)x) < cend) … … 139 139 break; 140 140 case L_NUMBER: 141 ret = L ispNumber::Create(((LispNumber *)x)->num);141 ret = LNumber::Create(((LNumber *)x)->num); 142 142 break; 143 143 case L_SYS_FUNCTION: 144 ret = new_lisp_sys_function(((L ispSysFunction *)x)->min_args,145 ((L ispSysFunction *)x)->max_args,146 ((L ispSysFunction *)x)->fun_number);144 ret = new_lisp_sys_function(((LSysFunction *)x)->min_args, 145 ((LSysFunction *)x)->max_args, 146 ((LSysFunction *)x)->fun_number); 147 147 break; 148 148 case L_USER_FUNCTION: 149 149 #ifndef NO_LIBS 150 ret = new_lisp_user_function(((L ispUserFunction *)x)->alist,151 ((L ispUserFunction *)x)->blist);150 ret = new_lisp_user_function(((LUserFunction *)x)->alist, 151 ((LUserFunction *)x)->blist); 152 152 153 153 #else 154 154 { 155 L ispObject *arg = CollectObject(((LispUserFunction *)x)->arg_list);156 L ispObject *block = CollectObject(((LispUserFunction *)x)->block_list);155 LObject *arg = CollectObject(((LUserFunction *)x)->arg_list); 156 LObject *block = CollectObject(((LUserFunction *)x)->block_list); 157 157 ret = new_lisp_user_function(arg, block); 158 158 } … … 160 160 break; 161 161 case L_STRING: 162 ret = L ispString::Create(lstring_value(x));162 ret = LString::Create(lstring_value(x)); 163 163 break; 164 164 case L_CHARACTER: … … 166 166 break; 167 167 case L_C_FUNCTION: 168 ret = new_lisp_c_function(((L ispSysFunction *)x)->min_args,169 ((L ispSysFunction *)x)->max_args,170 ((L ispSysFunction *)x)->fun_number);168 ret = new_lisp_c_function(((LSysFunction *)x)->min_args, 169 ((LSysFunction *)x)->max_args, 170 ((LSysFunction *)x)->fun_number); 171 171 break; 172 172 case L_C_BOOL: 173 ret = new_lisp_c_bool(((L ispSysFunction *)x)->min_args,174 ((L ispSysFunction *)x)->max_args,175 ((L ispSysFunction *)x)->fun_number);173 ret = new_lisp_c_bool(((LSysFunction *)x)->min_args, 174 ((LSysFunction *)x)->max_args, 175 ((LSysFunction *)x)->fun_number); 176 176 break; 177 177 case L_L_FUNCTION: 178 ret = new_user_lisp_function(((L ispSysFunction *)x)->min_args,179 ((L ispSysFunction *)x)->max_args,180 ((L ispSysFunction *)x)->fun_number);178 ret = new_user_lisp_function(((LSysFunction *)x)->min_args, 179 ((LSysFunction *)x)->max_args, 180 ((LSysFunction *)x)->fun_number); 181 181 break; 182 182 case L_POINTER: … … 184 184 break; 185 185 case L_1D_ARRAY: 186 ret = CollectArray((L ispArray *)x);186 ret = CollectArray((LArray *)x); 187 187 break; 188 188 case L_FIXED_POINT: … … 190 190 break; 191 191 case L_CONS_CELL: 192 ret = CollectList((L ispList *)x);192 ret = CollectList((LList *)x); 193 193 break; 194 194 case L_OBJECT_VAR: 195 ret = new_lisp_object_var(((L ispObjectVar *)x)->number);195 ret = new_lisp_object_var(((LObjectVar *)x)->number); 196 196 break; 197 197 case L_COLLECTED_OBJECT: 198 ret = ((L ispRedirect *)x)->new_reference;198 ret = ((LRedirect *)x)->new_reference; 199 199 break; 200 200 default: … … 205 205 break; 206 206 } 207 ((L ispRedirect *)x)->type = L_COLLECTED_OBJECT;208 ((L ispRedirect *)x)->new_reference = ret;207 ((LRedirect *)x)->type = L_COLLECTED_OBJECT; 208 ((LRedirect *)x)->new_reference = ret; 209 209 } 210 210 else if ((uint8_t *)x < collected_start || (uint8_t *)x >= collected_end) … … 213 213 { 214 214 for (; x && item_type(x) == L_CONS_CELL; x = CDR(x)) 215 ((L ispList *)x)->car = CollectObject(((LispList *)x)->car);215 ((LList *)x)->car = CollectObject(((LList *)x)->car); 216 216 if (x) 217 ((L ispList *)x)->cdr = CollectObject(((LispList *)x)->cdr);217 ((LList *)x)->cdr = CollectObject(((LList *)x)->cdr); 218 218 } 219 219 } … … 222 222 } 223 223 224 static void collect_symbols(L ispSymbol *root)224 static void collect_symbols(LSymbol *root) 225 225 { 226 226 if (root) … … 228 228 root->value = CollectObject(root->value); 229 229 root->function = CollectObject(root->function); 230 root->name = (L ispString *)CollectObject(root->name);230 root->name = (LString *)CollectObject(root->name); 231 231 collect_symbols(root->left); 232 232 collect_symbols(root->right); … … 240 240 void **d = l_user_stack.sdata; 241 241 for (int i = 0; i < t; i++, d++) 242 *d = CollectObject((L ispObject *)*d);242 *d = CollectObject((LObject *)*d); 243 243 244 244 t = PtrRef::stack.son; … … 247 247 { 248 248 void **ptr = *d2; 249 *ptr = CollectObject((L ispObject *)*ptr);249 *ptr = CollectObject((LObject *)*ptr); 250 250 } 251 251 … … 254 254 { 255 255 void **ptr = *d2; 256 *ptr = CollectObject((L ispObject *)*ptr);256 *ptr = CollectObject((LObject *)*ptr); 257 257 } 258 258 } -
abuse/trunk/src/lisp/lisp_opt.cpp
r491 r492 19 19 #include "lisp_gc.h" 20 20 21 L ispObject *l_undefined;22 L ispSymbol *true_symbol = NULL, *list_symbol, *string_symbol, *quote_symbol,21 LObject *l_undefined; 22 LSymbol *true_symbol = NULL, *list_symbol, *string_symbol, *quote_symbol, 23 23 *backquote_symbol, *comma_symbol, *do_symbol, *in_symbol, *aref_symbol, 24 24 *if_symbol, *progn_symbol, *car_symbol, *cdr_symbol; … … 95 95 { 96 96 // This needs to be defined first 97 l_undefined = L ispSymbol::FindOrCreate(":UNDEFINED");97 l_undefined = LSymbol::FindOrCreate(":UNDEFINED"); 98 98 99 99 // Collection problems result if we don't do this 100 ((L ispSymbol *)l_undefined)->function = NULL;101 ((L ispSymbol *)l_undefined)->value = NULL;100 ((LSymbol *)l_undefined)->function = NULL; 101 ((LSymbol *)l_undefined)->value = NULL; 102 102 103 true_symbol = L ispSymbol::FindOrCreate("T");103 true_symbol = LSymbol::FindOrCreate("T"); 104 104 105 list_symbol = L ispSymbol::FindOrCreate("list");106 string_symbol = L ispSymbol::FindOrCreate("string");107 quote_symbol = L ispSymbol::FindOrCreate("quote");108 backquote_symbol = L ispSymbol::FindOrCreate("backquote");109 comma_symbol = L ispSymbol::FindOrCreate("comma");110 in_symbol = L ispSymbol::FindOrCreate("in");111 do_symbol = L ispSymbol::FindOrCreate("do");112 aref_symbol = L ispSymbol::FindOrCreate("aref");113 colon_initial_contents = L ispSymbol::FindOrCreate(":initial-contents");114 colon_initial_element = L ispSymbol::FindOrCreate(":initial-element");105 list_symbol = LSymbol::FindOrCreate("list"); 106 string_symbol = LSymbol::FindOrCreate("string"); 107 quote_symbol = LSymbol::FindOrCreate("quote"); 108 backquote_symbol = LSymbol::FindOrCreate("backquote"); 109 comma_symbol = LSymbol::FindOrCreate("comma"); 110 in_symbol = LSymbol::FindOrCreate("in"); 111 do_symbol = LSymbol::FindOrCreate("do"); 112 aref_symbol = LSymbol::FindOrCreate("aref"); 113 colon_initial_contents = LSymbol::FindOrCreate(":initial-contents"); 114 colon_initial_element = LSymbol::FindOrCreate(":initial-element"); 115 115 116 if_1progn = L ispSymbol::FindOrCreate("if-1progn");117 if_2progn = L ispSymbol::FindOrCreate("if-2progn");118 if_12progn = L ispSymbol::FindOrCreate("if-12progn");119 if_symbol = L ispSymbol::FindOrCreate("if");120 progn_symbol = L ispSymbol::FindOrCreate("progn");121 not_symbol = L ispSymbol::FindOrCreate("not");122 eq_symbol = L ispSymbol::FindOrCreate("eq");123 zero_symbol = L ispSymbol::FindOrCreate("0");124 eq0_symbol = L ispSymbol::FindOrCreate("eq0");125 car_symbol = L ispSymbol::FindOrCreate("car");126 cdr_symbol = L ispSymbol::FindOrCreate("cdr");127 load_warning = L ispSymbol::FindOrCreate("load_warning");116 if_1progn = LSymbol::FindOrCreate("if-1progn"); 117 if_2progn = LSymbol::FindOrCreate("if-2progn"); 118 if_12progn = LSymbol::FindOrCreate("if-12progn"); 119 if_symbol = LSymbol::FindOrCreate("if"); 120 progn_symbol = LSymbol::FindOrCreate("progn"); 121 not_symbol = LSymbol::FindOrCreate("not"); 122 eq_symbol = LSymbol::FindOrCreate("eq"); 123 zero_symbol = LSymbol::FindOrCreate("0"); 124 eq0_symbol = LSymbol::FindOrCreate("eq0"); 125 car_symbol = LSymbol::FindOrCreate("car"); 126 cdr_symbol = LSymbol::FindOrCreate("cdr"); 127 load_warning = LSymbol::FindOrCreate("load_warning"); 128 128 } 129 129 -
abuse/trunk/src/lisp/lisp_opt.h
r490 r492 13 13 #include "lisp.h" 14 14 15 extern L ispObject *l_undefined;16 extern L ispSymbol *true_symbol, *list_symbol, *string_symbol, *quote_symbol,15 extern LObject *l_undefined; 16 extern LSymbol *true_symbol, *list_symbol, *string_symbol, *quote_symbol, 17 17 *backquote_symbol, *comma_symbol, *do_symbol, *in_symbol, *aref_symbol, 18 18 *if_symbol, *progn_symbol, *car_symbol, *cdr_symbol; -
abuse/trunk/src/loader2.cpp
r484 r492 368 368 char const *ff; 369 369 // FIXME: unnecessary duplicate call 370 if (DEFINEDP(L ispSymbol::FindOrCreate("frame_file")->GetValue()))371 ff = lstring_value(L ispSymbol::FindOrCreate("frame_file")->GetValue());370 if (DEFINEDP(LSymbol::FindOrCreate("frame_file")->GetValue())) 371 ff = lstring_value(LSymbol::FindOrCreate("frame_file")->GetValue()); 372 372 else 373 373 ff = "art/frame.spe"; -
abuse/trunk/src/menu.cpp
r490 r492 134 134 args=CAR(CDR(args)); 135 135 136 int options = ((L ispList *)args)->GetLength();136 int options = ((LList *)args)->GetLength(); 137 137 int mh=(font->height()+1)*options+10,maxw=0; 138 138 … … 377 377 void show_sell(int abortable) 378 378 { 379 L ispSymbol *ss = LispSymbol::FindOrCreate("sell_screens");379 LSymbol *ss = LSymbol::FindOrCreate("sell_screens"); 380 380 if (!DEFINEDP(ss->GetValue())) 381 381 { … … 385 385 // char *prog="((\"art/endgame.spe\" . \"credit\") (\"art/help.spe\" . \"sell6\"))"; 386 386 char const *prog="((\"art/endgame.spe\" . \"credit\"))"; 387 ss->SetValue((L ispObject *)compile(prog));387 ss->SetValue((LObject *)compile(prog)); 388 388 current_space=sp; 389 389 } … … 394 394 wm->set_mouse_shape(blank.copy(),0,0); // don't show mouse 395 395 396 L ispObject *tmp = (LispObject *)ss->GetValue();396 LObject *tmp = (LObject *)ss->GetValue(); 397 397 int quit=0; 398 398 while (tmp && !quit) … … 409 409 quit=1; 410 410 fade_out(16); 411 tmp = (L ispObject *)CDR(tmp);411 tmp = (LObject *)CDR(tmp); 412 412 } 413 413 wm->set_mouse_shape(cache.img(c_normal)->copy(),1,1); … … 696 696 if (!current_demo) 697 697 { 698 L ispSymbol *d = LispSymbol::FindOrCreate("demos");698 LSymbol *d = LSymbol::FindOrCreate("demos"); 699 699 if (DEFINEDP(d->GetValue())) 700 700 current_demo = d->GetValue(); -
abuse/trunk/src/objects.cpp
r491 r492 105 105 for (i=0;i<figures[otype]->tiv;i++) 106 106 { 107 if (!strcmp(lstring_value(((L ispSymbol *)figures[otype]->vars[i])->GetName()),name))107 if (!strcmp(lstring_value(((LSymbol *)figures[otype]->vars[i])->GetName()),name)) 108 108 { 109 109 return lvars[figures[otype]->var_index[i]]; 110 /* L ispObjectVar *cobj=(LispObjectVar *)symbol_value(figures[otype]->vars[i]);110 /* LObjectVar *cobj=(LObjectVar *)symbol_value(figures[otype]->vars[i]); 111 111 character_type *t=figures[otype]; 112 112 int number=cobj->number; … … 135 135 } 136 136 for (i=0;i<figures[otype]->tiv;i++) 137 if (!strcmp(lstring_value(((L ispSymbol *)figures[otype]->vars[i])->GetName()),name))137 if (!strcmp(lstring_value(((LSymbol *)figures[otype]->vars[i])->GetName()),name)) 138 138 { 139 139 lvars[figures[otype]->var_index[i]]=value; … … 265 265 266 266 void *m=mark_heap(TMP_SPACE); 267 eval_function((L ispSymbol *)ns,NULL);267 eval_function((LSymbol *)ns,NULL); 268 268 restore_heap(m,TMP_SPACE); 269 269 … … 279 279 current_object = this; 280 280 void *m = mark_heap( TMP_SPACE ); 281 (void)eval_function( (L ispSymbol *)ns, NULL );281 (void)eval_function( (LSymbol *)ns, NULL ); 282 282 restore_heap( m, TMP_SPACE ); 283 283 } … … 419 419 prof1=new time_marker; 420 420 421 Cell *ret=(Cell *)eval_function((L ispSymbol *)figures[otype]->get_fun(OFUN_AI),NULL);421 Cell *ret=(Cell *)eval_function((LSymbol *)figures[otype]->get_fun(OFUN_AI),NULL); 422 422 if (profiling()) 423 423 { … … 483 483 if (d) 484 484 { 485 L ispList *am, *frm, *hx, *hy, *px, *py;485 LList *am, *frm, *hx, *hy, *px, *py; 486 486 game_object *o = current_object; 487 487 current_object = this; … … 489 489 void *m = mark_heap(TMP_SPACE); 490 490 491 am = L ispList::Create();491 am = LList::Create(); 492 492 PtrRef r1(am); 493 am->car = L ispNumber::Create(amount);494 495 frm = L ispList::Create();493 am->car = LNumber::Create(amount); 494 495 frm = LList::Create(); 496 496 PtrRef r2(frm); 497 497 frm->car = new_lisp_pointer(from); 498 498 499 hx = L ispList::Create();499 hx = LList::Create(); 500 500 PtrRef r3(hx); 501 hx->car = L ispNumber::Create(hitx);502 503 hy = L ispList::Create();501 hx->car = LNumber::Create(hitx); 502 503 hy = LList::Create(); 504 504 PtrRef r4(hy); 505 hy->car = L ispNumber::Create(hity);506 507 px = L ispList::Create();505 hy->car = LNumber::Create(hity); 506 507 px = LList::Create(); 508 508 PtrRef r5(px); 509 px->car = L ispNumber::Create(push_xvel);510 511 py = L ispList::Create();509 px->car = LNumber::Create(push_xvel); 510 511 py = LList::Create(); 512 512 PtrRef r6(py); 513 py->car = L ispNumber::Create(push_yvel);513 py->car = LNumber::Create(push_yvel); 514 514 515 515 px->cdr = py; … … 523 523 prof1 = new time_marker; 524 524 525 eval_user_fun((L ispSymbol *)d, am);525 eval_user_fun((LSymbol *)d, am); 526 526 if (profiling()) 527 527 { … … 635 635 prof1=new time_marker; 636 636 637 eval_function((L ispSymbol *)figures[otype]->get_fun(OFUN_DRAW),NULL);637 eval_function((LSymbol *)figures[otype]->get_fun(OFUN_DRAW),NULL); 638 638 if (profiling()) 639 639 { … … 662 662 prof1=new time_marker; 663 663 664 eval_function((L ispSymbol *)figures[otype]->get_fun(OFUN_MAP_DRAW),NULL);664 eval_function((LSymbol *)figures[otype]->get_fun(OFUN_MAP_DRAW),NULL); 665 665 if (profiling()) 666 666 { … … 903 903 } else 904 904 { 905 push_onto_list(L ispNumber::Create(ly),rlist);906 push_onto_list(L ispNumber::Create(lx),rlist);905 push_onto_list(LNumber::Create(ly),rlist); 906 push_onto_list(LNumber::Create(lx),rlist); 907 907 push_onto_list(l_tile,rlist); 908 908 } 909 push_onto_list(L ispNumber::Create(ret),rlist);909 push_onto_list(LNumber::Create(ret),rlist); 910 910 911 911 return rlist; … … 1169 1169 prof1=new time_marker; 1170 1170 1171 eval_function((L ispSymbol *)figures[type]->get_fun(OFUN_CONSTRUCTOR),NULL);1171 eval_function((LSymbol *)figures[type]->get_fun(OFUN_CONSTRUCTOR),NULL); 1172 1172 if (profiling()) 1173 1173 { … … 1207 1207 if (figures[otype]->get_fun(OFUN_MOVER)) // is a lisp move function defined? 1208 1208 { 1209 L ispList *lcx, *lcy, *lb;1209 LList *lcx, *lcy, *lb; 1210 1210 1211 1211 game_object *o=current_object; … … 1213 1213 1214 1214 // make a list of the parameters, and call the lisp function 1215 lcx = L ispList::Create();1215 lcx = LList::Create(); 1216 1216 PtrRef r1(lcx); 1217 lcx->car = L ispNumber::Create(cx);1218 1219 lcy = L ispList::Create();1217 lcx->car = LNumber::Create(cx); 1218 1219 lcy = LList::Create(); 1220 1220 PtrRef r2(lcy); 1221 lcy->car = L ispNumber::Create(cy);1222 1223 lb = L ispList::Create();1221 lcy->car = LNumber::Create(cy); 1222 1223 lb = LList::Create(); 1224 1224 PtrRef r3(lb); 1225 lb->car = L ispNumber::Create(button);1225 lb->car = LNumber::Create(button); 1226 1226 1227 1227 lcx->cdr = lcy; … … 1234 1234 prof1=new time_marker; 1235 1235 1236 void *r=eval_function((L ispSymbol *)figures[otype]->get_fun(OFUN_MOVER),1236 void *r=eval_function((LSymbol *)figures[otype]->get_fun(OFUN_MOVER), 1237 1237 (void *)lcx); 1238 1238 if (profiling()) … … 1594 1594 prof1=new time_marker; 1595 1595 1596 eval_user_fun((L ispSymbol *)f,NULL);1596 eval_user_fun((LSymbol *)f,NULL); 1597 1597 1598 1598 if (profiling()) … … 1637 1637 prof1=new time_marker; 1638 1638 1639 eval_function((L ispSymbol *)figures[new_type]->get_fun(OFUN_CONSTRUCTOR),NULL);1639 eval_function((LSymbol *)figures[new_type]->get_fun(OFUN_CONSTRUCTOR),NULL); 1640 1640 if (profiling()) 1641 1641 { -
abuse/trunk/src/particle.cpp
r484 r492 61 61 int defun_pseq(void *args) 62 62 { 63 L ispSymbol *sym=(LispSymbol *)lcar(args);63 LSymbol *sym=(LSymbol *)lcar(args); 64 64 if (item_type(sym)!=L_SYMBOL) 65 65 { -
abuse/trunk/src/seq.cpp
r490 r492 40 40 total=1; 41 41 else 42 total = ((L ispList *)pict_list)->GetLength();42 total = ((LList *)pict_list)->GetLength(); 43 43 44 44 seq=(int *) malloc(sizeof(int)*total); -
abuse/trunk/src/statbar.cpp
r484 r492 41 41 char sbname[100]; 42 42 char iname[20]; 43 void *l_name = L ispSymbol::FindOrCreate("sbar_file");43 void *l_name = LSymbol::FindOrCreate("sbar_file"); 44 44 if (symbol_value(l_name)!=l_undefined) 45 45 strcpy(sbname,lstring_value(symbol_value(l_name))); -
abuse/trunk/src/view.cpp
r488 r492 334 334 /* if( DEFINEDP( symbol_function( l_get_local_input ) ) ) 335 335 { 336 void *ret = eval_function((L ispSymbol *)l_get_local_input, NULL );336 void *ret = eval_function((LSymbol *)l_get_local_input, NULL ); 337 337 sug_x = lnumber_value( CAR( ret ) ); 338 338 ret = CDR( ret ); … … 460 460 void *m=mark_heap(TMP_SPACE); 461 461 void *list=NULL; 462 push_onto_list(L ispString::Create(chat_buf),list);463 eval_function((L ispSymbol *)l_chat_input,list);462 push_onto_list(LString::Create(chat_buf),list); 463 eval_function((LSymbol *)l_chat_input,list); 464 464 restore_heap(m,TMP_SPACE); 465 465 … … 883 883 game_object *o=current_object; 884 884 current_object=focus; 885 eval_user_fun((L ispSymbol *)figures[focus->otype]->get_fun(OFUN_CONSTRUCTOR),NULL);885 eval_user_fun((LSymbol *)figures[focus->otype]->get_fun(OFUN_CONSTRUCTOR),NULL); 886 886 current_object=o; 887 887 }
Note: See TracChangeset
for help on using the changeset viewer.