49 |
* This table must agree with the declarations in scm.h: {Immediate Symbols}. |
* This table must agree with the declarations in scm.h: {Immediate Symbols}. |
50 |
*/ |
*/ |
51 |
|
|
52 |
|
/* This table must agree with the list of flags in tags.h. */ |
53 |
|
static const char *iflagnames[] = |
54 |
|
{ |
55 |
|
"#f", |
56 |
|
"#t", |
57 |
|
"#<undefined>", |
58 |
|
"#<eof>", |
59 |
|
"()", |
60 |
|
"#<unspecified>", |
61 |
|
|
62 |
|
/* Unbound slot marker for GOOPS. For internal use in GOOPS only. */ |
63 |
|
"#<unbound>", |
64 |
|
|
65 |
|
/* Elisp nil value. This is its Scheme name; whenever it's printed in |
66 |
|
* Elisp, it should appear as the symbol `nil'. */ |
67 |
|
"#nil" |
68 |
|
}; |
69 |
|
|
70 |
|
/* This table must agree with the list of SCM_IM_ constants in tags.h */ |
71 |
char *scm_isymnames[] = |
char *scm_isymnames[] = |
72 |
{ |
{ |
73 |
/* This table must agree with the list of SCM_IM_ constants in tags.h */ |
/* Short instructions */ |
74 |
|
|
75 |
"#@and", |
"#@and", |
76 |
"#@begin", |
"#@begin", |
77 |
"#@case", |
"#@case", |
85 |
"#@or", |
"#@or", |
86 |
"#@quote", |
"#@quote", |
87 |
"#@set!", |
"#@set!", |
88 |
|
|
89 |
|
|
90 |
|
/* Long instructions */ |
91 |
|
|
92 |
"#@define", |
"#@define", |
93 |
"#@apply", |
"#@apply", |
94 |
"#@call-with-current-continuation", |
"#@call-with-current-continuation", |
|
|
|
|
/* user visible ISYMS */ |
|
|
/* other keywords */ |
|
|
/* Flags */ |
|
|
|
|
|
"#f", |
|
|
"#t", |
|
|
"#<undefined>", |
|
|
"#<eof>", |
|
|
"()", |
|
|
"#<unspecified>", |
|
95 |
"#@dispatch", |
"#@dispatch", |
96 |
"#@slot-ref", |
"#@slot-ref", |
97 |
"#@slot-set!", |
"#@slot-set!", |
|
|
|
|
/* Multi-language support */ |
|
|
|
|
|
"#@nil-cond", |
|
|
"#@bind", |
|
|
|
|
98 |
"#@delay", |
"#@delay", |
99 |
"#@future", |
"#@future", |
100 |
"#@call-with-values", |
"#@call-with-values", |
101 |
|
|
102 |
"#<unbound>", |
/* Multi-language support */ |
103 |
|
"#@nil-cond", |
104 |
/* Elisp nil value. This is its Scheme name; whenever it's printed |
"#@bind" |
|
in Elisp, it should appear as the symbol `nil'. */ |
|
|
|
|
|
"#nil" |
|
105 |
}; |
}; |
106 |
|
|
107 |
scm_t_option scm_print_opts[] = { |
scm_t_option scm_print_opts[] = { |
438 |
scm_putc (i, port); |
scm_putc (i, port); |
439 |
} |
} |
440 |
else if (SCM_IFLAGP (exp) |
else if (SCM_IFLAGP (exp) |
441 |
|
&& ((size_t) SCM_IFLAGNUM (exp) < (sizeof iflagnames / sizeof (char *)))) |
442 |
|
{ |
443 |
|
scm_puts (iflagnames [SCM_IFLAGNUM (exp)], port); |
444 |
|
} |
445 |
|
else if (SCM_ISYMP (exp) |
446 |
&& ((size_t) SCM_ISYMNUM (exp) < (sizeof scm_isymnames / sizeof (char *)))) |
&& ((size_t) SCM_ISYMNUM (exp) < (sizeof scm_isymnames / sizeof (char *)))) |
447 |
|
{ |
448 |
scm_puts (SCM_ISYMCHARS (exp), port); |
scm_puts (SCM_ISYMCHARS (exp), port); |
449 |
|
} |
450 |
else if (SCM_ILOCP (exp)) |
else if (SCM_ILOCP (exp)) |
451 |
{ |
{ |
452 |
scm_puts ("#@", port); |
scm_puts ("#@", port); |