Things that are self-evaluating can self-evaluate.

This commit is contained in:
Simon Brooke 2026-04-13 14:52:05 +01:00
parent f5f8e38b91
commit b5a2e09763

View file

@ -40,24 +40,24 @@ struct pso_pointer lisp_eval( struct pso_pointer frame_pointer,
struct pso4 *frame = pointer_to_pso4( frame_pointer );
struct pso_pointer result = frame->payload.stack_frame.arg[0];
// switch ( get_tag_value( result)) {
switch ( get_tag_value( result)) {
// case CONSTV:
// result = eval_cons( frame, frame_pointer, env);
// break;
// case KEYTV:
// case SYMBOLTV:
// result = eval_symbol( frame, frame_pointer, env);
// break;
// case LAMBDATV:
// result = eval_lambda( frame, frame_pointer, env);
// break;
// case NLAMBDATV:
// result = eval_nlambda( frame, frame_pointer, env);
// break;
// case SPECIALTV:
// result = eval_special( frame, frame_pointer, env);
// break;
// }
case SYMBOLTV:
result = eval_symbol( frame_pointer, env);
break;
case LAMBDATV:
result = eval_lambda( frame_pointer, env);
break;
case NLAMBDATV:
result = eval_nlambda( frame_pointer, env);
break;
case SPECIALTV:
result = eval_special( frame, frame_pointer, env);
break;
}
if ( exceptionp( result ) ) {
struct pso3 *x =