mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +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. */
|
/* 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
|
/* The reader for the sharp `#' character. It basically dispatches reads
|
||||||
among the above token readers. */
|
among the above token readers. */
|
||||||
static SCM
|
static SCM
|
||||||
scm_read_sharp (scm_t_wchar chr, SCM port)
|
scm_read_sharp (scm_t_wchar chr, SCM port)
|
||||||
#define FUNC_NAME "scm_lreadr"
|
#define FUNC_NAME "scm_lreadr"
|
||||||
{
|
{
|
||||||
SCM result;
|
|
||||||
|
|
||||||
chr = scm_getc (port);
|
chr = scm_getc (port);
|
||||||
|
|
||||||
result = scm_read_sharp_extension (chr, port);
|
|
||||||
if (!scm_is_eq (result, SCM_UNSPECIFIED))
|
|
||||||
return result;
|
|
||||||
|
|
||||||
switch (chr)
|
switch (chr)
|
||||||
{
|
{
|
||||||
case '\\':
|
case '\\':
|
||||||
|
@ -1466,28 +1448,14 @@ scm_read_sharp (scm_t_wchar chr, SCM port)
|
||||||
return scm_read_syntax (chr, port);
|
return scm_read_syntax (chr, port);
|
||||||
case 'n':
|
case 'n':
|
||||||
return scm_read_nil (chr, port);
|
return scm_read_nil (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 '|':
|
case '|':
|
||||||
return scm_read_r6rs_block_comment (chr, port);
|
return scm_read_r6rs_block_comment (chr, port);
|
||||||
default:
|
default:
|
||||||
scm_i_input_error (FUNC_NAME, port, "Unknown # object: ~S",
|
scm_i_input_error (FUNC_NAME, port, "Unknown # object: ~S",
|
||||||
scm_list_1 (SCM_MAKE_CHAR (chr)));
|
scm_list_1 (SCM_MAKE_CHAR (chr)));
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
|
||||||
static SCM
|
static SCM
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue