Much better debugging, but it still doesn't work
This commit is contained in:
parent
3d5c27cb10
commit
75abfb4050
23 changed files with 395 additions and 233 deletions
19
src/repl.c
19
src/repl.c
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "conspage.h"
|
||||
#include "consspaceobject.h"
|
||||
#include "dump.h"
|
||||
#include "intern.h"
|
||||
#include "lispops.h"
|
||||
#include "read.h"
|
||||
|
|
@ -32,19 +33,25 @@
|
|||
*/
|
||||
struct cons_pointer repl_read( struct cons_pointer stream_pointer ) {
|
||||
struct cons_pointer result = NIL;
|
||||
fputws( L"Entered repl_read\n", stderr );
|
||||
struct cons_pointer frame_pointer = make_empty_frame( NIL );
|
||||
fputws( L"repl_read: got stack_frame pointer\n", stderr );
|
||||
dump_object( stderr, frame_pointer );
|
||||
if ( !nilp( frame_pointer ) ) {
|
||||
inc_ref( frame_pointer );
|
||||
struct stack_frame *frame = get_stack_frame( frame_pointer );
|
||||
|
||||
if ( frame != NULL ) {
|
||||
|
||||
fputws( L"repl_read: about to set register\n", stderr );
|
||||
set_reg( frame, 0, stream_pointer );
|
||||
fputws( L"repl_read: about to read\n", stderr );
|
||||
struct cons_pointer result =
|
||||
lisp_read( frame, frame_pointer, oblist );
|
||||
}
|
||||
dec_ref( frame_pointer );
|
||||
}
|
||||
fputws( L"repl_read: returning\n", stderr );
|
||||
dump_object( stderr, result );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -53,6 +60,7 @@ struct cons_pointer repl_read( struct cons_pointer stream_pointer ) {
|
|||
* Dummy up a Lisp eval call with its own stack frame.
|
||||
*/
|
||||
struct cons_pointer repl_eval( struct cons_pointer input ) {
|
||||
fputws( L"Entered repl_eval\n", stderr );
|
||||
struct cons_pointer result = NIL;
|
||||
struct cons_pointer frame_pointer = make_empty_frame( NIL );
|
||||
if ( !nilp( frame_pointer ) ) {
|
||||
|
|
@ -66,6 +74,8 @@ struct cons_pointer repl_eval( struct cons_pointer input ) {
|
|||
|
||||
dec_ref( frame_pointer );
|
||||
}
|
||||
fputws( L"repl_eval: returning\n", stderr );
|
||||
dump_object( stderr, result );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -75,6 +85,7 @@ struct cons_pointer repl_eval( struct cons_pointer input ) {
|
|||
*/
|
||||
struct cons_pointer repl_print( struct cons_pointer stream_pointer,
|
||||
struct cons_pointer value ) {
|
||||
|
||||
struct cons_pointer result = NIL;
|
||||
struct cons_pointer frame_pointer = make_empty_frame( NIL );
|
||||
if ( !nilp( frame_pointer ) ) {
|
||||
|
|
@ -102,12 +113,12 @@ struct cons_pointer repl_print( struct cons_pointer stream_pointer,
|
|||
void
|
||||
repl( FILE * in_stream, FILE * out_stream, FILE * error_stream,
|
||||
bool show_prompt ) {
|
||||
fputws( L"Entered repl\n", stderr );
|
||||
struct cons_pointer input_stream = make_read_stream( in_stream );
|
||||
pointer2cell( input_stream ).count = MAXREFERENCE;
|
||||
inc_ref( input_stream );
|
||||
|
||||
struct cons_pointer output_stream = make_write_stream( out_stream );
|
||||
pointer2cell( output_stream ).count = MAXREFERENCE;
|
||||
|
||||
inc_ref( output_stream );
|
||||
while ( !feof( pointer2cell( input_stream ).payload.stream.stream ) ) {
|
||||
if ( show_prompt ) {
|
||||
fwprintf( out_stream, L"\n:: " );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue