public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/7507: gcc segv
@ 2002-08-06 7:06 Han-Wen Nienhuys
0 siblings, 0 replies; only message in thread
From: Han-Wen Nienhuys @ 2002-08-06 7:06 UTC (permalink / raw)
To: gcc-gnats
>Number: 7507
>Category: c
>Synopsis: gcc segv
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Tue Aug 06 07:06:04 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Han-Wen Nienhuys
>Release: 3.1.1
>Organization:
CS Dept. Utrecht University -- The Netherlands
>Environment:
System: Linux meddo.cs.uu.nl 2.4.18 #1 di feb 26 12:12:46 CET 2002 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.1.1/configure --prefix=/users/hanwen/usr/pkg/gcc3 --program-suffix=3 --with-cpu=i686 --enable-languages=java,c++,c
>Description:
(gdb) r -O2 gccsegv.c
eval.c: In function `scm_ceval':
eval.c:3314: internal error: Segmentatie fout
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
# 1 "eval.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "eval.c"
# 58 "eval.c"
# 1 "../libguile/scmconfig.h" 1
# 59 "eval.c" 2
# 77 "eval.c"
# 1 "../libguile/_scm.h" 1
# 49 "../libguile/_scm.h"
# 1 "../libguile/__scm.h" 1
# 157 "../libguile/__scm.h"
# 1 "../libguile/scmconfig.h" 1
# 158 "../libguile/__scm.h" 2
# 304 "../libguile/__scm.h"
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 1 3
# 11 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/syslimits.h" 1 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 1 3
# 132 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 3
# 1 "/usr/include/limits.h" 1 3
# 26 "/usr/include/limits.h" 3
# 1 "/usr/include/features.h" 1 3
# 291 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 292 "/usr/include/features.h" 2 3
# 320 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 321 "/usr/include/features.h" 2 3
# 27 "/usr/include/limits.h" 2 3
# 144 "/usr/include/limits.h" 3
# 1 "/usr/include/bits/posix1_lim.h" 1 3
# 126 "/usr/include/bits/posix1_lim.h" 3
# 1 "/usr/include/bits/local_lim.h" 1 3
# 36 "/usr/include/bits/local_lim.h" 3
# 1 "/usr/include/linux/limits.h" 1 3
# 37 "/usr/include/bits/local_lim.h" 2 3
# 127 "/usr/include/bits/posix1_lim.h" 2 3
# 145 "/usr/include/limits.h" 2 3
# 1 "/usr/include/bits/posix2_lim.h" 1 3
# 149 "/usr/include/limits.h" 2 3
# 133 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 2 3
# 8 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/syslimits.h" 2 3
# 12 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/limits.h" 2 3
# 305 "../libguile/__scm.h" 2
# 328 "../libguile/__scm.h"
# 1 "/usr/include/stdlib.h" 1 3
# 33 "/usr/include/stdlib.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 201 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 3
typedef unsigned int size_t;
# 294 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 3
typedef long int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3
# 94 "/usr/include/stdlib.h" 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 133 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) __attribute__ ((__pure__));
extern int atoi (__const char *__nptr) __attribute__ ((__pure__));
extern long int atol (__const char *__nptr) __attribute__ ((__pure__));
__extension__ extern long long int atoll (__const char *__nptr)
__attribute__ ((__pure__));
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
# 250 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern long double __strtold_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
;
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 325 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 384 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) __attribute__ ((__pure__));
# 1 "/usr/include/sys/types.h" 1 3
# 28 "/usr/include/sys/types.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/bits/types.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef int __clockid_t;
typedef int __timer_t;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blksize_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_quad_t __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
typedef unsigned int __socklen_t;
# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
{
int __sched_priority;
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3
struct _pthread_fastlock
{
long int __status;
int __spinlock;
};
typedef struct _pthread_descr_struct *_pthread_descr;
typedef struct __pthread_attr_s
{
int __detachstate;
int __schedpolicy;
struct __sched_param __schedparam;
int __inheritsched;
int __scope;
size_t __guardsize;
int __stackaddr_set;
void *__stackaddr;
size_t __stacksize;
} pthread_attr_t;
typedef struct
{
struct _pthread_fastlock __c_lock;
_pthread_descr __c_waiting;
} pthread_cond_t;
typedef struct
{
int __dummy;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef struct
{
int __m_reserved;
int __m_count;
_pthread_descr __m_owner;
int __m_kind;
struct _pthread_fastlock __m_lock;
} pthread_mutex_t;
typedef struct
{
int __mutexkind;
} pthread_mutexattr_t;
typedef int pthread_once_t;
# 140 "/usr/include/bits/pthreadtypes.h" 3
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 61 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 99 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 132 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 70 "/usr/include/time.h" 3
typedef __time_t time_t;
# 82 "/usr/include/time.h" 3
typedef __clockid_t clockid_t;
# 94 "/usr/include/time.h" 3
typedef __timer_t timer_t;
# 133 "/usr/include/sys/types.h" 2 3
# 146 "/usr/include/sys/types.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 147 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 212 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 213 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/select.h" 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
typedef __sigset_t sigset_t;
# 1 "/usr/include/time.h" 1 3
# 106 "/usr/include/time.h" 3
struct timespec
{
__time_t tv_sec;
long int tv_nsec;
};
# 45 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 67 "/usr/include/bits/time.h" 3
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 47 "/usr/include/sys/select.h" 2 3
typedef __suseconds_t suseconds_t;
typedef long int __fd_mask;
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 95 "/usr/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) ;
# 118 "/usr/include/sys/select.h" 3
# 216 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 219 "/usr/include/sys/types.h" 2 3
# 230 "/usr/include/sys/types.h" 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 262 "/usr/include/sys/types.h" 3
# 391 "/usr/include/stdlib.h" 2 3
extern long int random (void) ;
extern void srandom (unsigned int __seed) ;
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) ;
extern char *setstate (char *__statebuf) ;
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) ;
extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf) ;
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf) ;
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
;
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer) ;
# 527 "/usr/include/stdlib.h" 3
extern void *malloc (size_t __size) __attribute__ ((__malloc__));
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__malloc__));
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));
extern void free (void *__ptr) ;
extern void cfree (void *__ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 25 "/usr/include/alloca.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void *alloca (size_t __size) ;
# 547 "/usr/include/stdlib.h" 2 3
extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 561 "/usr/include/stdlib.h" 3
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
;
extern void exit (int __status) __attribute__ ((__noreturn__));
# 587 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace)
;
extern int unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 623 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
# 650 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;
extern int system (__const char *__command) ;
# 672 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 689 "/usr/include/stdlib.h" 3
extern void *bsearch (__const void *__key, __const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 710 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom)
__attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
# 728 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *gcvt (double __value, int __ndigit, char *__buf) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
;
extern int rpmatch (__const char *__response) ;
# 858 "/usr/include/stdlib.h" 3
extern int getloadavg (double __loadavg[], int __nelem) ;
# 329 "../libguile/__scm.h" 2
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 147 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 3
typedef int ptrdiff_t;
# 336 "../libguile/__scm.h" 2
# 350 "../libguile/__scm.h"
# 1 "../libguile/tags.h" 1
# 54 "../libguile/tags.h"
# 1 "/usr/include/stdint.h" 1 3
# 27 "/usr/include/stdint.h" 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 28 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 29 "/usr/include/stdint.h" 2 3
# 49 "/usr/include/stdint.h" 3
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
__extension__
typedef unsigned long long int uint64_t;
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;
__extension__
typedef long long int int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
__extension__
typedef unsigned long long int uint_least64_t;
typedef signed char int_fast8_t;
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;
typedef unsigned char uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
# 126 "/usr/include/stdint.h" 3
typedef int intptr_t;
typedef unsigned int uintptr_t;
# 138 "/usr/include/stdint.h" 3
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 55 "../libguile/tags.h" 2
# 1 "/usr/include/inttypes.h" 1 3
# 35 "/usr/include/inttypes.h" 3
typedef long int __gwchar_t;
# 274 "/usr/include/inttypes.h" 3
# 288 "/usr/include/inttypes.h" 3
typedef struct
{
long long int quot;
long long int rem;
} imaxdiv_t;
extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__const__));
extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
__attribute__ ((__const__));
extern intmax_t strtoimax (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern uintmax_t strtoumax (__const char *__restrict __nptr,
char ** __restrict __endptr, int __base) ;
extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
__gwchar_t **__restrict __endptr, int __base)
;
extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
__gwchar_t ** __restrict __endptr, int __base)
;
# 396 "/usr/include/inttypes.h" 3
extern __inline intmax_t
strtoimax (__const char *__restrict nptr, char **__restrict endptr,
int base)
{
return __strtoll_internal (nptr, endptr, base, 0);
}
# 414 "/usr/include/inttypes.h" 3
extern __inline uintmax_t
strtoumax (__const char *__restrict nptr, char **__restrict endptr,
int base)
{
return __strtoull_internal (nptr, endptr, base, 0);
}
__extension__
extern long long int __wcstoll_internal (__const __gwchar_t *
__restrict __nptr,
__gwchar_t **__restrict __endptr,
int __base, int __group) ;
extern __inline intmax_t
wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
int base)
{
return __wcstoll_internal (nptr, endptr, base, 0);
}
__extension__
extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
__restrict __nptr,
__gwchar_t **
__restrict __endptr,
int __base,
int __group) ;
extern __inline uintmax_t
wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr,
int base)
{
return __wcstoull_internal (nptr, endptr, base, 0);
}
# 59 "../libguile/tags.h" 2
# 73 "../libguile/tags.h"
typedef unsigned long scm_t_bits;
typedef signed long scm_t_signed_bits;
# 93 "../libguile/tags.h"
typedef struct scm_unused_struct * SCM;
# 394 "../libguile/tags.h"
enum scm_tags
{
scm_tc8_char = 0xf4,
scm_tc8_iloc = 0xfc
};
# 420 "../libguile/tags.h"
extern char *scm_isymnames[];
# 351 "../libguile/__scm.h" 2
# 371 "../libguile/__scm.h"
# 1 "/usr/include/setjmp.h" 1 3
# 28 "/usr/include/setjmp.h" 3
# 1 "/usr/include/bits/setjmp.h" 1 3
# 36 "/usr/include/bits/setjmp.h" 3
typedef int __jmp_buf[6];
# 31 "/usr/include/setjmp.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 32 "/usr/include/setjmp.h" 2 3
typedef struct __jmp_buf_tag
{
__jmp_buf __jmpbuf;
int __mask_was_saved;
__sigset_t __saved_mask;
} jmp_buf[1];
extern int setjmp (jmp_buf __env) ;
extern int _setjmp (jmp_buf __env) ;
extern int __sigsetjmp (jmp_buf __env, int __savemask) ;
# 73 "/usr/include/setjmp.h" 3
extern void longjmp (jmp_buf __env, int __val)
__attribute__ ((__noreturn__));
extern void _longjmp (jmp_buf __env, int __val)
__attribute__ ((__noreturn__));
typedef jmp_buf sigjmp_buf;
# 98 "/usr/include/setjmp.h" 3
extern void siglongjmp (sigjmp_buf __env, int __val)
__attribute__ ((__noreturn__));
# 372 "../libguile/__scm.h" 2
# 403 "../libguile/__scm.h"
typedef long SCM_STACKITEM;
# 422 "../libguile/__scm.h"
extern int scm_asyncs_pending_p;
# 595 "../libguile/__scm.h"
extern SCM scm_call_generic_0 (SCM gf);
# 604 "../libguile/__scm.h"
extern SCM scm_call_generic_1 (SCM gf, SCM a1);
# 613 "../libguile/__scm.h"
extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2);
# 624 "../libguile/__scm.h"
extern SCM scm_apply_generic (SCM gf, SCM args);
# 50 "../libguile/_scm.h" 2
# 65 "../libguile/_scm.h"
# 1 "../libguile/error.h" 1
# 52 "../libguile/error.h"
extern int scm_ints_disabled;
extern SCM scm_system_error_key;
extern SCM scm_num_overflow_key;
extern SCM scm_out_of_range_key;
extern SCM scm_args_number_key;
extern SCM scm_arg_type_key;
extern SCM scm_memory_alloc_key;
extern SCM scm_misc_error_key;
extern void scm_error (SCM key, const char *subr, const char *message,
SCM args, SCM rest) __attribute__ ((noreturn));
extern SCM scm_error_scm (SCM key, SCM subr, SCM message,
SCM args, SCM rest) __attribute__ ((noreturn));
extern SCM scm_strerror (SCM err);
extern void scm_syserror (const char *subr) __attribute__ ((noreturn));
extern void scm_syserror_msg (const char *subr, const char *message,
SCM args, int eno) __attribute__ ((noreturn));
extern void scm_num_overflow (const char *subr) __attribute__ ((noreturn));
extern void scm_out_of_range (const char *subr, SCM bad_value)
__attribute__ ((noreturn));
extern void scm_out_of_range_pos (const char *subr, SCM bad_value, SCM pos)
__attribute__ ((noreturn));
extern void scm_wrong_num_args (SCM proc) __attribute__ ((noreturn));
extern void scm_error_num_args_subr (const char* subr) __attribute__ ((noreturn));
extern void scm_wrong_type_arg (const char *subr, int pos,
SCM bad_value) __attribute__ ((noreturn));
extern void scm_wrong_type_arg_msg (const char *subr, int pos,
SCM bad_value, const char *sz) __attribute__ ((noreturn));
extern void scm_memory_error (const char *subr) __attribute__ ((noreturn));
extern void scm_misc_error (const char *subr, const char *message,
SCM args) __attribute__ ((noreturn));
extern void scm_init_error (void);
# 66 "../libguile/_scm.h" 2
# 1 "../libguile/print.h" 1
# 51 "../libguile/print.h"
# 1 "../libguile/options.h" 1
# 56 "../libguile/options.h"
typedef struct scm_t_option
{
unsigned int type;
const char *name;
scm_t_bits val;
char *doc;
} scm_t_option;
extern SCM scm_options (SCM, scm_t_option [], unsigned int, const char*);
extern void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n);
extern void scm_init_options (void);
# 52 "../libguile/print.h" 2
extern scm_t_option scm_print_opts[];
# 83 "../libguile/print.h"
typedef struct scm_print_state {
SCM handle;
int revealed;
unsigned long writingp;
unsigned long fancyp;
unsigned long level;
unsigned long length;
SCM hot_ref;
unsigned long list_offset;
unsigned long top;
unsigned long ceiling;
SCM *ref_stack;
SCM ref_vect;
} scm_print_state;
extern SCM scm_print_state_vtable;
extern scm_t_bits scm_tc16_port_with_ps;
extern SCM scm_print_options (SCM setting);
extern SCM scm_make_print_state (void);
extern void scm_free_print_state (SCM print_state);
extern void scm_intprint (long n, int radix, SCM port);
extern void scm_ipruk (char *hdr, SCM ptr, SCM port);
extern void scm_iprlist (char *hdr, SCM exp, int tlr, SCM port, scm_print_state *pstate);
extern void scm_print_symbol_name (const char *str, size_t len, SCM port);
extern void scm_prin1 (SCM exp, SCM port, int writingp);
extern void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate);
extern SCM scm_write (SCM obj, SCM port);
extern SCM scm_display (SCM obj, SCM port);
extern SCM scm_simple_format (SCM port, SCM message, SCM args);
extern SCM scm_newline (SCM port);
extern SCM scm_write_char (SCM chr, SCM port);
extern SCM scm_printer_apply (SCM proc, SCM exp, SCM port, scm_print_state *);
extern SCM scm_port_with_print_state (SCM port, SCM pstate);
extern SCM scm_get_print_state (SCM port);
extern int scm_valid_oport_value_p (SCM val);
extern void scm_init_print (void);
# 67 "../libguile/_scm.h" 2
# 1 "../libguile/pairs.h" 1
# 106 "../libguile/pairs.h"
extern SCM scm_cons (SCM x, SCM y);
extern SCM scm_cons2 (SCM w, SCM x, SCM y);
extern SCM scm_pair_p (SCM x);
extern SCM scm_set_car_x (SCM pair, SCM value);
extern SCM scm_set_cdr_x (SCM pair, SCM value);
extern void scm_init_pairs (void);
# 68 "../libguile/_scm.h" 2
# 1 "../libguile/list.h" 1
# 53 "../libguile/list.h"
extern SCM scm_list_1 (SCM e1);
extern SCM scm_list_2 (SCM e1, SCM e2);
extern SCM scm_list_3 (SCM e1, SCM e2, SCM e3);
extern SCM scm_list_4 (SCM e1, SCM e2, SCM e3, SCM e4);
extern SCM scm_list_5 (SCM e1, SCM e2, SCM e3, SCM e4, SCM e5);
extern SCM scm_list_n (SCM elt, ...);
extern SCM scm_list_head (SCM lst, SCM k);
extern SCM scm_list (SCM objs);
extern SCM scm_cons_star (SCM arg, SCM objs);
extern SCM scm_null_p (SCM x);
extern SCM scm_list_p (SCM x);
extern long scm_ilength (SCM sx);
extern SCM scm_length (SCM x);
extern SCM scm_append (SCM args);
extern SCM scm_append_x (SCM args);
extern SCM scm_reverse (SCM lst);
extern SCM scm_reverse_x (SCM lst, SCM newtail);
extern SCM scm_list_ref (SCM lst, SCM k);
extern SCM scm_list_set_x (SCM lst, SCM k, SCM val);
extern SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val);
extern SCM scm_last_pair (SCM sx);
extern SCM scm_list_tail (SCM lst, SCM k);
extern SCM scm_c_memq (SCM x, SCM lst);
extern SCM scm_memq (SCM x, SCM lst);
extern SCM scm_memv (SCM x, SCM lst);
extern SCM scm_member (SCM x, SCM lst);
extern SCM scm_delq_x (SCM item, SCM lst);
extern SCM scm_delv_x (SCM item, SCM lst);
extern SCM scm_delete_x (SCM item, SCM lst);
extern SCM scm_list_copy (SCM lst);
extern SCM scm_delq (SCM item, SCM lst);
extern SCM scm_delv (SCM item, SCM lst);
extern SCM scm_delete (SCM item, SCM lst);
extern SCM scm_delq1_x (SCM item, SCM lst);
extern SCM scm_delv1_x (SCM item, SCM lst);
extern SCM scm_delete1_x (SCM item, SCM lst);
extern void scm_init_list (void);
# 69 "../libguile/_scm.h" 2
# 1 "../libguile/gc.h" 1
# 51 "../libguile/gc.h"
# 1 "../libguile/hooks.h" 1
# 60 "../libguile/hooks.h"
typedef enum scm_t_c_hook_type {
SCM_C_HOOK_NORMAL,
SCM_C_HOOK_OR,
SCM_C_HOOK_AND
} scm_t_c_hook_type;
typedef void *(*scm_t_c_hook_function) (void *hook_data,
void *func_data,
void *data);
typedef struct scm_t_c_hook_entry {
struct scm_t_c_hook_entry *next;
scm_t_c_hook_function func;
void *data;
} scm_t_c_hook_entry;
typedef struct scm_t_c_hook {
scm_t_c_hook_entry *first;
scm_t_c_hook_type type;
void *data;
} scm_t_c_hook;
extern void scm_c_hook_init (scm_t_c_hook *hook,
void *hook_data,
scm_t_c_hook_type type);
extern void scm_c_hook_add (scm_t_c_hook *hook,
scm_t_c_hook_function func,
void *func_data,
int appendp);
extern void scm_c_hook_remove (scm_t_c_hook *hook,
scm_t_c_hook_function func,
void *func_data);
extern void *scm_c_hook_run (scm_t_c_hook *hook, void *data);
extern scm_t_bits scm_tc16_hook;
extern SCM scm_make_hook (SCM n_args);
extern SCM scm_hook_p (SCM x);
extern SCM scm_hook_empty_p (SCM hook);
extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp);
extern SCM scm_remove_hook_x (SCM hook, SCM thunk);
extern SCM scm_reset_hook_x (SCM hook);
extern SCM scm_run_hook (SCM hook, SCM args);
extern void scm_c_run_hook (SCM hook, SCM args);
extern SCM scm_hook_to_list (SCM hook);
extern void scm_init_hooks (void);
# 52 "../libguile/gc.h" 2
typedef struct scm_t_cell
{
scm_t_bits word_0;
scm_t_bits word_1;
} scm_t_cell;
# 132 "../libguile/gc.h"
typedef unsigned long scm_t_c_bvec_long;
# 251 "../libguile/gc.h"
extern int scm_debug_cell_accesses_p;
extern int scm_expensive_debug_cell_accesses_p;
extern int scm_debug_cells_gc_interval ;
extern int scm_block_gc;
extern int scm_gc_heap_lock;
extern unsigned int scm_gc_running_p;
extern size_t scm_default_init_heap_size_1;
extern int scm_default_min_yield_1;
extern size_t scm_default_init_heap_size_2;
extern int scm_default_min_yield_2;
extern size_t scm_default_max_segment_size;
# 276 "../libguile/gc.h"
extern size_t scm_max_segment_size;
extern SCM scm_i_freelist;
extern struct scm_t_cell_type_statistics scm_i_master_freelist;
extern SCM scm_i_freelist2;
extern struct scm_t_cell_type_statistics scm_i_master_freelist2;
extern unsigned long scm_gc_cells_swept;
extern unsigned long scm_gc_cells_collected;
extern unsigned long scm_gc_cells_collected;
extern unsigned long scm_gc_malloc_collected;
extern unsigned long scm_gc_ports_collected;
extern long scm_cells_allocated;
extern int scm_gc_cell_yield_percentage;
extern int scm_gc_malloc_yield_percentage;
extern unsigned long scm_mallocated;
extern unsigned long scm_mtrigger;
extern SCM scm_after_gc_hook;
extern scm_t_c_hook scm_before_gc_c_hook;
extern scm_t_c_hook scm_before_mark_c_hook;
extern scm_t_c_hook scm_before_sweep_c_hook;
extern scm_t_c_hook scm_after_sweep_c_hook;
extern scm_t_c_hook scm_after_gc_c_hook;
# 320 "../libguile/gc.h"
extern void scm_assert_cell_valid (SCM);
extern SCM scm_set_debug_cell_accesses_x (SCM flag);
extern SCM scm_object_address (SCM obj);
extern SCM scm_gc_stats (void);
extern SCM scm_gc (void);
extern void scm_gc_for_alloc (struct scm_t_cell_type_statistics *freelist);
extern SCM scm_gc_for_newcell (struct scm_t_cell_type_statistics *master, SCM *freelist);
extern void scm_igc (const char *what);
extern void scm_gc_mark (SCM p);
extern void scm_gc_mark_dependencies (SCM p);
extern void scm_mark_locations (SCM_STACKITEM x[], unsigned long n);
extern int scm_in_heap_p (SCM value);
extern void scm_gc_sweep (void);
extern void *scm_malloc (size_t size);
extern void *scm_calloc (size_t size);
extern void *scm_realloc (void *mem, size_t size);
extern char *scm_strdup (const char *str);
extern char *scm_strndup (const char *str, size_t n);
extern void scm_gc_register_collectable_memory (void *mem, size_t size,
const char *what);
extern void scm_gc_unregister_collectable_memory (void *mem, size_t size,
const char *what);
extern void *scm_gc_calloc (size_t size, const char *what);
extern void *scm_gc_malloc (size_t size, const char *what);
extern void *scm_gc_realloc (void *mem, size_t old_size,
size_t new_size, const char *what);
extern void scm_gc_free (void *mem, size_t size, const char *what);
extern char *scm_gc_strdup (const char *str, const char *what);
extern char *scm_gc_strndup (const char *str, size_t n, const char *what);
extern void scm_remember_upto_here_1 (SCM obj);
extern void scm_remember_upto_here_2 (SCM obj1, SCM obj2);
extern void scm_remember_upto_here (SCM obj1, ...);
extern SCM scm_return_first (SCM elt, ...);
extern int scm_return_first_int (int x, ...);
extern SCM scm_permanent_object (SCM obj);
extern SCM scm_gc_protect_object (SCM obj);
extern SCM scm_gc_unprotect_object (SCM obj);
extern void scm_gc_register_root (SCM *p);
extern void scm_gc_unregister_root (SCM *p);
extern void scm_gc_register_roots (SCM *b, unsigned long n);
extern void scm_gc_unregister_roots (SCM *b, unsigned long n);
extern int scm_init_storage (void);
extern void *scm_get_stack_base (void);
extern void scm_init_gc (void);
extern SCM scm_deprecated_newcell (void);
extern SCM scm_deprecated_newcell2 (void);
extern void * scm_must_malloc (size_t len, const char *what);
extern void * scm_must_realloc (void *where,
size_t olen, size_t len,
const char *what);
extern char *scm_must_strdup (const char *str);
extern char *scm_must_strndup (const char *str, size_t n);
extern void scm_done_malloc (long size);
extern void scm_done_free (long size);
extern void scm_must_free (void *obj);
# 70 "../libguile/_scm.h" 2
# 1 "../libguile/gsubr.h" 1
# 64 "../libguile/gsubr.h"
extern SCM scm_f_gsubr_apply;
extern SCM scm_c_make_gsubr (const char *name,
int req, int opt, int rst, SCM (*fcn) ());
extern SCM scm_c_make_gsubr_with_generic (const char *name,
int req, int opt, int rst,
SCM (*fcn) (), SCM *gf);
extern SCM scm_c_define_gsubr (const char *name,
int req, int opt, int rst, SCM (*fcn) ());
extern SCM scm_c_define_gsubr_with_generic (const char *name,
int req, int opt, int rst,
SCM (*fcn) (), SCM *gf);
extern SCM scm_gsubr_apply (SCM args);
extern void scm_init_gsubr (void);
# 71 "../libguile/_scm.h" 2
# 1 "../libguile/procs.h" 1
# 57 "../libguile/procs.h"
typedef struct
{
SCM handle;
SCM name;
SCM *generic;
SCM properties;
} scm_t_subr_entry;
# 157 "../libguile/procs.h"
extern scm_t_subr_entry *scm_subr_table;
extern long scm_subr_table_size;
extern long scm_subr_table_room;
extern void scm_mark_subr_table (void);
extern void scm_free_subr_entry (SCM subr);
extern SCM scm_c_make_subr (const char *name, long type, SCM (*fcn)());
extern SCM scm_c_make_subr_with_generic (const char *name, long type,
SCM (*fcn)(), SCM *gf);
extern SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)());
extern SCM scm_c_define_subr_with_generic (const char *name, long type,
SCM (*fcn)(), SCM *gf);
extern SCM scm_makcclo (SCM proc, size_t len);
extern SCM scm_procedure_p (SCM obj);
extern SCM scm_closure_p (SCM obj);
extern SCM scm_thunk_p (SCM obj);
extern int scm_subr_p (SCM obj);
extern SCM scm_procedure_documentation (SCM proc);
extern SCM scm_procedure_with_setter_p (SCM obj);
extern SCM scm_make_procedure_with_setter (SCM procedure, SCM setter);
extern SCM scm_procedure (SCM proc);
extern SCM scm_setter (SCM proc);
extern void scm_init_subr_table (void);
extern void scm_init_procs (void);
# 72 "../libguile/_scm.h" 2
# 1 "../libguile/numbers.h" 1
# 115 "../libguile/numbers.h"
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/float.h" 1 3
# 116 "../libguile/numbers.h" 2
# 205 "../libguile/numbers.h"
typedef struct scm_t_double
{
SCM type;
SCM pad;
double real;
} scm_t_double;
typedef struct scm_t_complex
{
double real;
double imag;
} scm_t_complex;
extern SCM scm_exact_p (SCM x);
extern SCM scm_odd_p (SCM n);
extern SCM scm_even_p (SCM n);
extern SCM scm_inf_p (SCM n);
extern SCM scm_nan_p (SCM n);
extern SCM scm_inf (void);
extern SCM scm_nan (void);
extern SCM scm_abs (SCM x);
extern SCM scm_quotient (SCM x, SCM y);
extern SCM scm_remainder (SCM x, SCM y);
extern SCM scm_modulo (SCM x, SCM y);
extern SCM scm_gcd (SCM x, SCM y);
extern SCM scm_lcm (SCM n1, SCM n2);
extern SCM scm_logand (SCM n1, SCM n2);
extern SCM scm_logior (SCM n1, SCM n2);
extern SCM scm_logxor (SCM n1, SCM n2);
extern SCM scm_logtest (SCM n1, SCM n2);
extern SCM scm_logbit_p (SCM n1, SCM n2);
extern SCM scm_lognot (SCM n);
extern SCM scm_integer_expt (SCM z1, SCM z2);
extern SCM scm_ash (SCM n, SCM cnt);
extern SCM scm_bit_extract (SCM n, SCM start, SCM end);
extern SCM scm_logcount (SCM n);
extern SCM scm_integer_length (SCM n);
extern SCM scm_i_mkbig (size_t nlen, int sign);
extern SCM scm_i_big2inum (SCM b, size_t l);
extern SCM scm_i_adjbig (SCM b, size_t nlen);
extern SCM scm_i_normbig (SCM b);
extern SCM scm_i_copybig (SCM b, int sign);
extern SCM scm_i_short2big (short n);
extern SCM scm_i_ushort2big (unsigned short n);
extern SCM scm_i_int2big (int n);
extern SCM scm_i_uint2big (unsigned int n);
extern SCM scm_i_long2big (long n);
extern SCM scm_i_ulong2big (unsigned long n);
extern SCM scm_i_size2big (size_t n);
extern SCM scm_i_ptrdiff2big (ptrdiff_t n);
extern SCM scm_i_long_long2big (long long n);
extern SCM scm_i_ulong_long2big (unsigned long long n);
extern int scm_bigcomp (SCM x, SCM y);
extern long scm_pseudolong (long x);
extern void scm_longdigs (long x, unsigned short digs[]);
extern SCM scm_addbig (unsigned short *x, size_t nx, int xsgn, SCM bigy, int sgny);
extern SCM scm_mulbig (unsigned short *x, size_t nx, unsigned short *y, size_t ny, int sgn);
extern unsigned int scm_divbigdig (unsigned short *ds, size_t h, unsigned short div);
extern size_t scm_iint2str (long num, int rad, char *p);
extern SCM scm_number_to_string (SCM x, SCM radix);
extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate);
extern int scm_print_complex (SCM sexp, SCM port, scm_print_state *pstate);
extern int scm_bigprint (SCM exp, SCM port, scm_print_state *pstate);
extern SCM scm_i_mem2number (const char *mem, size_t len, unsigned int radix);
extern SCM scm_string_to_number (SCM str, SCM radix);
extern SCM scm_make_real (double x);
extern SCM scm_make_complex (double x, double y);
extern SCM scm_bigequal (SCM x, SCM y);
extern SCM scm_real_equalp (SCM x, SCM y);
extern SCM scm_complex_equalp (SCM x, SCM y);
extern SCM scm_number_p (SCM x);
extern SCM scm_real_p (SCM x);
extern SCM scm_integer_p (SCM x);
extern SCM scm_inexact_p (SCM x);
extern SCM scm_num_eq_p (SCM x, SCM y);
extern SCM scm_less_p (SCM x, SCM y);
extern SCM scm_gr_p (SCM x, SCM y);
extern SCM scm_leq_p (SCM x, SCM y);
extern SCM scm_geq_p (SCM x, SCM y);
extern SCM scm_zero_p (SCM z);
extern SCM scm_positive_p (SCM x);
extern SCM scm_negative_p (SCM x);
extern SCM scm_max (SCM x, SCM y);
extern SCM scm_min (SCM x, SCM y);
extern SCM scm_sum (SCM x, SCM y);
extern SCM scm_difference (SCM x, SCM y);
extern SCM scm_product (SCM x, SCM y);
extern double scm_num2dbl (SCM a, const char * why);
extern SCM scm_divide (SCM x, SCM y);
extern double scm_asinh (double x);
extern double scm_acosh (double x);
extern double scm_atanh (double x);
extern double scm_truncate (double x);
extern double scm_round (double x);
extern SCM scm_sys_expt (SCM z1, SCM z2);
extern SCM scm_sys_atan2 (SCM z1, SCM z2);
extern SCM scm_make_rectangular (SCM z1, SCM z2);
extern SCM scm_make_polar (SCM z1, SCM z2);
extern SCM scm_real_part (SCM z);
extern SCM scm_imag_part (SCM z);
extern SCM scm_magnitude (SCM z);
extern SCM scm_angle (SCM z);
extern SCM scm_exact_to_inexact (SCM z);
extern SCM scm_inexact_to_exact (SCM z);
extern SCM scm_trunc (SCM x);
extern SCM scm_i_dbl2big (double d);
extern double scm_i_big2dbl (SCM b);
extern SCM scm_short2num (short n);
extern SCM scm_ushort2num (unsigned short n);
extern SCM scm_int2num (int n);
extern SCM scm_uint2num (unsigned int n);
extern SCM scm_long2num (long n);
extern SCM scm_ulong2num (unsigned long n);
extern SCM scm_size2num (size_t n);
extern SCM scm_ptrdiff2num (ptrdiff_t n);
extern short scm_num2short (SCM num, unsigned long int pos,
const char *s_caller);
extern unsigned short scm_num2ushort (SCM num, unsigned long int pos,
const char *s_caller);
extern int scm_num2int (SCM num, unsigned long int pos,
const char *s_caller);
extern unsigned int scm_num2uint (SCM num, unsigned long int pos,
const char *s_caller);
extern long scm_num2long (SCM num, unsigned long int pos,
const char *s_caller);
extern unsigned long scm_num2ulong (SCM num, unsigned long int pos,
const char *s_caller);
extern ptrdiff_t scm_num2ptrdiff (SCM num, unsigned long int pos,
const char *s_caller);
extern size_t scm_num2size (SCM num, unsigned long int pos,
const char *s_caller);
extern SCM scm_long_long2num (long long sl);
extern SCM scm_ulong_long2num (unsigned long long sl);
extern long long scm_num2long_long (SCM num, unsigned long int pos,
const char *s_caller);
extern unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos,
const char *s_caller);
extern SCM scm_float2num (float n);
extern SCM scm_double2num (double n);
extern float scm_num2float (SCM num, unsigned long int pos,
const char *s_caller);
extern double scm_num2double (SCM num, unsigned long int pos,
const char *s_caller);
extern void scm_init_numbers (void);
# 73 "../libguile/_scm.h" 2
# 1 "../libguile/symbols.h" 1
# 81 "../libguile/symbols.h"
extern SCM scm_mem2symbol (const char*, size_t);
extern SCM scm_mem2uninterned_symbol (const char *name, size_t len);
extern SCM scm_str2symbol (const char*);
extern SCM scm_symbol_p (SCM x);
extern SCM scm_symbol_interned_p (SCM sym);
extern SCM scm_make_symbol (SCM name);
extern SCM scm_symbol_to_string (SCM s);
extern SCM scm_string_to_symbol (SCM s);
extern SCM scm_symbol_fref (SCM s);
extern SCM scm_symbol_pref (SCM s);
extern SCM scm_symbol_fset_x (SCM s, SCM val);
extern SCM scm_symbol_pset_x (SCM s, SCM val);
extern SCM scm_symbol_hash (SCM s);
extern SCM scm_gensym (SCM prefix);
extern char *scm_c_symbol2str (SCM obj, char *str, size_t *lenp);
extern void scm_symbols_prehistory (void);
extern void scm_init_symbols (void);
# 74 "../libguile/_scm.h" 2
# 1 "../libguile/boolean.h" 1
# 76 "../libguile/boolean.h"
extern SCM scm_not (SCM x);
extern SCM scm_boolean_p (SCM obj);
extern void scm_init_boolean (void);
# 75 "../libguile/_scm.h" 2
# 1 "../libguile/snarf.h" 1
# 80 "../libguile/_scm.h" 2
# 1 "../libguile/variable.h" 1
# 50 "../libguile/variable.h"
# 1 "../libguile/smob.h" 1
# 55 "../libguile/smob.h"
typedef struct scm_smob_descriptor
{
char *name;
size_t size;
SCM (*mark) (SCM);
size_t (*free) (SCM);
int (*print) (SCM exp, SCM port, scm_print_state *pstate);
SCM (*equalp) (SCM, SCM);
SCM (*apply) ();
SCM (*apply_0) (SCM);
SCM (*apply_1) (SCM, SCM);
SCM (*apply_2) (SCM, SCM, SCM);
SCM (*apply_3) (SCM, SCM, SCM, SCM);
int gsubr_type;
} scm_smob_descriptor;
# 122 "../libguile/smob.h"
extern long scm_numsmob;
extern scm_smob_descriptor scm_smobs[];
extern SCM scm_mark0 (SCM ptr);
extern SCM scm_markcdr (SCM ptr);
extern size_t scm_free0 (SCM ptr);
extern size_t scm_smob_free (SCM obj);
extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate);
# 141 "../libguile/smob.h"
extern scm_t_bits scm_make_smob_type (char *name, size_t size);
extern void scm_set_smob_mark (scm_t_bits tc, SCM (*mark) (SCM));
extern void scm_set_smob_free (scm_t_bits tc, size_t (*free) (SCM));
extern void scm_set_smob_print (scm_t_bits tc,
int (*print) (SCM, SCM, scm_print_state*));
extern void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM));
extern void scm_set_smob_apply (scm_t_bits tc,
SCM (*apply) (),
unsigned int req,
unsigned int opt,
unsigned int rst);
extern SCM scm_make_smob (scm_t_bits tc);
extern void scm_smob_prehistory (void);
# 51 "../libguile/variable.h" 2
# 63 "../libguile/variable.h"
extern SCM scm_make_variable (SCM init);
extern SCM scm_make_undefined_variable (void);
extern SCM scm_variable_p (SCM obj);
extern SCM scm_variable_ref (SCM var);
extern SCM scm_variable_set_x (SCM var, SCM val);
extern SCM scm_variable_bound_p (SCM var);
extern void scm_i_variable_print (SCM var, SCM port, scm_print_state *pstate);
extern void scm_init_variable (void);
# 81 "../libguile/_scm.h" 2
# 1 "../libguile/modules.h" 1
# 51 "../libguile/modules.h"
# 1 "../libguile/validate.h" 1
# 52 "../libguile/modules.h" 2
extern int scm_module_system_booted_p;
extern scm_t_bits scm_module_tag;
# 84 "../libguile/modules.h"
extern scm_t_bits scm_tc16_eval_closure;
extern SCM scm_current_module (void);
extern SCM scm_interaction_environment (void);
extern SCM scm_set_current_module (SCM module);
extern SCM scm_c_call_with_current_module (SCM module,
SCM (*func)(void *), void *data);
extern SCM scm_c_lookup (const char *name);
extern SCM scm_c_define (const char *name, SCM val);
extern SCM scm_lookup (SCM symbol);
extern SCM scm_define (SCM symbol, SCM val);
extern SCM scm_c_module_lookup (SCM module, const char *name);
extern SCM scm_c_module_define (SCM module, const char *name, SCM val);
extern SCM scm_module_lookup (SCM module, SCM symbol);
extern SCM scm_module_define (SCM module, SCM symbol, SCM val);
extern SCM scm_module_reverse_lookup (SCM module, SCM variable);
extern SCM scm_c_resolve_module (const char *name);
extern SCM scm_resolve_module (SCM name);
extern SCM scm_c_define_module (const char *name,
void (*init)(void *), void *data);
extern void scm_c_use_module (const char *name);
extern void scm_c_export (const char *name, ...);
extern SCM scm_sym2var (SCM sym, SCM thunk, SCM definep);
extern SCM scm_module_lookup_closure (SCM module);
extern SCM scm_module_transformer (SCM module);
extern SCM scm_current_module_lookup_closure (void);
extern SCM scm_current_module_transformer (void);
extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep);
extern SCM scm_standard_eval_closure (SCM module);
extern SCM scm_standard_interface_eval_closure (SCM module);
extern SCM scm_get_pre_modules_obarray (void);
extern SCM scm_lookup_closure_module (SCM proc);
extern SCM scm_env_top_level (SCM env);
extern SCM scm_env_module (SCM env);
extern SCM scm_top_level_env (SCM thunk);
extern SCM scm_system_module_env_p (SCM env);
extern void scm_modules_prehistory (void);
extern void scm_init_modules (void);
# 82 "../libguile/_scm.h" 2
# 1 "../libguile/inline.h" 1
# 57 "../libguile/inline.h"
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 1 3
# 39 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 44 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 2 3
# 54 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 64 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 74 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 32 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 14 "/usr/include/_G_config.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 321 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3
# 67 "/usr/include/wchar.h" 3
typedef struct
{
int __count;
union
{
wint_t __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3
typedef struct
{
__off_t __pos;
__mbstate_t __state;
} _G_fpos_t;
typedef struct
{
__off64_t __pos;
__mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3
# 1 "/usr/include/gconv.h" 1 3
# 28 "/usr/include/gconv.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stddef.h" 1 3
# 32 "/usr/include/gconv.h" 2 3
enum
{
__GCONV_OK = 0,
__GCONV_NOCONV,
__GCONV_NODB,
__GCONV_NOMEM,
__GCONV_EMPTY_INPUT,
__GCONV_FULL_OUTPUT,
__GCONV_ILLEGAL_INPUT,
__GCONV_INCOMPLETE_INPUT,
__GCONV_ILLEGAL_DESCRIPTOR,
__GCONV_INTERNAL_ERROR
};
enum
{
__GCONV_IS_LAST = 0x0001,
__GCONV_IGNORE_ERRORS = 0x0002
};
struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
__const unsigned char **, __const unsigned char *,
unsigned char **, size_t *, int, int);
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
struct __gconv_step_data *, void *,
__const unsigned char *,
__const unsigned char **,
__const unsigned char *, unsigned char **,
size_t *);
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
__const unsigned char *,
unsigned char *, unsigned char *);
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
size_t *);
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);
struct __gconv_trans_data
{
__gconv_trans_fct __trans_fct;
__gconv_trans_context_fct __trans_context_fct;
__gconv_trans_end_fct __trans_end_fct;
void *__data;
struct __gconv_trans_data *__next;
};
struct __gconv_step
{
struct __gconv_loaded_object *__shlib_handle;
__const char *__modname;
int __counter;
char *__from_name;
char *__to_name;
__gconv_fct __fct;
__gconv_init_fct __init_fct;
__gconv_end_fct __end_fct;
int __min_needed_from;
int __max_needed_from;
int __min_needed_to;
int __max_needed_to;
int __stateful;
void *__data;
};
struct __gconv_step_data
{
unsigned char *__outbuf;
unsigned char *__outbufend;
int __flags;
int __invocation_counter;
int __internal_use;
__mbstate_t *__statep;
__mbstate_t __state;
struct __gconv_trans_data *__trans;
};
typedef struct __gconv_info
{
size_t __nsteps;
struct __gconv_step *__steps;
__extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3
typedef union
{
struct __gconv_info __cd;
struct
{
struct __gconv_info __cd;
struct __gconv_step_data __data;
} __combined;
} _G_iconv_t;
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "/usr/include/libio.h" 2 3
# 53 "/usr/include/libio.h" 3
# 1 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdarg.h" 1 3
# 43 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 54 "/usr/include/libio.h" 2 3
# 160 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 193 "/usr/include/libio.h" 3
};
enum __codecvt_result
{
__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv
};
# 261 "/usr/include/libio.h" 3
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3
__off64_t _offset;
void *__pad1;
void *__pad2;
int _mode;
char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 344 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
size_t __n);
typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
typedef int __io_close_fn (void *__cookie);
# 396 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 426 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 456 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
__gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
__gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 75 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 2 3
# 89 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
typedef _G_fpos_t fpos_t;
# 138 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 139 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
# 153 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 172 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 189 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
__attribute__ ((__malloc__));
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 212 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) ;
# 242 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 265 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
# 336 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) ;
# 362 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
;
# 428 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern char *gets (char *__s) ;
# 452 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
;
# 462 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 506 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 542 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 573 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
# 620 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 641 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 33 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 111 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 642 "/users/hanwen/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/include/stdio.h" 2 3
# 58 "../libguile/inline.h" 2
extern void scm_i_expensive_validation_check (SCM);
extern SCM scm_cell (scm_t_bits car, scm_t_bits cdr);
extern SCM scm_double_cell (scm_t_bits car, scm_t_bits cbr,
scm_t_bits ccr, scm_t_bits cdr);
extern unsigned scm_newcell2_count;
extern unsigned scm_newcell_count;
extern inline
SCM
scm_cell (scm_t_bits car, scm_t_bits cdr)
{
SCM z;
if (((((scm_t_bits) ((scm_i_freelist))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
z = scm_gc_for_newcell (&scm_i_master_freelist, &scm_i_freelist);
}
else
{
z = scm_i_freelist;
scm_i_freelist = ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((scm_i_freelist)))))) [1]))));
}
scm_cells_allocated += 1;
if (scm_debug_cell_accesses_p)
{
if ((((scm_t_c_bvec_long *) ((((scm_t_cell *) ((long) (z) & (~(256 * sizeof (scm_t_cell) - 1)))))->word_0))[((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) >> 5)] & (1L << ((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) & 31))))
{
fprintf(stderr, "scm_cell tried to allocate a marked cell.\n");
abort();
}
else if ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [0]) != (127 + 0 * 256L))
{
fprintf(stderr, "cell from freelist is not a free cell.\n");
abort();
}
(((scm_t_c_bvec_long *) ((((scm_t_cell *) ((long) (z) & (~(256 * sizeof (scm_t_cell) - 1)))))->word_0))[((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) >> 5)] |= (1L << ((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) & 31)));
}
# 125 "../libguile/inline.h"
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [1] = (scm_t_bits) (cdr));
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [0] = (scm_t_bits) (car));
# 141 "../libguile/inline.h"
if (scm_expensive_debug_cell_accesses_p )
scm_i_expensive_validation_check (z);
return z;
}
extern inline
SCM
scm_double_cell (scm_t_bits car, scm_t_bits cbr,
scm_t_bits ccr, scm_t_bits cdr)
{
SCM z;
if (((((scm_t_bits) ((scm_i_freelist2))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
z = scm_gc_for_newcell (&scm_i_master_freelist2, &scm_i_freelist2);
}
else
{
z = scm_i_freelist2;
scm_i_freelist2 = ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((scm_i_freelist2)))))) [1]))));
}
scm_cells_allocated += 2;
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [1] = (scm_t_bits) (cbr));
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [2] = (scm_t_bits) (ccr));
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [3] = (scm_t_bits) (cdr));
(((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (z))))) [0] = (scm_t_bits) (car));
# 192 "../libguile/inline.h"
if (scm_debug_cell_accesses_p)
{
if ((((scm_t_c_bvec_long *) ((((scm_t_cell *) ((long) (z) & (~(256 * sizeof (scm_t_cell) - 1)))))->word_0))[((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) >> 5)] & (1L << ((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) & 31))))
{
fprintf(stderr,
"scm_double_cell tried to allocate a marked cell.\n");
abort();
}
(((scm_t_c_bvec_long *) ((((scm_t_cell *) ((long) (z) & (~(256 * sizeof (scm_t_cell) - 1)))))->word_0))[((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) >> 5)] |= (1L << ((((long) (z) & (256 * sizeof (scm_t_cell) - 1)) >> 3) & 31)));
}
return z;
}
extern int scm_i_cell_validation_already_running ;
extern inline
void
scm_assert_cell_valid (SCM cell)
{
if (!scm_i_cell_validation_already_running && scm_debug_cell_accesses_p)
{
scm_i_cell_validation_already_running = 1;
if (scm_gc_running_p)
return;
if (scm_expensive_debug_cell_accesses_p)
scm_i_expensive_validation_check (cell);
if (!(((scm_t_c_bvec_long *) ((((scm_t_cell *) ((long) (cell) & (~(256 * sizeof (scm_t_cell) - 1)))))->word_0))[((((long) (cell) & (256 * sizeof (scm_t_cell) - 1)) >> 3) >> 5)] & (1L << ((((long) (cell) & (256 * sizeof (scm_t_cell) - 1)) >> 3) & 31))))
{
fprintf (stderr,
"scm_assert_cell_valid: this object is unmarked. \n"
"It has been garbage-collected in the last GC run: "
"%lux\n",
(unsigned long) ((scm_t_bits) (cell)));
abort ();
}
scm_i_cell_validation_already_running = 0;
}
}
# 83 "../libguile/_scm.h" 2
# 121 "../libguile/_scm.h"
extern int errno;
# 78 "eval.c" 2
# 1 "../libguile/debug.h" 1
# 71 "../libguile/debug.h"
extern scm_t_option scm_debug_opts[];
# 89 "../libguile/debug.h"
extern SCM (*scm_ceval_ptr) (SCM exp, SCM env);
extern int scm_debug_mode;
extern int scm_check_entry_p;
extern int scm_check_apply_p;
extern int scm_check_exit_p;
# 112 "../libguile/debug.h"
typedef union scm_t_debug_info
{
struct { SCM exp, env; } e;
struct { SCM proc, args; } a;
SCM id;
} scm_t_debug_info;
extern long scm_debug_eframe_size;
typedef struct scm_t_debug_frame
{
struct scm_t_debug_frame *prev;
long status;
scm_t_debug_info *vect;
scm_t_debug_info *info;
} scm_t_debug_frame;
extern scm_t_debug_frame *scm_last_debug_frame;
# 167 "../libguile/debug.h"
extern scm_t_bits scm_tc16_debugobj;
# 178 "../libguile/debug.h"
extern scm_t_bits scm_tc16_memoized;
extern SCM scm_debug_object_p (SCM obj);
extern SCM scm_local_eval (SCM exp, SCM env);
extern SCM scm_reverse_lookup (SCM env, SCM data);
extern SCM scm_start_stack (SCM id, SCM exp, SCM env);
extern SCM scm_procedure_environment (SCM proc);
extern SCM scm_procedure_source (SCM proc);
extern SCM scm_procedure_name (SCM proc);
extern SCM scm_memoized_environment (SCM m);
extern SCM scm_make_memoized (SCM exp, SCM env);
extern SCM scm_memoized_p (SCM obj);
extern SCM scm_with_traps (SCM thunk);
extern SCM scm_evaluator_traps (SCM setting);
extern SCM scm_debug_options (SCM setting);
extern SCM scm_unmemoize (SCM memoized);
extern SCM scm_make_debugobj (scm_t_debug_frame *debug);
extern void scm_init_debug (void);
# 79 "eval.c" 2
# 1 "../libguile/dynwind.h" 1
# 53 "../libguile/dynwind.h"
typedef void (*scm_t_guard) (void *);
typedef SCM (*scm_t_inner) (void *);
extern SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3);
extern SCM scm_internal_dynamic_wind (scm_t_guard before,
scm_t_inner inner,
scm_t_guard after,
void *inner_data,
void *guard_data);
extern void scm_dowinds (SCM to, long delta);
extern void scm_init_dynwind (void);
extern void scm_swap_bindings (SCM vars, SCM vals);
# 80 "eval.c" 2
# 1 "../libguile/alist.h" 1
# 53 "../libguile/alist.h"
extern SCM scm_acons (SCM w, SCM x, SCM y);
extern SCM scm_sloppy_assq (SCM x, SCM alist);
extern SCM scm_sloppy_assv (SCM x, SCM alist);
extern SCM scm_sloppy_assoc (SCM x, SCM alist);
extern SCM scm_assq (SCM x, SCM alist);
extern SCM scm_assv (SCM x, SCM alist);
extern SCM scm_assoc (SCM x, SCM alist);
extern SCM scm_assq_ref (SCM alist, SCM key);
extern SCM scm_assv_ref (SCM alist, SCM key);
extern SCM scm_assoc_ref (SCM alist, SCM key);
extern SCM scm_assq_set_x (SCM alist, SCM key, SCM val);
extern SCM scm_assv_set_x (SCM alist, SCM key, SCM val);
extern SCM scm_assoc_set_x (SCM alist, SCM key, SCM val);
extern SCM scm_assq_remove_x (SCM alist, SCM key);
extern SCM scm_assv_remove_x (SCM alist, SCM key);
extern SCM scm_assoc_remove_x (SCM alist, SCM key);
extern void scm_init_alist (void);
# 81 "eval.c" 2
# 1 "../libguile/eq.h" 1
# 53 "../libguile/eq.h"
extern SCM scm_eq_p (SCM x, SCM y);
extern SCM scm_eqv_p (SCM x, SCM y);
extern SCM scm_equal_p (SCM x, SCM y);
extern void scm_init_eq (void);
# 82 "eval.c" 2
# 1 "../libguile/continuations.h" 1
# 66 "../libguile/continuations.h"
extern scm_t_bits scm_tc16_continuation;
typedef struct
{
SCM throw_value;
jmp_buf jmpbuf;
SCM dynenv;
SCM_STACKITEM *base;
size_t num_stack_items;
unsigned long seq;
struct scm_t_debug_frame *dframe;
SCM_STACKITEM stack[1];
} scm_t_contregs;
# 106 "../libguile/continuations.h"
extern SCM scm_make_continuation (int *first);
extern void scm_init_continuations (void);
# 83 "eval.c" 2
# 1 "../libguile/throw.h" 1
# 53 "../libguile/throw.h"
typedef SCM (*scm_t_catch_body) (void *data);
typedef SCM (*scm_t_catch_handler) (void *data,
SCM tag, SCM throw_args);
extern SCM scm_internal_catch (SCM tag,
scm_t_catch_body body,
void *body_data,
scm_t_catch_handler handler,
void *handler_data);
extern SCM scm_internal_lazy_catch (SCM tag,
scm_t_catch_body body,
void *body_data,
scm_t_catch_handler handler,
void *handler_data);
extern SCM scm_internal_stack_catch (SCM tag,
scm_t_catch_body body,
void *body_data,
scm_t_catch_handler handler,
void *handler_data);
struct scm_body_thunk_data
{
SCM tag;
SCM body_proc;
};
extern SCM scm_body_thunk (void *);
extern SCM scm_handle_by_proc (void *, SCM, SCM);
extern SCM scm_handle_by_proc_catching_all (void *, SCM, SCM);
extern SCM scm_handle_by_message (void *, SCM, SCM);
extern SCM scm_handle_by_message_noexit (void *, SCM, SCM);
extern SCM scm_handle_by_throw (void *, SCM, SCM);
extern int scm_exit_status (SCM args);
extern SCM scm_catch (SCM tag, SCM thunk, SCM handler);
extern SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler);
extern SCM scm_ithrow (SCM key, SCM args, int noreturn);
extern SCM scm_throw (SCM key, SCM args);
extern void scm_init_throw (void);
# 84 "eval.c" 2
# 1 "../libguile/macros.h" 1
# 60 "../libguile/macros.h"
extern scm_t_bits scm_tc16_macro;
extern SCM scm_makacro (SCM code);
extern SCM scm_makmmacro (SCM code);
extern SCM scm_macro_p (SCM obj);
extern SCM scm_macro_type (SCM m);
extern SCM scm_macro_name (SCM m);
extern SCM scm_macro_transformer (SCM m);
extern SCM scm_make_synt (const char *name,
SCM (*macroizer) (SCM),
SCM (*fcn) ());
extern void scm_init_macros (void);
extern SCM scm_makmacro (SCM code);
# 86 "eval.c" 2
# 1 "../libguile/procprop.h" 1
# 53 "../libguile/procprop.h"
extern SCM scm_sym_name;
extern SCM scm_sym_arity;
extern SCM scm_sym_system_procedure;
extern SCM scm_i_procedure_arity (SCM proc);
extern SCM scm_procedure_properties (SCM proc);
extern SCM scm_set_procedure_properties_x (SCM proc, SCM new_val);
extern SCM scm_procedure_property (SCM p, SCM k);
extern SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v);
extern void scm_init_procprop (void);
# 87 "eval.c" 2
# 1 "../libguile/hashtab.h" 1
# 59 "../libguile/hashtab.h"
extern SCM scm_c_make_hash_table (unsigned long k);
extern SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure);
extern SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure);
extern SCM scm_hash_fn_ref (SCM table, SCM obj, SCM dflt, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure);
extern SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure);
extern SCM scm_hash_fn_remove_x (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), SCM (*delete_fn) (), void * closure);
extern SCM scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table);
extern SCM scm_hashq_get_handle (SCM table, SCM obj);
extern SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hashq_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hashq_remove_x (SCM table, SCM obj);
extern SCM scm_hashv_get_handle (SCM table, SCM obj);
extern SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hashv_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hashv_remove_x (SCM table, SCM obj);
extern SCM scm_hash_get_handle (SCM table, SCM obj);
extern SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hash_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hash_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hash_remove_x (SCM table, SCM obj);
extern SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj);
extern SCM scm_hashx_create_handle_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM init);
extern SCM scm_hashx_ref (SCM hash, SCM assoc, SCM table, SCM obj, SCM dflt);
extern SCM scm_hashx_set_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM val);
extern SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM del, SCM table, SCM obj);
extern SCM scm_hash_fold (SCM proc, SCM init, SCM hash);
extern void scm_init_hashtab (void);
# 88 "eval.c" 2
# 1 "../libguile/hash.h" 1
# 53 "../libguile/hash.h"
extern unsigned long scm_string_hash (const unsigned char *str, size_t len);
extern unsigned long scm_hasher (SCM obj, unsigned long n, size_t d);
extern unsigned long scm_ihashq (SCM obj, unsigned long n);
extern SCM scm_hashq (SCM obj, SCM n);
extern unsigned long scm_ihashv (SCM obj, unsigned long n);
extern SCM scm_hashv (SCM obj, SCM n);
extern unsigned long scm_ihash (SCM obj, unsigned long n);
extern SCM scm_hash (SCM obj, SCM n);
extern void scm_init_hash (void);
# 89 "eval.c" 2
# 1 "../libguile/srcprop.h" 1
# 80 "../libguile/srcprop.h"
extern scm_t_bits scm_tc16_srcprops;
typedef struct scm_t_srcprops
{
unsigned long pos;
SCM fname;
SCM copy;
SCM plist;
} scm_t_srcprops;
typedef struct scm_t_srcprops_chunk
{
struct scm_t_srcprops_chunk *next;
scm_t_srcprops srcprops[1];
} scm_t_srcprops_chunk;
# 120 "../libguile/srcprop.h"
extern SCM scm_sym_filename;
extern SCM scm_sym_copy;
extern SCM scm_sym_line;
extern SCM scm_sym_column;
extern SCM scm_sym_breakpoint;
extern int scm_c_source_property_breakpoint_p (SCM form);
extern SCM scm_srcprops_to_plist (SCM obj);
extern SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist);
extern SCM scm_source_property (SCM obj, SCM key);
extern SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum);
extern SCM scm_source_properties (SCM obj);
extern SCM scm_set_source_properties_x (SCM obj, SCM props);
extern void scm_finish_srcprop (void);
extern void scm_init_srcprop (void);
# 90 "eval.c" 2
# 1 "../libguile/stackchk.h" 1
# 86 "../libguile/stackchk.h"
extern int scm_stack_checking_enabled_p;
extern void scm_report_stack_overflow (void);
extern long scm_stack_size (SCM_STACKITEM *start);
extern void scm_stack_report (void);
extern void scm_init_stackchk (void);
# 91 "eval.c" 2
# 1 "../libguile/objects.h" 1
# 61 "../libguile/objects.h"
# 1 "../libguile/struct.h" 1
# 74 "../libguile/struct.h"
typedef void (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data);
# 102 "../libguile/struct.h"
extern SCM scm_struct_table;
extern SCM scm_structs_to_free;
extern scm_t_bits * scm_alloc_struct (int n_words, int n_extra,
const char *what);
extern void scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data);
extern void scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data);
extern void scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data);
extern void scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data);
extern SCM scm_make_struct_layout (SCM fields);
extern SCM scm_struct_p (SCM x);
extern SCM scm_struct_vtable_p (SCM x);
extern SCM scm_make_struct (SCM vtable, SCM tail_array_size, SCM init);
extern SCM scm_make_vtable_vtable (SCM extra_fields, SCM tail_array_size, SCM init);
extern SCM scm_struct_ref (SCM handle, SCM pos);
extern SCM scm_struct_set_x (SCM handle, SCM pos, SCM val);
extern SCM scm_struct_vtable (SCM handle);
extern SCM scm_struct_vtable_tag (SCM handle);
extern unsigned long scm_struct_ihashq (SCM obj, unsigned long n);
extern SCM scm_struct_create_handle (SCM obj);
extern SCM scm_struct_vtable_name (SCM vtable);
extern SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name);
extern void scm_print_struct (SCM exp, SCM port, scm_print_state *);
extern void scm_struct_prehistory (void);
extern void scm_init_struct (void);
# 62 "../libguile/objects.h" 2
# 139 "../libguile/objects.h"
struct scm_metaclass_standard {
SCM layout;
SCM vcell;
SCM vtable;
SCM print;
};
struct scm_metaclass_operator {
SCM layout;
SCM vcell;
SCM vtable;
SCM print;
SCM procedure;
SCM setter;
};
# 182 "../libguile/objects.h"
typedef struct scm_effective_slot_definition {
SCM name;
long location;
SCM init_value;
SCM (*get) (SCM obj, SCM slotdef);
SCM (*set) (SCM obj, SCM slotdef, SCM value);
} scm_effective_slot_definition;
# 203 "../libguile/objects.h"
extern SCM scm_metaclass_standard;
extern SCM scm_metaclass_operator;
extern SCM scm_class_boolean;
extern SCM scm_class_char;
extern SCM scm_class_pair;
extern SCM scm_class_procedure;
extern SCM scm_class_string;
extern SCM scm_class_symbol;
extern SCM scm_class_procedure_with_setter;
extern SCM scm_class_primitive_generic;
extern SCM scm_class_vector, scm_class_null;
extern SCM scm_class_real;
extern SCM scm_class_complex;
extern SCM scm_class_integer;
extern SCM scm_class_unknown;
extern SCM *scm_port_class;
extern SCM *scm_smob_class;
extern SCM scm_no_applicable_method;
extern SCM scm_make_extended_class (char *type_name);
extern void scm_make_port_classes (long ptobnum, char *type_name);
extern void scm_change_object_class (SCM, SCM, SCM);
extern SCM scm_memoize_method (SCM x, SCM args);
extern SCM scm_class_of (SCM obj);
extern SCM scm_mcache_lookup_cmethod (SCM cache, SCM args);
extern SCM scm_mcache_compute_cmethod (SCM cache, SCM args);
extern SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3);
extern SCM scm_entity_p (SCM obj);
extern SCM scm_operator_p (SCM obj);
extern SCM scm_valid_object_procedure_p (SCM proc);
extern SCM scm_set_object_procedure_x (SCM obj, SCM proc);
extern SCM scm_make_class_object (SCM metaclass, SCM layout);
extern SCM scm_make_subclass_object (SCM c, SCM layout);
extern SCM scm_i_make_class_object (SCM metaclass, SCM layout_string,
unsigned long flags);
extern void scm_init_objects (void);
# 92 "eval.c" 2
# 1 "../libguile/async.h" 1
# 53 "../libguile/async.h"
extern unsigned int scm_mask_ints;
extern int scm_asyncs_pending (void);
extern void scm_async_click (void);
extern void scm_switch (void);
extern SCM scm_async (SCM thunk);
extern SCM scm_system_async (SCM thunk);
extern SCM scm_async_mark (SCM a);
extern SCM scm_system_async_mark (SCM a);
extern void scm_system_async_mark_from_signal_handler (SCM a);
extern SCM scm_run_asyncs (SCM list_of_a);
extern SCM scm_noop (SCM args);
extern SCM scm_set_tick_rate (SCM n);
extern SCM scm_set_switch_rate (SCM n);
extern SCM scm_unmask_signals (void);
extern SCM scm_mask_signals (void);
extern void scm_init_async (void);
# 93 "eval.c" 2
# 1 "../libguile/feature.h" 1
# 51 "../libguile/feature.h"
extern void scm_add_feature (const char* str);
extern SCM scm_program_arguments (void);
extern void scm_set_program_arguments (int argc, char **argv, char *first);
extern void scm_init_feature (void);
# 94 "eval.c" 2
# 1 "../libguile/ports.h" 1
# 62 "../libguile/ports.h"
typedef enum scm_t_port_rw_active {
SCM_PORT_NEITHER = 0,
SCM_PORT_READ = 1,
SCM_PORT_WRITE = 2
} scm_t_port_rw_active;
typedef struct
{
SCM port;
long entry;
int revealed;
scm_t_bits stream;
SCM file_name;
long line_number;
int column_number;
# 93 "../libguile/ports.h"
unsigned char *read_buf;
const unsigned char *read_pos;
unsigned char *read_end;
off_t read_buf_size;
unsigned char *saved_read_buf;
const unsigned char *saved_read_pos;
unsigned char *saved_read_end;
off_t saved_read_buf_size;
unsigned char *write_buf;
unsigned char *write_pos;
unsigned char *write_end;
off_t write_buf_size;
unsigned char shortbuf;
int rw_random;
scm_t_port_rw_active rw_active;
unsigned char *putback_buf;
size_t putback_buf_size;
} scm_t_port;
extern scm_t_port **scm_port_table;
extern long scm_port_table_size;
# 188 "../libguile/ports.h"
typedef struct scm_t_ptob_descriptor
{
char *name;
SCM (*mark) (SCM);
size_t (*free) (SCM);
int (*print) (SCM exp, SCM port, scm_print_state *pstate);
SCM (*equalp) (SCM, SCM);
int (*close) (SCM port);
void (*write) (SCM port, const void *data, size_t size);
void (*flush) (SCM port);
void (*end_input) (SCM port, int offset);
int (*fill_input) (SCM port);
int (*input_waiting) (SCM port);
off_t (*seek) (SCM port, off_t OFFSET, int WHENCE);
void (*truncate) (SCM port, off_t length);
} scm_t_ptob_descriptor;
# 216 "../libguile/ports.h"
extern scm_t_ptob_descriptor *scm_ptobs;
extern long scm_numptob;
extern long scm_port_table_room;
extern SCM scm_markstream (SCM ptr);
extern scm_t_bits scm_make_port_type (char *name,
int (*fill_input) (SCM port),
void (*write) (SCM port,
const void *data,
size_t size));
extern void scm_set_port_mark (long tc, SCM (*mark) (SCM));
extern void scm_set_port_free (long tc, size_t (*free) (SCM));
extern void scm_set_port_print (long tc,
int (*print) (SCM exp,
SCM port,
scm_print_state *pstate));
extern void scm_set_port_equalp (long tc, SCM (*equalp) (SCM, SCM));
extern void scm_set_port_close (long tc, int (*close) (SCM));
extern void scm_set_port_flush (long tc,
void (*flush) (SCM port));
extern void scm_set_port_end_input (long tc,
void (*end_input) (SCM port,
int offset));
extern void scm_set_port_seek (long tc,
off_t (*seek) (SCM port,
off_t OFFSET,
int WHENCE));
extern void scm_set_port_truncate (long tc,
void (*truncate) (SCM port,
off_t length));
extern void scm_set_port_input_waiting (long tc, int (*input_waiting) (SCM));
extern SCM scm_char_ready_p (SCM port);
size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len);
extern SCM scm_drain_input (SCM port);
extern SCM scm_current_input_port (void);
extern SCM scm_current_output_port (void);
extern SCM scm_current_error_port (void);
extern SCM scm_current_load_port (void);
extern SCM scm_set_current_input_port (SCM port);
extern SCM scm_set_current_output_port (SCM port);
extern SCM scm_set_current_error_port (SCM port);
extern scm_t_port * scm_new_port_table_entry (void);
extern void scm_remove_from_port_table (SCM port);
extern void scm_grow_port_cbuf (SCM port, size_t requested);
extern SCM scm_pt_size (void);
extern SCM scm_pt_member (SCM member);
extern void scm_port_non_buffer (scm_t_port *pt);
extern int scm_revealed_count (SCM port);
extern SCM scm_port_revealed (SCM port);
extern SCM scm_set_port_revealed_x (SCM port, SCM rcount);
extern long scm_mode_bits (char *modes);
extern SCM scm_port_mode (SCM port);
extern SCM scm_close_input_port (SCM port);
extern SCM scm_close_output_port (SCM port);
extern SCM scm_close_port (SCM port);
extern SCM scm_port_for_each (SCM proc);
extern SCM scm_input_port_p (SCM x);
extern SCM scm_output_port_p (SCM x);
extern SCM scm_port_p (SCM x);
extern SCM scm_port_closed_p (SCM port);
extern SCM scm_eof_object_p (SCM x);
extern SCM scm_force_output (SCM port);
extern SCM scm_flush_all_ports (void);
extern SCM scm_read_char (SCM port);
extern void scm_putc (char c, SCM port);
extern void scm_puts (const char *str_data, SCM port);
extern size_t scm_c_read (SCM port, void *buffer, size_t size);
extern void scm_c_write (SCM port, const void *buffer, size_t size);
extern void scm_lfwrite (const char *ptr, size_t size, SCM port);
extern void scm_flush (SCM port);
extern void scm_end_input (SCM port);
extern int scm_fill_input (SCM port);
extern int scm_getc (SCM port);
extern void scm_ungetc (int c, SCM port);
extern void scm_ungets (const char *s, int n, SCM port);
extern SCM scm_peek_char (SCM port);
extern SCM scm_unread_char (SCM cobj, SCM port);
extern SCM scm_unread_string (SCM str, SCM port);
extern SCM scm_seek (SCM object, SCM offset, SCM whence);
extern SCM scm_truncate_file (SCM object, SCM length);
extern SCM scm_port_line (SCM port);
extern SCM scm_set_port_line_x (SCM port, SCM line);
extern SCM scm_port_column (SCM port);
extern SCM scm_set_port_column_x (SCM port, SCM line);
extern SCM scm_port_filename (SCM port);
extern SCM scm_set_port_filename_x (SCM port, SCM filename);
extern int scm_port_print (SCM exp, SCM port, scm_print_state *);
extern void scm_print_port_mode (SCM exp, SCM port);
extern void scm_ports_prehistory (void);
extern SCM scm_void_port (char * mode_str);
extern SCM scm_sys_make_void_port (SCM mode);
extern void scm_init_ports (void);
# 96 "eval.c" 2
# 1 "../libguile/root.h" 1
# 75 "../libguile/root.h"
extern SCM scm_sys_protects[];
extern scm_t_bits scm_tc16_root;
typedef struct scm_root_state
{
SCM_STACKITEM * stack_base;
jmp_buf save_regs_gc_mark;
int errjmp_bad;
SCM rootcont;
SCM dynwinds;
scm_t_debug_frame *last_debug_frame;
SCM progargs;
SCM exitval;
SCM cur_inp;
SCM cur_outp;
SCM cur_errp;
SCM cur_loadp;
SCM fluids;
SCM handle;
SCM parent;
} scm_root_state;
# 131 "../libguile/root.h"
extern struct scm_root_state *scm_root;
extern SCM scm_make_root (SCM parent);
extern SCM scm_internal_cwdr (scm_t_catch_body body,
void *body_data,
scm_t_catch_handler handler,
void *handler_data,
SCM_STACKITEM *stack_start);
extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler);
extern SCM scm_dynamic_root (void);
extern SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler);
extern void scm_init_root (void);
# 97 "eval.c" 2
# 1 "../libguile/vectors.h" 1
# 84 "../libguile/vectors.h"
extern SCM scm_c_make_vector (unsigned long int k, SCM fill);
extern SCM scm_vector_p (SCM x);
extern SCM scm_vector_length (SCM v);
extern SCM scm_vector (SCM l);
extern SCM scm_vector_ref (SCM v, SCM k);
extern SCM scm_vector_set_x (SCM v, SCM k, SCM obj);
extern SCM scm_make_vector (SCM k, SCM fill);
extern SCM scm_vector_to_list (SCM v);
extern SCM scm_vector_fill_x (SCM v, SCM fill_x);
extern SCM scm_vector_equal_p (SCM x, SCM y);
extern SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1,
SCM vec2, SCM start2);
extern SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1,
SCM vec2, SCM start2);
extern void scm_init_vectors (void);
# 98 "eval.c" 2
# 1 "../libguile/fluids.h" 1
# 75 "../libguile/fluids.h"
extern scm_t_bits scm_tc16_fluid;
# 92 "../libguile/fluids.h"
extern SCM scm_make_fluid (void);
extern SCM scm_fluid_p (SCM fl);
extern SCM scm_fluid_ref (SCM fluid);
extern SCM scm_fluid_set_x (SCM fluid, SCM value);
extern SCM scm_c_with_fluids (SCM fluids, SCM vals,
SCM (*cproc)(void *), void *cdata);
extern SCM scm_c_with_fluid (SCM fluid, SCM val,
SCM (*cproc)(void *), void *cdata);
extern SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk);
extern SCM scm_make_initial_fluids (void);
extern void scm_copy_fluids (scm_root_state *);
extern void scm_swap_fluids (SCM fluids, SCM vals);
extern void scm_swap_fluids_reverse (SCM fluids, SCM vals);
extern void scm_init_fluids (void);
# 99 "eval.c" 2
# 1 "../libguile/goops.h" 1
# 92 "../libguile/goops.h"
typedef struct scm_t_method {
SCM generic_function;
SCM specializers;
SCM procedure;
} scm_t_method;
# 184 "../libguile/goops.h"
extern SCM scm_class_top;
extern SCM scm_class_object;
extern SCM scm_class_class;
extern SCM scm_class_entity;
extern SCM scm_class_entity_with_setter;
extern SCM scm_class_generic;
extern SCM scm_class_generic_with_setter;
extern SCM scm_class_method;
extern SCM scm_class_simple_method;
extern SCM scm_class_accessor;
extern SCM scm_class_procedure_class;
extern SCM scm_class_operator_class;
extern SCM scm_class_operator_with_setter_class;
extern SCM scm_class_entity_class;
extern SCM scm_class_number;
extern SCM scm_class_list;
extern SCM scm_class_keyword;
extern SCM scm_class_port;
extern SCM scm_class_input_output_port;
extern SCM scm_class_input_port;
extern SCM scm_class_output_port;
extern SCM scm_class_foreign_class;
extern SCM scm_class_foreign_object;
extern SCM scm_class_foreign_slot;
extern SCM scm_class_self;
extern SCM scm_class_protected;
extern SCM scm_class_opaque;
extern SCM scm_class_read_only;
extern SCM scm_class_protected_opaque;
extern SCM scm_class_protected_read_only;
extern SCM scm_class_scm;
extern SCM scm_class_int;
extern SCM scm_class_float;
extern SCM scm_class_double;
extern const char *scm_s_slot_set_x;
extern SCM scm_module_goops;
extern SCM scm_goops_version (void);
extern SCM scm_oldfmt (SCM);
extern char *scm_c_oldfmt0 (char *);
extern char *scm_c_oldfmt (char *, int n);
extern void scm_load_goops (void);
extern SCM scm_make_foreign_object (SCM cls, SCM initargs);
extern SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size,
void * (*constructor) (SCM initargs),
size_t (*destructor) (void *));
extern void scm_add_slot (SCM c, char *slot, SCM slot_class,
SCM (*getter) (SCM obj),
SCM (*setter) (SCM obj, SCM x),
char *accessor_name);
extern SCM scm_wrap_object (SCM c, void *);
extern SCM scm_wrap_component (SCM c, SCM obj, void *);
extern SCM scm_ensure_accessor (SCM name);
extern void scm_add_method (SCM gf, SCM m);
extern SCM scm_make_next_method (SCM methods, SCM args, SCM gf);
extern SCM scm_basic_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots);
extern SCM scm_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots);
extern SCM scm_sys_allocate_instance (SCM c, SCM initargs);
extern SCM scm_sys_set_object_setter_x (SCM obj, SCM setter);
extern SCM scm_slot_ref (SCM obj, SCM slot_name);
extern SCM scm_slot_set_x (SCM obj, SCM slot_name, SCM value);
extern SCM scm_compute_applicable_methods (SCM gf, SCM args, long len, int scm_find_method);
extern SCM scm_sys_compute_applicable_methods (SCM gf, SCM args);
extern SCM scm_m_atslot_ref (SCM xorig, SCM env);
extern SCM scm_m_atslot_set_x (SCM xorig, SCM env);
extern SCM scm_m_atdispatch (SCM xorig, SCM env);
extern SCM scm_sys_compute_slots (SCM c);
extern SCM scm_i_get_keyword (SCM key, SCM l, long len, SCM default_value, const char *subr);
extern SCM scm_get_keyword (SCM key, SCM l, SCM default_value);
extern SCM scm_sys_initialize_object (SCM obj, SCM initargs);
extern SCM scm_sys_prep_layout_x (SCM c);
extern SCM scm_sys_inherit_magic_x (SCM c, SCM dsupers);
extern SCM scm_instance_p (SCM obj);
extern SCM scm_class_name (SCM obj);
extern SCM scm_class_direct_supers (SCM obj);
extern SCM scm_class_direct_slots (SCM obj);
extern SCM scm_class_direct_subclasses (SCM obj);
extern SCM scm_class_direct_methods (SCM obj);
extern SCM scm_class_precedence_list (SCM obj);
extern SCM scm_class_slots (SCM obj);
extern SCM scm_class_environment (SCM obj);
extern SCM scm_generic_function_name (SCM obj);
extern SCM scm_generic_function_methods (SCM obj);
extern SCM scm_method_generic_function (SCM obj);
extern SCM scm_method_specializers (SCM obj);
extern SCM scm_method_procedure (SCM obj);
extern SCM scm_accessor_method_slot_definition (SCM obj);
extern SCM scm_sys_tag_body (SCM body);
extern SCM scm_sys_fast_slot_ref (SCM obj, SCM index);
extern SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value);
extern SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name);
extern SCM scm_slot_set_using_class_x (SCM cls, SCM obj, SCM slot_name, SCM value);
extern SCM scm_slot_bound_using_class_p (SCM cls, SCM obj, SCM slot_name);
extern SCM scm_slot_exists_using_class_p (SCM cls, SCM obj, SCM slot_name);
extern SCM scm_slot_bound_p (SCM obj, SCM slot_name);
extern SCM scm_slot_exists_p (SCM obj, SCM slot_name);
extern SCM scm_sys_modify_instance (SCM old, SCM newinst);
extern SCM scm_sys_modify_class (SCM old, SCM newcls);
extern SCM scm_sys_invalidate_class (SCM cls);
extern SCM scm_make_method_cache (SCM gf);
extern SCM scm_sys_invalidate_method_cache_x (SCM gf);
extern SCM scm_generic_capability_p (SCM proc);
extern SCM scm_enable_primitive_generic_x (SCM subrs);
extern SCM scm_primitive_generic_generic (SCM subr);
extern SCM stklos_version (void);
extern SCM scm_make (SCM args);
extern SCM scm_find_method (SCM args);
extern SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs);
extern SCM scm_init_goops_builtins (void);
extern void scm_init_goops (void);
# 100 "eval.c" 2
# 1 "../libguile/values.h" 1
# 51 "../libguile/values.h"
extern SCM scm_values_vtable;
extern SCM scm_values (SCM args);
extern void scm_init_values (void);
# 101 "eval.c" 2
# 1 "../libguile/eval.h" 1
# 58 "../libguile/eval.h"
extern scm_t_option scm_eval_opts[];
extern long scm_eval_stack;
extern scm_t_option scm_evaluator_trap_table[];
extern SCM scm_eval_options_interface (SCM setting);
# 136 "../libguile/eval.h"
extern const char scm_s_expression[];
extern const char scm_s_test[];
extern const char scm_s_body[];
extern const char scm_s_bindings[];
extern const char scm_s_variable[];
extern const char scm_s_clauses[];
extern const char scm_s_formals[];
extern const char scm_s_set_x[];
extern SCM scm_sym_and;
extern SCM scm_sym_begin;
extern SCM scm_sym_case;
extern SCM scm_sym_cond;
extern SCM scm_sym_define;
extern SCM scm_sym_do;
extern SCM scm_sym_if;
extern SCM scm_sym_lambda;
extern SCM scm_sym_let;
extern SCM scm_sym_letstar;
extern SCM scm_sym_letrec;
extern SCM scm_sym_quote;
extern SCM scm_sym_quasiquote;
extern SCM scm_sym_unquote;
extern SCM scm_sym_uq_splicing;
extern SCM scm_sym_dot;
extern SCM scm_sym_atapply;
extern SCM scm_sym_atcall_cc;
extern SCM scm_sym_at_call_with_values;
extern SCM scm_sym_delay;
extern SCM scm_sym_arrow;
extern SCM scm_sym_else;
extern SCM scm_sym_apply;
extern SCM scm_sym_set_x;
extern SCM scm_sym_args;
extern SCM scm_f_apply;
extern SCM * scm_ilookup (SCM iloc, SCM env);
extern SCM * scm_lookupcar (SCM vloc, SCM genv, int check);
extern SCM scm_unmemocar (SCM form, SCM env);
extern SCM scm_unmemocopy (SCM form, SCM env);
extern SCM scm_eval_car (SCM pair, SCM env);
extern SCM scm_eval_body (SCM code, SCM env);
extern SCM scm_eval_args (SCM i, SCM env, SCM proc);
extern SCM scm_m_quote (SCM xorig, SCM env);
extern SCM scm_m_begin (SCM xorig, SCM env);
extern SCM scm_m_if (SCM xorig, SCM env);
extern SCM scm_m_set_x (SCM xorig, SCM env);
extern SCM scm_m_vref (SCM xorig, SCM env);
extern SCM scm_m_vset (SCM xorig, SCM env);
extern SCM scm_m_and (SCM xorig, SCM env);
extern SCM scm_m_or (SCM xorig, SCM env);
extern SCM scm_m_case (SCM xorig, SCM env);
extern SCM scm_m_cond (SCM xorig, SCM env);
extern SCM scm_m_lambda (SCM xorig, SCM env);
extern SCM scm_m_letstar (SCM xorig, SCM env);
extern SCM scm_m_do (SCM xorig, SCM env);
extern SCM scm_m_quasiquote (SCM xorig, SCM env);
extern SCM scm_m_delay (SCM xorig, SCM env);
extern SCM scm_m_define (SCM x, SCM env);
extern SCM scm_m_letrec (SCM xorig, SCM env);
extern SCM scm_m_let (SCM xorig, SCM env);
extern SCM scm_m_apply (SCM xorig, SCM env);
extern SCM scm_m_cont (SCM xorig, SCM env);
extern SCM scm_m_nil_cond (SCM xorig, SCM env);
extern SCM scm_m_atfop (SCM xorig, SCM env);
extern SCM scm_m_atbind (SCM xorig, SCM env);
extern SCM scm_m_at_call_with_values (SCM xorig, SCM env);
extern int scm_badargsp (SCM formals, SCM args);
extern SCM scm_ceval (SCM x, SCM env);
extern SCM scm_deval (SCM x, SCM env);
extern SCM scm_call_0 (SCM proc);
extern SCM scm_call_1 (SCM proc, SCM arg1);
extern SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2);
extern SCM scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3);
extern SCM scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4);
extern SCM scm_apply_0 (SCM proc, SCM args);
extern SCM scm_apply_1 (SCM proc, SCM arg1, SCM args);
extern SCM scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args);
extern SCM scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args);
extern SCM scm_nconc2last (SCM lst);
extern SCM scm_apply (SCM proc, SCM arg1, SCM args);
extern SCM scm_dapply (SCM proc, SCM arg1, SCM args);
extern SCM scm_m_expand_body (SCM xorig, SCM env);
extern SCM scm_macroexp (SCM x, SCM env);
extern SCM scm_map (SCM proc, SCM arg1, SCM args);
extern SCM scm_for_each (SCM proc, SCM arg1, SCM args);
extern SCM scm_closure (SCM code, SCM env);
extern SCM scm_makprom (SCM code);
extern SCM scm_force (SCM x);
extern SCM scm_promise_p (SCM x);
extern SCM scm_cons_source (SCM xorig, SCM x, SCM y);
extern SCM scm_copy_tree (SCM obj);
extern SCM scm_i_eval_x (SCM exp, SCM env);
extern SCM scm_i_eval (SCM exp, SCM env);
extern SCM scm_primitive_eval (SCM exp);
extern SCM scm_primitive_eval_x (SCM exp);
extern SCM scm_eval (SCM exp, SCM module);
extern SCM scm_eval_x (SCM exp, SCM module);
extern void scm_init_eval (void);
# 104 "eval.c" 2
# 1 "../libguile/lang.h" 1
# 76 "../libguile/lang.h"
extern void scm_init_lang (void);
# 105 "eval.c" 2
# 155 "eval.c"
SCM *
scm_ilookup (SCM iloc, SCM env)
{
register long ir = ((long)(((0x00080000L)-(0x00000100L))>>8) & (((scm_t_bits) (iloc)) >> 8));
register SCM er = env;
for (; 0 != ir; --ir)
er = (((scm_assert_cell_valid ((er)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((er)))))) [(1)])))))));
er = (((scm_assert_cell_valid ((er)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((er)))))) [(0)])))))));
for (ir = (((scm_t_bits) (iloc)) >> 20); 0 != ir; --ir)
er = (((scm_assert_cell_valid ((er)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((er)))))) [(1)])))))));
if (((0x00080000L) & ((scm_t_bits) (iloc))))
return ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((er))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((er))))))) [(1)])))));
return ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid ((((((scm_assert_cell_valid ((er)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((er)))))) [(1)])))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((((scm_assert_cell_valid ((er)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((er)))))) [(1)])))))))))))))) [(0)])))));
}
# 247 "eval.c"
static SCM scm_unbound_variable_key ;
SCM *
scm_lookupcar (SCM vloc, SCM genv, int check)
{
SCM env = genv;
register SCM *al, fl, var = (((scm_assert_cell_valid ((vloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((vloc)))))) [(0)])))))));
register SCM iloc = ((SCM) (((0L) << 8) + scm_tc8_iloc));
for (; (!(6 & ((scm_t_bits) (env)))); env = (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)]))))))))
{
if (!(!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)])))) == 0)))
break;
al = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((env))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((env))))))) [(0)])))));
for (fl = (((scm_assert_cell_valid ((*al)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*al)))))) [(0)]))))))); (!(6 & ((scm_t_bits) (fl)))); fl = (((scm_assert_cell_valid ((fl)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((fl)))))) [(1)]))))))))
{
if (!(!(6 & ((scm_t_bits) (fl))) && ((1 & (scm_assert_cell_valid ((fl)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((fl)))))) [(0)])))) == 0)))
{
if ((((scm_t_bits) (fl)) == ((scm_t_bits) (var))))
{
(scm_assert_cell_valid ((vloc)), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((vloc)))))) [(0)] = (scm_t_bits) ((((scm_t_bits) (iloc)) + (0x00080000L))))));
return ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*al))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*al))))))) [(1)])))));
}
else
break;
}
al = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*al))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*al))))))) [(1)])))));
if ((((scm_t_bits) ((((scm_assert_cell_valid ((fl)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((fl)))))) [(0)]))))))))) == ((scm_t_bits) (var))))
{
if (((((scm_t_bits) (((((scm_assert_cell_valid ((*al)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*al)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
{
env = ((SCM) (((20) << 9) + 0x174L));
goto errout;
}
(((scm_assert_cell_valid (((vloc))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((vloc))))))) [(0)] = ((scm_t_bits) (((iloc)))))))));
return ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*al))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*al))))))) [(0)])))));
}
iloc = ((SCM) (((scm_t_bits) (iloc)) + (0x00100000L)));
}
iloc = ((SCM) ((~(-(0x00100000L))) & (((scm_t_bits) (iloc)) + (0x00000100L))));
}
{
SCM top_thunk, real_var;
if ((!(6 & ((scm_t_bits) (env)))))
{
top_thunk = (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))));
env = (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)])))))));
}
else
top_thunk = ((SCM) (((16) << 9) + 0x174L));
real_var = scm_sym2var (var, top_thunk, ((SCM) (((16) << 9) + 0x174L)));
if (((((scm_t_bits) ((real_var))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
goto errout;
if (!((((scm_t_bits) ((env))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) (((scm_assert_cell_valid ((real_var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((real_var)))))) [(1)])))))))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
{
errout:
if (check)
{
if (((((scm_t_bits) ((env))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_error (scm_unbound_variable_key, ((void *)0),
"Unbound variable: ~S",
scm_list_1 (var), ((SCM) (((16) << 9) + 0x174L)));
else
scm_misc_error (((void *)0), "Damaged environment: ~S",
scm_list_1 (var));
}
else
{
static SCM undef_object = ((SCM) (((18) << 9) + 0x174L));
return &undef_object;
}
}
# 357 "eval.c"
(((scm_assert_cell_valid (((vloc))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((vloc))))))) [(0)] = ((scm_t_bits) (((real_var)))))))));
return ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((real_var))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((real_var))))))) [(1)])))));
}
}
# 375 "eval.c"
static SCM sym_three_question_marks ;
SCM
scm_unmemocar (SCM form, SCM env)
{
if (!(!(6 & ((scm_t_bits) (form))) && ((1 & (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))) == 0)))
return form;
else
{
SCM c = (((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))))));
if ((!(6 & ((scm_t_bits) (c))) && (0x7f & (scm_assert_cell_valid ((c)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((c)))))) [(0)])))) == 7))
{
SCM sym = scm_module_reverse_lookup (scm_env_module (env), c);
if (((((scm_t_bits) ((sym))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
sym = sym_three_question_marks;
(((scm_assert_cell_valid (((form))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((form))))))) [(0)] = ((scm_t_bits) (((sym)))))))));
}
else if (((((scm_t_bits) (c)) & 0xff)==scm_tc8_iloc))
{
unsigned long int ir;
for (ir = ((long)(((0x00080000L)-(0x00000100L))>>8) & (((scm_t_bits) (c)) >> 8)); ir != 0; --ir)
env = (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)])))))));
env = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)])))))));
for (ir = (((scm_t_bits) (c)) >> 20); ir != 0; --ir)
env = (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)])))))));
(((scm_assert_cell_valid (((form))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((form))))))) [(0)] = ((scm_t_bits) (((((0x00080000L) & ((scm_t_bits) (c))) ? env : (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))))));
}
return form;
}
}
SCM
scm_eval_car (SCM pair, SCM env)
{
return ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm!
_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (pair, env, 1) : (*scm_ceval_ptr) ((((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)]))))))), env)));
}
const char scm_s_expression[] = "missing or extra expression";
const char scm_s_test[] = "bad test";
const char scm_s_body[] = "bad body";
const char scm_s_bindings[] = "bad bindings";
const char scm_s_duplicate_bindings[] = "duplicate bindings";
const char scm_s_variable[] = "bad variable";
const char scm_s_clauses[] = "bad or missing clauses";
const char scm_s_formals[] = "bad formals";
const char scm_s_duplicate_formals[] = "duplicate formals";
static const char s_splicing[] = "bad (non-list) result for unquote-splicing";
SCM scm_sym_dot ;
SCM scm_sym_arrow ;
SCM scm_sym_else ;
SCM scm_sym_unquote ;
SCM scm_sym_uq_splicing ;
SCM scm_f_apply;
SCM scm_sym_enter_frame ;
SCM scm_sym_apply_frame ;
SCM scm_sym_exit_frame ;
SCM scm_sym_trace ;
# 460 "eval.c"
static SCM
scm_m_body (SCM op, SCM xorig, const char *what)
{
if (!(scm_ilength (xorig) >= 1)) scm_misc_error (what, scm_s_body, ((SCM) (((20) << 9) + 0x174L)));;
if (((0x187 & ((scm_t_bits) ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)])))))))))) == 4))
return xorig;
if (!(!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))))))))) [(0)])))) == 0)))
{
if (!((((scm_t_bits) (((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
return scm_cons ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))),
scm_m_body (op, (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))), what));
return xorig;
}
return scm_cons (op, xorig);
}
static const char s_quote[]="quote";
SCM scm_sym_quote ;
SCM
scm_m_quote (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))) == 1)) scm_misc_error (s_quote, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((11) << 9) + ((11) << 3) + 4L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_begin[]="begin";
SCM scm_sym_begin ;
SCM
scm_m_begin (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))) >= 0)) scm_misc_error (s_begin, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((1) << 9) + ((1) << 3) + 4L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_if[]="if";
SCM scm_sym_if ;
SCM
scm_m_if (SCM xorig, SCM env __attribute__ ((unused)))
{
long len = scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
if (!(len >= 2 && len <= 3)) scm_misc_error (s_if, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((5) << 9) + ((5) << 3) + 4L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
const char scm_s_set_x[] = "set!";
SCM scm_sym_set_x ;
SCM
scm_m_set_x (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
if (!(scm_ilength (x) == 2)) scm_misc_error (scm_s_set_x, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
if (!((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)))) scm_misc_error (scm_s_set_x, scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((12) << 9) + ((12) << 3) + 4L)), x);
}
static const char s_and[]="and";
SCM scm_sym_and ;
SCM
scm_m_and (SCM xorig, SCM env __attribute__ ((unused)))
{
long len = scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
if (!(len >= 0)) scm_misc_error (s_and, scm_s_test, ((SCM) (((20) << 9) + 0x174L)));;
if (len >= 1)
return scm_cons (((SCM) (((0) << 9) + ((0) << 3) + 4L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
else
return ((SCM) (((17) << 9) + 0x174L));
}
static const char s_or[]="or";
SCM scm_sym_or ;
SCM
scm_m_or (SCM xorig, SCM env __attribute__ ((unused)))
{
long len = scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
if (!(len >= 0)) scm_misc_error (s_or, scm_s_test, ((SCM) (((20) << 9) + 0x174L)));;
if (len >= 1)
return scm_cons (((SCM) (((10) << 9) + ((10) << 3) + 4L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
else
return ((SCM) (((16) << 9) + 0x174L));
}
static const char s_case[]="case";
SCM scm_sym_case ;
SCM
scm_m_case (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM clauses;
SCM cdrx = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
if (!(scm_ilength (cdrx) >= 2)) scm_misc_error (s_case, scm_s_clauses, ((SCM) (((20) << 9) + 0x174L)));;
clauses = (((scm_assert_cell_valid ((cdrx)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((cdrx)))))) [(1)])))))));
while (!((((scm_t_bits) ((clauses))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(0)])))))));
if (!(scm_ilength (clause) >= 2)) scm_misc_error (s_case, scm_s_clauses, ((SCM) (((20) << 9) + 0x174L)));;
if (!(scm_ilength ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))) >= 0 || ((((scm_t_bits) (scm_sym_else)) == ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) && ((((scm_t_bits) (((((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))))) scm_misc_error (s_case, scm_s_clauses, ((SCM) (((20) << 9) + 0x174L)));;
clauses = (((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(1)])))))));
}
return scm_cons (((SCM) (((2) << 9) + ((2) << 3) + 4L)), cdrx);
}
static const char s_cond[]="cond";
SCM scm_sym_cond ;
SCM
scm_m_cond (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM cdrx = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
SCM clauses = cdrx;
if (!(scm_ilength (clauses) >= 1)) scm_misc_error (s_cond, scm_s_clauses, ((SCM) (((20) << 9) + 0x174L)));;
while (!((((scm_t_bits) ((clauses))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(0)])))))));
long len = scm_ilength (clause);
if (!(len >= 1)) scm_misc_error (s_cond, scm_s_clauses, ((SCM) (((20) << 9) + 0x174L)));;
if ((((scm_t_bits) (scm_sym_else)) == ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))))
{
int last_clause_p = ((((scm_t_bits) (((((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))));
if (!(len >= 2 && last_clause_p)) scm_misc_error (s_cond, "bad ELSE clause", ((SCM) (((20) << 9) + 0x174L)));;
}
else if (len >= 2 && (((scm_t_bits) (scm_sym_arrow)) == ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)]))))))))))))) [(0)])))))))))))
{
if (!(len > 2)) scm_misc_error (s_cond, "missing recipient", ((SCM) (((20) << 9) + 0x174L)));;
if (!(len == 3)) scm_misc_error (s_cond, "bad recipient", ((SCM) (((20) << 9) + 0x174L)));;
}
clauses = (((scm_assert_cell_valid ((clauses)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clauses)))))) [(1)])))))));
}
return scm_cons (((SCM) (((3) << 9) + ((3) << 3) + 4L)), cdrx);
}
static const char s_lambda[]="lambda";
SCM scm_sym_lambda ;
static int
scm_c_improper_memq (SCM obj, SCM list)
{
for (; (!(6 & ((scm_t_bits) (list))) && ((1 & (scm_assert_cell_valid ((list)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((list)))))) [(0)])))) == 0)); list = (((scm_assert_cell_valid ((list)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((list)))))) [(1)]))))))))
{
if ((((scm_t_bits) ((((scm_assert_cell_valid ((list)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((list)))))) [(0)]))))))))) == ((scm_t_bits) (obj))))
return 1;
}
return (((scm_t_bits) (list)) == ((scm_t_bits) (obj)));
}
SCM
scm_m_lambda (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM formals;
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (s_lambda, scm_s_formals, ((SCM) (((20) << 9) + 0x174L)));;
formals = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
while ((!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0)))
{
SCM formal = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))))));
if (!((!(6 & ((scm_t_bits) (formal))) && ((0x7f & (scm_assert_cell_valid ((formal)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formal)))))) [(0)])))) == 5)))) scm_misc_error (s_lambda, scm_s_formals, ((SCM) (((20) << 9) + 0x174L)));;
if (scm_c_improper_memq (formal, (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))))))
scm_misc_error (s_lambda, scm_s_duplicate_formals, ((SCM) (((20) << 9) + 0x174L)));
formals = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))));
}
if (!((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) && !(!(6 & ((scm_t_bits) (formals))) && ((0x7f & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 5)))
scm_misc_error (s_lambda, scm_s_formals, ((SCM) (((20) << 9) + 0x174L)));
return scm_cons2 (((SCM) (((6) << 9) + ((6) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))),
scm_m_body (((SCM) (((6) << 9) + ((6) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), s_lambda));
}
static const char s_letstar[]="let*";
SCM scm_sym_letstar ;
SCM
scm_m_letstar (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM bindings;
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
SCM vars = ((SCM) (((20) << 9) + 0x174L));
SCM *varloc = &vars;
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (s_letstar, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
bindings = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(scm_ilength (bindings) >= 0)) scm_misc_error (s_letstar, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM binding = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
if (!(scm_ilength (binding) == 2)) scm_misc_error (s_letstar, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
if (!((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))))))) [(0)])))) == 5)))) scm_misc_error (s_letstar, scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
*varloc = scm_list_2 ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))), (((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(0)]))))))));
varloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid ((((((scm_assert_cell_valid ((*varloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*varloc)))))) [(1)])))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((((scm_assert_cell_valid ((*varloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*varloc)))))) [(1)])))))))))))))) [(1)])))));
bindings = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
}
return scm_cons2 (((SCM) (((8) << 9) + ((8) << 3) + 4L)), vars,
scm_m_body (((SCM) (((8) << 9) + ((8) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), s_letstar));
}
# 708 "eval.c"
static const char s_do[]="do";
SCM scm_sym_do ;
SCM
scm_m_do (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM bindings;
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
SCM vars = ((SCM) (((20) << 9) + 0x174L));
SCM inits = ((SCM) (((20) << 9) + 0x174L));
SCM *initloc = &inits;
SCM steps = ((SCM) (((20) << 9) + 0x174L));
SCM *steploc = &steps;
if (!(scm_ilength (x) >= 2)) scm_misc_error ("do", scm_s_test, ((SCM) (((20) << 9) + 0x174L)));;
bindings = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(scm_ilength (bindings) >= 0)) scm_misc_error ("do", scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM binding = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
long len = scm_ilength (binding);
if (!(len == 2 || len == 3)) scm_misc_error ("do", scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
{
SCM name = (((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)])))))));
SCM init = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(0)])))))));
SCM step = (len == 2) ? name : (((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))));
if (!((!(6 & ((scm_t_bits) (name))) && ((0x7f & (scm_assert_cell_valid ((name)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(0)])))) == 5)))) scm_misc_error ("do", scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
vars = scm_cons (name, vars);
*initloc = scm_list_1 (init);
initloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*initloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*initloc))))))) [(1)])))));
*steploc = scm_list_1 (step);
steploc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*steploc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*steploc))))))) [(1)])))));
bindings = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (!(scm_ilength ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))) >= 1)) scm_misc_error ("do", scm_s_test, ((SCM) (((20) << 9) + 0x174L)));;
x = scm_cons2 ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), steps);
x = scm_cons2 (vars, inits, x);
return scm_cons (((SCM) (((4) << 9) + ((4) << 3) + 4L)), x);
}
static const char s_quasiquote[]="quasiquote";
SCM scm_sym_quasiquote ;
static SCM
iqq (SCM form, SCM env, unsigned long int depth)
{
if ((!(6 & ((scm_t_bits) (form))) && ((1 & (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))) == 0)))
{
SCM tmp = (((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))))));
if ((((scm_t_bits) (tmp)) == ((scm_t_bits) (scm_sym_quasiquote))))
{
SCM args = (((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)])))))));
if (!(scm_ilength (args) == 1)) scm_misc_error (s_quasiquote, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_list_2 (tmp, iqq ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))), env, depth + 1));
}
else if ((((scm_t_bits) (tmp)) == ((scm_t_bits) (scm_sym_unquote))))
{
SCM args = (((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)])))))));
if (!(scm_ilength (args) == 1)) scm_misc_error (s_quasiquote, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
if (depth - 1 == 0)
return scm_eval_car (args, env);
else
return scm_list_2 (tmp, iqq ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))), env, depth - 1));
}
else if ((!(6 & ((scm_t_bits) (tmp))) && ((1 & (scm_assert_cell_valid ((tmp)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp)))))) [(0)])))) == 0))
&& (((scm_t_bits) ((((scm_assert_cell_valid ((tmp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp)))))) [(0)]))))))))) == ((scm_t_bits) (scm_sym_uq_splicing))))
{
SCM args = (((scm_assert_cell_valid ((tmp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp)))))) [(1)])))))));
if (!(scm_ilength (args) == 1)) scm_misc_error (s_quasiquote, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
if (depth - 1 == 0)
{
SCM list = scm_eval_car (args, env);
SCM rest = (((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)])))))));
if (!(scm_ilength (list) >= 0)) scm_misc_error (s_quasiquote, s_splicing, ((SCM) (((20) << 9) + 0x174L)));;
return scm_append (scm_list_2 (list, iqq (rest, env, depth)));
}
else
return scm_cons (iqq ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)]))))))), env, depth - 1),
iqq ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)]))))))), env, depth));
}
else
return scm_cons (iqq ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)]))))))), env, depth),
iqq ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)]))))))), env, depth));
}
else if ((!(6 & ((scm_t_bits) (form))) && (((0x7f & ~2) & (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))) == 13)))
{
size_t i = (((unsigned long) (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))) >> 8);
SCM const *data = ((const SCM *) (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)]))));
SCM tmp = ((SCM) (((20) << 9) + 0x174L));
while (i != 0)
tmp = scm_cons (data[--i], tmp);
scm_remember_upto_here_1 (form);
return scm_vector (iqq (tmp, env, depth));
}
else
return form;
}
SCM
scm_m_quasiquote (SCM xorig, SCM env)
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
if (!(scm_ilength (x) == 1)) scm_misc_error (s_quasiquote, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return iqq ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env, 1);
}
static const char s_delay[]="delay";
SCM scm_sym_delay ;
SCM
scm_m_delay (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength (xorig) == 2)) scm_misc_error (s_delay, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons2 (((SCM) (((27) << 9) + 0x74L)), ((SCM) (((20) << 9) + 0x174L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_define[]="define";
SCM scm_sym_define ;
# 858 "eval.c"
SCM
scm_m_define (SCM x, SCM env)
{
SCM name;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (!(scm_ilength (x) >= 2)) scm_misc_error (s_define, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
name = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while ((!(6 & ((scm_t_bits) (name))) && ((1 & (scm_assert_cell_valid ((name)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(0)])))) == 0)))
{
SCM formals = (((scm_assert_cell_valid ((name)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(1)])))))));
x = scm_list_1 (scm_cons2 (scm_sym_lambda, formals, x));
name = (((scm_assert_cell_valid ((name)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(0)])))))));
}
if (!((!(6 & ((scm_t_bits) (name))) && ((0x7f & (scm_assert_cell_valid ((name)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(0)])))) == 5)))) scm_misc_error (s_define, scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
if (!(scm_ilength (x) == 1)) scm_misc_error (s_define, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
if ((((((scm_t_bits) ((env))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) (scm_procedure_p ((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((17) << 9) + 0x174L))))))))
{
SCM var;
x = scm_eval_car (x, env);
if (scm_debug_opts[3].val)
{
SCM tmp = x;
while ((!(6 & ((scm_t_bits) ((tmp)))) && (0xffff & (scm_assert_cell_valid (((tmp))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tmp))))))) [(0)])))) == (scm_tc16_macro)))
tmp = (scm_assert_cell_valid ((tmp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp)))))) [(1)])))));
if ((!(6 & ((scm_t_bits) (tmp))) && ((7 & (scm_assert_cell_valid ((tmp)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp)))))) [(0)])))) == 3))
&& ((((scm_t_bits) ((scm_procedure_property (tmp, scm_sym_name)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
scm_set_procedure_property_x (tmp, scm_sym_name, name);
}
var = scm_sym2var (name, scm_env_top_level (env), ((SCM) (((17) << 9) + 0x174L)));
(scm_assert_cell_valid ((var)), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)] = ((scm_t_bits) ((x))))));
return ((SCM) (((21) << 9) + 0x174L));
}
else
return scm_cons2 (((SCM) (((13) << 9) + ((13) << 3) + 4L)), name, x);
}
static void
transform_bindings (SCM bindings, SCM *rvarloc, SCM *initloc, const char *what)
{
SCM rvars = ((SCM) (((20) << 9) + 0x174L));
*rvarloc = ((SCM) (((20) << 9) + 0x174L));
*initloc = ((SCM) (((20) << 9) + 0x174L));
if (!(scm_ilength (bindings) >= 1)) scm_misc_error (what, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
do
{
SCM binding = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
if (!(scm_ilength (binding) == 2)) scm_misc_error (what, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
if (!((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))))))) [(0)])))) == 5)))) scm_misc_error (what, scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
if (scm_c_improper_memq ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))), rvars))
scm_misc_error (what, scm_s_duplicate_bindings, ((SCM) (((20) << 9) + 0x174L)));
rvars = scm_cons ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))), rvars);
*initloc = scm_list_1 ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(0)]))))))));
initloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*initloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*initloc))))))) [(1)])))));
bindings = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
*rvarloc = rvars;
}
static const char s_letrec[]="letrec";
SCM scm_sym_letrec ;
SCM
scm_m_letrec (SCM xorig, SCM env)
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (s_letrec, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
if (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM body = scm_m_body (((SCM) (((9) << 9) + ((9) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), s_letrec);
return scm_m_letstar (scm_cons2 ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))), ((SCM) (((20) << 9) + 0x174L)), body), env);
}
else
{
SCM rvars, inits, body;
transform_bindings ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), &rvars, &inits, "letrec");
body = scm_m_body (((SCM) (((9) << 9) + ((9) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), "letrec");
return scm_cons2 (((SCM) (((9) << 9) + ((9) << 3) + 4L)), rvars, scm_cons (inits, body));
}
}
static const char s_let[]="let";
SCM scm_sym_let ;
SCM
scm_m_let (SCM xorig, SCM env)
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
SCM temp;
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (s_let, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
temp = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (((((scm_t_bits) ((temp))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| (scm_ilength (temp) == 1 && (!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((temp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((temp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((temp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp)))))) [(0)]))))))))))))) [(0)])))) == 0))))
{
SCM bindings = temp;
SCM body = scm_m_body (((SCM) (((7) << 9) + ((7) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), s_let);
return scm_m_letstar (scm_cons2 ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))), bindings, body), env);
}
else if ((!(6 & ((scm_t_bits) (temp))) && ((1 & (scm_assert_cell_valid ((temp)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp)))))) [(0)])))) == 0)))
{
SCM bindings = temp;
SCM rvars, inits, body;
transform_bindings (bindings, &rvars, &inits, "let");
body = scm_m_body (((SCM) (((7) << 9) + ((7) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), "let");
return scm_cons2 (((SCM) (((7) << 9) + ((7) << 3) + 4L)), rvars, scm_cons (inits, body));
}
else
{
SCM name = temp;
SCM vars = ((SCM) (((20) << 9) + 0x174L));
SCM *varloc = &vars;
SCM inits = ((SCM) (((20) << 9) + 0x174L));
SCM *initloc = &inits;
SCM bindings;
if (!((!(6 & ((scm_t_bits) (name))) && ((0x7f & (scm_assert_cell_valid ((name)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((name)))))) [(0)])))) == 5)))) scm_misc_error (s_let, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (s_let, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
bindings = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(scm_ilength (bindings) >= 0)) scm_misc_error (s_let, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM binding = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
if (!(scm_ilength (binding) == 2)) scm_misc_error (s_let, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
if (!((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))))))))) [(0)])))) == 5)))) scm_misc_error (s_let, scm_s_variable, ((SCM) (((20) << 9) + 0x174L)));;
*varloc = scm_list_1 ((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(0)]))))))));
varloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*varloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*varloc))))))) [(1)])))));
*initloc = scm_list_1 ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((binding)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((binding)))))) [(1)]))))))))))))) [(0)]))))))));
initloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*initloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*initloc))))))) [(1)])))));
bindings = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
}
{
SCM lambda_body = scm_m_body (((SCM) (((7) << 9) + ((7) << 3) + 4L)), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), "let");
SCM lambda_form = scm_cons2 (scm_sym_lambda, vars, lambda_body);
SCM rvar = scm_list_1 (name);
SCM init = scm_list_1 (lambda_form);
SCM body = scm_m_body (((SCM) (((7) << 9) + ((7) << 3) + 4L)), scm_list_1 (name), "let");
SCM letrec = scm_cons2 (((SCM) (((9) << 9) + ((9) << 3) + 4L)), rvar, scm_cons (init, body));
return scm_cons (letrec, inits);
}
}
}
static const char s_atapply[]="@apply";
SCM scm_sym_atapply ;
SCM scm_sym_apply ;
SCM
scm_m_apply (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))) == 2)) scm_misc_error (s_atapply, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((14) << 9) + 0x74L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_atcall_cc[]="@call-with-current-continuation";
SCM scm_sym_atcall_cc ;
SCM
scm_m_cont (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))) == 1)) scm_misc_error (s_atcall_cc, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((15) << 9) + 0x74L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_nil_cond[]="nil-cond";
SCM
scm_m_nil_cond (SCM xorig, SCM env __attribute__ ((unused)))
{
long len = scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
if (!(len >= 1 && (len & 1) == 1)) scm_misc_error ("nil-cond", scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((25) << 9) + 0x74L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
static const char s_atfop[]="@fop";
SCM
scm_m_atfop (SCM xorig, SCM env __attribute__ ((unused)))
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))), var;
if (!(scm_ilength (x) >= 1)) scm_misc_error ("@fop", scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
var = scm_symbol_fref ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))));
if (!((!(6 & ((scm_t_bits) (var))) && (0x7f & (scm_assert_cell_valid ((var)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(0)])))) == 7))) scm_misc_error (((char *) ((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)]))))), "Symbol's function definition is void", ((SCM) (((20) << 9) + 0x174L)));;
while ((!(6 & ((scm_t_bits) ((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)])))))))) && ((0x7f & (scm_assert_cell_valid (((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)]))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)]))))))))))) [(0)])))) == 5)))
{
var = scm_symbol_fref ((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)]))))));
if (!((!(6 & ((scm_t_bits) (var))) && (0x7f & (scm_assert_cell_valid ((var)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(0)])))) == 7))) scm_misc_error (((char *) ((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)]))))), "Symbol's function definition is void", ((SCM) (((20) << 9) + 0x174L)));;
}
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((var)))))))));
if (!(!(6 & ((scm_t_bits) (((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)]))))))))) && (0xffff & (scm_assert_cell_valid ((((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)])))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((scm_assert_cell_valid ((var)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((var)))))) [(1)])))))))))))) [(0)])))) == (scm_tc16_macro)))
{
(((scm_assert_cell_valid (((xorig))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((xorig))))))) [(0)] = ((scm_t_bits) (((((SCM) (((14) << 9) + 0x74L)))))))))));
return xorig;
}
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)]))))))))))))) [(1)]))))))))))))))));
return x;
}
# 1123 "eval.c"
static const char s_atbind[]="@bind";
SCM
scm_m_atbind (SCM xorig, SCM env)
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))));
SCM top_level = scm_env_top_level (env);
SCM vars = ((SCM) (((20) << 9) + 0x174L)), var;
SCM exps = ((SCM) (((20) << 9) + 0x174L));
if (!(scm_ilength (x) > 1)) scm_misc_error (s_atbind, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
while ((!(6 & ((scm_t_bits) (x)))))
{
SCM rest;
SCM sym_exp = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(scm_ilength (sym_exp) == 2)) scm_misc_error (s_atbind, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
if (!((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)]))))))))))))) [(0)])))) == 5)))) scm_misc_error (s_atbind, scm_s_bindings, ((SCM) (((20) << 9) + 0x174L)));;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
for (rest = x; (!(6 & ((scm_t_bits) (rest)))); rest = (((scm_assert_cell_valid ((rest)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((rest)))))) [(1)]))))))))
if ((((scm_t_bits) ((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)]))))))))) == ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((rest)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((rest)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((rest)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((rest)))))) [(0)]))))))))))))) [(0)])))))))))))
scm_misc_error (s_atbind, scm_s_duplicate_bindings, ((SCM) (((20) << 9) + 0x174L)));
var = scm_sym2var ((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)]))))))), top_level, ((SCM) (((16) << 9) + 0x174L)));
if (((((scm_t_bits) ((var))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
var = scm_sym2var ((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(0)]))))))), top_level, ((SCM) (((17) << 9) + 0x174L)));
vars = scm_cons (var, vars);
exps = scm_cons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((sym_exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((sym_exp)))))) [(1)]))))))))))))) [(0)]))))))), exps);
}
return scm_cons (((SCM) (((26) << 9) + 0x74L)),
scm_cons (scm_cons (scm_reverse_x (vars, ((SCM) (((20) << 9) + 0x174L))), exps),
(((scm_assert_cell_valid (((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))))))))) [(1)])))))))));
}
static const char s_at_call_with_values[]="@call-with-values";
SCM scm_sym_at_call_with_values ;
SCM
scm_m_at_call_with_values (SCM xorig, SCM env __attribute__ ((unused)))
{
if (!(scm_ilength ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)])))))))) == 2)) scm_misc_error (s_at_call_with_values, scm_s_expression, ((SCM) (((20) << 9) + 0x174L)));;
return scm_cons (((SCM) (((28) << 9) + 0x74L)), (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))));
}
SCM
scm_m_expand_body (SCM xorig, SCM env)
{
SCM x = (((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(1)]))))))), defs = ((SCM) (((20) << 9) + 0x174L));
char *what = (scm_isymnames[(((scm_t_bits) ((((scm_assert_cell_valid ((xorig)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((xorig)))))) [(0)]))))))))) >> 9)]) + 2;
while ((!(6 & ((scm_t_bits) (x)))))
{
SCM form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(!(6 & ((scm_t_bits) (form))) && ((1 & (scm_assert_cell_valid ((form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))) == 0)))
break;
if (!(!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)]))))))))))))) [(0)])))) == 5)))
break;
form = scm_macroexp (scm_cons_source (form,
(((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)]))))))),
(((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)])))))))),
env);
if ((((scm_t_bits) (((SCM) (((13) << 9) + ((13) << 3) + 4L)))) == ((scm_t_bits) ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))))))))))
{
defs = scm_cons ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)]))))))), defs);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
else if (!(6 & ((scm_t_bits) (defs))))
{
break;
}
else if ((((scm_t_bits) (((SCM) (((1) << 9) + ((1) << 3) + 4L)))) == ((scm_t_bits) ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(0)])))))))))))
{
x = scm_append (scm_list_2 ((((scm_assert_cell_valid ((form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((form)))))) [(1)]))))))), (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))));
}
else
{
x = scm_cons (form, (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))));
break;
}
}
if (!((((scm_t_bits) ((defs))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM rvars, inits, body, letrec;
transform_bindings (defs, &rvars, &inits, what);
body = scm_m_body (((SCM) (((13) << 9) + ((13) << 3) + 4L)), x, what);
letrec = scm_cons2 (((SCM) (((9) << 9) + ((9) << 3) + 4L)), rvars, scm_cons (inits, body));
(((scm_assert_cell_valid (((xorig))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((xorig))))))) [(0)] = ((scm_t_bits) (((letrec)))))))));
(((scm_assert_cell_valid (((xorig))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((xorig))))))) [(1)] = ((scm_t_bits) (((((SCM) (((20) << 9) + 0x174L)))))))))));
}
else
{
if (!((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))) scm_misc_error (what, scm_s_body, ((SCM) (((20) << 9) + 0x174L)));;
(((scm_assert_cell_valid (((xorig))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((xorig))))))) [(0)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))))));
(((scm_assert_cell_valid (((xorig))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((xorig))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))))));
}
return xorig;
}
SCM
scm_macroexp (SCM x, SCM env)
{
SCM res, proc, orig_sym;
macro_tail:
orig_sym = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(!(6 & ((scm_t_bits) (orig_sym))) && ((0x7f & (scm_assert_cell_valid ((orig_sym)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((orig_sym)))))) [(0)])))) == 5)))
return x;
# 1252 "eval.c"
proc = *scm_lookupcar (x, env, 0);
if (!(!(6 & ((scm_t_bits) ((proc)))) && (0xffff & (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(0)])))) == (scm_tc16_macro)) || ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 16) != 2)
return x;
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((orig_sym)))))))));
res = scm_call_2 ((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), x, env);
if (scm_ilength (res) <= 0)
res = scm_list_2 (((SCM) (((1) << 9) + ((1) << 3) + 4L)), res);
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((res)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((res)))))) [(0)]))))))))))))))));
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((res)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((res)))))) [(1)]))))))))))))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
goto macro_tail;
}
# 1292 "eval.c"
static SCM
build_binding_list (SCM names, SCM inits)
{
SCM bindings = ((SCM) (((20) << 9) + 0x174L));
while (!((((scm_t_bits) ((names))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM binding = scm_list_2 ((((scm_assert_cell_valid ((names)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((names)))))) [(0)]))))))), (((scm_assert_cell_valid ((inits)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((inits)))))) [(0)]))))))));
bindings = scm_cons (binding, bindings);
names = (((scm_assert_cell_valid ((names)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((names)))))) [(1)])))))));
inits = (((scm_assert_cell_valid ((inits)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((inits)))))) [(1)])))))));
}
return bindings;
}
static SCM
unmemocopy (SCM x, SCM env)
{
SCM ls, z;
SCM p;
if (!(!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
return x;
p = scm_hash_fn_ref (scm_sys_protects[13], x, ((SCM) (((16) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0);
switch ((127 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))))
{
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + ((0) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_and, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((1) << 9) + ((1) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_begin, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((2) << 9) + ((2) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_case, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((3) << 9) + ((3) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_cond, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((4) << 9) + ((4) << 3) + 4L))))):
{
SCM names, inits, test, memoized_body, steps, bindings;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
names = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
inits = scm_reverse (unmemocopy ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env));
env = scm_acons (names, ((SCM) (((20) << 9) + 0x174L)), env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
test = unmemocopy ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
memoized_body = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
steps = scm_reverse (unmemocopy (x, env));
bindings = ((SCM) (((20) << 9) + 0x174L));
while (!((((scm_t_bits) ((names))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM name = (((scm_assert_cell_valid ((names)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((names)))))) [(0)])))))));
SCM init = (((scm_assert_cell_valid ((inits)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((inits)))))) [(0)])))))));
SCM step = (((scm_assert_cell_valid ((steps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((steps)))))) [(0)])))))));
step = (((scm_t_bits) (step)) == ((scm_t_bits) (name))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_list_1 (step);
bindings = scm_cons (scm_cons2 (name, init, step), bindings);
names = (((scm_assert_cell_valid ((names)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((names)))))) [(1)])))))));
inits = (((scm_assert_cell_valid ((inits)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((inits)))))) [(1)])))))));
steps = (((scm_assert_cell_valid ((steps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((steps)))))) [(1)])))))));
}
z = scm_cons (test, ((SCM) (((21) << 9) + 0x174L)));
ls = scm_cons2 (scm_sym_do, bindings, z);
x = scm_cons (((SCM) (((16) << 9) + 0x174L)), memoized_body);
break;
}
case (127 & ((scm_t_bits) (((SCM) (((5) << 9) + ((5) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_if, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((7) << 9) + ((7) << 3) + 4L))))):
{
SCM names, inits, bindings;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
names = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
inits = scm_reverse (unmemocopy ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env));
env = scm_acons (names, ((SCM) (((20) << 9) + 0x174L)), env);
bindings = build_binding_list (names, inits);
z = scm_cons (bindings, ((SCM) (((21) << 9) + 0x174L)));
ls = scm_cons (scm_sym_let, z);
break;
}
case (127 & ((scm_t_bits) (((SCM) (((9) << 9) + ((9) << 3) + 4L))))):
{
SCM names, inits, bindings;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
names = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
env = scm_acons (names, ((SCM) (((20) << 9) + 0x174L)), env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
inits = scm_reverse (unmemocopy ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env));
bindings = build_binding_list (names, inits);
z = scm_cons (bindings, ((SCM) (((21) << 9) + 0x174L)));
ls = scm_cons (scm_sym_letrec, z);
break;
}
case (127 & ((scm_t_bits) (((SCM) (((8) << 9) + ((8) << 3) + 4L))))):
{
SCM b, y;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
b = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
y = ((SCM) (((20) << 9) + 0x174L));
if (6 & ((scm_t_bits) (b)))
{
env = scm_acons (((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)), env);
goto letstar;
}
y = z = scm_acons ((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(0)]))))))),
scm_unmemocar (
scm_cons (unmemocopy ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))))))) [(0)]))))))), env), ((SCM) (((20) << 9) + 0x174L))), env),
((SCM) (((21) << 9) + 0x174L)));
env = scm_acons ((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(0)]))))))), ((SCM) (((16) << 9) + 0x174L)), env);
b = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))))))) [(1)])))))));
if ((6 & ((scm_t_bits) (b))))
{
(((scm_assert_cell_valid (((y))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((y))))))) [(1)] = ((scm_t_bits) (((((SCM) (((20) << 9) + 0x174L)))))))))));
ls = scm_cons (scm_sym_let, z = scm_cons (y, ((SCM) (((21) << 9) + 0x174L))));
break;
}
do
{
(((scm_assert_cell_valid (((z))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((z))))))) [(1)] = ((scm_t_bits) (((scm_acons ((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(0)]))))))), scm_unmemocar ( scm_list_1 (unmemocopy ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))))))) [(0)]))))))), env)), env), ((SCM) (((21) << 9) + 0x174L))))))))))));
z = (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(0)]))))))), ((SCM) (((16) << 9) + 0x174L)), env);
b = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((b)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((b)))))) [(1)]))))))))))))) [(1)])))))));
}
while ((!(6 & ((scm_t_bits) (b)))));
(((scm_assert_cell_valid (((z))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((z))))))) [(1)] = ((scm_t_bits) (((((SCM) (((20) << 9) + 0x174L)))))))))));
letstar:
ls = scm_cons (scm_sym_letstar, z = scm_cons (y, ((SCM) (((21) << 9) + 0x174L))));
break;
}
case (127 & ((scm_t_bits) (((SCM) (((10) << 9) + ((10) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_or, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((6) << 9) + ((6) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
z = scm_cons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), ((SCM) (((21) << 9) + 0x174L)));
ls = scm_cons (scm_sym_lambda, z);
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), ((SCM) (((20) << 9) + 0x174L)), env);
break;
case (127 & ((scm_t_bits) (((SCM) (((11) << 9) + ((11) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_quote, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((12) << 9) + ((12) << 3) + 4L))))):
ls = z = scm_cons (scm_sym_set_x, ((SCM) (((21) << 9) + 0x174L)));
break;
case (127 & ((scm_t_bits) (((SCM) (((13) << 9) + ((13) << 3) + 4L))))):
{
SCM n;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
n = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
z = scm_cons (n, ((SCM) (((21) << 9) + 0x174L)));
ls = scm_cons (scm_sym_define, z);
if (!((((scm_t_bits) ((env))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
env = scm_cons (scm_cons (scm_cons (n, (((scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)])))))))),
(((scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(1)])))))))),
(((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)]))))))));
break;
}
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + 0x74L))))):
z = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!((0x187 & ((scm_t_bits) (z))) == 4))
goto unmemo;
switch ((((scm_t_bits) (z)) >> 9))
{
case ((((scm_t_bits) (((SCM) (((14) << 9) + 0x74L)))) >> 9)):
ls = z = scm_cons (scm_sym_atapply, ((SCM) (((21) << 9) + 0x174L)));
goto loop;
case ((((scm_t_bits) (((SCM) (((15) << 9) + 0x74L)))) >> 9)):
ls = z = scm_cons (scm_sym_atcall_cc, ((SCM) (((21) << 9) + 0x174L)));
goto loop;
case ((((scm_t_bits) (((SCM) (((27) << 9) + 0x74L)))) >> 9)):
ls = z = scm_cons (scm_sym_delay, ((SCM) (((21) << 9) + 0x174L)));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
goto loop;
case ((((scm_t_bits) (((SCM) (((28) << 9) + 0x74L)))) >> 9)):
ls = z = scm_cons (scm_sym_at_call_with_values, ((SCM) (((21) << 9) + 0x174L)));
goto loop;
default:
;
}
unmemo:
default:
ls = z = scm_unmemocar (scm_cons (unmemocopy ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env),
((SCM) (((21) << 9) + 0x174L))),
env);
}
loop:
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while ((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
{
SCM form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!((0x187 & ((scm_t_bits) (form))) == 4))
{
SCM copy = scm_cons (unmemocopy (form, env), ((SCM) (((21) << 9) + 0x174L)));
(((scm_assert_cell_valid (((z))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((z))))))) [(1)] = ((scm_t_bits) (((scm_unmemocar (copy, env))))))))));
z = (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)])))))));
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
(((scm_assert_cell_valid (((z))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((z))))))) [(1)] = ((scm_t_bits) (((x)))))))));
if (!((((scm_t_bits) ((p))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { register SCM w = (scm_sys_protects[13]); (((scm_assert_cell_valid (((scm_hash_fn_create_handle_x (w, ls, ((SCM) (((21) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0)))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_hash_fn_create_handle_x (w, ls, ((SCM) (((21) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0)))))))) [(1)] = ((scm_t_bits) (((p))))))))); } while (0);
return ls;
}
SCM
scm_unmemocopy (SCM x, SCM env)
{
if (!((((scm_t_bits) ((env))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
return unmemocopy (x, scm_cons ((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))), (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)])))))))));
else
return unmemocopy (x, env);
}
int
scm_badargsp (SCM formals, SCM args)
{
while (!((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (!(!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0)))
return 0;
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
return 1;
formals = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
return !((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) ? 1 : 0;
}
static int
scm_badformalsp (SCM closure, int n)
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((closure)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((closure)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((closure)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((closure)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((closure)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((closure)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((closure)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((closure)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
while (!((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (!(!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0)))
return 0;
if (n == 0)
return 1;
--n;
formals = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))));
}
return n;
}
SCM
scm_eval_args (SCM l, SCM env, SCM proc)
{
SCM results = ((SCM) (((20) << 9) + 0x174L)), *lloc = &results, res;
while ((!(6 & ((scm_t_bits) (l))) && ((1 & (scm_assert_cell_valid ((l)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))) == 0)))
{
res = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)!
))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (l, env, 1) : scm_ceval ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))), env)));
*lloc = scm_list_1 (res);
lloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*lloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*lloc))))))) [(1)])))));
l = (((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(1)])))))));
}
if (!((((scm_t_bits) ((l))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
return results;
}
SCM
scm_eval_body (SCM code, SCM env)
{
SCM next;
again:
next = (((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(1)])))))));
while (!((((scm_t_bits) ((next))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))))
{
if (((0x187 & ((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) == 4))
{
code = scm_m_expand_body (code, env);
goto again;
}
}
else
((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) ? (((((scm_t_bits) (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)]))))))))) : (*scm_ceval_ptr) (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))), (env)));
code = next;
next = (((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(1)])))))));
}
return ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm!
_t_cell *) (((scm_t_bits) ((code)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (code, env, 1) : (*scm_ceval_ptr) ((((scm_assert_cell_valid ((code)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((code)))))) [(0)]))))))), env)));
}
# 1855 "eval.c"
SCM
scm_ceval (SCM x, SCM env)
{
SCM proc, arg1;
# 1877 "eval.c"
if (scm_stack_checking_enabled_p
&& ((SCM_STACKITEM *) &proc < ((SCM_STACKITEM *) ((((scm_t_contregs *) (scm_assert_cell_valid (((scm_root->rootcont))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_root->rootcont))))))) [(1)])))))->base) - scm_debug_opts[12].val)))
{
scm_report_stack_overflow ();
}
loop:
# 1956 "eval.c"
do { do { if (scm_asyncs_pending_p) scm_async_click (); } while (0); ; } while (0);
switch ((0x7f & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))
{
case 5:
x = scm_cons (x, ((SCM) (((18) << 9) + 0x174L)));
do { return *scm_lookupcar (x, env, 1); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + ((0) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((!
scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
do { return ((SCM) (((16) << 9) + 0x174L)); } while (0);
else
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
;
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((1) << 9) + ((1) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
;
begin:
if ((!(6 & ((scm_t_bits) (env))) && ((1 & (scm_assert_cell_valid ((env)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))) == 0)) && !(!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)])))) == 0)))
{
do { SCM p = scm_current_module_lookup_closure (); if (p != (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))) env = scm_top_level_env (p); } while (0);
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((!
x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
do { SCM p = scm_current_module_lookup_closure (); if (p != (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))) env = scm_top_level_env (p); } while (0);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
goto carloop;
}
else
goto nontoplevel_begin;
nontoplevel_begin:
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((6 & ((scm_t_bits) (form))))
{
if (((0x187 & ((scm_t_bits) (form))) == 4))
{
x = scm_m_expand_body (x, env);
goto nontoplevel_begin;
}
else
do { if ((((scm_t_bits) ((form))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))); } while (0);
}
else
scm_ceval (form, env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
carloop:
{
SCM last_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((!(6 & ((scm_t_bits) (last_form))) && ((1 & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 0)))
{
x = last_form;
goto loop;
}
else if ((6 & ((scm_t_bits) (last_form))))
do { return (((((scm_t_bits) (last_form)) & 0xff)==scm_tc8_iloc) ? *scm_ilookup ((last_form), env) : (((((scm_t_bits) ((last_form))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), (last_form))); } while (0);
else if ((!(6 & ((scm_t_bits) (last_form))) && (0x7f & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 7))
do { return (scm_assert_cell_valid ((last_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(1)]))))); } while (0);
else if ((!(6 & ((scm_t_bits) (last_form))) && ((0x7f & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 5)))
do { return *scm_lookupcar (x, env, 1); } while (0);
else
do { return last_form; } while (0);
}
case (127 & ((scm_t_bits) (((SCM) (((2) << 9) + ((2) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM key = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits!
) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM labels = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))));
if ((((scm_t_bits) (labels)) == ((scm_t_bits) (scm_sym_else))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
;
goto begin;
}
while (!((((scm_t_bits) ((labels))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM label = (((scm_assert_cell_valid ((labels)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((labels)))))) [(0)])))))));
if ((((scm_t_bits) (label)) == ((scm_t_bits) (key))) || !((((scm_t_bits) ((scm_eqv_p (label, key)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
;
goto begin;
}
labels = (((scm_assert_cell_valid ((labels)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((labels)))))) [(1)])))))));
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
}
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((3) << 9) + ((3) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))) == ((scm_t_bits) (scm_sym_else))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
;
goto begin;
}
else
{
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), (((!
(SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (clause, env, 1) : scm_ceval ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return arg1; } while (0);
else if (!(((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) == ((scm_t_bits) (scm_sym_arrow))))
{
;
goto begin;
}
else
{
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const!
scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
;
;
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)) && scm_badformalsp (proc, 1))
goto umwrongnumargs;
else
goto evap1;
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
}
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((4) << 9) + ((4) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), init_values, env);
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
{
SCM test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM body_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM step_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((sc!
m_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_ceval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
while (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
{
{
SCM temp_forms;
for (temp_forms = body_forms;
!((((scm_t_bits) ((temp_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))));
temp_forms = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(1)]))))))))
{
SCM form = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))));
# 2157 "eval.c"
if (!(6 & ((scm_t_bits) (form))))
scm_ceval (form, env);
}
}
{
SCM temp_forms;
SCM step_values = ((SCM) (((20) << 9) + 0x174L));
for (temp_forms = step_forms;
!((((scm_t_bits) ((temp_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))));
temp_forms = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(1)]))))))))
{
SCM value = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_!
t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (temp_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))), env)));
step_values = scm_cons (value, step_values);
}
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)]))))))), step_values, (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)]))))))));
}
test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((sc!
m_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_ceval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
}
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
;
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((5) << 9) + ((5) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((sc!
m_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
else
{
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
}
}
;
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((7) << 9) + ((7) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
do
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), init_values, env);
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
;
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((9) << 9) + ((9) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), scm_sys_protects[2], env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
do
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
(((scm_assert_cell_valid ((((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))))))) [(1)] = ((scm_t_bits) (((init_values)))))))));
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
;
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((8) << 9) + ((8) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM bindings = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
env = scm_acons (((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)), env);
else
{
do
{
SCM name = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
SCM init = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
env = scm_acons (name, ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM!
) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init, env, 1) : scm_ceval ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))), env))), env);
bindings = (((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
;
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((10) << 9) + ((10) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM val = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((val))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((val))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
do { return val; } while (0);
else
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
;
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((6) << 9) + ((6) << 3) + 4L))))):
do { return scm_closure ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((11) << 9) + ((11) << 3) + 4L))))):
do { return (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)]))))))); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((12) << 9) + ((12) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM *location;
SCM variable = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (((((scm_t_bits) (variable)) & 0xff)==scm_tc8_iloc))
location = scm_ilookup (variable, env);
else if ((!(6 & ((scm_t_bits) (variable))) && (0x7f & (scm_assert_cell_valid ((variable)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((variable)))))) [(0)])))) == 7))
location = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((variable))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((variable))))))) [(1)])))));
else
location = scm_lookupcar (x, env, 1);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
*location = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
}
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((13) << 9) + ((13) << 3) + 4L))))):
scm_misc_error (((void *)0), "Bad define placement", ((SCM) (((20) << 9) + 0x174L)));
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + 0x74L))))):
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(((0x187 & ((scm_t_bits) (proc))) == 4))) goto badfun;
switch ((((scm_t_bits) (proc)) >> 9))
{
case ((((scm_t_bits) (((SCM) (((14) << 9) + 0x74L)))) >> 9)):
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits !
*) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
;
arg1 = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_b!
its *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (arg1, env, 1) : scm_ceval ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), env)));
apply_closure:
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
if (scm_badargsp (formals, arg1))
scm_wrong_num_args (proc);
;
if ((((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
env = scm_acons (formals, ((SCM) (((20) << 9) + 0x174L)), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
else
{
SCM args = scm_list_1 ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))));
SCM tail = args;
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
while (!(((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
{
SCM new_tail = scm_list_1 ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))));
(((scm_assert_cell_valid (((tail))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tail))))))) [(1)] = ((scm_t_bits) (((new_tail)))))))));
tail = new_tail;
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
env = scm_acons (formals, args, (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
else
{
proc = scm_f_apply;
goto evapply;
}
case ((((scm_t_bits) (((SCM) (((15) << 9) + 0x74L)))) >> 9)):
{
int first;
SCM val = scm_make_continuation (&first);
if (!first)
do { return val; } while (0);
else
{
arg1 = val;
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = scm_eval_car (proc, env);
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badfun;
;
;
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)) && scm_badformalsp (proc, 1))
goto umwrongnumargs;
goto evap1;
}
}
case ((((scm_t_bits) (((SCM) (((27) << 9) + 0x74L)))) >> 9)):
do { return scm_makprom (scm_closure ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env)); } while (0);
case ((((scm_t_bits) (((SCM) (((22) << 9) + 0x74L)))) >> 9)):
{
SCM operand_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
;
if (((((scm_t_bits) (operand_forms)) & 0xff)==scm_tc8_iloc))
arg1 = *scm_ilookup (operand_forms, env);
else if ((!(6 & ((scm_t_bits) (operand_forms))) && (0x7f & (scm_assert_cell_valid ((operand_forms)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))) == 7))
arg1 = (scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))));
else if (!(!(6 & ((scm_t_bits) (operand_forms))) && ((1 & (scm_assert_cell_valid ((operand_forms)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))) == 0)))
arg1 = *scm_lookupcar ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env, 1);
else
{
SCM tail = arg1 = scm_list_1 (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operan!
d_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (operand_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))), env))));
operand_forms = (((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))))));
while (!((((scm_t_bits) ((operand_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM new_tail = scm_list_1 (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((opera!
nd_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (operand_forms, env, 1) : scm_ceval ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))), env))));
(((scm_assert_cell_valid (((tail))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tail))))))) [(1)] = ((scm_t_bits) (((new_tail)))))))));
tail = new_tail;
operand_forms = (((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))))));
}
}
}
type_dispatch:
# 2440 "eval.c"
{
unsigned long int specializers;
unsigned long int hash_value;
unsigned long int cache_end_pos;
unsigned long int mask;
SCM method_cache;
{
SCM z = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
SCM tmp = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
specializers = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) >> (2)));
if ((2 & ((scm_t_bits) (tmp))))
{
# 2474 "eval.c"
unsigned long int hashset = ((((scm_t_signed_bits) ((scm_t_bits) (tmp))) >> (2)));
unsigned long int counter = specializers + 1;
SCM tmp_arg = arg1;
hash_value = 0;
while (!((((scm_t_bits) ((tmp_arg))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) && counter != 0)
{
SCM class = scm_class_of ((((scm_assert_cell_valid ((tmp_arg)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp_arg)))))) [(0)]))))))));
hash_value += (((scm_t_bits *) (scm_assert_cell_valid ((class)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((class)))))) [(1)])))) [6 + (hashset)]);
tmp_arg = (((scm_assert_cell_valid ((tmp_arg)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp_arg)))))) [(1)])))))));
counter--;
}
z = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(1)])))))));
method_cache = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
mask = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) >> (2)));
hash_value &= mask;
cache_end_pos = hash_value;
}
else
{
method_cache = tmp;
mask = (unsigned long int) ((long) -1);
hash_value = 0;
cache_end_pos = (((unsigned long) (scm_assert_cell_valid ((method_cache)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((method_cache)))))) [(0)])))) >> 8);
}
}
{
# 2512 "eval.c"
SCM z;
do
{
SCM args = arg1;
z = ((const SCM *) (scm_assert_cell_valid ((method_cache)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((method_cache)))))) [(1)]))))[hash_value];
while (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM class_of_arg = scm_class_of ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))));
if (!(((scm_t_bits) (class_of_arg)) == ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))))
goto next_method;
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
z = (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)])))))));
}
if (((((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || (!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))))))))) [(0)])))) == 0)))
goto apply_cmethod;
next_method:
hash_value = (hash_value + 1) & mask;
} while (hash_value != cache_end_pos);
z = scm_memoize_method (x, arg1);
apply_cmethod:
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
env = scm_acons (formals, arg1, (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
}
case ((((scm_t_bits) (((SCM) (((23) << 9) + 0x74L)))) >> 9)):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM instance = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s!
cm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
unsigned long int slot = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))))))) >> (2)));
do { return ((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((instance)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((instance)))))) [(1)])))) [slot])); } while (0);
}
case ((((scm_t_bits) (((SCM) (((24) << 9) + 0x74L)))) >> 9)):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM instance = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s!
cm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
unsigned long int slot = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))))))) >> (2)));
SCM value = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm!
_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((!
(((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM!
) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((sc!
m_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM)!
(((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))!
)))))) [(0)])))) == 5)) ? *scm_lookupcar ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))), env, 1) : scm_ceval ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))!
) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))), env)));
((scm_t_bits *) (scm_assert_cell_valid ((instance)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((instance)))))) [(1)])))) [slot] = ((scm_t_bits) (value));
do { return ((SCM) (((21) << 9) + 0x174L)); } while (0);
}
case ((((scm_t_bits) (((SCM) (((25) << 9) + 0x74L)))) >> 9)):
{
SCM test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = (((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(1)])))))));
while (!(((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits!
) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_ceval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
if (!(((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))
|| (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))))
{
if ((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) == ((scm_t_bits) (((SCM) (((21) << 9) + 0x174L))))))
do { return test_result; } while (0);
;
goto carloop;
}
else
{
test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = (((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(1)])))))));
}
}
x = test_form;
;
goto carloop;
}
case ((((scm_t_bits) (((SCM) (((26) << 9) + 0x74L)))) >> 9)):
{
SCM vars, exps, vals;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
vars = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))))));
exps = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)])))))));
vals = ((SCM) (((20) << 9) + 0x174L));
while ((!(6 & ((scm_t_bits) (exps)))))
{
vals = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((c!
onst scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (exps, env, 1) : scm_ceval ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))), env))), vals);
exps = (((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(1)])))))));
}
scm_swap_bindings (vars, vals);
(scm_root->dynwinds) = scm_acons (vars, vals, (scm_root->dynwinds));
for (x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))); !((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))); x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))
{
if ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 0)))
scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
}
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bit!
s) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
(scm_root->dynwinds) = (((scm_assert_cell_valid (((scm_root->dynwinds))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_root->dynwinds))))))) [(1)])))))));
scm_swap_bindings (vars, vals);
do { return proc; } while (0);
}
case ((((scm_t_bits) (((SCM) (((28) << 9) + 0x74L)))) >> 9)):
{
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *!
) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
proc = (((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bit!
s *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
arg1 = scm_apply (x, ((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)));
if (((!(6 & ((scm_t_bits) (arg1))) && ((7 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 1)) && (((scm_t_bits) (scm_struct_vtable (arg1))) == ((scm_t_bits) (scm_values_vtable)))))
arg1 = scm_struct_ref (arg1, ((((SCM) ((((scm_t_signed_bits) (0)) << 2) + 2)))));
else
arg1 = scm_list_1 (arg1);
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
;
goto apply_closure;
}
return scm_apply (proc, arg1, ((SCM) (((20) << 9) + 0x174L)));
}
default:
goto badfun;
}
default:
proc = x;
badfun:
scm_misc_error (((void *)0), "Wrong type to apply: ~S", scm_list_1 (proc));
case 13:
case 15:
case 71:
case 77:
case 55:
case 79:
case 37:
case 45:
case 47:
case 53:
case 29:
case 21:
case 127:
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
case 63:
case 31:
case 103:case 85:case 87:case 93: case 95:case 101:case 69:case 109: case 111:case 117:case 119:
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
do { return x; } while (0);
case 7:
do { return (scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))); } while (0);
case (127 & ((scm_t_bits) (((SCM) (((0L) << 8) + scm_tc8_iloc))))):
proc = *scm_ilookup ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badfun;
goto checkargs;
case 0:case 8:case 16:case 24: case 32:case 40:case 48:case 56: case 64:case 72:case 80:case 88: case 96:case 104:case 112:case 120:
if ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)))
{
SCM orig_sym = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
# 2706 "eval.c"
proc = *scm_lookupcar (x, env, 1);
if ((6 & ((scm_t_bits) (proc))))
{
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((orig_sym)))))))));
goto badfun;
}
if ((!(6 & ((scm_t_bits) ((proc)))) && (0xffff & (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(0)])))) == (scm_tc16_macro)))
{
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((orig_sym)))))))));
handle_a_macro:
arg1 = scm_apply ((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), x,
scm_cons (env, scm_sys_protects[1]));
switch (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 16))
{
case 2:
if (scm_ilength (arg1) <= 0)
arg1 = scm_list_2 (((SCM) (((1) << 9) + ((1) << 3) + 4L)), arg1);
# 2750 "eval.c"
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))))))))));
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)]))))))))))))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
;
goto loop;
case 1:
x = arg1;
if ((!(6 & ((scm_t_bits) (x)))))
{
;
goto loop;
}
else
do { return arg1; } while (0);
case 0:
do { return arg1; } while (0);
}
}
}
else
proc = scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
checkargs:
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
SCM args = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (!(!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0)))
goto evapply;
if ((6 & ((scm_t_bits) (args))))
goto umwrongnumargs;
formals = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
if (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
goto umwrongnumargs;
}
else if ((!(6 & ((scm_t_bits) ((proc)))) && (0xffff & (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(0)])))) == (scm_tc16_macro)))
goto handle_a_macro;
}
evapply:
;
if (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))) {
;
evap0:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 85:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (); } while (0);
case 109:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((18) << 9) + 0x174L))); } while (0);
case 119:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((20) << 9) + 0x174L))); } while (0);
case 69:
do { return ((SCM) (((17) << 9) + 0x174L)); } while (0);
case 103:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((18) << 9) + 0x174L)), ((SCM) (((18) << 9) + 0x174L))); } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_0 (proc)); } while (0);
case 63:
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
goto evap1;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap0;
if (scm_badformalsp (proc, 0))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), ((SCM) (((20) << 9) + 0x174L)), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bit!
s) ((proc)))))) [(1)]))))));
goto nontoplevel_begin;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = ((SCM) (((20) << 9) + 0x174L));
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
if ((!(6 & ((scm_t_bits) (proc)))))
goto evap1;
else
goto badfun;
}
case 87:
case 101:
case 111:
case 93:
case 95:
case 117:
umwrongnumargs:
scm_unmemocar (x, env);
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if ((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x))!
)))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
else
scm_wrong_num_args (proc);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM arg2;
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
;
evap1:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 111:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L))); } while (0);
case 87:
case 109:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1); } while (0);
case 93:
if (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))
{
if ((2 & ((scm_t_bits) (arg1))))
{
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((double) ((((scm_t_signed_bits) ((scm_t_bits) (arg1))) >> (2))))); } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && (0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 2 * 256L)))
{
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((((scm_t_double *) ((scm_t_cell *) (((scm_t_bits) (arg1)))))->real))); } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && ((0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 1 * 256L))))
{
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_i_big2dbl (arg1))); } while (0);
}
return (((scm_t_bits) (*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic))) ? scm_call_generic_1 ((*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic)), (arg1)) : (scm_wrong_type_arg ((((char *) ((scm_assert_cell_valid ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))))))) [(1)])))))), (1), (arg1)), ((SCM) (((21) << 9) + 0x174L))));
}
proc = ((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name);
{
char *chrs = ((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))) + (((unsigned long) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8) - 1;
while ('c' != *--chrs)
{
if (!((!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))) scm_wrong_type_arg (((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), 1, arg1);
arg1 = ('a' == *chrs) ? (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))) : (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
do { return arg1; } while (0);
}
case 69:
do { return ((SCM) (((17) << 9) + 0x174L)); } while (0);
case 103:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L))); } while (0);
case 119:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_list_1 (arg1)); } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_1 (proc, (arg1))); } while (0);
case 63:
arg2 = arg1;
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
goto evap2;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap1;
if (scm_badformalsp (proc, 1))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), scm_list_1 (arg1), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc!
)))))) [(1)]))))));
goto nontoplevel_begin;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = scm_list_1 (arg1);
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
arg2 = arg1;
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
if ((!(6 & ((scm_t_bits) (proc)))))
goto evap2;
else
goto badfun;
}
case 101:
case 85:
case 95:
case 117:
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
if ((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
arg2 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x!
)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
else
scm_wrong_num_args (proc);
{
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))) {
;
evap2:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 101:
case 111:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2); } while (0);
case 119:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_list_2 (arg1, arg2)); } while (0);
case 117:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, ((SCM) (((20) << 9) + 0x174L))); } while (0);
case 69:
case 103:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2); } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_2 (proc, (arg1), (arg2))); } while (0);
cclon:
case 63:
do { return scm_apply (((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0])))), scm_cons2 (proc, arg1, scm_cons (arg2, scm_eval_args (x, env, proc))), ((SCM) (((20) << 9) + 0x174L))); } while (0);
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = scm_list_2 (arg1, arg2);
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
operatorn:
do { return scm_apply ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0) ? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5]))) : (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure), scm_cons2 (proc, arg1, scm_cons (arg2, scm_eval_args (x, env, proc))), ((SCM) (((20) << 9) + 0x174L))); } while (0);
# 3093 "eval.c"
}
case 85:
case 93:
case 109:
case 87:
case 95:
scm_wrong_num_args (proc);
default:
goto badfun;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap2;
if (scm_badformalsp (proc, 2))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))),
scm_list_2 (arg1, arg2), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
if (!(!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
scm_wrong_num_args (proc);
;
evap3:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
# 3193 "eval.c"
case 95:
if (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (!
(x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)))); } while (0);
case 103:
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2);
do
{
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))(arg1, ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [!
(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env))));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
while ((!(6 & ((scm_t_bits) (x)))));
do { return arg1; } while (0);
case 69:
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { return ((SCM) (((16) << 9) + 0x174L)); } while (0);
do
{
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_b!
its) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_ceval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg2, arg1)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { return ((SCM) (((16) << 9) + 0x174L)); } while (0);
arg2 = arg1;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
while ((!(6 & ((scm_t_bits) (x)))));
do { return ((SCM) (((17) << 9) + 0x174L)); } while (0);
case 117:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, scm_eval_args (x, env, proc)); } while (0);
case 119:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_cons2 (arg1, arg2, scm_eval_args (x, env, proc))); } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_3 (proc, (arg1), (arg2), (scm_eval_args (x, env, proc)))); } while (0);
case 63:
goto cclon;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap3;
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
if (((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| ((!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0))
&& (((((scm_t_bits) (((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)]))))))))))))) [(0)])))) == 0))
&& scm_badargsp ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)]))))))))))))) [(1)]))))))), x)))))
goto umwrongnumargs;
}
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))),
scm_cons2 (arg1,
arg2,
scm_eval_args (x, env, proc)),
(scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
arg1 = scm_cons2 (arg1, arg2, scm_eval_args (x, env, proc));
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
goto operatorn;
case 101:
case 109:
case 111:
case 85:
case 93:
case 87:
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
}
# 3314 "eval.c"
}
# 3326 "eval.c"
SCM
scm_call_0 (SCM proc)
{
return scm_apply (proc, ((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)));
}
SCM
scm_call_1 (SCM proc, SCM arg1)
{
return scm_apply (proc, arg1, scm_sys_protects[1]);
}
SCM
scm_call_2 (SCM proc, SCM arg1, SCM arg2)
{
return scm_apply (proc, arg1, scm_cons (arg2, scm_sys_protects[1]));
}
SCM
scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3)
{
return scm_apply (proc, arg1, scm_cons2 (arg2, arg3, scm_sys_protects[1]));
}
SCM
scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4)
{
return scm_apply (proc, arg1, scm_cons2 (arg2, arg3,
scm_cons (arg4, scm_sys_protects[1])));
}
SCM
scm_apply_0 (SCM proc, SCM args)
{
return scm_apply (proc, args, ((SCM) (((20) << 9) + 0x174L)));
}
SCM
scm_apply_1 (SCM proc, SCM arg1, SCM args)
{
return scm_apply (proc, scm_cons (arg1, args), ((SCM) (((20) << 9) + 0x174L)));
}
SCM
scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args)
{
return scm_apply (proc, scm_cons2 (arg1, arg2, args), ((SCM) (((20) << 9) + 0x174L)));
}
SCM
scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args)
{
return scm_apply (proc, scm_cons (arg1, scm_cons2 (arg2, arg3, args)),
((SCM) (((20) << 9) + 0x174L)));
}
# 3404 "eval.c"
static const char s_scm_nconc2last [] = "apply:nconc2last"; SCM scm_nconc2last (SCM lst)
# 3414 "eval.c"
{
SCM *lloc;
do { if (!(scm_ilength (lst) > 0)) scm_wrong_type_arg (s_scm_nconc2last, 1, lst); } while (0);
lloc = &lst;
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((*lloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*lloc)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
lloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*lloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*lloc))))))) [(1)])))));
if (!(scm_ilength ((((scm_assert_cell_valid ((*lloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*lloc)))))) [(0)])))))))) >= 0)) scm_wrong_type_arg (s_scm_nconc2last, 1, lst);
*lloc = (((scm_assert_cell_valid ((*lloc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((*lloc)))))) [(0)])))))));
return lst;
}
# 3460 "eval.c"
SCM
scm_apply (SCM proc, SCM arg1, SCM args)
{
# 3474 "eval.c"
if (scm_debug_mode)
return scm_dapply (proc, arg1, args);
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badproc;
# 3493 "eval.c"
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
arg1 = ((SCM) (((18) << 9) + 0x174L));
}
else
{
args = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))));
}
}
else
{
args = scm_nconc2last (args);
}
# 3539 "eval.c"
tail:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 111:
args = ((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) ? ((SCM) (((18) << 9) + 0x174L)) : (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, args); } while (0);
case 101:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || !((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, args); } while (0);
case 85:
if (!((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (); } while (0);
case 87:
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
case 109:
if (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1); } while (0);
case 93:
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) || !((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
if (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))
{
if ((2 & ((scm_t_bits) (arg1))))
{
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((double) ((((scm_t_signed_bits) ((scm_t_bits) (arg1))) >> (2))))); } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && (0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 2 * 256L)))
{
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((((scm_t_double *) ((scm_t_cell *) (((scm_t_bits) (arg1)))))->real))); } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && ((0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 1 * 256L))))
do { return scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_i_big2dbl (arg1))); } while (0);
return (((scm_t_bits) (*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic))) ? scm_call_generic_1 ((*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic)), (arg1)) : (scm_wrong_type_arg ((((char *) ((scm_assert_cell_valid ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))))))) [(1)])))))), (1), (arg1)), ((SCM) (((21) << 9) + 0x174L))));
}
proc = ((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name);
{
char *chrs = ((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))) + (((unsigned long) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8) - 1;
while ('c' != *--chrs)
{
if (!((!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))) scm_wrong_type_arg (((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), 1, arg1);
arg1 = ('a' == *chrs) ? (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))) : (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
do { return arg1; } while (0);
}
case 95:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| ((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| !((((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))), (((scm_assert_cell_valid (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))))))) [(0)])))))))); } while (0);
case 119:
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_cons (arg1, args)); } while (0);
case 117:
if (!(!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))
scm_wrong_num_args (proc);
else
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))), (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))); } while (0);
case 103:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L))); } while (0);
while ((!(6 & ((scm_t_bits) (args)))))
{
if (!((!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))) scm_wrong_type_arg ("apply", 2, args);
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
do { return arg1; } while (0);
case 69:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((SCM) (((17) << 9) + 0x174L)); } while (0);
while ((!(6 & ((scm_t_bits) (args)))))
{
if (!((!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))) scm_wrong_type_arg ("apply", 2, args);
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))))))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { return ((SCM) (((16) << 9) + 0x174L)); } while (0);
arg1 = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
do { return ((SCM) (((17) << 9) + 0x174L)); } while (0);
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
arg1 = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_cons (arg1, args));
if (scm_badargsp ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), arg1))
scm_wrong_num_args (proc);
if ((6 & ((scm_t_bits) (arg1))))
args = arg1;
else
{
SCM tl = args = scm_cons ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), ((SCM) (((21) << 9) + 0x174L)));
while (arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)]))))))), (!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))
{
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((scm_cons ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), ((SCM) (((21) << 9) + 0x174L))))))))))));
tl = (((scm_assert_cell_valid ((tl)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tl)))))) [(1)])))))));
}
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((arg1)))))))));
}
args = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), args, (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
proc = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
again:
arg1 = proc;
while (!((((scm_t_bits) ((arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))))
{
if (((0x187 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == 4))
{
proc = scm_m_expand_body (proc, args);
goto again;
}
else
do { if ((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))); } while (0);
}
else
scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), args);
proc = arg1;
}
do { return ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), args) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bit!
s *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, args, 1) : scm_ceval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), args))); } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badproc;
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_0 (proc)); } while (0);
else if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_1 (proc, (arg1))); } while (0);
else if (((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_2 (proc, (arg1), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))))))); } while (0);
else
do { return ((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_3 (proc, (arg1), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))))), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))); } while (0);
case 63:
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_cons (arg1, args));
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
goto tail;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
goto tail;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_cons (arg1, args));
do { return scm_apply_generic (proc, args); } while (0);
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badproc;
else
{
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : scm_cons (arg1, args));
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
if ((!(6 & ((scm_t_bits) (proc)))))
goto tail;
else
goto badproc;
}
default:
badproc:
scm_wrong_type_arg ("apply", 1, proc);
}
# 3774 "eval.c"
}
# 3787 "eval.c"
static inline void
check_map_args (SCM argv,
long len,
SCM gf,
SCM proc,
SCM args,
const char *who)
{
SCM const *ve = ((const SCM *) (scm_assert_cell_valid ((argv)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((argv)))))) [(1)]))));
long i;
for (i = (((unsigned long) (scm_assert_cell_valid ((argv)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((argv)))))) [(0)])))) >> 8) - 1; i >= 1; i--)
{
long elt_len = scm_ilength (ve[i]);
if (elt_len < 0)
{
if (gf)
scm_apply_generic (gf, scm_cons (proc, args));
else
scm_wrong_type_arg (who, i + 2, ve[i]);
}
if (elt_len != len)
scm_out_of_range (who, ve[i]);
}
scm_remember_upto_here_1 (argv);
}
static const char s_map[]="map";static SCM g_map;
# 3827 "eval.c"
SCM
scm_map (SCM proc, SCM arg1, SCM args)
{
long i, len;
SCM res = ((SCM) (((20) << 9) + 0x174L));
SCM *pres = &res;
SCM const *ve = &args;
len = scm_ilength (arg1);
if (!(len >= 0)) return (((scm_t_bits) ((g_map))) ? scm_apply_generic (((g_map)), ((scm_cons2 (proc, arg1, args)))) : (scm_wrong_type_arg (((s_map)), ((2)), scm_list_ref (((scm_cons2 (proc, arg1, args))), (((SCM) ((((scm_t_signed_bits) (((2)) - 1)) << 2) + 2))))), ((SCM) (((21) << 9) + 0x174L))));
do { if (0) { if (scm_ilength (args) < 0) { do { scm_misc_error (s_map, "Rest arguments do not form a proper list.", ((SCM) (((20) << 9) + 0x174L))); } while (0); } } } while (0);
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
while ((!(6 & ((scm_t_bits) (arg1)))))
{
*pres = scm_list_1 (scm_apply (proc, (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), scm_sys_protects[1]));
pres = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*pres))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*pres))))))) [(1)])))));
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
return res;
}
args = scm_vector (arg1 = scm_cons (arg1, args));
ve = ((const SCM *) (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))));
check_map_args (args, len, g_map, proc, arg1, s_map);
while (1)
{
arg1 = ((SCM) (((20) << 9) + 0x174L));
for (i = (((unsigned long) (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) >> 8) - 1; i >= 0; i--)
{
if ((6 & ((scm_t_bits) (ve[i]))))
return res;
arg1 = scm_cons ((((scm_assert_cell_valid ((ve[i])), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ve[i])))))) [(0)]))))))), arg1);
(((SCM*)(scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))[(i)] = ((((scm_assert_cell_valid ((ve[i])), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ve[i])))))) [(1)])))))))));
}
*pres = scm_list_1 (scm_apply (proc, arg1, ((SCM) (((20) << 9) + 0x174L))));
pres = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*pres))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*pres))))))) [(1)])))));
}
}
static const char s_for_each[]="for-each";static SCM g_for_each;
SCM
scm_for_each (SCM proc, SCM arg1, SCM args)
{
SCM const *ve = &args;
long i, len;
len = scm_ilength (arg1);
if (!(len >= 0)) return (((scm_t_bits) ((g_for_each))) ? scm_apply_generic (((g_for_each)), ((scm_cons2 (proc, arg1, args)))) : (scm_wrong_type_arg (((s_for_each)), ((2)), scm_list_ref (((scm_cons2 (proc, arg1, args))), (((SCM) ((((scm_t_signed_bits) (((2)) - 1)) << 2) + 2))))), ((SCM) (((21) << 9) + 0x174L))));
do { if (0) { if (scm_ilength (args) < 0) { do { scm_misc_error (s_for_each, "Rest arguments do not form a proper list.", ((SCM) (((20) << 9) + 0x174L))); } while (0); } } } while (0);
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
while ((!(6 & ((scm_t_bits) (arg1)))))
{
scm_apply (proc, (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), scm_sys_protects[1]);
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
return ((SCM) (((21) << 9) + 0x174L));
}
args = scm_vector (arg1 = scm_cons (arg1, args));
ve = ((const SCM *) (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))));
check_map_args (args, len, g_for_each, proc, arg1, s_for_each);
while (1)
{
arg1 = ((SCM) (((20) << 9) + 0x174L));
for (i = (((unsigned long) (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) >> 8) - 1; i >= 0; i--)
{
if ((6 & ((scm_t_bits) (ve[i]))))
return ((SCM) (((21) << 9) + 0x174L));
arg1 = scm_cons ((((scm_assert_cell_valid ((ve[i])), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ve[i])))))) [(0)]))))))), arg1);
(((SCM*)(scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))[(i)] = ((((scm_assert_cell_valid ((ve[i])), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ve[i])))))) [(1)])))))))));
}
scm_apply (proc, arg1, ((SCM) (((20) << 9) + 0x174L)));
}
}
SCM
scm_closure (SCM code, SCM env)
{
SCM z;
SCM closcar = scm_cons (code, ((SCM) (((20) << 9) + 0x174L)));
z = scm_cell (((scm_t_bits) (closcar)) + 3, (scm_t_bits) env);
scm_remember_upto_here (closcar);
return z;
}
scm_t_bits scm_tc16_promise;
SCM
scm_makprom (SCM code)
{
do { SCM __SCM_smob_answer; do { __SCM_smob_answer = scm_cell (((scm_tc16_promise)), (scm_t_bits) ((((scm_t_bits) (code))))); } while (0); return __SCM_smob_answer; } while (0);
}
static int
promise_print (SCM exp, SCM port, scm_print_state *pstate)
{
int writingp = ((pstate)->writingp);
scm_puts ("#<promise ", port);
{ (pstate)->writingp = (1); };
scm_iprin1 ((scm_assert_cell_valid ((exp)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exp)))))) [(1)]))))), port, pstate);
{ (pstate)->writingp = (writingp); };
scm_putc ('>', port);
return !0;
}
static const char s_scm_force [] = "force"; SCM scm_force (SCM x)
{
do { if (!((!(6 & ((scm_t_bits) (x))) && (0xffff & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == (scm_tc16_promise)))) scm_wrong_type_arg (s_scm_force, 1, x); } while (0);
if (!((1L << 16) & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))
{
SCM ans = scm_call_0 ((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))));
if (!((1L << 16) & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))
{
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
(scm_assert_cell_valid ((x)), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)] = ((scm_t_bits) ((ans))))));
(scm_assert_cell_valid ((x)), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)] = (scm_t_bits) (((scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))) | (1L << 16))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
}
}
return (scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))));
}
static const char s_scm_promise_p [] = "promise?"; SCM scm_promise_p (SCM obj)
{
return (((!(6 & ((scm_t_bits) (obj))) && (0xffff & (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))) == (scm_tc16_promise))) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L)));
}
static const char s_scm_cons_source [] = "cons-source"; SCM scm_cons_source (SCM xorig, SCM x, SCM y)
{
SCM p, z;
z = scm_cons (x, y);
p = scm_hash_fn_ref (scm_sys_protects[13], xorig, ((SCM) (((16) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0);
if (!(6 & ((scm_t_bits) (p))))
do { register SCM w = (scm_sys_protects[13]); (((scm_assert_cell_valid (((scm_hash_fn_create_handle_x (w, z, ((SCM) (((21) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0)))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_hash_fn_create_handle_x (w, z, ((SCM) (((21) << 9) + 0x174L)), scm_ihashq, scm_sloppy_assq, 0)))))))) [(1)] = ((scm_t_bits) (((p))))))))); } while (0);
return z;
}
static const char s_scm_copy_tree [] = "copy-tree"; SCM scm_copy_tree (SCM obj)
{
SCM ans, tl;
if ((6 & ((scm_t_bits) (obj))))
return obj;
if ((!(6 & ((scm_t_bits) (obj))) && (((0x7f & ~2) & (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))) == 13)))
{
unsigned long i = (((unsigned long) (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))) >> 8);
ans = scm_c_make_vector (i, ((SCM) (((21) << 9) + 0x174L)));
while (i--)
(((SCM*)(scm_assert_cell_valid ((ans)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ans)))))) [(1)]))))[(i)] = (scm_copy_tree (((const SCM *) (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(1)]))))[i])));
return ans;
}
if (!(!(6 & ((scm_t_bits) (obj))) && ((1 & (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))) == 0)))
return obj;
ans = tl = scm_cons_source (obj,
scm_copy_tree ((((scm_assert_cell_valid ((obj)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))))))),
((SCM) (((21) << 9) + 0x174L)));
while (obj = (((scm_assert_cell_valid ((obj)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(1)]))))))), (!(6 & ((scm_t_bits) (obj))) && ((1 & (scm_assert_cell_valid ((obj)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))) == 0)))
{
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((scm_cons (scm_copy_tree ((((scm_assert_cell_valid ((obj)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((obj)))))) [(0)])))))))), ((SCM) (((21) << 9) + 0x174L))))))))))));
tl = (((scm_assert_cell_valid ((tl)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tl)))))) [(1)])))))));
}
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((obj)))))))));
return ans;
}
# 4069 "eval.c"
SCM
scm_i_eval_x (SCM exp, SCM env)
{
return ((6 & ((scm_t_bits) (exp))) ? (((((scm_t_bits) ((exp))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), (exp)) : (*scm_ceval_ptr) ((exp), (env)));
}
SCM
scm_i_eval (SCM exp, SCM env)
{
exp = scm_copy_tree (exp);
return ((6 & ((scm_t_bits) (exp))) ? (((((scm_t_bits) ((exp))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), (exp)) : (*scm_ceval_ptr) ((exp), (env)));
}
SCM
scm_primitive_eval_x (SCM exp)
{
SCM env;
SCM transformer = scm_current_module_transformer ();
if ((!(6 & ((scm_t_bits) (transformer)))))
exp = scm_call_1 (transformer, exp);
env = scm_top_level_env (scm_current_module_lookup_closure ());
return scm_i_eval_x (exp, env);
}
static const char s_scm_primitive_eval [] = "primitive-eval"; SCM scm_primitive_eval (SCM exp)
{
SCM env;
SCM transformer = scm_current_module_transformer ();
if ((!(6 & ((scm_t_bits) (transformer)))))
exp = scm_call_1 (transformer, exp);
env = scm_top_level_env (scm_current_module_lookup_closure ());
return scm_i_eval (exp, env);
}
static void
change_environment (void *data)
{
SCM pair = ((SCM) (data));
SCM new_module = (((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(0)])))))));
SCM old_module = scm_current_module ();
(((scm_assert_cell_valid (((pair))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((pair))))))) [(1)] = ((scm_t_bits) (((old_module)))))))));
scm_set_current_module (new_module);
}
static void
restore_environment (void *data)
{
SCM pair = ((SCM) (data));
SCM old_module = (((scm_assert_cell_valid ((pair)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pair)))))) [(1)])))))));
SCM new_module = scm_current_module ();
(((scm_assert_cell_valid (((pair))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((pair))))))) [(0)] = ((scm_t_bits) (((new_module)))))))));
scm_set_current_module (old_module);
}
static SCM
inner_eval_x (void *data)
{
return scm_primitive_eval_x (((SCM) (data)));
}
SCM
scm_eval_x (SCM exp, SCM module)
{
do { if (!((!(6 & ((scm_t_bits) (module))) && (scm_assert_cell_valid ((module)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((module)))))) [(0)]))) == scm_module_tag))) scm_wrong_type_arg_msg("eval!", 2, module, "MODULEP"); } while (0);
return scm_internal_dynamic_wind
(change_environment, inner_eval_x, restore_environment,
(void *) ((scm_t_bits) (exp)),
(void *) ((scm_t_bits) (scm_cons (module, ((SCM) (((16) << 9) + 0x174L))))));
}
static SCM
inner_eval (void *data)
{
return scm_primitive_eval (((SCM) (data)));
}
static const char s_scm_eval [] = "eval"; SCM scm_eval (SCM exp, SCM module)
{
do { if (!((!(6 & ((scm_t_bits) (module))) && (scm_assert_cell_valid ((module)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((module)))))) [(0)]))) == scm_module_tag))) scm_wrong_type_arg_msg(s_scm_eval, 2, module, "MODULEP"); } while (0);
return scm_internal_dynamic_wind
(change_environment, inner_eval, restore_environment,
(void *) ((scm_t_bits) (exp)),
(void *) ((scm_t_bits) (scm_cons (module, ((SCM) (((16) << 9) + 0x174L))))));
}
# 4183 "eval.c"
# 1 "eval.c" 1
# 1686 "eval.c"
SCM (*scm_ceval_ptr) (SCM x, SCM env);
# 1696 "eval.c"
scm_t_debug_frame *scm_last_debug_frame;
long scm_debug_eframe_size;
int scm_debug_mode, scm_check_entry_p, scm_check_apply_p, scm_check_exit_p;
long scm_eval_stack;
scm_t_option scm_eval_opts[] = {
{ 1, "stack", 22000, "Size of thread stacks (in machine words)." }
};
scm_t_option scm_debug_opts[] = {
{ 0, "cheap", 1,
"*Flyweight representation of the stack at traps." },
{ 0, "breakpoints", 0, "*Check for breakpoints." },
{ 0, "trace", 0, "*Trace mode." },
{ 0, "procnames", 1,
"Record procedure names at definition." },
{ 0, "backwards", 0,
"Display backtrace in anti-chronological order." },
{ 1, "width", 79, "Maximal width of backtrace." },
{ 1, "indent", 10, "Maximal indentation in backtrace." },
{ 1, "frames", 3,
"Maximum number of tail-recursive frames in backtrace." },
{ 1, "maxdepth", 1000,
"Maximal number of stored backtrace frames." },
{ 1, "depth", 20, "Maximal length of printed backtrace." },
{ 0, "backtrace", 0, "Show backtrace on error." },
{ 0, "debug", 0, "Use the debugging evaluator." },
{ 1, "stack", 20000, "Stack size limit (measured in words; 0 = no check)." },
{ 2, "show-file-name", (unsigned long)((SCM) (((17) << 9) + 0x174L)), "Show file names and line numbers in backtraces when not `#f'. A value of `base' displays only base names, while `#t' displays full names."}
};
scm_t_option scm_evaluator_trap_table[] = {
{ 0, "traps", 0, "Enable evaluator traps." },
{ 0, "enter-frame", 0, "Trap when eval enters new frame." },
{ 0, "apply-frame", 0, "Trap when entering apply." },
{ 0, "exit-frame", 0, "Trap when exiting eval or apply." },
{ 2, "enter-frame-handler", (unsigned long)((SCM) (((16) << 9) + 0x174L)), "Handler for enter-frame traps." },
{ 2, "apply-frame-handler", (unsigned long)((SCM) (((16) << 9) + 0x174L)), "Handler for apply-frame traps." },
{ 2, "exit-frame-handler", (unsigned long)((SCM) (((16) << 9) + 0x174L)), "Handler for exit-frame traps." }
};
static const char s_scm_eval_options_interface [] = "eval-options-interface"; SCM scm_eval_options_interface (SCM setting)
{
SCM ans;
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
ans = scm_options (setting,
scm_eval_opts,
1,
s_scm_eval_options_interface);
scm_eval_stack = scm_eval_opts[0].val * sizeof (void *);
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
return ans;
}
static const char s_scm_evaluator_traps [] = "evaluator-traps-interface"; SCM scm_evaluator_traps (SCM setting)
{
SCM ans;
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
ans = scm_options (setting,
scm_evaluator_trap_table,
7,
s_scm_evaluator_traps);
do { scm_check_entry_p = (scm_evaluator_trap_table[1].val || scm_debug_opts[1].val) && !((((scm_t_bits) (((SCM)(scm_evaluator_trap_table[4].val)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))); scm_check_apply_p = (scm_evaluator_trap_table[2].val || scm_debug_opts[2].val) && !((((scm_t_bits) (((SCM)(scm_evaluator_trap_table[5].val)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))); scm_check_exit_p = (scm_evaluator_trap_table[3].val || scm_debug_opts[2].val) && !((((scm_t_bits) (((SCM)(scm_evaluator_trap_table[6].val)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))); scm_debug_mode = scm_debug_opts[11].val || scm_check_entry_p || scm_check_apply_p || scm_check_exit_p; scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;} while (0);
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
return ans;
}
static SCM
deval_args (SCM l, SCM env, SCM proc, SCM *lloc)
{
SCM *results = lloc, res;
while ((!(6 & ((scm_t_bits) (l))) && ((1 & (scm_assert_cell_valid ((l)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))) == 0)))
{
res = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)!
))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (l, env, 1) : scm_deval ((((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(0)]))))))), env)));
*lloc = scm_list_1 (res);
lloc = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((*lloc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((*lloc))))))) [(1)])))));
l = (((scm_assert_cell_valid ((l)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((l)))))) [(1)])))))));
}
if (!((((scm_t_bits) ((l))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
return *results;
}
# 1855 "eval.c"
SCM
scm_deval (SCM x, SCM env)
{
SCM proc, arg1;
scm_t_debug_frame debug;
scm_t_debug_info *debug_info_end;
debug.prev = scm_last_debug_frame;
debug.status = 0;
debug.vect = (scm_t_debug_info *) __builtin_alloca (scm_debug_eframe_size * sizeof (scm_t_debug_info));
debug.info = debug.vect;
debug_info_end = debug.vect + scm_debug_eframe_size;
scm_last_debug_frame = &debug;
if (scm_stack_checking_enabled_p
&& ((SCM_STACKITEM *) &proc < ((SCM_STACKITEM *) ((((scm_t_contregs *) (scm_assert_cell_valid (((scm_root->rootcont))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_root->rootcont))))))) [(1)])))))->base) - scm_debug_opts[12].val)))
{
debug.info->e.exp = x;
debug.info->e.env = env;
scm_report_stack_overflow ();
}
goto start;
loop:
((debug).status &= ~(1L << 7));
if ((((debug).status & (1L << 6)) != 0))
--debug.info;
# 1906 "eval.c"
else if (++debug.info >= debug_info_end)
{
((debug).status |= (1L << 6));
debug.info -= 2;
}
start:
debug.info->e.exp = x;
debug.info->e.env = env;
if (scm_check_entry_p && scm_evaluator_trap_table[0].val)
{
if (scm_evaluator_trap_table[1].val
|| (scm_debug_opts[1].val && scm_c_source_property_breakpoint_p (x)))
{
SCM stackrep;
SCM tail = (((((debug).status & (1L << 9)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L)));
((debug).status |= (1L << 9));
if (scm_debug_opts[0].val)
stackrep = scm_make_debugobj (&debug);
else
{
int first;
SCM val = scm_make_continuation (&first);
if (first)
stackrep = val;
else
{
x = val;
if ((6 & ((scm_t_bits) (x))))
do { proc = (x); goto exit; } while (0);
else
goto dispatch;
}
}
scm_evaluator_trap_table[0].val = 0;
scm_call_4 ((SCM)(scm_evaluator_trap_table[4].val),
scm_sym_enter_frame,
stackrep,
tail,
scm_unmemocopy (x, env));
scm_evaluator_trap_table[0].val = 1;
}
}
dispatch:
do { do { if (scm_asyncs_pending_p) scm_async_click (); } while (0); ; } while (0);
switch ((0x7f & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))
{
case 5:
x = scm_cons (x, ((SCM) (((18) << 9) + 0x174L)));
do { proc = (*scm_lookupcar (x, env, 1)); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + ((0) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((!
scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
do { proc = (((SCM) (((16) << 9) + 0x174L))); goto exit; } while (0);
else
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((1) << 9) + ((1) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
begin:
if ((!(6 & ((scm_t_bits) (env))) && ((1 & (scm_assert_cell_valid ((env)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))) == 0)) && !(!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)])))) == 0)))
{
do { SCM p = scm_current_module_lookup_closure (); if (p != (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))) env = scm_top_level_env (p); } while (0);
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((!
x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
do { SCM p = scm_current_module_lookup_closure (); if (p != (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))) env = scm_top_level_env (p); } while (0);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
goto carloop;
}
else
goto nontoplevel_begin;
nontoplevel_begin:
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((6 & ((scm_t_bits) (form))))
{
if (((0x187 & ((scm_t_bits) (form))) == 4))
{
x = scm_m_expand_body (x, env);
goto nontoplevel_begin;
}
else
do { if ((((scm_t_bits) ((form))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))); } while (0);
}
else
scm_deval (form, env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
carloop:
{
SCM last_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((!(6 & ((scm_t_bits) (last_form))) && ((1 & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 0)))
{
x = last_form;
goto loop;
}
else if ((6 & ((scm_t_bits) (last_form))))
do { proc = ((((((scm_t_bits) (last_form)) & 0xff)==scm_tc8_iloc) ? *scm_ilookup ((last_form), env) : (((((scm_t_bits) ((last_form))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), (last_form)))); goto exit; } while (0);
else if ((!(6 & ((scm_t_bits) (last_form))) && (0x7f & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 7))
do { proc = ((scm_assert_cell_valid ((last_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(1)])))))); goto exit; } while (0);
else if ((!(6 & ((scm_t_bits) (last_form))) && ((0x7f & (scm_assert_cell_valid ((last_form)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((last_form)))))) [(0)])))) == 5)))
do { proc = (*scm_lookupcar (x, env, 1)); goto exit; } while (0);
else
do { proc = (last_form); goto exit; } while (0);
}
case (127 & ((scm_t_bits) (((SCM) (((2) << 9) + ((2) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM key = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits!
) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM labels = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))));
if ((((scm_t_bits) (labels)) == ((scm_t_bits) (scm_sym_else))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto begin;
}
while (!((((scm_t_bits) ((labels))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM label = (((scm_assert_cell_valid ((labels)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((labels)))))) [(0)])))))));
if ((((scm_t_bits) (label)) == ((scm_t_bits) (key))) || !((((scm_t_bits) ((scm_eqv_p (label, key)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto begin;
}
labels = (((scm_assert_cell_valid ((labels)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((labels)))))) [(1)])))))));
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
}
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((3) << 9) + ((3) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM clause = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if ((((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))) == ((scm_t_bits) (scm_sym_else))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto begin;
}
else
{
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((clause)), (((!
(SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (clause, env, 1) : scm_deval ((((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
{
x = (((scm_assert_cell_valid ((clause)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((clause)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (arg1); goto exit; } while (0);
else if (!(((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) == ((scm_t_bits) (scm_sym_arrow))))
{
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto begin;
}
else
{
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const!
scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_deval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
{ ++debug.info; debug.info->a.proc = proc; debug.info->a.args = scm_list_1 (arg1); };
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)) && scm_badformalsp (proc, 1))
goto umwrongnumargs;
else
goto evap1;
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
}
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((4) << 9) + ((4) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), init_values, env);
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
{
SCM test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM body_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM step_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((sc!
m_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_deval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
while (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
{
{
SCM temp_forms;
for (temp_forms = body_forms;
!((((scm_t_bits) ((temp_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))));
temp_forms = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(1)]))))))))
{
SCM form = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))));
# 2157 "eval.c"
if (!(6 & ((scm_t_bits) (form))))
scm_deval (form, env);
}
}
{
SCM temp_forms;
SCM step_values = ((SCM) (((20) << 9) + 0x174L));
for (temp_forms = step_forms;
!((((scm_t_bits) ((temp_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))));
temp_forms = (((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(1)]))))))))
{
SCM value = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_!
t_bits) ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (temp_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((temp_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((temp_forms)))))) [(0)]))))))), env)));
step_values = scm_cons (value, step_values);
}
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)]))))))))))))) [(0)]))))))), step_values, (((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(1)]))))))));
}
test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((sc!
m_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_deval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
}
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((5) << 9) + ((5) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((sc!
m_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
else
{
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
}
}
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((7) << 9) + ((7) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
do
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), init_values, env);
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((9) << 9) + ((9) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), scm_sys_protects[2], env);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM init_forms = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
SCM init_values = ((SCM) (((20) << 9) + 0x174L));
do
{
init_values = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) : ((!(6 & !
((scm_t_bits) ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(0)]))))))), env))), init_values);
init_forms = (((scm_assert_cell_valid ((init_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init_forms)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((init_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
(((scm_assert_cell_valid ((((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((((scm_assert_cell_valid ((env)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((env)))))) [(0)])))))))))))))) [(1)] = ((scm_t_bits) (((init_values)))))))));
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((8) << 9) + ((8) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM bindings = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
env = scm_acons (((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)), env);
else
{
do
{
SCM name = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(0)])))))));
SCM init = (((scm_assert_cell_valid ((bindings)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((bindings)))))) [(1)])))))));
env = scm_acons (name, ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((init)), ((((SCM!
) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (init, env, 1) : scm_deval ((((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(0)]))))))), env))), env);
bindings = (((scm_assert_cell_valid ((init)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((init)))))) [(1)])))))));
}
while (!((((scm_t_bits) ((bindings))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))));
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto nontoplevel_begin;
case (127 & ((scm_t_bits) (((SCM) (((10) << 9) + ((10) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM val = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
if (!((((scm_t_bits) ((val))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))) && !((((scm_t_bits) ((val))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))
do { proc = (val); goto exit; } while (0);
else
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
}
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto carloop;
case (127 & ((scm_t_bits) (((SCM) (((6) << 9) + ((6) << 3) + 4L))))):
do { proc = (scm_closure ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env)); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((11) << 9) + ((11) << 3) + 4L))))):
do { proc = ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))))); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((12) << 9) + ((12) << 3) + 4L))))):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM *location;
SCM variable = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (((((scm_t_bits) (variable)) & 0xff)==scm_tc8_iloc))
location = scm_ilookup (variable, env);
else if ((!(6 & ((scm_t_bits) (variable))) && (0x7f & (scm_assert_cell_valid ((variable)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((variable)))))) [(0)])))) == 7))
location = ((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid (((variable))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((variable))))))) [(1)])))));
else
location = scm_lookupcar (x, env, 1);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
*location = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
}
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((13) << 9) + ((13) << 3) + 4L))))):
scm_misc_error (((void *)0), "Bad define placement", ((SCM) (((20) << 9) + 0x174L)));
case (127 & ((scm_t_bits) (((SCM) (((0) << 9) + 0x74L))))):
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
if (!(((0x187 & ((scm_t_bits) (proc))) == 4))) goto badfun;
switch ((((scm_t_bits) (proc)) >> 9))
{
case ((((scm_t_bits) (((SCM) (((14) << 9) + 0x74L)))) >> 9)):
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits !
*) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_deval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
{ ++debug.info; debug.info->a.proc = proc; debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
arg1 = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_b!
its *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (arg1, env, 1) : scm_deval ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), env)));
apply_closure:
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
debug.info->a.args = arg1;
if (scm_badargsp (formals, arg1))
scm_wrong_num_args (proc);
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
if ((((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
env = scm_acons (formals, ((SCM) (((20) << 9) + 0x174L)), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
else
{
SCM args = scm_list_1 ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))));
SCM tail = args;
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
while (!(((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
{
SCM new_tail = scm_list_1 ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))));
(((scm_assert_cell_valid (((tail))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tail))))))) [(1)] = ((scm_t_bits) (((new_tail)))))))));
tail = new_tail;
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
env = scm_acons (formals, args, (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
}
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
else
{
proc = scm_f_apply;
goto evapply;
}
case ((((scm_t_bits) (((SCM) (((15) << 9) + 0x74L)))) >> 9)):
{
int first;
SCM val = scm_make_continuation (&first);
if (!first)
do { proc = (val); goto exit; } while (0);
else
{
arg1 = val;
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
proc = scm_eval_car (proc, env);
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badfun;
{ ++debug.info; debug.info->a.proc = proc; debug.info->a.args = scm_list_1 (arg1); };
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)) && scm_badformalsp (proc, 1))
goto umwrongnumargs;
goto evap1;
}
}
case ((((scm_t_bits) (((SCM) (((27) << 9) + 0x74L)))) >> 9)):
do { proc = (scm_makprom (scm_closure ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env))); goto exit; } while (0);
case ((((scm_t_bits) (((SCM) (((22) << 9) + 0x74L)))) >> 9)):
{
SCM operand_forms = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))));
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
if (((((scm_t_bits) (operand_forms)) & 0xff)==scm_tc8_iloc))
arg1 = *scm_ilookup (operand_forms, env);
else if ((!(6 & ((scm_t_bits) (operand_forms))) && (0x7f & (scm_assert_cell_valid ((operand_forms)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))) == 7))
arg1 = (scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))));
else if (!(!(6 & ((scm_t_bits) (operand_forms))) && ((1 & (scm_assert_cell_valid ((operand_forms)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))) == 0)))
arg1 = *scm_lookupcar ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))), env, 1);
else
{
SCM tail = arg1 = scm_list_1 (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operan!
d_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (operand_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))), env))));
operand_forms = (((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))))));
while (!((((scm_t_bits) ((operand_forms))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM new_tail = scm_list_1 (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((opera!
nd_forms)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (operand_forms, env, 1) : scm_deval ((((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(0)]))))))), env))));
(((scm_assert_cell_valid (((tail))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tail))))))) [(1)] = ((scm_t_bits) (((new_tail)))))))));
tail = new_tail;
operand_forms = (((scm_assert_cell_valid ((operand_forms)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((operand_forms)))))) [(1)])))))));
}
}
}
type_dispatch:
# 2440 "eval.c"
{
unsigned long int specializers;
unsigned long int hash_value;
unsigned long int cache_end_pos;
unsigned long int mask;
SCM method_cache;
{
SCM z = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)])))))));
SCM tmp = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
specializers = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) >> (2)));
if ((2 & ((scm_t_bits) (tmp))))
{
# 2474 "eval.c"
unsigned long int hashset = ((((scm_t_signed_bits) ((scm_t_bits) (tmp))) >> (2)));
unsigned long int counter = specializers + 1;
SCM tmp_arg = arg1;
hash_value = 0;
while (!((((scm_t_bits) ((tmp_arg))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) && counter != 0)
{
SCM class = scm_class_of ((((scm_assert_cell_valid ((tmp_arg)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp_arg)))))) [(0)]))))))));
hash_value += (((scm_t_bits *) (scm_assert_cell_valid ((class)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((class)))))) [(1)])))) [6 + (hashset)]);
tmp_arg = (((scm_assert_cell_valid ((tmp_arg)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tmp_arg)))))) [(1)])))))));
counter--;
}
z = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(1)])))))));
method_cache = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
mask = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) >> (2)));
hash_value &= mask;
cache_end_pos = hash_value;
}
else
{
method_cache = tmp;
mask = (unsigned long int) ((long) -1);
hash_value = 0;
cache_end_pos = (((unsigned long) (scm_assert_cell_valid ((method_cache)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((method_cache)))))) [(0)])))) >> 8);
}
}
{
# 2512 "eval.c"
SCM z;
do
{
SCM args = arg1;
z = ((const SCM *) (scm_assert_cell_valid ((method_cache)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((method_cache)))))) [(1)]))))[hash_value];
while (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
SCM class_of_arg = scm_class_of ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))));
if (!(((scm_t_bits) (class_of_arg)) == ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))))
goto next_method;
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
z = (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)])))))));
}
if (((((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || (!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))))))))) [(0)])))) == 0)))
goto apply_cmethod;
next_method:
hash_value = (hash_value + 1) & mask;
} while (hash_value != cache_end_pos);
z = scm_memoize_method (x, arg1);
apply_cmethod:
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(0)])))))));
env = scm_acons (formals, arg1, (((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(0)]))))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((z)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((z)))))) [(1)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
}
case ((((scm_t_bits) (((SCM) (((23) << 9) + 0x74L)))) >> 9)):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM instance = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s!
cm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
unsigned long int slot = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))))))) >> (2)));
do { proc = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((instance)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((instance)))))) [(1)])))) [slot]))); goto exit; } while (0);
}
case ((((scm_t_bits) (((SCM) (((24) << 9) + 0x74L)))) >> 9)):
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM instance = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s!
cm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
unsigned long int slot = ((((scm_t_signed_bits) ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(0)])))))))))) >> (2)));
SCM value = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm!
_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((!
(((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM!
) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((sc!
m_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi!
ts) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM)!
(((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)])))))))!
)))))) [(0)])))) == 5)) ? *scm_lookupcar ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))), env, 1) : scm_deval ((((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))!
) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))), env)));
((scm_t_bits *) (scm_assert_cell_valid ((instance)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((instance)))))) [(1)])))) [slot] = ((scm_t_bits) (value));
do { proc = (((SCM) (((21) << 9) + 0x174L))); goto exit; } while (0);
}
case ((((scm_t_bits) (((SCM) (((25) << 9) + 0x74L)))) >> 9)):
{
SCM test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = (((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(1)])))))));
while (!(((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L))))))))
{
SCM test_result = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits!
) ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (test_form, env, 1) : scm_deval ((((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(0)]))))))), env)));
if (!(((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))
|| (((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || ((((scm_t_bits) ((test_result))) == ((scm_t_bits) (((SCM) (((30) << 9) + 0x174L)))))))))
{
if ((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) == ((scm_t_bits) (((SCM) (((21) << 9) + 0x174L))))))
do { proc = (test_result); goto exit; } while (0);
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto carloop;
}
else
{
test_form = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = (((scm_assert_cell_valid ((test_form)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((test_form)))))) [(1)])))))));
}
}
x = test_form;
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto carloop;
}
case ((((scm_t_bits) (((SCM) (((26) << 9) + 0x74L)))) >> 9)):
{
SCM vars, exps, vals;
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
vars = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))))));
exps = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(1)])))))));
vals = ((SCM) (((20) << 9) + 0x174L));
while ((!(6 & ((scm_t_bits) (exps)))))
{
vals = scm_cons (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((exps)), ((((SCM) (((c!
onst scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (exps, env, 1) : scm_deval ((((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(0)]))))))), env))), vals);
exps = (((scm_assert_cell_valid ((exps)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((exps)))))) [(1)])))))));
}
scm_swap_bindings (vars, vals);
(scm_root->dynwinds) = scm_acons (vars, vals, (scm_root->dynwinds));
for (x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))); !((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))); x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))))
{
if ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((1 & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 0)))
scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
}
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bit!
s) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
(scm_root->dynwinds) = (((scm_assert_cell_valid (((scm_root->dynwinds))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_root->dynwinds))))))) [(1)])))))));
scm_swap_bindings (vars, vals);
do { proc = (proc); goto exit; } while (0);
}
case ((((scm_t_bits) (((SCM) (((28) << 9) + 0x74L)))) >> 9)):
{
proc = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
x = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *!
) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_deval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
proc = (((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))));
proc = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bit!
s *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, env, 1) : scm_deval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), env)));
arg1 = scm_dapply (x, ((SCM) (((20) << 9) + 0x174L)), ((SCM) (((20) << 9) + 0x174L)));
if (((!(6 & ((scm_t_bits) (arg1))) && ((7 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 1)) && (((scm_t_bits) (scm_struct_vtable (arg1))) == ((scm_t_bits) (scm_values_vtable)))))
arg1 = scm_struct_ref (arg1, ((((SCM) ((((scm_t_signed_bits) (0)) << 2) + 2)))));
else
arg1 = scm_list_1 (arg1);
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
{ ++debug.info; debug.info->a.proc = proc; debug.info->a.args = arg1; };
goto apply_closure;
}
return scm_dapply (proc, arg1, ((SCM) (((20) << 9) + 0x174L)));
}
default:
goto badfun;
}
default:
proc = x;
badfun:
scm_misc_error (((void *)0), "Wrong type to apply: ~S", scm_list_1 (proc));
case 13:
case 15:
case 71:
case 77:
case 55:
case 79:
case 37:
case 45:
case 47:
case 53:
case 29:
case 21:
case 127:
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
case 63:
case 31:
case 103:case 85:case 87:case 93: case 95:case 101:case 69:case 109: case 111:case 117:case 119:
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
do { proc = (x); goto exit; } while (0);
case 7:
do { proc = ((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))); goto exit; } while (0);
case (127 & ((scm_t_bits) (((SCM) (((0L) << 8) + scm_tc8_iloc))))):
proc = *scm_ilookup ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badfun;
goto checkargs;
case 0:case 8:case 16:case 24: case 32:case 40:case 48:case 56: case 64:case 72:case 80:case 88: case 96:case 104:case 112:case 120:
if ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)))
{
SCM orig_sym = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))));
# 2706 "eval.c"
proc = *scm_lookupcar (x, env, 1);
if ((6 & ((scm_t_bits) (proc))))
{
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((orig_sym)))))))));
goto badfun;
}
if ((!(6 & ((scm_t_bits) ((proc)))) && (0xffff & (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(0)])))) == (scm_tc16_macro)))
{
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) (((orig_sym)))))))));
handle_a_macro:
((debug).status |= (1L << 10));
arg1 = scm_dapply ((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), x,
scm_cons (env, scm_sys_protects[1]));
((debug).status &= ~(1L << 10));
switch (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 16))
{
case 2:
if (scm_ilength (arg1) <= 0)
arg1 = scm_list_2 (((SCM) (((1) << 9) + ((1) << 3) + 4L)), arg1);
if (!(!(6 & ((scm_t_bits) ((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))))) && ((7 & (scm_assert_cell_valid (((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))))))))) [(0)])))) == 3)))
{
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))))))))));
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)]))))))))))))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
goto dispatch;
}
debug.info->e.exp = scm_cons_source (debug.info->e.exp,
(((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))),
(((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)]))))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 1; asm (""); } while (0);
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(0)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))))))))))));
(((scm_assert_cell_valid (((x))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((x))))))) [(1)] = ((scm_t_bits) ((((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)]))))))))))))))));
do { asm (""); ; ; asm (""); scm_ints_disabled = 0; asm (""); ; asm (""); } while (0);
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto loop;
case 1:
x = arg1;
if ((!(6 & ((scm_t_bits) (x)))))
{
{ ++debug.info; debug.info->a.proc = ((SCM) (((18) << 9) + 0x174L)); debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
goto loop;
}
else
do { proc = (arg1); goto exit; } while (0);
case 0:
do { proc = (arg1); goto exit; } while (0);
}
}
}
else
proc = scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env);
if (!(!(6 & ((scm_t_bits) (proc))))) goto badfun;
checkargs:
if ((!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
{
SCM formals = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)])))))));
SCM args = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
while (!((((scm_t_bits) ((formals))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (!(!(6 & ((scm_t_bits) (formals))) && ((1 & (scm_assert_cell_valid ((formals)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(0)])))) == 0)))
goto evapply;
if ((6 & ((scm_t_bits) (args))))
goto umwrongnumargs;
formals = (((scm_assert_cell_valid ((formals)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((formals)))))) [(1)])))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
if (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
goto umwrongnumargs;
}
else if ((!(6 & ((scm_t_bits) ((proc)))) && (0xffff & (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(0)])))) == (scm_tc16_macro)))
goto handle_a_macro;
}
evapply:
{ ++debug.info; debug.info->a.proc = proc; debug.info->a.args = ((SCM) (((20) << 9) + 0x174L)); };
if (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))) {
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
evap0:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 85:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ()); goto exit; } while (0);
case 109:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((18) << 9) + 0x174L)))); goto exit; } while (0);
case 119:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((20) << 9) + 0x174L)))); goto exit; } while (0);
case 69:
do { proc = (((SCM) (((17) << 9) + 0x174L))); goto exit; } while (0);
case 103:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((SCM) (((18) << 9) + 0x174L)), ((SCM) (((18) << 9) + 0x174L)))); goto exit; } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_0 (proc))); goto exit; } while (0);
case 63:
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
debug.info->a.proc = proc;
debug.info->a.args = scm_list_1 (arg1);
goto evap1;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
debug.info->a.proc = proc;
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap0;
if (scm_badformalsp (proc, 0))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), ((SCM) (((20) << 9) + 0x174L)), (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bit!
s) ((proc)))))) [(1)]))))));
goto nontoplevel_begin;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = ((SCM) (((20) << 9) + 0x174L));
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
debug.info->a.proc = proc;
debug.info->a.args = scm_list_1 (arg1);
if ((!(6 & ((scm_t_bits) (proc)))))
goto evap1;
else
goto badfun;
}
case 87:
case 101:
case 111:
case 93:
case 95:
case 117:
umwrongnumargs:
scm_unmemocar (x, env);
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if ((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
arg1 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x))!
)))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
else
scm_wrong_num_args (proc);
debug.info->a.args = scm_list_1 (arg1);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
{
SCM arg2;
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
evap1:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 111:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L)))); goto exit; } while (0);
case 87:
case 109:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1)); goto exit; } while (0);
case 93:
if (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))
{
if ((2 & ((scm_t_bits) (arg1))))
{
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((double) ((((scm_t_signed_bits) ((scm_t_bits) (arg1))) >> (2)))))); goto exit; } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && (0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 2 * 256L)))
{
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((((scm_t_double *) ((scm_t_cell *) (((scm_t_bits) (arg1)))))->real)))); goto exit; } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && ((0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 1 * 256L))))
{
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_i_big2dbl (arg1)))); goto exit; } while (0);
}
return (((scm_t_bits) (*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic))) ? scm_call_generic_1 ((*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic)), (arg1)) : (scm_wrong_type_arg ((((char *) ((scm_assert_cell_valid ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))))))) [(1)])))))), (1), (arg1)), ((SCM) (((21) << 9) + 0x174L))));
}
proc = ((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name);
{
char *chrs = ((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))) + (((unsigned long) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8) - 1;
while ('c' != *--chrs)
{
if (!((!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))) scm_wrong_type_arg (((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), 1, arg1);
arg1 = ('a' == *chrs) ? (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))) : (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
do { proc = (arg1); goto exit; } while (0);
}
case 69:
do { proc = (((SCM) (((17) << 9) + 0x174L))); goto exit; } while (0);
case 103:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L)))); goto exit; } while (0);
case 119:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (debug.info->a.args)); goto exit; } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_1 (proc, (arg1)))); goto exit; } while (0);
case 63:
arg2 = arg1;
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
debug.info->a.args = scm_cons (arg1, debug.info->a.args);
debug.info->a.proc = proc;
goto evap2;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
debug.info->a.proc = proc;
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap1;
if (scm_badformalsp (proc, 1))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), debug.info->a.args, (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((pro!
c)))))) [(1)]))))));
goto nontoplevel_begin;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = debug.info->a.args;
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
arg2 = arg1;
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
debug.info->a.args = scm_cons (arg1, debug.info->a.args);
debug.info->a.proc = proc;
if ((!(6 & ((scm_t_bits) (proc)))))
goto evap2;
else
goto badfun;
}
case 101:
case 85:
case 95:
case 117:
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
if ((!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
arg2 = ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))), env) : (((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L))), 0 : 0), ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x!
)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (x, env, 1) : scm_deval ((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)]))))))), env)));
else
scm_wrong_num_args (proc);
{
debug.info->a.args = scm_list_2 (arg1, arg2);
x = (((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))));
if (((((scm_t_bits) ((x))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))) {
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
evap2:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 101:
case 111:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2)); goto exit; } while (0);
case 119:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (debug.info->a.args)); goto exit; } while (0);
case 117:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, ((SCM) (((20) << 9) + 0x174L)))); goto exit; } while (0);
case 69:
case 103:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2)); goto exit; } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_2 (proc, (arg1), (arg2)))); goto exit; } while (0);
cclon:
case 63:
do { proc = (scm_dapply (((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0])))), scm_cons (proc, debug.info->a.args), ((SCM) (((20) << 9) + 0x174L)))); goto exit; } while (0);
# 3060 "eval.c"
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
arg1 = debug.info->a.args;
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
{
operatorn:
do { proc = (scm_dapply ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0) ? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5]))) : (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure), scm_cons (proc, debug.info->a.args), ((SCM) (((20) << 9) + 0x174L)))); goto exit; } while (0);
# 3093 "eval.c"
}
case 85:
case 93:
case 109:
case 87:
case 95:
scm_wrong_num_args (proc);
default:
goto badfun;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
debug.info->a.proc = proc;
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap2;
if (scm_badformalsp (proc, 2))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))),
debug.info->a.args,
(scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
}
}
if (!(!(6 & ((scm_t_bits) (x))) && ((1 & (scm_assert_cell_valid ((x)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(0)])))) == 0)))
scm_wrong_num_args (proc);
debug.info->a.args = scm_cons2 (arg1, arg2,
deval_args (x, env, proc,
((SCM *) ((scm_t_bits *) & (scm_assert_cell_valid ((((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)])))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)])))))))))))))) [(1)])))))));
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { tmp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
evap3:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 95:
if (!((((scm_t_bits) (((((scm_assert_cell_valid ((x)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((x)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, (((scm_assert_cell_valid (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((debug.info-
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t _bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (( (const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const !
scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)]))))))))))))) [(0)]))))))))); goto exit; } while (0);
case 103:
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))(arg1, arg2);
arg2 = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_ t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)])))))));
do
{
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))(arg1, (((scm_assert_cell_valid ((arg2)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg 2)))))) [(0)]))))))));
arg2 = (((scm_assert_cell_valid ((arg2)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg2)))))) [(1)])))))));
}
while ((!(6 & ((scm_t_bits) (arg2)))));
do { proc = (arg1); goto exit; } while (0);
case 69:
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { proc = (((SCM) (((16) << 9) + 0x174L))); goto exit; } while (0);
arg1 = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_ t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)])))))));
do
{
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg2, (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s cm_t_bits) ((arg1)))))) [(0)]))))))))))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { proc = (((SCM) (((16) << 9) + 0x174L))); goto exit; } while (0);
arg2 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))));
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
}
while ((!(6 & ((scm_t_bits) (arg1)))));
do { proc = (((SCM) (((17) << 9) + 0x174L))); goto exit; } while (0);
case 117:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, arg2, (((scm_assert_cell_valid (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((s cm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)]))))))))); goto exit; } while (0);
case 119:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (debug.info->a.args)); goto exit; } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badfun;
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_3 (proc, (arg1), (arg2), ((((scm_assert_cell_valid (((((scm_assert_cell_valid (( debug.info->a.args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((debug.info->a.args)), ((((SCM) ((( const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((debug.info->a.args)))))) [(1)]))))))))))))) [(1)]))))))))))); goto exit; } while (0);
case 63:
goto cclon;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
debug.info->a.proc = proc;
if (!(!(6 & ((scm_t_bits) (proc))) && ((7 & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) == 3)))
goto evap3;
if (scm_badargsp ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_vali d ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_b its *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), debug.info->a.args))
goto umwrongnumargs;
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
((debug).status |= (1L << 7));
env = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell * ) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bi ts *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))),
debug.info->a.args,
(scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
x = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bi ts) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((s cm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t _cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
goto nontoplevel_begin;
# 3258 "eval.c"
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
arg1 = debug.info->a.args;
x = (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])));
goto type_dispatch;
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badfun;
else
goto operatorn;
case 101:
case 109:
case 111:
case 85:
case 93:
case 87:
scm_wrong_num_args (proc);
default:
goto badfun;
}
}
}
exit:
if (scm_check_exit_p && scm_evaluator_trap_table[0].val)
if (scm_evaluator_trap_table[3].val || (scm_debug_opts[2].val && (((debug).status & (1L << 8)) != 0)))
{
((debug).status &= ~(1L << 8));
if (scm_debug_opts[0].val)
arg1 = scm_make_debugobj (&debug);
else
{
int first;
SCM val = scm_make_continuation (&first);
if (first)
arg1 = val;
else
{
proc = val;
goto ret;
}
}
scm_evaluator_trap_table[0].val = 0;
scm_call_3 ((SCM)(scm_evaluator_trap_table[6].val), scm_sym_exit_frame, arg1, proc);
scm_evaluator_trap_table[0].val = 1;
}
ret:
scm_last_debug_frame = debug.prev;
return proc;
}
# 3460 "eval.c"
SCM
scm_dapply (SCM proc, SCM arg1, SCM args)
{
scm_t_debug_frame debug;
scm_t_debug_info debug_vect_body;
debug.prev = scm_last_debug_frame;
debug.status = (1L << 11);
debug.vect = &debug_vect_body;
debug.vect[0].a.proc = proc;
debug.vect[0].a.args = ((SCM) (((20) << 9) + 0x174L));
scm_last_debug_frame = &debug;
if (!((!(6 & ((scm_t_bits) (proc)))))) goto badproc;
# 3493 "eval.c"
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
arg1 = ((SCM) (((18) << 9) + 0x174L));
debug.vect[0].a.args = ((SCM) (((20) << 9) + 0x174L));
}
else
{
debug.vect[0].a.args = arg1;
args = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))));
arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))))));
}
}
else
{
args = scm_nconc2last (args);
debug.vect[0].a.args = scm_cons (arg1, args);
}
if (scm_evaluator_trap_table[1].val && scm_evaluator_trap_table[0].val)
{
SCM tmp;
if (scm_debug_opts[0].val)
tmp = scm_make_debugobj (&debug);
else
{
int first;
tmp = scm_make_continuation (&first);
if (!first)
goto entap;
}
scm_evaluator_trap_table[0].val = 0;
scm_call_2 ((SCM)(scm_evaluator_trap_table[4].val), scm_sym_enter_frame, tmp);
scm_evaluator_trap_table[0].val = 1;
}
entap:
do { ((debug).status |= (1L << 7)); if (scm_check_apply_p && scm_evaluator_trap_table[0].val) if (scm_evaluator_trap_table[2].val || (scm_debug_opts[2].val && (!((((scm_t_bits) ((scm_procedure_property (proc, scm_sym_trace)))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L))))))))) { SCM tmp, tail = (((((debug).status & (1L << 8)) != 0)) ? ((SCM) (((17) << 9) + 0x174L)) : ((SCM) (((16) << 9) + 0x174L))); ((debug).status |= (1L << 8)); scm_evaluator_trap_table[0].val = 0; if (scm_debug_opts[0].val) { t mp = scm_make_debugobj (&debug); scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_frame, tmp, tail); } else { int first; tmp = scm_make_continuation (&first); if (first) scm_call_3 ((SCM)(scm_evaluator_trap_table[5].val), scm_sym_apply_f rame, tmp, tail); } scm_evaluator_trap_table[0].val = 1; }} while (0);
tail:
switch ((0x7f & (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))
{
case 111:
args = ((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) ? ((SCM) (((18) << 9) + 0x174L)) : (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, args)); goto exit; } while (0);
case 101:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) || !((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, args)); goto exit; } while (0);
case 85:
if (!((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ()); goto exit; } while (0);
case 87:
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
case 109:
if (!((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1)); goto exit; } while (0);
case 93:
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) || !((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
if (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))))
{
if ((2 & ((scm_t_bits) (arg1))))
{
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((double) ((((scm_t_signed_bits) ((scm_t_bits) (arg1))) >> (2)))))); goto exit; } whi le (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && (0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 2 * 256L)))
{
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) ((((scm_t_double *) ((scm_t_cell *) (((scm_t_bits) (arg1)))))->real)))); goto exit; } while (0);
}
else if ((!(6 & ((scm_t_bits) (arg1))) && ((0xffff & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == (127 + 1 * 256L))))
do { proc = (scm_make_real (((double (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (scm_i_big2dbl (arg1)))); goto exit; } while (0);
return (((scm_t_bits) (*((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic))) ? scm_call_generic_1 ((*((scm_subr_table[((scm_assert_cell_valid ((proc)) , ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).generic)), (arg1)) : (scm_wrong_type_arg ((((char *) ((scm_assert_cell_valid ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name ))))))) [(1)])))))), (1), (arg1)), ((SCM) (((21) << 9) + 0x174L))));
}
proc = ((scm_subr_table[((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) >> 8)]).name);
{
char *chrs = ((char *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))) + (((unsigned long) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (( proc)))))) [(0)])))) >> 8) - 1;
while ('c' != *--chrs)
{
if (!((!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))) scm_wrong_type_arg (((char *) ((scm_assert_cell_valid ((proc)), ((((const scm _t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))), 1, arg1);
arg1 = ('a' == *chrs) ? (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))) : (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_ bits) ((arg1)))))) [(1)])))))));
}
do { proc = (arg1); goto exit; } while (0);
}
case 95:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| ((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))))
|| !((((scm_t_bits) (((((scm_assert_cell_valid (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((( scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
scm_wrong_num_args (proc);
else
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ar gs)))))) [(0)]))))))), (((scm_assert_cell_valid (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_asser t_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))))))) [(0)]))))))))); goto exit; } while (0);
case 119:
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L) ) : debug.vect[0].a.args)); goto exit; } while (0);
case 117:
if (!(!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))
scm_wrong_num_args (proc);
else
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((ar gs)))))) [(0)]))))))), (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))); goto exit; } while (0);
case 103:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, ((SCM) (((18) << 9) + 0x174L)))); goto exit; } while (0);
while ((!(6 & ((scm_t_bits) (args)))))
{
if (!((!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))) scm_wrong_type_arg ("apply", 2, args);
arg1 = ((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)) )))) [(0)]))))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
do { proc = (arg1); goto exit; } while (0);
case 69:
if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((SCM) (((17) << 9) + 0x174L))); goto exit; } while (0);
while ((!(6 & ((scm_t_bits) (args)))))
{
if (!((!(6 & ((scm_t_bits) (args))) && ((1 & (scm_assert_cell_valid ((args)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))) == 0)))) scm_wrong_type_arg ("apply", 2, args);
if (((((scm_t_bits) ((((SCM (*)()) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) (arg1, (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t _bits) ((args)))))) [(0)]))))))))))) == ((scm_t_bits) (((SCM) (((16) << 9) + 0x174L)))))))
do { proc = (((SCM) (((16) << 9) + 0x174L))); goto exit; } while (0);
arg1 = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))));
args = (((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))));
}
do { proc = (((SCM) (((17) << 9) + 0x174L))); goto exit; } while (0);
case 3:case 11:case 19:case 27: case 35:case 43:case 51:case 59: case 67:case 75:case 83:case 91: case 99:case 107:case 115:case 123:
arg1 = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : debug.vect[0].a.args);
if (scm_badargsp ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) ( ((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (( ((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), arg1))
scm_wrong_num_args (proc);
if ((6 & ((scm_t_bits) (arg1))))
args = arg1;
else
{
SCM tl = args = scm_cons ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(0)]))))))), ((SCM) (((21) << 9) + 0x174L)));
while (arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)]))))))), (!(6 & ((scm_t_bits) (arg1))) && ((1 & (scm_assert_cell_valid ((arg1)), ((((const scm_t_bits *) ((scm_t_c ell *) (((scm_t_bits) ((arg1)))))) [(0)])))) == 0)))
{
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((scm_cons ((((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))) )) [(0)]))))))), ((SCM) (((21) << 9) + 0x174L))))))))))));
tl = (((scm_assert_cell_valid ((tl)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((tl)))))) [(1)])))))));
}
(((scm_assert_cell_valid (((tl))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((tl))))))) [(1)] = ((scm_t_bits) (((arg1)))))))));
}
args = scm_acons ((((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) ( ((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid (( ((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(0)]))))))), args, (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)]))))));
proc = (((scm_assert_cell_valid (((((scm_assert_cell_valid ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bit s) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((((SCM) ((sc m_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((((SCM) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_ cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 3)))))))) [(0)]))))))))))))) [(1)])))))));
again:
arg1 = proc;
while (!((((scm_t_bits) ((arg1 = (((scm_assert_cell_valid ((arg1)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((arg1)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
{
if ((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))))
{
if (((0x187 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == 4))
{
proc = scm_m_expand_body (proc, args);
goto again;
}
else
do { if ((((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))) scm_misc_error (((void *)0), scm _s_expression, ((SCM) (((20) << 9) + 0x174L))); } while (0);
}
else
scm_deval ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), args);
proc = arg1;
}
do { proc = (((6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) ? (((((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))) & 0xff)==scm_tc8_iloc) ? *scm_ilookup (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))), args) : (((((scm_t_bits) (((( (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L))))) ? scm_misc_error (((void *)0), scm_s_expression, ((SCM) (((20) << 9) + 0x174L ))), 0 : 0), ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) : ((!(6 & ((scm_t_bits) ((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bi!
ts *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))))))))) && ((0x7f & (scm_assert_cell_valid (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((((scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))))))))) [(0)])))) == 5)) ? *scm_lookupcar (proc, args, 1) : scm_deval ((((scm_assert_cell_valid ((p roc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))))))), args)))); goto exit; } while (0);
case 127:
if (!((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply))
goto badproc;
if (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))))
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_0 (proc))); goto exit; } while (0);
else if (((((scm_t_bits) ((args))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_1 (proc, (arg1)))); goto exit; } while (0);
else if (((((scm_t_bits) (((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)])))))))))) == ((scm_t_bits) (((SCM) (((20) << 9) + 0x174L)))))))
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_2 (proc, (arg1), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)]))))))))))); goto exit; } while (0);
else
do { proc = (((scm_smobs[((0x0ff & (((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)])))) >> 8)))]).apply_3 (proc, (arg1), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(0)])))))))), ((((scm_assert_cell_valid ((args)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((args)))))) [(1)]))))))))))); goto exit; } while (0);
case 63:
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : debug.vect[0].a.args);
arg1 = proc;
proc = ((((SCM) (((scm_t_bits *) (scm_assert_cell_valid (((proc))), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((proc))))))) [(1)])))) [0]))));
debug.vect[0].a.proc = proc;
debug.vect[0].a.args = scm_cons (arg1, args);
goto tail;
case 31:
proc = (scm_assert_cell_valid ((proc)), ((((SCM) (((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))));
debug.vect[0].a.proc = proc;
goto tail;
case 1:case 9:case 17:case 25: case 33:case 41:case 49:case 57: case 65:case 73:case 81:case 89: case 97:case 105:case 113:case 121:
if ((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (0x010 << 20))
{
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : debug.vect[0].a.args);
do { proc = (scm_apply_generic (proc, args)); goto exit; } while (0);
}
else if (!(((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 29)) != 0))
goto badproc;
else
{
args = (((((scm_t_bits) ((arg1))) == ((scm_t_bits) (((SCM) (((18) << 9) + 0x174L)))))) ? ((SCM) (((20) << 9) + 0x174L)) : debug.vect[0].a.args);
arg1 = proc;
proc = ((((((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)) [-1]) & (1L << 30)) != 0)
? (((SCM) (((scm_t_bits *) (scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(1)])))) [-5])))
: (((struct scm_metaclass_operator *) ((scm_t_bits *) ((scm_assert_cell_valid ((proc)), ((((const scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) ((proc)))))) [(0)]))) - 1)))->procedure));
debug.vect[0].a.proc = proc;
debug.vect[0].a.args = scm_cons (arg1, args);
if ((!(6 & ((scm_t_bits) (proc)))))
goto tail;
else
goto badproc;
}
default:
badproc:
scm_wrong_type_arg ("apply", 1, proc);
}
exit:
if (scm_check_exit_p && scm_evaluator_trap_table[0].val)
if (scm_evaluator_trap_table[3].val || (scm_debug_opts[2].val && (((debug).status & (1L << 8)) != 0)))
{
((debug).status &= ~(1L << 8));
if (scm_debug_opts[0].val)
arg1 = scm_make_debugobj (&debug);
else
{
int first;
SCM val = scm_make_continuation (&first);
if (first)
arg1 = val;
else
{
proc = val;
goto ret;
}
}
scm_evaluator_trap_table[0].val = 0;
scm_call_3 ((SCM)(scm_evaluator_trap_table[6].val), scm_sym_exit_frame, arg1, proc);
scm_evaluator_trap_table[0].val = 1;
}
ret:
scm_last_debug_frame = debug.prev;
return proc;
}
# 4184 "eval.c" 2
void
scm_init_eval ()
{
scm_init_opts (scm_evaluator_traps,
scm_evaluator_trap_table,
7);
scm_init_opts (scm_eval_options_interface,
scm_eval_opts,
1);
scm_tc16_promise = scm_make_smob_type ("promise", 0);
scm_set_smob_mark (scm_tc16_promise, scm_markcdr);
scm_set_smob_print (scm_tc16_promise, promise_print);
scm_sys_protects[2] = scm_list_1 (((SCM) (((18) << 9) + 0x174L)));
(((scm_assert_cell_valid (((scm_sys_protects[2]))), ((((scm_t_bits *) ((scm_t_cell *) (((scm_t_bits) (((scm_sys_protects[2]))))))) [(1)] = ((scm_t_bits) (((scm_sys_protects[2])))))))));
scm_sys_protects[1] = scm_list_1 (((SCM) (((20) << 9) + 0x174L)));
scm_f_apply = scm_c_define_subr ("apply", 117, scm_apply);
# 1 "../libguile/eval.x" 1
scm_unbound_variable_key = scm_permanent_object (scm_str2symbol ("unbound-variable")) ;
sym_three_question_marks = scm_permanent_object (scm_str2symbol ("???")) ;
scm_sym_dot = scm_permanent_object (scm_str2symbol (".")) ;
scm_sym_arrow = scm_permanent_object (scm_str2symbol ("=>")) ;
scm_sym_else = scm_permanent_object (scm_str2symbol ("else")) ;
scm_sym_unquote = scm_permanent_object (scm_str2symbol ("unquote")) ;
scm_sym_uq_splicing = scm_permanent_object (scm_str2symbol ("unquote-splicing")) ;
scm_sym_enter_frame = scm_permanent_object (scm_str2symbol ("enter-frame")) ;
scm_sym_apply_frame = scm_permanent_object (scm_str2symbol ("apply-frame")) ;
scm_sym_exit_frame = scm_permanent_object (scm_str2symbol ("exit-frame")) ;
scm_sym_trace = scm_permanent_object (scm_str2symbol ("trace")) ;
scm_make_synt (s_quote, scm_makmmacro, scm_m_quote) ;
scm_sym_quote = scm_permanent_object (scm_str2symbol (s_quote)) ;
scm_make_synt (s_begin, scm_makmmacro, scm_m_begin) ;
scm_sym_begin = scm_permanent_object (scm_str2symbol (s_begin)) ;
scm_make_synt (s_if, scm_makmmacro, scm_m_if) ;
scm_sym_if = scm_permanent_object (scm_str2symbol (s_if)) ;
scm_sym_set_x = scm_permanent_object (scm_str2symbol (scm_s_set_x)) ;
scm_make_synt (s_and, scm_makmmacro, scm_m_and) ;
scm_sym_and = scm_permanent_object (scm_str2symbol (s_and)) ;
scm_make_synt (s_or, scm_makmmacro, scm_m_or) ;
scm_sym_or = scm_permanent_object (scm_str2symbol (s_or)) ;
scm_make_synt (s_case, scm_makmmacro, scm_m_case) ;
scm_sym_case = scm_permanent_object (scm_str2symbol (s_case)) ;
scm_make_synt (s_cond, scm_makmmacro, scm_m_cond) ;
scm_sym_cond = scm_permanent_object (scm_str2symbol (s_cond)) ;
scm_make_synt (s_lambda, scm_makmmacro, scm_m_lambda) ;
scm_sym_lambda = scm_permanent_object (scm_str2symbol (s_lambda)) ;
scm_make_synt (s_letstar, scm_makmmacro, scm_m_letstar) ;
scm_sym_letstar = scm_permanent_object (scm_str2symbol (s_letstar)) ;
scm_make_synt (s_do, scm_makmmacro, scm_m_do) ;
scm_sym_do = scm_permanent_object (scm_str2symbol (s_do)) ;
scm_make_synt (s_quasiquote, scm_makacro, scm_m_quasiquote) ;
scm_sym_quasiquote = scm_permanent_object (scm_str2symbol (s_quasiquote)) ;
scm_make_synt (s_delay, scm_makmmacro, scm_m_delay) ;
scm_sym_delay = scm_permanent_object (scm_str2symbol (s_delay)) ;
scm_make_synt (s_define, scm_makmmacro, scm_m_define) ;
scm_sym_define = scm_permanent_object (scm_str2symbol (s_define)) ;
scm_make_synt (s_letrec, scm_makmmacro, scm_m_letrec) ;
scm_sym_letrec = scm_permanent_object (scm_str2symbol (s_letrec)) ;
scm_make_synt (s_let, scm_makmmacro, scm_m_let) ;
scm_sym_let = scm_permanent_object (scm_str2symbol (s_let)) ;
scm_make_synt (s_atapply, scm_makmmacro, scm_m_apply) ;
scm_sym_atapply = scm_permanent_object (scm_str2symbol (s_atapply)) ;
scm_sym_apply = scm_permanent_object (scm_str2symbol (s_atapply + 1)) ;
scm_make_synt (s_atcall_cc, scm_makmmacro, scm_m_cont) ;
scm_sym_atcall_cc = scm_permanent_object (scm_str2symbol (s_atcall_cc)) ;
scm_make_synt (s_nil_cond, scm_makmmacro, scm_m_nil_cond) ;
scm_make_synt (s_atfop, scm_makmmacro, scm_m_atfop) ;
scm_make_synt (s_atbind, scm_makmmacro, scm_m_atbind) ;
scm_make_synt (s_at_call_with_values, scm_makmmacro, scm_m_at_call_with_values) ;
scm_sym_at_call_with_values = scm_permanent_object (scm_str2symbol (s_at_call_with_values)) ;
scm_c_define_gsubr (s_scm_nconc2last, 1, 0, 0, (SCM (*)()) scm_nconc2last); ;
g_map = ((SCM) (0)); scm_c_define_gsubr_with_generic (s_map, 2, 0, 1, (SCM (*)()) scm_map, &g_map) ;
g_for_each = ((SCM) (0)); scm_c_define_gsubr_with_generic (s_for_each, 2, 0, 1, (SCM (*)()) scm_for_each, &g_for_each) ;
scm_c_define_gsubr (s_scm_force, 1, 0, 0, (SCM (*)()) scm_force); ;
scm_c_define_gsubr (s_scm_promise_p, 1, 0, 0, (SCM (*)()) scm_promise_p); ;
scm_c_define_gsubr (s_scm_cons_source, 3, 0, 0, (SCM (*)()) scm_cons_source); ;
scm_c_define_gsubr (s_scm_copy_tree, 1, 0, 0, (SCM (*)()) scm_copy_tree); ;
scm_c_define_gsubr (s_scm_primitive_eval, 1, 0, 0, (SCM (*)()) scm_primitive_eval); ;
scm_c_define_gsubr (s_scm_eval, 2, 0, 0, (SCM (*)()) scm_eval); ;
scm_c_define_gsubr (s_scm_eval_options_interface, 0, 1, 0, (SCM (*)()) scm_eval_options_interface); ;
scm_c_define_gsubr (s_scm_evaluator_traps, 0, 1, 0, (SCM (*)()) scm_evaluator_traps); ;
# 4213 "eval.c" 2
scm_add_feature ("delay");
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-08-06 14:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-06 7:06 c/7507: gcc segv Han-Wen Nienhuys
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).