/*===========================================================================*/
/*   (Lalr/driver.scm)                                                       */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Lalr/driver.scm -indent -o objs/obj_u/Lalr/driver.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___LALR_DRIVER_TYPE_DEFINITIONS
#define BGL___LALR_DRIVER_TYPE_DEFINITIONS
#endif													// BGL___LALR_DRIVER_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static long BGl_za2maxzd2stackzd2siza7eza2za7zz__lalr_driverz00 = 0L;
	static obj_t BGl_requirezd2initializa7ationz75zz__lalr_driverz00 = BUNSPEC;
	static obj_t BGl_growzd2stackz12zc0zz__lalr_driverz00(obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zz__lalr_driverz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	extern obj_t bgl_system_failure(int, obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl___makezd2parserzd2zz__lalr_driverz00(obj_t,
		obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__lalr_driverz00(void);
	extern int bgl_debug(void);
	static obj_t BGl_z62zc3z04anonymousza31195ze3ze5zz__lalr_driverz00(obj_t,
		obj_t, obj_t, obj_t);
	extern obj_t BGl_assqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__lalr_driverz00(void);
	static obj_t BGl_genericzd2initzd2zz__lalr_driverz00(void);
	extern obj_t BGl_stringzd2copyzd2zz__r4_strings_6_7z00(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__lalr_driverz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__lalr_driverz00(void);
	static obj_t BGl_objectzd2initzd2zz__lalr_driverz00(void);
	static obj_t BGl_z62__makezd2parserzb0zz__lalr_driverz00(obj_t, obj_t, obj_t);
	extern obj_t string_append_3(obj_t, obj_t, obj_t);
	static long BGl_za2stackzd2siza7ezd2incrementza2za7zz__lalr_driverz00 = 0L;
	extern obj_t bstring_to_symbol(obj_t);
	extern obj_t make_vector(long, obj_t);
	extern obj_t BGl_writez00zz__r4_output_6_10_3z00(obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__lalr_driverz00(void);
	static obj_t BGl_symbol1642z00zz__lalr_driverz00 = BUNSPEC;
	static obj_t BGl_symbol1645z00zz__lalr_driverz00 = BUNSPEC;
	extern obj_t make_string(long, unsigned char);
	extern obj_t BGl_openzd2outputzd2stringz00zz__r4_ports_6_10_1z00(obj_t);
	static obj_t BGl_symbol1651z00zz__lalr_driverz00 = BUNSPEC;
	static obj_t BGl_symbol1653z00zz__lalr_driverz00 = BUNSPEC;
	static obj_t BGl_symbol1655z00zz__lalr_driverz00 = BUNSPEC;
	extern obj_t bgl_close_output_port(obj_t);
	static obj_t *__cnst;


	   
		 
		BGL_DEFINE_STRING(BGl_string1643z00zz__lalr_driverz00,
		BgL_bgl_string1643za700za7za7_1660za7, "parser", 6);
	      BGL_DEFINE_STRING(BGl_string1644z00zz__lalr_driverz00,
		BgL_bgl_string1644za700za7za7_1661za7, "Illegal `#f' token", 18);
	      BGL_DEFINE_STRING(BGl_string1646z00zz__lalr_driverz00,
		BgL_bgl_string1646za700za7za7_1662za7, "*eoi*", 5);
	      BGL_DEFINE_STRING(BGl_string1647z00zz__lalr_driverz00,
		BgL_bgl_string1647za700za7za7_1663za7, "LALR TRACE: input=", 18);
	      BGL_DEFINE_STRING(BGl_string1648z00zz__lalr_driverz00,
		BgL_bgl_string1648za700za7za7_1664za7, " attr= ", 7);
	      BGL_DEFINE_STRING(BGl_string1649z00zz__lalr_driverz00,
		BgL_bgl_string1649za700za7za7_1665za7, " state=", 7);
	      BGL_DEFINE_STRING(BGl_string1650z00zz__lalr_driverz00,
		BgL_bgl_string1650za700za7za7_1666za7, " sp=", 4);
	      BGL_DEFINE_STRING(BGl_string1652z00zz__lalr_driverz00,
		BgL_bgl_string1652za700za7za7_1667za7, "accept", 6);
	      BGL_DEFINE_STRING(BGl_string1654z00zz__lalr_driverz00,
		BgL_bgl_string1654za700za7za7_1668za7, "*error*", 7);
	      BGL_DEFINE_STRING(BGl_string1656z00zz__lalr_driverz00,
		BgL_bgl_string1656za700za7za7_1669za7, "error", 5);
	      BGL_DEFINE_STRING(BGl_string1657z00zz__lalr_driverz00,
		BgL_bgl_string1657za700za7za7_1670za7, "parse error (unexpected token `",
		31);
	      BGL_DEFINE_STRING(BGl_string1658z00zz__lalr_driverz00,
		BgL_bgl_string1658za700za7za7_1671za7, "')", 2);
	      BGL_DEFINE_STRING(BGl_string1659z00zz__lalr_driverz00,
		BgL_bgl_string1659za700za7za7_1672za7, "__lalr_driver", 13);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl___makezd2parserzd2envz00zz__lalr_driverz00,
		BgL_bgl_za762__makeza7d2pars1673z00,
		BGl_z62__makezd2parserzb0zz__lalr_driverz00, 0L, BUNSPEC, 2);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl___makezd2parserzd2envz00zz__lalr_driverz00,
			BgL_bgl_za762__makeza7d2pars1673z00);
		BGL_BIND_STRING(BGl_string1659z00zz__lalr_driverz00,
			BgL_bgl_string1659za700za7za7_1672za7);
		BGL_BIND_STRING(BGl_string1658z00zz__lalr_driverz00,
			BgL_bgl_string1658za700za7za7_1671za7);
		BGL_BIND_STRING(BGl_string1657z00zz__lalr_driverz00,
			BgL_bgl_string1657za700za7za7_1670za7);
		BGL_BIND_STRING(BGl_string1656z00zz__lalr_driverz00,
			BgL_bgl_string1656za700za7za7_1669za7);
		BGL_BIND_STRING(BGl_string1654z00zz__lalr_driverz00,
			BgL_bgl_string1654za700za7za7_1668za7);
		BGL_BIND_STRING(BGl_string1652z00zz__lalr_driverz00,
			BgL_bgl_string1652za700za7za7_1667za7);
		BGL_BIND_STRING(BGl_string1650z00zz__lalr_driverz00,
			BgL_bgl_string1650za700za7za7_1666za7);
		BGL_BIND_STRING(BGl_string1649z00zz__lalr_driverz00,
			BgL_bgl_string1649za700za7za7_1665za7);
		BGL_BIND_STRING(BGl_string1648z00zz__lalr_driverz00,
			BgL_bgl_string1648za700za7za7_1664za7);
		BGL_BIND_STRING(BGl_string1647z00zz__lalr_driverz00,
			BgL_bgl_string1647za700za7za7_1663za7);
		BGL_BIND_STRING(BGl_string1646z00zz__lalr_driverz00,
			BgL_bgl_string1646za700za7za7_1662za7);
		BGL_BIND_STRING(BGl_string1644z00zz__lalr_driverz00,
			BgL_bgl_string1644za700za7za7_1661za7);
		BGL_BIND_STRING(BGl_string1643z00zz__lalr_driverz00,
			BgL_bgl_string1643za700za7za7_1660za7);
	}

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;

		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__lalr_driverz00));
		ADD_ROOT((void *) (&BGl_symbol1642z00zz__lalr_driverz00));
		ADD_ROOT((void *) (&BGl_symbol1645z00zz__lalr_driverz00));
		ADD_ROOT((void *) (&BGl_symbol1651z00zz__lalr_driverz00));
		ADD_ROOT((void *) (&BGl_symbol1653z00zz__lalr_driverz00));
		ADD_ROOT((void *) (&BGl_symbol1655z00zz__lalr_driverz00));
