mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
Remove read extension support from primitive-read
* libguile/read.c (scm_read_sharp_extension): Remove. (scm_read_sharp): Adapt.
This commit is contained in:
parent
f2a2baa042
commit
a574fdf964
1 changed files with 5 additions and 37 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue