/[guile]/guile/guile-core/libguile/eval.c
ViewVC logotype

Diff of /guile/guile-core/libguile/eval.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.311 by dirk, Fri May 30 14:36:56 2003 UTC revision 1.312 by dirk, Sat May 31 07:38:04 2003 UTC
# Line 2868  evapply: /* inputs: x, proc */ Line 2868  evapply: /* inputs: x, proc */
2868              arg1 = SCM_EOL;              arg1 = SCM_EOL;
2869              goto type_dispatch;              goto type_dispatch;
2870            }            }
2871          else if (!SCM_I_OPERATORP (proc))          else if (SCM_I_OPERATORP (proc))
           goto badfun;  
         else  
2872            {            {
2873              arg1 = proc;              arg1 = proc;
2874              proc = (SCM_I_ENTITYP (proc)              proc = (SCM_I_ENTITYP (proc)
# Line 2882  evapply: /* inputs: x, proc */ Line 2880  evapply: /* inputs: x, proc */
2880  #endif  #endif
2881              goto evap1;              goto evap1;
2882            }            }
2883            else
2884              goto badfun;
2885        case scm_tc7_subr_1:        case scm_tc7_subr_1:
2886        case scm_tc7_subr_2:        case scm_tc7_subr_2:
2887        case scm_tc7_subr_2o:        case scm_tc7_subr_2o:
# Line 3011  evapply: /* inputs: x, proc */ Line 3011  evapply: /* inputs: x, proc */
3011  #endif  #endif
3012                  goto type_dispatch;                  goto type_dispatch;
3013                }                }
3014              else if (!SCM_I_OPERATORP (proc))              else if (SCM_I_OPERATORP (proc))
               goto badfun;  
             else  
3015                {                {
3016                  arg2 = arg1;                  arg2 = arg1;
3017                  arg1 = proc;                  arg1 = proc;
# Line 3026  evapply: /* inputs: x, proc */ Line 3024  evapply: /* inputs: x, proc */
3024  #endif  #endif
3025                  goto evap2;                  goto evap2;
3026                }                }
3027                else
3028                  goto badfun;
3029            case scm_tc7_subr_2:            case scm_tc7_subr_2:
3030            case scm_tc7_subr_0:            case scm_tc7_subr_0:
3031            case scm_tc7_subr_3:            case scm_tc7_subr_3:
# Line 3095  evapply: /* inputs: x, proc */ Line 3095  evapply: /* inputs: x, proc */
3095  #endif  #endif
3096                  goto type_dispatch;                  goto type_dispatch;
3097                }                }
3098              else if (!SCM_I_OPERATORP (proc))              else if (SCM_I_OPERATORP (proc))
               goto badfun;  
             else  
3099                {                {
3100                operatorn:                operatorn:
3101  #ifdef DEVAL  #ifdef DEVAL
# Line 3118  evapply: /* inputs: x, proc */ Line 3116  evapply: /* inputs: x, proc */
3116                                     SCM_EOL));                                     SCM_EOL));
3117  #endif  #endif
3118                }                }
3119                else
3120                  goto badfun;
3121            case scm_tc7_subr_0:            case scm_tc7_subr_0:
3122            case scm_tc7_cxr:            case scm_tc7_cxr:
3123            case scm_tc7_subr_1o:            case scm_tc7_subr_1o:
# Line 3309  evapply: /* inputs: x, proc */ Line 3309  evapply: /* inputs: x, proc */
3309                x = SCM_ENTITY_PROCEDURE (proc);                x = SCM_ENTITY_PROCEDURE (proc);
3310                goto type_dispatch;                goto type_dispatch;
3311              }              }
3312            else if (!SCM_I_OPERATORP (proc))            else if (SCM_I_OPERATORP (proc))
             goto badfun;  
           else  
3313              goto operatorn;              goto operatorn;
3314              else
3315                goto badfun;
3316          case scm_tc7_subr_2:          case scm_tc7_subr_2:
3317          case scm_tc7_subr_1o:          case scm_tc7_subr_1o:
3318          case scm_tc7_subr_2o:          case scm_tc7_subr_2o:
# Line 3762  tail: Line 3762  tail:
3762  #endif  #endif
3763            RETURN (scm_apply_generic (proc, args));            RETURN (scm_apply_generic (proc, args));
3764          }          }
3765        else if (!SCM_I_OPERATORP (proc))        else if (SCM_I_OPERATORP (proc))
         goto badproc;  
       else  
3766          {          {
3767            /* operator */            /* operator */
3768  #ifdef DEVAL  #ifdef DEVAL
# Line 3785  tail: Line 3783  tail:
3783            else            else
3784              goto badproc;              goto badproc;
3785          }          }
3786          else
3787            goto badproc;
3788      default:      default:
3789      badproc:      badproc:
3790        scm_wrong_type_arg ("apply", SCM_ARG1, proc);        scm_wrong_type_arg ("apply", SCM_ARG1, proc);
# Line 3895  scm_trampoline_0 (SCM proc) Line 3895  scm_trampoline_0 (SCM proc)
3895      case scm_tcs_struct:      case scm_tcs_struct:
3896        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)
3897          return scm_call_generic_0;          return scm_call_generic_0;
3898        else if (!SCM_I_OPERATORP (proc))        else if (SCM_I_OPERATORP (proc))
3899          return NULL;          return scm_call_0;
3900        return scm_call_0;        return NULL;
3901      case scm_tc7_smob:      case scm_tc7_smob:
3902        if (SCM_SMOB_APPLICABLE_P (proc))        if (SCM_SMOB_APPLICABLE_P (proc))
3903          return SCM_SMOB_DESCRIPTOR (proc).apply_0;          return SCM_SMOB_DESCRIPTOR (proc).apply_0;
# Line 4007  scm_trampoline_1 (SCM proc) Line 4007  scm_trampoline_1 (SCM proc)
4007      case scm_tcs_struct:      case scm_tcs_struct:
4008        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)
4009          return scm_call_generic_1;          return scm_call_generic_1;
4010        else if (!SCM_I_OPERATORP (proc))        else if (SCM_I_OPERATORP (proc))
4011          return NULL;          return scm_call_1;
4012        return scm_call_1;        return NULL;
4013      case scm_tc7_smob:      case scm_tc7_smob:
4014        if (SCM_SMOB_APPLICABLE_P (proc))        if (SCM_SMOB_APPLICABLE_P (proc))
4015          return SCM_SMOB_DESCRIPTOR (proc).apply_1;          return SCM_SMOB_DESCRIPTOR (proc).apply_1;
# Line 4086  scm_trampoline_2 (SCM proc) Line 4086  scm_trampoline_2 (SCM proc)
4086      case scm_tcs_struct:      case scm_tcs_struct:
4087        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)        if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)
4088          return scm_call_generic_2;          return scm_call_generic_2;
4089        else if (!SCM_I_OPERATORP (proc))        else if (SCM_I_OPERATORP (proc))
4090          return NULL;          return scm_call_2;
4091        return scm_call_2;        return NULL;
4092      case scm_tc7_smob:      case scm_tc7_smob:
4093        if (SCM_SMOB_APPLICABLE_P (proc))        if (SCM_SMOB_APPLICABLE_P (proc))
4094          return SCM_SMOB_DESCRIPTOR (proc).apply_2;          return SCM_SMOB_DESCRIPTOR (proc).apply_2;

Legend:
Removed from v.1.311  
changed lines
  Added in v.1.312

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26