mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 17:20:29 +02:00
read: Support R7RS |...| symbol notation.
* libguile/private-options.h (SCM_R7RS_SYMBOLS_P): New macro. (SCM_N_READ_OPTIONS): Increment. * libguile/read.c (scm_read_opts): Add entry for 'r7rs-symbols'. (t_read_opts): Add field for 'r7rs_symbols_p'. (scm_read_string_like_syntax): New function based on earlier 'scm_read_string' that handles either string literals or R7RS quoted symbols (delimited by vertical bars), depending on the value of 'chr'. (scm_read_string): Reimplement based on 'scm_read_string_like_syntax'. (scm_read_r7rs_symbol): New static function. * doc/ref/api-data.texi (Symbol Read Syntax): Briefly describe the R7RS symbol syntax, mention the 'r7rs-symbols' read option, and give some examples. * doc/ref/api-evaluation.texi (Scheme Read): Mention the 'r7rs-symbols' read option. * test-suite/tests/reader.test ("reading"): Add test.
This commit is contained in:
parent
b306fae0ab
commit
dc59631d30
5 changed files with 58 additions and 10 deletions
|
@ -4,7 +4,7 @@
|
|||
* We put this in a private header, since layout of data structures
|
||||
* is an implementation detail that we want to hide.
|
||||
*
|
||||
* Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2007, 2009, 2010, 2011, 2014 Free Software Foundation, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
|
@ -68,7 +68,8 @@ SCM_INTERNAL scm_t_option scm_read_opts[];
|
|||
#define SCM_SQUARE_BRACKETS_P scm_read_opts[5].val
|
||||
#define SCM_HUNGRY_EOL_ESCAPES_P scm_read_opts[6].val
|
||||
#define SCM_CURLY_INFIX_P scm_read_opts[7].val
|
||||
#define SCM_R7RS_SYMBOLS_P scm_read_opts[8].val
|
||||
|
||||
#define SCM_N_READ_OPTIONS 8
|
||||
#define SCM_N_READ_OPTIONS 9
|
||||
|
||||
#endif /* PRIVATE_OPTIONS */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue