X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/0c95b57d77efbe82bb0ade78df5d78d6d0f2a641..7352d0b203a308e0a3f0a5cb6a185b53367b3ab4:/libguile/read.c diff --git a/libguile/read.c b/libguile/read.c index 9fe22c784..7af3b735d 100644 --- a/libguile/read.c +++ b/libguile/read.c @@ -47,7 +47,6 @@ #include #include "_scm.h" #include "chars.h" -#include "genio.h" #include "eval.h" #include "unif.h" #include "keywords.h" @@ -55,8 +54,12 @@ #include "srcprop.h" #include "hashtab.h" #include "hash.h" +#include "ports.h" +#include "root.h" +#include "strings.h" +#include "vectors.h" -#include "scm_validate.h" +#include "validate.h" #include "read.h" @@ -70,11 +73,11 @@ scm_option scm_read_opts[] = { "Record positions of source code expressions." }, { SCM_OPTION_BOOLEAN, "case-insensitive", 0, "Convert symbols to lower case."}, - { SCM_OPTION_SCM, "keywords", SCM_BOOL_F, + { SCM_OPTION_SCM, "keywords", SCM_UNPACK (SCM_BOOL_F), "Style of keyword recognition: #f or 'prefix"} }; -GUILE_PROC (scm_read_options, "read-options-interface", 0, 1, 0, +SCM_DEFINE (scm_read_options, "read-options-interface", 0, 1, 0, (SCM setting), "") #define FUNC_NAME s_scm_read_options @@ -92,7 +95,7 @@ GUILE_PROC (scm_read_options, "read-options-interface", 0, 1, 0, /* An association list mapping extra hash characters to procedures. */ static SCM *scm_read_hash_procedures; -GUILE_PROC (scm_read, "read", 0, 1, 0, +SCM_DEFINE (scm_read, "read", 0, 1, 0, (SCM port), "") #define FUNC_NAME s_scm_read @@ -102,7 +105,7 @@ GUILE_PROC (scm_read, "read", 0, 1, 0, if (SCM_UNBNDP (port)) port = scm_cur_inp; - SCM_VALIDATE_OPINPORT(1,port); + SCM_VALIDATE_OPINPORT (1,port); c = scm_flush_ws (port, (char *) NULL); if (EOF == c) @@ -371,17 +374,17 @@ tryagain_no_flush_ws: c = scm_getc (port); j = scm_read_token (c, tok_buf, port, 0); if (j == 1) - return SCM_MAKICHR (c); + return SCM_MAKE_CHAR (c); if (c >= '0' && c < '8') { p = scm_istr2int (SCM_CHARS (*tok_buf), (long) j, 8); if (SCM_NFALSEP (p)) - return SCM_MAKICHR (SCM_INUM (p)); + return SCM_MAKE_CHAR (SCM_INUM (p)); } for (c = 0; c < scm_n_charnames; c++) if (scm_charnames[c] && (scm_casei_streq (scm_charnames[c], SCM_CHARS (*tok_buf)))) - return SCM_MAKICHR (scm_charnums[c]); + return SCM_MAKE_CHAR (scm_charnums[c]); scm_wta (SCM_UNDEFINED, "unknown # object: #\\", SCM_CHARS (*tok_buf)); /* #:SYMBOL is a syntax for keywords supported in all contexts. */ @@ -402,7 +405,7 @@ tryagain_no_flush_ws: SCM got; got = scm_apply (sharp, - SCM_MAKICHR (c), + SCM_MAKE_CHAR (c), scm_acons (port, SCM_EOL, SCM_EOL)); if (SCM_UNSPECIFIED == got) goto unkshrp; @@ -414,8 +417,8 @@ tryagain_no_flush_ws: } } unkshrp: - scm_misc_error (s_scm_read, "Unknown # object: %S", - scm_listify (SCM_MAKICHR (c), SCM_UNDEFINED)); + scm_misc_error (s_scm_read, "Unknown # object: ~S", + scm_listify (SCM_MAKE_CHAR (c), SCM_UNDEFINED)); } case '"': @@ -489,7 +492,7 @@ tryagain_no_flush_ws: goto tok; case ':': - if (SCM_KEYWORD_STYLE == scm_keyword_prefix) + if (SCM_PACK (SCM_KEYWORD_STYLE) == scm_keyword_prefix) { j = scm_read_token ('-', tok_buf, port, 0); p = scm_intern (SCM_CHARS (*tok_buf), j); @@ -701,7 +704,7 @@ exit: /* Manipulate the read-hash-procedures alist. This could be written in Scheme, but maybe it will also be used by C code during initialisation. */ -GUILE_PROC (scm_read_hash_extend, "read-hash-extend", 2, 0, 0, +SCM_DEFINE (scm_read_hash_extend, "read-hash-extend", 2, 0, 0, (SCM chr, SCM proc), "") #define FUNC_NAME s_scm_read_hash_extend @@ -709,7 +712,7 @@ GUILE_PROC (scm_read_hash_extend, "read-hash-extend", 2, 0, 0, SCM this; SCM prev; - SCM_VALIDATE_CHAR(1,chr); + SCM_VALIDATE_CHAR (1,chr); SCM_ASSERT (SCM_FALSEP (proc) || SCM_NIMP(proc), proc, SCM_ARG2, FUNC_NAME); @@ -768,7 +771,7 @@ scm_get_hash_procedure (int c) if (SCM_NULLP (rest)) return SCM_BOOL_F; - if (SCM_ICHR (SCM_CAAR (rest)) == c) + if (SCM_CHAR (SCM_CAAR (rest)) == c) return SCM_CDAR (rest); rest = SCM_CDR (rest); @@ -784,3 +787,9 @@ scm_init_read () scm_init_opts (scm_read_options, scm_read_opts, SCM_N_READ_OPTIONS); #include "read.x" } + +/* + Local Variables: + c-file-style: "gnu" + End: +*/