Ran a 'make format', because !'m close to being able to merge this feature.
This commit is contained in:
parent
5e64a33965
commit
80049f2272
52 changed files with 936 additions and 843 deletions
|
|
@ -25,34 +25,43 @@
|
|||
#include "payloads/cons.h"
|
||||
|
||||
struct pso_pointer lisp_mapcar( struct pso_pointer frame_pointer ) {
|
||||
struct pso_pointer result = nil;
|
||||
struct pso4* frame = pointer_to_pso4(frame_pointer);
|
||||
struct pso_pointer result = nil;
|
||||
struct pso4 *frame = pointer_to_pso4( frame_pointer );
|
||||
debug_print( L"Mapcar: ", DEBUG_EVAL, 0 );
|
||||
debug_dump_object( frame_pointer, DEBUG_EVAL, 0 );
|
||||
int i = 0;
|
||||
|
||||
for ( struct pso_pointer c = frame->payload.stack_frame.arg[1]; c_truep( c );
|
||||
c = c_cdr( c ) ) {
|
||||
struct pso_pointer expr =
|
||||
push_local( frame_pointer,
|
||||
make_cons( frame_pointer, frame->payload.stack_frame.arg[0],
|
||||
make_cons( frame_pointer, c_car( c ), nil ) ) );
|
||||
for ( struct pso_pointer c = frame->payload.stack_frame.arg[1];
|
||||
c_truep( c ); c = c_cdr( c ) ) {
|
||||
struct pso_pointer expr = push_local( frame_pointer,
|
||||
make_cons( frame_pointer,
|
||||
frame->payload.
|
||||
stack_frame.arg[0],
|
||||
make_cons
|
||||
( frame_pointer,
|
||||
c_car( c ),
|
||||
nil ) ) );
|
||||
|
||||
debug_printf( DEBUG_EVAL, 0, L"Mapcar %d, evaluating ", i );
|
||||
debug_print_object( expr, DEBUG_EVAL, 0 );
|
||||
debug_println( DEBUG_EVAL);
|
||||
debug_println( DEBUG_EVAL );
|
||||
|
||||
struct pso_pointer r = lisp_eval( push_local( frame_pointer, make_frame(1, frame_pointer, expr)));
|
||||
struct pso_pointer r =
|
||||
lisp_eval( push_local
|
||||
( frame_pointer,
|
||||
make_frame( 1, frame_pointer, expr ) ) );
|
||||
|
||||
if ( exceptionp( r ) ) {
|
||||
result = r;
|
||||
break;
|
||||
} else {
|
||||
result = push_local( frame_pointer, make_cons( frame_pointer, r, result ));
|
||||
result =
|
||||
push_local( frame_pointer,
|
||||
make_cons( frame_pointer, r, result ) );
|
||||
}
|
||||
debug_printf( DEBUG_EVAL, 0, L"Mapcar %d, result is ", i++ );
|
||||
debug_print_object( result, DEBUG_EVAL, 0 );
|
||||
debug_println( DEBUG_EVAL);
|
||||
debug_println( DEBUG_EVAL );
|
||||
}
|
||||
|
||||
result = consp( result ) ? c_reverse( frame_pointer, result ) : result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue