remove symbol.h
This commit is contained in:
		
							parent
							
								
									665eda1d92
								
							
						
					
					
						commit
						3198e77ac1
					
				|  | @ -264,7 +264,6 @@ int pic_str_hash(pic_state *, struct pic_string *); | ||||||
| #include "picrin/macro.h" | #include "picrin/macro.h" | ||||||
| #include "picrin/pair.h" | #include "picrin/pair.h" | ||||||
| #include "picrin/port.h" | #include "picrin/port.h" | ||||||
| #include "picrin/symbol.h" |  | ||||||
| 
 | 
 | ||||||
| void *pic_default_allocf(void *, void *, size_t); | void *pic_default_allocf(void *, void *, size_t); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,6 +10,32 @@ extern "C" { | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | /* symbol & identifier */ | ||||||
|  | 
 | ||||||
|  | struct pic_id { | ||||||
|  |   union { | ||||||
|  |     struct pic_symbol { | ||||||
|  |       PIC_OBJECT_HEADER | ||||||
|  |       struct pic_string *str; | ||||||
|  |     } sym; | ||||||
|  |     struct { | ||||||
|  |       PIC_OBJECT_HEADER | ||||||
|  |       struct pic_id *id; | ||||||
|  |       struct pic_env *env; | ||||||
|  |     } id; | ||||||
|  |   } u; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #define pic_sym_ptr(v) ((pic_sym *)pic_obj_ptr(v)) | ||||||
|  | 
 | ||||||
|  | #define pic_id_p(pic, v) (pic_type(pic, v) == PIC_TYPE_ID || pic_type(pic, v) == PIC_TYPE_SYMBOL) | ||||||
|  | #define pic_id_ptr(v) ((pic_id *)pic_obj_ptr(v)) | ||||||
|  | 
 | ||||||
|  | pic_id *pic_make_identifier(pic_state *, pic_id *, struct pic_env *); | ||||||
|  | 
 | ||||||
|  | struct pic_string *pic_id_name(pic_state *, pic_id *); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| /* blob */ | /* blob */ | ||||||
| 
 | 
 | ||||||
| struct pic_blob { | struct pic_blob { | ||||||
|  |  | ||||||
|  | @ -1,39 +0,0 @@ | ||||||
| /**
 |  | ||||||
|  * See Copyright Notice in picrin.h |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #ifndef PICRIN_SYMBOL_H |  | ||||||
| #define PICRIN_SYMBOL_H |  | ||||||
| 
 |  | ||||||
| #if defined(__cplusplus) |  | ||||||
| extern "C" { |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| struct pic_id { |  | ||||||
|   union { |  | ||||||
|     struct pic_symbol { |  | ||||||
|       PIC_OBJECT_HEADER |  | ||||||
|       struct pic_string *str; |  | ||||||
|     } sym; |  | ||||||
|     struct { |  | ||||||
|       PIC_OBJECT_HEADER |  | ||||||
|       struct pic_id *id; |  | ||||||
|       struct pic_env *env; |  | ||||||
|     } id; |  | ||||||
|   } u; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define pic_sym_ptr(v) ((pic_sym *)pic_obj_ptr(v)) |  | ||||||
| 
 |  | ||||||
| #define pic_id_p(pic, v) (pic_type(pic, v) == PIC_TYPE_ID || pic_type(pic, v) == PIC_TYPE_SYMBOL) |  | ||||||
| #define pic_id_ptr(v) ((pic_id *)pic_obj_ptr(v)) |  | ||||||
| 
 |  | ||||||
| pic_id *pic_make_identifier(pic_state *, pic_id *, struct pic_env *); |  | ||||||
| 
 |  | ||||||
| const char *pic_identifier_name(pic_state *, pic_id *); |  | ||||||
| 
 |  | ||||||
| #if defined(__cplusplus) |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #endif |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "picrin.h" | #include "picrin.h" | ||||||
|  | #include "picrin/object.h" | ||||||
| 
 | 
 | ||||||
| KHASH_DEFINE(ltable, const char *, struct pic_lib, kh_str_hash_func, kh_str_cmp_func) | KHASH_DEFINE(ltable, const char *, struct pic_lib, kh_str_hash_func, kh_str_cmp_func) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ pic_add_identifier(pic_state *pic, pic_id *id, struct pic_env *env) | ||||||
|   pic_sym *uid; |   pic_sym *uid; | ||||||
|   struct pic_string *str; |   struct pic_string *str; | ||||||
| 
 | 
 | ||||||
|   name = pic_identifier_name(pic, id); |   name = pic_str(pic, pic_id_name(pic, id)); | ||||||
| 
 | 
 | ||||||
|   if (env->up == NULL && pic_sym_p(pic, pic_obj_value(id))) { /* toplevel & public */ |   if (env->up == NULL && pic_sym_p(pic, pic_obj_value(id))) { /* toplevel & public */ | ||||||
|     str = pic_strf_value(pic, "%s/%s", pic_str(pic, env->lib), name); |     str = pic_strf_value(pic, "%s/%s", pic_str(pic, env->lib), name); | ||||||
|  | @ -274,7 +274,7 @@ expand_defmacro(pic_state *pic, pic_value expr, struct pic_env *env) | ||||||
| 
 | 
 | ||||||
|   val = pic_call(pic, pic_compile(pic, pic_expand(pic, pic_list_ref(pic, expr, 2), env)), 0); |   val = pic_call(pic, pic_compile(pic, pic_expand(pic, pic_list_ref(pic, expr, 2), env)), 0); | ||||||
|   if (! pic_proc_p(pic, val)) { |   if (! pic_proc_p(pic, val)) { | ||||||
|     pic_errorf(pic, "macro definition \"~s\" evaluates to non-procedure object", pic_identifier_name(pic, id)); |     pic_errorf(pic, "macro definition \"%s\" evaluates to non-procedure object", pic_str(pic, pic_id_name(pic, id))); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   define_macro(pic, uid, pic_proc_ptr(val)); |   define_macro(pic, uid, pic_proc_ptr(val)); | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "picrin.h" | #include "picrin.h" | ||||||
|  | #include "picrin/object.h" | ||||||
| 
 | 
 | ||||||
| #define kh_pic_str_hash(a) (pic_str_hash(pic, (a))) | #define kh_pic_str_hash(a) (pic_str_hash(pic, (a))) | ||||||
| #define kh_pic_str_cmp(a, b) (pic_str_cmp(pic, (a), (b)) == 0) | #define kh_pic_str_cmp(a, b) (pic_str_cmp(pic, (a), (b)) == 0) | ||||||
|  | @ -50,14 +51,14 @@ pic_sym_name(pic_state PIC_UNUSED(*pic), pic_sym *sym) | ||||||
|   return sym->str; |   return sym->str; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char * | struct pic_string * | ||||||
| pic_identifier_name(pic_state *pic, pic_id *id) | pic_id_name(pic_state *pic, pic_id *id) | ||||||
| { | { | ||||||
|   while (! pic_sym_p(pic, pic_obj_value(id))) { |   while (! pic_sym_p(pic, pic_obj_value(id))) { | ||||||
|     id = id->u.id.id; |     id = id->u.id.id; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   return pic_str(pic, pic_sym_name(pic, (pic_sym *)id)); |   return pic_sym_name(pic, (pic_sym *)id); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static pic_value | static pic_value | ||||||
|  |  | ||||||
|  | @ -288,7 +288,7 @@ write_core(struct writer_control *p, pic_value obj) | ||||||
|     xfprintf(pic, file, "#f"); |     xfprintf(pic, file, "#f"); | ||||||
|     break; |     break; | ||||||
|   case PIC_TYPE_ID: |   case PIC_TYPE_ID: | ||||||
|     xfprintf(pic, file, "#<identifier %s>", pic_identifier_name(pic, pic_id_ptr(obj))); |     xfprintf(pic, file, "#<identifier %s>", pic_str(pic, pic_id_name(pic, pic_id_ptr(obj)))); | ||||||
|     break; |     break; | ||||||
|   case PIC_TYPE_EOF: |   case PIC_TYPE_EOF: | ||||||
|     xfprintf(pic, file, "#.(eof-object)"); |     xfprintf(pic, file, "#.(eof-object)"); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki