Exemplo n.º 1
0
void
NT_initialize_fov (SCHEME_OBJECT fov)
{
  int ctr, in;
  SCHEME_OBJECT iv, imv, prim;
  static int interrupt_numbers[2] =
  {
    Global_GC_Level,
    Global_1_Level,
  };
  static long interrupt_masks[2] =
  {
    0,				/* No interrupts allowed */
    (INT_Stack_Overflow | INT_Global_GC | INT_GC),
  };

  iv = (VECTOR_REF (fov, SYSTEM_INTERRUPT_VECTOR));
  imv = (VECTOR_REF (fov, FIXOBJ_INTERRUPT_MASK_VECTOR));
  prim = (make_primitive ("MICROCODE-POLL-INTERRUPT-HANDLER", 2));

  for (ctr = 0; ctr < ((sizeof (interrupt_numbers)) / (sizeof (int))); ctr++)
  {
    in = interrupt_numbers[ctr];
    VECTOR_SET (iv, in, prim);
    VECTOR_SET (imv, in, (long_to_integer (interrupt_masks[ctr])));
  }
  return;
}
Exemplo n.º 2
0
static void
env_set (SCM env, int depth, int width, SCM val)
{
  while (depth--)
    env = next_rib (env);
  VECTOR_SET (env, width + 1, val);
}
Exemplo n.º 3
0
static SCM
make_env (int n, SCM init, SCM next)
{
  SCM env = scm_c_make_vector (n + 1, init);
  VECTOR_SET (env, 0, next);
  return env;
}
Exemplo n.º 4
0
static SCHEME_OBJECT
names_to_vector (unsigned long length, const char ** names)
{
  SCHEME_OBJECT v = (allocate_marked_vector (TC_VECTOR, length, true));
  unsigned long i;
  for (i = 0; (i < length); i += 1)
    VECTOR_SET (v, i,
		(((names[i]) == 0)
		 ? SHARP_F
		 : (char_pointer_to_symbol (names[i]))));
  return (v);
}
Exemplo n.º 5
0
/* grow-stack! */
	obj_t BGl_growzd2stackz12zc0zz__lalr_driverz00(obj_t BgL_vz00_1)
	{
		AN_OBJECT;
		{	/* Lalr/driver.scm 49 */
			{	/* Lalr/driver.scm 50 */
				int BgL_lenz00_771;

				BgL_lenz00_771 = VECTOR_LENGTH(BgL_vz00_1);
				{	/* Lalr/driver.scm 50 */
					obj_t BgL_v2z00_772;

					{	/* Lalr/driver.scm 51 */
						long BgL_arg1894z00_780;

						BgL_arg1894z00_780 =
							(
							(long) (BgL_lenz00_771) +
							BGl_za2stackzd2siza7ezd2incrementza2za7zz__lalr_driverz00);
						BgL_v2z00_772 =
							make_vector((int) (BgL_arg1894z00_780), BINT(((long) 0)));
					}
					{	/* Lalr/driver.scm 51 */

						{
							long BgL_iz00_774;

							BgL_iz00_774 = ((long) 0);
						BgL_zc3anonymousza31889ze3z83_775:
							if ((BgL_iz00_774 < (long) (BgL_lenz00_771)))
								{	/* Lalr/driver.scm 53 */
									VECTOR_SET(BgL_v2z00_772,
										(int) (BgL_iz00_774),
										VECTOR_REF(BgL_vz00_1, (int) (BgL_iz00_774)));
									{
										long BgL_iz00_1611;

										BgL_iz00_1611 = (BgL_iz00_774 + ((long) 1));
										BgL_iz00_774 = BgL_iz00_1611;
										goto BgL_zc3anonymousza31889ze3z83_775;
									}
								}
							else
								{	/* Lalr/driver.scm 53 */
									return BgL_v2z00_772;
								}
						}
					}
				}
			}
		}
	}
