diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/bfd/config.bfd binutils-2004-q3d-uclibc/bfd/config.bfd
--- binutils-2004-q3d-pristine/bfd/config.bfd	2004-11-04 17:54:29.000000000 +0200
+++ binutils-2004-q3d-uclibc/bfd/config.bfd	2005-02-25 12:59:36.000000000 +0200
@@ -139,7 +139,7 @@
     targ_defvec=ecoffalpha_little_vec
     targ_selvecs=bfd_elf64_alpha_vec
     ;;
-  alpha*-*-linux-gnu* | alpha*-*-elf*)
+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
     targ_defvec=bfd_elf64_alpha_vec
     targ_selvecs=ecoffalpha_little_vec
     ;;
@@ -149,7 +149,7 @@
   alpha*-*-*)
     targ_defvec=ecoffalpha_little_vec
     ;;
-  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
+  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
     targ_defvec=bfd_elf64_ia64_little_vec
     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
     ;;
@@ -226,7 +226,7 @@
     targ_defvec=bfd_elf32_littlearm_vec
     targ_selvecs=bfd_elf32_bigarm_vec
     ;;
-  armeb-*-elf | arm*b-*-linux-gnu*)
+  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
     targ_defvec=bfd_elf32_bigarm_vec
     targ_selvecs=bfd_elf32_littlearm_vec
     ;;
@@ -236,7 +236,7 @@
     ;;
   arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
   arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \
-  arm*-*-eabi* )
+  arm*-*-eabi* | arm-*-uclibc | arm-*-linux-uclibc)
     targ_defvec=bfd_elf32_littlearm_vec
     targ_selvecs=bfd_elf32_bigarm_vec
     ;;
@@ -380,7 +380,7 @@
     ;;
 
 #ifdef BFD64
-  hppa*64*-*-linux-gnu*)
+  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
     targ_defvec=bfd_elf64_hppa_linux_vec
     targ_selvecs=bfd_elf64_hppa_vec
     ;;
@@ -391,7 +391,7 @@
     ;;
 #endif
 
-  hppa*-*-linux-gnu*)
+  hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)
     targ_defvec=bfd_elf32_hppa_linux_vec
     targ_selvecs=bfd_elf32_hppa_vec
     ;;
@@ -524,7 +524,7 @@
     targ_selvecs=bfd_elf32_i386_vec
     targ_underscore=yes
     ;;
-  i[3-7]86-*-linux-gnu*)
+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
     targ_defvec=bfd_elf32_i386_vec
     targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
     targ64_selvecs=bfd_elf64_x86_64_vec
@@ -538,7 +538,7 @@
     targ_defvec=bfd_elf64_x86_64_vec
     targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
     ;;
-  x86_64-*-linux-gnu*)
+  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
     targ_defvec=bfd_elf64_x86_64_vec
     targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
     ;;
@@ -714,7 +714,7 @@
     targ_selvecs=bfd_elf32_m68k_vec
     targ_underscore=yes
     ;;
-  m68*-*-linux-gnu*)
+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
     targ_defvec=bfd_elf32_m68k_vec
     targ_selvecs=m68klinux_vec
     ;;
@@ -996,7 +996,8 @@
     ;;
 #endif
   powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
-  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
+  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
+  powerpc-*-rtems* | \
   powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
     targ_defvec=bfd_elf32_powerpc_vec
     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
@@ -1033,8 +1034,8 @@
     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
     ;;
   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
-  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
-  powerpcle-*-rtems*)
+  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
+  powerpcle-*-vxworks* | powerpcle-*-rtems*)
     targ_defvec=bfd_elf32_powerpcle_vec
     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
     targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
@@ -1201,7 +1202,7 @@
     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
     targ_underscore=yes
     ;;
-  sparc-*-linux-gnu*)
+  sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
     targ_defvec=bfd_elf32_sparc_vec
     targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
     ;;
@@ -1248,7 +1249,7 @@
     targ_defvec=sunos_big_vec
     targ_underscore=yes
     ;;
-  sparc64-*-linux-gnu*)
+  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
     targ_defvec=bfd_elf64_sparc_vec
     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
     ;;
@@ -1317,7 +1318,7 @@
     targ_underscore=yes
     ;;
 
-  vax-*-linux-gnu*)
+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
     targ_defvec=bfd_elf32_vax_vec
     ;;
 
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/bfd/configure binutils-2004-q3d-uclibc/bfd/configure
--- binutils-2004-q3d-pristine/bfd/configure	2004-11-04 17:54:29.000000000 +0200
+++ binutils-2004-q3d-uclibc/bfd/configure	2005-02-24 09:13:18.000000000 +0200
@@ -3575,6 +3575,11 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
@@ -9859,7 +9864,7 @@
   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 	COREFILE=''
 	;;
-  alpha*-*-linux-gnu*)
+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/alphalinux.h"'
 	;;
@@ -9923,7 +9928,7 @@
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/i386mach3.h"'
 	;;
-  i[3-7]86-*-linux-gnu*)
+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/i386linux.h"'
 	;;
@@ -9961,7 +9966,7 @@
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/hp300bsd.h"'
 	;;
-  m68*-*-linux-gnu*)
+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/m68klinux.h"'
 	;;
@@ -10094,7 +10099,7 @@
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/vaxult2.h"'
 	;;
-  vax-*-linux-gnu*)
+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/vaxlinux.h"'
 	;;
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/bfd/configure.in binutils-2004-q3d-uclibc/bfd/configure.in
--- binutils-2004-q3d-pristine/bfd/configure.in	2004-11-04 17:54:37.000000000 +0200
+++ binutils-2004-q3d-uclibc/bfd/configure.in	2005-02-24 08:51:33.000000000 +0200
@@ -163,7 +163,7 @@
   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 	COREFILE=''
 	;;
-  alpha*-*-linux-gnu*)
+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/alphalinux.h"'
 	;;
@@ -248,7 +248,7 @@
 	TRAD_HEADER='"hosts/i386mach3.h"'
 	;;
 changequote(,)dnl
-  i[3-7]86-*-linux-gnu*)
+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
 changequote([,])dnl
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/i386linux.h"'
@@ -289,7 +289,7 @@
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/hp300bsd.h"'
 	;;
-  m68*-*-linux-gnu*)
+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/m68klinux.h"'
 	;;
@@ -375,7 +375,7 @@
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/vaxult2.h"'
 	;;
-  vax-*-linux-gnu*)
+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
 	COREFILE=trad-core.lo
 	TRAD_HEADER='"hosts/vaxlinux.h"'
 	;;
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/bfd/elf32-arm.c binutils-2004-q3d-uclibc/bfd/elf32-arm.c
--- binutils-2004-q3d-pristine/bfd/elf32-arm.c	2004-11-05 02:57:40.000000000 +0200
+++ binutils-2004-q3d-uclibc/bfd/elf32-arm.c	2005-02-24 10:32:58.000000000 +0200
@@ -4617,6 +4617,38 @@
   return TRUE;
 }
 
+/* Find any dynamic relocs that apply to read-only sections.  */
+
+static bfd_boolean
+elf32_arm_readonly_dynrelocs (h, inf)
+     struct elf_link_hash_entry *h;
+     PTR inf;
+{
+  struct elf32_arm_link_hash_entry *eh;
+  struct elf32_arm_relocs_copied *p;
+
+  if (h->root.type == bfd_link_hash_warning)
+    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
+  eh = (struct elf32_arm_link_hash_entry *) h;
+  for (p = eh->relocs_copied; p != NULL; p = p->next)
+    {
+      asection *s = p->section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+       {
+         struct bfd_link_info *info = (struct bfd_link_info *) inf;
+
+         info->flags |= DF_TEXTREL;
+
+         /* Not an error, just cut short the traversal.  */
+         return FALSE;
+       }
+    }
+  return TRUE;
+}
+
+
 /* Set the sizes of the dynamic sections.  */
 
 static bfd_boolean
@@ -4801,7 +4833,7 @@
 	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL) \
   _bfd_elf_add_dynamic_entry (info, TAG, VAL)
-
+	
       if (!info->shared)
 	{
 	  if (!add_dynamic_entry (DT_DEBUG, 0))
@@ -4825,6 +4857,12 @@
 	    return FALSE;
 	}
 
+     /* If any dynamic relocs apply to a read-only section,
+        then we need a DT_TEXTREL entry.  */
+     if ((info->flags & DF_TEXTREL) == 0)
+       elf_link_hash_traverse (&htab->root, elf32_arm_readonly_dynrelocs,
+                               (PTR) info);
+
       if ((info->flags & DF_TEXTREL) != 0)
 	{
 	  if (!add_dynamic_entry (DT_TEXTREL, 0))
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/binutils/arlex.c binutils-2004-q3d-uclibc/binutils/arlex.c
--- binutils-2004-q3d-pristine/binutils/arlex.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/binutils/arlex.c	2005-02-24 10:34:10.000000000 +0200
@@ -0,0 +1,1839 @@
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /work/migration/cvsroot/sb-toolchains/patch_files/binutils/binutils-2004-q3d-sb-uclibc.patch,v 1.2 2005/03/08 07:17:42 rkekki Exp $
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+#include <stdio.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif	/* __STDC__ */
+#endif	/* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator).  This
+ * avoids problems with code like:
+ *
+ * 	if ( condition_holds )
+ *		yyless( 5 );
+ *	else
+ *		do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		*yy_cp = yy_hold_char; \
+		YY_RESTORE_YY_MORE_OFFSET \
+		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	int yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+	};
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	yytext_ptr = yy_bp; \
+	yyleng = (int) (yy_cp - yy_bp); \
+	yy_hold_char = *yy_cp; \
+	*yy_cp = '\0'; \
+	yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 40
+#define YY_END_OF_BUFFER 41
+static yyconst short int yy_accept[177] =
+    {   0,
+        0,    0,   41,   40,   39,   38,   35,   32,   33,   36,
+       40,   34,   37,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   36,   31,   37,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,    7,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   22,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+
+       35,   35,   35,   10,   11,   12,   35,   15,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   25,   26,   27,
+       35,   30,   35,   35,   35,    3,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   18,   35,   35,   35,   35,
+       35,   35,   35,    1,    2,    4,    5,   35,   35,   35,
+       35,   35,   16,   17,   19,   20,   35,   35,   35,   35,
+       35,   35,    8,    9,   13,   14,   35,   23,   24,   28,
+       29,   35,   35,    6,   21,    0
+    } ;
+
+static yyconst int yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    3,    1,    1,    1,    4,    1,    1,    1,    5,
+        6,    7,    8,    9,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,   10,    1,
+        1,    1,    1,    1,   11,   12,   13,   14,   15,   16,
+        4,   17,   18,    4,    4,   19,   20,   21,   22,   23,
+        4,   24,   25,   26,   27,   28,    4,   29,   30,    4,
+        1,    4,    1,    1,    4,    1,   31,   32,   33,   34,
+
+       35,   36,    4,   37,   38,    4,    4,   39,   40,   41,
+       42,   43,    4,   44,   45,   46,   47,   48,    4,   49,
+       50,    4,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst int yy_meta[51] =
+    {   0,
+        1,    2,    1,    3,    1,    1,    1,    1,    1,    1,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3
+    } ;
+
+static yyconst short int yy_base[180] =
+    {   0,
+        0,    0,  193,  194,  194,  194,    0,  194,  194,    0,
+      190,  194,    0,  177,   32,   37,   32,  163,  174,  170,
+      164,  171,  174,  169,  149,   15,   22,   17,  135,  146,
+      142,  136,  143,  146,  141,    0,    0,  194,    0,  161,
+      159,  158,  153,  147,  156,  143,  149,  148,  141,  150,
+      141,  135,  138,  127,  125,  124,  119,  113,  122,  109,
+      115,  114,  107,  116,  107,  101,  104,   43,  136,  135,
+      130,  129,    0,  119,  123,  118,  114,  118,  119,  122,
+      124,   25,  104,  103,   98,   97,    0,   87,   91,   86,
+       82,   86,   87,   90,   92,  105,  100,   97,   94,   93,
+
+      105,  106,  102,    0,    0,    0,  104,    0,   92,   75,
+       70,   67,   64,   63,   75,   76,   72,    0,    0,    0,
+       74,    0,   62,   91,   88,    0,   86,   85,   73,   85,
+       79,   83,   70,   62,   59,    0,   57,   56,   44,   56,
+       50,   54,   41,    0,    0,    0,    0,   63,   58,   59,
+       67,   66,    0,    0,    0,    0,   38,   33,   34,   42,
+       41,   51,    0,    0,    0,    0,   30,    0,    0,    0,
+        0,   43,   21,    0,    0,  194,   65,   66,   69
+    } ;
+
+static yyconst short int yy_def[180] =
+    {   0,
+      176,    1,  176,  176,  176,  176,  177,  176,  176,  178,
+      176,  176,  179,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  178,  176,  179,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
+      177,  177,  177,  177,  177,    0,  176,  176,  176
+    } ;
+
+static yyconst short int yy_nxt[245] =
+    {   0,
+        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
+       14,    7,   15,   16,   17,   18,   19,    7,   20,    7,
+        7,   21,    7,   22,   23,    7,    7,   24,    7,    7,
+       25,    7,   26,   27,   28,   29,   30,    7,   31,    7,
+        7,   32,    7,   33,   34,    7,    7,   35,    7,    7,
+       41,   43,   45,   55,   44,   42,   57,   59,   56,   58,
+       46,   96,   97,  110,  111,   60,   37,   36,   37,   39,
+      175,   39,  174,  173,  172,  171,  170,  169,  168,  167,
+      166,  165,  164,  163,  162,  161,  160,  159,  158,  157,
+      156,  155,  154,  153,  152,  151,  150,  149,  148,  147,
+
+      146,  145,  144,  143,  142,  141,  140,  139,  138,  137,
+      136,  135,  134,  133,  132,  131,  130,  129,  128,  127,
+      126,  125,  124,  123,  122,  121,  120,  119,  118,  117,
+      116,  115,  114,  113,  112,  109,  108,  107,  106,  105,
+      104,  103,  102,  101,  100,   99,   98,   95,   94,   93,
+       92,   91,   90,   89,   88,   87,   86,   85,   84,   83,
+       82,   81,   80,   79,   78,   77,   76,   75,   74,   73,
+       72,   71,   70,   69,   68,   67,   66,   65,   64,   63,
+       62,   61,   54,   53,   52,   51,   50,   49,   48,   47,
+       40,   38,  176,    3,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176
+    } ;
+
+static yyconst short int yy_chk[245] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+       15,   16,   17,   26,   16,   15,   27,   28,   26,   27,
+       17,   68,   68,   82,   82,   28,  178,  177,  178,  179,
+      173,  179,  172,  167,  162,  161,  160,  159,  158,  157,
+      152,  151,  150,  149,  148,  143,  142,  141,  140,  139,
+      138,  137,  135,  134,  133,  132,  131,  130,  129,  128,
+
+      127,  125,  124,  123,  121,  117,  116,  115,  114,  113,
+      112,  111,  110,  109,  107,  103,  102,  101,  100,   99,
+       98,   97,   96,   95,   94,   93,   92,   91,   90,   89,
+       88,   86,   85,   84,   83,   81,   80,   79,   78,   77,
+       76,   75,   74,   72,   71,   70,   69,   67,   66,   65,
+       64,   63,   62,   61,   60,   59,   58,   57,   56,   55,
+       54,   53,   52,   51,   50,   49,   48,   47,   46,   45,
+       44,   43,   42,   41,   40,   35,   34,   33,   32,   31,
+       30,   29,   25,   24,   23,   22,   21,   20,   19,   18,
+       14,   11,    3,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+      176,  176,  176,  176
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "arlex.l"
+#define INITIAL 0
+#line 2 "arlex.l"
+/* arlex.l - Strange script language lexer */
+
+/*   Copyright 1992, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Binutils.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+
+/* Contributed by Steve Chamberlain
+   		  sac@cygnus.com
+
+*/
+#define DONTDECLARE_MALLOC
+#include "ansidecl.h"
+#include "libiberty.h"
+#include "arparse.h"
+
+#define YY_NO_UNPUT
+
+extern int yylex (void);
+
+int linenumber;
+#line 509 "lex.yy.c"
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines.  This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	if ( yy_current_buffer->yy_is_interactive ) \
+		{ \
+		int c = '*', n; \
+		for ( n = 0; n < max_size && \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			buf[n] = (char) c; \
+		if ( c == '\n' ) \
+			buf[n++] = (char) c; \
+		if ( c == EOF && ferror( yyin ) ) \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+		result = n; \
+		} \
+	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+		  && ferror( yyin ) ) \
+		YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+YY_DECL
+	{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+
+#line 42 "arlex.l"
+
+
+#line 663 "lex.yy.c"
+
+	if ( yy_init )
+		{
+		yy_init = 0;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! yy_start )
+			yy_start = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! yy_current_buffer )
+			yy_current_buffer =
+				yy_create_buffer( yyin, YY_BUF_SIZE );
+
+		yy_load_buffer_state();
+		}
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = yy_c_buf_p;
+
+		/* Support of yytext. */
+		*yy_cp = yy_hold_char;
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = yy_start;
+yy_match:
+		do
+			{
+			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			if ( yy_accept[yy_current_state] )
+				{
+				yy_last_accepting_state = yy_current_state;
+				yy_last_accepting_cpos = yy_cp;
+				}
+			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+				{
+				yy_current_state = (int) yy_def[yy_current_state];
+				if ( yy_current_state >= 177 )
+					yy_c = yy_meta[(unsigned int) yy_c];
+				}
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			++yy_cp;
+			}
+		while ( yy_base[yy_current_state] != 194 );
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+		if ( yy_act == 0 )
+			{ /* have to back up */
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
+			yy_act = yy_accept[yy_current_state];
+			}
+
+		YY_DO_BEFORE_ACTION;
+
+
+do_action:	/* This label is used only to access EOF actions. */
+
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = yy_hold_char;
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 44 "arlex.l"
+{ return ADDLIB; }
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 45 "arlex.l"
+{ return ADDMOD; }
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 46 "arlex.l"
+{ return CLEAR; }
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 47 "arlex.l"
+{ return CREATE; }
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 48 "arlex.l"
+{ return DELETE; }
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 49 "arlex.l"
+{ return DIRECTORY; }
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 50 "arlex.l"
+{ return END; }
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 51 "arlex.l"
+{ return EXTRACT; }
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 52 "arlex.l"
+{ return FULLDIR; }
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 53 "arlex.l"
+{ return HELP; }
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 54 "arlex.l"
+{ return LIST; }
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 55 "arlex.l"
+{ return OPEN; }
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 56 "arlex.l"
+{ return REPLACE; }
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 57 "arlex.l"
+{ return VERBOSE; }
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 58 "arlex.l"
+{ return SAVE; }
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 59 "arlex.l"
+{ return ADDLIB; }
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 60 "arlex.l"
+{ return ADDMOD; }
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 61 "arlex.l"
+{ return CLEAR; }
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 62 "arlex.l"
+{ return CREATE; }
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 63 "arlex.l"
+{ return DELETE; }
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 64 "arlex.l"
+{ return DIRECTORY; }
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 65 "arlex.l"
+{ return END; }
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 66 "arlex.l"
+{ return EXTRACT; }
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 67 "arlex.l"
+{ return FULLDIR; }
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 68 "arlex.l"
+{ return HELP; }
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 69 "arlex.l"
+{ return LIST; }
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 70 "arlex.l"
+{ return OPEN; }
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 71 "arlex.l"
+{ return REPLACE; }
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 72 "arlex.l"
+{ return VERBOSE; }
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 73 "arlex.l"
+{ return SAVE; }
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 74 "arlex.l"
+{ linenumber ++; }
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 75 "arlex.l"
+{ return '('; }
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 76 "arlex.l"
+{ return ')'; }
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 77 "arlex.l"
+{ return ','; }
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 78 "arlex.l"
+{ 	
+		yylval.name =  xstrdup (yytext);
+		return FILENAME;
+		}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 82 "arlex.l"
+{ }
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 83 "arlex.l"
+{ }
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 84 "arlex.l"
+{ }
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 85 "arlex.l"
+{ linenumber ++; return NEWLINE; }	
+	YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 87 "arlex.l"
+ECHO;
+	YY_BREAK
+#line 949 "lex.yy.c"
+case YY_STATE_EOF(INITIAL):
+	yyterminate();
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = yy_hold_char;
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state();
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++yy_c_buf_p;
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = yy_c_buf_p;
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer() )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				yy_did_buffer_switch_on_eof = 0;
+
+				if ( yywrap() )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of yylex */
+
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+
+static int yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+	else
+		{
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = yy_current_buffer;
+
+			int yy_c_buf_p_offset =
+				(int) (yy_c_buf_p - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				int new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = yy_current_buffer->yy_buf_size -
+						number_to_move - 1;
+#endif
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
+
+		yy_current_buffer->yy_n_chars = yy_n_chars;
+		}
+
+	if ( yy_n_chars == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart( yyin );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			yy_current_buffer->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+	return ret_val;
+	}
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+	{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+
+	yy_current_state = yy_start;
+
+	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+		{
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		if ( yy_accept[yy_current_state] )
+			{
+			yy_last_accepting_state = yy_current_state;
+			yy_last_accepting_cpos = yy_cp;
+			}
+		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+			{
+			yy_current_state = (int) yy_def[yy_current_state];
+			if ( yy_current_state >= 177 )
+				yy_c = yy_meta[(unsigned int) yy_c];
+			}
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		}
+
+	return yy_current_state;
+	}
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+	{
+	register int yy_is_jam;
+	register char *yy_cp = yy_c_buf_p;
+
+	register YY_CHAR yy_c = 1;
+	if ( yy_accept[yy_current_state] )
+		{
+		yy_last_accepting_state = yy_current_state;
+		yy_last_accepting_cpos = yy_cp;
+		}
+	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+		{
+		yy_current_state = (int) yy_def[yy_current_state];
+		if ( yy_current_state >= 177 )
+			yy_c = yy_meta[(unsigned int) yy_c];
+		}
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_is_jam = (yy_current_state == 176);
+
+	return yy_is_jam ? 0 : yy_current_state;
+	}
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+	{
+	register char *yy_cp = yy_c_buf_p;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yy_hold_char;
+
+	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+		{ /* need to shift things up to make room */
+		/* +2 for EOB chars. */
+		register int number_to_move = yy_n_chars + 2;
+		register char *dest = &yy_current_buffer->yy_ch_buf[
+					yy_current_buffer->yy_buf_size + 2];
+		register char *source =
+				&yy_current_buffer->yy_ch_buf[number_to_move];
+
+		while ( source > yy_current_buffer->yy_ch_buf )
+			*--dest = *--source;
+
+		yy_cp += (int) (dest - source);
+		yy_bp += (int) (dest - source);
+		yy_current_buffer->yy_n_chars =
+			yy_n_chars = yy_current_buffer->yy_buf_size;
+
+		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+			YY_FATAL_ERROR( "flex scanner push-back overflow" );
+		}
+
+	*--yy_cp = (char) c;
+
+
+	yytext_ptr = yy_bp;
+	yy_hold_char = *yy_cp;
+	yy_c_buf_p = yy_cp;
+	}
+#endif	/* ifndef YY_NO_UNPUT */
+
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+	{
+	int c;
+
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			/* This was really a NUL. */
+			*yy_c_buf_p = '\0';
+
+		else
+			{ /* need more input */
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
+
+			switch ( yy_get_next_buffer() )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart( yyin );
+
+					/* fall through */
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap() )
+						return EOF;
+
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					yy_c_buf_p = yytext_ptr + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
+
+
+	return c;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+	{
+	if ( ! yy_current_buffer )
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+	yy_init_buffer( yy_current_buffer, input_file );
+	yy_load_buffer_state();
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+	{
+	if ( yy_current_buffer == new_buffer )
+		return;
+
+	if ( yy_current_buffer )
+		{
+		/* Flush out information for old buffer. */
+		*yy_c_buf_p = yy_hold_char;
+		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+		yy_current_buffer->yy_n_chars = yy_n_chars;
+		}
+
+	yy_current_buffer = new_buffer;
+	yy_load_buffer_state();
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	yy_did_buffer_switch_on_eof = 1;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+	{
+	yy_n_chars = yy_current_buffer->yy_n_chars;
+	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+	yyin = yy_current_buffer->yy_input_file;
+	yy_hold_char = *yy_c_buf_p;
+	}
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+	{
+	YY_BUFFER_STATE b;
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer( b, file );
+
+	return b;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+	{
+	if ( ! b )
+		return;
+
+	if ( b == yy_current_buffer )
+		yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yy_flex_free( (void *) b->yy_ch_buf );
+
+	yy_flex_free( (void *) b );
+	}
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+	{
+	yy_flush_buffer( b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+#if YY_ALWAYS_INTERACTIVE
+	b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+	b->yy_is_interactive = 0;
+#else
+	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+	{
+	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == yy_current_buffer )
+		yy_load_buffer_state();
+	}
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+	{
+	YY_BUFFER_STATE b;
+
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer( b );
+
+	return b;
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+	{
+	int len;
+	for ( len = 0; yy_str[len]; ++len )
+		;
+
+	return yy_scan_bytes( yy_str, len );
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+	{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	int i;
+
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = len + 2;
+	buf = (char *) yy_flex_alloc( n );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < len; ++i )
+		buf[i] = bytes[i];
+
+	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer( buf, n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+	}
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+	{
+	if ( yy_start_stack_ptr >= yy_start_stack_depth )
+		{
+		yy_size_t new_size;
+
+		yy_start_stack_depth += YY_START_STACK_INCR;
+		new_size = yy_start_stack_depth * sizeof( int );
+
+		if ( ! yy_start_stack )
+			yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+		else
+			yy_start_stack = (int *) yy_flex_realloc(
+					(void *) yy_start_stack, new_size );
+
+		if ( ! yy_start_stack )
+			YY_FATAL_ERROR(
+			"out of memory expanding start-condition stack" );
+		}
+
+	yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+	BEGIN(new_state);
+	}
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+	{
+	if ( --yy_start_stack_ptr < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN(yy_start_stack[yy_start_stack_ptr]);
+	}
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+	{
+	return yy_start_stack[yy_start_stack_ptr - 1];
+	}
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+	{
+	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+	}
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
+		} \
+	while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+	}
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+	}
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
+	return (void *) malloc( size );
+	}
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+	{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+	}
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+	{
+	free( ptr );
+	}
+
+#if YY_MAIN
+int main()
+	{
+	yylex();
+	return 0;
+	}
+#endif
+#line 87 "arlex.l"
+
+#ifndef yywrap
+/* Needed for lex, though not flex. */
+int yywrap(void) { return 1; }
+#endif
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/binutils/arparse.c binutils-2004-q3d-uclibc/binutils/arparse.c
--- binutils-2004-q3d-pristine/binutils/arparse.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/binutils/arparse.c	2005-02-24 10:34:09.000000000 +0200
@@ -0,0 +1,1410 @@
+/* A Bison parser, made by GNU Bison 1.875a.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     NEWLINE = 258,
+     VERBOSE = 259,
+     FILENAME = 260,
+     ADDLIB = 261,
+     LIST = 262,
+     ADDMOD = 263,
+     CLEAR = 264,
+     CREATE = 265,
+     DELETE = 266,
+     DIRECTORY = 267,
+     END = 268,
+     EXTRACT = 269,
+     FULLDIR = 270,
+     HELP = 271,
+     QUIT = 272,
+     REPLACE = 273,
+     SAVE = 274,
+     OPEN = 275
+   };
+#endif
+#define NEWLINE 258
+#define VERBOSE 259
+#define FILENAME 260
+#define ADDLIB 261
+#define LIST 262
+#define ADDMOD 263
+#define CLEAR 264
+#define CREATE 265
+#define DELETE 266
+#define DIRECTORY 267
+#define END 268
+#define EXTRACT 269
+#define FULLDIR 270
+#define HELP 271
+#define QUIT 272
+#define REPLACE 273
+#define SAVE 274
+#define OPEN 275
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 1 "arparse.y"
+
+/* arparse.y - Stange script language parser */
+
+/*   Copyright 1992, 1993, 1995, 1997, 1999, 2003
+     Free Software Foundation, Inc.
+
+This file is part of GNU Binutils.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+
+/* Contributed by Steve Chamberlain
+   		  sac@cygnus.com
+
+*/
+#define DONTDECLARE_MALLOC
+#include "bfd.h"
+#include "bucomm.h"
+#include "arsup.h"
+extern int verbose;
+extern int yylex (void);
+static int yyerror (const char *);
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 37 "arparse.y"
+typedef union YYSTYPE {
+  char *name;
+struct list *list ;
+
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+#line 158 "y.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+#line 170 "y.tab.c"
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  register YYSIZE_T yyi;		\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  3
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   34
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  24
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  22
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  42
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  53
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   275
+
+#define YYTRANSLATE(YYX) 						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+      21,    22,     2,     2,    23,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned char yyprhs[] =
+{
+       0,     0,     3,     4,     7,    10,    11,    14,    16,    18,
+      20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
+      40,    42,    44,    45,    48,    51,    53,    56,    59,    61,
+      63,    66,    69,    73,    78,    80,    81,    85,    86,    90,
+      91,    93,    94
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+      25,     0,    -1,    -1,    26,    27,    -1,    27,    28,    -1,
+      -1,    29,     3,    -1,    37,    -1,    38,    -1,    45,    -1,
+      40,    -1,    39,    -1,    32,    -1,    34,    -1,    36,    -1,
+      30,    -1,    31,    -1,    33,    -1,    35,    -1,    13,    -1,
+       1,    -1,     5,    -1,    -1,    14,    43,    -1,    18,    43,
+      -1,     9,    -1,    11,    43,    -1,     8,    43,    -1,     7,
+      -1,    19,    -1,    20,     5,    -1,    10,     5,    -1,     6,
+       5,    42,    -1,    12,     5,    42,    41,    -1,     5,    -1,
+      -1,    21,    43,    22,    -1,    -1,    43,    44,     5,    -1,
+      -1,    23,    -1,    -1,     4,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned char yyrline[] =
+{
+       0,    68,    68,    68,    72,    73,    77,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    96,   101,   106,   111,   116,   120,   125,   130,
+     137,   142,   148,   152,   159,   161,   165,   168,   172,   178,
+     183,   184,   189
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "NEWLINE", "VERBOSE", "FILENAME", "ADDLIB", 
+  "LIST", "ADDMOD", "CLEAR", "CREATE", "DELETE", "DIRECTORY", "END", 
+  "EXTRACT", "FULLDIR", "HELP", "QUIT", "REPLACE", "SAVE", "OPEN", "'('", 
+  "')'", "','", "$accept", "start", "@1", "session", "command_line", 
+  "command", "extract_command", "replace_command", "clear_command", 
+  "delete_command", "addmod_command", "list_command", "save_command", 
+  "open_command", "create_command", "addlib_command", "directory_command", 
+  "optional_filename", "modulelist", "modulename", "optcomma", 
+  "verbose_command", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,    40,    41,    44
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,    24,    26,    25,    27,    27,    28,    29,    29,    29,
+      29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
+      29,    29,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    41,    42,    42,    43,    43,
+      44,    44,    45
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
+{
+       0,     2,     0,     2,     2,     0,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     0,     2,     2,     1,     2,     2,     1,     1,
+       2,     2,     3,     4,     1,     0,     3,     0,     3,     0,
+       1,     0,     1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned char yydefact[] =
+{
+       2,     0,     5,     1,     0,    20,    42,    21,     0,    28,
+      39,    25,     0,    39,     0,    19,    39,    39,    29,     0,
+       4,     0,    15,    16,    12,    17,    13,    18,    14,     7,
+       8,    11,    10,     9,    37,    27,    31,    26,    37,    23,
+      24,    30,     6,    39,    32,    40,     0,    35,    41,    38,
+      34,    33,    36
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+      -1,     1,     2,     4,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    51,    44,    35,
+      46,    33
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -14
+static const yysigned_char yypact[] =
+{
+     -14,     1,   -14,   -14,     5,   -14,   -14,   -14,     2,   -14,
+     -14,   -14,    21,   -14,    22,   -14,   -14,   -14,   -14,    23,
+     -14,    26,   -14,   -14,   -14,   -14,   -14,   -14,   -14,   -14,
+     -14,   -14,   -14,   -14,    10,    -3,   -14,    -3,    10,    -3,
+      -3,   -14,   -14,   -14,   -14,   -14,    27,    28,    -1,   -14,
+     -14,   -14,   -14
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yysigned_char yypgoto[] =
+{
+     -14,   -14,   -14,   -14,   -14,   -14,   -14,   -14,   -14,   -14,
+     -14,   -14,   -14,   -14,   -14,   -14,   -14,   -14,    -4,   -13,
+     -14,   -14
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -42
+static const yysigned_char yytable[] =
+{
+      37,     3,   -41,    39,    40,    -3,     5,    34,   -22,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      45,    52,    45,    17,    18,    19,    36,    38,    41,    42,
+      48,    43,    49,    50,    47
+};
+
+static const unsigned char yycheck[] =
+{
+      13,     0,     5,    16,    17,     0,     1,     5,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      23,    22,    23,    18,    19,    20,     5,     5,     5,     3,
+      43,    21,     5,     5,    38
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,    25,    26,     0,    27,     1,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    18,    19,    20,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    45,     5,    43,     5,    43,     5,    43,
+      43,     5,     3,    21,    42,    23,    44,    42,    43,     5,
+       5,    41,    22
+};
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrlab1
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+
+#define YYFAIL		goto yyerrlab
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)					\
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      yytoken = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { 								\
+      yyerror ("syntax error: cannot back up");\
+      YYERROR;							\
+    }								\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+   are run).  */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
+#endif
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (0)
+
+# define YYDSYMPRINT(Args)			\
+do {						\
+  if (yydebug)					\
+    yysymprint Args;				\
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)		\
+do {								\
+  if (yydebug)							\
+    {								\
+      YYFPRINTF (stderr, "%s ", Title);				\
+      yysymprint (stderr, 					\
+                  Token, Value);	\
+      YYFPRINTF (stderr, "\n");					\
+    }								\
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (Rule);		\
+} while (0)
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#if YYMAXDEPTH == 0
+# undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
+{
+  register const char *yys = yystr;
+
+  while (*yys++ != '\0')
+    continue;
+
+  return yys - yystr - 1;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  register char *yyd = yydest;
+  register const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+#endif /* !YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+  
+  register int yystate;
+  register int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  short	yyssa[YYINITDEPTH];
+  short *yyss = yyssa;
+  register short *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  register YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+
+  /* When reducing, the number of symbols on the RHS of the reduced
+     rule.  */
+  int yylen;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss;
+  yyvsp = yyvs;
+
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed. so pushing a state here evens the stacks.
+     */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* Give user a chance to reallocate the stack. Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	short *yyss1 = yyss;
+
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow ("parser stack overflow",
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyoverflowlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyoverflowlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	short *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyoverflowlab;
+	YYSTACK_RELOCATE (yyss);
+	YYSTACK_RELOCATE (yyvs);
+
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYPACT_NINF)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 2:
+#line 68 "arparse.y"
+    { prompt(); }
+    break;
+
+  case 6:
+#line 77 "arparse.y"
+    { prompt(); }
+    break;
+
+  case 19:
+#line 93 "arparse.y"
+    { ar_end(); return 0; }
+    break;
+
+  case 21:
+#line 95 "arparse.y"
+    { yyerror("foo"); }
+    break;
+
+  case 23:
+#line 102 "arparse.y"
+    { ar_extract(yyvsp[0].list); }
+    break;
+
+  case 24:
+#line 107 "arparse.y"
+    { ar_replace(yyvsp[0].list); }
+    break;
+
+  case 25:
+#line 112 "arparse.y"
+    { ar_clear(); }
+    break;
+
+  case 26:
+#line 117 "arparse.y"
+    { ar_delete(yyvsp[0].list); }
+    break;
+
+  case 27:
+#line 121 "arparse.y"
+    { ar_addmod(yyvsp[0].list); }
+    break;
+
+  case 28:
+#line 126 "arparse.y"
+    { ar_list(); }
+    break;
+
+  case 29:
+#line 131 "arparse.y"
+    { ar_save(); }
+    break;
+
+  case 30:
+#line 138 "arparse.y"
+    { ar_open(yyvsp[0].name,0); }
+    break;
+
+  case 31:
+#line 143 "arparse.y"
+    { ar_open(yyvsp[0].name,1); }
+    break;
+
+  case 32:
+#line 149 "arparse.y"
+    { ar_addlib(yyvsp[-1].name,yyvsp[0].list); }
+    break;
+
+  case 33:
+#line 153 "arparse.y"
+    { ar_directory(yyvsp[-2].name, yyvsp[-1].list, yyvsp[0].name); }
+    break;
+
+  case 34:
+#line 160 "arparse.y"
+    { yyval.name = yyvsp[0].name; }
+    break;
+
+  case 35:
+#line 161 "arparse.y"
+    { yyval.name = 0; }
+    break;
+
+  case 36:
+#line 166 "arparse.y"
+    { yyval.list = yyvsp[-1].list; }
+    break;
+
+  case 37:
+#line 168 "arparse.y"
+    { yyval.list = 0; }
+    break;
+
+  case 38:
+#line 173 "arparse.y"
+    { 	struct list *n  = (struct list *) malloc(sizeof(struct list));
+			n->next = yyvsp[-2].list; 
+			n->name = yyvsp[0].name;
+			yyval.list = n;
+		 }
+    break;
+
+  case 39:
+#line 178 "arparse.y"
+    { yyval.list = 0; }
+    break;
+
+  case 42:
+#line 190 "arparse.y"
+    { verbose = !verbose; }
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
+#line 1206 "y.tab.c"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+
+
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
+	{
+	  YYSIZE_T yysize = 0;
+	  int yytype = YYTRANSLATE (yychar);
+	  char *yymsg;
+	  int yyx, yycount;
+
+	  yycount = 0;
+	  /* Start YYX at -YYN if negative to avoid negative indexes in
+	     YYCHECK.  */
+	  for (yyx = yyn < 0 ? -yyn : 0;
+	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+	  yysize += yystrlen ("syntax error, unexpected ") + 1;
+	  yysize += yystrlen (yytname[yytype]);
+	  yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg != 0)
+	    {
+	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+	      yyp = yystpcpy (yyp, yytname[yytype]);
+
+	      if (yycount < 5)
+		{
+		  yycount = 0;
+		  for (yyx = yyn < 0 ? -yyn : 0;
+		       yyx < (int) (sizeof (yytname) / sizeof (char *));
+		       yyx++)
+		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+		      {
+			const char *yyq = ! yycount ? ", expecting " : " or ";
+			yyp = yystpcpy (yyp, yyq);
+			yyp = yystpcpy (yyp, yytname[yyx]);
+			yycount++;
+		      }
+		}
+	      yyerror (yymsg);
+	      YYSTACK_FREE (yymsg);
+	    }
+	  else
+	    yyerror ("syntax error; also virtual memory exhausted");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror ("syntax error");
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse lookahead token after an
+	 error, discard it.  */
+
+      /* Return failure if at end of input.  */
+      if (yychar == YYEOF)
+        {
+	  /* Pop the error token.  */
+          YYPOPSTACK;
+	  /* Pop the rest of the stack.  */
+	  while (yyss < yyssp)
+	    {
+	      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+	      yydestruct (yystos[*yyssp], yyvsp);
+	      YYPOPSTACK;
+	    }
+	  YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
+      yychar = YYEMPTY;
+
+    }
+
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
+
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  YYDPRINTF ((stderr, "Shifting error token, "));
+
+  *++yyvsp = yylval;
+
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
+yyoverflowlab:
+  yyerror ("parser stack overflow");
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+  return yyresult;
+}
+
+
+#line 194 "arparse.y"
+
+
+static int
+yyerror (const char *x ATTRIBUTE_UNUSED)
+{
+  extern int linenumber;
+
+  printf (_("Syntax error in archive script, line %d\n"), linenumber + 1);
+  return 0;
+}
+
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/binutils/arparse.h binutils-2004-q3d-uclibc/binutils/arparse.h
--- binutils-2004-q3d-pristine/binutils/arparse.h	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/binutils/arparse.h	2005-02-24 10:34:09.000000000 +0200
@@ -0,0 +1,91 @@
+/* A Bison parser, made by GNU Bison 1.875a.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     NEWLINE = 258,
+     VERBOSE = 259,
+     FILENAME = 260,
+     ADDLIB = 261,
+     LIST = 262,
+     ADDMOD = 263,
+     CLEAR = 264,
+     CREATE = 265,
+     DELETE = 266,
+     DIRECTORY = 267,
+     END = 268,
+     EXTRACT = 269,
+     FULLDIR = 270,
+     HELP = 271,
+     QUIT = 272,
+     REPLACE = 273,
+     SAVE = 274,
+     OPEN = 275
+   };
+#endif
+#define NEWLINE 258
+#define VERBOSE 259
+#define FILENAME 260
+#define ADDLIB 261
+#define LIST 262
+#define ADDMOD 263
+#define CLEAR 264
+#define CREATE 265
+#define DELETE 266
+#define DIRECTORY 267
+#define END 268
+#define EXTRACT 269
+#define FULLDIR 270
+#define HELP 271
+#define QUIT 272
+#define REPLACE 273
+#define SAVE 274
+#define OPEN 275
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 37 "arparse.y"
+typedef union YYSTYPE {
+  char *name;
+struct list *list ;
+
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+#line 83 "y.tab.h"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYSTYPE yylval;
+
+
+
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/binutils/doc/cxxfilt.man binutils-2004-q3d-uclibc/binutils/doc/cxxfilt.man
--- binutils-2004-q3d-pristine/binutils/doc/cxxfilt.man	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/binutils/doc/cxxfilt.man	2005-02-24 10:33:53.000000000 +0200
@@ -0,0 +1,276 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  | will give a
+.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.\"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "C++FILT 1"
+.TH C++FILT 1 "2005-02-24" "binutils-2.15.94" "GNU Development Tools"
+.SH "NAME"
+cxxfilt \- Demangle C++ and Java symbols.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
+        [\fB\-j\fR|\fB\-\-java\fR]
+        [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
+        [\fB\-p\fR|\fB\-\-no\-params\fR]
+        [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
+        [\fB\-\-help\fR]  [\fB\-\-version\fR]  [\fIsymbol\fR...]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The \*(C+ and Java languages provides function overloading, which means
+that you can write many functions with the same name (providing each
+takes parameters of different types).  All \*(C+ and Java function names
+are encoded into a low-level assembly label (this process is known as
+\&\fImangling\fR). The \fBc++filt\fR
+[1]
+program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
+names into user-level names so that the linker can keep these overloaded
+functions from clashing.
+.PP
+Every alphanumeric word (consisting of letters, digits, underscores,
+dollars, or periods) seen in the input is a potential label.  If the
+label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
+name in the output.
+.PP
+You can use \fBc++filt\fR to decipher individual symbols:
+.PP
+.Vb 1
+\&        c++filt <symbol>
+.Ve
+.PP
+If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
+names from the standard input and writes the demangled names to the
+standard output.  All results are printed on the standard output.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-_\fR" 4
+.IX Item "-_"
+.PD 0
+.IP "\fB\-\-strip\-underscores\fR" 4
+.IX Item "--strip-underscores"
+.PD
+On some systems, both the C and \*(C+ compilers put an underscore in front
+of every name.  For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
+name \f(CW\*(C`_foo\*(C'\fR.  This option removes the initial underscore.  Whether
+\&\fBc++filt\fR removes the underscore by default is target dependent.
+.IP "\fB\-j\fR" 4
+.IX Item "-j"
+.PD 0
+.IP "\fB\-\-java\fR" 4
+.IX Item "--java"
+.PD
+Prints demangled names using Java syntax.  The default is to use \*(C+
+syntax.
+.IP "\fB\-n\fR" 4
+.IX Item "-n"
+.PD 0
+.IP "\fB\-\-no\-strip\-underscores\fR" 4
+.IX Item "--no-strip-underscores"
+.PD
+Do not remove the initial underscore.
+.IP "\fB\-p\fR" 4
+.IX Item "-p"
+.PD 0
+.IP "\fB\-\-no\-params\fR" 4
+.IX Item "--no-params"
+.PD
+When demangling the name of a function, do not display the types of
+the function's parameters.
+.IP "\fB\-s\fR \fIformat\fR" 4
+.IX Item "-s format"
+.PD 0
+.IP "\fB\-\-format=\fR\fIformat\fR" 4
+.IX Item "--format=format"
+.PD
+\&\fBc++filt\fR can decode various methods of mangling, used by
+different compilers.  The argument to this option selects which
+method it uses:
+.RS 4
+.ie n .IP """auto""" 4
+.el .IP "\f(CWauto\fR" 4
+.IX Item "auto"
+Automatic selection based on executable (the default method)
+.ie n .IP """gnu""" 4
+.el .IP "\f(CWgnu\fR" 4
+.IX Item "gnu"
+the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
+.ie n .IP """lucid""" 4
+.el .IP "\f(CWlucid\fR" 4
+.IX Item "lucid"
+the one used by the Lucid compiler (lcc)
+.ie n .IP """arm""" 4
+.el .IP "\f(CWarm\fR" 4
+.IX Item "arm"
+the one specified by the \*(C+ Annotated Reference Manual
+.ie n .IP """hp""" 4
+.el .IP "\f(CWhp\fR" 4
+.IX Item "hp"
+the one used by the \s-1HP\s0 compiler (aCC)
+.ie n .IP """edg""" 4
+.el .IP "\f(CWedg\fR" 4
+.IX Item "edg"
+the one used by the \s-1EDG\s0 compiler
+.ie n .IP """gnu\-v3""" 4
+.el .IP "\f(CWgnu\-v3\fR" 4
+.IX Item "gnu-v3"
+the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
+.ie n .IP """java""" 4
+.el .IP "\f(CWjava\fR" 4
+.IX Item "java"
+the one used by the \s-1GNU\s0 Java compiler (gcj)
+.ie n .IP """gnat""" 4
+.el .IP "\f(CWgnat\fR" 4
+.IX Item "gnat"
+the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
+.RE
+.RS 4
+.RE
+.IP "\fB\-\-help\fR" 4
+.IX Item "--help"
+Print a summary of the options to \fBc++filt\fR and exit.
+.IP "\fB\-\-version\fR" 4
+.IX Item "--version"
+Print the version number of \fBc++filt\fR and exit.
+.SH "FOOTNOTES"
+.IX Header "FOOTNOTES"
+.IP "1." 4
+MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
+MS-DOS this program is named \fBcxxfilt\fR.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+the Info entries for \fIbinutils\fR.
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000,
+2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+.PP
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the
+section entitled ``\s-1GNU\s0 Free Documentation License''.
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/configure binutils-2004-q3d-uclibc/configure
--- binutils-2004-q3d-pristine/configure	2004-11-04 20:42:47.000000000 +0200
+++ binutils-2004-q3d-uclibc/configure	2005-02-24 08:51:33.000000000 +0200
@@ -1344,6 +1344,18 @@
   i[3456789]86-*-coff | i[3456789]86-*-elf)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
+  i[3456789]86-*-linux-uclibc*)
+    # This section makes it possible to build newlib natively on linux.
+    # If we are using a cross compiler then don't configure newlib.
+    if test x${is_cross_compiler} != xno ; then
+      noconfigdirs="$noconfigdirs target-newlib"
+    fi
+    noconfigdirs="$noconfigdirs target-libgloss"
+    # If we are not using a cross compiler, do configure newlib.
+    # Note however, that newlib will only be configured in this situation
+    # if the --with-newlib option has been given, because otherwise
+    # 'target-newlib' will appear in skipdirs.
+    ;;
   i[3456789]86-*-linux*)
     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
     # not build java stuff by default.
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/configure.in binutils-2004-q3d-uclibc/configure.in
--- binutils-2004-q3d-pristine/configure.in	2004-11-04 19:07:08.000000000 +0200
+++ binutils-2004-q3d-uclibc/configure.in	2005-02-24 08:51:33.000000000 +0200
@@ -566,6 +566,18 @@
   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
     noconfigdirs="$noconfigdirs ${libgcj}"
     ;;
+  i[[3456789]]86-*-linux-uclibc*)
+    # This section makes it possible to build newlib natively on linux.
+    # If we are using a cross compiler then don't configure newlib.
+    if test x${is_cross_compiler} != xno ; then
+      noconfigdirs="$noconfigdirs target-newlib"
+    fi
+    noconfigdirs="$noconfigdirs target-libgloss"
+    # If we are not using a cross compiler, do configure newlib.
+    # Note however, that newlib will only be configured in this situation
+    # if the --with-newlib option has been given, because otherwise
+    # 'target-newlib' will appear in skipdirs.
+    ;;
   i[[3456789]]86-*-linux*)
     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
     # not build java stuff by default.
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gas/configure binutils-2004-q3d-uclibc/gas/configure
--- binutils-2004-q3d-pristine/gas/configure	2004-11-04 17:54:40.000000000 +0200
+++ binutils-2004-q3d-uclibc/gas/configure	2005-02-24 09:23:55.000000000 +0200
@@ -3412,6 +3412,12 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
@@ -4246,6 +4252,7 @@
       alpha*-*-osf*)			fmt=ecoff ;;
       alpha*-*-linuxecoff*)		fmt=ecoff ;;
       alpha*-*-linux-gnu*)		fmt=elf em=linux ;;
+      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;;
       alpha*-*-netbsd*)			fmt=elf em=nbsd ;;
       alpha*-*-openbsd*)		fmt=elf em=obsd ;;
 
@@ -4261,6 +4268,7 @@
       arm*-*-conix*)			fmt=elf ;;
       arm-*-linux*aout*)		fmt=aout em=linux ;;
       arm*-*-linux-gnu*)		fmt=elf  em=linux ;;
+      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;;
       arm*-*-uclinux*)			fmt=elf  em=linux ;;
       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
       arm-*-*n*bsd*)			fmt=aout em=nbsd ;;
@@ -4274,6 +4282,7 @@
 
       cris-*-linux-gnu* | crisv32-*-linux-gnu*)
 					fmt=multi bfd_gas=yes em=linux ;;
+      cris-*-linux-uclibc*)       fmt=multi bfd_gas=yes em=linux ;;
       cris-*-* | crisv32-*-*)		fmt=multi bfd_gas=yes ;;
 
       crx-*-elf*)	    		fmt=elf ;;
@@ -4333,7 +4342,9 @@
       i386-*-linux*oldld)		fmt=aout em=linux ;;
       i386-*-linux*coff*)		fmt=coff em=linux ;;
       i386-*-linux-gnu*)		fmt=elf em=linux ;;
+      i386-*-linux-uclibc*)       fmt=elf em=linux ;;
       x86_64-*-linux-gnu*)		fmt=elf em=linux ;;
+      x86_64-*-linux-uclibc*)     fmt=elf em=linux ;;
       i386-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;;
       i386-*-sysv[45]*)			fmt=elf ;;
       i386-*-solaris*)			fmt=elf ;;
@@ -4393,6 +4404,7 @@
       ia64-*-elf*)			fmt=elf ;;
       ia64-*-aix*)			fmt=elf em=ia64aix ;;
       ia64-*-linux-gnu*)		fmt=elf em=linux ;;
+      ia64-*-linux-uclibc*)		fmt=elf em=linux ;;
       ia64-*-hpux*)			fmt=elf em=hpux ;;
       ia64-*-netbsd*)			fmt=elf em=nbsd ;;
 
@@ -4420,6 +4432,7 @@
       m68k-*-hpux*)			fmt=hp300 em=hp300 ;;
       m68k-*-linux*aout*)		fmt=aout em=linux ;;
       m68k-*-linux-gnu*)		fmt=elf em=linux ;;
+      m68k-*-linux-uclibc*)		fmt=elf em=linux ;;
       m68k-*-uclinux*)			fmt=elf ;;
       m68k-*-gnu*)			fmt=elf ;;
       m68k-*-lynxos*)			fmt=coff em=lynx ;;
@@ -4492,6 +4505,7 @@
       ppc-*-beos*)			fmt=coff ;;
       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;;
       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;;
+      ppc-*-linux-uclibc* | \
       ppc-*-linux-gnu*)			fmt=elf em=linux
 	    case "$endian" in
 		big)  ;;
@@ -4519,7 +4533,9 @@
       ppc-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;;
 
       s390x-*-linux-gnu*)		fmt=elf em=linux ;;
+      s390x-*-linux-uclibc*)		fmt=elf em=linux ;;
       s390-*-linux-gnu*)		fmt=elf em=linux ;;
+      s390-*-linux-uclibc*)		fmt=elf em=linux ;;
 
       sh*-*-linux*)			fmt=elf em=linux
 	    case ${cpu} in
@@ -4554,6 +4570,7 @@
       sparc-*-coff)			fmt=coff ;;
       sparc-*-linux*aout*)		fmt=aout em=linux ;;
       sparc-*-linux-gnu*)		fmt=elf em=linux ;;
+      sparc-*-linux-uclibc*)		fmt=elf em=linux ;;
       sparc-*-lynxos*)			fmt=coff em=lynx ;;
       sparc-fujitsu-none)		fmt=aout ;;
       sparc-*-elf)			fmt=elf ;;
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gas/configure.in binutils-2004-q3d-uclibc/gas/configure.in
--- binutils-2004-q3d-pristine/gas/configure.in	2004-11-04 17:54:42.000000000 +0200
+++ binutils-2004-q3d-uclibc/gas/configure.in	2005-02-24 09:25:21.000000000 +0200
@@ -201,6 +201,7 @@
       alpha*-*-osf*)			fmt=ecoff ;;
       alpha*-*-linuxecoff*)		fmt=ecoff ;;
       alpha*-*-linux-gnu*)		fmt=elf em=linux ;;
+      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;;
       alpha*-*-netbsd*)			fmt=elf em=nbsd ;;
       alpha*-*-openbsd*)		fmt=elf em=obsd ;;
 
@@ -216,6 +217,7 @@
       arm*-*-conix*)			fmt=elf ;;
       arm-*-linux*aout*)		fmt=aout em=linux ;;
       arm*-*-linux-gnu*)		fmt=elf  em=linux ;;
+      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;;
       arm*-*-uclinux*)			fmt=elf  em=linux ;;
       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
       arm-*-*n*bsd*)			fmt=aout em=nbsd ;;
@@ -288,7 +290,9 @@
       i386-*-linux*oldld)		fmt=aout em=linux ;;
       i386-*-linux*coff*)		fmt=coff em=linux ;;
       i386-*-linux-gnu*)		fmt=elf em=linux ;;
+      i386-*-linux-uclibc*)       fmt=elf em=linux ;;
       x86_64-*-linux-gnu*)		fmt=elf em=linux ;;
+      x86_64-*-linux-uclibc*)     fmt=elf em=linux ;;
       i386-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;;
 changequote(,)dnl
       i386-*-sysv[45]*)			fmt=elf ;;
@@ -341,6 +345,7 @@
       ia64-*-elf*)			fmt=elf ;;
       ia64-*-aix*)			fmt=elf em=ia64aix ;;
       ia64-*-linux-gnu*)		fmt=elf em=linux ;;
+      ia64-*-linux-uclibc*)		fmt=elf em=linux ;;
       ia64-*-hpux*)			fmt=elf em=hpux ;;
       ia64-*-netbsd*)			fmt=elf em=nbsd ;;
 
@@ -368,6 +373,7 @@
       m68k-*-hpux*)			fmt=hp300 em=hp300 ;;
       m68k-*-linux*aout*)		fmt=aout em=linux ;;
       m68k-*-linux-gnu*)		fmt=elf em=linux ;;
+      m68k-*-linux-uclibc*)		fmt=elf em=linux ;;
       m68k-*-uclinux*)			fmt=elf ;;
       m68k-*-gnu*)			fmt=elf ;;
       m68k-*-lynxos*)			fmt=coff em=lynx ;;
@@ -437,6 +443,7 @@
       ppc-*-beos*)			fmt=coff ;;
       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;;
       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;;
+      ppc-*-linux-uclibc* | \
       ppc-*-linux-gnu*)			fmt=elf em=linux
 	    case "$endian" in
 		big)  ;;
@@ -457,7 +464,9 @@
       ppc-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;;
 
       s390x-*-linux-gnu*)		fmt=elf em=linux ;;
+      s390x-*-linux-uclibc*)		fmt=elf em=linux ;;
       s390-*-linux-gnu*)		fmt=elf em=linux ;;
+      s390-*-linux-uclibc*)		fmt=elf em=linux ;;
 
       sh*-*-linux*)			fmt=elf em=linux
 	    case ${cpu} in
@@ -488,6 +497,7 @@
       sparc-*-coff)			fmt=coff ;;
       sparc-*-linux*aout*)		fmt=aout em=linux ;;
       sparc-*-linux-gnu*)		fmt=elf em=linux ;;
+      sparc-*-linux-uclibc*)		fmt=elf em=linux ;;
       sparc-*-lynxos*)			fmt=coff em=lynx ;;
       sparc-fujitsu-none)		fmt=aout ;;
       sparc-*-elf)			fmt=elf ;;
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gprof/bsd_callg_bl.c binutils-2004-q3d-uclibc/gprof/bsd_callg_bl.c
--- binutils-2004-q3d-pristine/gprof/bsd_callg_bl.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/gprof/bsd_callg_bl.c	2005-02-24 16:30:24.000000000 +0200
@@ -0,0 +1,120 @@
+/* ==> Do not modify this file!!  It is created automatically
+   from bsd_callg_bl.m using the gen-c-prog.awk script.  <== */
+
+#include <stdio.h>
+#include "ansidecl.h"
+
+void  bsd_callg_blurb (FILE *);
+void
+bsd_callg_blurb (file)
+     FILE *file;
+{
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("call graph profile:\n", file);
+  fputs ("          The sum of self and descendents is the major sort\n", file);
+  fputs ("          for this listing.\n", file);
+  fputs ("\n", file);
+  fputs ("          function entries:\n", file);
+  fputs ("\n", file);
+  fputs ("index     the index of the function in the call graph\n", file);
+  fputs ("          listing, as an aid to locating it (see below).\n", file);
+  fputs ("\n", file);
+  fputs ("%time     the percentage of the total time of the program\n", file);
+  fputs ("          accounted for by this function and its\n", file);
+  fputs ("          descendents.\n", file);
+  fputs ("\n", file);
+  fputs ("self      the number of seconds spent in this function\n", file);
+  fputs ("          itself.\n", file);
+  fputs ("\n", file);
+  fputs ("descendents\n", file);
+  fputs ("          the number of seconds spent in the descendents of\n", file);
+  fputs ("          this function on behalf of this function.\n", file);
+  fputs ("\n", file);
+  fputs ("called    the number of times this function is called (other\n", file);
+  fputs ("          than recursive calls).\n", file);
+  fputs ("\n", file);
+  fputs ("self      the number of times this function calls itself\n", file);
+  fputs ("          recursively.\n", file);
+  fputs ("\n", file);
+  fputs ("name      the name of the function, with an indication of\n", file);
+  fputs ("          its membership in a cycle, if any.\n", file);
+  fputs ("\n", file);
+  fputs ("index     the index of the function in the call graph\n", file);
+  fputs ("          listing, as an aid to locating it.\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("          parent listings:\n", file);
+  fputs ("\n", file);
+  fputs ("self*     the number of seconds of this function's self time\n", file);
+  fputs ("          which is due to calls from this parent.\n", file);
+  fputs ("\n", file);
+  fputs ("descendents*\n", file);
+  fputs ("          the number of seconds of this function's\n", file);
+  fputs ("          descendent time which is due to calls from this\n", file);
+  fputs ("          parent.\n", file);
+  fputs ("\n", file);
+  fputs ("called**  the number of times this function is called by\n", file);
+  fputs ("          this parent.  This is the numerator of the\n", file);
+  fputs ("          fraction which divides up the function's time to\n", file);
+  fputs ("          its parents.\n", file);
+  fputs ("\n", file);
+  fputs ("total*    the number of times this function was called by\n", file);
+  fputs ("          all of its parents.  This is the denominator of\n", file);
+  fputs ("          the propagation fraction.\n", file);
+  fputs ("\n", file);
+  fputs ("parents   the name of this parent, with an indication of the\n", file);
+  fputs ("          parent's membership in a cycle, if any.\n", file);
+  fputs ("\n", file);
+  fputs ("index     the index of this parent in the call graph\n", file);
+  fputs ("          listing, as an aid in locating it.\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("          children listings:\n", file);
+  fputs ("\n", file);
+  fputs ("self*     the number of seconds of this child's self time\n", file);
+  fputs ("          which is due to being called by this function.\n", file);
+  fputs ("\n", file);
+  fputs ("descendent*\n", file);
+  fputs ("          the number of seconds of this child's descendent's\n", file);
+  fputs ("          time which is due to being called by this\n", file);
+  fputs ("          function.\n", file);
+  fputs ("\n", file);
+  fputs ("called**  the number of times this child is called by this\n", file);
+  fputs ("          function.  This is the numerator of the\n", file);
+  fputs ("          propagation fraction for this child.\n", file);
+  fputs ("\n", file);
+  fputs ("total*    the number of times this child is called by all\n", file);
+  fputs ("          functions.  This is the denominator of the\n", file);
+  fputs ("          propagation fraction.\n", file);
+  fputs ("\n", file);
+  fputs ("children  the name of this child, and an indication of its\n", file);
+  fputs ("          membership in a cycle, if any.\n", file);
+  fputs ("\n", file);
+  fputs ("index     the index of this child in the call graph listing,\n", file);
+  fputs ("          as an aid to locating it.\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("          * these fields are omitted for parents (or\n", file);
+  fputs ("          children) in the same cycle as the function.  If\n", file);
+  fputs ("          the function (or child) is a member of a cycle,\n", file);
+  fputs ("          the propagated times and propagation denominator\n", file);
+  fputs ("          represent the self time and descendent time of the\n", file);
+  fputs ("          cycle as a whole.\n", file);
+  fputs ("\n", file);
+  fputs ("          ** static-only parents and children are indicated\n", file);
+  fputs ("          by a call count of 0.\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs ("          cycle listings:\n", file);
+  fputs ("          the cycle as a whole is listed with the same\n", file);
+  fputs ("          fields as a function entry.  Below it are listed\n", file);
+  fputs ("          the members of the cycle, and their contributions\n", file);
+  fputs ("          to the time and call counts of the cycle.\n", file);
+  fputs ("\n", file);
+}
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gprof/configure binutils-2004-q3d-uclibc/gprof/configure
--- binutils-2004-q3d-pristine/gprof/configure	2004-09-17 09:19:27.000000000 +0300
+++ binutils-2004-q3d-uclibc/gprof/configure	2005-02-24 09:26:37.000000000 +0200
@@ -3418,6 +3418,12 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gprof/flat_bl.c binutils-2004-q3d-uclibc/gprof/flat_bl.c
--- binutils-2004-q3d-pristine/gprof/flat_bl.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/gprof/flat_bl.c	2005-02-24 16:30:24.000000000 +0200
@@ -0,0 +1,39 @@
+/* ==> Do not modify this file!!  It is created automatically
+   from flat_bl.m using the gen-c-prog.awk script.  <== */
+
+#include <stdio.h>
+#include "ansidecl.h"
+
+void  flat_blurb (FILE *);
+void
+flat_blurb (file)
+     FILE *file;
+{
+  fputs ("\n", file);
+  fputs (" %         the percentage of the total running time of the\n", file);
+  fputs ("time       program used by this function.\n", file);
+  fputs ("\n", file);
+  fputs ("cumulative a running sum of the number of seconds accounted\n", file);
+  fputs (" seconds   for by this function and those listed above it.\n", file);
+  fputs ("\n", file);
+  fputs (" self      the number of seconds accounted for by this\n", file);
+  fputs ("seconds    function alone.  This is the major sort for this\n", file);
+  fputs ("           listing.\n", file);
+  fputs ("\n", file);
+  fputs ("calls      the number of times this function was invoked, if\n", file);
+  fputs ("           this function is profiled, else blank.\n", file);
+  fputs (" \n", file);
+  fputs (" self      the average number of milliseconds spent in this\n", file);
+  fputs ("ms/call    function per call, if this function is profiled,\n", file);
+  fputs ("	   else blank.\n", file);
+  fputs ("\n", file);
+  fputs (" total     the average number of milliseconds spent in this\n", file);
+  fputs ("ms/call    function and its descendents per call, if this \n", file);
+  fputs ("	   function is profiled, else blank.\n", file);
+  fputs ("\n", file);
+  fputs ("name       the name of the function.  This is the minor sort\n", file);
+  fputs ("           for this listing. The index shows the location of\n", file);
+  fputs ("	   the function in the gprof listing. If the index is\n", file);
+  fputs ("	   in parenthesis it shows where it would appear in\n", file);
+  fputs ("	   the gprof listing if it were to be printed.\n", file);
+}
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/gprof/fsf_callg_bl.c binutils-2004-q3d-uclibc/gprof/fsf_callg_bl.c
--- binutils-2004-q3d-pristine/gprof/fsf_callg_bl.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/gprof/fsf_callg_bl.c	2005-02-24 16:30:24.000000000 +0200
@@ -0,0 +1,95 @@
+/* ==> Do not modify this file!!  It is created automatically
+   from fsf_callg_bl.m using the gen-c-prog.awk script.  <== */
+
+#include <stdio.h>
+#include "ansidecl.h"
+
+void  fsf_callg_blurb (FILE *);
+void
+fsf_callg_blurb (file)
+     FILE *file;
+{
+  fputs ("\n", file);
+  fputs (" This table describes the call tree of the program, and was sorted by\n", file);
+  fputs (" the total amount of time spent in each function and its children.\n", file);
+  fputs ("\n", file);
+  fputs (" Each entry in this table consists of several lines.  The line with the\n", file);
+  fputs (" index number at the left hand margin lists the current function.\n", file);
+  fputs (" The lines above it list the functions that called this function,\n", file);
+  fputs (" and the lines below it list the functions this one called.\n", file);
+  fputs (" This line lists:\n", file);
+  fputs ("     index	A unique number given to each element of the table.\n", file);
+  fputs ("		Index numbers are sorted numerically.\n", file);
+  fputs ("		The index number is printed next to every function name so\n", file);
+  fputs ("		it is easier to look up where the function in the table.\n", file);
+  fputs ("\n", file);
+  fputs ("     % time	This is the percentage of the `total' time that was spent\n", file);
+  fputs ("		in this function and its children.  Note that due to\n", file);
+  fputs ("		different viewpoints, functions excluded by options, etc,\n", file);
+  fputs ("		these numbers will NOT add up to 100%.\n", file);
+  fputs ("\n", file);
+  fputs ("     self	This is the total amount of time spent in this function.\n", file);
+  fputs ("\n", file);
+  fputs ("     children	This is the total amount of time propagated into this\n", file);
+  fputs ("		function by its children.\n", file);
+  fputs ("\n", file);
+  fputs ("     called	This is the number of times the function was called.\n", file);
+  fputs ("		If the function called itself recursively, the number\n", file);
+  fputs ("		only includes non-recursive calls, and is followed by\n", file);
+  fputs ("		a `+' and the number of recursive calls.\n", file);
+  fputs ("\n", file);
+  fputs ("     name	The name of the current function.  The index number is\n", file);
+  fputs ("		printed after it.  If the function is a member of a\n", file);
+  fputs ("		cycle, the cycle number is printed between the\n", file);
+  fputs ("		function's name and the index number.\n", file);
+  fputs ("\n", file);
+  fputs ("\n", file);
+  fputs (" For the function's parents, the fields have the following meanings:\n", file);
+  fputs ("\n", file);
+  fputs ("     self	This is the amount of time that was propagated directly\n", file);
+  fputs ("		from the function into this parent.\n", file);
+  fputs ("\n", file);
+  fputs ("     children	This is the amount of time that was propagated from\n", file);
+  fputs ("		the function's children into this parent.\n", file);
+  fputs ("\n", file);
+  fputs ("     called	This is the number of times this parent called the\n", file);
+  fputs ("		function `/' the total number of times the function\n", file);
+  fputs ("		was called.  Recursive calls to the function are not\n", file);
+  fputs ("		included in the number after the `/'.\n", file);
+  fputs ("\n", file);
+  fputs ("     name	This is the name of the parent.  The parent's index\n", file);
+  fputs ("		number is printed after it.  If the parent is a\n", file);
+  fputs ("		member of a cycle, the cycle number is printed between\n", file);
+  fputs ("		the name and the index number.\n", file);
+  fputs ("\n", file);
+  fputs (" If the parents of the function cannot be determined, the word\n", file);
+  fputs (" `<spontaneous>' is printed in the `name' field, and all the other\n", file);
+  fputs (" fields are blank.\n", file);
+  fputs ("\n", file);
+  fputs (" For the function's children, the fields have the following meanings:\n", file);
+  fputs ("\n", file);
+  fputs ("     self	This is the amount of time that was propagated directly\n", file);
+  fputs ("		from the child into the function.\n", file);
+  fputs ("\n", file);
+  fputs ("     children	This is the amount of time that was propagated from the\n", file);
+  fputs ("		child's children to the function.\n", file);
+  fputs ("\n", file);
+  fputs ("     called	This is the number of times the function called\n", file);
+  fputs ("		this child `/' the total number of times the child\n", file);
+  fputs ("		was called.  Recursive calls by the child are not\n", file);
+  fputs ("		listed in the number after the `/'.\n", file);
+  fputs ("\n", file);
+  fputs ("     name	This is the name of the child.  The child's index\n", file);
+  fputs ("		number is printed after it.  If the child is a\n", file);
+  fputs ("		member of a cycle, the cycle number is printed\n", file);
+  fputs ("		between the name and the index number.\n", file);
+  fputs ("\n", file);
+  fputs (" If there are any cycles (circles) in the call graph, there is an\n", file);
+  fputs (" entry for the cycle-as-a-whole.  This entry shows who called the\n", file);
+  fputs (" cycle (as parents) and the members of the cycle (as children.)\n", file);
+  fputs (" The `+' recursive calls entry shows the number of function calls that\n", file);
+  fputs (" were internal to the cycle, and the calls entry for each member shows,\n", file);
+  fputs (" for that member, how many times it was called from other members of\n", file);
+  fputs (" the cycle.\n", file);
+  fputs ("\n", file);
+}
Binary files binutils-2004-q3d-pristine/gprof/po/da.gmo and binutils-2004-q3d-uclibc/gprof/po/da.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/de.gmo and binutils-2004-q3d-uclibc/gprof/po/de.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/es.gmo and binutils-2004-q3d-uclibc/gprof/po/es.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/fr.gmo and binutils-2004-q3d-uclibc/gprof/po/fr.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/id.gmo and binutils-2004-q3d-uclibc/gprof/po/id.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/pt_BR.gmo and binutils-2004-q3d-uclibc/gprof/po/pt_BR.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/sv.gmo and binutils-2004-q3d-uclibc/gprof/po/sv.gmo differ
Binary files binutils-2004-q3d-pristine/gprof/po/tr.gmo and binutils-2004-q3d-uclibc/gprof/po/tr.gmo differ
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/intl/config.cache binutils-2004-q3d-uclibc/intl/config.cache
--- binutils-2004-q3d-pristine/intl/config.cache	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/intl/config.cache	2005-02-25 15:56:39.000000000 +0200
@@ -0,0 +1,63 @@
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+ac_cv_c_const=${ac_cv_c_const=yes}
+ac_cv_c_inline=${ac_cv_c_inline=inline}
+ac_cv_func___argz_count=${ac_cv_func___argz_count=yes}
+ac_cv_func___argz_next=${ac_cv_func___argz_next=yes}
+ac_cv_func___argz_stringify=${ac_cv_func___argz_stringify=yes}
+ac_cv_func_alloca_works=${ac_cv_func_alloca_works=yes}
+ac_cv_func_dcgettext=${ac_cv_func_dcgettext=yes}
+ac_cv_func_getcwd=${ac_cv_func_getcwd=yes}
+ac_cv_func_getpagesize=${ac_cv_func_getpagesize=yes}
+ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}
+ac_cv_func_munmap=${ac_cv_func_munmap=yes}
+ac_cv_func_putenv=${ac_cv_func_putenv=yes}
+ac_cv_func_setenv=${ac_cv_func_setenv=yes}
+ac_cv_func_setlocale=${ac_cv_func_setlocale=yes}
+ac_cv_func_stpcpy=${ac_cv_func_stpcpy=yes}
+ac_cv_func_strcasecmp=${ac_cv_func_strcasecmp=yes}
+ac_cv_func_strchr=${ac_cv_func_strchr=yes}
+ac_cv_header_alloca_h=${ac_cv_header_alloca_h=yes}
+ac_cv_header_argz_h=${ac_cv_header_argz_h=yes}
+ac_cv_header_libintl_h=${ac_cv_header_libintl_h=yes}
+ac_cv_header_limits_h=${ac_cv_header_limits_h=yes}
+ac_cv_header_locale_h=${ac_cv_header_locale_h=yes}
+ac_cv_header_malloc_h=${ac_cv_header_malloc_h=yes}
+ac_cv_header_nl_types_h=${ac_cv_header_nl_types_h=yes}
+ac_cv_header_stdc=${ac_cv_header_stdc=yes}
+ac_cv_header_string_h=${ac_cv_header_string_h=yes}
+ac_cv_header_sys_param_h=${ac_cv_header_sys_param_h=yes}
+ac_cv_header_unistd_h=${ac_cv_header_unistd_h=yes}
+ac_cv_header_values_h=${ac_cv_header_values_h=yes}
+ac_cv_path_GMSGFMT=${ac_cv_path_GMSGFMT=/scratchbox/tools/bin/msgfmt}
+ac_cv_path_MSGFMT=${ac_cv_path_MSGFMT=/scratchbox/tools/bin/msgfmt}
+ac_cv_path_XGETTEXT=${ac_cv_path_XGETTEXT=/scratchbox/tools/bin/xgettext}
+ac_cv_path_install=${ac_cv_path_install='/scratchbox/tools/bin/install -c'}
+ac_cv_prog_CC=${ac_cv_prog_CC=gcc}
+ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'}
+ac_cv_prog_RANLIB=${ac_cv_prog_RANLIB=i686-pc-linux-gnu-ranlib}
+ac_cv_prog_cc_cross=${ac_cv_prog_cc_cross=no}
+ac_cv_prog_cc_g=${ac_cv_prog_cc_g=yes}
+ac_cv_prog_cc_works=${ac_cv_prog_cc_works=yes}
+ac_cv_prog_gcc=${ac_cv_prog_gcc=yes}
+ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set=yes}
+ac_cv_type_off_t=${ac_cv_type_off_t=yes}
+ac_cv_type_size_t=${ac_cv_type_size_t=yes}
+am_cv_val_LC_MESSAGES=${am_cv_val_LC_MESSAGES=yes}
+gt_cv_func_gettext_libc=${gt_cv_func_gettext_libc=yes}
+nls_cv_force_use_gnu_gettext=${nls_cv_force_use_gnu_gettext=no}
+nls_cv_header_intl=${nls_cv_header_intl=}
+nls_cv_header_libgt=${nls_cv_header_libgt=}
+nls_cv_use_gnu_gettext=${nls_cv_use_gnu_gettext=no}
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/intl/config.h binutils-2004-q3d-uclibc/intl/config.h
--- binutils-2004-q3d-pristine/intl/config.h	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/intl/config.h	2005-02-24 10:16:56.000000000 +0200
@@ -0,0 +1,129 @@
+/* config.h.  Generated automatically by configure.  */
+/* config.in.  Generated automatically from configure.in by autoheader.  */
+
+/* Define if using alloca.c.  */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if you have alloca, as a function or macro.  */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have a working `mmap' system call.  */
+#define HAVE_MMAP 1
+
+/* Define as __inline if that's what the C compiler calls it.  */
+/* #undef inline */
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+/* #undef off_t */
+
+/* Define if you need to in order for stat and other things to work.  */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define to 1 if NLS is requested.  */
+#define ENABLE_NLS 1
+
+/* Define as 1 if you have catgets and don't want to use GNU gettext.  */
+/* #undef HAVE_CATGETS */
+
+/* Define as 1 if you have gettext and don't want to use GNU gettext.  */
+#define HAVE_GETTEXT 1
+
+/* Define as 1 if you have the stpcpy function.  */
+#define HAVE_STPCPY 1
+
+/* Define if your locale.h file contains LC_MESSAGES.  */
+#define HAVE_LC_MESSAGES 1
+
+/* Define if you have the __argz_count function.  */
+#define HAVE___ARGZ_COUNT 1
+
+/* Define if you have the __argz_next function.  */
+#define HAVE___ARGZ_NEXT 1
+
+/* Define if you have the __argz_stringify function.  */
+#define HAVE___ARGZ_STRINGIFY 1
+
+/* Define if you have the dcgettext function.  */
+#define HAVE_DCGETTEXT 1
+
+/* Define if you have the getcwd function.  */
+#define HAVE_GETCWD 1
+
+/* Define if you have the getpagesize function.  */
+#define HAVE_GETPAGESIZE 1
+
+/* Define if you have the munmap function.  */
+#define HAVE_MUNMAP 1
+
+/* Define if you have the putenv function.  */
+#define HAVE_PUTENV 1
+
+/* Define if you have the setenv function.  */
+#define HAVE_SETENV 1
+
+/* Define if you have the setlocale function.  */
+#define HAVE_SETLOCALE 1
+
+/* Define if you have the stpcpy function.  */
+#define HAVE_STPCPY 1
+
+/* Define if you have the strcasecmp function.  */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strchr function.  */
+#define HAVE_STRCHR 1
+
+/* Define if you have the <argz.h> header file.  */
+#define HAVE_ARGZ_H 1
+
+/* Define if you have the <limits.h> header file.  */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file.  */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <malloc.h> header file.  */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <nl_types.h> header file.  */
+#define HAVE_NL_TYPES_H 1
+
+/* Define if you have the <string.h> header file.  */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/param.h> header file.  */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the <values.h> header file.  */
+#define HAVE_VALUES_H 1
+
+/* Define if you have the i library (-li).  */
+/* #undef HAVE_LIBI */
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/intl/stamp-h binutils-2004-q3d-uclibc/intl/stamp-h
--- binutils-2004-q3d-pristine/intl/stamp-h	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/intl/stamp-h	2005-02-25 15:56:39.000000000 +0200
@@ -0,0 +1 @@
+timestamp
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ld/configure binutils-2004-q3d-uclibc/ld/configure
--- binutils-2004-q3d-pristine/ld/configure	2004-09-17 09:15:38.000000000 +0300
+++ binutils-2004-q3d-uclibc/ld/configure	2005-02-24 09:29:58.000000000 +0200
@@ -1579,6 +1579,11 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ld/configure.tgt binutils-2004-q3d-uclibc/ld/configure.tgt
--- binutils-2004-q3d-pristine/ld/configure.tgt	2004-11-04 17:54:48.000000000 +0200
+++ binutils-2004-q3d-uclibc/ld/configure.tgt	2005-02-24 09:31:47.000000000 +0200
@@ -1,4 +1,4 @@
-# This is the linker target specific file.  This is invoked by the
+	# This is the linker target specific file.  This is invoked by the
 # autoconf generated configure script.  Putting it in a separate shell
 # file lets us skip running autoconf when modifying target specific
 # information.
@@ -32,6 +32,7 @@
 			targ_extra_libpath=$targ_extra_emuls ;;
 cris-*-linux-gnu* | cris-*-linux-gnu*)
 			targ_emul=crislinux ;;
+cris-*-linux-uclibc*) targ_emul=crislinux ;;
 cris-*-* | crisv32-*-*)	targ_emul=criself
 			targ_extra_emuls="crisaout crislinux"
 			targ_extra_libpath=$targ_extra_emuls ;;
@@ -62,14 +63,16 @@
 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
 			tdir_sun4=sparc-sun-sunos4
 			;;
-sparc64-*-linux-gnu*)	targ_emul=elf64_sparc
+sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)	 \
+			targ_emul=elf64_sparc
 			targ_extra_emuls="elf32_sparc sparclinux sun4"
 			targ_extra_libpath=elf32_sparc
 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
 			tdir_sparclinux=${tdir_elf32_sparc}aout
 			tdir_sun4=sparc-sun-sunos4
 			;;
-sparc*-*-linux-gnu*)	targ_emul=elf32_sparc
+sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \
+			targ_emul=elf32_sparc
 			targ_extra_emuls="sparclinux elf64_sparc sun4"
 			targ_extra_libpath=elf64_sparc
 			tdir_sparclinux=${targ_alias}aout
@@ -121,7 +124,9 @@
 m32r*le-*-elf*)         targ_emul=m32rlelf ;;
 m32r*-*-elf*)           targ_emul=m32relf ;;
 m32r*le-*-linux-gnu*)   targ_emul=m32rlelf_linux ;;
+m32r*le-*-linux-uclibc*) targ_emul=m32rlelf_linux ;;
 m32r*-*-linux-gnu*)     targ_emul=m32relf_linux ;;
+m32r*-*-linux-uclibc*)  targ_emul=m32relf_linux ;;
 m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf 
 			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
 m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf 
@@ -131,7 +136,7 @@
 m68*-ericsson-ose)	targ_emul=sun3 ;;
 m68*-apple-aux*)	targ_emul=m68kaux ;;
 *-tandem-none)		targ_emul=st2000 ;;
-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
+i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
 i[3-7]86-*-nto-qnx*)	targ_emul=i386nto ;;
 i[3-7]86-*-vsta)	targ_emul=vsta ;;
 i[3-7]86-go32-rtems*)	targ_emul=i386go32 ;;
@@ -155,14 +160,16 @@
 			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
 			;;
 i[3-7]86-*-linux*oldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
-i[3-7]86-*-linux-gnu*)	targ_emul=elf_i386
+i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
+			targ_emul=elf_i386
 			targ_extra_emuls=i386linux
 			if test x${want64} = xtrue; then
 			  targ_extra_emuls="$targ_extra_emuls elf_x86_64"
 			fi
 			tdir_i386linux=${targ_alias}aout
 			;;
-x86_64-*-linux-gnu*)	targ_emul=elf_x86_64
+x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
+			targ_emul=elf_x86_64
 			targ_extra_emuls="elf_i386 i386linux"
 			targ_extra_libpath=elf_i386
 			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
@@ -262,10 +269,13 @@
 arm-*-kaos*)		targ_emul=armelf ;;
 arm9e-*-elf)		targ_emul=armelf ;;
 arm*b-*-linux-gnu*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
+arm*b-*-linux-uclibc*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
 arm*-*-linux-gnu*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
+arm*-*-linux-uclibc*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
 arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
 arm*-*-conix*)		targ_emul=armelf ;;
-thumb-*-linux-gnu* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
+thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
+			targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
 strongarm-*-coff)	targ_emul=armcoff ;;
 strongarm-*-elf)	targ_emul=armelf ;;
 strongarm-*-kaos*)	targ_emul=armelf ;;
@@ -369,7 +379,8 @@
 			targ_extra_emuls=m68kelf
 			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
 			;;
-m68k-*-linux-gnu*)	targ_emul=m68kelf
+m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
+			targ_emul=m68kelf
 			targ_extra_emuls=m68klinux
 			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
 			;;
@@ -386,9 +397,9 @@
 m68*-*-psos*)		targ_emul=m68kpsos ;;
 m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
 m68*-*-rtems*)		targ_emul=m68kelf ;;
-hppa*64*-*-linux-gnu*)	targ_emul=hppa64linux ;;
+hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
 hppa*64*-*)		targ_emul=elf64hppa ;;
-hppa*-*-linux-gnu*)	targ_emul=hppalinux ;;
+hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)	targ_emul=hppalinux ;;
 hppa*-*-*elf*)		targ_emul=hppaelf ;;
 hppa*-*-lites*)		targ_emul=hppaelf ;;
 hppa*-*-netbsd*)	targ_emul=hppanbsd ;;
@@ -401,6 +412,7 @@
 			targ_emul=vaxnbsd
 			targ_extra_emuls=elf32vax ;;
 vax-*-linux-gnu*)	targ_emul=elf32vax ;;
+vax-*-linux-uclibc*)	targ_emul=elf32vax ;;
 mips*-*-pe)		targ_emul=mipspe ;
 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
 mips*-dec-ultrix*)	targ_emul=mipslit ;;
@@ -434,16 +446,16 @@
 mips*-*-vxworks*)	targ_emul=elf32ebmip
 		        targ_extra_emuls="elf32elmip" ;;
 mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
-mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32
+mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*)	targ_emul=elf32ltsmipn32
 			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
 			;;
-mips64*-*-linux-gnu*)	targ_emul=elf32btsmipn32
+mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*)	targ_emul=elf32btsmipn32
 			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
 			;;
-mips*el-*-linux-gnu*)	targ_emul=elf32ltsmip
+mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*)	targ_emul=elf32ltsmip
 			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
 			;;
-mips*-*-linux-gnu*)	targ_emul=elf32btsmip
+mips*-*-linux-gnu* | mips*-*-linux-uclibc*)	targ_emul=elf32btsmip
 			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
 			;;
 mips*-*-lnews*)		targ_emul=mipslnews ;;
@@ -466,6 +478,10 @@
 alpha*-*-linux-gnu*)	targ_emul=elf64alpha targ_extra_emuls=alpha
 			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
 			;;
+alpha*-*-linux-uclibc*)	targ_emul=elf64alpha targ_extra_emuls=alpha
+			# The following needs to be checked...
+			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
+			;;
 alpha*-*-osf*)		targ_emul=alpha ;;
 alpha*-*-gnu*)		targ_emul=elf64alpha ;;
 alpha*-*-netware*)	targ_emul=alpha ;;
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ld/ldgram.c binutils-2004-q3d-uclibc/ld/ldgram.c
--- binutils-2004-q3d-pristine/ld/ldgram.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/ld/ldgram.c	2005-02-24 10:35:21.000000000 +0200
@@ -0,0 +1,3800 @@
+/* A Bison parser, made by GNU Bison 1.875a.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     INT = 258,
+     NAME = 259,
+     LNAME = 260,
+     OREQ = 261,
+     ANDEQ = 262,
+     RSHIFTEQ = 263,
+     LSHIFTEQ = 264,
+     DIVEQ = 265,
+     MULTEQ = 266,
+     MINUSEQ = 267,
+     PLUSEQ = 268,
+     OROR = 269,
+     ANDAND = 270,
+     NE = 271,
+     EQ = 272,
+     GE = 273,
+     LE = 274,
+     RSHIFT = 275,
+     LSHIFT = 276,
+     UNARY = 277,
+     END = 278,
+     ALIGN_K = 279,
+     BLOCK = 280,
+     BIND = 281,
+     QUAD = 282,
+     SQUAD = 283,
+     LONG = 284,
+     SHORT = 285,
+     BYTE = 286,
+     SECTIONS = 287,
+     PHDRS = 288,
+     DATA_SEGMENT_ALIGN = 289,
+     DATA_SEGMENT_RELRO_END = 290,
+     DATA_SEGMENT_END = 291,
+     SORT_BY_NAME = 292,
+     SORT_BY_ALIGNMENT = 293,
+     SIZEOF_HEADERS = 294,
+     OUTPUT_FORMAT = 295,
+     FORCE_COMMON_ALLOCATION = 296,
+     OUTPUT_ARCH = 297,
+     INHIBIT_COMMON_ALLOCATION = 298,
+     SEGMENT_START = 299,
+     INCLUDE = 300,
+     MEMORY = 301,
+     DEFSYMEND = 302,
+     NOLOAD = 303,
+     DSECT = 304,
+     COPY = 305,
+     INFO = 306,
+     OVERLAY = 307,
+     DEFINED = 308,
+     TARGET_K = 309,
+     SEARCH_DIR = 310,
+     MAP = 311,
+     ENTRY = 312,
+     NEXT = 313,
+     SIZEOF = 314,
+     ADDR = 315,
+     LOADADDR = 316,
+     MAX_K = 317,
+     MIN_K = 318,
+     STARTUP = 319,
+     HLL = 320,
+     SYSLIB = 321,
+     FLOAT = 322,
+     NOFLOAT = 323,
+     NOCROSSREFS = 324,
+     ORIGIN = 325,
+     FILL = 326,
+     LENGTH = 327,
+     CREATE_OBJECT_SYMBOLS = 328,
+     INPUT = 329,
+     GROUP = 330,
+     OUTPUT = 331,
+     CONSTRUCTORS = 332,
+     ALIGNMOD = 333,
+     AT = 334,
+     SUBALIGN = 335,
+     PROVIDE = 336,
+     CHIP = 337,
+     LIST = 338,
+     SECT = 339,
+     ABSOLUTE = 340,
+     LOAD = 341,
+     NEWLINE = 342,
+     ENDWORD = 343,
+     ORDER = 344,
+     NAMEWORD = 345,
+     ASSERT_K = 346,
+     FORMAT = 347,
+     PUBLIC = 348,
+     BASE = 349,
+     ALIAS = 350,
+     TRUNCATE = 351,
+     REL = 352,
+     INPUT_SCRIPT = 353,
+     INPUT_MRI_SCRIPT = 354,
+     INPUT_DEFSYM = 355,
+     CASE = 356,
+     EXTERN = 357,
+     START = 358,
+     VERS_TAG = 359,
+     VERS_IDENTIFIER = 360,
+     GLOBAL = 361,
+     LOCAL = 362,
+     VERSIONK = 363,
+     INPUT_VERSION_SCRIPT = 364,
+     KEEP = 365,
+     ONLY_IF_RO = 366,
+     ONLY_IF_RW = 367,
+     EXCLUDE_FILE = 368
+   };
+#endif
+#define INT 258
+#define NAME 259
+#define LNAME 260
+#define OREQ 261
+#define ANDEQ 262
+#define RSHIFTEQ 263
+#define LSHIFTEQ 264
+#define DIVEQ 265
+#define MULTEQ 266
+#define MINUSEQ 267
+#define PLUSEQ 268
+#define OROR 269
+#define ANDAND 270
+#define NE 271
+#define EQ 272
+#define GE 273
+#define LE 274
+#define RSHIFT 275
+#define LSHIFT 276
+#define UNARY 277
+#define END 278
+#define ALIGN_K 279
+#define BLOCK 280
+#define BIND 281
+#define QUAD 282
+#define SQUAD 283
+#define LONG 284
+#define SHORT 285
+#define BYTE 286
+#define SECTIONS 287
+#define PHDRS 288
+#define DATA_SEGMENT_ALIGN 289
+#define DATA_SEGMENT_RELRO_END 290
+#define DATA_SEGMENT_END 291
+#define SORT_BY_NAME 292
+#define SORT_BY_ALIGNMENT 293
+#define SIZEOF_HEADERS 294
+#define OUTPUT_FORMAT 295
+#define FORCE_COMMON_ALLOCATION 296
+#define OUTPUT_ARCH 297
+#define INHIBIT_COMMON_ALLOCATION 298
+#define SEGMENT_START 299
+#define INCLUDE 300
+#define MEMORY 301
+#define DEFSYMEND 302
+#define NOLOAD 303
+#define DSECT 304
+#define COPY 305
+#define INFO 306
+#define OVERLAY 307
+#define DEFINED 308
+#define TARGET_K 309
+#define SEARCH_DIR 310
+#define MAP 311
+#define ENTRY 312
+#define NEXT 313
+#define SIZEOF 314
+#define ADDR 315
+#define LOADADDR 316
+#define MAX_K 317
+#define MIN_K 318
+#define STARTUP 319
+#define HLL 320
+#define SYSLIB 321
+#define FLOAT 322
+#define NOFLOAT 323
+#define NOCROSSREFS 324
+#define ORIGIN 325
+#define FILL 326
+#define LENGTH 327
+#define CREATE_OBJECT_SYMBOLS 328
+#define INPUT 329
+#define GROUP 330
+#define OUTPUT 331
+#define CONSTRUCTORS 332
+#define ALIGNMOD 333
+#define AT 334
+#define SUBALIGN 335
+#define PROVIDE 336
+#define CHIP 337
+#define LIST 338
+#define SECT 339
+#define ABSOLUTE 340
+#define LOAD 341
+#define NEWLINE 342
+#define ENDWORD 343
+#define ORDER 344
+#define NAMEWORD 345
+#define ASSERT_K 346
+#define FORMAT 347
+#define PUBLIC 348
+#define BASE 349
+#define ALIAS 350
+#define TRUNCATE 351
+#define REL 352
+#define INPUT_SCRIPT 353
+#define INPUT_MRI_SCRIPT 354
+#define INPUT_DEFSYM 355
+#define CASE 356
+#define EXTERN 357
+#define START 358
+#define VERS_TAG 359
+#define VERS_IDENTIFIER 360
+#define GLOBAL 361
+#define LOCAL 362
+#define VERSIONK 363
+#define INPUT_VERSION_SCRIPT 364
+#define KEEP 365
+#define ONLY_IF_RO 366
+#define ONLY_IF_RW 367
+#define EXCLUDE_FILE 368
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 22 "ldgram.y"
+
+/*
+
+ */
+
+#define DONTDECLARE_MALLOC
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "bfdlink.h"
+#include "ld.h"
+#include "ldexp.h"
+#include "ldver.h"
+#include "ldlang.h"
+#include "ldfile.h"
+#include "ldemul.h"
+#include "ldmisc.h"
+#include "ldmain.h"
+#include "mri.h"
+#include "ldctor.h"
+#include "ldlex.h"
+
+#ifndef YYDEBUG
+#define YYDEBUG 1
+#endif
+
+static enum section_type sectype;
+
+lang_memory_region_type *region;
+
+bfd_boolean ldgram_want_filename = TRUE;
+FILE *saved_script_handle = NULL;
+bfd_boolean force_make_executable = FALSE;
+
+bfd_boolean ldgram_in_script = FALSE;
+bfd_boolean ldgram_had_equals = FALSE;
+bfd_boolean ldgram_had_keep = FALSE;
+char *ldgram_vers_current_lang = NULL;
+
+#define ERROR_NAME_MAX 20
+static char *error_names[ERROR_NAME_MAX];
+static int error_index;
+#define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
+#define POP_ERROR()   error_index--;
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 67 "ldgram.y"
+typedef union YYSTYPE {
+  bfd_vma integer;
+  struct big_int
+    {
+      bfd_vma integer;
+      char *str;
+    } bigint;
+  fill_type *fill;
+  char *name;
+  const char *cname;
+  struct wildcard_spec wildcard;
+  struct wildcard_list *wildcard_list;
+  struct name_list *name_list;
+  int token;
+  union etree_union *etree;
+  struct phdr_info
+    {
+      bfd_boolean filehdr;
+      bfd_boolean phdrs;
+      union etree_union *at;
+      union etree_union *flags;
+    } phdr;
+  struct lang_nocrossref *nocrossref;
+  struct lang_output_section_phdr_list *section_phdr;
+  struct bfd_elf_version_deps *deflist;
+  struct bfd_elf_version_expr *versyms;
+  struct bfd_elf_version_tree *versnode;
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+#line 377 "y.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 214 of yacc.c.  */
+#line 389 "y.tab.c"
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  register YYSIZE_T yyi;		\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  14
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   1633
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  137
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  110
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  313
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  666
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   368
+
+#define YYTRANSLATE(YYX) 						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   135,     2,     2,     2,    34,    21,     2,
+      37,   132,    32,    30,   130,    31,     2,    33,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    16,   131,
+      24,     6,    25,    15,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   133,     2,   134,    20,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,    53,    19,    54,   136,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     7,     8,     9,    10,    11,    12,    13,    14,    17,
+      18,    22,    23,    26,    27,    28,    29,    35,    36,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   129
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short yyprhs[] =
+{
+       0,     0,     3,     6,     9,    12,    15,    17,    18,    23,
+      24,    27,    31,    32,    35,    40,    42,    44,    47,    49,
+      54,    59,    63,    66,    71,    75,    80,    85,    90,    95,
+     100,   103,   106,   109,   114,   119,   122,   125,   128,   131,
+     132,   138,   141,   142,   146,   149,   150,   152,   156,   158,
+     162,   163,   165,   169,   171,   174,   178,   179,   182,   185,
+     186,   188,   190,   192,   194,   196,   198,   200,   202,   204,
+     206,   211,   216,   221,   226,   235,   240,   242,   244,   249,
+     250,   256,   261,   262,   268,   273,   278,   280,   284,   287,
+     289,   293,   296,   301,   304,   307,   308,   313,   316,   317,
+     325,   327,   329,   331,   333,   339,   344,   349,   357,   365,
+     373,   381,   390,   393,   395,   399,   401,   403,   407,   412,
+     414,   415,   421,   424,   426,   428,   430,   435,   437,   442,
+     447,   450,   452,   453,   455,   457,   459,   461,   463,   465,
+     467,   470,   471,   473,   475,   477,   479,   481,   483,   485,
+     487,   489,   491,   495,   499,   506,   508,   509,   515,   518,
+     522,   523,   524,   532,   536,   540,   541,   545,   547,   550,
+     552,   555,   560,   565,   569,   573,   575,   580,   584,   585,
+     587,   589,   590,   593,   597,   598,   601,   604,   608,   613,
+     616,   619,   622,   626,   630,   634,   638,   642,   646,   650,
+     654,   658,   662,   666,   670,   674,   678,   682,   686,   692,
+     696,   700,   705,   707,   709,   714,   719,   724,   729,   734,
+     741,   748,   755,   760,   767,   772,   774,   781,   788,   795,
+     799,   800,   805,   806,   811,   812,   814,   816,   817,   818,
+     819,   820,   821,   822,   841,   842,   843,   844,   845,   846,
+     865,   866,   867,   875,   877,   879,   881,   883,   885,   889,
+     890,   893,   897,   900,   907,   918,   921,   923,   924,   926,
+     929,   930,   931,   935,   936,   937,   938,   939,   951,   956,
+     957,   960,   961,   962,   969,   971,   972,   976,   982,   983,
+     987,   988,   991,   992,   998,  1000,  1003,  1008,  1014,  1021,
+    1023,  1026,  1027,  1030,  1035,  1040,  1049,  1051,  1055,  1056,
+    1066,  1067,  1075,  1076
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short yyrhs[] =
+{
+     138,     0,    -1,   114,   152,    -1,   115,   142,    -1,   125,
+     235,    -1,   116,   140,    -1,     4,    -1,    -1,   141,     4,
+       6,   198,    -1,    -1,   143,   144,    -1,   144,   145,   103,
+      -1,    -1,    98,   198,    -1,    98,   198,   130,   198,    -1,
+       4,    -1,    99,    -1,   105,   147,    -1,   104,    -1,   109,
+       4,     6,   198,    -1,   109,     4,   130,   198,    -1,   109,
+       4,   198,    -1,   108,     4,    -1,   100,     4,   130,   198,
+      -1,   100,     4,   198,    -1,   100,     4,     6,   198,    -1,
+      38,     4,     6,   198,    -1,    38,     4,   130,   198,    -1,
+      94,     4,     6,   198,    -1,    94,     4,   130,   198,    -1,
+     101,   149,    -1,   102,   148,    -1,   106,     4,    -1,   111,
+       4,   130,     4,    -1,   111,     4,   130,     3,    -1,   110,
+     198,    -1,   112,     3,    -1,   117,   150,    -1,   118,   151,
+      -1,    -1,    61,   139,   146,   144,    36,    -1,   119,     4,
+      -1,    -1,   147,   130,     4,    -1,   147,     4,    -1,    -1,
+       4,    -1,   148,   130,     4,    -1,     4,    -1,   149,   130,
+       4,    -1,    -1,     4,    -1,   150,   130,     4,    -1,     4,
+      -1,   151,     4,    -1,   151,   130,     4,    -1,    -1,   153,
+     154,    -1,   154,   155,    -1,    -1,   180,    -1,   159,    -1,
+     227,    -1,   189,    -1,   190,    -1,   192,    -1,   194,    -1,
+     161,    -1,   237,    -1,   131,    -1,    70,    37,     4,   132,
+      -1,    71,    37,   139,   132,    -1,    92,    37,   139,   132,
+      -1,    56,    37,     4,   132,    -1,    56,    37,     4,   130,
+       4,   130,     4,   132,    -1,    58,    37,     4,   132,    -1,
+      57,    -1,    59,    -1,    90,    37,   158,   132,    -1,    -1,
+      91,   156,    37,   158,   132,    -1,    72,    37,   139,   132,
+      -1,    -1,    61,   139,   157,   154,    36,    -1,    85,    37,
+     195,   132,    -1,   118,    37,   151,   132,    -1,     4,    -1,
+     158,   130,     4,    -1,   158,     4,    -1,     5,    -1,   158,
+     130,     5,    -1,   158,     5,    -1,    46,    53,   160,    54,
+      -1,   160,   203,    -1,   160,   161,    -1,    -1,    73,    37,
+       4,   132,    -1,   178,   177,    -1,    -1,   107,   162,    37,
+     198,   130,     4,   132,    -1,     4,    -1,    32,    -1,    15,
+      -1,   163,    -1,   129,    37,   165,   132,   163,    -1,    51,
+      37,   163,   132,    -1,    52,    37,   163,   132,    -1,    51,
+      37,    52,    37,   163,   132,   132,    -1,    51,    37,    51,
+      37,   163,   132,   132,    -1,    52,    37,    51,    37,   163,
+     132,   132,    -1,    52,    37,    52,    37,   163,   132,   132,
+      -1,    51,    37,   129,    37,   165,   132,   163,   132,    -1,
+     165,   163,    -1,   163,    -1,   166,   179,   164,    -1,   164,
+      -1,     4,    -1,   133,   166,   134,    -1,   164,    37,   166,
+     132,    -1,   167,    -1,    -1,   126,    37,   169,   167,   132,
+      -1,   178,   177,    -1,    89,    -1,   131,    -1,    93,    -1,
+      51,    37,    93,   132,    -1,   168,    -1,   173,    37,   196,
+     132,    -1,    87,    37,   174,   132,    -1,   171,   170,    -1,
+     170,    -1,    -1,   171,    -1,    41,    -1,    42,    -1,    43,
+      -1,    44,    -1,    45,    -1,   196,    -1,     6,   174,    -1,
+      -1,    14,    -1,    13,    -1,    12,    -1,    11,    -1,    10,
+      -1,     9,    -1,     8,    -1,     7,    -1,   131,    -1,   130,
+      -1,     4,     6,   196,    -1,     4,   176,   196,    -1,    97,
+      37,     4,     6,   196,   132,    -1,   130,    -1,    -1,    62,
+      53,   182,   181,    54,    -1,   181,   182,    -1,   181,   130,
+     182,    -1,    -1,    -1,     4,   183,   186,    16,   184,   179,
+     185,    -1,    86,     6,   196,    -1,    88,     6,   196,    -1,
+      -1,    37,   187,   132,    -1,   188,    -1,   187,   188,    -1,
+       4,    -1,   135,     4,    -1,    80,    37,   139,   132,    -1,
+      81,    37,   191,   132,    -1,    81,    37,   132,    -1,   191,
+     179,   139,    -1,   139,    -1,    82,    37,   193,   132,    -1,
+     193,   179,   139,    -1,    -1,    83,    -1,    84,    -1,    -1,
+       4,   195,    -1,     4,   130,   195,    -1,    -1,   197,   198,
+      -1,    31,   198,    -1,    37,   198,   132,    -1,    74,    37,
+     198,   132,    -1,   135,   198,    -1,    30,   198,    -1,   136,
+     198,    -1,   198,    32,   198,    -1,   198,    33,   198,    -1,
+     198,    34,   198,    -1,   198,    30,   198,    -1,   198,    31,
+     198,    -1,   198,    29,   198,    -1,   198,    28,   198,    -1,
+     198,    23,   198,    -1,   198,    22,   198,    -1,   198,    27,
+     198,    -1,   198,    26,   198,    -1,   198,    24,   198,    -1,
+     198,    25,   198,    -1,   198,    21,   198,    -1,   198,    20,
+     198,    -1,   198,    19,   198,    -1,   198,    15,   198,    16,
+     198,    -1,   198,    18,   198,    -1,   198,    17,   198,    -1,
+      69,    37,     4,   132,    -1,     3,    -1,    55,    -1,    75,
+      37,     4,   132,    -1,    76,    37,     4,   132,    -1,    77,
+      37,     4,   132,    -1,   101,    37,   198,   132,    -1,    38,
+      37,   198,   132,    -1,    38,    37,   198,   130,   198,   132,
+      -1,    48,    37,   198,   130,   198,   132,    -1,    49,    37,
+     198,   130,   198,   132,    -1,    50,    37,   198,   132,    -1,
+      60,    37,     4,   130,   198,   132,    -1,    39,    37,   198,
+     132,    -1,     4,    -1,    78,    37,   198,   130,   198,   132,
+      -1,    79,    37,   198,   130,   198,   132,    -1,   107,    37,
+     198,   130,     4,   132,    -1,    95,    25,     4,    -1,    -1,
+      95,    37,   198,   132,    -1,    -1,    96,    37,   198,   132,
+      -1,    -1,   127,    -1,   128,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,     4,   204,   218,   200,   201,   205,   202,    53,
+     206,   172,    54,   207,   221,   199,   222,   175,   208,   179,
+      -1,    -1,    -1,    -1,    -1,    -1,    68,   209,   219,   220,
+     200,   201,   210,    53,   211,   223,    54,   212,   221,   199,
+     222,   175,   213,   179,    -1,    -1,    -1,    91,   214,   218,
+     215,    53,   160,    54,    -1,    64,    -1,    65,    -1,    66,
+      -1,    67,    -1,    68,    -1,    37,   216,   132,    -1,    -1,
+      37,   132,    -1,   198,   217,    16,    -1,   217,    16,    -1,
+      40,    37,   198,   132,   217,    16,    -1,    40,    37,   198,
+     132,    39,    37,   198,   132,   217,    16,    -1,   198,    16,
+      -1,    16,    -1,    -1,    85,    -1,    25,     4,    -1,    -1,
+      -1,   222,    16,     4,    -1,    -1,    -1,    -1,    -1,   223,
+       4,   224,    53,   172,    54,   225,   222,   175,   226,   179,
+      -1,    47,    53,   228,    54,    -1,    -1,   228,   229,    -1,
+      -1,    -1,     4,   230,   232,   233,   231,   131,    -1,   198,
+      -1,    -1,     4,   234,   233,    -1,    95,    37,   198,   132,
+     233,    -1,    -1,    37,   198,   132,    -1,    -1,   236,   239,
+      -1,    -1,   238,   124,    53,   239,    54,    -1,   240,    -1,
+     239,   240,    -1,    53,   242,    54,   131,    -1,   120,    53,
+     242,    54,   131,    -1,   120,    53,   242,    54,   241,   131,
+      -1,   120,    -1,   241,   120,    -1,    -1,   243,   131,    -1,
+     122,    16,   243,   131,    -1,   123,    16,   243,   131,    -1,
+     122,    16,   243,   131,   123,    16,   243,   131,    -1,   121,
+      -1,   243,   131,   121,    -1,    -1,   243,   131,   118,     4,
+      53,   244,   243,   246,    54,    -1,    -1,   118,     4,    53,
+     245,   243,   246,    54,    -1,    -1,   131,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short yyrline[] =
+{
+       0,   164,   164,   165,   166,   167,   171,   175,   175,   185,
+     185,   198,   199,   203,   204,   205,   208,   211,   212,   213,
+     215,   217,   219,   221,   223,   225,   227,   229,   231,   233,
+     235,   236,   237,   239,   241,   243,   245,   247,   248,   250,
+     249,   253,   255,   259,   260,   261,   265,   267,   271,   273,
+     278,   279,   280,   284,   286,   288,   293,   293,   304,   305,
+     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
+     321,   323,   325,   327,   330,   332,   334,   336,   338,   340,
+     339,   343,   346,   345,   349,   353,   357,   360,   363,   366,
+     369,   372,   378,   382,   383,   384,   388,   390,   391,   391,
+     399,   403,   407,   414,   420,   426,   432,   438,   444,   450,
+     456,   462,   471,   480,   491,   500,   511,   519,   523,   530,
+     532,   531,   538,   539,   543,   544,   549,   554,   555,   560,
+     567,   568,   571,   573,   577,   579,   581,   583,   585,   590,
+     600,   602,   606,   608,   610,   612,   614,   616,   618,   620,
+     625,   625,   630,   634,   642,   650,   650,   654,   658,   659,
+     660,   665,   664,   672,   680,   690,   691,   695,   696,   700,
+     702,   707,   712,   713,   718,   720,   726,   728,   730,   734,
+     736,   742,   745,   754,   765,   765,   771,   773,   775,   777,
+     779,   781,   784,   786,   788,   790,   792,   794,   796,   798,
+     800,   802,   804,   806,   808,   810,   812,   814,   816,   818,
+     820,   822,   824,   826,   829,   831,   833,   835,   837,   839,
+     841,   843,   845,   847,   856,   858,   860,   862,   864,   870,
+     871,   875,   876,   880,   881,   885,   886,   887,   890,   893,
+     896,   902,   904,   890,   911,   913,   915,   920,   922,   910,
+     932,   934,   932,   942,   943,   944,   945,   946,   950,   951,
+     952,   956,   957,   962,   963,   968,   969,   974,   975,   980,
+     982,   987,   990,  1003,  1007,  1012,  1014,  1005,  1022,  1025,
+    1027,  1031,  1032,  1031,  1041,  1086,  1089,  1101,  1110,  1113,
+    1122,  1122,  1136,  1136,  1146,  1147,  1151,  1155,  1159,  1166,
+    1170,  1178,  1181,  1185,  1189,  1193,  1200,  1204,  1209,  1208,
+    1219,  1218,  1230,  1232
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "INT", "NAME", "LNAME", "'='", "OREQ", 
+  "ANDEQ", "RSHIFTEQ", "LSHIFTEQ", "DIVEQ", "MULTEQ", "MINUSEQ", "PLUSEQ", 
+  "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'", 
+  "'>'", "GE", "LE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", 
+  "'%'", "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD", 
+  "SQUAD", "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", 
+  "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END", "DATA_SEGMENT_END", 
+  "SORT_BY_NAME", "SORT_BY_ALIGNMENT", "'{'", "'}'", "SIZEOF_HEADERS", 
+  "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION", "OUTPUT_ARCH", 
+  "INHIBIT_COMMON_ALLOCATION", "SEGMENT_START", "INCLUDE", "MEMORY", 
+  "DEFSYMEND", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY", "DEFINED", 
+  "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF", "ADDR", 
+  "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL", "SYSLIB", "FLOAT", 
+  "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH", 
+  "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS", 
+  "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", "CHIP", "LIST", "SECT", 
+  "ABSOLUTE", "LOAD", "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD", 
+  "ASSERT_K", "FORMAT", "PUBLIC", "BASE", "ALIAS", "TRUNCATE", "REL", 
+  "INPUT_SCRIPT", "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN", 
+  "START", "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK", 
+  "INPUT_VERSION_SCRIPT", "KEEP", "ONLY_IF_RO", "ONLY_IF_RW", 
+  "EXCLUDE_FILE", "','", "';'", "')'", "'['", "']'", "'!'", "'~'", 
+  "$accept", "file", "filename", "defsym_expr", "@1", "mri_script_file", 
+  "@2", "mri_script_lines", "mri_script_command", "@3", "ordernamelist", 
+  "mri_load_name_list", "mri_abs_name_list", "casesymlist", 
+  "extern_name_list", "script_file", "@4", "ifile_list", "ifile_p1", "@5", 
+  "@6", "input_list", "sections", "sec_or_group_p1", "statement_anywhere", 
+  "@7", "wildcard_name", "wildcard_spec", "exclude_name_list", 
+  "file_NAME_list", "input_section_spec_no_keep", "input_section_spec", 
+  "@8", "statement", "statement_list", "statement_list_opt", "length", 
+  "fill_exp", "fill_opt", "assign_op", "end", "assignment", "opt_comma", 
+  "memory", "memory_spec_list", "memory_spec", "@9", "origin_spec", 
+  "length_spec", "attributes_opt", "attributes_list", "attributes_string", 
+  "startup", "high_level_library", "high_level_library_NAME_list", 
+  "low_level_library", "low_level_library_NAME_list", 
+  "floating_point_support", "nocrossref_list", "mustbe_exp", "@10", "exp", 
+  "memspec_at_opt", "opt_at", "opt_subalign", "sect_constraint", 
+  "section", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", 
+  "@19", "@20", "@21", "@22", "type", "atype", "opt_exp_with_type", 
+  "opt_exp_without_type", "opt_nocrossrefs", "memspec_opt", "phdr_opt", 
+  "overlay_section", "@23", "@24", "@25", "phdrs", "phdr_list", "phdr", 
+  "@26", "@27", "phdr_type", "phdr_qualifiers", "phdr_val", 
+  "version_script_file", "@28", "version", "@29", "vers_nodes", 
+  "vers_node", "verdep", "vers_tag", "vers_defns", "@30", "@31", 
+  "opt_semicolon", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,    61,   261,   262,   263,
+     264,   265,   266,   267,   268,    63,    58,   269,   270,   124,
+      94,    38,   271,   272,    60,    62,   273,   274,   275,   276,
+      43,    45,    42,    47,    37,   277,   278,    40,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
+     291,   292,   293,   123,   125,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
+     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
+     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
+      44,    59,    41,    91,    93,    33,   126
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,   137,   138,   138,   138,   138,   139,   141,   140,   143,
+     142,   144,   144,   145,   145,   145,   145,   145,   145,   145,
+     145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
+     145,   145,   145,   145,   145,   145,   145,   145,   145,   146,
+     145,   145,   145,   147,   147,   147,   148,   148,   149,   149,
+     150,   150,   150,   151,   151,   151,   153,   152,   154,   154,
+     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+     155,   155,   155,   155,   155,   155,   155,   155,   155,   156,
+     155,   155,   157,   155,   155,   155,   158,   158,   158,   158,
+     158,   158,   159,   160,   160,   160,   161,   161,   162,   161,
+     163,   163,   163,   164,   164,   164,   164,   164,   164,   164,
+     164,   164,   165,   165,   166,   166,   167,   167,   167,   168,
+     169,   168,   170,   170,   170,   170,   170,   170,   170,   170,
+     171,   171,   172,   172,   173,   173,   173,   173,   173,   174,
+     175,   175,   176,   176,   176,   176,   176,   176,   176,   176,
+     177,   177,   178,   178,   178,   179,   179,   180,   181,   181,
+     181,   183,   182,   184,   185,   186,   186,   187,   187,   188,
+     188,   189,   190,   190,   191,   191,   192,   193,   193,   194,
+     194,   195,   195,   195,   197,   196,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   199,
+     199,   200,   200,   201,   201,   202,   202,   202,   204,   205,
+     206,   207,   208,   203,   209,   210,   211,   212,   213,   203,
+     214,   215,   203,   216,   216,   216,   216,   216,   217,   217,
+     217,   218,   218,   218,   218,   219,   219,   220,   220,   221,
+     221,   222,   222,   223,   224,   225,   226,   223,   227,   228,
+     228,   230,   231,   229,   232,   233,   233,   233,   234,   234,
+     236,   235,   238,   237,   239,   239,   240,   240,   240,   241,
+     241,   242,   242,   242,   242,   242,   243,   243,   244,   243,
+     245,   243,   246,   246
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
+{
+       0,     2,     2,     2,     2,     2,     1,     0,     4,     0,
+       2,     3,     0,     2,     4,     1,     1,     2,     1,     4,
+       4,     3,     2,     4,     3,     4,     4,     4,     4,     4,
+       2,     2,     2,     4,     4,     2,     2,     2,     2,     0,
+       5,     2,     0,     3,     2,     0,     1,     3,     1,     3,
+       0,     1,     3,     1,     2,     3,     0,     2,     2,     0,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       4,     4,     4,     4,     8,     4,     1,     1,     4,     0,
+       5,     4,     0,     5,     4,     4,     1,     3,     2,     1,
+       3,     2,     4,     2,     2,     0,     4,     2,     0,     7,
+       1,     1,     1,     1,     5,     4,     4,     7,     7,     7,
+       7,     8,     2,     1,     3,     1,     1,     3,     4,     1,
+       0,     5,     2,     1,     1,     1,     4,     1,     4,     4,
+       2,     1,     0,     1,     1,     1,     1,     1,     1,     1,
+       2,     0,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     3,     3,     6,     1,     0,     5,     2,     3,
+       0,     0,     7,     3,     3,     0,     3,     1,     2,     1,
+       2,     4,     4,     3,     3,     1,     4,     3,     0,     1,
+       1,     0,     2,     3,     0,     2,     2,     3,     4,     2,
+       2,     2,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
+       3,     4,     1,     1,     4,     4,     4,     4,     4,     6,
+       6,     6,     4,     6,     4,     1,     6,     6,     6,     3,
+       0,     4,     0,     4,     0,     1,     1,     0,     0,     0,
+       0,     0,     0,    18,     0,     0,     0,     0,     0,    18,
+       0,     0,     7,     1,     1,     1,     1,     1,     3,     0,
+       2,     3,     2,     6,    10,     2,     1,     0,     1,     2,
+       0,     0,     3,     0,     0,     0,     0,    11,     4,     0,
+       2,     0,     0,     6,     1,     0,     3,     5,     0,     3,
+       0,     2,     0,     5,     1,     2,     4,     5,     6,     1,
+       2,     0,     2,     4,     4,     8,     1,     3,     0,     9,
+       0,     7,     0,     1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned short yydefact[] =
+{
+       0,    56,     9,     7,   290,     0,     2,    59,     3,    12,
+       5,     0,     4,     0,     1,    57,    10,     0,   301,     0,
+     291,   294,     0,     0,     0,     0,    76,     0,    77,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   179,   180,
+       0,     0,    79,     0,     0,    98,     0,    69,    58,    61,
+      67,     0,    60,    63,    64,    65,    66,    62,    68,     0,
+      15,     0,     0,     0,     0,    16,     0,     0,     0,    18,
+      45,     0,     0,     0,     0,     0,     0,    50,     0,     0,
+       0,     0,     0,   306,     0,     0,     0,     0,   301,   295,
+     184,   149,   148,   147,   146,   145,   144,   143,   142,   184,
+      95,   279,     0,     0,     6,    82,     0,     0,     0,     0,
+       0,     0,     0,   178,   181,     0,     0,     0,     0,     0,
+       0,   151,   150,    97,     0,     0,    39,     0,   212,   225,
+       0,     0,     0,     0,     0,     0,     0,     0,   213,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    13,     0,    48,    30,    46,    31,    17,    32,    22,
+       0,    35,     0,    36,    51,    37,    53,    38,    41,    11,
+       8,     0,     0,     0,     0,   302,     0,   152,     0,   153,
+       0,     0,     0,     0,    59,   161,   160,     0,     0,     0,
+       0,     0,   173,   175,   156,   156,   181,     0,    86,    89,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
+       0,     0,   190,   186,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     189,   191,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    24,     0,     0,    44,     0,     0,
+       0,    21,     0,     0,    54,     0,   310,     0,     0,   296,
+       0,   307,     0,   185,   238,    92,   244,   250,    94,    93,
+     281,   278,   280,     0,    73,    75,   292,   165,     0,    70,
+      71,    81,    96,   171,   155,   172,     0,   176,     0,   181,
+     182,    84,    88,    91,     0,    78,     0,    72,   184,     0,
+      85,     0,    26,    27,    42,    28,    29,   187,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   210,   209,   207,   206,   205,   200,
+     199,   203,   204,   202,   201,   198,   197,   195,   196,   192,
+     193,   194,    14,    25,    23,    49,    47,    43,    19,    20,
+      34,    33,    52,    55,     0,   303,   304,     0,   299,   297,
+       0,   259,     0,   259,     0,     0,    83,     0,     0,   157,
+       0,   158,   174,   177,   183,    87,    90,    80,     0,     0,
+     293,    40,     0,   218,   224,     0,     0,   222,     0,   211,
+     188,   214,   215,   216,     0,     0,   217,     0,     0,   312,
+       0,   308,   300,   298,     0,     0,   259,     0,   232,   266,
+       0,   267,   251,   284,   285,     0,   169,     0,     0,   167,
+       0,   159,   154,     0,     0,     0,     0,     0,     0,     0,
+       0,   208,   313,     0,     0,     0,   253,   254,   255,   256,
+     257,   260,     0,     0,     0,     0,   262,     0,   234,   265,
+     268,   232,     0,   288,     0,   282,     0,   170,   166,   168,
+       0,   156,    99,   219,   220,   221,   223,   226,   227,   228,
+     311,     0,   312,   258,     0,   261,     0,     0,   239,   234,
+      95,     0,   285,     0,     0,    74,   184,     0,   305,     0,
+     259,     0,     0,   237,   245,     0,     0,   286,     0,   283,
+     163,     0,   162,   309,     0,     0,   231,     0,   235,   236,
+       0,     0,   252,   289,   285,   184,     0,   263,   233,   240,
+     246,   287,   164,     0,   132,   273,   259,   116,   102,   101,
+     134,   135,   136,   137,   138,     0,     0,     0,   123,   125,
+       0,     0,   124,     0,   103,     0,   119,   127,   131,   133,
+       0,     0,     0,     0,     0,     0,     0,   184,   120,     0,
+     100,     0,   115,   156,     0,   130,   241,   184,   122,   274,
+     247,   264,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   139,     0,   113,     0,     0,   117,     0,   156,   270,
+       0,     0,   270,     0,     0,   126,     0,   105,     0,     0,
+     106,   129,   100,     0,     0,   112,   114,   118,     0,   230,
+     128,   132,   230,     0,     0,     0,     0,     0,   121,   104,
+     269,     0,   271,     0,   271,     0,     0,     0,     0,     0,
+       0,   141,   275,   141,   108,   107,     0,   109,   110,   229,
+     184,     0,   242,   271,   248,   111,   140,   272,   156,   141,
+     156,   243,   276,   249,   156,   277
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
+{
+      -1,     5,   105,    10,    11,     8,     9,    16,    80,   209,
+     157,   156,   154,   165,   167,     6,     7,    15,    48,   116,
+     184,   200,    49,   180,    50,   119,   554,   555,   594,   573,
+     556,   557,   592,   558,   559,   560,   561,   590,   652,    99,
+     123,    51,   597,    52,   288,   186,   287,   471,   512,   378,
+     428,   429,    53,    54,   194,    55,   195,    56,   197,   591,
+     178,   214,   632,   458,   488,   520,   279,   371,   503,   534,
+     599,   658,   372,   521,   535,   602,   660,   373,   462,   452,
+     417,   418,   421,   461,   619,   641,   563,   601,   653,   664,
+      57,   181,   282,   374,   494,   424,   465,   492,    12,    13,
+      58,    59,    20,    21,   370,    86,    87,   445,   364,   443
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -597
+static const short yypact[] =
+{
+      17,  -597,  -597,  -597,  -597,    37,  -597,  -597,  -597,  -597,
+    -597,    56,  -597,   -33,  -597,   620,  1222,    67,    98,    70,
+     -33,  -597,   776,    81,   117,    44,  -597,   115,  -597,   161,
+     141,   164,   171,   176,   180,   210,   216,   223,  -597,  -597,
+     227,   231,  -597,   244,   268,  -597,   278,  -597,  -597,  -597,
+    -597,   -32,  -597,  -597,  -597,  -597,  -597,  -597,  -597,   113,
+    -597,   240,   161,   300,   579,  -597,   320,   322,   326,  -597,
+    -597,   329,   330,   333,   579,   335,   337,   338,   339,   343,
+     246,   579,   346,  -597,   341,   345,   297,   222,    98,  -597,
+    -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
+    -597,  -597,   351,   361,  -597,  -597,   362,   363,   161,   161,
+     364,   161,    14,  -597,   365,   252,   334,   161,   368,   336,
+     339,  -597,  -597,  -597,   321,     7,  -597,    19,  -597,  -597,
+     579,   579,   579,   340,   342,   353,   355,   358,  -597,   360,
+     367,   370,   371,   386,   387,   388,   391,   392,   393,   579,
+     579,  1349,   372,  -597,   269,  -597,   270,    24,  -597,  -597,
+     451,  1577,   275,  -597,  -597,   304,  -597,    30,  -597,  -597,
+    1577,   348,   -82,   -82,   305,     9,   383,  -597,   579,  -597,
+      18,    20,    99,   306,  -597,  -597,  -597,   307,   308,   311,
+     312,   313,  -597,  -597,   104,   111,    31,   324,  -597,  -597,
+      75,   252,   327,   446,   579,    65,   -33,   579,   579,  -597,
+     579,   579,  -597,  -597,   819,   579,   579,   579,   579,   579,
+     449,   454,   579,   456,   457,   458,   579,   579,   579,   579,
+    -597,  -597,   579,   579,   579,   579,   579,   579,   579,   579,
+     579,   579,   579,   579,   579,   579,   579,   579,   579,   579,
+     579,   579,   579,   579,  1577,   459,   460,  -597,   464,   579,
+     579,  1577,   267,   465,  -597,   466,  -597,   344,   347,  -597,
+     468,  -597,    -7,  1577,   776,  -597,  -597,  -597,  -597,  -597,
+    -597,  -597,  -597,   470,  -597,  -597,   684,   439,    41,  -597,
+    -597,  -597,  -597,  -597,  -597,  -597,   161,  -597,   161,   365,
+    -597,  -597,  -597,  -597,   271,  -597,    80,  -597,  -597,  1369,
+    -597,   -12,  1577,  1577,  1244,  1577,  1577,  -597,   799,   839,
+    1389,  1409,   859,   350,   352,   879,   354,   359,   366,  1429,
+    1463,   915,  1483,  1545,  1243,  1011,   894,   567,  1124,   779,
+     779,   385,   385,   385,   385,   288,   288,   191,   191,  -597,
+    -597,  -597,  1577,  1577,  1577,  -597,  -597,  -597,  1577,  1577,
+    -597,  -597,  -597,  -597,   -82,   112,     9,   424,  -597,  -597,
+      83,    28,   501,    28,   579,   373,  -597,     3,   467,  -597,
+     362,  -597,  -597,  -597,  -597,  -597,  -597,  -597,   377,   481,
+    -597,  -597,   579,  -597,  -597,   579,   579,  -597,   579,  -597,
+    -597,  -597,  -597,  -597,   579,   579,  -597,   488,   579,   379,
+     477,  -597,  -597,  -597,   224,   475,  1503,   478,   400,  -597,
+    1599,   411,  -597,  1577,    26,   493,  -597,   509,     4,  -597,
+     428,  -597,  -597,   384,   935,   955,   975,   995,  1031,  1051,
+     389,  1577,     9,   461,   -82,   -82,  -597,  -597,  -597,  -597,
+    -597,  -597,   390,   579,   -18,   502,  -597,   482,   427,  -597,
+    -597,   400,   471,   496,   497,  -597,   403,  -597,  -597,  -597,
+     530,   407,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
+    -597,   410,   379,  -597,  1071,  -597,   579,   505,  -597,   427,
+    -597,   579,    26,   579,   412,  -597,  -597,   469,     9,   490,
+     211,  1091,   579,   167,  -597,   273,  1111,  -597,  1147,  -597,
+    -597,   539,  -597,  -597,   510,   532,  -597,  1167,  -597,  -597,
+     500,   506,  -597,  -597,    26,  -597,   579,  -597,  -597,  -597,
+    -597,  -597,  -597,  1187,   265,  -597,   517,   375,  -597,  -597,
+    -597,  -597,  -597,  -597,  -597,   518,   523,   525,  -597,  -597,
+     526,   527,  -597,   200,  -597,   528,  -597,  -597,  -597,   265,
+     492,   529,   -32,    47,   551,   194,   207,  -597,  -597,    78,
+    -597,   531,  -597,    -8,   200,  -597,  -597,  -597,  -597,  -597,
+    -597,  -597,   534,   535,   437,   536,   442,   547,   548,   473,
+     474,  -597,    12,  -597,     8,   234,  -597,   200,   135,   586,
+     480,   560,   586,    78,    78,  -597,    78,  -597,    78,    78,
+    -597,  -597,   483,   487,    78,  -597,  -597,  -597,   610,   540,
+    -597,   265,   540,   489,   491,    11,   494,   498,  -597,  -597,
+    -597,   595,  -597,   568,  -597,   499,   508,    78,   511,   513,
+     621,   190,  -597,   190,  -597,  -597,   519,  -597,  -597,  -597,
+    -597,   634,  -597,  -597,  -597,  -597,  -597,  -597,   407,   190,
+     407,  -597,  -597,  -597,   407,  -597
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const short yypgoto[] =
+{
+    -597,  -597,   -56,  -597,  -597,  -597,  -597,   440,  -597,  -597,
+    -597,  -597,  -597,  -597,   541,  -597,  -597,   476,  -597,  -597,
+    -597,   463,  -597,   160,  -177,  -597,    38,  -478,    53,    88,
+      73,  -597,  -597,   109,  -597,    48,  -597,    21,  -531,  -597,
+     108,  -505,  -193,  -597,  -597,  -269,  -597,  -597,  -597,  -597,
+    -597,   245,  -597,  -597,  -597,  -597,  -597,  -597,  -179,   -90,
+    -597,   -60,    50,   213,   195,  -597,  -597,  -597,  -597,  -597,
+    -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,  -597,
+    -383,   310,  -597,  -597,    85,  -596,  -597,  -597,  -597,  -597,
+    -597,  -597,  -597,  -597,  -597,  -597,  -430,  -597,  -597,  -597,
+    -597,  -597,   479,   -15,  -597,   601,  -162,  -597,  -597,   212
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -293
+static const short yytable[] =
+{
+     177,   296,   298,   278,   151,    89,   126,   426,   426,   179,
+     267,   268,   570,   207,   161,   570,   612,   300,   104,   381,
+      18,   170,   274,   538,   280,   210,   538,   538,   257,   562,
+     463,   128,   129,   455,   264,   196,    82,    14,   643,    83,
+     539,    18,   390,   539,   539,   185,   446,   447,   448,   449,
+     450,   579,   188,   189,   562,   191,   193,   659,   130,   131,
+      17,   202,   507,   571,   546,   414,   133,   134,   415,   264,
+     212,   213,   275,    81,   281,   572,   135,   136,   137,   302,
+     303,   102,   570,   138,   302,   303,   276,    19,   139,   230,
+     231,    34,   254,   538,   531,   379,   572,   140,   121,   122,
+     261,   580,   141,   142,   143,   144,   145,   146,    19,   277,
+     539,   431,   654,   368,   451,    44,   562,   515,   273,   616,
+     384,   464,   294,    88,   369,    45,   596,   270,   662,   147,
+     271,     1,     2,     3,   100,   148,   468,   208,   427,   427,
+     614,   551,     4,   637,   309,   553,   192,   312,   313,   211,
+     315,   316,   103,   564,   258,   318,   319,   320,   321,   322,
+     265,   299,   325,   149,   150,   104,   329,   330,   331,   332,
+     101,   380,   333,   334,   335,   336,   337,   338,   339,   340,
+     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
+     351,   352,   353,   354,   106,   265,   650,   310,   570,   358,
+     359,   107,   409,   412,   570,   304,   651,   305,   108,   538,
+     304,   570,   387,   109,   413,   538,    82,   110,   388,    83,
+      84,    85,   538,   248,   249,   250,   539,   128,   129,   283,
+     270,   284,   539,   271,   294,   410,   295,   124,   570,   539,
+     382,   294,   383,   297,   125,   582,   583,   111,   454,   538,
+     514,   571,   546,   112,   130,   131,   198,   199,   587,   588,
+     113,   132,   133,   134,   114,   294,   539,   617,   115,   537,
+     360,   361,   135,   136,   137,   385,   386,   274,   497,   138,
+     538,   117,   481,   482,   139,   582,   583,   584,   446,   447,
+     448,   449,   450,   140,   518,   519,    89,   539,   141,   142,
+     143,   144,   145,   146,   127,   118,   540,   541,   542,   543,
+     544,   416,   420,   416,   423,   120,   545,   546,   246,   247,
+     248,   249,   250,   585,   152,   147,   153,   522,   278,   551,
+     155,   148,   434,   158,   159,   435,   436,   160,   437,   162,
+     163,   276,   164,   166,   438,   439,    34,   168,   441,   169,
+     171,   174,   547,   175,   548,   182,   451,   172,   549,   149,
+     150,   173,    44,   585,   277,   183,   185,   187,   190,   196,
+      44,   201,   203,   204,   206,   128,   129,   215,   252,   216,
+      45,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+     217,   550,   218,   484,   551,   219,   552,   220,   553,   255,
+     256,   266,   130,   131,   221,   262,   510,   222,   223,   132,
+     133,   134,  -100,   244,   245,   246,   247,   248,   249,   250,
+     135,   136,   137,   224,   225,   226,   501,   138,   227,   228,
+     229,   506,   139,   508,   263,   532,   269,   272,   285,   289,
+     290,   140,   517,   291,   292,   293,   141,   142,   143,   144,
+     145,   146,   308,   323,   128,   129,   301,   259,   324,   307,
+     326,   327,   328,   355,   356,   661,   533,   663,   357,   362,
+     363,   665,   367,   147,   375,   365,   377,   411,   366,   148,
+     398,   130,   131,   430,   399,   433,   401,   600,   132,   133,
+     134,   402,   440,   444,   456,   457,   460,   466,   403,   135,
+     136,   137,   253,   425,   128,   129,   138,   149,   150,   432,
+     442,   139,   453,   467,   470,   480,   472,   419,   485,   486,
+     140,   479,   483,   487,   490,   141,   142,   143,   144,   145,
+     146,   130,   131,   491,   493,   495,   496,   294,   132,   133,
+     134,   498,   502,   509,   513,   525,   576,   526,   527,   135,
+     136,   137,   147,   529,   454,   565,   138,   511,   148,   530,
+     566,   139,   567,   568,   569,   574,   577,   581,   595,   605,
+     140,   603,   604,   606,   607,   141,   142,   143,   144,   145,
+     146,   260,   128,   129,   608,   609,   149,   150,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,   147,   586,   589,   610,   611,   593,   148,   130,
+     131,   618,   620,   621,   630,  -116,   132,   133,   134,   628,
+     640,   635,   642,   636,    22,   649,   638,   135,   136,   137,
+     639,   644,   615,   586,   138,   631,   149,   150,   657,   139,
+     645,   623,   624,   647,   593,   648,   626,   627,   140,   314,
+     505,   655,   629,   141,   142,   143,   144,   145,   146,   625,
+     286,   205,   598,   615,   306,   613,    23,    24,   575,   633,
+     578,   656,   634,   469,   489,   646,    25,    26,    27,    28,
+     147,    29,    30,   422,   504,   311,   148,   622,    22,   176,
+      31,    32,    33,    34,   499,     0,     0,     0,     0,     0,
+      35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
+      41,    42,    43,     0,   149,   150,     0,    44,     0,     0,
+     376,     0,     0,     0,     0,     0,     0,    45,     0,     0,
+      23,    24,     0,     0,     0,     0,     0,     0,    46,     0,
+      25,    26,    27,    28,  -292,    29,    30,     0,     0,     0,
+       0,    47,     0,     0,    31,    32,    33,    34,     0,     0,
+       0,     0,     0,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,     0,     0,     0,
+       0,    44,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    45,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    46,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,    47,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   236,   237,   238,   239,   240,   241,
+     242,   243,   244,   245,   246,   247,   248,   249,   250,   392,
+     232,   393,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     232,   317,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     232,   394,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     232,   397,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     232,   400,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   232,   406,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   232,   473,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   232,   474,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   232,   475,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   232,   476,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   238,   239,   240,   241,
+     242,   243,   244,   245,   246,   247,   248,   249,   250,     0,
+       0,     0,   232,   477,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,   232,   478,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,   232,   500,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,     0,   516,     0,     0,    60,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   523,     0,     0,     0,     0,    60,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      61,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,     0,   524,
+     391,     0,    61,    62,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   528,
+       0,     0,     0,     0,     0,    62,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    63,     0,     0,   536,
+      64,    65,    66,    67,    68,   -42,    69,    70,    71,     0,
+      72,    73,    74,    75,    76,     0,     0,     0,    63,    77,
+      78,    79,    64,    65,    66,    67,    68,     0,    69,    70,
+      71,     0,    72,    73,    74,    75,    76,     0,     0,     0,
+       0,    77,    78,    79,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   232,     0,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   232,   251,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   232,   389,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   232,   395,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,     0,   396,
+     454,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   404,
+     232,   408,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   232,   405,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,     0,   407,   232,   459,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250
+};
+
+static const short yycheck[] =
+{
+      90,   194,   195,   180,    64,    20,    62,     4,     4,    99,
+     172,   173,     4,     6,    74,     4,     4,   196,     4,   288,
+      53,    81,     4,    15,     4,     6,    15,    15,     4,   534,
+       4,     3,     4,   416,     4,     4,   118,     0,   634,   121,
+      32,    53,    54,    32,    32,     4,    64,    65,    66,    67,
+      68,     4,   108,   109,   559,   111,   112,   653,    30,    31,
+       4,   117,   492,    51,    52,    37,    38,    39,    40,     4,
+     130,   131,    54,     6,    54,   553,    48,    49,    50,     4,
+       5,    37,     4,    55,     4,     5,    68,   120,    60,   149,
+     150,    73,   152,    15,   524,    54,   574,    69,   130,   131,
+     160,    54,    74,    75,    76,    77,    78,    79,   120,    91,
+      32,   380,   643,   120,   132,    97,   621,   500,   178,   597,
+     299,    95,   130,    53,   131,   107,   134,   118,   659,   101,
+     121,   114,   115,   116,    53,   107,   132,   130,   135,   135,
+     132,   129,   125,   132,   204,   133,   132,   207,   208,   130,
+     210,   211,    37,   536,   130,   215,   216,   217,   218,   219,
+     130,   130,   222,   135,   136,     4,   226,   227,   228,   229,
+      53,   130,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,    53,   130,     6,   132,     4,   259,
+     260,    37,   364,   120,     4,   130,    16,   132,    37,    15,
+     130,     4,   132,    37,   131,    15,   118,    37,   308,   121,
+     122,   123,    15,    32,    33,    34,    32,     3,     4,   130,
+     118,   132,    32,   121,   130,   123,   132,   124,     4,    32,
+     296,   130,   298,   132,     4,    51,    52,    37,    37,    15,
+      39,    51,    52,    37,    30,    31,     4,     5,    51,    52,
+      37,    37,    38,    39,    37,   130,    32,   132,    37,     4,
+       3,     4,    48,    49,    50,     4,     5,     4,   471,    55,
+      15,    37,   444,   445,    60,    51,    52,    93,    64,    65,
+      66,    67,    68,    69,   127,   128,   311,    32,    74,    75,
+      76,    77,    78,    79,     4,    37,    41,    42,    43,    44,
+      45,   371,   372,   373,   374,    37,    51,    52,    30,    31,
+      32,    33,    34,   129,     4,   101,     4,    54,   505,   129,
+       4,   107,   392,     4,     4,   395,   396,     4,   398,     4,
+       3,    68,     4,     4,   404,   405,    73,     4,   408,   103,
+       4,    54,    87,   131,    89,     4,   132,    16,    93,   135,
+     136,    16,    97,   129,    91,     4,     4,     4,     4,     4,
+      97,    37,     4,    37,    53,     3,     4,    37,     6,    37,
+     107,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      37,   126,    37,   453,   129,    37,   131,    37,   133,   130,
+     130,    53,    30,    31,    37,   130,   496,    37,    37,    37,
+      38,    39,    37,    28,    29,    30,    31,    32,    33,    34,
+      48,    49,    50,    37,    37,    37,   486,    55,    37,    37,
+      37,   491,    60,   493,   130,   525,   131,    54,   132,   132,
+     132,    69,   502,   132,   132,   132,    74,    75,    76,    77,
+      78,    79,     6,     4,     3,     4,   132,     6,     4,   132,
+       4,     4,     4,     4,     4,   658,   526,   660,     4,     4,
+       4,   664,     4,   101,     4,   131,    37,    53,   131,   107,
+     130,    30,    31,    16,   132,     4,   132,   577,    37,    38,
+      39,   132,     4,    16,    16,    95,    85,     4,   132,    48,
+      49,    50,   130,   130,     3,     4,    55,   135,   136,   132,
+     131,    60,    37,     4,    86,    54,   132,    16,    16,    37,
+      69,   132,   132,    96,    53,    74,    75,    76,    77,    78,
+      79,    30,    31,    37,    37,   132,     6,   130,    37,    38,
+      39,   131,    37,   131,    54,     6,    54,    37,    16,    48,
+      49,    50,   101,    53,    37,    37,    55,    88,   107,    53,
+      37,    60,    37,    37,    37,    37,    37,    16,    37,   132,
+      69,    37,    37,    37,   132,    74,    75,    76,    77,    78,
+      79,   130,     3,     4,    37,    37,   135,   136,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,   101,   565,   566,   132,   132,   569,   107,    30,
+      31,    25,   132,    53,     4,   132,    37,    38,    39,   132,
+      25,   132,    54,   132,     4,     4,   132,    48,    49,    50,
+     132,   132,   594,   595,    55,    95,   135,   136,     4,    60,
+     132,   603,   604,   132,   606,   132,   608,   609,    69,   209,
+     490,   132,   614,    74,    75,    76,    77,    78,    79,   606,
+     184,   120,   574,   625,   201,   592,    46,    47,   559,   621,
+     562,   650,   622,   428,   461,   637,    56,    57,    58,    59,
+     101,    61,    62,   373,   489,   206,   107,   602,     4,    88,
+      70,    71,    72,    73,   482,    -1,    -1,    -1,    -1,    -1,
+      80,    81,    82,    83,    84,    85,    -1,    -1,    -1,    -1,
+      90,    91,    92,    -1,   135,   136,    -1,    97,    -1,    -1,
+      36,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
+      46,    47,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
+      56,    57,    58,    59,   124,    61,    62,    -1,    -1,    -1,
+      -1,   131,    -1,    -1,    70,    71,    72,    73,    -1,    -1,
+      -1,    -1,    -1,    -1,    80,    81,    82,    83,    84,    85,
+      -1,    -1,    -1,    -1,    90,    91,    92,    -1,    -1,    -1,
+      -1,    97,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   118,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,   131,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,   130,
+      15,   132,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      15,   132,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      15,   132,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      15,   132,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      15,   132,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    15,   132,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    15,   132,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    15,   132,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    15,   132,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    15,   132,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      -1,    -1,    15,   132,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    15,   132,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    15,   132,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    -1,   132,    -1,    -1,     4,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,     4,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      38,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,   132,
+      36,    -1,    38,    61,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
+      -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,   132,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,    -1,
+     108,   109,   110,   111,   112,    -1,    -1,    -1,    94,   117,
+     118,   119,    98,    99,   100,   101,   102,    -1,   104,   105,
+     106,    -1,   108,   109,   110,   111,   112,    -1,    -1,    -1,
+      -1,   117,   118,   119,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    15,   130,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    15,   130,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    15,   130,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,   130,
+      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   130,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    15,   130,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    -1,   130,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,   114,   115,   116,   125,   138,   152,   153,   142,   143,
+     140,   141,   235,   236,     0,   154,   144,     4,    53,   120,
+     239,   240,     4,    46,    47,    56,    57,    58,    59,    61,
+      62,    70,    71,    72,    73,    80,    81,    82,    83,    84,
+      85,    90,    91,    92,    97,   107,   118,   131,   155,   159,
+     161,   178,   180,   189,   190,   192,   194,   227,   237,   238,
+       4,    38,    61,    94,    98,    99,   100,   101,   102,   104,
+     105,   106,   108,   109,   110,   111,   112,   117,   118,   119,
+     145,     6,   118,   121,   122,   123,   242,   243,    53,   240,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,   176,
+      53,    53,    37,    37,     4,   139,    53,    37,    37,    37,
+      37,    37,    37,    37,    37,    37,   156,    37,    37,   162,
+      37,   130,   131,   177,   124,     4,   139,     4,     3,     4,
+      30,    31,    37,    38,    39,    48,    49,    50,    55,    60,
+      69,    74,    75,    76,    77,    78,    79,   101,   107,   135,
+     136,   198,     4,     4,   149,     4,   148,   147,     4,     4,
+       4,   198,     4,     3,     4,   150,     4,   151,     4,   103,
+     198,     4,    16,    16,    54,   131,   242,   196,   197,   196,
+     160,   228,     4,     4,   157,     4,   182,     4,   139,   139,
+       4,   139,   132,   139,   191,   193,     4,   195,     4,     5,
+     158,    37,   139,     4,    37,   151,    53,     6,   130,   146,
+       6,   130,   198,   198,   198,    37,    37,    37,    37,    37,
+      37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
+     198,   198,    15,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,   130,     6,   130,   198,   130,   130,     4,   130,     6,
+     130,   198,   130,   130,     4,   130,    53,   243,   243,   131,
+     118,   121,    54,   198,     4,    54,    68,    91,   161,   203,
+       4,    54,   229,   130,   132,   132,   154,   183,   181,   132,
+     132,   132,   132,   132,   130,   132,   179,   132,   179,   130,
+     195,   132,     4,     5,   130,   132,   158,   132,     6,   198,
+     132,   239,   198,   198,   144,   198,   198,   132,   198,   198,
+     198,   198,   198,     4,     4,   198,     4,     4,     4,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,     4,     4,     4,   198,   198,
+       3,     4,     4,     4,   245,   131,   131,     4,   120,   131,
+     241,   204,   209,   214,   230,     4,    36,    37,   186,    54,
+     130,   182,   139,   139,   195,     4,     5,   132,   196,   130,
+      54,    36,   130,   132,   132,   130,   130,   132,   130,   132,
+     132,   132,   132,   132,   130,   130,   132,   130,    16,   243,
+     123,    53,   120,   131,    37,    40,   198,   217,   218,    16,
+     198,   219,   218,   198,   232,   130,     4,   135,   187,   188,
+      16,   182,   132,     4,   198,   198,   198,   198,   198,   198,
+       4,   198,   131,   246,    16,   244,    64,    65,    66,    67,
+      68,   132,   216,    37,    37,   217,    16,    95,   200,    16,
+      85,   220,   215,     4,    95,   233,     4,     4,   132,   188,
+      86,   184,   132,   132,   132,   132,   132,   132,   132,   132,
+      54,   243,   243,   132,   198,    16,    37,    96,   201,   200,
+      53,    37,   234,    37,   231,   132,     6,   179,   131,   246,
+     132,   198,    37,   205,   201,   160,   198,   233,   198,   131,
+     196,    88,   185,    54,    39,   217,   132,   198,   127,   128,
+     202,   210,    54,   132,   132,     6,    37,    16,   132,    53,
+      53,   233,   196,   198,   206,   211,   132,     4,    15,    32,
+      41,    42,    43,    44,    45,    51,    52,    87,    89,    93,
+     126,   129,   131,   133,   163,   164,   167,   168,   170,   171,
+     172,   173,   178,   223,   217,    37,    37,    37,    37,    37,
+       4,    51,   164,   166,    37,   170,    54,    37,   177,     4,
+      54,    16,    51,    52,    93,   129,   163,    51,    52,   163,
+     174,   196,   169,   163,   165,    37,   134,   179,   166,   207,
+     196,   224,   212,    37,    37,   132,    37,   132,    37,    37,
+     132,   132,     4,   167,   132,   163,   164,   132,    25,   221,
+     132,    53,   221,   163,   163,   165,   163,   163,   132,   163,
+       4,    95,   199,   172,   199,   132,   132,   132,   132,   132,
+      25,   222,    54,   222,   132,   132,   163,   132,   132,     4,
+       6,    16,   175,   225,   175,   132,   174,     4,   208,   222,
+     213,   179,   175,   179,   226,   179
+};
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrlab1
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+
+#define YYFAIL		goto yyerrlab
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)					\
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      yytoken = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { 								\
+      yyerror ("syntax error: cannot back up");\
+      YYERROR;							\
+    }								\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+   are run).  */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
+#endif
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (0)
+
+# define YYDSYMPRINT(Args)			\
+do {						\
+  if (yydebug)					\
+    yysymprint Args;				\
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)		\
+do {								\
+  if (yydebug)							\
+    {								\
+      YYFPRINTF (stderr, "%s ", Title);				\
+      yysymprint (stderr, 					\
+                  Token, Value);	\
+      YYFPRINTF (stderr, "\n");					\
+    }								\
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (Rule);		\
+} while (0)
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#if YYMAXDEPTH == 0
+# undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
+{
+  register const char *yys = yystr;
+
+  while (*yys++ != '\0')
+    continue;
+
+  return yys - yystr - 1;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  register char *yyd = yydest;
+  register const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+#endif /* !YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+  
+  register int yystate;
+  register int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  short	yyssa[YYINITDEPTH];
+  short *yyss = yyssa;
+  register short *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  register YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+
+  /* When reducing, the number of symbols on the RHS of the reduced
+     rule.  */
+  int yylen;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss;
+  yyvsp = yyvs;
+
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed. so pushing a state here evens the stacks.
+     */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* Give user a chance to reallocate the stack. Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	short *yyss1 = yyss;
+
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow ("parser stack overflow",
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyoverflowlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyoverflowlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	short *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyoverflowlab;
+	YYSTACK_RELOCATE (yyss);
+	YYSTACK_RELOCATE (yyvs);
+
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYPACT_NINF)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 7:
+#line 175 "ldgram.y"
+    { ldlex_defsym(); }
+    break;
+
+  case 8:
+#line 177 "ldgram.y"
+    {
+		  ldlex_popstate();
+		  lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
+		}
+    break;
+
+  case 9:
+#line 185 "ldgram.y"
+    {
+		  ldlex_mri_script ();
+		  PUSH_ERROR (_("MRI style script"));
+		}
+    break;
+
+  case 10:
+#line 190 "ldgram.y"
+    {
+		  ldlex_popstate ();
+		  mri_draw_tree ();
+		  POP_ERROR ();
+		}
+    break;
+
+  case 15:
+#line 205 "ldgram.y"
+    {
+			einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp[0].name);
+			}
+    break;
+
+  case 16:
+#line 208 "ldgram.y"
+    {
+			config.map_filename = "-";
+			}
+    break;
+
+  case 19:
+#line 214 "ldgram.y"
+    { mri_public(yyvsp[-2].name, yyvsp[0].etree); }
+    break;
+
+  case 20:
+#line 216 "ldgram.y"
+    { mri_public(yyvsp[-2].name, yyvsp[0].etree); }
+    break;
+
+  case 21:
+#line 218 "ldgram.y"
+    { mri_public(yyvsp[-1].name, yyvsp[0].etree); }
+    break;
+
+  case 22:
+#line 220 "ldgram.y"
+    { mri_format(yyvsp[0].name); }
+    break;
+
+  case 23:
+#line 222 "ldgram.y"
+    { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
+    break;
+
+  case 24:
+#line 224 "ldgram.y"
+    { mri_output_section(yyvsp[-1].name, yyvsp[0].etree);}
+    break;
+
+  case 25:
+#line 226 "ldgram.y"
+    { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
+    break;
+
+  case 26:
+#line 228 "ldgram.y"
+    { mri_align(yyvsp[-2].name,yyvsp[0].etree); }
+    break;
+
+  case 27:
+#line 230 "ldgram.y"
+    { mri_align(yyvsp[-2].name,yyvsp[0].etree); }
+    break;
+
+  case 28:
+#line 232 "ldgram.y"
+    { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
+    break;
+
+  case 29:
+#line 234 "ldgram.y"
+    { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
+    break;
+
+  case 32:
+#line 238 "ldgram.y"
+    { mri_name(yyvsp[0].name); }
+    break;
+
+  case 33:
+#line 240 "ldgram.y"
+    { mri_alias(yyvsp[-2].name,yyvsp[0].name,0);}
+    break;
+
+  case 34:
+#line 242 "ldgram.y"
+    { mri_alias (yyvsp[-2].name, 0, (int) yyvsp[0].bigint.integer); }
+    break;
+
+  case 35:
+#line 244 "ldgram.y"
+    { mri_base(yyvsp[0].etree); }
+    break;
+
+  case 36:
+#line 246 "ldgram.y"
+    { mri_truncate ((unsigned int) yyvsp[0].bigint.integer); }
+    break;
+
+  case 39:
+#line 250 "ldgram.y"
+    { ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
+    break;
+
+  case 40:
+#line 252 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 41:
+#line 254 "ldgram.y"
+    { lang_add_entry (yyvsp[0].name, FALSE); }
+    break;
+
+  case 43:
+#line 259 "ldgram.y"
+    { mri_order(yyvsp[0].name); }
+    break;
+
+  case 44:
+#line 260 "ldgram.y"
+    { mri_order(yyvsp[0].name); }
+    break;
+
+  case 46:
+#line 266 "ldgram.y"
+    { mri_load(yyvsp[0].name); }
+    break;
+
+  case 47:
+#line 267 "ldgram.y"
+    { mri_load(yyvsp[0].name); }
+    break;
+
+  case 48:
+#line 272 "ldgram.y"
+    { mri_only_load(yyvsp[0].name); }
+    break;
+
+  case 49:
+#line 274 "ldgram.y"
+    { mri_only_load(yyvsp[0].name); }
+    break;
+
+  case 50:
+#line 278 "ldgram.y"
+    { yyval.name = NULL; }
+    break;
+
+  case 53:
+#line 285 "ldgram.y"
+    { ldlang_add_undef (yyvsp[0].name); }
+    break;
+
+  case 54:
+#line 287 "ldgram.y"
+    { ldlang_add_undef (yyvsp[0].name); }
+    break;
+
+  case 55:
+#line 289 "ldgram.y"
+    { ldlang_add_undef (yyvsp[0].name); }
+    break;
+
+  case 56:
+#line 293 "ldgram.y"
+    {
+	 ldlex_both();
+	}
+    break;
+
+  case 57:
+#line 297 "ldgram.y"
+    {
+	ldlex_popstate();
+	}
+    break;
+
+  case 70:
+#line 322 "ldgram.y"
+    { lang_add_target(yyvsp[-1].name); }
+    break;
+
+  case 71:
+#line 324 "ldgram.y"
+    { ldfile_add_library_path (yyvsp[-1].name, FALSE); }
+    break;
+
+  case 72:
+#line 326 "ldgram.y"
+    { lang_add_output(yyvsp[-1].name, 1); }
+    break;
+
+  case 73:
+#line 328 "ldgram.y"
+    { lang_add_output_format (yyvsp[-1].name, (char *) NULL,
+					    (char *) NULL, 1); }
+    break;
+
+  case 74:
+#line 331 "ldgram.y"
+    { lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); }
+    break;
+
+  case 75:
+#line 333 "ldgram.y"
+    { ldfile_set_output_arch (yyvsp[-1].name, bfd_arch_unknown); }
+    break;
+
+  case 76:
+#line 335 "ldgram.y"
+    { command_line.force_common_definition = TRUE ; }
+    break;
+
+  case 77:
+#line 337 "ldgram.y"
+    { command_line.inhibit_common_definition = TRUE ; }
+    break;
+
+  case 79:
+#line 340 "ldgram.y"
+    { lang_enter_group (); }
+    break;
+
+  case 80:
+#line 342 "ldgram.y"
+    { lang_leave_group (); }
+    break;
+
+  case 81:
+#line 344 "ldgram.y"
+    { lang_add_map(yyvsp[-1].name); }
+    break;
+
+  case 82:
+#line 346 "ldgram.y"
+    { ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
+    break;
+
+  case 83:
+#line 348 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 84:
+#line 350 "ldgram.y"
+    {
+		  lang_add_nocrossref (yyvsp[-1].nocrossref);
+		}
+    break;
+
+  case 86:
+#line 358 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
+				 (char *)NULL); }
+    break;
+
+  case 87:
+#line 361 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
+				 (char *)NULL); }
+    break;
+
+  case 88:
+#line 364 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
+				 (char *)NULL); }
+    break;
+
+  case 89:
+#line 367 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
+				 (char *)NULL); }
+    break;
+
+  case 90:
+#line 370 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
+				 (char *)NULL); }
+    break;
+
+  case 91:
+#line 373 "ldgram.y"
+    { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
+				 (char *)NULL); }
+    break;
+
+  case 96:
+#line 389 "ldgram.y"
+    { lang_add_entry (yyvsp[-1].name, FALSE); }
+    break;
+
+  case 98:
+#line 391 "ldgram.y"
+    {ldlex_expression ();}
+    break;
+
+  case 99:
+#line 392 "ldgram.y"
+    { ldlex_popstate ();
+		  lang_add_assignment (exp_assert (yyvsp[-3].etree, yyvsp[-1].name)); }
+    break;
+
+  case 100:
+#line 400 "ldgram.y"
+    {
+			  yyval.cname = yyvsp[0].name;
+			}
+    break;
+
+  case 101:
+#line 404 "ldgram.y"
+    {
+			  yyval.cname = "*";
+			}
+    break;
+
+  case 102:
+#line 408 "ldgram.y"
+    {
+			  yyval.cname = "?";
+			}
+    break;
+
+  case 103:
+#line 415 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[0].cname;
+			  yyval.wildcard.sorted = none;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 104:
+#line 421 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[0].cname;
+			  yyval.wildcard.sorted = none;
+			  yyval.wildcard.exclude_name_list = yyvsp[-2].name_list;
+			}
+    break;
+
+  case 105:
+#line 427 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-1].cname;
+			  yyval.wildcard.sorted = by_name;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 106:
+#line 433 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-1].cname;
+			  yyval.wildcard.sorted = by_alignment;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 107:
+#line 439 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-2].cname;
+			  yyval.wildcard.sorted = by_name_alignment;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 108:
+#line 445 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-2].cname;
+			  yyval.wildcard.sorted = by_name;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 109:
+#line 451 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-2].cname;
+			  yyval.wildcard.sorted = by_alignment_name;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 110:
+#line 457 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-2].cname;
+			  yyval.wildcard.sorted = by_alignment;
+			  yyval.wildcard.exclude_name_list = NULL;
+			}
+    break;
+
+  case 111:
+#line 463 "ldgram.y"
+    {
+			  yyval.wildcard.name = yyvsp[-1].cname;
+			  yyval.wildcard.sorted = by_name;
+			  yyval.wildcard.exclude_name_list = yyvsp[-3].name_list;
+			}
+    break;
+
+  case 112:
+#line 472 "ldgram.y"
+    {
+			  struct name_list *tmp;
+			  tmp = (struct name_list *) xmalloc (sizeof *tmp);
+			  tmp->name = yyvsp[0].cname;
+			  tmp->next = yyvsp[-1].name_list;
+			  yyval.name_list = tmp;
+			}
+    break;
+
+  case 113:
+#line 481 "ldgram.y"
+    {
+			  struct name_list *tmp;
+			  tmp = (struct name_list *) xmalloc (sizeof *tmp);
+			  tmp->name = yyvsp[0].cname;
+			  tmp->next = NULL;
+			  yyval.name_list = tmp;
+			}
+    break;
+
+  case 114:
+#line 492 "ldgram.y"
+    {
+			  struct wildcard_list *tmp;
+			  tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
+			  tmp->next = yyvsp[-2].wildcard_list;
+			  tmp->spec = yyvsp[0].wildcard;
+			  yyval.wildcard_list = tmp;
+			}
+    break;
+
+  case 115:
+#line 501 "ldgram.y"
+    {
+			  struct wildcard_list *tmp;
+			  tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
+			  tmp->next = NULL;
+			  tmp->spec = yyvsp[0].wildcard;
+			  yyval.wildcard_list = tmp;
+			}
+    break;
+
+  case 116:
+#line 512 "ldgram.y"
+    {
+			  struct wildcard_spec tmp;
+			  tmp.name = yyvsp[0].name;
+			  tmp.exclude_name_list = NULL;
+			  tmp.sorted = none;
+			  lang_add_wild (&tmp, NULL, ldgram_had_keep);
+			}
+    break;
+
+  case 117:
+#line 520 "ldgram.y"
+    {
+			  lang_add_wild (NULL, yyvsp[-1].wildcard_list, ldgram_had_keep);
+			}
+    break;
+
+  case 118:
+#line 524 "ldgram.y"
+    {
+			  lang_add_wild (&yyvsp[-3].wildcard, yyvsp[-1].wildcard_list, ldgram_had_keep);
+			}
+    break;
+
+  case 120:
+#line 532 "ldgram.y"
+    { ldgram_had_keep = TRUE; }
+    break;
+
+  case 121:
+#line 534 "ldgram.y"
+    { ldgram_had_keep = FALSE; }
+    break;
+
+  case 123:
+#line 540 "ldgram.y"
+    {
+ 		lang_add_attribute(lang_object_symbols_statement_enum);
+	      	}
+    break;
+
+  case 125:
+#line 545 "ldgram.y"
+    {
+
+		  lang_add_attribute(lang_constructors_statement_enum);
+		}
+    break;
+
+  case 126:
+#line 550 "ldgram.y"
+    {
+		  constructors_sorted = TRUE;
+		  lang_add_attribute (lang_constructors_statement_enum);
+		}
+    break;
+
+  case 128:
+#line 556 "ldgram.y"
+    {
+			  lang_add_data ((int) yyvsp[-3].integer, yyvsp[-1].etree);
+			}
+    break;
+
+  case 129:
+#line 561 "ldgram.y"
+    {
+			  lang_add_fill (yyvsp[-1].fill);
+			}
+    break;
+
+  case 134:
+#line 578 "ldgram.y"
+    { yyval.integer = yyvsp[0].token; }
+    break;
+
+  case 135:
+#line 580 "ldgram.y"
+    { yyval.integer = yyvsp[0].token; }
+    break;
+
+  case 136:
+#line 582 "ldgram.y"
+    { yyval.integer = yyvsp[0].token; }
+    break;
+
+  case 137:
+#line 584 "ldgram.y"
+    { yyval.integer = yyvsp[0].token; }
+    break;
+
+  case 138:
+#line 586 "ldgram.y"
+    { yyval.integer = yyvsp[0].token; }
+    break;
+
+  case 139:
+#line 591 "ldgram.y"
+    {
+		  yyval.fill = exp_get_fill (yyvsp[0].etree,
+				     0,
+				     "fill value",
+				     lang_first_phase_enum);
+		}
+    break;
+
+  case 140:
+#line 601 "ldgram.y"
+    { yyval.fill = yyvsp[0].fill; }
+    break;
+
+  case 141:
+#line 602 "ldgram.y"
+    { yyval.fill = (fill_type *) 0; }
+    break;
+
+  case 142:
+#line 607 "ldgram.y"
+    { yyval.token = '+'; }
+    break;
+
+  case 143:
+#line 609 "ldgram.y"
+    { yyval.token = '-'; }
+    break;
+
+  case 144:
+#line 611 "ldgram.y"
+    { yyval.token = '*'; }
+    break;
+
+  case 145:
+#line 613 "ldgram.y"
+    { yyval.token = '/'; }
+    break;
+
+  case 146:
+#line 615 "ldgram.y"
+    { yyval.token = LSHIFT; }
+    break;
+
+  case 147:
+#line 617 "ldgram.y"
+    { yyval.token = RSHIFT; }
+    break;
+
+  case 148:
+#line 619 "ldgram.y"
+    { yyval.token = '&'; }
+    break;
+
+  case 149:
+#line 621 "ldgram.y"
+    { yyval.token = '|'; }
+    break;
+
+  case 152:
+#line 631 "ldgram.y"
+    {
+		  lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree));
+		}
+    break;
+
+  case 153:
+#line 635 "ldgram.y"
+    {
+		  lang_add_assignment (exp_assop ('=', yyvsp[-2].name,
+						  exp_binop (yyvsp[-1].token,
+							     exp_nameop (NAME,
+									 yyvsp[-2].name),
+							     yyvsp[0].etree)));
+		}
+    break;
+
+  case 154:
+#line 643 "ldgram.y"
+    {
+		  lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree));
+		}
+    break;
+
+  case 161:
+#line 665 "ldgram.y"
+    { region = lang_memory_region_lookup (yyvsp[0].name, TRUE); }
+    break;
+
+  case 162:
+#line 668 "ldgram.y"
+    {}
+    break;
+
+  case 163:
+#line 673 "ldgram.y"
+    { region->current =
+		 region->origin =
+		 exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum);
+}
+    break;
+
+  case 164:
+#line 681 "ldgram.y"
+    { region->length = exp_get_vma(yyvsp[0].etree,
+					       ~((bfd_vma)0),
+					       "length",
+					       lang_first_phase_enum);
+		}
+    break;
+
+  case 165:
+#line 690 "ldgram.y"
+    { /* dummy action to avoid bison 1.25 error message */ }
+    break;
+
+  case 169:
+#line 701 "ldgram.y"
+    { lang_set_flags (region, yyvsp[0].name, 0); }
+    break;
+
+  case 170:
+#line 703 "ldgram.y"
+    { lang_set_flags (region, yyvsp[0].name, 1); }
+    break;
+
+  case 171:
+#line 708 "ldgram.y"
+    { lang_startup(yyvsp[-1].name); }
+    break;
+
+  case 173:
+#line 714 "ldgram.y"
+    { ldemul_hll((char *)NULL); }
+    break;
+
+  case 174:
+#line 719 "ldgram.y"
+    { ldemul_hll(yyvsp[0].name); }
+    break;
+
+  case 175:
+#line 721 "ldgram.y"
+    { ldemul_hll(yyvsp[0].name); }
+    break;
+
+  case 177:
+#line 729 "ldgram.y"
+    { ldemul_syslib(yyvsp[0].name); }
+    break;
+
+  case 179:
+#line 735 "ldgram.y"
+    { lang_float(TRUE); }
+    break;
+
+  case 180:
+#line 737 "ldgram.y"
+    { lang_float(FALSE); }
+    break;
+
+  case 181:
+#line 742 "ldgram.y"
+    {
+		  yyval.nocrossref = NULL;
+		}
+    break;
+
+  case 182:
+#line 746 "ldgram.y"
+    {
+		  struct lang_nocrossref *n;
+
+		  n = (struct lang_nocrossref *) xmalloc (sizeof *n);
+		  n->name = yyvsp[-1].name;
+		  n->next = yyvsp[0].nocrossref;
+		  yyval.nocrossref = n;
+		}
+    break;
+
+  case 183:
+#line 755 "ldgram.y"
+    {
+		  struct lang_nocrossref *n;
+
+		  n = (struct lang_nocrossref *) xmalloc (sizeof *n);
+		  n->name = yyvsp[-2].name;
+		  n->next = yyvsp[0].nocrossref;
+		  yyval.nocrossref = n;
+		}
+    break;
+
+  case 184:
+#line 765 "ldgram.y"
+    { ldlex_expression(); }
+    break;
+
+  case 185:
+#line 767 "ldgram.y"
+    { ldlex_popstate(); yyval.etree=yyvsp[0].etree;}
+    break;
+
+  case 186:
+#line 772 "ldgram.y"
+    { yyval.etree = exp_unop('-', yyvsp[0].etree); }
+    break;
+
+  case 187:
+#line 774 "ldgram.y"
+    { yyval.etree = yyvsp[-1].etree; }
+    break;
+
+  case 188:
+#line 776 "ldgram.y"
+    { yyval.etree = exp_unop((int) yyvsp[-3].integer,yyvsp[-1].etree); }
+    break;
+
+  case 189:
+#line 778 "ldgram.y"
+    { yyval.etree = exp_unop('!', yyvsp[0].etree); }
+    break;
+
+  case 190:
+#line 780 "ldgram.y"
+    { yyval.etree = yyvsp[0].etree; }
+    break;
+
+  case 191:
+#line 782 "ldgram.y"
+    { yyval.etree = exp_unop('~', yyvsp[0].etree);}
+    break;
+
+  case 192:
+#line 785 "ldgram.y"
+    { yyval.etree = exp_binop('*', yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 193:
+#line 787 "ldgram.y"
+    { yyval.etree = exp_binop('/', yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 194:
+#line 789 "ldgram.y"
+    { yyval.etree = exp_binop('%', yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 195:
+#line 791 "ldgram.y"
+    { yyval.etree = exp_binop('+', yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 196:
+#line 793 "ldgram.y"
+    { yyval.etree = exp_binop('-' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 197:
+#line 795 "ldgram.y"
+    { yyval.etree = exp_binop(LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 198:
+#line 797 "ldgram.y"
+    { yyval.etree = exp_binop(RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 199:
+#line 799 "ldgram.y"
+    { yyval.etree = exp_binop(EQ , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 200:
+#line 801 "ldgram.y"
+    { yyval.etree = exp_binop(NE , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 201:
+#line 803 "ldgram.y"
+    { yyval.etree = exp_binop(LE , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 202:
+#line 805 "ldgram.y"
+    { yyval.etree = exp_binop(GE , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 203:
+#line 807 "ldgram.y"
+    { yyval.etree = exp_binop('<' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 204:
+#line 809 "ldgram.y"
+    { yyval.etree = exp_binop('>' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 205:
+#line 811 "ldgram.y"
+    { yyval.etree = exp_binop('&' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 206:
+#line 813 "ldgram.y"
+    { yyval.etree = exp_binop('^' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 207:
+#line 815 "ldgram.y"
+    { yyval.etree = exp_binop('|' , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 208:
+#line 817 "ldgram.y"
+    { yyval.etree = exp_trinop('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 209:
+#line 819 "ldgram.y"
+    { yyval.etree = exp_binop(ANDAND , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 210:
+#line 821 "ldgram.y"
+    { yyval.etree = exp_binop(OROR , yyvsp[-2].etree, yyvsp[0].etree); }
+    break;
+
+  case 211:
+#line 823 "ldgram.y"
+    { yyval.etree = exp_nameop(DEFINED, yyvsp[-1].name); }
+    break;
+
+  case 212:
+#line 825 "ldgram.y"
+    { yyval.etree = exp_bigintop (yyvsp[0].bigint.integer, yyvsp[0].bigint.str); }
+    break;
+
+  case 213:
+#line 827 "ldgram.y"
+    { yyval.etree = exp_nameop(SIZEOF_HEADERS,0); }
+    break;
+
+  case 214:
+#line 830 "ldgram.y"
+    { yyval.etree = exp_nameop(SIZEOF,yyvsp[-1].name); }
+    break;
+
+  case 215:
+#line 832 "ldgram.y"
+    { yyval.etree = exp_nameop(ADDR,yyvsp[-1].name); }
+    break;
+
+  case 216:
+#line 834 "ldgram.y"
+    { yyval.etree = exp_nameop(LOADADDR,yyvsp[-1].name); }
+    break;
+
+  case 217:
+#line 836 "ldgram.y"
+    { yyval.etree = exp_unop(ABSOLUTE, yyvsp[-1].etree); }
+    break;
+
+  case 218:
+#line 838 "ldgram.y"
+    { yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); }
+    break;
+
+  case 219:
+#line 840 "ldgram.y"
+    { yyval.etree = exp_binop(ALIGN_K,yyvsp[-3].etree,yyvsp[-1].etree); }
+    break;
+
+  case 220:
+#line 842 "ldgram.y"
+    { yyval.etree = exp_binop (DATA_SEGMENT_ALIGN, yyvsp[-3].etree, yyvsp[-1].etree); }
+    break;
+
+  case 221:
+#line 844 "ldgram.y"
+    { yyval.etree = exp_binop (DATA_SEGMENT_RELRO_END, yyvsp[-1].etree, yyvsp[-3].etree); }
+    break;
+
+  case 222:
+#line 846 "ldgram.y"
+    { yyval.etree = exp_unop(DATA_SEGMENT_END, yyvsp[-1].etree); }
+    break;
+
+  case 223:
+#line 848 "ldgram.y"
+    { /* The operands to the expression node are
+			     placed in the opposite order from the way
+			     in which they appear in the script as
+			     that allows us to reuse more code in
+			     fold_binary.  */
+			  yyval.etree = exp_binop (SEGMENT_START,
+					  yyvsp[-1].etree,
+					  exp_nameop (NAME, yyvsp[-3].name)); }
+    break;
+
+  case 224:
+#line 857 "ldgram.y"
+    { yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); }
+    break;
+
+  case 225:
+#line 859 "ldgram.y"
+    { yyval.etree = exp_nameop(NAME,yyvsp[0].name); }
+    break;
+
+  case 226:
+#line 861 "ldgram.y"
+    { yyval.etree = exp_binop (MAX_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
+    break;
+
+  case 227:
+#line 863 "ldgram.y"
+    { yyval.etree = exp_binop (MIN_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
+    break;
+
+  case 228:
+#line 865 "ldgram.y"
+    { yyval.etree = exp_assert (yyvsp[-3].etree, yyvsp[-1].name); }
+    break;
+
+  case 229:
+#line 870 "ldgram.y"
+    { yyval.name = yyvsp[0].name; }
+    break;
+
+  case 230:
+#line 871 "ldgram.y"
+    { yyval.name = 0; }
+    break;
+
+  case 231:
+#line 875 "ldgram.y"
+    { yyval.etree = yyvsp[-1].etree; }
+    break;
+
+  case 232:
+#line 876 "ldgram.y"
+    { yyval.etree = 0; }
+    break;
+
+  case 233:
+#line 880 "ldgram.y"
+    { yyval.etree = yyvsp[-1].etree; }
+    break;
+
+  case 234:
+#line 881 "ldgram.y"
+    { yyval.etree = 0; }
+    break;
+
+  case 235:
+#line 885 "ldgram.y"
+    { yyval.token = ONLY_IF_RO; }
+    break;
+
+  case 236:
+#line 886 "ldgram.y"
+    { yyval.token = ONLY_IF_RW; }
+    break;
+
+  case 237:
+#line 887 "ldgram.y"
+    { yyval.token = 0; }
+    break;
+
+  case 238:
+#line 890 "ldgram.y"
+    { ldlex_expression(); }
+    break;
+
+  case 239:
+#line 893 "ldgram.y"
+    { ldlex_popstate (); ldlex_script (); }
+    break;
+
+  case 240:
+#line 896 "ldgram.y"
+    {
+			  lang_enter_output_section_statement(yyvsp[-7].name, yyvsp[-5].etree,
+							      sectype,
+							      0, yyvsp[-3].etree, yyvsp[-4].etree, yyvsp[-1].token);
+			}
+    break;
+
+  case 241:
+#line 902 "ldgram.y"
+    { ldlex_popstate (); ldlex_expression (); }
+    break;
+
+  case 242:
+#line 904 "ldgram.y"
+    {
+		  ldlex_popstate ();
+		  lang_leave_output_section_statement (yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
+		}
+    break;
+
+  case 243:
+#line 909 "ldgram.y"
+    {}
+    break;
+
+  case 244:
+#line 911 "ldgram.y"
+    { ldlex_expression (); }
+    break;
+
+  case 245:
+#line 913 "ldgram.y"
+    { ldlex_popstate (); ldlex_script (); }
+    break;
+
+  case 246:
+#line 915 "ldgram.y"
+    {
+			  lang_enter_overlay (yyvsp[-5].etree, yyvsp[-2].etree);
+			}
+    break;
+
+  case 247:
+#line 920 "ldgram.y"
+    { ldlex_popstate (); ldlex_expression (); }
+    break;
+
+  case 248:
+#line 922 "ldgram.y"
+    {
+			  ldlex_popstate ();
+			  lang_leave_overlay (yyvsp[-11].etree, (int) yyvsp[-12].integer,
+					      yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
+			}
+    break;
+
+  case 250:
+#line 932 "ldgram.y"
+    { ldlex_expression (); }
+    break;
+
+  case 251:
+#line 934 "ldgram.y"
+    {
+		  ldlex_popstate ();
+		  lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree));
+		}
+    break;
+
+  case 253:
+#line 942 "ldgram.y"
+    { sectype = noload_section; }
+    break;
+
+  case 254:
+#line 943 "ldgram.y"
+    { sectype = dsect_section; }
+    break;
+
+  case 255:
+#line 944 "ldgram.y"
+    { sectype = copy_section; }
+    break;
+
+  case 256:
+#line 945 "ldgram.y"
+    { sectype = info_section; }
+    break;
+
+  case 257:
+#line 946 "ldgram.y"
+    { sectype = overlay_section; }
+    break;
+
+  case 259:
+#line 951 "ldgram.y"
+    { sectype = normal_section; }
+    break;
+
+  case 260:
+#line 952 "ldgram.y"
+    { sectype = normal_section; }
+    break;
+
+  case 261:
+#line 956 "ldgram.y"
+    { yyval.etree = yyvsp[-2].etree; }
+    break;
+
+  case 262:
+#line 957 "ldgram.y"
+    { yyval.etree = (etree_type *)NULL;  }
+    break;
+
+  case 263:
+#line 962 "ldgram.y"
+    { yyval.etree = yyvsp[-3].etree; }
+    break;
+
+  case 264:
+#line 964 "ldgram.y"
+    { yyval.etree = yyvsp[-7].etree; }
+    break;
+
+  case 265:
+#line 968 "ldgram.y"
+    { yyval.etree = yyvsp[-1].etree; }
+    break;
+
+  case 266:
+#line 969 "ldgram.y"
+    { yyval.etree = (etree_type *) NULL;  }
+    break;
+
+  case 267:
+#line 974 "ldgram.y"
+    { yyval.integer = 0; }
+    break;
+
+  case 268:
+#line 976 "ldgram.y"
+    { yyval.integer = 1; }
+    break;
+
+  case 269:
+#line 981 "ldgram.y"
+    { yyval.name = yyvsp[0].name; }
+    break;
+
+  case 270:
+#line 982 "ldgram.y"
+    { yyval.name = DEFAULT_MEMORY_REGION; }
+    break;
+
+  case 271:
+#line 987 "ldgram.y"
+    {
+		  yyval.section_phdr = NULL;
+		}
+    break;
+
+  case 272:
+#line 991 "ldgram.y"
+    {
+		  struct lang_output_section_phdr_list *n;
+
+		  n = ((struct lang_output_section_phdr_list *)
+		       xmalloc (sizeof *n));
+		  n->name = yyvsp[0].name;
+		  n->used = FALSE;
+		  n->next = yyvsp[-2].section_phdr;
+		  yyval.section_phdr = n;
+		}
+    break;
+
+  case 274:
+#line 1007 "ldgram.y"
+    {
+			  ldlex_script ();
+			  lang_enter_overlay_section (yyvsp[0].name);
+			}
+    break;
+
+  case 275:
+#line 1012 "ldgram.y"
+    { ldlex_popstate (); ldlex_expression (); }
+    break;
+
+  case 276:
+#line 1014 "ldgram.y"
+    {
+			  ldlex_popstate ();
+			  lang_leave_overlay_section (yyvsp[0].fill, yyvsp[-1].section_phdr);
+			}
+    break;
+
+  case 281:
+#line 1031 "ldgram.y"
+    { ldlex_expression (); }
+    break;
+
+  case 282:
+#line 1032 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 283:
+#line 1034 "ldgram.y"
+    {
+		  lang_new_phdr (yyvsp[-5].name, yyvsp[-3].etree, yyvsp[-2].phdr.filehdr, yyvsp[-2].phdr.phdrs, yyvsp[-2].phdr.at,
+				 yyvsp[-2].phdr.flags);
+		}
+    break;
+
+  case 284:
+#line 1042 "ldgram.y"
+    {
+		  yyval.etree = yyvsp[0].etree;
+
+		  if (yyvsp[0].etree->type.node_class == etree_name
+		      && yyvsp[0].etree->type.node_code == NAME)
+		    {
+		      const char *s;
+		      unsigned int i;
+		      static const char * const phdr_types[] =
+			{
+			  "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
+			  "PT_INTERP", "PT_NOTE", "PT_SHLIB",
+			  "PT_PHDR", "PT_TLS"
+			};
+
+		      s = yyvsp[0].etree->name.name;
+		      for (i = 0;
+			   i < sizeof phdr_types / sizeof phdr_types[0];
+			   i++)
+			if (strcmp (s, phdr_types[i]) == 0)
+			  {
+			    yyval.etree = exp_intop (i);
+			    break;
+			  }
+		      if (i == sizeof phdr_types / sizeof phdr_types[0])
+			{
+			  if (strcmp (s, "PT_GNU_EH_FRAME") == 0)
+			    yyval.etree = exp_intop (0x6474e550);
+			  else if (strcmp (s, "PT_GNU_STACK") == 0)
+			    yyval.etree = exp_intop (0x6474e551);
+			  else
+			    {
+			      einfo (_("\
+%X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
+				     s);
+			      yyval.etree = exp_intop (0);
+			    }
+			}
+		    }
+		}
+    break;
+
+  case 285:
+#line 1086 "ldgram.y"
+    {
+		  memset (&yyval.phdr, 0, sizeof (struct phdr_info));
+		}
+    break;
+
+  case 286:
+#line 1090 "ldgram.y"
+    {
+		  yyval.phdr = yyvsp[0].phdr;
+		  if (strcmp (yyvsp[-2].name, "FILEHDR") == 0 && yyvsp[-1].etree == NULL)
+		    yyval.phdr.filehdr = TRUE;
+		  else if (strcmp (yyvsp[-2].name, "PHDRS") == 0 && yyvsp[-1].etree == NULL)
+		    yyval.phdr.phdrs = TRUE;
+		  else if (strcmp (yyvsp[-2].name, "FLAGS") == 0 && yyvsp[-1].etree != NULL)
+		    yyval.phdr.flags = yyvsp[-1].etree;
+		  else
+		    einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), yyvsp[-2].name);
+		}
+    break;
+
+  case 287:
+#line 1102 "ldgram.y"
+    {
+		  yyval.phdr = yyvsp[0].phdr;
+		  yyval.phdr.at = yyvsp[-2].etree;
+		}
+    break;
+
+  case 288:
+#line 1110 "ldgram.y"
+    {
+		  yyval.etree = NULL;
+		}
+    break;
+
+  case 289:
+#line 1114 "ldgram.y"
+    {
+		  yyval.etree = yyvsp[-1].etree;
+		}
+    break;
+
+  case 290:
+#line 1122 "ldgram.y"
+    {
+		  ldlex_version_file ();
+		  PUSH_ERROR (_("VERSION script"));
+		}
+    break;
+
+  case 291:
+#line 1127 "ldgram.y"
+    {
+		  ldlex_popstate ();
+		  POP_ERROR ();
+		}
+    break;
+
+  case 292:
+#line 1136 "ldgram.y"
+    {
+		  ldlex_version_script ();
+		}
+    break;
+
+  case 293:
+#line 1140 "ldgram.y"
+    {
+		  ldlex_popstate ();
+		}
+    break;
+
+  case 296:
+#line 1152 "ldgram.y"
+    {
+		  lang_register_vers_node (NULL, yyvsp[-2].versnode, NULL);
+		}
+    break;
+
+  case 297:
+#line 1156 "ldgram.y"
+    {
+		  lang_register_vers_node (yyvsp[-4].name, yyvsp[-2].versnode, NULL);
+		}
+    break;
+
+  case 298:
+#line 1160 "ldgram.y"
+    {
+		  lang_register_vers_node (yyvsp[-5].name, yyvsp[-3].versnode, yyvsp[-1].deflist);
+		}
+    break;
+
+  case 299:
+#line 1167 "ldgram.y"
+    {
+		  yyval.deflist = lang_add_vers_depend (NULL, yyvsp[0].name);
+		}
+    break;
+
+  case 300:
+#line 1171 "ldgram.y"
+    {
+		  yyval.deflist = lang_add_vers_depend (yyvsp[-1].deflist, yyvsp[0].name);
+		}
+    break;
+
+  case 301:
+#line 1178 "ldgram.y"
+    {
+		  yyval.versnode = lang_new_vers_node (NULL, NULL);
+		}
+    break;
+
+  case 302:
+#line 1182 "ldgram.y"
+    {
+		  yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
+		}
+    break;
+
+  case 303:
+#line 1186 "ldgram.y"
+    {
+		  yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
+		}
+    break;
+
+  case 304:
+#line 1190 "ldgram.y"
+    {
+		  yyval.versnode = lang_new_vers_node (NULL, yyvsp[-1].versyms);
+		}
+    break;
+
+  case 305:
+#line 1194 "ldgram.y"
+    {
+		  yyval.versnode = lang_new_vers_node (yyvsp[-5].versyms, yyvsp[-1].versyms);
+		}
+    break;
+
+  case 306:
+#line 1201 "ldgram.y"
+    {
+		  yyval.versyms = lang_new_vers_pattern (NULL, yyvsp[0].name, ldgram_vers_current_lang);
+		}
+    break;
+
+  case 307:
+#line 1205 "ldgram.y"
+    {
+		  yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang);
+		}
+    break;
+
+  case 308:
+#line 1209 "ldgram.y"
+    {
+			  yyval.name = ldgram_vers_current_lang;
+			  ldgram_vers_current_lang = yyvsp[-1].name;
+			}
+    break;
+
+  case 309:
+#line 1214 "ldgram.y"
+    {
+			  yyval.versyms = yyvsp[-2].versyms;
+			  ldgram_vers_current_lang = yyvsp[-3].name;
+			}
+    break;
+
+  case 310:
+#line 1219 "ldgram.y"
+    {
+			  yyval.name = ldgram_vers_current_lang;
+			  ldgram_vers_current_lang = yyvsp[-1].name;
+			}
+    break;
+
+  case 311:
+#line 1224 "ldgram.y"
+    {
+			  yyval.versyms = yyvsp[-2].versyms;
+			  ldgram_vers_current_lang = yyvsp[-3].name;
+			}
+    break;
+
+
+    }
+
+/* Line 999 of yacc.c.  */
+#line 3593 "y.tab.c"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+
+
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
+	{
+	  YYSIZE_T yysize = 0;
+	  int yytype = YYTRANSLATE (yychar);
+	  char *yymsg;
+	  int yyx, yycount;
+
+	  yycount = 0;
+	  /* Start YYX at -YYN if negative to avoid negative indexes in
+	     YYCHECK.  */
+	  for (yyx = yyn < 0 ? -yyn : 0;
+	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+	  yysize += yystrlen ("syntax error, unexpected ") + 1;
+	  yysize += yystrlen (yytname[yytype]);
+	  yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg != 0)
+	    {
+	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+	      yyp = yystpcpy (yyp, yytname[yytype]);
+
+	      if (yycount < 5)
+		{
+		  yycount = 0;
+		  for (yyx = yyn < 0 ? -yyn : 0;
+		       yyx < (int) (sizeof (yytname) / sizeof (char *));
+		       yyx++)
+		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+		      {
+			const char *yyq = ! yycount ? ", expecting " : " or ";
+			yyp = yystpcpy (yyp, yyq);
+			yyp = yystpcpy (yyp, yytname[yyx]);
+			yycount++;
+		      }
+		}
+	      yyerror (yymsg);
+	      YYSTACK_FREE (yymsg);
+	    }
+	  else
+	    yyerror ("syntax error; also virtual memory exhausted");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror ("syntax error");
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse lookahead token after an
+	 error, discard it.  */
+
+      /* Return failure if at end of input.  */
+      if (yychar == YYEOF)
+        {
+	  /* Pop the error token.  */
+          YYPOPSTACK;
+	  /* Pop the rest of the stack.  */
+	  while (yyss < yyssp)
+	    {
+	      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+	      yydestruct (yystos[*yyssp], yyvsp);
+	      YYPOPSTACK;
+	    }
+	  YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
+      yychar = YYEMPTY;
+
+    }
+
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
+
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  YYDPRINTF ((stderr, "Shifting error token, "));
+
+  *++yyvsp = yylval;
+
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
+yyoverflowlab:
+  yyerror ("parser stack overflow");
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+  return yyresult;
+}
+
+
+#line 1235 "ldgram.y"
+
+void
+yyerror(arg)
+     const char *arg;
+{
+  if (ldfile_assumed_script)
+    einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
+	   ldfile_input_filename);
+  if (error_index > 0 && error_index < ERROR_NAME_MAX)
+     einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
+  else
+     einfo ("%P%F:%S: %s\n", arg);
+}
+
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ld/ldgram.h binutils-2004-q3d-uclibc/ld/ldgram.h
--- binutils-2004-q3d-pristine/ld/ldgram.h	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/ld/ldgram.h	2005-02-24 10:35:21.000000000 +0200
@@ -0,0 +1,300 @@
+/* A Bison parser, made by GNU Bison 1.875a.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     INT = 258,
+     NAME = 259,
+     LNAME = 260,
+     OREQ = 261,
+     ANDEQ = 262,
+     RSHIFTEQ = 263,
+     LSHIFTEQ = 264,
+     DIVEQ = 265,
+     MULTEQ = 266,
+     MINUSEQ = 267,
+     PLUSEQ = 268,
+     OROR = 269,
+     ANDAND = 270,
+     NE = 271,
+     EQ = 272,
+     GE = 273,
+     LE = 274,
+     RSHIFT = 275,
+     LSHIFT = 276,
+     UNARY = 277,
+     END = 278,
+     ALIGN_K = 279,
+     BLOCK = 280,
+     BIND = 281,
+     QUAD = 282,
+     SQUAD = 283,
+     LONG = 284,
+     SHORT = 285,
+     BYTE = 286,
+     SECTIONS = 287,
+     PHDRS = 288,
+     DATA_SEGMENT_ALIGN = 289,
+     DATA_SEGMENT_RELRO_END = 290,
+     DATA_SEGMENT_END = 291,
+     SORT_BY_NAME = 292,
+     SORT_BY_ALIGNMENT = 293,
+     SIZEOF_HEADERS = 294,
+     OUTPUT_FORMAT = 295,
+     FORCE_COMMON_ALLOCATION = 296,
+     OUTPUT_ARCH = 297,
+     INHIBIT_COMMON_ALLOCATION = 298,
+     SEGMENT_START = 299,
+     INCLUDE = 300,
+     MEMORY = 301,
+     DEFSYMEND = 302,
+     NOLOAD = 303,
+     DSECT = 304,
+     COPY = 305,
+     INFO = 306,
+     OVERLAY = 307,
+     DEFINED = 308,
+     TARGET_K = 309,
+     SEARCH_DIR = 310,
+     MAP = 311,
+     ENTRY = 312,
+     NEXT = 313,
+     SIZEOF = 314,
+     ADDR = 315,
+     LOADADDR = 316,
+     MAX_K = 317,
+     MIN_K = 318,
+     STARTUP = 319,
+     HLL = 320,
+     SYSLIB = 321,
+     FLOAT = 322,
+     NOFLOAT = 323,
+     NOCROSSREFS = 324,
+     ORIGIN = 325,
+     FILL = 326,
+     LENGTH = 327,
+     CREATE_OBJECT_SYMBOLS = 328,
+     INPUT = 329,
+     GROUP = 330,
+     OUTPUT = 331,
+     CONSTRUCTORS = 332,
+     ALIGNMOD = 333,
+     AT = 334,
+     SUBALIGN = 335,
+     PROVIDE = 336,
+     CHIP = 337,
+     LIST = 338,
+     SECT = 339,
+     ABSOLUTE = 340,
+     LOAD = 341,
+     NEWLINE = 342,
+     ENDWORD = 343,
+     ORDER = 344,
+     NAMEWORD = 345,
+     ASSERT_K = 346,
+     FORMAT = 347,
+     PUBLIC = 348,
+     BASE = 349,
+     ALIAS = 350,
+     TRUNCATE = 351,
+     REL = 352,
+     INPUT_SCRIPT = 353,
+     INPUT_MRI_SCRIPT = 354,
+     INPUT_DEFSYM = 355,
+     CASE = 356,
+     EXTERN = 357,
+     START = 358,
+     VERS_TAG = 359,
+     VERS_IDENTIFIER = 360,
+     GLOBAL = 361,
+     LOCAL = 362,
+     VERSIONK = 363,
+     INPUT_VERSION_SCRIPT = 364,
+     KEEP = 365,
+     ONLY_IF_RO = 366,
+     ONLY_IF_RW = 367,
+     EXCLUDE_FILE = 368
+   };
+#endif
+#define INT 258
+#define NAME 259
+#define LNAME 260
+#define OREQ 261
+#define ANDEQ 262
+#define RSHIFTEQ 263
+#define LSHIFTEQ 264
+#define DIVEQ 265
+#define MULTEQ 266
+#define MINUSEQ 267
+#define PLUSEQ 268
+#define OROR 269
+#define ANDAND 270
+#define NE 271
+#define EQ 272
+#define GE 273
+#define LE 274
+#define RSHIFT 275
+#define LSHIFT 276
+#define UNARY 277
+#define END 278
+#define ALIGN_K 279
+#define BLOCK 280
+#define BIND 281
+#define QUAD 282
+#define SQUAD 283
+#define LONG 284
+#define SHORT 285
+#define BYTE 286
+#define SECTIONS 287
+#define PHDRS 288
+#define DATA_SEGMENT_ALIGN 289
+#define DATA_SEGMENT_RELRO_END 290
+#define DATA_SEGMENT_END 291
+#define SORT_BY_NAME 292
+#define SORT_BY_ALIGNMENT 293
+#define SIZEOF_HEADERS 294
+#define OUTPUT_FORMAT 295
+#define FORCE_COMMON_ALLOCATION 296
+#define OUTPUT_ARCH 297
+#define INHIBIT_COMMON_ALLOCATION 298
+#define SEGMENT_START 299
+#define INCLUDE 300
+#define MEMORY 301
+#define DEFSYMEND 302
+#define NOLOAD 303
+#define DSECT 304
+#define COPY 305
+#define INFO 306
+#define OVERLAY 307
+#define DEFINED 308
+#define TARGET_K 309
+#define SEARCH_DIR 310
+#define MAP 311
+#define ENTRY 312
+#define NEXT 313
+#define SIZEOF 314
+#define ADDR 315
+#define LOADADDR 316
+#define MAX_K 317
+#define MIN_K 318
+#define STARTUP 319
+#define HLL 320
+#define SYSLIB 321
+#define FLOAT 322
+#define NOFLOAT 323
+#define NOCROSSREFS 324
+#define ORIGIN 325
+#define FILL 326
+#define LENGTH 327
+#define CREATE_OBJECT_SYMBOLS 328
+#define INPUT 329
+#define GROUP 330
+#define OUTPUT 331
+#define CONSTRUCTORS 332
+#define ALIGNMOD 333
+#define AT 334
+#define SUBALIGN 335
+#define PROVIDE 336
+#define CHIP 337
+#define LIST 338
+#define SECT 339
+#define ABSOLUTE 340
+#define LOAD 341
+#define NEWLINE 342
+#define ENDWORD 343
+#define ORDER 344
+#define NAMEWORD 345
+#define ASSERT_K 346
+#define FORMAT 347
+#define PUBLIC 348
+#define BASE 349
+#define ALIAS 350
+#define TRUNCATE 351
+#define REL 352
+#define INPUT_SCRIPT 353
+#define INPUT_MRI_SCRIPT 354
+#define INPUT_DEFSYM 355
+#define CASE 356
+#define EXTERN 357
+#define START 358
+#define VERS_TAG 359
+#define VERS_IDENTIFIER 360
+#define GLOBAL 361
+#define LOCAL 362
+#define VERSIONK 363
+#define INPUT_VERSION_SCRIPT 364
+#define KEEP 365
+#define ONLY_IF_RO 366
+#define ONLY_IF_RW 367
+#define EXCLUDE_FILE 368
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 67 "ldgram.y"
+typedef union YYSTYPE {
+  bfd_vma integer;
+  struct big_int
+    {
+      bfd_vma integer;
+      char *str;
+    } bigint;
+  fill_type *fill;
+  char *name;
+  const char *cname;
+  struct wildcard_spec wildcard;
+  struct wildcard_list *wildcard_list;
+  struct name_list *name_list;
+  int token;
+  union etree_union *etree;
+  struct phdr_info
+    {
+      bfd_boolean filehdr;
+      bfd_boolean phdrs;
+      union etree_union *at;
+      union etree_union *flags;
+    } phdr;
+  struct lang_nocrossref *nocrossref;
+  struct lang_output_section_phdr_list *section_phdr;
+  struct bfd_elf_version_deps *deflist;
+  struct bfd_elf_version_expr *versyms;
+  struct bfd_elf_version_tree *versnode;
+} YYSTYPE;
+/* Line 1240 of yacc.c.  */
+#line 292 "y.tab.h"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYSTYPE yylval;
+
+
+
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ld/ldlex.c binutils-2004-q3d-uclibc/ld/ldlex.c
--- binutils-2004-q3d-pristine/ld/ldlex.c	1970-01-01 02:00:00.000000000 +0200
+++ binutils-2004-q3d-uclibc/ld/ldlex.c	2005-02-24 10:35:23.000000000 +0200
@@ -0,0 +1,3773 @@
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /work/migration/cvsroot/sb-toolchains/patch_files/binutils/binutils-2004-q3d-sb-uclibc.patch,v 1.2 2005/03/08 07:17:42 rkekki Exp $
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+#include <stdio.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif	/* __STDC__ */
+#endif	/* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator).  This
+ * avoids problems with code like:
+ *
+ * 	if ( condition_holds )
+ *		yyless( 5 );
+ *	else
+ *		do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		*yy_cp = yy_hold_char; \
+		YY_RESTORE_YY_MORE_OFFSET \
+		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	int yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+	};
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	yytext_ptr = yy_bp; \
+	yyleng = (int) (yy_cp - yy_bp); \
+	yy_hold_char = *yy_cp; \
+	*yy_cp = '\0'; \
+	yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 179
+#define YY_END_OF_BUFFER 180
+static yyconst short int yy_accept[1260] =
+    {   0,
+        0,    0,  159,  159,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  180,  179,
+      177,  162,  161,   32,  177,  159,   38,   29,   44,   43,
+       34,   35,   28,   36,  159,   37,    8,    8,   45,   46,
+       39,   40,   27,   33,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,   10,    9,  159,  108,  106,  159,   42,
+       30,   41,   31,  178,  162,   32,  178,  157,   38,   29,
+       44,   43,   34,   35,   28,   36,  157,   37,    8,    8,
+       45,   46,   39,   40,   27,   33,  157,  157,  157,  157,
+
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,   10,    9,  157,  157,   42,   30,   41,   31,  157,
+        8,    8,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      108,  106,    4,    3,    2,    4,    5,  118,  117,  156,
+       34,   35,   28,   36,  156,   37,    8,    8,   45,   46,
+       40,   33,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,   10,    9,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,   31,  176,  174,
+      175,  177,  169,  168,  163,  170,  171,  167,  167,  167,
+
+      167,  172,  173,  162,   15,    0,  160,  159,    8,   26,
+       24,   22,   20,   21,    1,   23,    8,    8,  159,   18,
+       17,   14,   16,   19,  159,  159,  159,  112,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,   25,   13,  157,    6,   22,   20,   21,    0,
+        1,   23,    8,    0,    7,    7,    8,    7,   14,  157,
+        7,    7,    7,  157,  157,  112,    7,  157,  157,    7,
+
+      157,  157,  157,    7,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,    7,  157,
+        8,    8,    0,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,    4,    4,
+      117,  117,  156,    6,  119,   22,   23,  120,  156,    7,
+        7,    7,  156,  156,  156,    7,  156,    7,    7,  156,
+      156,  156,  156,  156,  156,  156,  156,    7,  156,  156,
+      156,    7,  156,    7,    7,  156,  156,  156,  156,  156,
+
+      156,  156,  156,  176,  175,  168,  167,    0,  167,  167,
+      167,   11,   12,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,   85,  159,  159,  159,  159,  159,  159,  159,
+      159,   68,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  109,  107,  159,
+        8,  158,    8,  157,    7,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,   59,   60,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,   85,  157,  157,  157,  157,  157,   68,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  109,  107,    4,    8,  156,  156,
+      156,  156,  156,  121,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  138,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      167,  167,  167,  159,   57,  159,   51,  159,   92,  159,
+      101,  159,  159,  159,  159,  159,  159,  159,   81,  159,
+      159,  159,  159,  102,  159,  159,  115,  159,  159,   90,
+
+      159,   64,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,   88,  159,  159,  159,  159,  159,   98,  159,  159,
+      159,  159,  159,  159,  159,  159,  157,   57,  157,  157,
+       51,  157,  101,  157,  157,  157,  157,  157,  102,  115,
+      157,   64,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,   92,  157,  157,  157,  157,   81,  157,  157,
+      157,  157,  157,  157,   90,  157,  157,  157,  157,  157,
+      157,   88,  157,  157,  157,   98,  157,  157,  157,  157,
+      157,  156,  156,  156,  125,  133,  124,  156,  156,  135,
+      128,  131,  156,  156,  136,  156,  156,  156,  156,  156,
+
+      142,  150,  141,  156,  156,  153,  145,  148,  156,  156,
+      154,  156,  156,  167,  167,  167,  159,   53,   50,  159,
+      159,  159,  159,  100,   62,  159,  159,   87,  159,   74,
+      159,  159,   73,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  111,  159,  159,  159,  159,   91,  159,
+      159,   89,  159,  159,  159,  159,  159,  159,  159,  157,
+       53,  157,   50,  157,  157,  100,  157,   74,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,   62,  157,   87,  157,  157,  157,   73,  157,  157,
+      157,  157,  157,  157,  111,  157,  157,   91,  157,   89,
+
+      157,  157,  157,  157,  156,  126,  123,  156,  156,  135,
+      135,  130,  156,  134,  156,  156,  143,  140,  156,  156,
+      153,  153,  147,  156,  152,  156,  167,  167,  165,  159,
+      159,  159,  159,  159,  159,   63,  159,  159,  159,   52,
+      159,   47,  159,  159,   99,  159,   48,   72,  159,  159,
+      159,  159,  159,   69,  159,  159,  159,   86,   70,  159,
+      159,  159,  157,   61,  157,  157,  157,  157,  157,   99,
+      157,  157,  157,  157,   69,  157,  157,  157,  157,  157,
+       63,  157,  157,  157,   52,   47,  157,   48,   72,  157,
+      157,  157,  157,  157,   86,   70,  157,  156,  156,   63,
+
+      132,  129,  156,  156,  156,  151,  149,  146,  156,  166,
+      164,  159,  159,  159,  159,   75,  159,  159,  110,  159,
+      159,  159,   93,  159,  159,   95,  114,  159,  159,  159,
+      159,  159,   82,  159,   49,  159,  159,  157,  157,   75,
+      157,  157,  157,  157,  103,  114,  157,  157,  157,  157,
+      157,  157,  157,  157,  110,  157,   93,  157,   95,  157,
+      157,  157,   82,   49,  156,  156,  156,  156,  156,  156,
+      137,  159,  159,  159,  159,  159,  159,   58,  159,  159,
+      159,  159,  159,   80,  159,  159,  159,  113,  155,  159,
+      137,  157,  157,   58,  157,  157,  157,  157,  113,  155,
+
+      157,  157,  157,  157,  157,  157,  157,  157,   80,  157,
+      137,  122,  127,  155,  139,  144,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  157,  157,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  159,  159,
+      159,  159,  159,  159,  159,  104,  105,  159,  159,   71,
+      159,  159,  159,  159,  159,  157,  157,  157,  104,  105,
+      157,  157,  157,  157,  157,  157,  157,  157,  157,   71,
+      157,  157,  159,  159,  159,  159,  159,  159,   94,   84,
+      159,  159,  159,  159,  159,  159,  157,  157,   94,  157,
+
+      157,  157,  157,  157,  157,  157,   84,  157,  157,  157,
+       77,  159,  159,  116,  159,  159,  159,  159,  159,  159,
+       96,  159,  157,  116,  157,  157,  157,   77,  157,  157,
+      157,  157,  157,   96,  159,  159,  159,  159,   83,   67,
+      159,  159,  159,  157,   67,  157,  157,  157,  157,  157,
+       83,  157,  159,  159,  159,  159,  159,  159,   66,  159,
+       65,  157,  157,  157,   66,   65,  157,  157,  157,  157,
+      159,  159,  159,  159,  159,  159,  159,  157,  157,  157,
+      157,  157,  157,  157,  159,  159,   56,  159,  159,  159,
+      159,  157,   56,  157,  157,  157,  157,  157,  159,  159,
+
+      159,  159,  159,   97,  157,  157,  157,  157,  157,   97,
+      159,   54,  159,  159,  159,   54,  157,  157,  157,  157,
+      159,  159,  159,  159,  157,  157,  157,  157,  159,  159,
+      159,  159,  157,  157,  157,  157,   76,  159,  159,  159,
+      157,   76,  157,  157,   55,  159,  159,   55,  157,  157,
+       78,  159,   78,  157,  159,  157,   79,   79,    0
+    } ;
+
+static yyconst int yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    4,    5,    6,    7,    8,    9,    1,   10,
+       11,   12,   13,   14,   15,   16,   17,   18,   19,   19,
+       19,   19,   19,   19,   19,   19,   19,   20,   21,   22,
+       23,   24,   25,    1,   26,   27,   28,   29,   30,   31,
+       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
+       42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
+       52,   53,   54,   55,   56,    1,   57,   58,   59,   60,
+
+       61,   62,   63,   64,   65,   16,   66,   67,   68,   69,
+       70,   71,   16,   72,   73,   74,   75,   16,   16,   76,
+       16,   77,   78,   79,   80,   81,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yyconst int yy_meta[82] =
+    {   0,
+        1,    1,    2,    3,    1,    1,    4,    1,    1,    1,
+        1,    5,    6,    7,    8,    9,   10,   11,   11,    8,
+        1,    1,    7,    1,    5,   11,   11,   11,   11,   11,
+       11,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    8,    4,    8,    3,    9,   11,   11,   11,   11,
+       11,   11,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    1,    1,    1,
+       10
+    } ;
+
+static yyconst short int yy_base[1282] =
+    {   0,
+        0,    0,    0,    0,   81,    0,  156,    0,  226,  306,
+      386,    0,  164,  174,  467,  548,  629,  710, 2173, 2174,
+     2174, 2170, 2174, 2148, 2165,  774, 2174,  155, 2174, 2174,
+     2146, 2145,    0, 2144,    0,  156,  304,  235,    0, 2174,
+      149, 2143,  181,    0,  229,  172,  159,  181,  171,  223,
+     2122, 2127, 2124, 2132,  225,  139,  229,  229,  234, 2115,
+      249, 2134, 2129,    0,    0, 2100, 2096, 2084, 2090, 2174,
+      185, 2174,    0, 2174, 2152, 2130, 2147,  819, 2174,  261,
+     2174, 2174, 2128, 2127, 2174,  220,    0,  273,  864,  143,
+     2174, 2174,  239, 2126,  269, 2174,  923,  307,  310,  319,
+
+      330,  466, 2105, 2108, 2116, 2105,  264,  303,  326, 2101,
+      332, 2174, 2174,  469, 2078, 2174,  451, 2174,    0,  982,
+      557,  636,  472,  468,  181,  482,  332,  298, 2105, 2102,
+      464,  498,  467,  490,  482, 2094,  544, 2113, 2108, 2079,
+     2075, 2063, 1027, 2174, 2174,    0, 2174, 2174, 2131, 1072,
+     2110, 2109, 2174, 2108,    0, 2107,    0,  506, 2174,    0,
+     2106, 2174, 1117,  554,  571,  504,  572,  578,  342, 2102,
+     2084, 2080,  143, 2082, 2174, 2174,  630,  507,  629,  668,
+      631,  232, 2067, 2051, 2047,  518, 2049,    0, 2118, 2174,
+        0, 2107, 2174,    0, 2174, 2174, 2174, 2098,  463,  518,
+
+      590, 2174, 2174, 2115, 2174, 2111, 2174,    0, 1176, 2174,
+     2174,    0,    0,    0,    0,    0,  717,    0,  623, 2092,
+     2174,    0, 2174, 2091, 2069, 2083, 2077,    0, 2071, 2069,
+     2063,  247, 2077, 2061, 2074, 2074, 2058,  495, 2065, 2061,
+     2057, 2059, 2061,  642, 2067, 2057,  557, 2054, 2056, 2044,
+      585, 2055, 2057, 2045, 2059, 2059, 2047, 2060,  637, 2045,
+     2033, 2040, 2036, 2055, 2053, 2035, 2035, 2034, 2003, 2006,
+     2011, 1996, 2174, 2174,    0, 1227, 2174, 2174, 2174,    0,
+     2174,    0,  538,  730,    0, 2174, 2174,    0, 2174,  713,
+      725,  770,    0, 2038, 2027,    0,  781, 2031, 2029, 2027,
+
+      784,  824, 2037, 2038, 2025, 2033, 2033, 2036, 2012, 2021,
+     2010,  340, 2021, 2027, 2016, 2023, 2003, 2026,  815, 1975,
+      805,  848,    0, 2007, 2021, 2004,  578, 2018, 2002, 2015,
+     2000,  579, 2007, 2003, 1999, 2004,  710, 2001,  638,  494,
+     2001,  648, 2004, 1992, 2006, 2006, 2008,  652, 1993, 1989,
+     1985, 2004, 1985, 1985, 1984, 1953, 1956, 1961,    0, 1278,
+     2020, 2174,    0, 1329,    0,    0, 2174,    0,  644,  719,
+      737,    0, 1988,  738,  862, 1987, 1991, 1974, 1975, 1973,
+     1990, 1977, 1985, 1986, 1984, 1985, 1964,  749, 1944,  757,
+      790, 1943, 1947, 1932, 1933, 1931, 1946, 1934, 1941, 1942,
+
+     1940, 1941, 1922, 1994,    0,    0, 1975, 1974,  624,  592,
+      667, 2174, 2174, 1953, 1949, 1959, 1961, 1961, 1958, 1943,
+     1936, 1959, 1958, 1949, 1954, 1938, 1943, 1949, 1941, 1951,
+     1948, 1929,    0, 1937, 1933, 1938, 1925, 1929, 1937, 1939,
+     1935,    0, 1926, 1920, 1921, 1926, 1922, 1911, 1928, 1918,
+     1915, 1914, 1909, 1926, 1911, 1908, 1914, 1908, 1920, 1904,
+     1922, 1904, 1920, 1908, 1912, 1899, 1872,    0,    0, 1880,
+        0,    0,  849, 1900,  900, 1907, 1908, 1908, 1908, 1885,
+     1908,  874, 1905, 1895, 1885, 1890, 1888, 1899,    0,    0,
+     1882, 1883, 1885, 1874, 1871, 1856, 1854, 1851, 1847, 1800,
+
+     1806, 1823, 1831, 1806, 1813, 1794, 1779, 1790, 1767, 1777,
+     1774,    0, 1764, 1759, 1668, 1681, 1680,    0, 1671, 1673,
+     1677, 1667, 1664, 1663, 1676, 1661, 1658, 1659, 1656, 1674,
+     1656, 1661, 1665, 1652,    0,    0,    0,    0, 1655,  668,
+     1664, 1663, 1650,    0, 1660, 1651, 1643, 1658, 1656, 1655,
+     1647, 1638, 1639, 1642, 1610,  682, 1618, 1617, 1606,    0,
+     1615, 1607, 1600, 1613, 1611, 1610, 1603, 1595, 1596, 1598,
+      621,  702,  752, 1629,    0, 1626,    0, 1628,    0, 1618,
+        0, 1612, 1600, 1616, 1609, 1603, 1606, 1607,    0, 1599,
+     1610, 1593, 1587,    0, 1605, 1586,    0, 1585, 1603,    0,
+
+     1585,    0, 1587, 1586, 1599, 1568, 1589, 1576, 1584, 1576,
+     1585,    0, 1590, 1583, 1586, 1570, 1574, 1557, 1582, 1565,
+     1572, 1574, 1577, 1572, 1538, 1534, 1566,    0, 1563, 1558,
+        0, 1564,    0, 1543, 1559, 1552, 1550, 1554,    0,    0,
+     1568,    0, 1553, 1566, 1535, 1553, 1555, 1558, 1547, 1549,
+     1518, 1514,    0, 1538, 1532, 1526, 1532,    0, 1529, 1543,
+     1526, 1543, 1519, 1515,    0, 1511, 1513, 1518, 1505, 1513,
+     1505,    0, 1520, 1513, 1501, 1489, 1515, 1498, 1508, 1511,
+     1506, 1502, 1494, 1498,    0,    0,    0, 1493, 1509, 1397,
+        0,    0, 1491, 1499,    0, 1486, 1502, 1462, 1455, 1458,
+
+        0,    0,    0, 1454, 1468, 1477,    0,    0, 1452, 1458,
+        0, 1448, 1462,  747,  767,  694, 1474,    0,    0, 1476,
+     1488, 1473, 1486,    0,    0, 1486, 1475,    0, 1457,    0,
+     1483, 1477,    0, 1477, 1480, 1458, 1463, 1480, 1476, 1470,
+     1464, 1452, 1470,    0, 1466, 1461, 1453, 1453,    0, 1459,
+     1457,    0, 1434, 1440, 1446, 1427, 1431, 1395, 1407, 1422,
+        0, 1422,    0, 1422, 1435,    0, 1435,    0, 1434, 1418,
+     1432, 1426, 1433, 1429, 1418, 1425, 1421, 1379, 1391, 1408,
+     1420,    0, 1410,    0, 1392, 1418, 1412,    0, 1412, 1394,
+     1417, 1403, 1396, 1414,    0, 1406, 1398,    0, 1410,    0,
+
+     1390, 1408, 1389, 1393, 1386,    0, 1393, 1391, 1384,    0,
+     1557,    0, 1400,    0, 1401, 1351,    0, 1357, 1355,  138,
+        0, 1637,    0,  241,    0,  312,  796,  803,  363,  455,
+      496,  532,  590,  607,  615,    0,  671,  673,  661,    0,
+      688,    0,  681,  702,    0,  728,    0,  722,  730,  751,
+      739,  773,  775,  783,  790,  813,  824,    0,    0,  818,
+      784,  806,  819,    0,  842,  845,  845,  867,  854,    0,
+      874,  857,  879,  865,  856,  888,  857,  877,  889,  880,
+        0,  910,  909,  901,    0,    0,  902,    0,  892,  905,
+      901,  919,  909,  920,    0,    0,  923,  919,  925,    0,
+
+        0,    0,  921,  895,  900,    0,    0,    0,  897,  953,
+      954,  945,  948,  937,  946,    0,  923,  946,    0,  932,
+      946,  947,    0,  935,  966,    0,    0,  965,  951,  940,
+      965,  946,    0,  964,    0,  943,  941,  976,  975,    0,
+      958,  972,  973,  961,    0,    0,  962,  986,  981,  960,
+      958,  995,  984,  985,    0,  970,    0, 1001,    0,  999,
+      985,  974,    0,    0, 1001, 1004, 1004,  974,  976,  976,
+        0,  993, 1020, 1010, 1018, 1012, 1023,    0, 1022, 1016,
+     1017, 1021, 1028,    0, 1019, 1034, 1039,    0,    0, 1005,
+        0, 1029, 1037,    0, 1039, 1027, 1027, 1042,    0,    0,
+
+     1012, 1029, 1048, 1038, 1049, 1036, 1040, 1047,    0, 1056,
+        0,    0,    0,    0,    0,    0, 1043, 1057, 1063, 1060,
+     1058, 1057, 1073, 1065, 1078, 1064, 1065, 1064, 1084, 1074,
+     1086, 1057, 1085, 1082, 1086, 1078, 1074, 1094, 1064, 1082,
+     1088, 1086, 1085, 1099, 1085, 1094, 1101, 1113, 1097, 1111,
+     1103, 1112, 1111, 1114, 1109,    0,    0, 1122, 1118,    0,
+     1132, 1130, 1126, 1123, 1102, 1124, 1127, 1121,    0,    0,
+     1141, 1139, 1109, 1127, 1141, 1132, 1135, 1147, 1144,    0,
+     1149, 1146, 1141, 1158, 1143, 1159, 1151, 1153,    0,    0,
+     1166, 1153, 1167, 1166, 1169, 1139, 1156, 1178,    0, 1166,
+
+     1180, 1150, 1169, 1187, 1177, 1179,    0, 1192, 1187, 1190,
+        0, 1176, 1166,    0, 1167, 1184, 1180, 1181, 1184, 1189,
+        0, 1157, 1174,    0, 1186, 1189, 1167,    0, 1195, 1185,
+     1203, 1202, 1209,    0, 1193, 1234, 1224, 1212,    0,    0,
+     1208, 1221, 1188, 1236,    0, 1223, 1195, 1213, 1244, 1232,
+        0, 1234, 1229, 1237, 1236, 1246, 1241, 1224,    0, 1251,
+        0, 1245, 1244, 1260,    0,    0, 1247, 1255, 1238, 1268,
+     1249, 1266, 1272, 1265, 1266, 1284, 1272, 1278, 1284, 1278,
+     1267, 1281, 1293, 1281, 1283, 1290,    0, 1280, 1284, 1288,
+     1281, 1295,    0, 1285, 1291, 1290, 1294, 1287, 1306, 1295,
+
+     1301, 1314, 1306,    0, 1306, 1309, 1323, 1323, 1315,    0,
+     1313,    0, 1298, 1335, 1322,    0, 1307, 1324, 1340, 1328,
+     1332, 1340, 1326, 1344, 1343, 1337, 1330, 1348, 1333, 1339,
+     1345, 1354, 1342, 1338, 1349, 1358,    0, 1356, 1352, 1348,
+     1365,    0, 1356, 1355,    0, 1365, 1376,    0, 1373, 1379,
+        0, 1374,    0, 1375, 1377, 1378,    0,    0, 2174, 1717,
+     1728, 1739, 1750, 1761, 1772, 1780, 1788, 1796, 1807, 1815,
+     1826, 1837, 1848, 1851, 1860, 1868, 1412, 1879, 1890, 1901,
+     1912
+    } ;
+
+static yyconst short int yy_def[1282] =
+    {   0,
+     1260, 1260, 1259,    3, 1259,    5,    5,    7, 1261, 1261,
+     1259,   11, 1262, 1262, 1263, 1263, 1264, 1264, 1259, 1259,
+     1259, 1259, 1259, 1259, 1265, 1266, 1259, 1259, 1259, 1259,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1259,
+     1259, 1266, 1259, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1259,
+     1259, 1259, 1266, 1259, 1259, 1259, 1265, 1267, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1267, 1267, 1259,   89,
+     1259, 1259, 1259, 1259, 1259, 1259, 1267,   97,   97,   97,
+
+       97,   97, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1259, 1259,   97, 1267, 1259, 1259, 1259, 1267, 1267,
+     1259, 1259, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1268, 1259, 1259, 1268, 1259, 1259, 1269, 1270,
+     1271, 1259, 1259, 1259, 1270, 1270,   89,   89, 1259, 1272,
+     1259, 1259, 1270,  163,  163,  163,  163,  163, 1270, 1270,
+     1270, 1270, 1270, 1270, 1259, 1259,  163,  163,  163,  163,
+      163, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1259, 1259,
+     1273, 1259, 1259, 1274, 1259, 1259, 1259, 1275, 1275, 1275,
+
+     1275, 1259, 1259, 1259, 1259, 1265, 1259, 1266, 1266, 1259,
+     1259, 1266, 1266, 1266, 1266, 1266, 1266, 1266,  209, 1259,
+     1259, 1266, 1259, 1259, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1259, 1259, 1267, 1267, 1259, 1259, 1259, 1276,
+     1259, 1267,   89,   89,  284, 1259, 1259, 1277, 1259,   97,
+       97,   97, 1267, 1267, 1267, 1267,   97, 1267, 1267, 1267,
+
+       97,   97, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,   97, 1267,
+      120, 1259, 1277, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1268, 1268,
+     1269, 1259, 1270, 1270, 1271, 1271, 1259, 1272,  163,  163,
+      163, 1270, 1270,  163,  163, 1270, 1270, 1270, 1270, 1270,
+     1270, 1270, 1270, 1270, 1270, 1270, 1270,  163, 1270,  163,
+      163, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+
+     1270, 1270, 1270, 1259, 1273, 1274, 1275, 1259, 1275, 1275,
+     1275, 1259, 1259, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1267, 1276, 1277, 1267,   97, 1267, 1267, 1267, 1267, 1267,
+     1267,   97, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1268, 1270, 1270, 1270,
+     1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+     1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+     1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+     1275, 1275, 1275, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1278,
+     1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+
+     1270, 1270, 1270, 1270, 1270, 1279, 1270, 1270, 1270, 1270,
+     1270, 1270, 1270, 1275, 1275, 1275, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+
+     1267, 1267, 1267, 1267, 1270, 1270, 1270, 1270, 1270, 1280,
+     1278, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
+     1281, 1279, 1270, 1270, 1270, 1270, 1275, 1275, 1275, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1270, 1270, 1270,
+
+     1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1275,
+     1275, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1270, 1270, 1270, 1270, 1270, 1270,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1270, 1270, 1270, 1270, 1270, 1270, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267,
+
+     1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1267, 1267, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
+     1266, 1266, 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267,
+     1267, 1267, 1267, 1267, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1266, 1266,
+
+     1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267, 1267,
+     1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267,
+     1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1266, 1266,
+     1266, 1266, 1267, 1267, 1267, 1267, 1266, 1266, 1266, 1266,
+     1267, 1267, 1267, 1267, 1266, 1266, 1266, 1267, 1267, 1267,
+     1266, 1266, 1267, 1267, 1266, 1267, 1266, 1267,    0, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259
+    } ;
+
+static yyconst short int yy_nxt[2256] =
+    {   0,
+       21,   22,   23,   24,   25,   21,   26,   27,   28,   29,
+       30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
+       40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
+       50,   51,   52,   53,   35,   54,   55,   56,   57,   58,
+       59,   60,   35,   61,   62,   35,   63,   35,   35,   35,
+       35,   64,   35,   65,   21,   35,   66,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   67,   35,   35,   68,
+       35,   35,   69,   35,   35,   35,   35,   70,   71,   72,
+       73,   74,   75,   23,   76,   77,   74,   78,   79,   80,
+       81,   82,   83,   84,   85,   86,   87,   88,   89,   90,
+
+       91,   92,   93,   94,   95,   96,   97,   98,   99,  100,
+      101,  102,  103,   87,  104,   87,  105,  106,  107,  108,
+      109,  110,   87,   87,  111,   87,   87,   87,   87,   87,
+       87,   87,  112,   87,  113,   74,   87,  114,  102,  102,
+      102,  102,  102,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,  115,   87,   87,   87,   87,  116,  117,
+      118,  119,  120,  210,  248,  189,  190,  215,  249,  191,
+      220,  221,  385,  121,  122,  189,  190,  211,  216,  191,
+      192,  123,  124,  125,  126,  127,  128,  386,  129,  130,
+      192,  286,  131,  132,  133,  134,  135,  136,  232,  137,
+
+      138,  233,  139,  223,  224,  229,  234,  273,  230,  237,
+      235,  907,  140,   87,   87,   87,   87,   87,  286,  238,
+      327,  231,  141,  328,  236,  142,   74,   74,   20,   74,
+       74,   74,  143,   74,   74,   74,   74,   74,  144,   74,
+      145,  193,  279,  121,  122,   74,   74,   74,  147,   74,
+       74,  193,  217,  217,  246,  225,  239,  226,  250,  240,
+      220,  221,  241,  274,  247,  227,  256,  252,  251,  210,
+      218,  253,  218,  228,  254,  255,  257,   74,  259,   74,
+       74,  260,  261,  211,  281,  420,  280,  421,  262,  309,
+      263,  223,  224,  264,  265,  282,  396,  310,  266,  908,
+
+      218,  397,  218,   74,   74,   74,   74,   74,   20,   74,
+       74,   74,  143,   74,   74,   74,   74,   74,  144,   74,
+      145,  217,  217,  121,  122,   74,   74,   74,  147,   74,
+       74,  333,  311,  297,  334,  297,  297,  335,  297,  218,
+      298,  218,  312,  299,  301,  297,  275,  297,  302,  300,
+      275,  275,  219,  275,  275,  275,  297,   74,  297,   74,
+       74,  316,  303,  275,  313,  317,  275,  492,  909,  218,
+      331,  218,  314,  275,  275,  380,  493,  318,  304,  219,
+      332,  381,  408,   74,   74,   74,   21,   22,  148,   24,
+       21,  149,  150,   27,   28,   29,   30,  151,  152,  153,
+
+      154,  155,  156,  157,  158,  159,  160,   41,  161,   43,
+      162,  163,  164,  165,  166,  167,  168,  155,  155,  155,
+      155,  155,  169,  155,  170,  171,  172,  155,  155,  173,
+      174,  155,  155,  155,  155,  155,  155,  175,  155,  176,
+       21,  155,  177,  178,  179,  166,  180,  181,  155,  155,
+      155,  155,  182,  155,  183,  184,  185,  155,  186,  187,
+      155,  155,  155,   70,   71,   72,  188,   21,  189,  190,
+       21,   21,  191,  273,   21,   21,   21,   21,   21,   21,
+      195,   21,  408,  192,   21,   21,  195,  195,   21,   21,
+       21,   21,  297,  338,  297,  297,  311,  297,  324,  912,
+
+      325,  298,  275,  339,  299,  275,  342,  329,  294,  275,
+      275,  330,  275,  275,  346,  295,  296,  326,   21,   21,
+       21,   21,  427,  340,  315,  303,  319,  341,  313,  274,
+      371,  310,  343,  371,  518,  344,  345,  408,  409,  428,
+      363,  913,  489,  363,  196,   21,  197,   21,   21,  189,
+      190,   21,   21,  191,  286,   21,   21,   21,   21,   21,
+       21,  195,   21,  390,  192,   21,   21,  195,  195,   21,
+       21,   21,   21,  348,  322,  322,  349,  317,  401,  374,
+      371,  286,  440,  350,  410,  351,  286,  914,  352,  318,
+      363,  402,  287,  353,  287,  441,  375,  371,  371,   21,
+
+       21,   21,   21,  376,  371,  323,  484,  363,  363,  408,
+      377,  408,  445,  286,  363,  446,  504,  379,  480,  915,
+      378,  447,  287,  508,  287,  196,   21,  197,   21,   21,
+      189,  190,  323,   25,  191,  916,   21,   21,   21,   21,
+      408,   21,  195,  408,  917,  192,   21,   21,  195,  195,
+       21,   21,   21,  322,  322,  371,  371,  371,  208,  411,
+      208,  572,  455,  488,  456,  363,  363,  363,  457,  434,
+      371,  287,  435,  287,  436,  492,  517,  526,  520,  527,
+      363,  714,  437,  497,  493,  391,  408,  388,  208,  199,
+      208,  200,  392,  683,  371,  201,  389,  571,  918,  684,
+
+      395,  287,  919,  287,  363,  920,  202,   21,  203,   21,
+       21,  189,  190,  408,   25,  191,  921,   21,   21,   21,
+       21,  408,   21,  195,  922,  573,  192,   21,   21,  195,
+      195,   21,   21,   21,  217,  217,  393,  513,  699,  297,
+      486,  297,  514,  394,  700,  371,  923,  284,  284,  275,
+      515,  297,  218,  297,  218,  363,  275,  275,  924,  715,
+      829,  275,  539,  371,  371, 1259,  408, 1259,  474,  275,
+      199,  408,  200,  363,  363,  371,  201,  925,  286,  926,
+      927,  541,  218,  371,  218,  363,  408,  202,   21,  203,
+       21,  209,  209,  363,  928, 1259,  297, 1259,  475,  209,
+
+      209,  209,  209,  209,  209,  286,  275,  297,  716,  297,
+      297,  929,  297,  275,  275,  408,  371,  275,  827,  930,
+      275,  555,  408,  828,  275,  275,  363,  275,  481,  557,
+      209,  209,  209,  209,  209,  209,  276,  276,  931,  932,
+      471,  297,  471,  297,  276,  276,  276,  276,  276,  276,
+      297,  275,  297,  933,  482,  934,  935,  936,  275,  275,
+      275,  937,  558,  938,  910,  322,  322,  275,  275,  911,
+      471,  939,  471,  940,  941,  276,  276,  276,  276,  276,
+      276,  283,  283,  287,  287,  287,  287,  500,  371,  284,
+      285,  284,  285,  284,  284,  942,  286,  943,  363,  287,
+
+      297,  287,  297,  286,  944,  542,  945,  635,  946,  947,
+      275,  948,  288,  287,  287,  287,  287,  275,  275,  949,
+      284,  285,  284,  285,  284,  284,  297,  286,  297,  287,
+      950,  287,  951,  286,  952,  953,  275,  954,  955,  288,
+      290,  290,  628,  275,  275,  956,  957,  958,  290,  291,
+      290,  292,  290,  290,  959,  293,  960,  961,  962,  294,
+      963,  964,  293,  965,  966,  967,  295,  296,  968,  969,
+      970,  293,  408,  408,  971,  972,  973,  974,  975,  290,
+      297,  290,  297,  290,  290,  976,  293,  977,  978,  979,
+      980,  981,  293,  983,  984,  985,  982,  986,  293,  321,
+
+      321,  987,  988,  989,  990,  991,  992,  321,  321,  321,
+      321,  321,  321,  993,  994,  995,  996,  997,  998,  999,
+     1000, 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010,
+     1011, 1007, 1012, 1013, 1014, 1015, 1016, 1017,  321,  321,
+      321,  321,  321,  321,  360,  360, 1018, 1019, 1020, 1021,
+     1022, 1023,  360,  360,  360,  360,  360,  360, 1024, 1025,
+     1026, 1027, 1028, 1029, 1030, 1032, 1033, 1034, 1035, 1036,
+     1037, 1038, 1039, 1040, 1041, 1042, 1043, 1031, 1044, 1045,
+     1046, 1047, 1049,  360,  360,  360,  360,  360,  360,  364,
+      364, 1050, 1051, 1052, 1048, 1053, 1054,  364,  364,  364,
+
+      364,  364,  364, 1055, 1056, 1058, 1059, 1060, 1061, 1062,
+     1063, 1064, 1057, 1065, 1066, 1067, 1068, 1069, 1071, 1072,
+     1073, 1074, 1075, 1076, 1077, 1070, 1078, 1079,  364,  364,
+      364,  364,  364,  364,  369,  369, 1080, 1081, 1082, 1083,
+     1084, 1085,  369,  370,  369,  371,  369,  369, 1086,  372,
+     1087, 1088, 1089,  373, 1090, 1091,  372, 1092, 1093, 1094,
+     1095, 1096, 1097, 1098, 1099,  372, 1100, 1101, 1102, 1103,
+     1104, 1105, 1106,  369,  371,  369,  371,  369,  369, 1107,
+      372, 1108, 1109, 1110, 1111, 1112,  372, 1113, 1114, 1115,
+     1116, 1117,  372,  209,  209, 1118, 1119, 1120, 1121, 1122,
+
+     1123,  209,  209,  209,  209,  209,  209, 1124, 1125, 1126,
+     1127,  218, 1128,  218, 1129, 1130, 1131, 1132, 1133, 1134,
+     1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
+     1145, 1146,  209,  209,  209,  209,  209,  209, 1147, 1148,
+     1149,  218, 1150,  218,  276,  276, 1151, 1152, 1153, 1157,
+     1158, 1159,  276,  276,  276,  276,  276,  276, 1160, 1154,
+     1161, 1162,  471, 1155,  471, 1163, 1165, 1166, 1167, 1168,
+     1169, 1170, 1171, 1172, 1173, 1174, 1156, 1175, 1164, 1176,
+     1177, 1178, 1179,  276,  276,  276,  276,  276,  276, 1180,
+     1181, 1182,  471, 1183,  471,  360,  360, 1184, 1185, 1186,
+
+     1187, 1188, 1189,  360,  360,  360,  360,  360,  360, 1190,
+     1191, 1192, 1193,  537, 1194,  537, 1195, 1196, 1197, 1198,
+     1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
+     1209, 1210, 1211, 1212,  360,  360,  360,  360,  360,  360,
+     1213, 1214, 1215,  537, 1216,  537,  364,  364, 1217, 1218,
+     1219, 1220, 1221, 1222,  364,  364,  364,  364,  364,  364,
+     1223, 1224, 1225, 1226,  538, 1227,  538, 1228, 1229, 1230,
+     1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240,
+     1241, 1242, 1243, 1244, 1245,  364,  364,  364,  364,  364,
+      364, 1246, 1247, 1248,  538, 1249,  538,  810,  810, 1250,
+
+      810,  810,  810, 1251,  810,  810,  810,  810,  810, 1252,
+      810, 1253, 1254, 1255, 1256, 1257, 1258,  810,  810,  810,
+      810,  810,  473,  906,  905,  904,  903,  902,  901,  900,
+      899,  898,  897,  896,  895,  894,  893,  892,  891,  890,
+      889,  888,  887,  886,  885,  884,  883,  882,  881,  880,
+      879,  810,  878,  877,  876,  875,  874,  873,  872,  871,
+      870,  869,  868,  867,  866,  865,  864,  863,  862,  861,
+      860,  859,  858,  857,  810,  810,  810,  821,  821,  856,
+      821,  821,  821,  855,  821,  821,  821,  821,  821,  854,
+      821,  853,  852,  851,  850,  849,  848,  821,  821,  821,
+
+      821,  821,  847,  846,  845,  844,  843,  842,  841,  840,
+      839,  838,  837,  836,  835,  834,  833,  832,  831,  830,
+      826,  825,  824,  823,  820,  819,  818,  817,  816,  815,
+      814,  821,  813,  812,  809,  808,  807,  806,  805,  804,
+      803,  802,  801,  800,  799,  798,  797,  796,  795,  794,
+      793,  792,  791,  790,  821,  821,  821,  810,  810,  789,
+      810,  810,  810,  788,  810,  810,  810,  810,  810,  787,
+      810,  786,  785,  784,  783,  782,  781,  810,  810,  810,
+      810,  810,  780,  779,  778,  777,  776,  775,  774,  773,
+      772,  771,  770,  769,  768,  767,  766,  765,  764,  763,
+
+      762,  761,  760,  759,  758,  757,  756,  755,  754,  753,
+      752,  810,  751,  750,  749,  748,  747,  746,  745,  744,
+      743,  742,  741,  740,  739,  738,  737,  736,  735,  734,
+      733,  732,  731,  730,  810,  810,  810,  821,  821,  729,
+      821,  821,  821,  728,  821,  821,  821,  821,  821,  727,
+      821,  726,  725,  724,  723,  722,  721,  821,  821,  821,
+      821,  821,  720,  719,  718,  717,  713,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  703,  702,  701,  698,
+      697,  696,  695,  694,  693,  692,  691,  690,  689,  688,
+      687,  821,  686,  685,  682,  681,  680,  679,  678,  677,
+
+      676,  675,  674,  673,  672,  671,  670,  669,  668,  667,
+      666,  665,  664,  663,  821,  821,  821,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,  146,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  146,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  198,  198,  198,  198,  198,  198,  198,  198,  198,
+      198,  198,  206,  206,  206,  206,  206,  206,  206,  206,
+      206,  206,  206,  208,  208,  208,  208,  208,  208,  208,
+      208,  275,  662,  275,  275,  275,  275,  275,  275,  359,
+
+      661,  660,  659,  658,  359,  359,  359,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  363,  657,
+      363,  656,  363,  363,  363,  363,  365,  635,  365,  365,
+      365,  365,  365,  365,  365,  365,  365,  368,  655,  368,
+      368,  368,  368,  368,  368,  368,  368,  368,  405,  654,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  406,
+      653,  406,  407,  407,  407,  628,  652,  407,  407,  651,
+      407,  472,  650,  472,  472,  472,  472,  472,  472,  811,
+      649,  811,  811,  811,  811,  811,  811,  811,  811,  811,
+      822,  648,  822,  822,  822,  822,  822,  822,  822,  822,
+
+      822,  810,  647,  810,  810,  810,  810,  810,  810,  810,
+      810,  810,  821,  646,  821,  821,  821,  821,  821,  821,
+      821,  821,  821,  645,  644,  643,  642,  641,  640,  639,
+      638,  637,  636,  634,  633,  632,  631,  630,  629,  627,
+      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
+      616,  615,  614,  613,  612,  611,  610,  609,  608,  607,
+      606,  605,  604,  603,  602,  601,  600,  599,  598,  597,
+      596,  595,  594,  593,  592,  591,  590,  589,  588,  587,
+      586,  585,  584,  583,  582,  581,  580,  579,  578,  577,
+      576,  575,  574,  407,  408,  404,  570,  569,  568,  567,
+
+      566,  565,  564,  563,  562,  561,  560,  559,  556,  554,
+      553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
+      543,  540,  362,  536,  535,  500,  534,  533,  532,  531,
+      530,  529,  528,  525,  524,  523,  522,  521,  519,  516,
+      512,  511,  510,  509,  507,  506,  481,  505,  503,  502,
+      474,  501,  499,  498,  497,  496,  495,  494,  491,  490,
+      489,  488,  487,  486,  485,  484,  483,  480,  479,  478,
+      477,  476,  470,  469,  468,  467,  466,  465,  464,  463,
+      462,  461,  460,  459,  458,  454,  453,  452,  451,  450,
+      449,  448,  444,  443,  442,  439,  438,  433,  432,  431,
+
+      430,  429,  426,  425,  424,  423,  422,  419,  418,  417,
+      416,  415,  414,  413,  412,  207,  204,  408,  281,  404,
+      403,  400,  399,  398,  387,  384,  383,  382,  289,  367,
+      279,  278,  366,  362,  358,  357,  356,  355,  354,  347,
+      337,  336,  320,  315,  308,  307,  306,  305,  289,  278,
+      277,  207,  205,  204,  272,  271,  270,  269,  268,  267,
+      258,  245,  244,  243,  242,  222,  214,  213,  212,  207,
+      205,  204, 1259,   19, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259
+    } ;
+
+static yyconst short int yy_chk[2256] =
+    {   0,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    7,   28,   56,   13,   13,   36,   56,   13,
+       41,   41,  173,    7,    7,   14,   14,   28,   36,   14,
+       13,    7,    7,    7,    7,    7,    7,  173,    7,    7,
+       14,   90,    7,    7,    7,    7,    7,    7,   47,    7,
+
+        7,   47,    7,   43,   43,   46,   48,   71,   46,   49,
+       48,  820,    7,    7,    7,    7,    7,    7,   90,   49,
+      125,   46,    7,  125,   48,    7,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,   13,   86,    9,    9,    9,    9,    9,    9,    9,
+        9,   14,   38,   38,   55,   45,   50,   45,   57,   50,
+       93,   93,   50,   71,   55,   45,   59,   58,   57,   80,
+       38,   58,   38,   45,   58,   58,   59,    9,   61,    9,
+        9,   61,   61,   80,   88,  232,   86,  232,   61,  107,
+       61,   95,   95,   61,   61,   88,  182,  107,   61,  824,
+
+       38,  182,   38,    9,    9,    9,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   37,   37,   10,   10,   10,   10,   10,   10,   10,
+       10,  128,  108,   98,  128,   98,   99,  128,   99,   37,
+       98,   37,  108,   98,  100,  100,   99,  100,  100,   99,
+       98,   98,   37,   99,   99,  100,  101,   10,  101,   10,
+       10,  111,  100,  100,  109,  111,  101,  312,  826,   37,
+      127,   37,  109,  101,  101,  169,  312,  111,  101,   37,
+      127,  169,  829,   10,   10,   10,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   15,   15,   15,
+       15,   15,   15,  117,   15,   15,   15,   15,   15,   15,
+       15,   15,  199,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,  102,  131,  102,  114,  133,  114,  123,  830,
+
+      123,  124,  102,  131,  124,  114,  133,  126,  123,  102,
+      102,  126,  114,  114,  135,  123,  123,  124,   15,   15,
+       15,   15,  238,  132,  135,  126,  114,  132,  134,  117,
+      166,  132,  134,  178,  340,  134,  134,  200,  199,  238,
+      166,  831,  340,  178,   15,   15,   15,   15,   16,   16,
+       16,   16,   16,   16,  158,   16,   16,   16,   16,   16,
+       16,   16,   16,  178,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,  137,  121,  121,  137,  137,  186,  164,
+      164,  158,  247,  137,  200,  137,  283,  832,  137,  137,
+      164,  186,  121,  137,  121,  247,  165,  165,  167,   16,
+
+       16,   16,   16,  165,  168,  121,  332,  165,  167,  201,
+      167,  410,  251,  283,  168,  251,  327,  168,  327,  833,
+      167,  251,  121,  332,  121,   16,   16,   16,   16,   17,
+       17,   17,  121,   17,   17,  834,   17,   17,   17,   17,
+      571,   17,   17,  409,  835,   17,   17,   17,   17,   17,
+       17,   17,   17,  122,  122,  179,  177,  181,  219,  201,
+      219,  410,  259,  339,  259,  179,  177,  181,  259,  244,
+      369,  122,  244,  122,  244,  342,  339,  348,  342,  348,
+      369,  571,  244,  348,  342,  179,  411,  177,  219,   17,
+      219,   17,  179,  540,  180,   17,  177,  409,  837,  540,
+
+      181,  122,  838,  122,  180,  839,   17,   17,   17,   17,
+       18,   18,   18,  716,   18,   18,  841,   18,   18,   18,
+       18,  572,   18,   18,  843,  411,   18,   18,   18,   18,
+       18,   18,   18,   18,  217,  217,  180,  337,  556,  290,
+      337,  290,  337,  180,  556,  370,  844,  284,  284,  290,
+      337,  291,  217,  291,  217,  370,  290,  290,  846,  572,
+      716,  291,  370,  371,  374,  284,  714,  284,  291,  291,
+       18,  573,   18,  371,  374,  388,   18,  848,  284,  849,
+      850,  374,  217,  390,  217,  388,  715,   18,   18,   18,
+       18,   26,   26,  390,  851,  284,  292,  284,  292,   26,
+
+       26,   26,   26,   26,   26,  284,  292,  297,  573,  297,
+      301,  852,  301,  292,  292,  827,  391,  297,  714,  853,
+      301,  388,  828,  715,  297,  297,  391,  301,  301,  390,
+       26,   26,   26,   26,   26,   26,   78,   78,  854,  855,
+      321,  319,  321,  319,   78,   78,   78,   78,   78,   78,
+      302,  319,  302,  856,  302,  857,  860,  861,  319,  319,
+      302,  862,  391,  863,  827,  322,  322,  302,  302,  828,
+      321,  865,  321,  866,  867,   78,   78,   78,   78,   78,
+       78,   89,   89,  322,  473,  322,  473,  319,  375,   89,
+       89,   89,   89,   89,   89,  868,   89,  869,  375,   89,
+
+      482,   89,  482,   89,  871,  375,  872,  482,  873,  874,
+      482,  875,   89,  322,  473,  322,  473,  482,  482,  876,
+       89,   89,   89,   89,   89,   89,  475,   89,  475,   89,
+      877,   89,  878,   89,  879,  880,  475,  882,  883,   89,
+       97,   97,  475,  475,  475,  884,  887,  889,   97,   97,
+       97,   97,   97,   97,  890,   97,  891,  892,  893,   97,
+      894,  897,   97,  898,  899,  903,   97,   97,  904,  905,
+      909,   97,  910,  911,  912,  913,  914,  915,  917,   97,
+       97,   97,   97,   97,   97,  918,   97,  920,  921,  922,
+      924,  925,   97,  928,  929,  930,  925,  931,   97,  120,
+
+      120,  932,  934,  936,  937,  938,  939,  120,  120,  120,
+      120,  120,  120,  941,  942,  943,  944,  947,  948,  949,
+      950,  951,  952,  953,  954,  956,  958,  960,  961,  962,
+      965,  958,  966,  967,  968,  969,  970,  972,  120,  120,
+      120,  120,  120,  120,  143,  143,  973,  974,  975,  976,
+      977,  979,  143,  143,  143,  143,  143,  143,  980,  981,
+      982,  983,  985,  986,  987,  990,  992,  993,  995,  996,
+      997,  998, 1001, 1002, 1003, 1004, 1005,  987, 1006, 1007,
+     1008, 1010, 1017,  143,  143,  143,  143,  143,  143,  150,
+      150, 1018, 1019, 1020, 1010, 1021, 1022,  150,  150,  150,
+
+      150,  150,  150, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
+     1030, 1031, 1024, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
+     1039, 1040, 1041, 1042, 1043, 1036, 1044, 1045,  150,  150,
+      150,  150,  150,  150,  163,  163, 1046, 1047, 1048, 1049,
+     1050, 1051,  163,  163,  163,  163,  163,  163, 1052,  163,
+     1053, 1054, 1055,  163, 1058, 1059,  163, 1061, 1062, 1063,
+     1064, 1065, 1066, 1067, 1068,  163, 1071, 1072, 1073, 1074,
+     1075, 1076, 1077,  163,  163,  163,  163,  163,  163, 1078,
+      163, 1079, 1081, 1082, 1083, 1084,  163, 1085, 1086, 1087,
+     1088, 1091,  163,  209,  209, 1092, 1093, 1094, 1095, 1096,
+
+     1097,  209,  209,  209,  209,  209,  209, 1098, 1100, 1101,
+     1102,  209, 1103,  209, 1104, 1105, 1106, 1108, 1109, 1110,
+     1112, 1113, 1115, 1116, 1117, 1118, 1119, 1120, 1122, 1123,
+     1125, 1126,  209,  209,  209,  209,  209,  209, 1127, 1129,
+     1130,  209, 1131,  209,  276,  276, 1132, 1133, 1135, 1137,
+     1138, 1141,  276,  276,  276,  276,  276,  276, 1142, 1136,
+     1143, 1144,  276, 1136,  276, 1144, 1146, 1147, 1148, 1149,
+     1150, 1152, 1153, 1154, 1155, 1156, 1136, 1157, 1144, 1158,
+     1160, 1162, 1163,  276,  276,  276,  276,  276,  276, 1164,
+     1167, 1168,  276, 1169,  276,  360,  360, 1170, 1171, 1172,
+
+     1173, 1174, 1175,  360,  360,  360,  360,  360,  360, 1176,
+     1177, 1178, 1179,  360, 1180,  360, 1181, 1182, 1183, 1184,
+     1185, 1186, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196,
+     1197, 1198, 1199, 1200,  360,  360,  360,  360,  360,  360,
+     1201, 1202, 1203,  360, 1205,  360,  364,  364, 1206, 1207,
+     1208, 1209, 1211, 1213,  364,  364,  364,  364,  364,  364,
+     1214, 1215, 1217, 1218,  364, 1219,  364, 1220, 1221, 1222,
+     1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
+     1233, 1234, 1235, 1236, 1238,  364,  364,  364,  364,  364,
+      364, 1239, 1240, 1241,  364, 1243,  364,  690,  690, 1244,
+
+      690,  690,  690, 1246,  690,  690,  690,  690,  690, 1247,
+      690, 1249, 1250, 1252, 1254, 1255, 1256,  690,  690,  690,
+      690,  690, 1277,  819,  818,  816,  815,  813,  809,  808,
+      807,  805,  804,  803,  802,  801,  799,  797,  796,  794,
+      793,  792,  791,  790,  789,  787,  786,  785,  783,  781,
+      780,  690,  779,  778,  777,  776,  775,  774,  773,  772,
+      771,  770,  769,  767,  765,  764,  762,  760,  759,  758,
+      757,  756,  755,  754,  690,  690,  690,  706,  706,  753,
+      706,  706,  706,  751,  706,  706,  706,  706,  706,  750,
+      706,  748,  747,  746,  745,  743,  742,  706,  706,  706,
+
+      706,  706,  741,  740,  739,  738,  737,  736,  735,  734,
+      732,  731,  729,  727,  726,  723,  722,  721,  720,  717,
+      713,  712,  710,  709,  705,  704,  700,  699,  698,  697,
+      696,  706,  694,  693,  689,  688,  684,  683,  682,  681,
+      680,  679,  678,  677,  676,  675,  674,  673,  671,  670,
+      669,  668,  667,  666,  706,  706,  706,  811,  811,  664,
+      811,  811,  811,  663,  811,  811,  811,  811,  811,  662,
+      811,  661,  660,  659,  657,  656,  655,  811,  811,  811,
+      811,  811,  654,  652,  651,  650,  649,  648,  647,  646,
+      645,  644,  643,  641,  638,  637,  636,  635,  634,  632,
+
+      630,  629,  627,  626,  625,  624,  623,  622,  621,  620,
+      619,  811,  618,  617,  616,  615,  614,  613,  611,  610,
+      609,  608,  607,  606,  605,  604,  603,  601,  599,  598,
+      596,  595,  593,  592,  811,  811,  811,  822,  822,  591,
+      822,  822,  822,  590,  822,  822,  822,  822,  822,  588,
+      822,  587,  586,  585,  584,  583,  582,  822,  822,  822,
+      822,  822,  580,  578,  576,  574,  570,  569,  568,  567,
+      566,  565,  564,  563,  562,  561,  559,  558,  557,  555,
+      554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
+      543,  822,  542,  541,  539,  534,  533,  532,  531,  530,
+
+      529,  528,  527,  526,  525,  524,  523,  522,  521,  520,
+      519,  517,  516,  515,  822,  822,  822, 1260, 1260, 1260,
+     1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1261, 1261,
+     1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1262,
+     1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+     1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
+     1263, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+     1264, 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+     1265, 1265, 1265, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+     1266, 1267,  514, 1267, 1267, 1267, 1267, 1267, 1267, 1268,
+
+      513,  511,  510,  509, 1268, 1268, 1268, 1269, 1269, 1269,
+     1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1270,  508,
+     1270,  507, 1270, 1270, 1270, 1270, 1271,  506, 1271, 1271,
+     1271, 1271, 1271, 1271, 1271, 1271, 1271, 1272,  505, 1272,
+     1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273,  504,
+     1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1274,
+      503, 1274, 1275, 1275, 1275,  502,  501, 1275, 1275,  500,
+     1275, 1276,  499, 1276, 1276, 1276, 1276, 1276, 1276, 1278,
+      498, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
+     1279,  497, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
+
+     1279, 1280,  496, 1280, 1280, 1280, 1280, 1280, 1280, 1280,
+     1280, 1280, 1281,  495, 1281, 1281, 1281, 1281, 1281, 1281,
+     1281, 1281, 1281,  494,  493,  492,  491,  488,  487,  486,
+      485,  484,  483,  481,  480,  479,  478,  477,  476,  474,
+      470,  467,  466,  465,  464,  463,  462,  461,  460,  459,
+      458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
+      448,  447,  446,  445,  444,  443,  441,  440,  439,  438,
+      437,  436,  435,  434,  432,  431,  430,  429,  428,  427,
+      426,  425,  424,  423,  422,  421,  420,  419,  418,  417,
+      416,  415,  414,  408,  407,  404,  403,  402,  401,  400,
+
+      399,  398,  397,  396,  395,  394,  393,  392,  389,  387,
+      386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
+      376,  373,  361,  358,  357,  356,  355,  354,  353,  352,
+      351,  350,  349,  347,  346,  345,  344,  343,  341,  338,
+      336,  335,  334,  333,  331,  330,  329,  328,  326,  325,
+      324,  320,  318,  317,  316,  315,  314,  313,  311,  310,
+      309,  308,  307,  306,  305,  304,  303,  300,  299,  298,
+      295,  294,  272,  271,  270,  269,  268,  267,  266,  265,
+      264,  263,  262,  261,  260,  258,  257,  256,  255,  254,
+      253,  252,  250,  249,  248,  246,  245,  243,  242,  241,
+
+      240,  239,  237,  236,  235,  234,  233,  231,  230,  229,
+      227,  226,  225,  224,  220,  206,  204,  198,  192,  189,
+      187,  185,  184,  183,  174,  172,  171,  170,  161,  156,
+      154,  152,  151,  149,  142,  141,  140,  139,  138,  136,
+      130,  129,  115,  110,  106,  105,  104,  103,   94,   84,
+       83,   77,   76,   75,   69,   68,   67,   66,   63,   62,
+       60,   54,   53,   52,   51,   42,   34,   32,   31,   25,
+       24,   22,   19, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+     1259, 1259, 1259, 1259, 1259
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "ldlex.l"
+#define INITIAL 0
+#line 2 "ldlex.l"
+
+/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001, 2002, 2003  Free Software Foundation, Inc.
+
+This file is part of GLD, the Gnu Linker.
+
+GLD is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GLD is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GLD; see the file COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.  */
+
+/*
+This was written by steve chamberlain
+                    sac@cygnus.com
+*/
+
+
+#include <stdio.h>
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "safe-ctype.h"
+#include "bfdlink.h"
+#include "ld.h"
+#include "ldmisc.h"
+#include "ldexp.h"
+#include "ldlang.h"
+#include <ldgram.h>
+#include "ldfile.h"
+#include "ldlex.h"
+#include "ldmain.h"
+#include "libiberty.h"
+
+/* The type of top-level parser input.
+   yylex and yyparse (indirectly) both check this.  */
+input_type parser_input;
+
+/* Line number in the current input file.
+   (FIXME Actually, it doesn't appear to get reset for each file?)  */
+unsigned int lineno = 1;
+
+/* The string we are currently lexing, or NULL if we are reading a
+   file.  */
+const char *lex_string = NULL;
+
+/* Support for flex reading from more than one input file (stream).
+   `include_stack' is flex's input state for each open file;
+   `file_name_stack' is the file names.  `lineno_stack' is the current
+   line numbers.
+
+   If `include_stack_ptr' is 0, we haven't started reading anything yet.
+   Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */
+
+#undef YY_INPUT
+#define YY_INPUT(buf,result,max_size) yy_input (buf, &result, max_size)
+
+#define MAX_INCLUDE_DEPTH 10
+static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
+static const char *file_name_stack[MAX_INCLUDE_DEPTH];
+static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
+static unsigned int include_stack_ptr = 0;
+static int vers_node_nesting = 0;
+
+static void yy_input (char *, int *, int);
+static void comment (void);
+static void lex_warn_invalid (char *where, char *what);
+
+/* STATES
+	EXPRESSION	definitely in an expression
+	SCRIPT		definitely in a script
+	BOTH		either EXPRESSION or SCRIPT
+	DEFSYMEXP	in an argument to -defsym
+        MRI             in an MRI script
+	VERS_START	starting a Sun style mapfile
+	VERS_SCRIPT	a Sun style mapfile
+	VERS_NODE	a node within a Sun style mapfile
+*/
+#define RTOKEN(x)  {  yylval.token = x; return x; }
+
+/* Some versions of flex want this.  */
+#ifndef yywrap
+int yywrap (void) { return 1; }
+#endif
+#define SCRIPT 1
+
+#define EXPRESSION 2
+
+#define BOTH 3
+
+#define DEFSYMEXP 4
+
+#define MRI 5
+
+#define VERS_START 6
+
+#define VERS_SCRIPT 7
+
+#define VERS_NODE 8
+
+#line 1392 "lex.yy.c"
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines.  This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	if ( yy_current_buffer->yy_is_interactive ) \
+		{ \
+		int c = '*', n; \
+		for ( n = 0; n < max_size && \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			buf[n] = (char) c; \
+		if ( c == '\n' ) \
+			buf[n++] = (char) c; \
+		if ( c == EOF && ferror( yyin ) ) \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+		result = n; \
+		} \
+	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+		  && ferror( yyin ) ) \
+		YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+YY_DECL
+	{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+
+#line 121 "ldlex.l"
+
+
+  if (parser_input != input_selected)
+    {
+      /* The first token of the input determines the initial parser state.  */
+      input_type t = parser_input;
+      parser_input = input_selected;
+      switch (t)
+	{
+	case input_script: return INPUT_SCRIPT; break;
+	case input_mri_script: return INPUT_MRI_SCRIPT; break;
+	case input_version_script: return INPUT_VERSION_SCRIPT; break;
+	case input_defsym: return INPUT_DEFSYM; break;
+	default: abort ();
+	}
+    }
+
+#line 1561 "lex.yy.c"
+
+	if ( yy_init )
+		{
+		yy_init = 0;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! yy_start )
+			yy_start = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! yy_current_buffer )
+			yy_current_buffer =
+				yy_create_buffer( yyin, YY_BUF_SIZE );
+
+		yy_load_buffer_state();
+		}
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = yy_c_buf_p;
+
+		/* Support of yytext. */
+		*yy_cp = yy_hold_char;
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = yy_start;
+yy_match:
+		do
+			{
+			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			if ( yy_accept[yy_current_state] )
+				{
+				yy_last_accepting_state = yy_current_state;
+				yy_last_accepting_cpos = yy_cp;
+				}
+			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+				{
+				yy_current_state = (int) yy_def[yy_current_state];
+				if ( yy_current_state >= 1260 )
+					yy_c = yy_meta[(unsigned int) yy_c];
+				}
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			++yy_cp;
+			}
+		while ( yy_base[yy_current_state] != 2174 );
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+		if ( yy_act == 0 )
+			{ /* have to back up */
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
+			yy_act = yy_accept[yy_current_state];
+			}
+
+		YY_DO_BEFORE_ACTION;
+
+
+do_action:	/* This label is used only to access EOF actions. */
+
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = yy_hold_char;
+			yy_cp = yy_last_accepting_cpos;
+			yy_current_state = yy_last_accepting_state;
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 138 "ldlex.l"
+{ comment (); }
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 141 "ldlex.l"
+{ RTOKEN('-');}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 142 "ldlex.l"
+{ RTOKEN('+');}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 143 "ldlex.l"
+{ yylval.name = xstrdup (yytext); return NAME; }
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 144 "ldlex.l"
+{ RTOKEN('='); }
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 146 "ldlex.l"
+{
+  				yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
+				yylval.bigint.str = NULL;
+				return INT;
+			}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 152 "ldlex.l"
+{
+				   int ibase ;
+				   switch (yytext[yyleng - 1]) {
+				    case 'X':
+				    case 'x':
+				    case 'H':
+				    case 'h':
+				     ibase = 16;
+				     break;
+				    case 'O':
+				    case 'o':
+				     ibase = 8;
+				     break;
+				    case 'B':
+				    case 'b':
+				     ibase = 2;
+				     break;
+				    default:
+				     ibase = 10;
+				   }
+				   yylval.integer = bfd_scan_vma (yytext, 0,
+								  ibase);
+				   yylval.bigint.str = NULL;
+				   return INT;
+				 }
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 177 "ldlex.l"
+{
+				  char *s = yytext;
+				  int ibase = 0;
+
+				  if (*s == '$')
+				    {
+				      ++s;
+				      ibase = 16;
+				    }
+				  yylval.integer = bfd_scan_vma (s, 0, ibase);
+				  yylval.bigint.str = NULL;
+				  if (yytext[yyleng - 1] == 'M'
+				      || yytext[yyleng - 1] == 'm')
+				    {
+				      yylval.integer *= 1024 * 1024;
+				    }
+				  else if (yytext[yyleng - 1] == 'K'
+				      || yytext[yyleng - 1]=='k')
+				    {
+				      yylval.integer *= 1024;
+				    }
+				  else if (yytext[0] == '0'
+					   && (yytext[1] == 'x'
+					       || yytext[1] == 'X'))
+				    {
+				      yylval.bigint.str = xstrdup (yytext + 2);
+				    }
+				  return INT;
+				}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 206 "ldlex.l"
+{ RTOKEN(']');}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 207 "ldlex.l"
+{ RTOKEN('[');}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 208 "ldlex.l"
+{ RTOKEN(LSHIFTEQ);}
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 209 "ldlex.l"
+{ RTOKEN(RSHIFTEQ);}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 210 "ldlex.l"
+{ RTOKEN(OROR);}
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 211 "ldlex.l"
+{ RTOKEN(EQ);}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 212 "ldlex.l"
+{ RTOKEN(NE);}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 213 "ldlex.l"
+{ RTOKEN(GE);}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 214 "ldlex.l"
+{ RTOKEN(LE);}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 215 "ldlex.l"
+{ RTOKEN(LSHIFT);}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 216 "ldlex.l"
+{ RTOKEN(RSHIFT);}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 217 "ldlex.l"
+{ RTOKEN(PLUSEQ);}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 218 "ldlex.l"
+{ RTOKEN(MINUSEQ);}
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 219 "ldlex.l"
+{ RTOKEN(MULTEQ);}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 220 "ldlex.l"
+{ RTOKEN(DIVEQ);}
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 221 "ldlex.l"
+{ RTOKEN(ANDEQ);}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 222 "ldlex.l"
+{ RTOKEN(OREQ);}
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 223 "ldlex.l"
+{ RTOKEN(ANDAND);}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 224 "ldlex.l"
+{ RTOKEN('>');}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 225 "ldlex.l"
+{ RTOKEN(',');}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 226 "ldlex.l"
+{ RTOKEN('&');}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 227 "ldlex.l"
+{ RTOKEN('|');}
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 228 "ldlex.l"
+{ RTOKEN('~');}
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 229 "ldlex.l"
+{ RTOKEN('!');}
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 230 "ldlex.l"
+{ RTOKEN('?');}
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 231 "ldlex.l"
+{ RTOKEN('*');}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 232 "ldlex.l"
+{ RTOKEN('+');}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 233 "ldlex.l"
+{ RTOKEN('-');}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 234 "ldlex.l"
+{ RTOKEN('/');}
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 235 "ldlex.l"
+{ RTOKEN('%');}
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 236 "ldlex.l"
+{ RTOKEN('<');}
+	YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 237 "ldlex.l"
+{ RTOKEN('=');}
+	YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 238 "ldlex.l"
+{ RTOKEN('}') ; }
+	YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 239 "ldlex.l"
+{ RTOKEN('{'); }
+	YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 240 "ldlex.l"
+{ RTOKEN(')');}
+	YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 241 "ldlex.l"
+{ RTOKEN('(');}
+	YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 242 "ldlex.l"
+{ RTOKEN(':'); }
+	YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 243 "ldlex.l"
+{ RTOKEN(';');}
+	YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 244 "ldlex.l"
+{ RTOKEN(MEMORY);}
+	YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 245 "ldlex.l"
+{ RTOKEN(ORIGIN);}
+	YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 246 "ldlex.l"
+{ RTOKEN(VERSIONK);}
+	YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 247 "ldlex.l"
+{ RTOKEN(BLOCK);}
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 248 "ldlex.l"
+{ RTOKEN(BIND);}
+	YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 249 "ldlex.l"
+{ RTOKEN(LENGTH);}
+	YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 250 "ldlex.l"
+{ RTOKEN(ALIGN_K);}
+	YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 251 "ldlex.l"
+{ RTOKEN(DATA_SEGMENT_ALIGN);}
+	YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 252 "ldlex.l"
+{ RTOKEN(DATA_SEGMENT_RELRO_END);}
+	YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 253 "ldlex.l"
+{ RTOKEN(DATA_SEGMENT_END);}
+	YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 254 "ldlex.l"
+{ RTOKEN(ADDR);}
+	YY_BREAK
+case 58:
+YY_RULE_SETUP
+#line 255 "ldlex.l"
+{ RTOKEN(LOADADDR);}
+	YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 256 "ldlex.l"
+{ RTOKEN(MAX_K); }
+	YY_BREAK
+case 60:
+YY_RULE_SETUP
+#line 257 "ldlex.l"
+{ RTOKEN(MIN_K); }
+	YY_BREAK
+case 61:
+YY_RULE_SETUP
+#line 258 "ldlex.l"
+{ RTOKEN(ASSERT_K); }
+	YY_BREAK
+case 62:
+YY_RULE_SETUP
+#line 259 "ldlex.l"
+{ RTOKEN(ENTRY);}
+	YY_BREAK
+case 63:
+YY_RULE_SETUP
+#line 260 "ldlex.l"
+{ RTOKEN(EXTERN);}
+	YY_BREAK
+case 64:
+YY_RULE_SETUP
+#line 261 "ldlex.l"
+{ RTOKEN(NEXT);}
+	YY_BREAK
+case 65:
+YY_RULE_SETUP
+#line 262 "ldlex.l"
+{ RTOKEN(SIZEOF_HEADERS);}
+	YY_BREAK
+case 66:
+YY_RULE_SETUP
+#line 263 "ldlex.l"
+{ RTOKEN(SIZEOF_HEADERS);}
+	YY_BREAK
+case 67:
+YY_RULE_SETUP
+#line 264 "ldlex.l"
+{ RTOKEN(SEGMENT_START);}
+	YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 265 "ldlex.l"
+{ RTOKEN(MAP);}
+	YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 266 "ldlex.l"
+{ RTOKEN(SIZEOF);}
+	YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 267 "ldlex.l"
+{ RTOKEN(TARGET_K);}
+	YY_BREAK
+case 71:
+YY_RULE_SETUP
+#line 268 "ldlex.l"
+{ RTOKEN(SEARCH_DIR);}
+	YY_BREAK
+case 72:
+YY_RULE_SETUP
+#line 269 "ldlex.l"
+{ RTOKEN(OUTPUT);}
+	YY_BREAK
+case 73:
+YY_RULE_SETUP
+#line 270 "ldlex.l"
+{ RTOKEN(INPUT);}
+	YY_BREAK
+case 74:
+YY_RULE_SETUP
+#line 271 "ldlex.l"
+{ RTOKEN(GROUP);}
+	YY_BREAK
+case 75:
+YY_RULE_SETUP
+#line 272 "ldlex.l"
+{ RTOKEN(DEFINED);}
+	YY_BREAK
+case 76:
+YY_RULE_SETUP
+#line 273 "ldlex.l"
+{ RTOKEN(CREATE_OBJECT_SYMBOLS);}
+	YY_BREAK
+case 77:
+YY_RULE_SETUP
+#line 274 "ldlex.l"
+{ RTOKEN( CONSTRUCTORS);}
+	YY_BREAK
+case 78:
+YY_RULE_SETUP
+#line 275 "ldlex.l"
+{ RTOKEN(FORCE_COMMON_ALLOCATION);}
+	YY_BREAK
+case 79:
+YY_RULE_SETUP
+#line 276 "ldlex.l"
+{ RTOKEN(INHIBIT_COMMON_ALLOCATION);}
+	YY_BREAK
+case 80:
+YY_RULE_SETUP
+#line 277 "ldlex.l"
+{ RTOKEN(SECTIONS);}
+	YY_BREAK
+case 81:
+YY_RULE_SETUP
+#line 278 "ldlex.l"
+{ RTOKEN(FILL);}
+	YY_BREAK
+case 82:
+YY_RULE_SETUP
+#line 279 "ldlex.l"
+{ RTOKEN(STARTUP);}
+	YY_BREAK
+case 83:
+YY_RULE_SETUP
+#line 280 "ldlex.l"
+{ RTOKEN(OUTPUT_FORMAT);}
+	YY_BREAK
+case 84:
+YY_RULE_SETUP
+#line 281 "ldlex.l"
+{ RTOKEN( OUTPUT_ARCH);}
+	YY_BREAK
+case 85:
+YY_RULE_SETUP
+#line 282 "ldlex.l"
+{ RTOKEN(HLL);}
+	YY_BREAK
+case 86:
+YY_RULE_SETUP
+#line 283 "ldlex.l"
+{ RTOKEN(SYSLIB);}
+	YY_BREAK
+case 87:
+YY_RULE_SETUP
+#line 284 "ldlex.l"
+{ RTOKEN(FLOAT);}
+	YY_BREAK
+case 88:
+YY_RULE_SETUP
+#line 285 "ldlex.l"
+{ RTOKEN( QUAD);}
+	YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 286 "ldlex.l"
+{ RTOKEN( SQUAD);}
+	YY_BREAK
+case 90:
+YY_RULE_SETUP
+#line 287 "ldlex.l"
+{ RTOKEN( LONG);}
+	YY_BREAK
+case 91:
+YY_RULE_SETUP
+#line 288 "ldlex.l"
+{ RTOKEN( SHORT);}
+	YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 289 "ldlex.l"
+{ RTOKEN( BYTE);}
+	YY_BREAK
+case 93:
+YY_RULE_SETUP
+#line 290 "ldlex.l"
+{ RTOKEN(NOFLOAT);}
+	YY_BREAK
+case 94:
+YY_RULE_SETUP
+#line 291 "ldlex.l"
+{ RTOKEN(NOCROSSREFS);}
+	YY_BREAK
+case 95:
+YY_RULE_SETUP
+#line 292 "ldlex.l"
+{ RTOKEN(OVERLAY); }
+	YY_BREAK
+case 96:
+YY_RULE_SETUP
+#line 293 "ldlex.l"
+{ RTOKEN(SORT_BY_NAME); }
+	YY_BREAK
+case 97:
+YY_RULE_SETUP
+#line 294 "ldlex.l"
+{ RTOKEN(SORT_BY_ALIGNMENT); }
+	YY_BREAK
+case 98:
+YY_RULE_SETUP
+#line 295 "ldlex.l"
+{ RTOKEN(SORT_BY_NAME); }
+	YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 296 "ldlex.l"
+{ RTOKEN(NOLOAD);}
+	YY_BREAK
+case 100:
+YY_RULE_SETUP
+#line 297 "ldlex.l"
+{ RTOKEN(DSECT);}
+	YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 298 "ldlex.l"
+{ RTOKEN(COPY);}
+	YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 299 "ldlex.l"
+{ RTOKEN(INFO);}
+	YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 300 "ldlex.l"
+{ RTOKEN(OVERLAY);}
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 301 "ldlex.l"
+{ RTOKEN(ONLY_IF_RO); }
+	YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 302 "ldlex.l"
+{ RTOKEN(ONLY_IF_RW); }
+	YY_BREAK
+case 106:
+YY_RULE_SETUP
+#line 303 "ldlex.l"
+{ RTOKEN(ORIGIN);}
+	YY_BREAK
+case 107:
+YY_RULE_SETUP
+#line 304 "ldlex.l"
+{ RTOKEN(ORIGIN);}
+	YY_BREAK
+case 108:
+YY_RULE_SETUP
+#line 305 "ldlex.l"
+{ RTOKEN( LENGTH);}
+	YY_BREAK
+case 109:
+YY_RULE_SETUP
+#line 306 "ldlex.l"
+{ RTOKEN( LENGTH);}
+	YY_BREAK
+case 110:
+YY_RULE_SETUP
+#line 307 "ldlex.l"
+{ RTOKEN(INCLUDE);}
+	YY_BREAK
+case 111:
+YY_RULE_SETUP
+#line 308 "ldlex.l"
+{ RTOKEN (PHDRS); }
+	YY_BREAK
+case 112:
+YY_RULE_SETUP
+#line 309 "ldlex.l"
+{ RTOKEN(AT);}
+	YY_BREAK
+case 113:
+YY_RULE_SETUP
+#line 310 "ldlex.l"
+{ RTOKEN(SUBALIGN);}
+	YY_BREAK
+case 114:
+YY_RULE_SETUP
+#line 311 "ldlex.l"
+{ RTOKEN(PROVIDE); }
+	YY_BREAK
+case 115:
+YY_RULE_SETUP
+#line 312 "ldlex.l"
+{ RTOKEN(KEEP); }
+	YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 313 "ldlex.l"
+{ RTOKEN(EXCLUDE_FILE); }
+	YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 314 "ldlex.l"
+{ ++ lineno; }
+	YY_BREAK
+case 118:
+YY_RULE_SETUP
+#line 315 "ldlex.l"
+{ ++ lineno;  RTOKEN(NEWLINE); }
+	YY_BREAK
+case 119:
+YY_RULE_SETUP
+#line 316 "ldlex.l"
+{ /* Mri comment line */ }
+	YY_BREAK
+case 120:
+YY_RULE_SETUP
+#line 317 "ldlex.l"
+{ /* Mri comment line */ }
+	YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 318 "ldlex.l"
+{ RTOKEN(ENDWORD); }
+	YY_BREAK
+case 122:
+YY_RULE_SETUP
+#line 319 "ldlex.l"
+{ RTOKEN(ALIGNMOD);}
+	YY_BREAK
+case 123:
+YY_RULE_SETUP
+#line 320 "ldlex.l"
+{ RTOKEN(ALIGN_K);}
+	YY_BREAK
+case 124:
+YY_RULE_SETUP
+#line 321 "ldlex.l"
+{ RTOKEN(CHIP); }
+	YY_BREAK
+case 125:
+YY_RULE_SETUP
+#line 322 "ldlex.l"
+{ RTOKEN(BASE); }
+	YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 323 "ldlex.l"
+{ RTOKEN(ALIAS); }
+	YY_BREAK
+case 127:
+YY_RULE_SETUP
+#line 324 "ldlex.l"
+{ RTOKEN(TRUNCATE); }
+	YY_BREAK
+case 128:
+YY_RULE_SETUP
+#line 325 "ldlex.l"
+{ RTOKEN(LOAD); }
+	YY_BREAK
+case 129:
+YY_RULE_SETUP
+#line 326 "ldlex.l"
+{ RTOKEN(PUBLIC); }
+	YY_BREAK
+case 130:
+YY_RULE_SETUP
+#line 327 "ldlex.l"
+{ RTOKEN(ORDER); }
+	YY_BREAK
+case 131:
+YY_RULE_SETUP
+#line 328 "ldlex.l"
+{ RTOKEN(NAMEWORD); }
+	YY_BREAK
+case 132:
+YY_RULE_SETUP
+#line 329 "ldlex.l"
+{ RTOKEN(FORMAT); }
+	YY_BREAK
+case 133:
+YY_RULE_SETUP
+#line 330 "ldlex.l"
+{ RTOKEN(CASE); }
+	YY_BREAK
+case 134:
+YY_RULE_SETUP
+#line 331 "ldlex.l"
+{ RTOKEN(START); }
+	YY_BREAK
+case 135:
+YY_RULE_SETUP
+#line 332 "ldlex.l"
+{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
+	YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 333 "ldlex.l"
+{ RTOKEN(SECT); }
+	YY_BREAK
+case 137:
+YY_RULE_SETUP
+#line 334 "ldlex.l"
+{ RTOKEN(ABSOLUTE); }
+	YY_BREAK
+case 138:
+YY_RULE_SETUP
+#line 335 "ldlex.l"
+{ RTOKEN(ENDWORD); }
+	YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 336 "ldlex.l"
+{ RTOKEN(ALIGNMOD);}
+	YY_BREAK
+case 140:
+YY_RULE_SETUP
+#line 337 "ldlex.l"
+{ RTOKEN(ALIGN_K);}
+	YY_BREAK
+case 141:
+YY_RULE_SETUP
+#line 338 "ldlex.l"
+{ RTOKEN(CHIP); }
+	YY_BREAK
+case 142:
+YY_RULE_SETUP
+#line 339 "ldlex.l"
+{ RTOKEN(BASE); }
+	YY_BREAK
+case 143:
+YY_RULE_SETUP
+#line 340 "ldlex.l"
+{ RTOKEN(ALIAS); }
+	YY_BREAK
+case 144:
+YY_RULE_SETUP
+#line 341 "ldlex.l"
+{ RTOKEN(TRUNCATE); }
+	YY_BREAK
+case 145:
+YY_RULE_SETUP
+#line 342 "ldlex.l"
+{ RTOKEN(LOAD); }
+	YY_BREAK
+case 146:
+YY_RULE_SETUP
+#line 343 "ldlex.l"
+{ RTOKEN(PUBLIC); }
+	YY_BREAK
+case 147:
+YY_RULE_SETUP
+#line 344 "ldlex.l"
+{ RTOKEN(ORDER); }
+	YY_BREAK
+case 148:
+YY_RULE_SETUP
+#line 345 "ldlex.l"
+{ RTOKEN(NAMEWORD); }
+	YY_BREAK
+case 149:
+YY_RULE_SETUP
+#line 346 "ldlex.l"
+{ RTOKEN(FORMAT); }
+	YY_BREAK
+case 150:
+YY_RULE_SETUP
+#line 347 "ldlex.l"
+{ RTOKEN(CASE); }
+	YY_BREAK
+case 151:
+YY_RULE_SETUP
+#line 348 "ldlex.l"
+{ RTOKEN(EXTERN); }
+	YY_BREAK
+case 152:
+YY_RULE_SETUP
+#line 349 "ldlex.l"
+{ RTOKEN(START); }
+	YY_BREAK
+case 153:
+YY_RULE_SETUP
+#line 350 "ldlex.l"
+{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
+	YY_BREAK
+case 154:
+YY_RULE_SETUP
+#line 351 "ldlex.l"
+{ RTOKEN(SECT); }
+	YY_BREAK
+case 155:
+YY_RULE_SETUP
+#line 352 "ldlex.l"
+{ RTOKEN(ABSOLUTE); }
+	YY_BREAK
+case 156:
+YY_RULE_SETUP
+#line 354 "ldlex.l"
+{
+/* Filename without commas, needed to parse mri stuff */
+				 yylval.name = xstrdup (yytext);
+				  return NAME;
+				}
+	YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 361 "ldlex.l"
+{
+				 yylval.name = xstrdup (yytext);
+				  return NAME;
+				}
+	YY_BREAK
+case 158:
+YY_RULE_SETUP
+#line 365 "ldlex.l"
+{
+				  yylval.name = xstrdup (yytext + 2);
+				  return LNAME;
+				}
+	YY_BREAK
+case 159:
+YY_RULE_SETUP
+#line 369 "ldlex.l"
+{
+		/* Annoyingly, this pattern can match comments, and we have
+		   longest match issues to consider.  So if the first two
+		   characters are a comment opening, put the input back and
+		   try again.  */
+		if (yytext[0] == '/' && yytext[1] == '*')
+		  {
+		    yyless (2);
+		    comment ();
+		  }
+		else
+		  {
+		    yylval.name = xstrdup (yytext);
+		    return NAME;
+		  }
+	}
+	YY_BREAK
+case 160:
+YY_RULE_SETUP
+#line 386 "ldlex.l"
+{
+					/* No matter the state, quotes
+					   give what's inside */
+					yylval.name = xstrdup (yytext + 1);
+					yylval.name[yyleng - 2] = 0;
+					return NAME;
+				}
+	YY_BREAK
+case 161:
+YY_RULE_SETUP
+#line 393 "ldlex.l"
+{ lineno++;}
+	YY_BREAK
+case 162:
+YY_RULE_SETUP
+#line 394 "ldlex.l"
+{ }
+	YY_BREAK
+case 163:
+YY_RULE_SETUP
+#line 396 "ldlex.l"
+{ return *yytext; }
+	YY_BREAK
+case 164:
+YY_RULE_SETUP
+#line 398 "ldlex.l"
+{ RTOKEN(GLOBAL); }
+	YY_BREAK
+case 165:
+YY_RULE_SETUP
+#line 400 "ldlex.l"
+{ RTOKEN(LOCAL); }
+	YY_BREAK
+case 166:
+YY_RULE_SETUP
+#line 402 "ldlex.l"
+{ RTOKEN(EXTERN); }
+	YY_BREAK
+case 167:
+YY_RULE_SETUP
+#line 404 "ldlex.l"
+{ yylval.name = xstrdup (yytext);
+				  return VERS_IDENTIFIER; }
+	YY_BREAK
+case 168:
+YY_RULE_SETUP
+#line 407 "ldlex.l"
+{ yylval.name = xstrdup (yytext);
+				  return VERS_TAG; }
+	YY_BREAK
+case 169:
+YY_RULE_SETUP
+#line 410 "ldlex.l"
+{ BEGIN(VERS_SCRIPT); return *yytext; }
+	YY_BREAK
+case 170:
+YY_RULE_SETUP
+#line 412 "ldlex.l"
+{ BEGIN(VERS_NODE);
+				  vers_node_nesting = 0;
+				  return *yytext;
+				}
+	YY_BREAK
+case 171:
+YY_RULE_SETUP
+#line 416 "ldlex.l"
+{ return *yytext; }
+	YY_BREAK
+case 172:
+YY_RULE_SETUP
+#line 417 "ldlex.l"
+{ vers_node_nesting++; return *yytext; }
+	YY_BREAK
+case 173:
+YY_RULE_SETUP
+#line 418 "ldlex.l"
+{ if (--vers_node_nesting < 0)
+				    BEGIN(VERS_SCRIPT);
+				  return *yytext;
+				}
+	YY_BREAK
+case 174:
+YY_RULE_SETUP
+#line 423 "ldlex.l"
+{ lineno++; }
+	YY_BREAK
+case 175:
+YY_RULE_SETUP
+#line 425 "ldlex.l"
+{ /* Eat up comments */ }
+	YY_BREAK
+case 176:
+YY_RULE_SETUP
+#line 427 "ldlex.l"
+{ /* Eat up whitespace */ }
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(SCRIPT):
+case YY_STATE_EOF(EXPRESSION):
+case YY_STATE_EOF(BOTH):
+case YY_STATE_EOF(DEFSYMEXP):
+case YY_STATE_EOF(MRI):
+case YY_STATE_EOF(VERS_START):
+case YY_STATE_EOF(VERS_SCRIPT):
+case YY_STATE_EOF(VERS_NODE):
+#line 429 "ldlex.l"
+{
+  include_stack_ptr--;
+
+  if (include_stack_ptr == 0)
+  {
+    yyterminate ();
+  }
+  else
+  {
+    yy_switch_to_buffer (include_stack[include_stack_ptr]);
+  }
+
+  ldfile_input_filename = file_name_stack[include_stack_ptr - 1];
+  lineno = lineno_stack[include_stack_ptr];
+
+  return END;
+}
+	YY_BREAK
+case 177:
+YY_RULE_SETUP
+#line 447 "ldlex.l"
+lex_warn_invalid (" in script", yytext);
+	YY_BREAK
+case 178:
+YY_RULE_SETUP
+#line 448 "ldlex.l"
+lex_warn_invalid (" in expression", yytext);
+	YY_BREAK
+case 179:
+YY_RULE_SETUP
+#line 450 "ldlex.l"
+ECHO;
+	YY_BREAK
+#line 2662 "lex.yy.c"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = yy_hold_char;
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state();
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++yy_c_buf_p;
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = yy_c_buf_p;
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer() )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				yy_did_buffer_switch_on_eof = 0;
+
+				if ( yywrap() )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+				yy_current_state = yy_get_previous_state();
+
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of yylex */
+
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+
+static int yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+	else
+		{
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = yy_current_buffer;
+
+			int yy_c_buf_p_offset =
+				(int) (yy_c_buf_p - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				int new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = yy_current_buffer->yy_buf_size -
+						number_to_move - 1;
+#endif
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
+
+		yy_current_buffer->yy_n_chars = yy_n_chars;
+		}
+
+	if ( yy_n_chars == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart( yyin );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			yy_current_buffer->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+	return ret_val;
+	}
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+	{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+
+	yy_current_state = yy_start;
+
+	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+		{
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		if ( yy_accept[yy_current_state] )
+			{
+			yy_last_accepting_state = yy_current_state;
+			yy_last_accepting_cpos = yy_cp;
+			}
+		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+			{
+			yy_current_state = (int) yy_def[yy_current_state];
+			if ( yy_current_state >= 1260 )
+				yy_c = yy_meta[(unsigned int) yy_c];
+			}
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		}
+
+	return yy_current_state;
+	}
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+	{
+	register int yy_is_jam;
+	register char *yy_cp = yy_c_buf_p;
+
+	register YY_CHAR yy_c = 1;
+	if ( yy_accept[yy_current_state] )
+		{
+		yy_last_accepting_state = yy_current_state;
+		yy_last_accepting_cpos = yy_cp;
+		}
+	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+		{
+		yy_current_state = (int) yy_def[yy_current_state];
+		if ( yy_current_state >= 1260 )
+			yy_c = yy_meta[(unsigned int) yy_c];
+		}
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_is_jam = (yy_current_state == 1259);
+
+	return yy_is_jam ? 0 : yy_current_state;
+	}
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+	{
+	register char *yy_cp = yy_c_buf_p;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yy_hold_char;
+
+	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+		{ /* need to shift things up to make room */
+		/* +2 for EOB chars. */
+		register int number_to_move = yy_n_chars + 2;
+		register char *dest = &yy_current_buffer->yy_ch_buf[
+					yy_current_buffer->yy_buf_size + 2];
+		register char *source =
+				&yy_current_buffer->yy_ch_buf[number_to_move];
+
+		while ( source > yy_current_buffer->yy_ch_buf )
+			*--dest = *--source;
+
+		yy_cp += (int) (dest - source);
+		yy_bp += (int) (dest - source);
+		yy_current_buffer->yy_n_chars =
+			yy_n_chars = yy_current_buffer->yy_buf_size;
+
+		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+			YY_FATAL_ERROR( "flex scanner push-back overflow" );
+		}
+
+	*--yy_cp = (char) c;
+
+
+	yytext_ptr = yy_bp;
+	yy_hold_char = *yy_cp;
+	yy_c_buf_p = yy_cp;
+	}
+#endif	/* ifndef YY_NO_UNPUT */
+
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+	{
+	int c;
+
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+			/* This was really a NUL. */
+			*yy_c_buf_p = '\0';
+
+		else
+			{ /* need more input */
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
+
+			switch ( yy_get_next_buffer() )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart( yyin );
+
+					/* fall through */
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap() )
+						return EOF;
+
+					if ( ! yy_did_buffer_switch_on_eof )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					yy_c_buf_p = yytext_ptr + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
+
+
+	return c;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+	{
+	if ( ! yy_current_buffer )
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+	yy_init_buffer( yy_current_buffer, input_file );
+	yy_load_buffer_state();
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+	{
+	if ( yy_current_buffer == new_buffer )
+		return;
+
+	if ( yy_current_buffer )
+		{
+		/* Flush out information for old buffer. */
+		*yy_c_buf_p = yy_hold_char;
+		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+		yy_current_buffer->yy_n_chars = yy_n_chars;
+		}
+
+	yy_current_buffer = new_buffer;
+	yy_load_buffer_state();
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	yy_did_buffer_switch_on_eof = 1;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+	{
+	yy_n_chars = yy_current_buffer->yy_n_chars;
+	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+	yyin = yy_current_buffer->yy_input_file;
+	yy_hold_char = *yy_c_buf_p;
+	}
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+	{
+	YY_BUFFER_STATE b;
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer( b, file );
+
+	return b;
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+	{
+	if ( ! b )
+		return;
+
+	if ( b == yy_current_buffer )
+		yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yy_flex_free( (void *) b->yy_ch_buf );
+
+	yy_flex_free( (void *) b );
+	}
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+	{
+	yy_flush_buffer( b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+#if YY_ALWAYS_INTERACTIVE
+	b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+	b->yy_is_interactive = 0;
+#else
+	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+	}
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+	{
+	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == yy_current_buffer )
+		yy_load_buffer_state();
+	}
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+	{
+	YY_BUFFER_STATE b;
+
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer( b );
+
+	return b;
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+	{
+	int len;
+	for ( len = 0; yy_str[len]; ++len )
+		;
+
+	return yy_scan_bytes( yy_str, len );
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+	{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	int i;
+
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = len + 2;
+	buf = (char *) yy_flex_alloc( n );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < len; ++i )
+		buf[i] = bytes[i];
+
+	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer( buf, n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+	}
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+	{
+	if ( yy_start_stack_ptr >= yy_start_stack_depth )
+		{
+		yy_size_t new_size;
+
+		yy_start_stack_depth += YY_START_STACK_INCR;
+		new_size = yy_start_stack_depth * sizeof( int );
+
+		if ( ! yy_start_stack )
+			yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+		else
+			yy_start_stack = (int *) yy_flex_realloc(
+					(void *) yy_start_stack, new_size );
+
+		if ( ! yy_start_stack )
+			YY_FATAL_ERROR(
+			"out of memory expanding start-condition stack" );
+		}
+
+	yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+	BEGIN(new_state);
+	}
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+	{
+	if ( --yy_start_stack_ptr < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN(yy_start_stack[yy_start_stack_ptr]);
+	}
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+	{
+	return yy_start_stack[yy_start_stack_ptr - 1];
+	}
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+	{
+	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+	}
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
+		} \
+	while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+	}
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+	}
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
+	return (void *) malloc( size );
+	}
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+	{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+	}
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+	{
+	free( ptr );
+	}
+
+#if YY_MAIN
+int main()
+	{
+	yylex();
+	return 0;
+	}
+#endif
+#line 450 "ldlex.l"
+
+
+
+/* Switch flex to reading script file NAME, open on FILE,
+   saving the current input info on the include stack.  */
+
+void
+lex_push_file (FILE *file, const char *name)
+{
+  if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
+    {
+      einfo ("%F:includes nested too deeply\n");
+    }
+  file_name_stack[include_stack_ptr] = name;
+  lineno_stack[include_stack_ptr] = lineno;
+  include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
+
+  include_stack_ptr++;
+  lineno = 1;
+  yyin = file;
+  yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE));
+}
+
+/* Return a newly created flex input buffer containing STRING,
+   which is SIZE bytes long.  */
+
+static YY_BUFFER_STATE
+yy_create_string_buffer (const char *string, size_t size)
+{
+  YY_BUFFER_STATE b;
+
+  /* Calls to m-alloc get turned by sed into xm-alloc.  */
+  b = malloc (sizeof (struct yy_buffer_state));
+  b->yy_input_file = 0;
+  b->yy_buf_size = size;
+
+  /* yy_ch_buf has to be 2 characters longer than the size given because
+     we need to put in 2 end-of-buffer characters.  */
+  b->yy_ch_buf = malloc ((unsigned) (b->yy_buf_size + 3));
+
+  b->yy_ch_buf[0] = '\n';
+  strcpy (b->yy_ch_buf+1, string);
+  b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR;
+  b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR;
+  b->yy_n_chars = size+1;
+  b->yy_buf_pos = &b->yy_ch_buf[1];
+
+  b->yy_is_our_buffer = 1;
+  b->yy_is_interactive = 0;
+  b->yy_at_bol = 1;
+  b->yy_fill_buffer = 0;
+
+  /* flex 2.4.7 changed the interface.  FIXME: We should not be using
+     a flex internal interface in the first place!  */
+#ifdef YY_BUFFER_NEW
+  b->yy_buffer_status = YY_BUFFER_NEW;
+#else
+  b->yy_eof_status = EOF_NOT_SEEN;
+#endif
+
+  return b;
+}
+
+/* Switch flex to reading from STRING, saving the current input info
+   on the include stack.  */
+
+void
+lex_redirect (const char *string)
+{
+  YY_BUFFER_STATE tmp;
+
+  yy_init = 0;
+  if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
+    {
+      einfo("%F: macros nested too deeply\n");
+    }
+  file_name_stack[include_stack_ptr] = "redirect";
+  lineno_stack[include_stack_ptr] = lineno;
+  include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
+  include_stack_ptr++;
+  lineno = 1;
+  tmp = yy_create_string_buffer (string, strlen (string));
+  yy_switch_to_buffer (tmp);
+}
+
+/* Functions to switch to a different flex start condition,
+   saving the current start condition on `state_stack'.  */
+
+static int state_stack[MAX_INCLUDE_DEPTH * 2];
+static int *state_stack_p = state_stack;
+
+void
+ldlex_script (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (SCRIPT);
+}
+
+void
+ldlex_mri_script (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (MRI);
+}
+
+void
+ldlex_version_script (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (VERS_START);
+}
+
+void
+ldlex_version_file (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (VERS_SCRIPT);
+}
+
+void
+ldlex_defsym (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (DEFSYMEXP);
+}
+
+void
+ldlex_expression (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (EXPRESSION);
+}
+
+void
+ldlex_both (void)
+{
+  *(state_stack_p)++ = yy_start;
+  BEGIN (BOTH);
+}
+
+void
+ldlex_popstate (void)
+{
+  yy_start = *(--state_stack_p);
+}
+
+
+/* Place up to MAX_SIZE characters in BUF and return in *RESULT
+   either the number of characters read, or 0 to indicate EOF.  */
+
+static void
+yy_input (char *buf, int *result, int max_size)
+{
+  *result = 0;
+  if (YY_CURRENT_BUFFER->yy_input_file)
+    {
+      if (yyin)
+	{
+	  *result = fread (buf, 1, max_size, yyin);
+	  if (*result < max_size && ferror (yyin))
+	    einfo ("%F%P: read in flex scanner failed\n");
+	}
+    }
+}
+
+/* Eat the rest of a C-style comment.  */
+
+static void
+comment (void)
+{
+  int c;
+
+  while (1)
+  {
+    c = input();
+    while (c != '*' && c != EOF)
+    {
+      if (c == '\n')
+	lineno++;
+      c = input();
+    }
+
+    if (c == '*')
+    {
+      c = input();
+      while (c == '*')
+       c = input();
+      if (c == '/')
+       break;			/* found the end */
+    }
+
+    if (c == '\n')
+      lineno++;
+
+    if (c == EOF)
+    {
+      einfo( "%F%P: EOF in comment\n");
+      break;
+    }
+  }
+}
+
+/* Warn the user about a garbage character WHAT in the input
+   in context WHERE.  */
+
+static void
+lex_warn_invalid (char *where, char *what)
+{
+  char buf[5];
+
+  /* If we have found an input file whose format we do not recognize,
+     and we are therefore treating it as a linker script, and we find
+     an invalid character, then most likely this is a real object file
+     of some different format.  Treat it as such.  */
+  if (ldfile_assumed_script)
+    {
+      bfd_set_error (bfd_error_file_not_recognized);
+      einfo ("%F%s: file not recognized: %E\n", ldfile_input_filename);
+    }
+
+  if (! ISPRINT (*what))
+    {
+      sprintf (buf, "\\%03o", (unsigned int) *what);
+      what = buf;
+    }
+
+  einfo ("%P:%S: ignoring invalid character `%s'%s\n", what, where);
+}
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/libtool.m4 binutils-2004-q3d-uclibc/libtool.m4
--- binutils-2004-q3d-pristine/libtool.m4	2004-07-21 22:21:41.000000000 +0300
+++ binutils-2004-q3d-uclibc/libtool.m4	2005-02-24 09:32:42.000000000 +0200
@@ -645,6 +645,11 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/ltconfig binutils-2004-q3d-uclibc/ltconfig
--- binutils-2004-q3d-pristine/ltconfig	2004-10-05 16:34:42.000000000 +0300
+++ binutils-2004-q3d-uclibc/ltconfig	2005-02-24 08:51:33.000000000 +0200
@@ -603,6 +603,7 @@
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 case $host_os in
 linux-gnu*) ;;
+linux-uclibc*) ;;
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 esac
 
@@ -1270,6 +1271,24 @@
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+linux-uclibc*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  # Note: copied from linux-gnu, and may not be appropriate.
+  hardcode_into_libs=yes
+  # Assume using the uClibc dynamic linker.
+  dynamic_linker="uClibc ld.so"
+  ;;
+
 netbsd*)
   need_lib_prefix=no
   need_version=no
diff -x '*.info-1' -x '*.info' -x '*.texi' -x '*.1' -rNd -U3 binutils-2004-q3d-pristine/opcodes/configure binutils-2004-q3d-uclibc/opcodes/configure
--- binutils-2004-q3d-pristine/opcodes/configure	2004-09-17 09:13:38.000000000 +0300
+++ binutils-2004-q3d-uclibc/opcodes/configure	2005-02-24 09:34:20.000000000 +0200
@@ -3587,6 +3587,11 @@
   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   ;;
 
+linux-uclibc*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+  ;;
+
 netbsd* | knetbsd*-gnu)
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'

