/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmppass1-special.lsp            */
#include <ecl/ecl-cmp.h>
#include "cmp/cmppass1-special.eclh"
/* function definition for C1QUOTE                                            */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3461c1quote(cl_object v1args)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(4, ECL_SYM("QUOTE",682), v1args, ecl_make_int8_t(1), ecl_make_int8_t(1)) /*  CHECK-ARGS-NUMBER */;
 T0 = ecl_car(v1args);
 value0 = (cl_env_copy->function=ecl_fdefinition(VV[2]))->cfun.entry(1, T0) /*  C1CONSTANT-VALUE */;
 return value0;
}
static cl_object L3461c1quote_va(cl_narg narg, cl_object v2args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[0]);
 {
  return L3461c1quote(v2args);
 }
}
/* function definition for C1DECLARE                                          */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3462c1declare(cl_object v1args)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = CONS(ECL_SYM("DECLARE",276),v1args);
 value0 = (cl_env_copy->function=ecl_fdefinition(VV[5]))->cfun.entry(2, VV[6], T0) /*  CMPERR */;
 return value0;
}
static cl_object L3462c1declare_va(cl_narg narg, cl_object v2args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[4]);
 {
  return L3462c1declare(v2args);
 }
}
/* function definition for C1THE                                              */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3463c1the(cl_object v1args)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(4, ECL_SYM("THE",859), v1args, ecl_make_int8_t(2), ecl_make_int8_t(2)) /*  CHECK-ARGS-NUMBER */;
 {
  cl_object v2type;
  v2type = ecl_car(v1args);
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[9]))->cfun.entry(0) /*  POLICY-THE-IS-CHECKED */)){
   goto L4;
  }
  if (!(ECL_CONSP(v2type))){
   goto L8;
  }
  T0 = ecl_car(v2type);
  if ((T0)==(ECL_SYM("VALUES",899))) {
   goto L4;
  }
  goto L5;
L8:;
  goto L5;
L5:;
  value0 = (cl_env_copy->function=ecl_fdefinition(VV[10]))->cfun.entry(1, v1args) /*  C1CHECKED-VALUE */;
  return value0;
L4:;
  value0 = L3464c1truly_the(v1args);
  return value0;
 }
}
static cl_object L3463c1the_va(cl_narg narg, cl_object v3args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[8]);
 {
  return L3463c1the(v3args);
 }
}
/* function definition for C1TRULY-THE                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3464c1truly_the(cl_object v1args)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(4, ECL_SYM("TRULY-THE",2081), v1args, ecl_make_int8_t(2), ecl_make_int8_t(2)) /*  CHECK-ARGS-NUMBER */;
 {
  cl_object v2form;
  cl_object v3the_type;
  cl_object v4type;
  T0 = ecl_cadr(v1args);
  v2form = (cl_env_copy->function=ecl_fdefinition(VV[13]))->cfun.entry(1, T0) /*  C1EXPR */;
  v3the_type = ecl_car(v1args);
  v4type = ECL_NIL;
  T0 = (cl_env_copy->function=ecl_fdefinition(VV[15]))->cfun.entry(1, v2form) /*  C1FORM-TYPE */;
  v4type = (cl_env_copy->function=ecl_fdefinition(VV[14]))->cfun.entry(2, v3the_type, T0) /*  VALUES-TYPE-AND */;
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[16]))->cfun.entry(1, v4type) /*  VALUES-TYPE-PRIMARY-TYPE */)){
   goto L9;
  }
  ecl_structure_set(v2form,VV[17],(cl_fixnum)(1),v4type);
  goto L8;
L9:;
  T0 = CONS(ECL_SYM("THE",859),v1args);
  (cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(2, VV[19], T0) /*  CMPWARN */;
L8:;
  value0 = v2form;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object L3464c1truly_the_va(cl_narg narg, cl_object v5args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[11]);
 {
  return L3464c1truly_the(v5args);
 }
}
/* function definition for C1COMPILER-LET                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3465c1compiler_let(cl_object v1args)
{
 cl_object T0, T1;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2symbols;
  cl_object v3values;
  v2symbols = ECL_NIL;
  v3values = ECL_NIL;
  if (!(ecl_endp(v1args))){
   goto L4;
  }
  (cl_env_copy->function=ecl_fdefinition(VV[22]))->cfun.entry(3, ECL_SYM("COMPILER-LET",1372), ecl_make_int8_t(1), ecl_make_int8_t(0)) /*  TOO-FEW-ARGS */;
L4:;
  {
   cl_object v4;
   v4 = ecl_car(v1args);
   goto L10;
L9:;
   {
    cl_object v5spec;
    v5spec = ecl_car(v4);
    if (!(ECL_CONSP(v5spec))){
     goto L15;
    }
    T0 = ecl_car(v5spec);
    if (!(ECL_SYMBOLP(T0))){
     goto L20;
    }
    T0 = ecl_cdr(v5spec);
    if (ecl_endp(T0)) {
     goto L17;
    }
    T0 = ecl_cddr(v5spec);
    if (ecl_endp(T0)) {
     goto L17;
    }
    goto L18;
L20:;
    goto L18;
L18:;
    (cl_env_copy->function=ecl_fdefinition(VV[5]))->cfun.entry(2, VV[24], v5spec) /*  CMPERR */;
L17:;
    T0 = ecl_car(v5spec);
    v2symbols = CONS(T0,v2symbols);
    T1 = ecl_cdr(v5spec);
    if (!(ecl_endp(T1))){
     goto L27;
    }
    T0 = ECL_NIL;
    goto L26;
L27:;
    T1 = ecl_cadr(v5spec);
    T0 = cl_eval(T1);
L26:;
    v3values = CONS(T0,v3values);
    goto L14;
L15:;
    if (!(ECL_SYMBOLP(v5spec))){
     goto L29;
    }
    v2symbols = CONS(v5spec,v2symbols);
    v3values = CONS(ECL_NIL,v3values);
    goto L14;
L29:;
    (cl_env_copy->function=ecl_fdefinition(VV[5]))->cfun.entry(2, VV[24], v5spec) /*  CMPERR */;
L14:;
   }
   v4 = ecl_cdr(v4);
L10:;
   if (Null(v4)){
    goto L36;
   }
   goto L9;
L36:;
  }
  v2symbols = cl_nreverse(v2symbols);
  v3values = cl_nreverse(v3values);
  {
   cl_object v5, v6; cl_index v4;
   v5 = v2symbols;
   v6 = v3values;
   v4 = ecl_progv(cl_env_copy, v5, v6);
   T0 = ecl_cdr(v1args);
   v1args = (cl_env_copy->function=ecl_fdefinition(VV[25]))->cfun.entry(1, T0) /*  C1PROGN */;
   ecl_bds_unwind(cl_env_copy,v4);
  }
  value0 = (cl_env_copy->function=ecl_fdefinition(VV[26]))->cfun.entry(5, ECL_SYM("COMPILER-LET",1372), v1args, v2symbols, v3values, v1args) /*  MAKE-C1FORM */;
  return value0;
 }
}
static cl_object L3465c1compiler_let_va(cl_narg narg, cl_object v4args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[21]);
 {
  return L3465c1compiler_let(v4args);
 }
}
/* function definition for C1FUNCTION                                         */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3466c1function(cl_object v1args)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(4, ECL_SYM("FUNCTION",398), v1args, ecl_make_int8_t(1), ecl_make_int8_t(1)) /*  CHECK-ARGS-NUMBER */;
 {
  cl_object v2fun;
  v2fun = ecl_car(v1args);
  if (Null(si_valid_function_name_p(v2fun))){
   goto L4;
  }
  (cl_env_copy->function=ecl_fdefinition(VV[29]))->cfun.entry(1, v2fun) /*  ADD-FNAME */;
  {
   cl_object v3funob;
   v3funob = (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(2, v2fun, ECL_T) /*  LOCAL-FUNCTION-REF */;
   if (Null(v3funob)){
    goto L8;
   }
   {
    cl_object v4var;
    v4var = (cl_env_copy->function=ecl_fdefinition(VV[31]))->cfun.entry(1, v3funob) /*  FUN-VAR */;
    T0 = (cl_env_copy->function=ecl_fdefinition(VV[33]))->cfun.entry(4, ECL_SYM("VARIABLE",901), VV[34], v4var, ECL_NIL) /*  MAKE-C1FORM* */;
    value0 = (cl_env_copy->function=ecl_fdefinition(VV[32]))->cfun.entry(2, v4var, T0) /*  ADD-TO-READ-NODES */;
    return value0;
   }
L8:;
   if (!(ECL_SYMBOLP(v2fun))){
    goto L14;
   }
   T1 = (cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(1, v2fun) /*  FUNCTION-NO-SP-CHANGE */;
   goto L12;
L14:;
   T1 = ECL_NIL;
   goto L12;
L12:;
   T0 = Null(T1)?ECL_T:ECL_NIL;
   value0 = (cl_env_copy->function=ecl_fdefinition(VV[33]))->cfun.entry(7, ECL_SYM("FUNCTION",398), ECL_SYM("TYPE",1356), ECL_SYM("FUNCTION",398), VV[35], T0, VV[34], v2fun) /*  MAKE-C1FORM* */;
   return value0;
  }
L4:;
  if (!(ECL_CONSP(v2fun))){
   goto L16;
  }
  {
   cl_object v5;
   v5 = ecl_car(v2fun);
   if (!((v5)==(ECL_SYM("LAMBDA",454)))){
    goto L23;
   }
   goto L20;
L23:;
   goto L21;
L21:;
   if (!((v5)==(ECL_SYM("LAMBDA-BLOCK",1377)))){
    goto L16;
   }
   goto L17;
L20:;
  }
L17:;
  T0 = ecl_cdr(v2fun);
  if (!(ecl_endp(T0))){
   goto L26;
  }
  (cl_env_copy->function=ecl_fdefinition(VV[5]))->cfun.entry(2, VV[39], v2fun) /*  CMPERR */;
L26:;
  {
   cl_object v5name;
   cl_object v6body;
   v5name = ECL_NIL;
   v6body = ECL_NIL;
   T0 = ecl_car(v2fun);
   if (!((T0)==(ECL_SYM("LAMBDA",454)))){
    goto L31;
   }
   {
    cl_object v7decl;
    T0 = ecl_cddr(v2fun);
    v7decl = si_process_declarations(1, T0);
    value0 = (cl_env_copy->function=ecl_fdefinition(VV[40]))->cfun.entry(1, v7decl) /*  FUNCTION-BLOCK-NAME-DECLARATION */;
    if (value0!=ECL_NIL) {
     goto L37;
    }
    v5name = cl_gensym(1, VV[41]);
    goto L35;
L37:;
    v5name = value0;
    goto L35;
L35:;
    v6body = ecl_cdr(v2fun);
    goto L30;
   }
L31:;
   v5name = ecl_cadr(v2fun);
   v6body = ecl_cddr(v2fun);
L30:;
   T0 = CONS(v5name,v6body);
   T1 = ecl_list1(T0);
   T2 = cl_list(2, ECL_SYM("FUNCTION",398), v5name);
   T3 = cl_list(3, ECL_SYM("FLET",375), T1, T2);
   value0 = (cl_env_copy->function=ecl_fdefinition(VV[13]))->cfun.entry(1, T3) /*  C1EXPR */;
   return value0;
  }
L16:;
  value0 = (cl_env_copy->function=ecl_fdefinition(VV[5]))->cfun.entry(2, VV[42], v2fun) /*  CMPERR */;
  return value0;
 }
}
static cl_object L3466c1function_va(cl_narg narg, cl_object v7args, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[28]);
 {
  return L3466c1function(v7args);
 }
}
#include "cmp/cmppass1-special.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _eclSt5qx3GOiteh9_nHT0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPPASS1-SPECIAL.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_eclSt5qx3GOiteh9_nHT0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(_ecl_static_0);
  ecl_cmp_defun(VV[44]);                          /*  C1QUOTE                 */
  ecl_cmp_defun(VV[45]);                          /*  C1DECLARE               */
  ecl_cmp_defun(VV[46]);                          /*  C1THE                   */
  ecl_cmp_defun(VV[47]);                          /*  C1TRULY-THE             */
  ecl_cmp_defun(VV[48]);                          /*  C1COMPILER-LET          */
  ecl_cmp_defun(VV[49]);                          /*  C1FUNCTION              */
}