Exemplo n.º 6
0
/*---------------------------------------------------------------------*/
BGL_RUNTIME_DEF obj_t
bgl_getgroups() {
#if BGL_HAVE_GETGROUPS
   int ngroups = getgroups( 0, 0L );

  if( ngroups == -1 ) {
     C_SYSTEM_FAILURE( BGL_IO_ERROR, "getgroups", strerror( errno ), BFALSE );
  } else {
     gid_t* groups = alloca( sizeof( gid_t ) * ngroups );

     ngroups = getgroups( ngroups, groups );

     if( ngroups == -1 ) {
	C_SYSTEM_FAILURE( BGL_IO_ERROR, "getgroups", strerror( errno ), BFALSE );
     } else {
	obj_t res = create_vector( ngroups + 1 );
	gid_t egid = getegid();
	int seen_egid = 0;
	int i;

	for( i = 0; i < ngroups; i++ ) {
	   VECTOR_SET( res, i, BINT( groups[ i ] ) );
	   if( groups[ i ] == egid ) seen_egid = 1;
	}
	
	if( seen_egid ) {
	   VECTOR( res ).length--;
	} else {
	   VECTOR_SET( res, i, BINT( egid ) );
	}

	return res;
     }
  }
#else
      return create_vector( 0 );
#endif
}
Exemplo n.º 7
0
/*---------------------------------------------------------------------*/
static obj_t
make_names( int range, char *fmt ) {
   obj_t names = (obj_t)create_vector( range );
   char buf[ 40 ];
   struct tm tm;
   int i;

   for( i = 0; i < range; i++ ) {
      tm.tm_wday = i;
      tm.tm_mon = i;
      strftime( buf, 40, fmt, &tm );
      VECTOR_SET( names, i, string_to_bstring( buf ) );
   }

   return names;
}
Exemplo n.º 8
0
/*---------------------------------------------------------------------*/
static obj_t
bgl_bstring_to_symbol( obj_t name ) {
   long hash_number;
   obj_t bucket;
   char *cname = BSTRING_TO_STRING( name );
   hash_number = ____get_hash_power_number( cname, SYMBOL_HASH_TABLE_SIZE_SHIFT );
   
   bucket = VECTOR_REF( ____bgl_get_symtab(), hash_number );
   
   if( NULLP( bucket ) ) {
      obj_t symbol = make_symbol( name );
      obj_t pair = MAKE_PAIR( symbol, BNIL );

      VECTOR_SET( ____bgl_get_symtab(), hash_number, pair );
      
      return symbol;
   } else {
      obj_t run = bucket, back = bucket;
      
      while( !NULLP( run ) &&
	     SYMBOL( CAR( run ) ).string &&
	     !bigloo_strcmp( SYMBOL( CAR( run ) ).string, name ) )
         back = run, run = CDR( run );
      
      if( !NULLP( run ) ) {
         return CAR( run );
      }
      else {
         obj_t symbol = make_symbol( name );
	 obj_t pair = MAKE_PAIR( symbol, BNIL );
	 
         SET_CDR( back, pair );

         return symbol;
      }
   }
}
Exemplo n.º 9
0
SCHEME_OBJECT
make_microcode_identification_vector (void)
{
  SCHEME_OBJECT v = (make_vector (IDENTITY_LENGTH, SHARP_F, true));
  VECTOR_SET (v, ID_RELEASE, SHARP_F);
  VECTOR_SET (v, ID_MICRO_VERSION, (char_pointer_to_string (PACKAGE_VERSION)));
  VECTOR_SET (v, ID_PRINTER_WIDTH, (ULONG_TO_FIXNUM (OS_tty_x_size ())));
  VECTOR_SET (v, ID_PRINTER_LENGTH, (ULONG_TO_FIXNUM (OS_tty_y_size ())));
  VECTOR_SET (v, ID_NEW_LINE_CHARACTER, (ASCII_TO_CHAR ('\n')));
  VECTOR_SET (v, ID_FLONUM_PRECISION, (ULONG_TO_FIXNUM (DBL_MANT_DIG)));
  VECTOR_SET (v, ID_FLONUM_EPSILON, (double_to_flonum ((double) DBL_EPSILON)));
  VECTOR_SET (v, ID_OS_NAME, (char_pointer_to_string (OS_Name)));
  VECTOR_SET (v, ID_OS_VARIANT, (char_pointer_to_string (OS_Variant)));
  VECTOR_SET (v, ID_STACK_TYPE, (char_pointer_to_string ("standard")));
  VECTOR_SET (v, ID_MACHINE_TYPE, (char_pointer_to_string (MACHINE_TYPE)));
  {
    const char * name = (cc_arch_name ());
    if (name != 0)
      VECTOR_SET (v, ID_CC_ARCH, (char_pointer_to_string (name)));
  }
  return (v);
}
Exemplo n.º 10
0
static SCM
memoize (SCM exp, SCM env)
{
  if (!SCM_EXPANDED_P (exp))
    abort ();

  switch (SCM_EXPANDED_TYPE (exp))
    {
    case SCM_EXPANDED_VOID:
      return MAKMEMO_QUOTE (SCM_UNSPECIFIED);
      
    case SCM_EXPANDED_CONST:
      return MAKMEMO_QUOTE (REF (exp, CONST, EXP));

    case SCM_EXPANDED_PRIMITIVE_REF:
      if (scm_is_eq (scm_current_module (), scm_the_root_module ()))
        return maybe_makmemo_capture_module
          (MAKMEMO_BOX_REF (MAKMEMO_TOP_BOX (SCM_EXPANDED_TOPLEVEL_REF,
                                             REF (exp, PRIMITIVE_REF, NAME))),
           env);
      else
        return MAKMEMO_BOX_REF (MAKMEMO_MOD_BOX (SCM_EXPANDED_MODULE_REF,
                                                 list_of_guile,
                                                 REF (exp, PRIMITIVE_REF, NAME),
                                                 SCM_BOOL_F));
                                
    case SCM_EXPANDED_LEXICAL_REF:
      return MAKMEMO_LEX_REF (lookup (REF (exp, LEXICAL_REF, GENSYM), env));

    case SCM_EXPANDED_LEXICAL_SET:
      return MAKMEMO_LEX_SET (lookup (REF (exp, LEXICAL_SET, GENSYM), env),
                              memoize (REF (exp, LEXICAL_SET, EXP), env));

    case SCM_EXPANDED_MODULE_REF:
      return MAKMEMO_BOX_REF (MAKMEMO_MOD_BOX
                              (SCM_EXPANDED_MODULE_REF,
                               REF (exp, MODULE_REF, MOD),
                               REF (exp, MODULE_REF, NAME),
                               REF (exp, MODULE_REF, PUBLIC)));

    case SCM_EXPANDED_MODULE_SET:
      return MAKMEMO_BOX_SET (MAKMEMO_MOD_BOX
                              (SCM_EXPANDED_MODULE_SET,
                               REF (exp, MODULE_SET, MOD),
                               REF (exp, MODULE_SET, NAME),
                               REF (exp, MODULE_SET, PUBLIC)),
                              memoize (REF (exp, MODULE_SET, EXP), env));

    case SCM_EXPANDED_TOPLEVEL_REF:
      return maybe_makmemo_capture_module
        (MAKMEMO_BOX_REF (MAKMEMO_TOP_BOX (SCM_EXPANDED_TOPLEVEL_REF,
                                           REF (exp, TOPLEVEL_REF, NAME))),
         env);

    case SCM_EXPANDED_TOPLEVEL_SET:
      return maybe_makmemo_capture_module
        (MAKMEMO_BOX_SET (MAKMEMO_TOP_BOX (SCM_EXPANDED_TOPLEVEL_SET,
                                           REF (exp, TOPLEVEL_SET, NAME)),
                          memoize (REF (exp, TOPLEVEL_SET, EXP),
                                   capture_env (env))),
         env);

    case SCM_EXPANDED_TOPLEVEL_DEFINE:
      return maybe_makmemo_capture_module
        (MAKMEMO_BOX_SET (MAKMEMO_TOP_BOX (SCM_EXPANDED_TOPLEVEL_DEFINE,
                                           REF (exp, TOPLEVEL_DEFINE, NAME)),
                          memoize (REF (exp, TOPLEVEL_DEFINE, EXP),
                                   capture_env (env))),
         env);

    case SCM_EXPANDED_CONDITIONAL:
      return MAKMEMO_IF (memoize (REF (exp, CONDITIONAL, TEST), env),
                         memoize (REF (exp, CONDITIONAL, CONSEQUENT), env),
                         memoize (REF (exp, CONDITIONAL, ALTERNATE), env));

    case SCM_EXPANDED_CALL:
      {
        SCM proc, args;

        proc = REF (exp, CALL, PROC);
        args = memoize_exps (REF (exp, CALL, ARGS), env);

        return MAKMEMO_CALL (memoize (proc, env), args);
      }

    case SCM_EXPANDED_PRIMCALL:
      {
        SCM name, args;
        int nargs;

        name = REF (exp, PRIMCALL, NAME);
        args = memoize_exps (REF (exp, PRIMCALL, ARGS), env);
        nargs = scm_ilength (args);

        if (nargs == 3
            && scm_is_eq (name, scm_from_latin1_symbol ("call-with-prompt")))
          return MAKMEMO_CALL_WITH_PROMPT (CAR (args),
                                           CADR (args),
                                           CADDR (args));
        else if (nargs == 2
                 && scm_is_eq (name, scm_from_latin1_symbol ("apply")))
          return MAKMEMO_APPLY (CAR (args), CADR (args));
        else if (nargs == 1
                 && scm_is_eq (name,
                               scm_from_latin1_symbol
                               ("call-with-current-continuation")))
          return MAKMEMO_CONT (CAR (args));
        else if (nargs == 2
                 && scm_is_eq (name,
                               scm_from_latin1_symbol ("call-with-values")))
          return MAKMEMO_CALL_WITH_VALUES (CAR (args), CADR (args));
        else if (nargs == 1
                 && scm_is_eq (name,
                               scm_from_latin1_symbol ("variable-ref")))
          return MAKMEMO_BOX_REF (CAR (args));
        else if (nargs == 2
                 && scm_is_eq (name,
                               scm_from_latin1_symbol ("variable-set!")))
          return MAKMEMO_BOX_SET (CAR (args), CADR (args));
        else if (nargs == 2
                 && scm_is_eq (name, scm_from_latin1_symbol ("wind")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (wind), args);
        else if (nargs == 0
                 && scm_is_eq (name, scm_from_latin1_symbol ("unwind")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (unwind), SCM_EOL);
        else if (nargs == 2
                 && scm_is_eq (name, scm_from_latin1_symbol ("push-fluid")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (push_fluid), args);
        else if (nargs == 0
                 && scm_is_eq (name, scm_from_latin1_symbol ("pop-fluid")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (pop_fluid), SCM_EOL);
        else if (nargs == 1
                 && scm_is_eq (name,
                               scm_from_latin1_symbol ("push-dynamic-state")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (push_dynamic_state), args);
        else if (nargs == 0
                 && scm_is_eq (name,
                               scm_from_latin1_symbol ("pop-dynamic-state")))
          return MAKMEMO_CALL (MAKMEMO_QUOTE (pop_dynamic_state), SCM_EOL);
        else if (scm_is_eq (scm_current_module (), scm_the_root_module ()))
          return MAKMEMO_CALL (maybe_makmemo_capture_module
                               (MAKMEMO_BOX_REF
                                (MAKMEMO_TOP_BOX (SCM_EXPANDED_TOPLEVEL_REF,
                                                  name)),
                                env),
                               args);
        else
          return MAKMEMO_CALL (MAKMEMO_BOX_REF
                               (MAKMEMO_MOD_BOX (SCM_EXPANDED_MODULE_REF,
                                                 list_of_guile,
                                                 name,
                                                 SCM_BOOL_F)),
                               args);
      }

    case SCM_EXPANDED_SEQ:
      return MAKMEMO_SEQ (memoize (REF (exp, SEQ, HEAD), env),
                          memoize (REF (exp, SEQ, TAIL), env));

    case SCM_EXPANDED_LAMBDA:
      /* The body will be a lambda-case. */
      {
	SCM meta, body, proc, new_env;

	meta = REF (exp, LAMBDA, META);
        body = REF (exp, LAMBDA, BODY);
        new_env = push_flat_link (capture_env (env));
        proc = memoize (body, new_env);
        SCM_SETCAR (SCM_CDR (SCM_MEMOIZED_ARGS (proc)), meta);

	return maybe_makmemo_capture_module (capture_flat_env (proc, new_env),
                                             env);
      }

    case SCM_EXPANDED_LAMBDA_CASE:
      {
        SCM req, rest, opt, kw, inits, vars, body, alt;
        SCM unbound, arity, rib, new_env;
        int nreq, nopt, ninits;

        req = REF (exp, LAMBDA_CASE, REQ);
        rest = scm_not (scm_not (REF (exp, LAMBDA_CASE, REST)));
        opt = REF (exp, LAMBDA_CASE, OPT);
        kw = REF (exp, LAMBDA_CASE, KW);
        inits = REF (exp, LAMBDA_CASE, INITS);
        vars = REF (exp, LAMBDA_CASE, GENSYMS);
        body = REF (exp, LAMBDA_CASE, BODY);
        alt = REF (exp, LAMBDA_CASE, ALTERNATE);

        nreq = scm_ilength (req);
        nopt = scm_is_pair (opt) ? scm_ilength (opt) : 0;
        ninits = scm_ilength (inits);
        /* This relies on assignment conversion turning inits into a
           sequence of CONST expressions whose values are a unique
           "unbound" token.  */
        unbound = ninits ? REF (CAR (inits), CONST, EXP) : SCM_BOOL_F;
        rib = scm_vector (vars);
        new_env = push_nested_link (rib, env);

        if (scm_is_true (kw))
          {
            /* (aok? (kw name sym) ...) -> (aok? (kw . index) ...) */
            SCM aok = CAR (kw), indices = SCM_EOL;
            for (kw = CDR (kw); scm_is_pair (kw); kw = CDR (kw))
              {
                SCM k;
                int idx;

                k = CAR (CAR (kw));
                idx = lookup_rib (CADDR (CAR (kw)), rib);
                indices = scm_acons (k, SCM_I_MAKINUM (idx), indices);
              }
            kw = scm_cons (aok, scm_reverse_x (indices, SCM_UNDEFINED));
          }

        if (scm_is_false (alt) && scm_is_false (kw) && scm_is_false (opt))
          {
            if (scm_is_false (rest))
              arity = FIXED_ARITY (nreq);
            else
              arity = REST_ARITY (nreq, SCM_BOOL_T);
          }
        else if (scm_is_true (alt))
          arity = FULL_ARITY (nreq, rest, nopt, kw, ninits, unbound,
                              SCM_MEMOIZED_ARGS (memoize (alt, env)));
        else
          arity = FULL_ARITY (nreq, rest, nopt, kw, ninits, unbound,
                              SCM_BOOL_F);

        return MAKMEMO_LAMBDA (memoize (body, new_env), arity,
                               SCM_EOL /* meta, filled in later */);
      }

    case SCM_EXPANDED_LET:
      {
        SCM vars, exps, body, varsv, inits, new_env;
        int i;
        
        vars = REF (exp, LET, GENSYMS);
        exps = REF (exp, LET, VALS);
        body = REF (exp, LET, BODY);
        
        varsv = scm_vector (vars);
        inits = scm_c_make_vector (VECTOR_LENGTH (varsv),
                                   SCM_BOOL_F);
        new_env = push_nested_link (varsv, capture_env (env));
        for (i = 0; scm_is_pair (exps); exps = CDR (exps), i++)
          VECTOR_SET (inits, i, memoize (CAR (exps), env));

        return maybe_makmemo_capture_module
          (MAKMEMO_LET (inits, memoize (body, new_env)), env);
      }

    default:
      abort ();
    }
}
Exemplo n.º 11
0
/* set-one-kaptured! */
	obj_t BGl_setzd2onezd2kapturedz12z12zzglobaliza7e_kaptureza7(BgL_localz00_bglt
		BgL_localz00_2, obj_t BgL_lockingz00_3)
	{
		AN_OBJECT;
		{	/* Globalize/kapture.scm 53 */
			{	/* Globalize/kapture.scm 58 */
				BgL_valuez00_bglt BgL_infoz00_929;

				{
					BgL_variablez00_bglt BgL_auxz00_1570;

					BgL_auxz00_1570 = (BgL_variablez00_bglt) (BgL_localz00_2);
					BgL_infoz00_929 =
						(((BgL_variablez00_bglt) CREF(BgL_auxz00_1570))->BgL_valuez00);
				}
				{	/* Globalize/kapture.scm 58 */
					obj_t BgL_kapturedz00_930;

					{	/* Globalize/kapture.scm 59 */
						BgL_sfunzf2ginfozf2_bglt BgL_obj3367z00_1441;

						BgL_obj3367z00_1441 = (BgL_sfunzf2ginfozf2_bglt) (BgL_infoz00_929);
						{
							obj_t BgL_auxz00_1574;

							{	/* Globalize/kapture.scm 59 */
								BgL_objectz00_bglt BgL_auxz00_1575;

								BgL_auxz00_1575 = (BgL_objectz00_bglt) (BgL_obj3367z00_1441);
								BgL_auxz00_1574 = BGL_OBJECT_WIDENING(BgL_auxz00_1575);
							}
							BgL_kapturedz00_930 =
								(((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1574))->
								BgL_kapturedz00);
						}
					}
					{	/* Globalize/kapture.scm 59 */

						{	/* Globalize/kapture.scm 61 */
							bool_t BgL_testz00_1579;

							if (PAIRP(BgL_kapturedz00_930))
								{	/* Globalize/kapture.scm 61 */
									BgL_testz00_1579 = ((bool_t) 1);
								}
							else
								{	/* Globalize/kapture.scm 61 */
									BgL_testz00_1579 = NULLP(BgL_kapturedz00_930);
								}
							if (BgL_testz00_1579)
								{	/* Globalize/kapture.scm 61 */
									{	/* Globalize/kapture.scm 64 */
										obj_t BgL_v3646z00_932;

										BgL_v3646z00_932 = create_vector((int) (((long) 3)));
										VECTOR_SET(BgL_v3646z00_932,
											(int) (((long) 2)), BgL_kapturedz00_930);
										VECTOR_SET(BgL_v3646z00_932,
											(int) (((long) 1)), BgL_lockingz00_3);
										VECTOR_SET(BgL_v3646z00_932, (int) (((long) 0)), BTRUE);
										return BgL_v3646z00_932;
									}
								}
							else
								{	/* Globalize/kapture.scm 61 */
									if (BGl_iszd2azf3z21zz__objectz00(BgL_kapturedz00_930,
											BGl_localz00zzast_varz00))
										{	/* Globalize/kapture.scm 65 */
											{	/* Globalize/kapture.scm 68 */
												obj_t BgL_v3647z00_934;

												BgL_v3647z00_934 = create_vector((int) (((long) 3)));
												VECTOR_SET(BgL_v3647z00_934, (int) (((long) 2)), BNIL);
												VECTOR_SET(BgL_v3647z00_934,
													(int) (((long) 1)), BgL_lockingz00_3);
												VECTOR_SET(BgL_v3647z00_934,
													(int) (((long) 0)), BFALSE);
												return BgL_v3647z00_934;
											}
										}
									else
										{	/* Globalize/kapture.scm 65 */
											{	/* Globalize/kapture.scm 72 */
												obj_t BgL_newzd2bodyzd2_935;

												{	/* Globalize/kapture.scm 72 */
													BgL_sfunzf2ginfozf2_bglt BgL_obj3370z00_1463;

													BgL_obj3370z00_1463 =
														(BgL_sfunzf2ginfozf2_bglt) (BgL_infoz00_929);
													{
														obj_t BgL_auxz00_1602;

														{	/* Globalize/kapture.scm 72 */
															BgL_objectz00_bglt BgL_auxz00_1603;

															BgL_auxz00_1603 =
																(BgL_objectz00_bglt) (BgL_obj3370z00_1463);
															BgL_auxz00_1602 =
																BGL_OBJECT_WIDENING(BgL_auxz00_1603);
														}
														BgL_newzd2bodyzd2_935 =
															(((BgL_sfunzf2ginfozf2_bglt)
																CREF(BgL_auxz00_1602))->BgL_newzd2bodyzd2);
													}
												}
												{	/* Globalize/kapture.scm 74 */
													BgL_sfunzf2ginfozf2_bglt BgL_obj3369z00_1464;

													obj_t BgL_val3368z00_1465;

													BgL_obj3369z00_1464 =
														(BgL_sfunzf2ginfozf2_bglt) (BgL_infoz00_929);
													BgL_val3368z00_1465 = (obj_t) (BgL_localz00_2);
													{
														obj_t BgL_auxz00_1609;

														{	/* Globalize/kapture.scm 74 */
															BgL_objectz00_bglt BgL_auxz00_1610;

															BgL_auxz00_1610 =
																(BgL_objectz00_bglt) (BgL_obj3369z00_1464);
															BgL_auxz00_1609 =
																BGL_OBJECT_WIDENING(BgL_auxz00_1610);
														}
														((((BgL_sfunzf2ginfozf2_bglt)
																	CREF(BgL_auxz00_1609))->BgL_kapturedz00) =
															((obj_t) BgL_val3368z00_1465), BUNSPEC);
													}
												}
												{	/* Globalize/kapture.scm 76 */
													obj_t BgL_g3638z00_937;

													{	/* Globalize/kapture.scm 77 */
														obj_t BgL_auxz00_1621;

														obj_t BgL_auxz00_1614;

														{	/* Globalize/kapture.scm 78 */
															BgL_sfunzf2ginfozf2_bglt BgL_obj3339z00_1467;

															BgL_obj3339z00_1467 =
																(BgL_sfunzf2ginfozf2_bglt) (BgL_infoz00_929);
															{
																obj_t BgL_auxz00_1623;

																{	/* Globalize/kapture.scm 78 */
																	BgL_objectz00_bglt BgL_auxz00_1624;

																	BgL_auxz00_1624 =
																		(BgL_objectz00_bglt) (BgL_obj3339z00_1467);
																	BgL_auxz00_1623 =
																		BGL_OBJECT_WIDENING(BgL_auxz00_1624);
																}
																BgL_auxz00_1621 =
																	(((BgL_sfunzf2ginfozf2_bglt)
																		CREF(BgL_auxz00_1623))->BgL_cfunctionz00);
															}
														}
														{	/* Globalize/kapture.scm 77 */
															BgL_sfunzf2ginfozf2_bglt BgL_obj3336z00_1466;

															BgL_obj3336z00_1466 =
																(BgL_sfunzf2ginfozf2_bglt) (BgL_infoz00_929);
															{
																obj_t BgL_auxz00_1616;

																{	/* Globalize/kapture.scm 77 */
																	BgL_objectz00_bglt BgL_auxz00_1617;

																	BgL_auxz00_1617 =
																		(BgL_objectz00_bglt) (BgL_obj3336z00_1466);
																	BgL_auxz00_1616 =
																		BGL_OBJECT_WIDENING(BgL_auxz00_1617);
																}
																BgL_auxz00_1614 =
																	(((BgL_sfunzf2ginfozf2_bglt)
																		CREF(BgL_auxz00_1616))->BgL_ctoza2za2);
															}
														}
														BgL_g3638z00_937 =
															bgl_append2(BgL_auxz00_1614, BgL_auxz00_1621);
													}
													{
														obj_t BgL_kapturedz00_939;

														obj_t BgL_ctoz00_940;

														bool_t BgL_setterzf3zf3_941;

														BgL_kapturedz00_939 = BNIL;
														BgL_ctoz00_940 = BgL_g3638z00_937;
														BgL_setterzf3zf3_941 = ((bool_t) 1);
													BgL_zc3anonymousza33659ze3z83_942:
														if (NULLP(BgL_ctoz00_940))
															{	/* Globalize/kapture.scm 87 */
																obj_t BgL_freez00_944;

																BgL_freez00_944 =
																	BGl_getzd2freezd2varsz00zzglobaliza7e_freeza7(
																	(BgL_nodez00_bglt) (BgL_newzd2bodyzd2_935),
																	BgL_localz00_2);
																{	/* Globalize/kapture.scm 87 */
																	obj_t BgL_fkapturedz00_945;

																	BgL_fkapturedz00_945 =
																		BGl_freezd2fromzd2zzglobaliza7e_freeza7
																		(BgL_kapturedz00_939, BgL_localz00_2);
																	{	/* Globalize/kapture.scm 88 */
																		obj_t BgL_kapturedz00_946;

																		{	/* Globalize/kapture.scm 89 */
																			obj_t BgL_arg3665z00_956;

																			BgL_arg3665z00_956 =
																				MAKE_PAIR(BgL_freez00_944,
																				BgL_fkapturedz00_945);
																			BgL_kapturedz00_946 =
																				BGl_unionz00zzglobaliza7e_kaptureza7
																				(BgL_arg3665z00_956);
																		}
																		{	/* Globalize/kapture.scm 89 */

																			if (BgL_setterzf3zf3_941)
																				{	/* Globalize/kapture.scm 96 */
																					{	/* Globalize/kapture.scm 99 */
																						BgL_sfunzf2ginfozf2_bglt
																							BgL_obj3369z00_1469;
																						obj_t BgL_val3368z00_1470;

																						BgL_obj3369z00_1469 =
																							(BgL_sfunzf2ginfozf2_bglt)
																							(BgL_infoz00_929);
																						BgL_val3368z00_1470 =
																							BgL_kapturedz00_946;
																						{
																							obj_t BgL_auxz00_1638;

																							{	/* Globalize/kapture.scm 99 */
																								BgL_objectz00_bglt
																									BgL_auxz00_1639;
																								BgL_auxz00_1639 =
																									(BgL_objectz00_bglt)
																									(BgL_obj3369z00_1469);
																								BgL_auxz00_1638 =
																									BGL_OBJECT_WIDENING
																									(BgL_auxz00_1639);
																							}
																							((((BgL_sfunzf2ginfozf2_bglt)
																										CREF(BgL_auxz00_1638))->
																									BgL_kapturedz00) =
																								((obj_t) BgL_val3368z00_1470),
																								BUNSPEC);
																						}
																					}
																					{
																						obj_t BgL_l3648z00_948;

																						{	/* Globalize/kapture.scm 101 */
																							bool_t BgL_auxz00_1643;

																							BgL_l3648z00_948 =
																								BgL_kapturedz00_946;
																						BgL_zc3anonymousza33661ze3z83_949:
																							if (PAIRP(BgL_l3648z00_948))
																								{	/* Globalize/kapture.scm 101 */
																									{	/* Globalize/kapture.scm 102 */
																										obj_t BgL_localz00_951;

																										BgL_localz00_951 =
																											CAR(BgL_l3648z00_948);
																										{	/* Globalize/kapture.scm 103 */
																											BgL_valuez00_bglt
																												BgL_arg3663z00_952;
																											{
																												BgL_variablez00_bglt
																													BgL_auxz00_1647;
																												BgL_auxz00_1647 =
																													(BgL_variablez00_bglt)
																													(BgL_localz00_951);
																												BgL_arg3663z00_952 =
																													(((BgL_variablez00_bglt) CREF(BgL_auxz00_1647))->BgL_valuez00);
																											}
																											{	/* Globalize/kapture.scm 102 */
																												BgL_svarzf2ginfozf2_bglt
																													BgL_obj3450z00_1474;
																												bool_t
																													BgL_val3449z00_1475;
																												BgL_obj3450z00_1474 =
																													(BgL_svarzf2ginfozf2_bglt)
																													(BgL_arg3663z00_952);
																												BgL_val3449z00_1475 =
																													((bool_t) 1);
																												{
																													obj_t BgL_auxz00_1651;

																													{	/* Globalize/kapture.scm 102 */
																														BgL_objectz00_bglt
																															BgL_auxz00_1652;
																														BgL_auxz00_1652 =
																															(BgL_objectz00_bglt)
																															(BgL_obj3450z00_1474);
																														BgL_auxz00_1651 =
																															BGL_OBJECT_WIDENING
																															(BgL_auxz00_1652);
																													}
																													((((BgL_svarzf2ginfozf2_bglt) CREF(BgL_auxz00_1651))->BgL_kapturedzf3zf3) = ((bool_t) BgL_val3449z00_1475), BUNSPEC);
																												}
																											}
																										}
																									}
																									{
																										obj_t BgL_l3648z00_1656;

																										BgL_l3648z00_1656 =
																											CDR(BgL_l3648z00_948);
																										BgL_l3648z00_948 =
																											BgL_l3648z00_1656;
																										goto
																											BgL_zc3anonymousza33661ze3z83_949;
																									}
																								}
																							else
																								{	/* Globalize/kapture.scm 101 */
																									BgL_auxz00_1643 =
																										((bool_t) 1);
																								}
																							BBOOL(BgL_auxz00_1643);
																						}
																					}
																				}
																			else
																				{	/* Globalize/kapture.scm 105 */
																					BgL_sfunzf2ginfozf2_bglt
																						BgL_obj3369z00_1477;
																					obj_t BgL_val3368z00_1478;

																					BgL_obj3369z00_1477 =
																						(BgL_sfunzf2ginfozf2_bglt)
																						(BgL_infoz00_929);
																					BgL_val3368z00_1478 = BFALSE;
																					{
																						obj_t BgL_auxz00_1660;

																						{	/* Globalize/kapture.scm 105 */
																							BgL_objectz00_bglt
																								BgL_auxz00_1661;
																							BgL_auxz00_1661 =
																								(BgL_objectz00_bglt)
																								(BgL_obj3369z00_1477);
																							BgL_auxz00_1660 =
																								BGL_OBJECT_WIDENING
																								(BgL_auxz00_1661);
																						}
																						((((BgL_sfunzf2ginfozf2_bglt)
																									CREF(BgL_auxz00_1660))->
																								BgL_kapturedz00) =
																							((obj_t) BgL_val3368z00_1478),
																							BUNSPEC);
																					}
																				}
																			{	/* Globalize/kapture.scm 106 */
																				obj_t BgL_v3650z00_955;

																				BgL_v3650z00_955 =
																					create_vector((int) (((long) 3)));
																				VECTOR_SET(BgL_v3650z00_955,
																					(int) (((long) 2)),
																					BgL_kapturedz00_946);
																				VECTOR_SET(BgL_v3650z00_955,
																					(int) (((long) 1)), BgL_lockingz00_3);
																				VECTOR_SET(BgL_v3650z00_955,
																					(int) (((long) 0)),
																					BBOOL(BgL_setterzf3zf3_941));
																				return BgL_v3650z00_955;
																			}
																		}
																	}
																}
															}
														else
															{	/* Globalize/kapture.scm 86 */
																if (
																	(CAR(BgL_ctoz00_940) ==
																		(obj_t) (BgL_localz00_2)))
																	{	/* Globalize/kapture.scm 107 */
																		{
																			obj_t BgL_ctoz00_1678;

																			BgL_ctoz00_1678 = CDR(BgL_ctoz00_940);
																			BgL_ctoz00_940 = BgL_ctoz00_1678;
																			goto BgL_zc3anonymousza33659ze3z83_942;
																		}
																	}
																else
																	{	/* Globalize/kapture.scm 113 */
																		bool_t BgL_testz00_1680;

																		{	/* Globalize/kapture.scm 113 */
																			BgL_sfunzf2ginfozf2_bglt
																				BgL_obj3323z00_1492;
																			{	/* Globalize/kapture.scm 113 */
																				BgL_valuez00_bglt BgL_auxz00_1681;

																				{	/* Globalize/kapture.scm 113 */
																					BgL_variablez00_bglt
																						BgL_obj1611z00_1491;
																					{	/* Globalize/kapture.scm 113 */
																						obj_t BgL_pairz00_1490;

																						BgL_pairz00_1490 = BgL_ctoz00_940;
																						BgL_obj1611z00_1491 =
																							(BgL_variablez00_bglt) (CAR
																							(BgL_pairz00_1490));
																					}
																					BgL_auxz00_1681 =
																						(((BgL_variablez00_bglt)
																							CREF(BgL_obj1611z00_1491))->
																						BgL_valuez00);
																				}
																				BgL_obj3323z00_1492 =
																					(BgL_sfunzf2ginfozf2_bglt)
																					(BgL_auxz00_1681);
																			}
																			{
																				obj_t BgL_auxz00_1686;

																				{	/* Globalize/kapture.scm 113 */
																					BgL_objectz00_bglt BgL_auxz00_1687;

																					BgL_auxz00_1687 =
																						(BgL_objectz00_bglt)
																						(BgL_obj3323z00_1492);
																					BgL_auxz00_1686 =
																						BGL_OBJECT_WIDENING
																						(BgL_auxz00_1687);
																				}
																				BgL_testz00_1680 =
																					(((BgL_sfunzf2ginfozf2_bglt)
																						CREF(BgL_auxz00_1686))->
																					BgL_gzf3zf3);
																			}
																		}
																		if (BgL_testz00_1680)
																			{	/* Globalize/kapture.scm 113 */
																				{	/* Globalize/kapture.scm 116 */
																					obj_t BgL_otherzd2kapturedzd2_960;

																					{	/* Globalize/kapture.scm 116 */
																						obj_t BgL_arg3679z00_971;

																						BgL_arg3679z00_971 =
																							CAR(BgL_ctoz00_940);
																						BgL_otherzd2kapturedzd2_960 =
																							BGl_setzd2onezd2kapturedz12z12zzglobaliza7e_kaptureza7
																							((BgL_localz00_bglt)
																							(BgL_arg3679z00_971),
																							BgL_lockingz00_3);
																					}
																					{	/* Globalize/kapture.scm 118 */
																						bool_t BgL_testz00_1694;

																						{	/* Globalize/kapture.scm 118 */
																							int BgL_kz00_1495;

																							BgL_kz00_1495 =
																								(int) (((long) 0));
																							BgL_testz00_1694 =
																								CBOOL(VECTOR_REF
																								(BgL_otherzd2kapturedzd2_960,
																									BgL_kz00_1495));
																						}
																						if (BgL_testz00_1694)
																							{	/* Globalize/kapture.scm 124 */
																								obj_t BgL_arg3670z00_962;

																								obj_t BgL_arg3671z00_963;

																								BgL_arg3670z00_962 =
																									MAKE_PAIR(VECTOR_REF
																									(BgL_otherzd2kapturedzd2_960,
																										(int) (((long) 2))),
																									BgL_kapturedz00_939);
																								BgL_arg3671z00_963 =
																									CDR(BgL_ctoz00_940);
																								{
																									obj_t BgL_ctoz00_1703;

																									obj_t BgL_kapturedz00_1702;

																									BgL_kapturedz00_1702 =
																										BgL_arg3670z00_962;
																									BgL_ctoz00_1703 =
																										BgL_arg3671z00_963;
																									BgL_ctoz00_940 =
																										BgL_ctoz00_1703;
																									BgL_kapturedz00_939 =
																										BgL_kapturedz00_1702;
																									goto
																										BgL_zc3anonymousza33659ze3z83_942;
																								}
																							}
																						else
																							{	/* Globalize/kapture.scm 119 */
																								obj_t BgL_arg3673z00_965;

																								obj_t BgL_arg3674z00_966;

																								bool_t BgL_arg3675z00_967;

																								BgL_arg3673z00_965 =
																									MAKE_PAIR(VECTOR_REF
																									(BgL_otherzd2kapturedzd2_960,
																										(int) (((long) 2))),
																									BgL_kapturedz00_939);
																								BgL_arg3674z00_966 =
																									CDR(BgL_ctoz00_940);
																								if (BgL_setterzf3zf3_941)
																									{	/* Globalize/kapture.scm 121 */
																										BgL_arg3675z00_967 =
																											(VECTOR_REF
																											(BgL_otherzd2kapturedzd2_960,
																												(int) (((long) 1))) ==
																											(obj_t) (BgL_localz00_2));
																									}
																								else
																									{	/* Globalize/kapture.scm 121 */
																										BgL_arg3675z00_967 =
																											((bool_t) 0);
																									}
																								{
																									bool_t BgL_setterzf3zf3_1715;

																									obj_t BgL_ctoz00_1714;

																									obj_t BgL_kapturedz00_1713;

																									BgL_kapturedz00_1713 =
																										BgL_arg3673z00_965;
																									BgL_ctoz00_1714 =
																										BgL_arg3674z00_966;
																									BgL_setterzf3zf3_1715 =
																										BgL_arg3675z00_967;
																									BgL_setterzf3zf3_941 =
																										BgL_setterzf3zf3_1715;
																									BgL_ctoz00_940 =
																										BgL_ctoz00_1714;
																									BgL_kapturedz00_939 =
																										BgL_kapturedz00_1713;
																									goto
																										BgL_zc3anonymousza33659ze3z83_942;
																								}
																							}
																					}
																				}
																			}
																		else
																			{	/* Globalize/kapture.scm 113 */
																				{
																					obj_t BgL_ctoz00_1716;

																					BgL_ctoz00_1716 = CDR(BgL_ctoz00_940);
																					BgL_ctoz00_940 = BgL_ctoz00_1716;
																					goto
																						BgL_zc3anonymousza33659ze3z83_942;
																				}
																			}
																	}
															}
													}
												}
											}
										}
								}
						}
					}
				}
			}
		}
	}
Exemplo n.º 12
0
/* tvector->vector */
	BGL_EXPORTED_DEF obj_t BGl_tvectorzd2ze3vectorz31zz__tvectorz00(obj_t
		BgL_tvz00_32)
	{
		AN_OBJECT;
		{	/* Llib/tvector.scm 208 */
			{	/* Llib/tvector.scm 209 */
				obj_t BgL_descrz00_828;

				BgL_descrz00_828 = TVECTOR_DESCR(BgL_tvz00_32);
				{	/* Llib/tvector.scm 210 */
					obj_t BgL_refz00_830;

					BgL_refz00_830 = STRUCT_REF(BgL_descrz00_828, (int) (((long) 2)));
					if (PROCEDUREP(BgL_refz00_830))
						{	/* Llib/tvector.scm 216 */
							int BgL_lenz00_832;

							BgL_lenz00_832 = TVECTOR_LENGTH(BgL_tvz00_32);
							{	/* Llib/tvector.scm 216 */
								obj_t BgL_vecz00_833;

								BgL_vecz00_833 = create_vector(BgL_lenz00_832);
								{	/* Llib/tvector.scm 217 */

									{	/* Llib/tvector.scm 218 */
										long BgL_g1826z00_834;

										BgL_g1826z00_834 = ((long) (BgL_lenz00_832) - ((long) 1));
										{
											long BgL_iz00_836;

											BgL_iz00_836 = BgL_g1826z00_834;
										BgL_zc3anonymousza31917ze3z83_837:
											if ((BgL_iz00_836 == ((long) -1)))
												{	/* Llib/tvector.scm 219 */
													return BgL_vecz00_833;
												}
											else
												{	/* Llib/tvector.scm 219 */
													{	/* Llib/tvector.scm 222 */
														obj_t BgL_arg1919z00_839;

														BgL_arg1919z00_839 =
															PROCEDURE_ENTRY(BgL_refz00_830) (BgL_refz00_830,
															BgL_tvz00_32, BINT(BgL_iz00_836), BEOA);
														VECTOR_SET(BgL_vecz00_833, (int) (BgL_iz00_836),
															BgL_arg1919z00_839);
													}
													{
														long BgL_iz00_1910;

														BgL_iz00_1910 = (BgL_iz00_836 - ((long) 1));
														BgL_iz00_836 = BgL_iz00_1910;
														goto BgL_zc3anonymousza31917ze3z83_837;
													}
												}
										}
									}
								}
							}
						}
					else
						{	/* Llib/tvector.scm 212 */
							return
								BGl_errorz00zz__errorz00(BGl_string2222z00zz__tvectorz00,
								BGl_string2215z00zz__tvectorz00, STRUCT_REF(BgL_descrz00_828,
									(int) (((long) 0))));
		}}}}
	}
Exemplo n.º 13
0
/* <anonymous:1896> */
	obj_t BGl_zc3anonymousza31896ze3z83zz__lalr_driverz00(obj_t BgL_envz00_1579,
		obj_t BgL_rgcz00_1582, obj_t BgL_inputzd2portzd2_1583,
		obj_t BgL_iszd2eofzf3z21_1584)
	{
		AN_OBJECT;
		{	/* Lalr/driver.scm 61 */
			{	/* Lalr/driver.scm 69 */
				obj_t BgL_actionzd2tablezd2_1580;

				obj_t BgL_reductionzd2functionzd2_1581;

				BgL_actionzd2tablezd2_1580 =
					PROCEDURE_REF(BgL_envz00_1579, (int) (((long) 0)));
				BgL_reductionzd2functionzd2_1581 =
					PROCEDURE_REF(BgL_envz00_1579, (int) (((long) 1)));
				{
					obj_t BgL_rgcz00_782;

					obj_t BgL_inputzd2portzd2_783;

					obj_t BgL_iszd2eofzf3z21_784;

					BgL_rgcz00_782 = BgL_rgcz00_1582;
					BgL_inputzd2portzd2_783 = BgL_inputzd2portzd2_1583;
					BgL_iszd2eofzf3z21_784 = BgL_iszd2eofzf3z21_1584;
					{	/* Lalr/driver.scm 69 */
						obj_t BgL_stackz00_787;

						obj_t BgL_statez00_788;

						obj_t BgL_inputz00_789;

						obj_t BgL_inz00_790;

						obj_t BgL_attrz00_791;

						obj_t BgL_actsz00_792;

						obj_t BgL_actz00_793;

						bool_t BgL_eofzf3zf3_794;

						bool_t BgL_debugz00_795;

						BgL_stackz00_787 =
							make_vector(
							(int) (BGl_za2maxzd2stackzd2siza7eza2za7zz__lalr_driverz00),
							BINT(((long) 0)));
						BgL_statez00_788 = BFALSE;
						BgL_inputz00_789 = BFALSE;
						BgL_inz00_790 = BFALSE;
						BgL_attrz00_791 = BFALSE;
						BgL_actsz00_792 = BFALSE;
						BgL_actz00_793 = BFALSE;
						BgL_eofzf3zf3_794 = ((bool_t) 0);
						{	/* Lalr/driver.scm 77 */
							int BgL_arg1940z00_840;

							BgL_arg1940z00_840 = bgl_debug();
							BgL_debugz00_795 = ((long) (BgL_arg1940z00_840) >= ((long) 100));
						}
						{
							obj_t BgL_spz00_797;

							BgL_spz00_797 = BINT(((long) 0));
						BgL_zc3anonymousza31897ze3z83_798:
							BgL_statez00_788 =
								VECTOR_REF(BgL_stackz00_787, CINT(BgL_spz00_797));
							BgL_actsz00_792 =
								VECTOR_REF(BgL_actionzd2tablezd2_1580, CINT(BgL_statez00_788));
							if (NULLP(CDR(BgL_actsz00_792)))
								{	/* Lalr/driver.scm 84 */
									obj_t BgL_pairz00_1311;

									BgL_pairz00_1311 = BgL_actsz00_792;
									BgL_actz00_793 = CDR(CAR(BgL_pairz00_1311));
								}
							else
								{	/* Lalr/driver.scm 83 */
									if (CBOOL(BgL_inputz00_789))
										{	/* Lalr/driver.scm 86 */
											BFALSE;
										}
									else
										{	/* Lalr/driver.scm 86 */
											BgL_inputz00_789 =
												PROCEDURE_ENTRY(BgL_rgcz00_782) (BgL_rgcz00_782,
												BgL_inputzd2portzd2_783, BEOA);
										}
									if (CBOOL(BgL_inputz00_789))
										{	/* Lalr/driver.scm 88 */
											((bool_t) 0);
										}
									else
										{	/* Lalr/driver.scm 88 */
											bgl_system_failure(BGL_IO_PARSE_ERROR,
												BGl_symbol2208z00zz__lalr_driverz00,
												BGl_string2210z00zz__lalr_driverz00, BFALSE);
										}
									if (CBOOL(PROCEDURE_ENTRY(BgL_iszd2eofzf3z21_784)
											(BgL_iszd2eofzf3z21_784, BgL_inputz00_789, BEOA)))
										{	/* Lalr/driver.scm 94 */
											BgL_inz00_790 = BGl_symbol2211z00zz__lalr_driverz00;
											BgL_attrz00_791 = BFALSE;
											BgL_eofzf3zf3_794 = ((bool_t) 1);
										}
									else
										{	/* Lalr/driver.scm 94 */
											if (PAIRP(BgL_inputz00_789))
												{	/* Lalr/driver.scm 98 */
													BgL_inz00_790 = CAR(BgL_inputz00_789);
													BgL_attrz00_791 = CDR(BgL_inputz00_789);
												}
											else
												{	/* Lalr/driver.scm 98 */
													BgL_inz00_790 = BgL_inputz00_789;
													BgL_attrz00_791 = BFALSE;
												}
										}
									{	/* Lalr/driver.scm 105 */
										obj_t BgL_xz00_1318;

										obj_t BgL_lz00_1319;

										BgL_xz00_1318 = BgL_inz00_790;
										BgL_lz00_1319 = BgL_actsz00_792;
										{	/* Lalr/driver.scm 105 */
											obj_t BgL_yz00_1320;

											BgL_yz00_1320 =
												BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_xz00_1318,
												BgL_lz00_1319);
											if (CBOOL(BgL_yz00_1320))
												{	/* Lalr/driver.scm 105 */
													BgL_actz00_793 = CDR(BgL_yz00_1320);
												}
											else
												{	/* Lalr/driver.scm 105 */
													obj_t BgL_pairz00_1322;

													BgL_pairz00_1322 = BgL_lz00_1319;
													BgL_actz00_793 = CDR(CAR(BgL_pairz00_1322));
												}
										}
									}
								}
							if (BgL_debugz00_795)
								{	/* Lalr/driver.scm 107 */
									{	/* Lalr/driver.scm 108 */
										obj_t BgL_arg1903z00_804;

										{	/* Lalr/driver.scm 108 */
											obj_t BgL_res2190z00_1327;

											{	/* Lalr/driver.scm 108 */
												obj_t BgL_auxz00_1662;

												BgL_auxz00_1662 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2190z00_1327 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1662);
											}
											BgL_arg1903z00_804 = BgL_res2190z00_1327;
										}
										bgl_display_string(BGl_string2213z00zz__lalr_driverz00,
											BgL_arg1903z00_804);
									}
									{	/* Lalr/driver.scm 109 */
										obj_t BgL_arg1904z00_805;

										{	/* Lalr/driver.scm 109 */
											obj_t BgL_res2191z00_1331;

											{	/* Lalr/driver.scm 109 */
												obj_t BgL_auxz00_1666;

												BgL_auxz00_1666 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2191z00_1331 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1666);
											}
											BgL_arg1904z00_805 = BgL_res2191z00_1331;
										}
										{	/* Lalr/driver.scm 109 */
											obj_t BgL_list1905z00_806;

											BgL_list1905z00_806 = MAKE_PAIR(BgL_arg1904z00_805, BNIL);
											BGl_writez00zz__r4_output_6_10_3z00(BgL_inz00_790,
												BgL_list1905z00_806);
										}
									}
									{	/* Lalr/driver.scm 110 */
										obj_t BgL_arg1907z00_808;

										{	/* Lalr/driver.scm 110 */
											obj_t BgL_res2192z00_1333;

											{	/* Lalr/driver.scm 110 */
												obj_t BgL_auxz00_1671;

												BgL_auxz00_1671 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2192z00_1333 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1671);
											}
											BgL_arg1907z00_808 = BgL_res2192z00_1333;
										}
										bgl_display_string(BGl_string2214z00zz__lalr_driverz00,
											BgL_arg1907z00_808);
									}
									{	/* Lalr/driver.scm 111 */
										obj_t BgL_arg1908z00_809;

										{	/* Lalr/driver.scm 111 */
											obj_t BgL_res2193z00_1337;

											{	/* Lalr/driver.scm 111 */
												obj_t BgL_auxz00_1675;

												BgL_auxz00_1675 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2193z00_1337 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1675);
											}
											BgL_arg1908z00_809 = BgL_res2193z00_1337;
										}
										{	/* Lalr/driver.scm 111 */
											obj_t BgL_list1909z00_810;

											BgL_list1909z00_810 = MAKE_PAIR(BgL_arg1908z00_809, BNIL);
											BGl_writez00zz__r4_output_6_10_3z00(BgL_statez00_788,
												BgL_list1909z00_810);
										}
									}
									{	/* Lalr/driver.scm 112 */
										obj_t BgL_arg1911z00_812;

										{	/* Lalr/driver.scm 112 */
											obj_t BgL_res2194z00_1339;

											{	/* Lalr/driver.scm 112 */
												obj_t BgL_auxz00_1680;

												BgL_auxz00_1680 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2194z00_1339 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1680);
											}
											BgL_arg1911z00_812 = BgL_res2194z00_1339;
										}
										bgl_display_string(BGl_string2215z00zz__lalr_driverz00,
											BgL_arg1911z00_812);
									}
									{	/* Lalr/driver.scm 113 */
										obj_t BgL_arg1912z00_813;

										{	/* Lalr/driver.scm 113 */
											obj_t BgL_res2195z00_1343;

											{	/* Lalr/driver.scm 113 */
												obj_t BgL_auxz00_1684;

												BgL_auxz00_1684 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2195z00_1343 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1684);
											}
											BgL_arg1912z00_813 = BgL_res2195z00_1343;
										}
										{	/* Lalr/driver.scm 113 */
											obj_t BgL_list1913z00_814;

											BgL_list1913z00_814 = MAKE_PAIR(BgL_arg1912z00_813, BNIL);
											BGl_writez00zz__r4_output_6_10_3z00(BgL_spz00_797,
												BgL_list1913z00_814);
										}
									}
									{	/* Lalr/driver.scm 114 */
										obj_t BgL_arg1914z00_815;

										{	/* Lalr/driver.scm 114 */
											obj_t BgL_res2196z00_1345;

											{	/* Lalr/driver.scm 114 */
												obj_t BgL_auxz00_1689;

												BgL_auxz00_1689 = BGL_CURRENT_DYNAMIC_ENV();
												BgL_res2196z00_1345 =
													BGL_ENV_CURRENT_ERROR_PORT(BgL_auxz00_1689);
											}
											BgL_arg1914z00_815 = BgL_res2196z00_1345;
										}
										bgl_display_char(((unsigned char) '\n'),
											BgL_arg1914z00_815);
								}}
							else
								{	/* Lalr/driver.scm 107 */
									BFALSE;
								}
							if ((BgL_actz00_793 == BGl_symbol2216z00zz__lalr_driverz00))
								{	/* Lalr/driver.scm 119 */
									return VECTOR_REF(BgL_stackz00_787, (int) (((long) 1)));
								}
							else
								{	/* Lalr/driver.scm 123 */
									bool_t BgL_testz00_1697;

									if ((BgL_actz00_793 == BGl_symbol2218z00zz__lalr_driverz00))
										{	/* Lalr/driver.scm 123 */
											BgL_testz00_1697 = ((bool_t) 1);
										}
									else
										{	/* Lalr/driver.scm 123 */
											BgL_testz00_1697 =
												(BgL_actz00_793 == BGl_symbol2220z00zz__lalr_driverz00);
										}
									if (BgL_testz00_1697)
										{	/* Lalr/driver.scm 124 */
											obj_t BgL_msgz00_818;

											{	/* Lalr/driver.scm 124 */
												obj_t BgL_arg1919z00_820;

												if (SYMBOLP(BgL_inz00_790))
													{	/* Lalr/driver.scm 128 */
														obj_t BgL_res2197z00_1352;

														{	/* Lalr/driver.scm 128 */
															obj_t BgL_symbolz00_1350;

															BgL_symbolz00_1350 = BgL_inz00_790;
															{	/* Lalr/driver.scm 128 */
																obj_t BgL_arg2113z00_1351;

																BgL_arg2113z00_1351 =
																	SYMBOL_TO_STRING(BgL_symbolz00_1350);
																BgL_res2197z00_1352 =
																	BGl_stringzd2copyzd2zz__r4_strings_6_7z00
																	(BgL_arg2113z00_1351);
															}
														}
														BgL_arg1919z00_820 = BgL_res2197z00_1352;
													}
												else
													{	/* Lalr/driver.scm 127 */
														if (CHARP(BgL_inz00_790))
															{	/* Lalr/driver.scm 130 */
																obj_t BgL_list1923z00_824;

																BgL_list1923z00_824 =
																	MAKE_PAIR(BgL_inz00_790, BNIL);
																{	/* Lalr/driver.scm 130 */
																	obj_t BgL_res2198z00_1360;

																	{	/* Lalr/driver.scm 130 */
																		obj_t BgL_arg2107z00_1357;

																		BgL_arg2107z00_1357 =
																			CAR(BgL_list1923z00_824);
																		BgL_res2198z00_1360 =
																			make_string(((long) 1),
																			CCHAR(BgL_arg2107z00_1357));
																	}
																	BgL_arg1919z00_820 = BgL_res2198z00_1360;
															}}
														else
															{	/* Lalr/driver.scm 132 */
																obj_t BgL_portz00_825;

																{	/* Lalr/driver.scm 132 */

																	{	/* Ieee/port.scm 386 */

																		BgL_portz00_825 =
																			BGl_openzd2outputzd2stringz00zz__r4_ports_6_10_1z00
																			(BTRUE);
																	}
																}
																{	/* Lalr/driver.scm 133 */
																	obj_t BgL_list1924z00_826;

																	BgL_list1924z00_826 =
																		MAKE_PAIR(BgL_portz00_825, BNIL);
																	BGl_writez00zz__r4_output_6_10_3z00
																		(BgL_inz00_790, BgL_list1924z00_826);
																}
																BgL_arg1919z00_820 =
																	bgl_close_output_port(BgL_portz00_825);
															}
													}
												BgL_msgz00_818 =
													string_append_3(BGl_string2222z00zz__lalr_driverz00,
													BgL_arg1919z00_820,
													BGl_string2223z00zz__lalr_driverz00);
											}
											return
												bgl_system_failure(BGL_IO_PARSE_ERROR,
												BGl_string2209z00zz__lalr_driverz00, BgL_msgz00_818,
												BgL_inputz00_789);
										}
									else
										{	/* Lalr/driver.scm 123 */
											if (((long) CINT(BgL_actz00_793) >= ((long) 0)))
												{	/* Lalr/driver.scm 139 */
													{	/* Lalr/driver.scm 140 */
														bool_t BgL_testz00_1720;

														{	/* Lalr/driver.scm 140 */
															long BgL_arg1927z00_830;

															{	/* Lalr/driver.scm 140 */
																int BgL_arg1929z00_831;

																BgL_arg1929z00_831 =
																	VECTOR_LENGTH(BgL_stackz00_787);
																BgL_arg1927z00_830 =
																	((long) (BgL_arg1929z00_831) - ((long) 4));
															}
															BgL_testz00_1720 =
																(
																(long) CINT(BgL_spz00_797) >=
																BgL_arg1927z00_830);
														}
														if (BgL_testz00_1720)
															{	/* Lalr/driver.scm 140 */
																BgL_stackz00_787 =
																	BGl_growzd2stackz12zc0zz__lalr_driverz00
																	(BgL_stackz00_787);
															}
														else
															{	/* Lalr/driver.scm 140 */
																BFALSE;
															}
													}
													{	/* Lalr/driver.scm 142 */
														long BgL_arg1931z00_833;

														BgL_arg1931z00_833 =
															((long) CINT(BgL_spz00_797) + ((long) 1));
														VECTOR_SET(BgL_stackz00_787,
															(int) (BgL_arg1931z00_833), BgL_attrz00_791);
													}
													{	/* Lalr/driver.scm 143 */
														long BgL_arg1932z00_834;

														BgL_arg1932z00_834 =
															((long) CINT(BgL_spz00_797) + ((long) 2));
														VECTOR_SET(BgL_stackz00_787,
															(int) (BgL_arg1932z00_834), BgL_actz00_793);
													}
													if (BgL_eofzf3zf3_794)
														{	/* Lalr/driver.scm 144 */
															BFALSE;
														}
													else
														{	/* Lalr/driver.scm 144 */
															BgL_inputz00_789 = BFALSE;
														}
													{	/* Lalr/driver.scm 146 */
														long BgL_arg1935z00_835;

														BgL_arg1935z00_835 =
															((long) CINT(BgL_spz00_797) + ((long) 2));
														{
															obj_t BgL_spz00_1738;

															BgL_spz00_1738 = BINT(BgL_arg1935z00_835);
															BgL_spz00_797 = BgL_spz00_1738;
															goto BgL_zc3anonymousza31897ze3z83_798;
														}
													}
												}
											else
												{	/* Lalr/driver.scm 150 */
													obj_t BgL_arg1937z00_836;

													{	/* Lalr/driver.scm 150 */
														long BgL_arg1938z00_837;

														BgL_arg1938z00_837 =
															NEG((long) CINT(BgL_actz00_793));
														BgL_arg1937z00_836 =
															PROCEDURE_ENTRY(BgL_reductionzd2functionzd2_1581)
															(BgL_reductionzd2functionzd2_1581,
															BINT(BgL_arg1938z00_837), BgL_stackz00_787,
															BgL_spz00_797, BEOA);
													}
													{
														obj_t BgL_spz00_1745;

														BgL_spz00_1745 = BgL_arg1937z00_836;
														BgL_spz00_797 = BgL_spz00_1745;
														goto BgL_zc3anonymousza31897ze3z83_798;
													}
												}
										}
								}
						}
					}
				}
			}
		}
	}