… | |
… | |
79 | |
79 | |
80 | #define BACKQUOTE '`' |
80 | #define BACKQUOTE '`' |
81 | #define WHITESPACE " \t\r\n\v\f" |
81 | #define WHITESPACE " \t\r\n\v\f" |
82 | #define DELIMITERS "()\";" WHITESPACE |
82 | #define DELIMITERS "()\";" WHITESPACE |
83 | |
83 | |
84 | #define NIL (&SCHEME_V->xNIL) //TODO: make this 0? |
84 | #define NIL (&SCHEME_V->xNIL) |
85 | #define S_T (&SCHEME_V->xT) //TODO: magic ptr value? |
85 | #define S_T (&SCHEME_V->xT) |
86 | #define S_F (&SCHEME_V->xF) //TODO: magic ptr value? |
86 | #define S_F (&SCHEME_V->xF) |
87 | #define S_SINK (&SCHEME_V->xsink) |
87 | #define S_SINK (&SCHEME_V->xsink) |
88 | #define S_EOF (&SCHEME_V->xEOF_OBJ) |
88 | #define S_EOF (&SCHEME_V->xEOF_OBJ) |
89 | |
89 | |
90 | #if !USE_MULTIPLICITY |
90 | #if !USE_MULTIPLICITY |
91 | static scheme sc; |
91 | static scheme sc; |
… | |
… | |
5673 | scheme_init (SCHEME_P) |
5673 | scheme_init (SCHEME_P) |
5674 | { |
5674 | { |
5675 | int i, n = sizeof (dispatch_table) / sizeof (dispatch_table[0]); |
5675 | int i, n = sizeof (dispatch_table) / sizeof (dispatch_table[0]); |
5676 | pointer x; |
5676 | pointer x; |
5677 | |
5677 | |
|
|
5678 | /* this memset is not strictly correct, as we assume (intcache) |
|
|
5679 | * that memset 0 will also set pointers to 0, but memset does |
|
|
5680 | * of course not guarantee that. screw such systems. |
|
|
5681 | */ |
5678 | memset (SCHEME_V, 0, sizeof (*SCHEME_V));//TODO !iso c |
5682 | memset (SCHEME_V, 0, sizeof (*SCHEME_V)); |
5679 | |
5683 | |
5680 | num_set_fixnum (num_zero, 1); |
5684 | num_set_fixnum (num_zero, 1); |
5681 | num_set_ivalue (num_zero, 0); |
5685 | num_set_ivalue (num_zero, 0); |
5682 | num_set_fixnum (num_one, 1); |
5686 | num_set_fixnum (num_one, 1); |
5683 | num_set_ivalue (num_one, 1); |
5687 | num_set_ivalue (num_one, 1); |