mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
remove elisp-strings and elisp-vectors read options
* libguile/private-options.h (SCM_ELISP_VECTORS_P, SCM_ESCAPED_PARENS_P): * libguile/read.c (scm_read_opts): Remove unused elisp-vectors option, and the elisp-strings option (which allowed \( and \) escapes in strings). (scm_read_string): Remove the elisp-strings case. * doc/ref/api-options.texi (Reader options): Update, and update wording of the case-insensitive bit.
This commit is contained in:
parent
edca9d6ef4
commit
24259edb8b
3 changed files with 16 additions and 23 deletions
|
@ -495,18 +495,22 @@ Here is the list of reader options generated by typing
|
|||
values.
|
||||
|
||||
@smalllisp
|
||||
keywords #f Style of keyword recognition: #f, 'prefix or 'postfix
|
||||
case-insensitive no Convert symbols to lower case.
|
||||
positions yes Record positions of source code expressions.
|
||||
copy no Copy source code expressions.
|
||||
r6rs-hex-escapes no Use R6RS-style string hex escapes
|
||||
copy no Copy source code expressions.
|
||||
positions yes Record positions of source code expressions.
|
||||
case-insensitive no Convert symbols to lower case.
|
||||
keywords #f Style of keyword recognition: #f, 'prefix or 'postfix.
|
||||
r6rs-hex-escapes no Use R6RS variable-length character and string hex escapes.
|
||||
square-brackets yes Treat `[' and `]' as parentheses, for R6RS compatibility.
|
||||
@end smalllisp
|
||||
|
||||
Notice that while Standard Scheme is case insensitive, to ease
|
||||
translation of other Lisp dialects, notably Emacs Lisp, into Guile,
|
||||
Guile is case-sensitive by default.
|
||||
Historically, many Scheme implementations have been case-insensitive,
|
||||
treating @code{foo} and @code{FOO} as the same symbol. Guile has always
|
||||
defaulted to case-sensitivity, as allowed since the R4RS and codified in
|
||||
the R6RS.
|
||||
|
||||
To make Guile case insensitive, you can type
|
||||
Guile also has a reader option to fold all symbols to their lower
|
||||
case. To enable this option, perhaps for compatibility with older Scheme
|
||||
code, you can enter
|
||||
|
||||
@lisp
|
||||
(read-enable 'case-insensitive)
|
||||
|
|
|
@ -61,11 +61,9 @@ SCM_API scm_t_option scm_read_opts[];
|
|||
#define SCM_RECORD_POSITIONS_P scm_read_opts[1].val
|
||||
#define SCM_CASE_INSENSITIVE_P scm_read_opts[2].val
|
||||
#define SCM_KEYWORD_STYLE scm_read_opts[3].val
|
||||
#define SCM_ELISP_VECTORS_P scm_read_opts[4].val
|
||||
#define SCM_ESCAPED_PARENS_P scm_read_opts[5].val
|
||||
#define SCM_R6RS_ESCAPES_P scm_read_opts[6].val
|
||||
#define SCM_SQUARE_BRACKETS_P scm_read_opts[7].val
|
||||
#define SCM_R6RS_ESCAPES_P scm_read_opts[4].val
|
||||
#define SCM_SQUARE_BRACKETS_P scm_read_opts[5].val
|
||||
|
||||
#define SCM_N_READ_OPTIONS 8
|
||||
#define SCM_N_READ_OPTIONS 6
|
||||
|
||||
#endif /* PRIVATE_OPTIONS */
|
||||
|
|
|
@ -71,10 +71,6 @@ scm_t_option scm_read_opts[] = {
|
|||
"Convert symbols to lower case."},
|
||||
{ SCM_OPTION_SCM, "keywords", (unsigned long) SCM_BOOL_F,
|
||||
"Style of keyword recognition: #f, 'prefix or 'postfix."},
|
||||
{ SCM_OPTION_BOOLEAN, "elisp-vectors", 0,
|
||||
"Support Elisp vector syntax, namely `[...]'."},
|
||||
{ SCM_OPTION_BOOLEAN, "elisp-strings", 0,
|
||||
"Support `\\(' and `\\)' in strings."},
|
||||
{ SCM_OPTION_BOOLEAN, "r6rs-hex-escapes", 0,
|
||||
"Use R6RS variable-length character and string hex escapes."},
|
||||
{ SCM_OPTION_BOOLEAN, "square-brackets", 1,
|
||||
|
@ -515,11 +511,6 @@ scm_read_string (int chr, SCM port)
|
|||
case '"':
|
||||
case '\\':
|
||||
break;
|
||||
case '(':
|
||||
case ')':
|
||||
if (SCM_ESCAPED_PARENS_P)
|
||||
break;
|
||||
goto bad_escaped;
|
||||
case '\n':
|
||||
continue;
|
||||
case '0':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue