[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 04/04: Remove read extension support from primitive-read
From: |
Andy Wingo |
Subject: |
[Guile-commits] 04/04: Remove read extension support from primitive-read |
Date: |
Wed, 3 Mar 2021 16:33:18 -0500 (EST) |
wingo pushed a commit to branch master
in repository guile.
commit a574fdf964ab2e82e5311911459c6a6a6641c5db
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Wed Mar 3 22:30:49 2021 +0100
Remove read extension support from primitive-read
* libguile/read.c (scm_read_sharp_extension): Remove.
(scm_read_sharp): Adapt.
---
libguile/read.c | 42 +++++-------------------------------------
1 file changed, 5 insertions(+), 37 deletions(-)
diff --git a/libguile/read.c b/libguile/read.c
index 62a22f8..3030b27 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -1388,32 +1388,14 @@ scm_read_extended_symbol (scm_t_wchar chr, SCM port)
/* Top-level token readers, i.e., dispatchers. */
-static SCM
-scm_read_sharp_extension (int chr, SCM port)
-{
- SCM proc;
-
- proc = scm_get_hash_procedure (chr);
- if (scm_is_true (scm_procedure_p (proc)))
- return scm_call_2 (proc, SCM_MAKE_CHAR (chr), port);
-
- return SCM_UNSPECIFIED;
-}
-
/* The reader for the sharp `#' character. It basically dispatches reads
among the above token readers. */
static SCM
scm_read_sharp (scm_t_wchar chr, SCM port)
#define FUNC_NAME "scm_lreadr"
{
- SCM result;
-
chr = scm_getc (port);
- result = scm_read_sharp_extension (chr, port);
- if (!scm_is_eq (result, SCM_UNSPECIFIED))
- return result;
-
switch (chr)
{
case '\\':
@@ -1466,27 +1448,13 @@ scm_read_sharp (scm_t_wchar chr, SCM port)
return scm_read_syntax (chr, port);
case 'n':
return scm_read_nil (chr, port);
+ case '|':
+ return scm_read_r6rs_block_comment (chr, port);
default:
- result = scm_read_sharp_extension (chr, port);
- if (scm_is_eq (result, SCM_UNSPECIFIED))
- {
- /* To remain compatible with 1.8 and earlier, the following
- characters have lower precedence than `read-hash-extend'
- characters. */
- switch (chr)
- {
- case '|':
- return scm_read_r6rs_block_comment (chr, port);
- default:
- scm_i_input_error (FUNC_NAME, port, "Unknown # object: ~S",
- scm_list_1 (SCM_MAKE_CHAR (chr)));
- }
- }
- else
- return result;
+ scm_i_input_error (FUNC_NAME, port, "Unknown # object: ~S",
+ scm_list_1 (SCM_MAKE_CHAR (chr)));
+ return SCM_UNSPECIFIED;
}
-
- return SCM_UNSPECIFIED;
}
#undef FUNC_NAME