#undef ADD_ROOT
		if (roots_max > 0)
			GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__lalr_driverz00(long
		BgL_checksumz00_2072, char *BgL_fromz00_2073)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__lalr_driverz00))
				{
					BGl_requirezd2initializa7ationz75zz__lalr_driverz00 =
						BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__lalr_driverz00();
					BGl_cnstzd2initzd2zz__lalr_driverz00();
					BGl_importedzd2moduleszd2initz00zz__lalr_driverz00();
					return BGl_toplevelzd2initzd2zz__lalr_driverz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			BGl_symbol1642z00zz__lalr_driverz00 =
				bstring_to_symbol(BGl_string1643z00zz__lalr_driverz00);
			BGl_symbol1645z00zz__lalr_driverz00 =
				bstring_to_symbol(BGl_string1646z00zz__lalr_driverz00);
			BGl_symbol1651z00zz__lalr_driverz00 =
				bstring_to_symbol(BGl_string1652z00zz__lalr_driverz00);
			BGl_symbol1653z00zz__lalr_driverz00 =
				bstring_to_symbol(BGl_string1654z00zz__lalr_driverz00);
			return (BGl_symbol1655z00zz__lalr_driverz00 =
				bstring_to_symbol(BGl_string1656z00zz__lalr_driverz00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			BGl_za2maxzd2stackzd2siza7eza2za7zz__lalr_driverz00 = 500L;
			return (BGl_za2stackzd2siza7ezd2incrementza2za7zz__lalr_driverz00 =
				200L, BUNSPEC);
		}

	}



/* grow-stack! */
	obj_t BGl_growzd2stackz12zc0zz__lalr_driverz00(obj_t BgL_vz00_3)
	{
		{	/* Lalr/driver.scm 52 */
			{	/* Lalr/driver.scm 53 */
				obj_t BgL_v2z00_1195;

				{	/* Lalr/driver.scm 54 */
					long BgL_arg1194z00_1203;

					BgL_arg1194z00_1203 = (VECTOR_LENGTH(BgL_vz00_3) + 200L);
					BgL_v2z00_1195 = make_vector(BgL_arg1194z00_1203, BINT(0L));
				}
				{	/* Lalr/driver.scm 54 */

					{
						long BgL_iz00_1714;

						BgL_iz00_1714 = 0L;
					BgL_loopz00_1713:
						if ((BgL_iz00_1714 < VECTOR_LENGTH(BgL_vz00_3)))
							{	/* Lalr/driver.scm 56 */
								VECTOR_SET(BgL_v2z00_1195, BgL_iz00_1714,
									VECTOR_REF(BgL_vz00_3, BgL_iz00_1714));
								{
									long BgL_iz00_2097;

									BgL_iz00_2097 = (BgL_iz00_1714 + 1L);
									BgL_iz00_1714 = BgL_iz00_2097;
									goto BgL_loopz00_1713;
								}
							}
						else
							{	/* Lalr/driver.scm 56 */
								return BgL_v2z00_1195;
							}
					}
				}
			}
		}

	}



/* __make-parser */
	BGL_EXPORTED_DEF obj_t BGl___makezd2parserzd2zz__lalr_driverz00(obj_t
		BgL_actionzd2tablezd2_4, obj_t BgL_reductionzd2functionzd2_5)
	{
		{	/* Lalr/driver.scm 62 */
			{	/* Lalr/driver.scm 64 */
				obj_t BgL_zc3z04anonymousza31195ze3z87_2012;

				BgL_zc3z04anonymousza31195ze3z87_2012 =
					MAKE_FX_PROCEDURE
					(BGl_z62zc3z04anonymousza31195ze3ze5zz__lalr_driverz00, (int) (3L),
					(int) (2L));
				PROCEDURE_SET(BgL_zc3z04anonymousza31195ze3z87_2012, (int) (0L),
					BgL_actionzd2tablezd2_4);
				PROCEDURE_SET(BgL_zc3z04anonymousza31195ze3z87_2012, (int) (1L),
					BgL_reductionzd2functionzd2_5);
				return BgL_zc3z04anonymousza31195ze3z87_2012;
			}
		}

	}



/* &__make-parser */
	obj_t BGl_z62__makezd2parserzb0zz__lalr_driverz00(obj_t BgL_envz00_2013,
		obj_t BgL_actionzd2tablezd2_2014, obj_t BgL_reductionzd2functionzd2_2015)
	{
		{	/* Lalr/driver.scm 62 */
			return
				BGl___makezd2parserzd2zz__lalr_driverz00(BgL_actionzd2tablezd2_2014,
				BgL_reductionzd2functionzd2_2015);
		}

	}



/* &<@anonymous:1195> */
	obj_t BGl_z62zc3z04anonymousza31195ze3ze5zz__lalr_driverz00(obj_t
		BgL_envz00_2016, obj_t BgL_rgcz00_2019, obj_t BgL_inputzd2portzd2_2020,
		obj_t BgL_iszd2eofzf3z21_2021)
	{
		{	/* Lalr/driver.scm 64 */
			{	/* Lalr/driver.scm 72 */
				obj_t BgL_actionzd2tablezd2_2017;
				obj_t BgL_reductionzd2functionzd2_2018;

				BgL_actionzd2tablezd2_2017 = PROCEDURE_REF(BgL_envz00_2016, (int) (0L));
				BgL_reductionzd2functionzd2_2018 =
					PROCEDURE_REF(BgL_envz00_2016, (int) (1L));
				{	/* Lalr/driver.scm 72 */
					obj_t BgL_stackz00_2027;
					obj_t BgL_statez00_2028;
					obj_t BgL_inputz00_2029;
					obj_t BgL_inz00_2030;
					obj_t BgL_attrz00_2031;
					obj_t BgL_actsz00_2032;
					obj_t BgL_actz00_2033;
					bool_t BgL_eofzf3zf3_2034;
					bool_t BgL_debugz00_2035;

					BgL_stackz00_2027 = make_vector(500L, BINT(0L));
					BgL_statez00_2028 = BFALSE;
					BgL_inputz00_2029 = BFALSE;
					BgL_inz00_2030 = BFALSE;
					BgL_attrz00_2031 = BFALSE;
					BgL_actsz00_2032 = BFALSE;
					BgL_actz00_2033 = BFALSE;
					BgL_eofzf3zf3_2034 = ((bool_t) 0);
					{	/* Lalr/driver.scm 80 */
						int BgL_arg1249z00_2036;

						BgL_arg1249z00_2036 = bgl_debug();
						BgL_debugz00_2035 = ((long) (BgL_arg1249z00_2036) >= 100L);
					}
					{
						obj_t BgL_spz00_2038;

						BgL_spz00_2038 = BINT(0L);
					BgL_loopz00_2037:
						BgL_statez00_2028 =
							VECTOR_REF(BgL_stackz00_2027, (long) CINT(BgL_spz00_2038));
						{	/* Lalr/driver.scm 84 */
							long BgL_kz00_2039;

							BgL_kz00_2039 = (long) CINT(BgL_statez00_2028);
							BgL_actsz00_2032 =
								VECTOR_REF(((obj_t) BgL_actionzd2tablezd2_2017), BgL_kz00_2039);
						}
						if (NULLP(CDR(BgL_actsz00_2032)))
							{	/* Lalr/driver.scm 87 */
								obj_t BgL_pairz00_2040;

								BgL_pairz00_2040 = BgL_actsz00_2032;
								BgL_actz00_2033 = CDR(CAR(BgL_pairz00_2040));
							}
						else
							{	/* Lalr/driver.scm 86 */
								if (CBOOL(BgL_inputz00_2029))
									{	/* Lalr/driver.scm 89 */
										BFALSE;
									}
								else
									{	/* Lalr/driver.scm 89 */
										BgL_inputz00_2029 =
											BGL_PROCEDURE_CALL1(BgL_rgcz00_2019,
											BgL_inputzd2portzd2_2020);
									}
								if (CBOOL(BgL_inputz00_2029))
									{	/* Lalr/driver.scm 91 */
										((bool_t) 0);
									}
								else
									{	/* Lalr/driver.scm 91 */
										bgl_system_failure(BGL_IO_PARSE_ERROR,
											BGl_symbol1642z00zz__lalr_driverz00,
											BGl_string1644z00zz__lalr_driverz00, BFALSE);
									}
								if (CBOOL(BGL_PROCEDURE_CALL1(BgL_iszd2eofzf3z21_2021,
											BgL_inputz00_2029)))
									{	/* Lalr/driver.scm 97 */
										BgL_inz00_2030 = BGl_symbol1645z00zz__lalr_driverz00;
										BgL_attrz00_2031 = BFALSE;
										BgL_eofzf3zf3_2034 = ((bool_t) 1);
									}
								else
									{	/* Lalr/driver.scm 97 */
										if (PAIRP(BgL_inputz00_2029))
											{	/* Lalr/driver.scm 101 */
												BgL_inz00_2030 = CAR(BgL_inputz00_2029);
												BgL_attrz00_2031 = CDR(BgL_inputz00_2029);
											}
										else
											{	/* Lalr/driver.scm 101 */
												BgL_inz00_2030 = BgL_inputz00_2029;
												BgL_attrz00_2031 = BFALSE;
											}
									}
								{	/* Lalr/driver.scm 108 */
									obj_t BgL_xz00_2041;
									obj_t BgL_lz00_2042;

									BgL_xz00_2041 = BgL_inz00_2030;
									BgL_lz00_2042 = BgL_actsz00_2032;
									{	/* Lalr/driver.scm 67 */
										obj_t BgL_yz00_2043;

										BgL_yz00_2043 =
											BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_xz00_2041,
											BgL_lz00_2042);
										if (CBOOL(BgL_yz00_2043))
											{	/* Lalr/driver.scm 68 */
												BgL_actz00_2033 = CDR(((obj_t) BgL_yz00_2043));
											}
										else
											{	/* Lalr/driver.scm 70 */
												obj_t BgL_pairz00_2044;

												BgL_pairz00_2044 = CAR(((obj_t) BgL_lz00_2042));
												BgL_actz00_2033 = CDR(BgL_pairz00_2044);
											}
									}
								}
							}
						if (BgL_debugz00_2035)
							{	/* Lalr/driver.scm 110 */
								{	/* Lalr/driver.scm 111 */
									obj_t BgL_arg1202z00_2045;

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

										BgL_tmpz00_2154 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1202z00_2045 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2154);
									}
									bgl_display_string(BGl_string1647z00zz__lalr_driverz00,
										BgL_arg1202z00_2045);
								}
								{	/* Lalr/driver.scm 112 */
									obj_t BgL_arg1203z00_2046;

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

										BgL_tmpz00_2158 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1203z00_2046 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2158);
									}
									{	/* Lalr/driver.scm 112 */
										obj_t BgL_list1204z00_2047;

										BgL_list1204z00_2047 =
											MAKE_YOUNG_PAIR(BgL_arg1203z00_2046, BNIL);
										BGl_writez00zz__r4_output_6_10_3z00(BgL_inz00_2030,
											BgL_list1204z00_2047);
									}
								}
								{	/* Lalr/driver.scm 113 */
									obj_t BgL_arg1206z00_2048;

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

										BgL_tmpz00_2163 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1206z00_2048 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2163);
									}
									bgl_display_string(BGl_string1648z00zz__lalr_driverz00,
										BgL_arg1206z00_2048);
								}
								{	/* Lalr/driver.scm 114 */
									obj_t BgL_arg1207z00_2049;

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

										BgL_tmpz00_2167 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1207z00_2049 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2167);
									}
									{	/* Lalr/driver.scm 114 */
										obj_t BgL_list1208z00_2050;

										BgL_list1208z00_2050 =
											MAKE_YOUNG_PAIR(BgL_arg1207z00_2049, BNIL);
										BGl_writez00zz__r4_output_6_10_3z00(BgL_attrz00_2031,
											BgL_list1208z00_2050);
									}
								}
								{	/* Lalr/driver.scm 115 */
									obj_t BgL_arg1211z00_2051;

									{	/* Lalr/driver.scm 115 */
										obj_t BgL_tmpz00_2172;

										BgL_tmpz00_2172 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1211z00_2051 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2172);
									}
									bgl_display_string(BGl_string1649z00zz__lalr_driverz00,
										BgL_arg1211z00_2051);
								}
								{	/* Lalr/driver.scm 116 */
									obj_t BgL_arg1213z00_2052;

									{	/* Lalr/driver.scm 116 */
										obj_t BgL_tmpz00_2176;

										BgL_tmpz00_2176 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1213z00_2052 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2176);
									}
									{	/* Lalr/driver.scm 116 */
										obj_t BgL_list1214z00_2053;

										BgL_list1214z00_2053 =
											MAKE_YOUNG_PAIR(BgL_arg1213z00_2052, BNIL);
										BGl_writez00zz__r4_output_6_10_3z00(BgL_statez00_2028,
											BgL_list1214z00_2053);
									}
								}
								{	/* Lalr/driver.scm 117 */
									obj_t BgL_arg1215z00_2054;

									{	/* Lalr/driver.scm 117 */
										obj_t BgL_tmpz00_2181;

										BgL_tmpz00_2181 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1215z00_2054 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2181);
									}
									bgl_display_string(BGl_string1650z00zz__lalr_driverz00,
										BgL_arg1215z00_2054);
								}
								{	/* Lalr/driver.scm 118 */
									obj_t BgL_arg1216z00_2055;

									{	/* Lalr/driver.scm 118 */
										obj_t BgL_tmpz00_2185;

										BgL_tmpz00_2185 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1216z00_2055 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2185);
									}
									{	/* Lalr/driver.scm 118 */
										obj_t BgL_list1217z00_2056;

										BgL_list1217z00_2056 =
											MAKE_YOUNG_PAIR(BgL_arg1216z00_2055, BNIL);
										BGl_writez00zz__r4_output_6_10_3z00(BgL_spz00_2038,
											BgL_list1217z00_2056);
									}
								}
								{	/* Lalr/driver.scm 119 */
									obj_t BgL_arg1219z00_2057;

									{	/* Lalr/driver.scm 119 */
										obj_t BgL_tmpz00_2190;

										BgL_tmpz00_2190 = BGL_CURRENT_DYNAMIC_ENV();
										BgL_arg1219z00_2057 =
											BGL_ENV_CURRENT_ERROR_PORT(BgL_tmpz00_2190);
									}
									bgl_display_char(((unsigned char) 10), BgL_arg1219z00_2057);
							}}
						else
							{	/* Lalr/driver.scm 110 */
								BFALSE;
							}
						if ((BgL_actz00_2033 == BGl_symbol1651z00zz__lalr_driverz00))
							{	/* Lalr/driver.scm 124 */
								return VECTOR_REF(BgL_stackz00_2027, 1L);
							}
						else
							{	/* Lalr/driver.scm 128 */
								bool_t BgL_test1684z00_2197;

								if ((BgL_actz00_2033 == BGl_symbol1653z00zz__lalr_driverz00))
									{	/* Lalr/driver.scm 128 */
										BgL_test1684z00_2197 = ((bool_t) 1);
									}
								else
									{	/* Lalr/driver.scm 128 */
										BgL_test1684z00_2197 =
											(BgL_actz00_2033 == BGl_symbol1655z00zz__lalr_driverz00);
									}
								if (BgL_test1684z00_2197)
									{	/* Lalr/driver.scm 129 */
										obj_t BgL_msgz00_2058;

										{	/* Lalr/driver.scm 132 */
											obj_t BgL_arg1224z00_2059;

											if (SYMBOLP(BgL_inz00_2030))
												{	/* Lalr/driver.scm 133 */
													obj_t BgL_symbolz00_2060;

													BgL_symbolz00_2060 = BgL_inz00_2030;
													{	/* Lalr/driver.scm 133 */
														obj_t BgL_arg1427z00_2061;

														BgL_arg1427z00_2061 =
															SYMBOL_TO_STRING(BgL_symbolz00_2060);
														BgL_arg1224z00_2059 =
															BGl_stringzd2copyzd2zz__r4_strings_6_7z00
															(BgL_arg1427z00_2061);
													}
												}
											else
												{	/* Lalr/driver.scm 132 */
													if (CHARP(BgL_inz00_2030))
														{	/* Lalr/driver.scm 135 */
															obj_t BgL_charz00_2062;

															BgL_charz00_2062 = BgL_inz00_2030;
															BgL_arg1224z00_2059 =
																make_string(1L, CCHAR(BgL_charz00_2062));
														}
													else
														{	/* Lalr/driver.scm 137 */
															obj_t BgL_portz00_2063;

															{	/* Lalr/driver.scm 137 */

																{	/* Lalr/driver.scm 137 */

																	BgL_portz00_2063 =
																		BGl_openzd2outputzd2stringz00zz__r4_ports_6_10_1z00
																		(BTRUE);
																}
															}
															{	/* Lalr/driver.scm 138 */
																obj_t BgL_list1227z00_2064;

																BgL_list1227z00_2064 =
																	MAKE_YOUNG_PAIR(BgL_portz00_2063, BNIL);
																BGl_writez00zz__r4_output_6_10_3z00
																	(BgL_inz00_2030, BgL_list1227z00_2064);
															}
															BgL_arg1224z00_2059 =
																bgl_close_output_port(BgL_portz00_2063);
														}
												}
											BgL_msgz00_2058 =
												string_append_3(BGl_string1657z00zz__lalr_driverz00,
												BgL_arg1224z00_2059,
												BGl_string1658z00zz__lalr_driverz00);
										}
										return
											bgl_system_failure(BGL_IO_PARSE_ERROR,
											BGl_string1643z00zz__lalr_driverz00, BgL_msgz00_2058,
											BgL_inputz00_2029);
									}
								else
									{	/* Lalr/driver.scm 128 */
										if (((long) CINT(BgL_actz00_2033) >= 0L))
											{	/* Lalr/driver.scm 144 */
												{	/* Lalr/driver.scm 145 */
													bool_t BgL_test1689z00_2218;

													{	/* Lalr/driver.scm 145 */
														long BgL_arg1234z00_2065;

														{	/* Lalr/driver.scm 145 */
															long BgL_arg1235z00_2066;

															BgL_arg1235z00_2066 =
																VECTOR_LENGTH(BgL_stackz00_2027);
															BgL_arg1234z00_2065 = (BgL_arg1235z00_2066 - 4L);
														}
														BgL_test1689z00_2218 =
															(
															(long) CINT(BgL_spz00_2038) >=
															BgL_arg1234z00_2065);
													}
													if (BgL_test1689z00_2218)
														{	/* Lalr/driver.scm 145 */
															BgL_stackz00_2027 =
																BGl_growzd2stackz12zc0zz__lalr_driverz00
																(BgL_stackz00_2027);
														}
													else
														{	/* Lalr/driver.scm 145 */
															BFALSE;
														}
												}
												VECTOR_SET(BgL_stackz00_2027,
													((long) CINT(BgL_spz00_2038) + 1L), BgL_attrz00_2031);
												VECTOR_SET(BgL_stackz00_2027,
													((long) CINT(BgL_spz00_2038) + 2L), BgL_actz00_2033);
												if (BgL_eofzf3zf3_2034)
													{	/* Lalr/driver.scm 149 */
														BFALSE;
													}
												else
													{	/* Lalr/driver.scm 149 */
														BgL_inputz00_2029 = BFALSE;
													}
												{	/* Lalr/driver.scm 151 */
													long BgL_arg1241z00_2069;

													BgL_arg1241z00_2069 =
														((long) CINT(BgL_spz00_2038) + 2L);
													{
														obj_t BgL_spz00_2233;

														BgL_spz00_2233 = BINT(BgL_arg1241z00_2069);
														BgL_spz00_2038 = BgL_spz00_2233;
														goto BgL_loopz00_2037;
													}
												}
											}
										else
											{	/* Lalr/driver.scm 155 */
												obj_t BgL_arg1242z00_2070;

												{	/* Lalr/driver.scm 155 */
													long BgL_arg1248z00_2071;

													BgL_arg1248z00_2071 =
														NEG((long) CINT(BgL_actz00_2033));
													BgL_arg1242z00_2070 =
														BGL_PROCEDURE_CALL3
														(BgL_reductionzd2functionzd2_2018,
														BINT(BgL_arg1248z00_2071), BgL_stackz00_2027,
														BgL_spz00_2038);
												}
												{
													obj_t BgL_spz00_2244;

													BgL_spz00_2244 = BgL_arg1242z00_2070;
													BgL_spz00_2038 = BgL_spz00_2244;
													goto BgL_loopz00_2037;
												}
											}
									}
							}
					}
				}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__lalr_driverz00(void)
	{
		{	/* Lalr/driver.scm 11 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1659z00zz__lalr_driverz00));
			return
				BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string1659z00zz__lalr_driverz00));
		}

	}

#ifdef __cplusplus
}
#endif
