core: Add cstring_to_symbol.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 14 Oct 2018 05:38:51 +0000 (07:38 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 14 Oct 2018 05:38:51 +0000 (07:38 +0200)
* src/mes.c (make_symbol): Rename from lookup_symbol_.  Update
callers.
(cstring_to_symbol): New function.
* src/reader.c (reader_read_identifier_or_number): Use it.

build-aux/mes-snarf.scm
mes/module/mes/type-0.mes
scaffold/mini-mes.c
src/mes.c
src/reader.c

index 910ccdee8cacd2aaf113dfac9588b6f61ef5c15c..1bc4ffc6f80f8bea5e6b35d282a7238005af588a 100755 (executable)
@@ -146,8 +146,8 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
        (format #f "g_cells[cell_~a].string = MAKE_STRING (scm_~a.string);\n" (function.name f) (function.name f))
        (format #f "g_cells[cell_~a].car = MAKE_STRING (scm_~a.car);\n" (function.name f) (function.name f)))
    (if %gcc?
-       (format #f "a = acons (lookup_symbol_ (scm_~a.string), ~a, a);\n\n" (function.name f) (function-cell-name f))
-       (format #f "a = acons (lookup_symbol_ (scm_~a.car), ~a, a);\n\n" (function.name f) (function-cell-name f)))))
+       (format #f "a = acons (make_symbol (scm_~a.string), ~a, a);\n\n" (function.name f) (function-cell-name f))
+       (format #f "a = acons (make_symbol (scm_~a.car), ~a, a);\n\n" (function.name f) (function-cell-name f)))))
 
 (define (disjoin . predicates)
   (lambda (. arguments)
index 5c710215a1a0f492391cd2afcbe82234a82359fd..a7b1059cc9c8ce5507ef882b34d2f29f6754d4fa 100644 (file)
 (define (symbol->keyword s)
   (core:make-cell <cell:keyword> (symbol->list s) 0))
 
-(define (list->symbol lst)
-  (core:lookup-symbol lst))
-
 (define (symbol->list s)
   (core:car s))
 
index f49a3607051922c4cc1a6e665d687e8d943c4e9f..7304a8900743c82bed80256ebede259b825b3081 100644 (file)
@@ -332,7 +332,7 @@ list_of_char_equal_p (SCM a, SCM b) ///((internal))
 }
 
 SCM
-lookup_symbol_ (SCM s)
+list_to_symbol (SCM s)
 {
   SCM x = g_symbols;
   while (x) {
index 1d0fbe76969a778a46ae55e174c22bb94045ce73..11b021377d35e39e6f674f0865f867f3d87be8aa 100644 (file)
--- a/src/mes.c
+++ b/src/mes.c
@@ -415,7 +415,7 @@ list_of_char_equal_p (SCM a, SCM b) ///((internal))
 }
 
 SCM
-lookup_symbol_ (SCM s)
+list_to_symbol (SCM s)
 {
   SCM x = g_symbols;
   while (x)
@@ -585,6 +585,12 @@ cstring_to_list (char const* s)
   return string_to_list (s, strlen (s));
 }
 
+SCM
+cstring_to_symbol (char const *s)
+{
+  return list_to_symbol (cstring_to_list (s));
+}
+
 // \f extra lib
 SCM
 assert_defined (SCM x, SCM e) ///((internal))
@@ -2147,50 +2153,50 @@ g_cells[cell_getenv_] = scm_getenv_;
 //mes.environment
 scm_cons.string = cstring_to_list (fun_cons.name);
 g_cells[cell_cons].string = MAKE_STRING (scm_cons.string);
-a = acons (lookup_symbol_ (scm_cons.string), cell_cons, a);
+a = acons (list_to_symbol (scm_cons.string), cell_cons, a);
 
 scm_car.string = cstring_to_list (fun_car.name);
 g_cells[cell_car].string = MAKE_STRING (scm_car.string);
-a = acons (lookup_symbol_ (scm_car.string), cell_car, a);
+a = acons (list_to_symbol (scm_car.string), cell_car, a);
 
 scm_cdr.string = cstring_to_list (fun_cdr.name);
 g_cells[cell_cdr].string = MAKE_STRING (scm_cdr.string);
-a = acons (lookup_symbol_ (scm_cdr.string), cell_cdr, a);
+a = acons (list_to_symbol (scm_cdr.string), cell_cdr, a);
 
 scm_list.string = cstring_to_list (fun_list.name);
 g_cells[cell_list].string = MAKE_STRING (scm_list.string);
-a = acons (lookup_symbol_ (scm_list.string), cell_list, a);
+a = acons (list_to_symbol (scm_list.string), cell_list, a);
 
 scm_null_p.string = cstring_to_list (fun_null_p.name);
 g_cells[cell_null_p].string = MAKE_STRING (scm_null_p.string);
-a = acons (lookup_symbol_ (scm_null_p.string), cell_null_p, a);
+a = acons (list_to_symbol (scm_null_p.string), cell_null_p, a);
 
 scm_eq_p.string = cstring_to_list (fun_eq_p.name);
 g_cells[cell_eq_p].string = MAKE_STRING (scm_eq_p.string);
-a = acons (lookup_symbol_ (scm_eq_p.string), cell_eq_p, a);
+a = acons (list_to_symbol (scm_eq_p.string), cell_eq_p, a);
 
 //math.environment
  scm_minus.string = cstring_to_list (fun_minus.name);
 g_cells[cell_minus].string = MAKE_STRING (scm_minus.string);
-a = acons (lookup_symbol_ (scm_minus.string), cell_minus, a);
+a = acons (list_to_symbol (scm_minus.string), cell_minus, a);
 
 scm_plus.string = cstring_to_list (fun_plus.name);
 g_cells[cell_plus].string = MAKE_STRING (scm_plus.string);
-a = acons (lookup_symbol_ (scm_plus.string), cell_plus, a);
+a = acons (list_to_symbol (scm_plus.string), cell_plus, a);
 
 //lib.environment
 scm_display_.string = cstring_to_list (fun_display_.name);
 g_cells[cell_display_].string = MAKE_STRING (scm_display_.string);
-a = acons (lookup_symbol_ (scm_display_.string), cell_display_, a);
+a = acons (list_to_symbol (scm_display_.string), cell_display_, a);
 
 scm_display_error_.string = cstring_to_list (fun_display_error_.name);
 g_cells[cell_display_error_].string = MAKE_STRING (scm_display_error_.string);
-a = acons (lookup_symbol_ (scm_display_error_.string), cell_display_error_, a);
+a = acons (list_to_symbol (scm_display_error_.string), cell_display_error_, a);
 
 //posix.environment
 scm_getenv_.string = cstring_to_list (fun_getenv_.name);
 g_cells[cell_getenv_].string = MAKE_STRING (scm_getenv_.string);
-a = acons (lookup_symbol_ (scm_getenv_.string), cell_getenv_, a);
+a = acons (list_to_symbol (scm_getenv_.string), cell_getenv_, a);
 
 #if !POSIX
  #undef function
index 0a3c985e71aa34ac6b089fee041b073bcce6f6ed..ef699a7d836ff7ac6330e4eb01ae0ee9b2b256e1 100644 (file)
@@ -103,7 +103,7 @@ reader_read_identifier_or_number (int c)
     }
   unreadchar (c);
   buf[i] = 0;
-  return lookup_symbol_ (cstring_to_list (buf));
+  return cstring_to_symbol (buf);
 }
 
 SCM