From af86b76175bd931e226b45c80c424e66ccf78835 Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Thu, 16 Mar 2006 20:02:33 +0000 Subject: binutils/ 2006-03-16 Carlos O'Donell * rcparse.c: Remove generated file. * rcparse.h: Likewise. * nlmheader.c: Likewise. * nlmheader.h: Likewise. * arparse.c: Likewise. * arparse.h: Likewise. * sysinfo.c: Likewise. * sysinfo.h: Likewise. * defparse.c: Likewise. * defparse.h: Likewise. * rclex.c: Likewise. * syslex.c: Likewise. * deflex.c: Likewise. * arlex: Likewise. gas/ 2006-03-16 Carlos O'Donell * itbl-parse.c: Remove generated file. * itbl-parse.h: Likewise. * m68k-parse.c: Likewise. * itbl-lex.c: Likewise. ld/ 2006-03-16 Carlos O'Donell * ldgram.c: Remove generated file. * ldgram.h: Likewise. * ldlex.c: Likewise. --- binutils/arlex.c | 1856 ------------------------ binutils/arparse.c | 1291 ----------------- binutils/arparse.h | 35 - binutils/deflex.c | 1876 ------------------------- binutils/defparse.c | 1424 ------------------- binutils/defparse.h | 44 - binutils/nlmheader.c | 2172 ---------------------------- binutils/nlmheader.h | 52 - binutils/rclex.c | 2610 ---------------------------------- binutils/rcparse.c | 3513 ---------------------------------------------- binutils/rcparse.h | 134 -- binutils/sysinfo.c | 1518 -------------------- binutils/sysinfo.h | 22 - binutils/syslex.c | 1732 ----------------------- gas/itbl-lex.c | 1713 ----------------------- gas/itbl-parse.c | 1546 -------------------- gas/itbl-parse.h | 29 - gas/m68k-parse.c | 2305 ------------------------------ ld/ldgram.c | 3370 -------------------------------------------- ld/ldgram.h | 152 -- ld/ldlex.c | 3808 -------------------------------------------------- 21 files changed, 31202 deletions(-) delete mode 100644 binutils/arlex.c delete mode 100644 binutils/arparse.c delete mode 100644 binutils/arparse.h delete mode 100644 binutils/deflex.c delete mode 100644 binutils/defparse.c delete mode 100644 binutils/defparse.h delete mode 100644 binutils/nlmheader.c delete mode 100644 binutils/nlmheader.h delete mode 100644 binutils/rclex.c delete mode 100644 binutils/rcparse.c delete mode 100644 binutils/rcparse.h delete mode 100644 binutils/sysinfo.c delete mode 100644 binutils/sysinfo.h delete mode 100644 binutils/syslex.c delete mode 100644 gas/itbl-lex.c delete mode 100644 gas/itbl-parse.c delete mode 100644 gas/itbl-parse.h delete mode 100644 gas/m68k-parse.c delete mode 100644 ld/ldgram.c delete mode 100644 ld/ldgram.h delete mode 100644 ld/ldlex.c diff --git a/binutils/arlex.c b/binutils/arlex.c deleted file mode 100644 index 7f7ae85351b..00000000000 --- a/binutils/arlex.c +++ /dev/null @@ -1,1856 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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, 2001, 2002, 2003, 2004 - 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 . */ - -#define DONTDECLARE_MALLOC -#include "ansidecl.h" -#include "libiberty.h" -#include "arparse.h" - -#define YY_NO_UNPUT - -extern int yylex (void); - -int linenumber; -#line 511 "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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 41 "arlex.l" - - -#line 676 "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 43 "arlex.l" -{ return ADDLIB; } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 44 "arlex.l" -{ return ADDMOD; } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 45 "arlex.l" -{ return CLEAR; } - YY_BREAK -case 4: -YY_RULE_SETUP -#line 46 "arlex.l" -{ return CREATE; } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 47 "arlex.l" -{ return DELETE; } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 48 "arlex.l" -{ return DIRECTORY; } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 49 "arlex.l" -{ return END; } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 50 "arlex.l" -{ return EXTRACT; } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 51 "arlex.l" -{ return FULLDIR; } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 52 "arlex.l" -{ return HELP; } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 53 "arlex.l" -{ return LIST; } - YY_BREAK -case 12: -YY_RULE_SETUP -#line 54 "arlex.l" -{ return OPEN; } - YY_BREAK -case 13: -YY_RULE_SETUP -#line 55 "arlex.l" -{ return REPLACE; } - YY_BREAK -case 14: -YY_RULE_SETUP -#line 56 "arlex.l" -{ return VERBOSE; } - YY_BREAK -case 15: -YY_RULE_SETUP -#line 57 "arlex.l" -{ return SAVE; } - YY_BREAK -case 16: -YY_RULE_SETUP -#line 58 "arlex.l" -{ return ADDLIB; } - YY_BREAK -case 17: -YY_RULE_SETUP -#line 59 "arlex.l" -{ return ADDMOD; } - YY_BREAK -case 18: -YY_RULE_SETUP -#line 60 "arlex.l" -{ return CLEAR; } - YY_BREAK -case 19: -YY_RULE_SETUP -#line 61 "arlex.l" -{ return CREATE; } - YY_BREAK -case 20: -YY_RULE_SETUP -#line 62 "arlex.l" -{ return DELETE; } - YY_BREAK -case 21: -YY_RULE_SETUP -#line 63 "arlex.l" -{ return DIRECTORY; } - YY_BREAK -case 22: -YY_RULE_SETUP -#line 64 "arlex.l" -{ return END; } - YY_BREAK -case 23: -YY_RULE_SETUP -#line 65 "arlex.l" -{ return EXTRACT; } - YY_BREAK -case 24: -YY_RULE_SETUP -#line 66 "arlex.l" -{ return FULLDIR; } - YY_BREAK -case 25: -YY_RULE_SETUP -#line 67 "arlex.l" -{ return HELP; } - YY_BREAK -case 26: -YY_RULE_SETUP -#line 68 "arlex.l" -{ return LIST; } - YY_BREAK -case 27: -YY_RULE_SETUP -#line 69 "arlex.l" -{ return OPEN; } - YY_BREAK -case 28: -YY_RULE_SETUP -#line 70 "arlex.l" -{ return REPLACE; } - YY_BREAK -case 29: -YY_RULE_SETUP -#line 71 "arlex.l" -{ return VERBOSE; } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 72 "arlex.l" -{ return SAVE; } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 73 "arlex.l" -{ linenumber ++; } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 74 "arlex.l" -{ return '('; } - YY_BREAK -case 33: -YY_RULE_SETUP -#line 75 "arlex.l" -{ return ')'; } - YY_BREAK -case 34: -YY_RULE_SETUP -#line 76 "arlex.l" -{ return ','; } - YY_BREAK -case 35: -YY_RULE_SETUP -#line 77 "arlex.l" -{ - yylval.name = xstrdup (yytext); - return FILENAME; - } - YY_BREAK -case 36: -YY_RULE_SETUP -#line 81 "arlex.l" -{ } - YY_BREAK -case 37: -YY_RULE_SETUP -#line 82 "arlex.l" -{ } - YY_BREAK -case 38: -YY_RULE_SETUP -#line 83 "arlex.l" -{ } - YY_BREAK -case 39: -YY_RULE_SETUP -#line 84 "arlex.l" -{ linenumber ++; return NEWLINE; } - YY_BREAK -case 40: -YY_RULE_SETUP -#line 86 "arlex.l" -ECHO; - YY_BREAK -#line 962 "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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 86 "arlex.l" - -#ifndef yywrap -/* Needed for lex, though not flex. */ -int yywrap(void) { return 1; } -#endif diff --git a/binutils/arparse.c b/binutils/arparse.c deleted file mode 100644 index fccd831b309..00000000000 --- a/binutils/arparse.c +++ /dev/null @@ -1,1291 +0,0 @@ -/* A Bison parser, made from arparse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define NEWLINE 257 -# define VERBOSE 258 -# define FILENAME 259 -# define ADDLIB 260 -# define LIST 261 -# define ADDMOD 262 -# define CLEAR 263 -# define CREATE 264 -# define DELETE 265 -# define DIRECTORY 266 -# define END 267 -# define EXTRACT 268 -# define FULLDIR 269 -# define HELP 270 -# define QUIT 271 -# define REPLACE 272 -# define SAVE 273 -# define OPEN 274 - -#line 1 "arparse.y" - -/* arparse.y - Stange script language parser */ - -/* Copyright 1992, 1993, 1995, 1997, 1999, 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 "bfd.h" -#include "bucomm.h" -#include "arsup.h" -extern int verbose; -extern int yylex (void); -static int yyerror (const char *); - -#line 37 "arparse.y" -#ifndef YYSTYPE -typedef union { - char *name; -struct list *list ; - -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 53 -#define YYFLAG -32768 -#define YYNTBASE 24 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 274 ? yytranslate[x] : 45) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 1, 4, 7, 8, 11, 13, 15, 17, - 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, - 39, 41, 42, 45, 48, 50, 53, 56, 58, 60, - 63, 66, 70, 75, 77, 78, 82, 83, 87, 88, - 90, 91 -}; -static const short yyrhs[] = -{ - -1, 25, 26, 0, 26, 27, 0, 0, 28, 3, - 0, 36, 0, 37, 0, 44, 0, 39, 0, 38, - 0, 31, 0, 33, 0, 35, 0, 29, 0, 30, - 0, 32, 0, 34, 0, 13, 0, 1, 0, 5, - 0, 0, 14, 42, 0, 18, 42, 0, 9, 0, - 11, 42, 0, 8, 42, 0, 7, 0, 19, 0, - 20, 5, 0, 10, 5, 0, 6, 5, 41, 0, - 12, 5, 41, 40, 0, 5, 0, 0, 21, 42, - 22, 0, 0, 42, 43, 5, 0, 0, 23, 0, - 0, 4, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 67, 67, 71, 73, 76, 80, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 100, 105, 110, 115, 119, 124, 129, 136, - 141, 147, 151, 158, 161, 164, 167, 171, 178, 182, - 184, 188 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "NEWLINE", "VERBOSE", "FILENAME", "ADDLIB", - "LIST", "ADDMOD", "CLEAR", "CREATE", "DELETE", "DIRECTORY", "END", - "EXTRACT", "FULLDIR", "HELP", "QUIT", "REPLACE", "SAVE", "OPEN", "'('", - "')'", "','", "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 - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 25, 24, 26, 26, 27, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 40, 41, 41, 42, 42, 43, - 43, 44 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 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[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 1, 4, 0, 19, 41, 20, 0, 27, 38, 24, - 0, 38, 0, 18, 38, 38, 28, 0, 3, 0, - 14, 15, 11, 16, 12, 17, 13, 6, 7, 10, - 9, 8, 36, 26, 30, 25, 36, 22, 23, 29, - 5, 38, 31, 39, 0, 34, 40, 37, 33, 32, - 35, 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 51, 1, 2, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 49, 42, 33, 44, - 31 -}; - -static const short yypact[] = -{ - -32768,-32768, 5,-32768,-32768,-32768, -4,-32768,-32768,-32768, - 2,-32768, 21,-32768,-32768,-32768,-32768, 22,-32768, 25, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 8, -3,-32768, -3, 8, -3, -3,-32768, - -32768,-32768,-32768,-32768, 26, 27, -1,-32768,-32768,-32768, - -32768, 33, 34,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 0, -11,-32768, - -32768 -}; - - -#define YYLAST 36 - - -static const short yytable[] = -{ - 35, 32, -40, 37, 38, -2, 3, 34, -21, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 43, 50, 43, 15, 16, 17, 36, 39, 40, 41, - 46, 47, 48, 52, 53, 0, 45 -}; - -static const short yycheck[] = -{ - 11, 5, 5, 14, 15, 0, 1, 5, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 23, 22, 23, 18, 19, 20, 5, 5, 3, 21, - 41, 5, 5, 0, 0, -1, 36 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 1: -#line 68 "arparse.y" -{ prompt(); } - break; -case 5: -#line 77 "arparse.y" -{ prompt(); } - break; -case 18: -#line 93 "arparse.y" -{ ar_end(); return 0; } - break; -case 20: -#line 95 "arparse.y" -{ yyerror("foo"); } - break; -case 22: -#line 102 "arparse.y" -{ ar_extract(yyvsp[0].list); } - break; -case 23: -#line 107 "arparse.y" -{ ar_replace(yyvsp[0].list); } - break; -case 24: -#line 112 "arparse.y" -{ ar_clear(); } - break; -case 25: -#line 117 "arparse.y" -{ ar_delete(yyvsp[0].list); } - break; -case 26: -#line 121 "arparse.y" -{ ar_addmod(yyvsp[0].list); } - break; -case 27: -#line 126 "arparse.y" -{ ar_list(); } - break; -case 28: -#line 131 "arparse.y" -{ ar_save(); } - break; -case 29: -#line 138 "arparse.y" -{ ar_open(yyvsp[0].name,0); } - break; -case 30: -#line 143 "arparse.y" -{ ar_open(yyvsp[0].name,1); } - break; -case 31: -#line 149 "arparse.y" -{ ar_addlib(yyvsp[-1].name,yyvsp[0].list); } - break; -case 32: -#line 153 "arparse.y" -{ ar_directory(yyvsp[-2].name, yyvsp[-1].list, yyvsp[0].name); } - break; -case 33: -#line 160 "arparse.y" -{ yyval.name = yyvsp[0].name; } - break; -case 34: -#line 161 "arparse.y" -{ yyval.name = 0; } - break; -case 35: -#line 166 "arparse.y" -{ yyval.list = yyvsp[-1].list; } - break; -case 36: -#line 168 "arparse.y" -{ yyval.list = 0; } - break; -case 37: -#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 38: -#line 178 "arparse.y" -{ yyval.list = 0; } - break; -case 41: -#line 190 "arparse.y" -{ verbose = !verbose; } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -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 --git a/binutils/arparse.h b/binutils/arparse.h deleted file mode 100644 index 0b9c3fd3eda..00000000000 --- a/binutils/arparse.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union { - char *name; -struct list *list ; - -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define NEWLINE 257 -# define VERBOSE 258 -# define FILENAME 259 -# define ADDLIB 260 -# define LIST 261 -# define ADDMOD 262 -# define CLEAR 263 -# define CREATE 264 -# define DELETE 265 -# define DIRECTORY 266 -# define END 267 -# define EXTRACT 268 -# define FULLDIR 269 -# define HELP 270 -# define QUIT 271 -# define REPLACE 272 -# define SAVE 273 -# define OPEN 274 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/binutils/deflex.c b/binutils/deflex.c deleted file mode 100644 index c1ab5eb262a..00000000000 --- a/binutils/deflex.c +++ /dev/null @@ -1,1876 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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[197] = - { 0, - 0, 0, 41, 40, 34, 35, 33, 40, 28, 40, - 31, 39, 37, 27, 32, 36, 38, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 0, 29, 28, 0, 30, 31, 27, 32, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 12, 6, 28, 7, 28, - 28, 28, 28, 28, 28, 28, 28, 1, 28, 28, - - 28, 16, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 17, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 14, 28, 28, 28, 19, 21, 28, 28, 28, 28, - 28, 28, 18, 9, 28, 10, 28, 28, 2, 28, - 28, 15, 28, 28, 28, 28, 11, 13, 28, 5, - 28, 28, 22, 28, 8, 28, 28, 28, 28, 28, - 28, 20, 4, 28, 28, 28, 24, 28, 26, 28, - 3, 28, 28, 23, 25, 0 - - } ; - -static yyconst int yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 5, 1, 6, 1, 1, 7, 1, - 1, 8, 1, 9, 6, 10, 11, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 6, 13, 1, - 14, 1, 6, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 6, 25, 26, 27, 28, 29, 30, - 6, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 1, 1, 1, 1, 6, 1, 21, 21, 21, 21, - - 21, 21, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, - 6, 6, 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[40] = - { 0, - 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, - 4, 5, 1, 1, 4, 6, 6, 6, 6, 6, - 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3 - } ; - -static yyconst short int yy_base[204] = - { 0, - 0, 0, 228, 229, 229, 229, 229, 222, 0, 219, - 0, 229, 229, 0, 0, 229, 0, 209, 195, 24, - 186, 202, 14, 197, 186, 27, 188, 198, 25, 197, - 196, 184, 209, 229, 0, 206, 229, 0, 0, 0, - 0, 180, 27, 178, 178, 27, 193, 178, 183, 189, - 179, 177, 175, 178, 185, 182, 183, 170, 181, 165, - 164, 170, 173, 172, 159, 174, 171, 170, 158, 156, - 156, 151, 152, 149, 161, 34, 145, 160, 145, 146, - 154, 157, 147, 141, 139, 0, 0, 138, 0, 139, - 135, 137, 135, 135, 29, 149, 140, 0, 136, 139, - - 145, 0, 136, 139, 132, 132, 30, 132, 135, 138, - 129, 119, 118, 126, 116, 122, 119, 115, 115, 124, - 127, 109, 112, 121, 119, 106, 111, 108, 106, 0, - 106, 103, 112, 99, 91, 97, 99, 95, 88, 99, - 0, 93, 103, 94, 0, 0, 97, 91, 87, 90, - 84, 83, 0, 0, 95, 0, 97, 80, 0, 92, - 91, 0, 78, 70, 91, 74, 0, 0, 82, 0, - 89, 88, 0, 84, 0, 82, 85, 83, 69, 66, - 56, 0, 0, 39, 36, 35, 0, 44, 0, 43, - 0, 40, 39, 0, 0, 229, 66, 70, 76, 82, - - 84, 90, 94 - } ; - -static yyconst short int yy_def[204] = - { 0, - 196, 1, 196, 196, 196, 196, 196, 197, 198, 199, - 200, 196, 196, 201, 202, 196, 203, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 197, 196, 198, 199, 196, 200, 201, 202, - 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, 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, 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, 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, 0, 196, 196, 196, 196, - - 196, 196, 196 - } ; - -static yyconst short int yy_nxt[269] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 4, 14, 15, 16, 17, 9, 18, 19, 20, 21, - 9, 9, 22, 23, 9, 24, 25, 26, 9, 27, - 28, 29, 30, 9, 31, 32, 9, 9, 9, 44, - 48, 49, 52, 45, 56, 64, 68, 57, 58, 99, - 116, 127, 117, 128, 65, 53, 69, 59, 195, 194, - 193, 192, 191, 190, 189, 100, 33, 33, 33, 33, - 33, 33, 35, 35, 35, 35, 36, 36, 36, 36, - 36, 36, 38, 188, 38, 38, 38, 38, 39, 39, - 40, 187, 40, 40, 40, 40, 41, 186, 185, 41, - - 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, - 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, 126, 125, 124, 123, - 122, 121, 120, 119, 118, 115, 114, 113, 112, 111, - 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, - 98, 97, 96, 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, 67, - 66, 63, 37, 34, 62, 61, 60, 55, 54, 51, - 50, 47, 46, 43, 42, 37, 34, 196, 3, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196 - } ; - -static yyconst short int yy_chk[269] = - { 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, 20, - 23, 23, 26, 20, 29, 43, 46, 29, 29, 76, - 95, 107, 95, 107, 43, 26, 46, 29, 193, 192, - 190, 188, 186, 185, 184, 76, 197, 197, 197, 197, - 197, 197, 198, 198, 198, 198, 199, 199, 199, 199, - 199, 199, 200, 181, 200, 200, 200, 200, 201, 201, - 202, 180, 202, 202, 202, 202, 203, 179, 178, 203, - - 177, 176, 174, 172, 171, 169, 166, 165, 164, 163, - 161, 160, 158, 157, 155, 152, 151, 150, 149, 148, - 147, 144, 143, 142, 140, 139, 138, 137, 136, 135, - 134, 133, 132, 131, 129, 128, 127, 126, 125, 124, - 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, - 113, 112, 111, 110, 109, 108, 106, 105, 104, 103, - 101, 100, 99, 97, 96, 94, 93, 92, 91, 90, - 88, 85, 84, 83, 82, 81, 80, 79, 78, 77, - 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, - 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, - - 55, 54, 53, 52, 51, 50, 49, 48, 47, 45, - 44, 42, 36, 33, 32, 31, 30, 28, 27, 25, - 24, 22, 21, 19, 18, 10, 8, 3, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196 - } ; - -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 "deflex.l" -#define INITIAL 0 -#line 2 "deflex.l" - -/* Copyright 1995, 1997, 1998, 1999, 2002, 2003, 2004, 2005 - 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 "libiberty.h" -#include "defparse.h" -#include "dlltool.h" - -#define YY_NO_UNPUT - -int linenumber; - -#line 523 "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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 35 "deflex.l" - -#line 687 "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 >= 197 ) - 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] != 229 ); - -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 36 "deflex.l" -{ return NAME;} - YY_BREAK -case 2: -YY_RULE_SETUP -#line 37 "deflex.l" -{ return LIBRARY;} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 38 "deflex.l" -{ return DESCRIPTION;} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 39 "deflex.l" -{ return STACKSIZE;} - YY_BREAK -case 5: -YY_RULE_SETUP -#line 40 "deflex.l" -{ return HEAPSIZE;} - YY_BREAK -case 6: -YY_RULE_SETUP -#line 41 "deflex.l" -{ return CODE;} - YY_BREAK -case 7: -YY_RULE_SETUP -#line 42 "deflex.l" -{ return DATA;} - YY_BREAK -case 8: -YY_RULE_SETUP -#line 43 "deflex.l" -{ return SECTIONS;} - YY_BREAK -case 9: -YY_RULE_SETUP -#line 44 "deflex.l" -{ return EXPORTS;} - YY_BREAK -case 10: -YY_RULE_SETUP -#line 45 "deflex.l" -{ return IMPORTS;} - YY_BREAK -case 11: -YY_RULE_SETUP -#line 46 "deflex.l" -{ return VERSIONK;} - YY_BREAK -case 12: -YY_RULE_SETUP -#line 47 "deflex.l" -{ return BASE;} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 48 "deflex.l" -{ return CONSTANT; } - YY_BREAK -case 14: -YY_RULE_SETUP -#line 49 "deflex.l" -{ return NONAME; } - YY_BREAK -case 15: -YY_RULE_SETUP -#line 50 "deflex.l" -{ return PRIVATE; } - YY_BREAK -case 16: -YY_RULE_SETUP -#line 51 "deflex.l" -{ return READ;} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 52 "deflex.l" -{ return WRITE;} - YY_BREAK -case 18: -YY_RULE_SETUP -#line 53 "deflex.l" -{ return EXECUTE;} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 54 "deflex.l" -{ return SHARED;} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 55 "deflex.l" -{ return NONSHARED;} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 56 "deflex.l" -{ return SINGLE;} - YY_BREAK -case 22: -YY_RULE_SETUP -#line 57 "deflex.l" -{ return MULTIPLE;} - YY_BREAK -case 23: -YY_RULE_SETUP -#line 58 "deflex.l" -{ return INITINSTANCE;} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 59 "deflex.l" -{ return INITGLOBAL;} - YY_BREAK -case 25: -YY_RULE_SETUP -#line 60 "deflex.l" -{ return TERMINSTANCE;} - YY_BREAK -case 26: -YY_RULE_SETUP -#line 61 "deflex.l" -{ return TERMGLOBAL;} - YY_BREAK -case 27: -YY_RULE_SETUP -#line 63 "deflex.l" -{ yylval.number = strtol (yytext,0,0); - return NUMBER; } - YY_BREAK -case 28: -YY_RULE_SETUP -#line 66 "deflex.l" -{ - yylval.id = xstrdup (yytext); - return ID; - } - YY_BREAK -case 29: -YY_RULE_SETUP -#line 71 "deflex.l" -{ - yylval.id = xstrdup (yytext+1); - yylval.id[yyleng-2] = 0; - return ID; - } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 77 "deflex.l" -{ - yylval.id = xstrdup (yytext+1); - yylval.id[yyleng-2] = 0; - return ID; - } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 82 "deflex.l" -{ } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 83 "deflex.l" -{ } - YY_BREAK -case 33: -YY_RULE_SETUP -#line 84 "deflex.l" -{ } - YY_BREAK -case 34: -YY_RULE_SETUP -#line 85 "deflex.l" -{ } - YY_BREAK -case 35: -YY_RULE_SETUP -#line 86 "deflex.l" -{ linenumber ++ ;} - YY_BREAK -case 36: -YY_RULE_SETUP -#line 87 "deflex.l" -{ return '=';} - YY_BREAK -case 37: -YY_RULE_SETUP -#line 88 "deflex.l" -{ return '.';} - YY_BREAK -case 38: -YY_RULE_SETUP -#line 89 "deflex.l" -{ return '@';} - YY_BREAK -case 39: -YY_RULE_SETUP -#line 90 "deflex.l" -{ return ',';} - YY_BREAK -case 40: -YY_RULE_SETUP -#line 91 "deflex.l" -ECHO; - YY_BREAK -#line 982 "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 >= 197 ) - 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 >= 197 ) - 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 == 196); - - 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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 91 "deflex.l" - -#ifndef yywrap -/* Needed for lex, though not flex. */ -int yywrap(void) { return 1; } -#endif diff --git a/binutils/defparse.c b/binutils/defparse.c deleted file mode 100644 index 7c59a814999..00000000000 --- a/binutils/defparse.c +++ /dev/null @@ -1,1424 +0,0 @@ -/* A Bison parser, made from defparse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define NAME 257 -# define LIBRARY 258 -# define DESCRIPTION 259 -# define STACKSIZE 260 -# define HEAPSIZE 261 -# define CODE 262 -# define DATA 263 -# define SECTIONS 264 -# define EXPORTS 265 -# define IMPORTS 266 -# define VERSIONK 267 -# define BASE 268 -# define CONSTANT 269 -# define READ 270 -# define WRITE 271 -# define EXECUTE 272 -# define SHARED 273 -# define NONSHARED 274 -# define NONAME 275 -# define PRIVATE 276 -# define SINGLE 277 -# define MULTIPLE 278 -# define INITINSTANCE 279 -# define INITGLOBAL 280 -# define TERMINSTANCE 281 -# define TERMGLOBAL 282 -# define ID 283 -# define NUMBER 284 - -#line 1 "defparse.y" - /* defparse.y - parser for .def files */ - -/* Copyright 1995, 1997, 1998, 1999, 2001, 2004 - 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. */ - -#include "bfd.h" -#include "bucomm.h" -#include "dlltool.h" - -#line 27 "defparse.y" -#ifndef YYSTYPE -typedef union { - char *id; - int number; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 98 -#define YYFLAG -32768 -#define YYNTBASE 35 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 284 ? yytranslate[x] : 57) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, - 2, 2, 2, 2, 33, 2, 31, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 32, 2, 2, 34, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 3, 5, 9, 14, 17, 20, 24, 28, - 31, 34, 37, 40, 43, 48, 49, 52, 60, 63, - 65, 73, 81, 87, 93, 99, 105, 109, 113, 116, - 118, 121, 125, 127, 129, 130, 133, 134, 136, 138, - 140, 142, 144, 146, 148, 150, 151, 153, 154, 156, - 157, 159, 160, 162, 166, 167, 170, 171, 174, 179, - 180, 184, 185, 186, 190, 192, 194, 196 -}; -static const short yyrhs[] = -{ - 35, 36, 0, 36, 0, 3, 51, 54, 0, 4, - 51, 54, 55, 0, 11, 37, 0, 5, 29, 0, - 6, 30, 45, 0, 7, 30, 45, 0, 8, 43, - 0, 9, 43, 0, 10, 41, 0, 12, 39, 0, - 13, 30, 0, 13, 30, 31, 30, 0, 0, 37, - 38, 0, 29, 53, 52, 48, 47, 49, 50, 0, - 39, 40, 0, 40, 0, 29, 32, 29, 31, 29, - 31, 29, 0, 29, 32, 29, 31, 29, 31, 30, - 0, 29, 32, 29, 31, 29, 0, 29, 32, 29, - 31, 30, 0, 29, 31, 29, 31, 29, 0, 29, - 31, 29, 31, 30, 0, 29, 31, 29, 0, 29, - 31, 30, 0, 41, 42, 0, 42, 0, 29, 43, - 0, 43, 44, 46, 0, 46, 0, 33, 0, 0, - 33, 30, 0, 0, 16, 0, 17, 0, 18, 0, - 19, 0, 20, 0, 23, 0, 24, 0, 15, 0, - 0, 21, 0, 0, 9, 0, 0, 22, 0, 0, - 29, 0, 29, 31, 29, 0, 0, 34, 30, 0, - 0, 32, 29, 0, 32, 29, 31, 29, 0, 0, - 14, 32, 30, 0, 0, 0, 55, 44, 56, 0, - 25, 0, 26, 0, 27, 0, 28, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 44, 45, 48, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 64, 66, 69, 73, 75, - 78, 80, 81, 82, 83, 84, 85, 86, 89, 91, - 94, 98, 100, 103, 105, 107, 108, 111, 113, 114, - 115, 116, 117, 118, 121, 123, 126, 128, 131, 133, - 136, 138, 141, 142, 148, 151, 153, 156, 158, 164, - 167, 168, 171, 173, 176, 178, 179, 180 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "NAME", "LIBRARY", "DESCRIPTION", - "STACKSIZE", "HEAPSIZE", "CODE", "DATA", "SECTIONS", "EXPORTS", - "IMPORTS", "VERSIONK", "BASE", "CONSTANT", "READ", "WRITE", "EXECUTE", - "SHARED", "NONSHARED", "NONAME", "PRIVATE", "SINGLE", "MULTIPLE", - "INITINSTANCE", "INITGLOBAL", "TERMINSTANCE", "TERMGLOBAL", "ID", - "NUMBER", "'.'", "'='", "','", "'@'", "start", "command", "explist", - "expline", "implist", "impline", "seclist", "secline", "attr_list", - "opt_comma", "opt_number", "attr", "opt_CONSTANT", "opt_NONAME", - "opt_DATA", "opt_PRIVATE", "opt_name", "opt_ordinal", "opt_equal_name", - "opt_base", "option_list", "option", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 35, 35, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 37, 37, 38, 39, 39, - 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, - 42, 43, 43, 44, 44, 45, 45, 46, 46, 46, - 46, 46, 46, 46, 47, 47, 48, 48, 49, 49, - 50, 50, 51, 51, 51, 52, 52, 53, 53, 53, - 54, 54, 55, 55, 56, 56, 56, 56 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 2, 1, 3, 4, 2, 2, 3, 3, 2, - 2, 2, 2, 2, 4, 0, 2, 7, 2, 1, - 7, 7, 5, 5, 5, 5, 3, 3, 2, 1, - 2, 3, 1, 1, 0, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 3, 0, 2, 0, 2, 4, 0, - 3, 0, 0, 3, 1, 1, 1, 1 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 0, 54, 54, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 0, 2, 52, 61, 61, 6, 36, 36, - 37, 38, 39, 40, 41, 42, 43, 9, 32, 10, - 0, 11, 29, 5, 0, 12, 19, 13, 1, 0, - 0, 3, 62, 0, 7, 8, 33, 0, 30, 28, - 59, 16, 0, 0, 18, 0, 53, 0, 4, 35, - 31, 0, 56, 26, 27, 0, 14, 60, 0, 57, - 0, 47, 0, 0, 64, 65, 66, 67, 63, 0, - 55, 46, 45, 24, 25, 22, 23, 58, 44, 49, - 0, 48, 51, 20, 21, 50, 17, 0, 0 -}; - -static const short yydefgoto[] = -{ - 12, 13, 33, 51, 35, 36, 31, 32, 27, 47, - 44, 28, 89, 82, 92, 96, 15, 71, 62, 41, - 58, 78 -}; - -static const short yypact[] = -{ - 32, -12, -12, 17, -8, 33, -4, -4, 35,-32768, - 36, 37, 21,-32768, 38, 48, 48,-32768, 39, 39, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, -15,-32768, -15, - -4, 35,-32768, 41, -25, 36,-32768, 40,-32768, 44, - 34,-32768,-32768, 45,-32768,-32768,-32768, -4, -15,-32768, - 42,-32768, -19, 47,-32768, 49,-32768, 50, 22,-32768, - -32768, 52, 43, 51,-32768, 53,-32768,-32768, 26, 54, - 56, 57, 27, 29,-32768,-32768,-32768,-32768,-32768, 58, - -32768,-32768, 68,-32768,-32768, 59,-32768,-32768,-32768, 79, - 31,-32768, 46,-32768,-32768,-32768,-32768, 89,-32768 -}; - -static const short yypgoto[] = -{ - -32768, 80,-32768,-32768,-32768, 60,-32768, 62, -7, 55, - 72, 61,-32768,-32768,-32768,-32768, 92,-32768,-32768, 81, - -32768,-32768 -}; - - -#define YYLAST 113 - - -static const short yytable[] = -{ - 29, -34, -34, -34, -34, -34, 52, 53, -34, -34, - 63, 64, 20, 21, 22, 23, 24, 14, 46, 25, - 26, 97, 18, 48, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 17, -34, -34, -34, - -34, 74, 75, 76, 77, 46, 83, 84, 85, 86, - 93, 94, 40, 19, 30, 34, 57, 37, 95, 39, - 50, 55, 43, 56, 61, 59, 65, 70, 81, 66, - 67, 69, 72, 88, 73, 79, 80, 87, 91, 98, - 90, 45, 38, 49, 16, 54, 0, 42, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, - 0, 0, 0, 68 -}; - -static const short yycheck[] = -{ - 7, 16, 17, 18, 19, 20, 31, 32, 23, 24, - 29, 30, 16, 17, 18, 19, 20, 29, 33, 23, - 24, 0, 30, 30, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 29, 25, 26, 27, - 28, 25, 26, 27, 28, 33, 29, 30, 29, 30, - 29, 30, 14, 30, 29, 29, 32, 30, 22, 31, - 29, 31, 33, 29, 32, 30, 29, 34, 21, 30, - 30, 29, 31, 15, 31, 31, 30, 29, 9, 0, - 31, 19, 12, 31, 2, 35, -1, 16, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, - -1, -1, -1, 58 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 3: -#line 49 "defparse.y" -{ def_name (yyvsp[-1].id, yyvsp[0].number); } - break; -case 4: -#line 50 "defparse.y" -{ def_library (yyvsp[-2].id, yyvsp[-1].number); } - break; -case 6: -#line 52 "defparse.y" -{ def_description (yyvsp[0].id);} - break; -case 7: -#line 53 "defparse.y" -{ def_stacksize (yyvsp[-1].number, yyvsp[0].number);} - break; -case 8: -#line 54 "defparse.y" -{ def_heapsize (yyvsp[-1].number, yyvsp[0].number);} - break; -case 9: -#line 55 "defparse.y" -{ def_code (yyvsp[0].number);} - break; -case 10: -#line 56 "defparse.y" -{ def_data (yyvsp[0].number);} - break; -case 13: -#line 59 "defparse.y" -{ def_version (yyvsp[0].number,0);} - break; -case 14: -#line 60 "defparse.y" -{ def_version (yyvsp[-2].number,yyvsp[0].number);} - break; -case 17: -#line 71 "defparse.y" -{ def_exports (yyvsp[-6].id, yyvsp[-5].id, yyvsp[-4].number, yyvsp[-3].number, yyvsp[-2].number, yyvsp[-1].number, yyvsp[0].number);} - break; -case 20: -#line 79 "defparse.y" -{ def_import (yyvsp[-6].id,yyvsp[-4].id,yyvsp[-2].id,yyvsp[0].id, 0); } - break; -case 21: -#line 80 "defparse.y" -{ def_import (yyvsp[-6].id,yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].number); } - break; -case 22: -#line 81 "defparse.y" -{ def_import (yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].id, 0); } - break; -case 23: -#line 82 "defparse.y" -{ def_import (yyvsp[-4].id,yyvsp[-2].id, 0, 0,yyvsp[0].number); } - break; -case 24: -#line 83 "defparse.y" -{ def_import ( 0,yyvsp[-4].id,yyvsp[-2].id,yyvsp[0].id, 0); } - break; -case 25: -#line 84 "defparse.y" -{ def_import ( 0,yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].number); } - break; -case 26: -#line 85 "defparse.y" -{ def_import ( 0,yyvsp[-2].id, 0,yyvsp[0].id, 0); } - break; -case 27: -#line 86 "defparse.y" -{ def_import ( 0,yyvsp[-2].id, 0, 0,yyvsp[0].number); } - break; -case 30: -#line 95 "defparse.y" -{ def_section (yyvsp[-1].id,yyvsp[0].number);} - break; -case 35: -#line 107 "defparse.y" -{ yyval.number=yyvsp[0].number;} - break; -case 36: -#line 108 "defparse.y" -{ yyval.number=-1;} - break; -case 37: -#line 112 "defparse.y" -{ yyval.number = 1; } - break; -case 38: -#line 113 "defparse.y" -{ yyval.number = 2; } - break; -case 39: -#line 114 "defparse.y" -{ yyval.number = 4; } - break; -case 40: -#line 115 "defparse.y" -{ yyval.number = 8; } - break; -case 41: -#line 116 "defparse.y" -{ yyval.number = 0; } - break; -case 42: -#line 117 "defparse.y" -{ yyval.number = 0; } - break; -case 43: -#line 118 "defparse.y" -{ yyval.number = 0; } - break; -case 44: -#line 122 "defparse.y" -{yyval.number=1;} - break; -case 45: -#line 123 "defparse.y" -{yyval.number=0;} - break; -case 46: -#line 127 "defparse.y" -{yyval.number=1;} - break; -case 47: -#line 128 "defparse.y" -{yyval.number=0;} - break; -case 48: -#line 132 "defparse.y" -{ yyval.number = 1; } - break; -case 49: -#line 133 "defparse.y" -{ yyval.number = 0; } - break; -case 50: -#line 137 "defparse.y" -{ yyval.number = 1; } - break; -case 51: -#line 138 "defparse.y" -{ yyval.number = 0; } - break; -case 52: -#line 141 "defparse.y" -{ yyval.id =yyvsp[0].id; } - break; -case 53: -#line 143 "defparse.y" -{ - char *name = xmalloc (strlen (yyvsp[-2].id) + 1 + strlen (yyvsp[0].id) + 1); - sprintf (name, "%s.%s", yyvsp[-2].id, yyvsp[0].id); - yyval.id = name; - } - break; -case 54: -#line 148 "defparse.y" -{ yyval.id=""; } - break; -case 55: -#line 152 "defparse.y" -{ yyval.number=yyvsp[0].number;} - break; -case 56: -#line 153 "defparse.y" -{ yyval.number=-1;} - break; -case 57: -#line 157 "defparse.y" -{ yyval.id = yyvsp[0].id; } - break; -case 58: -#line 159 "defparse.y" -{ - char *name = xmalloc (strlen (yyvsp[-2].id) + 1 + strlen (yyvsp[0].id) + 1); - sprintf (name, "%s.%s", yyvsp[-2].id, yyvsp[0].id); - yyval.id = name; - } - break; -case 59: -#line 164 "defparse.y" -{ yyval.id = 0; } - break; -case 60: -#line 167 "defparse.y" -{ yyval.number= yyvsp[0].number;} - break; -case 61: -#line 168 "defparse.y" -{ yyval.number=-1;} - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 182 "defparse.y" diff --git a/binutils/defparse.h b/binutils/defparse.h deleted file mode 100644 index 71a82752954..00000000000 --- a/binutils/defparse.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union { - char *id; - int number; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define NAME 257 -# define LIBRARY 258 -# define DESCRIPTION 259 -# define STACKSIZE 260 -# define HEAPSIZE 261 -# define CODE 262 -# define DATA 263 -# define SECTIONS 264 -# define EXPORTS 265 -# define IMPORTS 266 -# define VERSIONK 267 -# define BASE 268 -# define CONSTANT 269 -# define READ 270 -# define WRITE 271 -# define EXECUTE 272 -# define SHARED 273 -# define NONSHARED 274 -# define NONAME 275 -# define PRIVATE 276 -# define SINGLE 277 -# define MULTIPLE 278 -# define INITINSTANCE 279 -# define INITGLOBAL 280 -# define TERMINSTANCE 281 -# define TERMGLOBAL 282 -# define ID 283 -# define NUMBER 284 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/binutils/nlmheader.c b/binutils/nlmheader.c deleted file mode 100644 index 82add8838ba..00000000000 --- a/binutils/nlmheader.c +++ /dev/null @@ -1,2172 +0,0 @@ -/* A Bison parser, made from nlmheader.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define CHECK 257 -# define CODESTART 258 -# define COPYRIGHT 259 -# define CUSTOM 260 -# define DATE 261 -# define DEBUG 262 -# define DESCRIPTION 263 -# define EXIT 264 -# define EXPORT 265 -# define FLAG_ON 266 -# define FLAG_OFF 267 -# define FULLMAP 268 -# define HELP 269 -# define IMPORT 270 -# define INPUT 271 -# define MAP 272 -# define MESSAGES 273 -# define MODULE 274 -# define MULTIPLE 275 -# define OS_DOMAIN 276 -# define OUTPUT 277 -# define PSEUDOPREEMPTION 278 -# define REENTRANT 279 -# define SCREENNAME 280 -# define SHARELIB 281 -# define STACK 282 -# define START 283 -# define SYNCHRONIZE 284 -# define THREADNAME 285 -# define TYPE 286 -# define VERBOSE 287 -# define VERSIONK 288 -# define XDCDATA 289 -# define STRING 290 -# define QUOTED_STRING 291 - -#line 1 "nlmheader.y" -/* nlmheader.y - parse NLM header specification keywords. - Copyright 1993, 1994, 1995, 1997, 1998, 2001, 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. */ - -/* Written by Ian Lance Taylor . - - This bison file parses the commands recognized by the NetWare NLM - linker, except for lists of object files. It stores the - information in global variables. - - This implementation is based on the description in the NetWare Tool - Maker Specification manual, edition 1.0. */ - -#include "ansidecl.h" -#include -#include "safe-ctype.h" -#include "bfd.h" -#include "bucomm.h" -#include "nlm/common.h" -#include "nlm/internal.h" -#include "nlmconv.h" - -/* Information is stored in the structures pointed to by these - variables. */ - -Nlm_Internal_Fixed_Header *fixed_hdr; -Nlm_Internal_Variable_Header *var_hdr; -Nlm_Internal_Version_Header *version_hdr; -Nlm_Internal_Copyright_Header *copyright_hdr; -Nlm_Internal_Extended_Header *extended_hdr; - -/* Procedure named by CHECK. */ -char *check_procedure; -/* File named by CUSTOM. */ -char *custom_file; -/* Whether to generate debugging information (DEBUG). */ -bfd_boolean debug_info; -/* Procedure named by EXIT. */ -char *exit_procedure; -/* Exported symbols (EXPORT). */ -struct string_list *export_symbols; -/* List of files from INPUT. */ -struct string_list *input_files; -/* Map file name (MAP, FULLMAP). */ -char *map_file; -/* Whether a full map has been requested (FULLMAP). */ -bfd_boolean full_map; -/* File named by HELP. */ -char *help_file; -/* Imported symbols (IMPORT). */ -struct string_list *import_symbols; -/* File named by MESSAGES. */ -char *message_file; -/* Autoload module list (MODULE). */ -struct string_list *modules; -/* File named by OUTPUT. */ -char *output_file; -/* File named by SHARELIB. */ -char *sharelib_file; -/* Start procedure name (START). */ -char *start_procedure; -/* VERBOSE. */ -bfd_boolean verbose; -/* RPC description file (XDCDATA). */ -char *rpc_file; - -/* The number of serious errors that have occurred. */ -int parse_errors; - -/* The current symbol prefix when reading a list of import or export - symbols. */ -static char *symbol_prefix; - -/* Parser error message handler. */ -#define yyerror(msg) nlmheader_error (msg); - -/* Local functions. */ -static int yylex (void); -static void nlmlex_file_push (const char *); -static bfd_boolean nlmlex_file_open (const char *); -static int nlmlex_buf_init (void); -static char nlmlex_buf_add (int); -static long nlmlex_get_number (const char *); -static void nlmheader_identify (void); -static void nlmheader_warn (const char *, int); -static void nlmheader_error (const char *); -static struct string_list * string_list_cons (char *, struct string_list *); -static struct string_list * string_list_append (struct string_list *, - struct string_list *); -static struct string_list * string_list_append1 (struct string_list *, - char *); -static char *xstrdup (const char *); - - -#line 112 "nlmheader.y" -#ifndef YYSTYPE -typedef union -{ - char *string; - struct string_list *list; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 82 -#define YYFLAG -32768 -#define YYNTBASE 40 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 291 ? yytranslate[x] : 50) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, - 38, 39, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 2, 3, 6, 9, 12, 15, 18, 23, - 25, 28, 31, 32, 36, 39, 42, 44, 47, 50, - 51, 55, 58, 60, 63, 66, 69, 71, 73, 76, - 78, 80, 83, 86, 89, 92, 94, 97, 100, 102, - 107, 111, 114, 115, 117, 119, 121, 124, 127, 131, - 133, 134 -}; -static const short yyrhs[] = -{ - 41, 0, 0, 42, 41, 0, 3, 36, 0, 4, - 36, 0, 5, 37, 0, 6, 36, 0, 7, 36, - 36, 36, 0, 8, 0, 9, 37, 0, 10, 36, - 0, 0, 11, 43, 45, 0, 12, 36, 0, 13, - 36, 0, 14, 0, 14, 36, 0, 15, 36, 0, - 0, 16, 44, 45, 0, 17, 49, 0, 18, 0, - 18, 36, 0, 19, 36, 0, 20, 49, 0, 21, - 0, 22, 0, 23, 36, 0, 24, 0, 25, 0, - 26, 37, 0, 27, 36, 0, 28, 36, 0, 29, - 36, 0, 30, 0, 31, 37, 0, 32, 36, 0, - 33, 0, 34, 36, 36, 36, 0, 34, 36, 36, - 0, 35, 36, 0, 0, 46, 0, 48, 0, 47, - 0, 46, 48, 0, 46, 47, 0, 38, 36, 39, - 0, 36, 0, 0, 36, 49, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 143, 149, 151, 156, 161, 166, 183, 187, 205, - 209, 225, 229, 229, 237, 242, 247, 252, 257, 261, - 261, 269, 273, 277, 281, 285, 289, 293, 297, 304, - 308, 312, 328, 332, 337, 341, 345, 361, 366, 370, - 394, 410, 418, 423, 433, 438, 442, 446, 454, 465, - 481, 486 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "CHECK", "CODESTART", "COPYRIGHT", "CUSTOM", - "DATE", "DEBUG", "DESCRIPTION", "EXIT", "EXPORT", "FLAG_ON", "FLAG_OFF", - "FULLMAP", "HELP", "IMPORT", "INPUT", "MAP", "MESSAGES", "MODULE", - "MULTIPLE", "OS_DOMAIN", "OUTPUT", "PSEUDOPREEMPTION", "REENTRANT", - "SCREENNAME", "SHARELIB", "STACK", "START", "SYNCHRONIZE", "THREADNAME", - "TYPE", "VERBOSE", "VERSIONK", "XDCDATA", "STRING", "QUOTED_STRING", - "'('", "')'", "file", "commands", "command", "@1", "@2", - "symbol_list_opt", "symbol_list", "symbol_prefix", "symbol", - "string_list", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 40, 41, 41, 42, 42, 42, 42, 42, 42, - 42, 42, 43, 42, 42, 42, 42, 42, 42, 44, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 45, 45, 46, 46, 46, 46, 47, 48, - 49, 49 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 1, 0, 2, 2, 2, 2, 2, 4, 1, - 2, 2, 0, 3, 2, 2, 1, 2, 2, 0, - 3, 2, 1, 2, 2, 2, 1, 1, 2, 1, - 1, 2, 2, 2, 2, 1, 2, 2, 1, 4, - 3, 2, 0, 1, 1, 1, 2, 2, 3, 1, - 0, 2 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 2, 0, 0, 0, 0, 0, 9, 0, 0, 12, - 0, 0, 16, 0, 19, 50, 22, 0, 50, 26, - 27, 0, 29, 30, 0, 0, 0, 0, 35, 0, - 0, 38, 0, 0, 1, 2, 4, 5, 6, 7, - 0, 10, 11, 42, 14, 15, 17, 18, 42, 50, - 21, 23, 24, 25, 28, 31, 32, 33, 34, 36, - 37, 0, 41, 3, 0, 49, 0, 13, 43, 45, - 44, 20, 51, 40, 8, 0, 47, 46, 39, 48, - 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 80, 34, 35, 43, 48, 67, 68, 69, 70, 50 -}; - -static const short yypact[] = -{ - -3, -1, 1, 2, 4, 5,-32768, 6, 8,-32768, - 9, 10, 11, 12,-32768, 13, 14, 16, 13,-32768, - -32768, 17,-32768,-32768, 18, 20, 21, 22,-32768, 23, - 25,-32768, 26, 27,-32768, -3,-32768,-32768,-32768,-32768, - 29,-32768,-32768, -2,-32768,-32768,-32768,-32768, -2, 13, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 30,-32768,-32768, 31,-32768, 32,-32768, -2,-32768, - -32768,-32768,-32768, 33,-32768, 3,-32768,-32768,-32768,-32768, - 38, 51,-32768 -}; - -static const short yypgoto[] = -{ - -32768, 19,-32768,-32768,-32768, 24,-32768, -9, 7, 15 -}; - - -#define YYLAST 75 - - -static const short yytable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 53, 65, 36, 66, 37, 81, 38, - 39, 40, 79, 41, 42, 44, 45, 46, 47, 49, - 51, 82, 52, 54, 63, 55, 56, 57, 58, 76, - 59, 60, 61, 62, 72, 64, 73, 74, 75, 78, - 0, 0, 71, 0, 0, 77 -}; - -static const short yycheck[] = -{ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 18, 36, 36, 38, 36, 0, 37, - 36, 36, 39, 37, 36, 36, 36, 36, 36, 36, - 36, 0, 36, 36, 35, 37, 36, 36, 36, 68, - 37, 36, 36, 36, 49, 36, 36, 36, 36, 36, - -1, -1, 48, -1, -1, 68 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 4: -#line 158 "nlmheader.y" -{ - check_procedure = yyvsp[0].string; - } - break; -case 5: -#line 162 "nlmheader.y" -{ - nlmheader_warn (_("CODESTART is not implemented; sorry"), -1); - free (yyvsp[0].string); - } - break; -case 6: -#line 167 "nlmheader.y" -{ - int len; - - strncpy (copyright_hdr->stamp, "CoPyRiGhT=", 10); - len = strlen (yyvsp[0].string); - if (len >= NLM_MAX_COPYRIGHT_MESSAGE_LENGTH) - { - nlmheader_warn (_("copyright string is too long"), - NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1); - len = NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1; - } - copyright_hdr->copyrightMessageLength = len; - strncpy (copyright_hdr->copyrightMessage, yyvsp[0].string, len); - copyright_hdr->copyrightMessage[len] = '\0'; - free (yyvsp[0].string); - } - break; -case 7: -#line 184 "nlmheader.y" -{ - custom_file = yyvsp[0].string; - } - break; -case 8: -#line 188 "nlmheader.y" -{ - /* We don't set the version stamp here, because we use the - version stamp to detect whether the required VERSION - keyword was given. */ - version_hdr->month = nlmlex_get_number (yyvsp[-2].string); - version_hdr->day = nlmlex_get_number (yyvsp[-1].string); - version_hdr->year = nlmlex_get_number (yyvsp[0].string); - free (yyvsp[-2].string); - free (yyvsp[-1].string); - free (yyvsp[0].string); - if (version_hdr->month < 1 || version_hdr->month > 12) - nlmheader_warn (_("illegal month"), -1); - if (version_hdr->day < 1 || version_hdr->day > 31) - nlmheader_warn (_("illegal day"), -1); - if (version_hdr->year < 1900 || version_hdr->year > 3000) - nlmheader_warn (_("illegal year"), -1); - } - break; -case 9: -#line 206 "nlmheader.y" -{ - debug_info = TRUE; - } - break; -case 10: -#line 210 "nlmheader.y" -{ - int len; - - len = strlen (yyvsp[0].string); - if (len > NLM_MAX_DESCRIPTION_LENGTH) - { - nlmheader_warn (_("description string is too long"), - NLM_MAX_DESCRIPTION_LENGTH); - len = NLM_MAX_DESCRIPTION_LENGTH; - } - var_hdr->descriptionLength = len; - strncpy (var_hdr->descriptionText, yyvsp[0].string, len); - var_hdr->descriptionText[len] = '\0'; - free (yyvsp[0].string); - } - break; -case 11: -#line 226 "nlmheader.y" -{ - exit_procedure = yyvsp[0].string; - } - break; -case 12: -#line 230 "nlmheader.y" -{ - symbol_prefix = NULL; - } - break; -case 13: -#line 234 "nlmheader.y" -{ - export_symbols = string_list_append (export_symbols, yyvsp[0].list); - } - break; -case 14: -#line 238 "nlmheader.y" -{ - fixed_hdr->flags |= nlmlex_get_number (yyvsp[0].string); - free (yyvsp[0].string); - } - break; -case 15: -#line 243 "nlmheader.y" -{ - fixed_hdr->flags &=~ nlmlex_get_number (yyvsp[0].string); - free (yyvsp[0].string); - } - break; -case 16: -#line 248 "nlmheader.y" -{ - map_file = ""; - full_map = TRUE; - } - break; -case 17: -#line 253 "nlmheader.y" -{ - map_file = yyvsp[0].string; - full_map = TRUE; - } - break; -case 18: -#line 258 "nlmheader.y" -{ - help_file = yyvsp[0].string; - } - break; -case 19: -#line 262 "nlmheader.y" -{ - symbol_prefix = NULL; - } - break; -case 20: -#line 266 "nlmheader.y" -{ - import_symbols = string_list_append (import_symbols, yyvsp[0].list); - } - break; -case 21: -#line 270 "nlmheader.y" -{ - input_files = string_list_append (input_files, yyvsp[0].list); - } - break; -case 22: -#line 274 "nlmheader.y" -{ - map_file = ""; - } - break; -case 23: -#line 278 "nlmheader.y" -{ - map_file = yyvsp[0].string; - } - break; -case 24: -#line 282 "nlmheader.y" -{ - message_file = yyvsp[0].string; - } - break; -case 25: -#line 286 "nlmheader.y" -{ - modules = string_list_append (modules, yyvsp[0].list); - } - break; -case 26: -#line 290 "nlmheader.y" -{ - fixed_hdr->flags |= 0x2; - } - break; -case 27: -#line 294 "nlmheader.y" -{ - fixed_hdr->flags |= 0x10; - } - break; -case 28: -#line 298 "nlmheader.y" -{ - if (output_file == NULL) - output_file = yyvsp[0].string; - else - nlmheader_warn (_("ignoring duplicate OUTPUT statement"), -1); - } - break; -case 29: -#line 305 "nlmheader.y" -{ - fixed_hdr->flags |= 0x8; - } - break; -case 30: -#line 309 "nlmheader.y" -{ - fixed_hdr->flags |= 0x1; - } - break; -case 31: -#line 313 "nlmheader.y" -{ - int len; - - len = strlen (yyvsp[0].string); - if (len >= NLM_MAX_SCREEN_NAME_LENGTH) - { - nlmheader_warn (_("screen name is too long"), - NLM_MAX_SCREEN_NAME_LENGTH); - len = NLM_MAX_SCREEN_NAME_LENGTH; - } - var_hdr->screenNameLength = len; - strncpy (var_hdr->screenName, yyvsp[0].string, len); - var_hdr->screenName[NLM_MAX_SCREEN_NAME_LENGTH] = '\0'; - free (yyvsp[0].string); - } - break; -case 32: -#line 329 "nlmheader.y" -{ - sharelib_file = yyvsp[0].string; - } - break; -case 33: -#line 333 "nlmheader.y" -{ - var_hdr->stackSize = nlmlex_get_number (yyvsp[0].string); - free (yyvsp[0].string); - } - break; -case 34: -#line 338 "nlmheader.y" -{ - start_procedure = yyvsp[0].string; - } - break; -case 35: -#line 342 "nlmheader.y" -{ - fixed_hdr->flags |= 0x4; - } - break; -case 36: -#line 346 "nlmheader.y" -{ - int len; - - len = strlen (yyvsp[0].string); - if (len >= NLM_MAX_THREAD_NAME_LENGTH) - { - nlmheader_warn (_("thread name is too long"), - NLM_MAX_THREAD_NAME_LENGTH); - len = NLM_MAX_THREAD_NAME_LENGTH; - } - var_hdr->threadNameLength = len; - strncpy (var_hdr->threadName, yyvsp[0].string, len); - var_hdr->threadName[len] = '\0'; - free (yyvsp[0].string); - } - break; -case 37: -#line 362 "nlmheader.y" -{ - fixed_hdr->moduleType = nlmlex_get_number (yyvsp[0].string); - free (yyvsp[0].string); - } - break; -case 38: -#line 367 "nlmheader.y" -{ - verbose = TRUE; - } - break; -case 39: -#line 371 "nlmheader.y" -{ - long val; - - strncpy (version_hdr->stamp, "VeRsIoN#", 8); - version_hdr->majorVersion = nlmlex_get_number (yyvsp[-2].string); - val = nlmlex_get_number (yyvsp[-1].string); - if (val < 0 || val > 99) - nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"), - -1); - else - version_hdr->minorVersion = val; - val = nlmlex_get_number (yyvsp[0].string); - if (val < 0) - nlmheader_warn (_("illegal revision number (must be between 0 and 26)"), - -1); - else if (val > 26) - version_hdr->revision = 0; - else - version_hdr->revision = val; - free (yyvsp[-2].string); - free (yyvsp[-1].string); - free (yyvsp[0].string); - } - break; -case 40: -#line 395 "nlmheader.y" -{ - long val; - - strncpy (version_hdr->stamp, "VeRsIoN#", 8); - version_hdr->majorVersion = nlmlex_get_number (yyvsp[-1].string); - val = nlmlex_get_number (yyvsp[0].string); - if (val < 0 || val > 99) - nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"), - -1); - else - version_hdr->minorVersion = val; - version_hdr->revision = 0; - free (yyvsp[-1].string); - free (yyvsp[0].string); - } - break; -case 41: -#line 411 "nlmheader.y" -{ - rpc_file = yyvsp[0].string; - } - break; -case 42: -#line 420 "nlmheader.y" -{ - yyval.list = NULL; - } - break; -case 43: -#line 424 "nlmheader.y" -{ - yyval.list = yyvsp[0].list; - } - break; -case 44: -#line 435 "nlmheader.y" -{ - yyval.list = string_list_cons (yyvsp[0].string, NULL); - } - break; -case 45: -#line 439 "nlmheader.y" -{ - yyval.list = NULL; - } - break; -case 46: -#line 443 "nlmheader.y" -{ - yyval.list = string_list_append1 (yyvsp[-1].list, yyvsp[0].string); - } - break; -case 47: -#line 447 "nlmheader.y" -{ - yyval.list = yyvsp[-1].list; - } - break; -case 48: -#line 456 "nlmheader.y" -{ - if (symbol_prefix != NULL) - free (symbol_prefix); - symbol_prefix = yyvsp[-1].string; - } - break; -case 49: -#line 467 "nlmheader.y" -{ - if (symbol_prefix == NULL) - yyval.string = yyvsp[0].string; - else - { - yyval.string = xmalloc (strlen (symbol_prefix) + strlen (yyvsp[0].string) + 2); - sprintf (yyval.string, "%s@%s", symbol_prefix, yyvsp[0].string); - free (yyvsp[0].string); - } - } - break; -case 50: -#line 483 "nlmheader.y" -{ - yyval.list = NULL; - } - break; -case 51: -#line 487 "nlmheader.y" -{ - yyval.list = string_list_cons (yyvsp[-1].string, yyvsp[0].list); - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 492 "nlmheader.y" - - -/* If strerror is just a macro, we want to use the one from libiberty - since it will handle undefined values. */ -#undef strerror -extern char *strerror PARAMS ((int)); - -/* The lexer is simple, too simple for flex. Keywords are only - recognized at the start of lines. Everything else must be an - argument. A comma is treated as whitespace. */ - -/* The states the lexer can be in. */ - -enum lex_state -{ - /* At the beginning of a line. */ - BEGINNING_OF_LINE, - /* In the middle of a line. */ - IN_LINE -}; - -/* We need to keep a stack of files to handle file inclusion. */ - -struct input -{ - /* The file to read from. */ - FILE *file; - /* The name of the file. */ - char *name; - /* The current line number. */ - int lineno; - /* The current state. */ - enum lex_state state; - /* The next file on the stack. */ - struct input *next; -}; - -/* The current input file. */ - -static struct input current; - -/* The character which introduces comments. */ -#define COMMENT_CHAR '#' - -/* Start the lexer going on the main input file. */ - -bfd_boolean -nlmlex_file (const char *name) -{ - current.next = NULL; - return nlmlex_file_open (name); -} - -/* Start the lexer going on a subsidiary input file. */ - -static void -nlmlex_file_push (const char *name) -{ - struct input *push; - - push = (struct input *) xmalloc (sizeof (struct input)); - *push = current; - if (nlmlex_file_open (name)) - current.next = push; - else - { - current = *push; - free (push); - } -} - -/* Start lexing from a file. */ - -static bfd_boolean -nlmlex_file_open (const char *name) -{ - current.file = fopen (name, "r"); - if (current.file == NULL) - { - fprintf (stderr, "%s:%s: %s\n", program_name, name, strerror (errno)); - ++parse_errors; - return FALSE; - } - current.name = xstrdup (name); - current.lineno = 1; - current.state = BEGINNING_OF_LINE; - return TRUE; -} - -/* Table used to turn keywords into tokens. */ - -struct keyword_tokens_struct -{ - const char *keyword; - int token; -}; - -struct keyword_tokens_struct keyword_tokens[] = -{ - { "CHECK", CHECK }, - { "CODESTART", CODESTART }, - { "COPYRIGHT", COPYRIGHT }, - { "CUSTOM", CUSTOM }, - { "DATE", DATE }, - { "DEBUG", DEBUG }, - { "DESCRIPTION", DESCRIPTION }, - { "EXIT", EXIT }, - { "EXPORT", EXPORT }, - { "FLAG_ON", FLAG_ON }, - { "FLAG_OFF", FLAG_OFF }, - { "FULLMAP", FULLMAP }, - { "HELP", HELP }, - { "IMPORT", IMPORT }, - { "INPUT", INPUT }, - { "MAP", MAP }, - { "MESSAGES", MESSAGES }, - { "MODULE", MODULE }, - { "MULTIPLE", MULTIPLE }, - { "OS_DOMAIN", OS_DOMAIN }, - { "OUTPUT", OUTPUT }, - { "PSEUDOPREEMPTION", PSEUDOPREEMPTION }, - { "REENTRANT", REENTRANT }, - { "SCREENNAME", SCREENNAME }, - { "SHARELIB", SHARELIB }, - { "STACK", STACK }, - { "STACKSIZE", STACK }, - { "START", START }, - { "SYNCHRONIZE", SYNCHRONIZE }, - { "THREADNAME", THREADNAME }, - { "TYPE", TYPE }, - { "VERBOSE", VERBOSE }, - { "VERSION", VERSIONK }, - { "XDCDATA", XDCDATA } -}; - -#define KEYWORD_COUNT (sizeof (keyword_tokens) / sizeof (keyword_tokens[0])) - -/* The lexer accumulates strings in these variables. */ -static char *lex_buf; -static int lex_size; -static int lex_pos; - -/* Start accumulating strings into the buffer. */ -#define BUF_INIT() \ - ((void) (lex_buf != NULL ? lex_pos = 0 : nlmlex_buf_init ())) - -static int -nlmlex_buf_init (void) -{ - lex_size = 10; - lex_buf = xmalloc (lex_size + 1); - lex_pos = 0; - return 0; -} - -/* Finish a string in the buffer. */ -#define BUF_FINISH() ((void) (lex_buf[lex_pos] = '\0')) - -/* Accumulate a character into the buffer. */ -#define BUF_ADD(c) \ - ((void) (lex_pos < lex_size \ - ? lex_buf[lex_pos++] = (c) \ - : nlmlex_buf_add (c))) - -static char -nlmlex_buf_add (int c) -{ - if (lex_pos >= lex_size) - { - lex_size *= 2; - lex_buf = xrealloc (lex_buf, lex_size + 1); - } - - return lex_buf[lex_pos++] = c; -} - -/* The lexer proper. This is called by the bison generated parsing - code. */ - -static int -yylex (void) -{ - int c; - -tail_recurse: - - c = getc (current.file); - - /* Commas are treated as whitespace characters. */ - while (ISSPACE (c) || c == ',') - { - current.state = IN_LINE; - if (c == '\n') - { - ++current.lineno; - current.state = BEGINNING_OF_LINE; - } - c = getc (current.file); - } - - /* At the end of the file we either pop to the previous file or - finish up. */ - if (c == EOF) - { - fclose (current.file); - free (current.name); - if (current.next == NULL) - return 0; - else - { - struct input *next; - - next = current.next; - current = *next; - free (next); - goto tail_recurse; - } - } - - /* A comment character always means to drop everything until the - next newline. */ - if (c == COMMENT_CHAR) - { - do - { - c = getc (current.file); - } - while (c != '\n'); - ++current.lineno; - current.state = BEGINNING_OF_LINE; - goto tail_recurse; - } - - /* An '@' introduces an include file. */ - if (c == '@') - { - do - { - c = getc (current.file); - if (c == '\n') - ++current.lineno; - } - while (ISSPACE (c)); - BUF_INIT (); - while (! ISSPACE (c) && c != EOF) - { - BUF_ADD (c); - c = getc (current.file); - } - BUF_FINISH (); - - ungetc (c, current.file); - - nlmlex_file_push (lex_buf); - goto tail_recurse; - } - - /* A non-space character at the start of a line must be the start of - a keyword. */ - if (current.state == BEGINNING_OF_LINE) - { - BUF_INIT (); - while (ISALNUM (c) || c == '_') - { - BUF_ADD (TOUPPER (c)); - c = getc (current.file); - } - BUF_FINISH (); - - if (c != EOF && ! ISSPACE (c) && c != ',') - { - nlmheader_identify (); - fprintf (stderr, _("%s:%d: illegal character in keyword: %c\n"), - current.name, current.lineno, c); - } - else - { - unsigned int i; - - for (i = 0; i < KEYWORD_COUNT; i++) - { - if (lex_buf[0] == keyword_tokens[i].keyword[0] - && strcmp (lex_buf, keyword_tokens[i].keyword) == 0) - { - /* Pushing back the final whitespace avoids worrying - about \n here. */ - ungetc (c, current.file); - current.state = IN_LINE; - return keyword_tokens[i].token; - } - } - - nlmheader_identify (); - fprintf (stderr, _("%s:%d: unrecognized keyword: %s\n"), - current.name, current.lineno, lex_buf); - } - - ++parse_errors; - /* Treat the rest of this line as a comment. */ - ungetc (COMMENT_CHAR, current.file); - goto tail_recurse; - } - - /* Parentheses just represent themselves. */ - if (c == '(' || c == ')') - return c; - - /* Handle quoted strings. */ - if (c == '"' || c == '\'') - { - int quote; - int start_lineno; - - quote = c; - start_lineno = current.lineno; - - c = getc (current.file); - BUF_INIT (); - while (c != quote && c != EOF) - { - BUF_ADD (c); - if (c == '\n') - ++current.lineno; - c = getc (current.file); - } - BUF_FINISH (); - - if (c == EOF) - { - nlmheader_identify (); - fprintf (stderr, _("%s:%d: end of file in quoted string\n"), - current.name, start_lineno); - ++parse_errors; - } - - /* FIXME: Possible memory leak. */ - yylval.string = xstrdup (lex_buf); - return QUOTED_STRING; - } - - /* Gather a generic argument. */ - BUF_INIT (); - while (! ISSPACE (c) - && c != ',' - && c != COMMENT_CHAR - && c != '(' - && c != ')') - { - BUF_ADD (c); - c = getc (current.file); - } - BUF_FINISH (); - - ungetc (c, current.file); - - /* FIXME: Possible memory leak. */ - yylval.string = xstrdup (lex_buf); - return STRING; -} - -/* Get a number from a string. */ - -static long -nlmlex_get_number (const char *s) -{ - long ret; - char *send; - - ret = strtol (s, &send, 10); - if (*send != '\0') - nlmheader_warn (_("bad number"), -1); - return ret; -} - -/* Prefix the nlmconv warnings with a note as to where they come from. - We don't use program_name on every warning, because then some - versions of the emacs next-error function can't recognize the line - number. */ - -static void -nlmheader_identify (void) -{ - static int done; - - if (! done) - { - fprintf (stderr, _("%s: problems in NLM command language input:\n"), - program_name); - done = 1; - } -} - -/* Issue a warning. */ - -static void -nlmheader_warn (const char *s, int imax) -{ - nlmheader_identify (); - fprintf (stderr, "%s:%d: %s", current.name, current.lineno, s); - if (imax != -1) - fprintf (stderr, " (max %d)", imax); - fprintf (stderr, "\n"); -} - -/* Report an error. */ - -static void -nlmheader_error (const char *s) -{ - nlmheader_warn (s, -1); - ++parse_errors; -} - -/* Add a string to a string list. */ - -static struct string_list * -string_list_cons (char *s, struct string_list *l) -{ - struct string_list *ret; - - ret = (struct string_list *) xmalloc (sizeof (struct string_list)); - ret->next = l; - ret->string = s; - return ret; -} - -/* Append a string list to another string list. */ - -static struct string_list * -string_list_append (struct string_list *l1, struct string_list *l2) -{ - register struct string_list **pp; - - for (pp = &l1; *pp != NULL; pp = &(*pp)->next) - ; - *pp = l2; - return l1; -} - -/* Append a string to a string list. */ - -static struct string_list * -string_list_append1 (struct string_list *l, char *s) -{ - struct string_list *n; - register struct string_list **pp; - - n = (struct string_list *) xmalloc (sizeof (struct string_list)); - n->next = NULL; - n->string = s; - for (pp = &l; *pp != NULL; pp = &(*pp)->next) - ; - *pp = n; - return l; -} - -/* Duplicate a string in memory. */ - -static char * -xstrdup (const char *s) -{ - unsigned long len; - char *ret; - - len = strlen (s); - ret = xmalloc (len + 1); - strcpy (ret, s); - return ret; -} diff --git a/binutils/nlmheader.h b/binutils/nlmheader.h deleted file mode 100644 index df8807234ec..00000000000 --- a/binutils/nlmheader.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union -{ - char *string; - struct string_list *list; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define CHECK 257 -# define CODESTART 258 -# define COPYRIGHT 259 -# define CUSTOM 260 -# define DATE 261 -# define DEBUG 262 -# define DESCRIPTION 263 -# define EXIT 264 -# define EXPORT 265 -# define FLAG_ON 266 -# define FLAG_OFF 267 -# define FULLMAP 268 -# define HELP 269 -# define IMPORT 270 -# define INPUT 271 -# define MAP 272 -# define MESSAGES 273 -# define MODULE 274 -# define MULTIPLE 275 -# define OS_DOMAIN 276 -# define OUTPUT 277 -# define PSEUDOPREEMPTION 278 -# define REENTRANT 279 -# define SCREENNAME 280 -# define SHARELIB 281 -# define STACK 282 -# define START 283 -# define SYNCHRONIZE 284 -# define THREADNAME 285 -# define TYPE 286 -# define VERBOSE 287 -# define VERSIONK 288 -# define XDCDATA 289 -# define STRING 290 -# define QUOTED_STRING 291 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/binutils/rclex.c b/binutils/rclex.c deleted file mode 100644 index 8832dd0fb9a..00000000000 --- a/binutils/rclex.c +++ /dev/null @@ -1,2610 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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 86 -#define YY_END_OF_BUFFER 87 -static yyconst short int yy_accept[470] = - { 0, - 0, 0, 87, 85, 84, 83, 85, 78, 80, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 2, 4, 84, - 0, 81, 78, 80, 79, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 81, 0, 82, 11, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - - 82, 82, 82, 82, 82, 3, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 76, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 41, 82, 82, - 82, 53, 42, 82, 82, 82, 82, 82, 82, 82, - 46, 82, 82, 82, 82, 82, 82, 71, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - - 82, 82, 82, 7, 82, 82, 82, 38, 1, 82, - 82, 82, 82, 82, 18, 82, 82, 25, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 70, - 82, 82, 39, 40, 82, 82, 82, 82, 82, 30, - 82, 82, 82, 82, 82, 82, 50, 82, 82, 82, - 82, 82, 34, 82, 82, 9, 82, 82, 19, 82, - 68, 82, 82, 82, 82, 82, 82, 12, 0, 82, - 82, 82, 82, 82, 82, 82, 13, 82, 14, 82, - 82, 82, 82, 65, 82, 82, 82, 52, 82, 72, - 82, 82, 82, 82, 82, 82, 47, 82, 82, 82, - - 82, 82, 82, 82, 82, 82, 58, 82, 82, 36, - 82, 82, 82, 82, 82, 82, 82, 82, 0, 82, - 0, 77, 17, 82, 82, 51, 82, 10, 82, 82, - 82, 82, 16, 82, 82, 82, 82, 82, 82, 82, - 29, 82, 82, 82, 82, 82, 82, 82, 73, 82, - 31, 82, 82, 82, 82, 82, 82, 45, 6, 82, - 82, 82, 82, 77, 82, 23, 24, 82, 15, 82, - 27, 82, 82, 66, 82, 28, 54, 43, 82, 82, - 82, 48, 82, 69, 8, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - - 64, 82, 82, 82, 82, 56, 82, 82, 82, 82, - 35, 49, 82, 82, 82, 82, 20, 82, 82, 82, - 82, 82, 82, 82, 82, 74, 82, 82, 82, 32, - 82, 82, 37, 82, 82, 82, 82, 82, 82, 75, - 82, 67, 61, 82, 82, 82, 33, 59, 60, 5, - 21, 82, 82, 82, 82, 55, 57, 82, 82, 82, - 26, 63, 82, 82, 82, 62, 22, 44, 0 - } ; - -static yyconst int yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 5, 6, 1, 1, 1, 1, 1, - 1, 1, 1, 7, 1, 1, 1, 8, 8, 8, - 9, 8, 8, 8, 8, 8, 8, 1, 1, 1, - 1, 1, 1, 1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 19, 26, 27, 28, 29, 30, 19, 31, 32, 19, - 1, 1, 1, 1, 1, 1, 33, 33, 33, 33, - - 33, 33, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 33, - 19, 19, 34, 1, 35, 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[36] = - { 0, - 1, 2, 3, 2, 1, 4, 2, 5, 5, 5, - 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, - 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 1, 1 - } ; - -static yyconst short int yy_base[476] = - { 0, - 0, 0, 517, 518, 34, 518, 511, 0, 494, 25, - 26, 45, 25, 28, 24, 488, 499, 49, 0, 40, - 43, 488, 51, 66, 67, 484, 35, 518, 518, 81, - 505, 84, 0, 488, 518, 0, 496, 479, 494, 477, - 75, 476, 479, 477, 46, 491, 70, 486, 473, 483, - 55, 479, 483, 468, 69, 471, 86, 84, 469, 479, - 466, 480, 466, 461, 477, 472, 75, 455, 81, 459, - 87, 77, 470, 469, 467, 454, 454, 460, 96, 463, - 455, 449, 448, 110, 468, 458, 0, 453, 446, 451, - 450, 445, 454, 437, 438, 451, 435, 450, 432, 428, - - 431, 432, 435, 443, 426, 0, 425, 438, 437, 422, - 417, 419, 429, 421, 422, 426, 414, 430, 425, 412, - 426, 407, 408, 409, 421, 411, 0, 404, 411, 418, - 416, 412, 410, 417, 395, 401, 414, 408, 394, 403, - 399, 393, 389, 390, 388, 394, 396, 105, 385, 389, - 401, 390, 391, 398, 387, 379, 381, 378, 375, 378, - 372, 376, 389, 370, 365, 105, 383, 0, 381, 369, - 365, 0, 0, 364, 365, 362, 360, 377, 363, 358, - 105, 375, 374, 353, 357, 357, 351, 0, 368, 354, - 349, 348, 354, 348, 345, 358, 348, 356, 358, 354, - - 349, 346, 351, 0, 337, 346, 352, 0, 0, 336, - 122, 336, 347, 107, 0, 347, 333, 0, 330, 328, - 338, 327, 338, 330, 329, 322, 319, 315, 332, 0, - 332, 333, 0, 0, 329, 324, 331, 316, 316, 0, - 116, 307, 309, 320, 324, 320, 0, 323, 320, 110, - 320, 320, 0, 308, 318, 0, 318, 310, 0, 296, - 0, 300, 309, 296, 293, 306, 306, 0, 135, 139, - 295, 289, 292, 302, 290, 292, 0, 295, 297, 297, - 278, 294, 297, 0, 295, 280, 278, 0, 279, 0, - 272, 285, 269, 287, 272, 283, 0, 282, 281, 273, - - 267, 279, 263, 259, 261, 259, 0, 276, 258, 0, - 257, 256, 260, 250, 271, 270, 267, 260, 272, 145, - 271, 151, 0, 261, 243, 0, 242, 0, 261, 240, - 260, 241, 0, 252, 239, 252, 238, 233, 249, 248, - 0, 251, 249, 249, 236, 229, 242, 227, 0, 224, - 0, 225, 224, 241, 226, 239, 220, 229, 0, 218, - 217, 224, 219, 237, 215, 0, 0, 211, 0, 228, - 0, 211, 205, 0, 218, 0, 0, 0, 214, 208, - 213, 0, 222, 0, 0, 217, 206, 201, 202, 201, - 215, 201, 201, 199, 208, 210, 209, 201, 190, 196, - - 194, 190, 190, 192, 198, 0, 200, 184, 186, 184, - 0, 0, 186, 183, 190, 178, 0, 179, 173, 174, - 172, 185, 188, 183, 173, 0, 185, 173, 166, 0, - 169, 177, 0, 166, 162, 157, 159, 158, 161, 0, - 157, 0, 0, 162, 167, 158, 0, 0, 0, 0, - 0, 143, 152, 143, 141, 0, 0, 130, 124, 124, - 0, 0, 107, 85, 80, 0, 0, 0, 518, 158, - 163, 65, 168, 173, 178 - } ; - -static yyconst short int yy_def[476] = - { 0, - 469, 1, 469, 469, 469, 469, 470, 471, 472, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 469, 469, 469, - 470, 469, 471, 472, 469, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 469, 470, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 469, 474, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 475, 474, - 475, 474, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 475, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 473, 473, 0, 469, - 469, 469, 469, 469, 469 - } ; - -static yyconst short int yy_nxt[554] = - { 0, - 4, 5, 6, 5, 7, 8, 4, 9, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, - 20, 21, 22, 19, 23, 24, 25, 19, 26, 27, - 19, 19, 19, 28, 29, 30, 37, 30, 50, 41, - 52, 55, 51, 42, 81, 38, 43, 56, 82, 63, - 53, 39, 83, 40, 44, 95, 67, 64, 54, 96, - 59, 45, 60, 65, 103, 46, 68, 66, 47, 34, - 61, 62, 48, 49, 70, 73, 71, 74, 76, 72, - 77, 104, 30, 78, 30, 84, 84, 90, 85, 108, - 91, 98, 99, 75, 79, 111, 113, 123, 126, 109, - - 129, 124, 131, 132, 114, 139, 468, 467, 127, 112, - 130, 84, 84, 205, 85, 241, 206, 273, 242, 225, - 274, 140, 243, 269, 269, 295, 270, 141, 226, 466, - 207, 227, 228, 304, 229, 465, 269, 269, 305, 319, - 321, 296, 321, 322, 36, 321, 321, 464, 321, 322, - 36, 321, 321, 463, 321, 322, 36, 321, 31, 31, - 462, 31, 31, 33, 33, 461, 33, 33, 36, 460, - 459, 36, 36, 320, 320, 458, 320, 320, 321, 321, - 457, 456, 321, 455, 454, 453, 452, 451, 450, 449, - 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, - - 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, - 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, - 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, - 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, - 398, 364, 397, 396, 395, 394, 393, 392, 391, 390, - 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, - 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, - 369, 368, 367, 366, 365, 364, 364, 363, 362, 361, - 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, - 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, - - 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, - 330, 329, 328, 327, 326, 325, 324, 323, 318, 317, - 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, - 306, 303, 302, 301, 300, 299, 298, 297, 294, 293, - 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, - 282, 281, 280, 279, 278, 277, 276, 275, 272, 271, - 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, - 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, - 248, 247, 246, 245, 244, 240, 239, 238, 237, 236, - 235, 234, 233, 232, 231, 230, 224, 223, 222, 221, - - 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, - 210, 209, 208, 204, 203, 202, 201, 200, 199, 198, - 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, - 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, - 177, 176, 175, 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, 32, 145, 144, 143, 142, 138, 137, 136, - 135, 134, 133, 128, 125, 122, 121, 120, 119, 118, - 117, 116, 115, 110, 107, 106, 105, 102, 101, 100, - - 97, 94, 93, 92, 89, 88, 87, 86, 35, 32, - 80, 69, 58, 57, 35, 32, 469, 3, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469 - } ; - -static yyconst short int yy_chk[554] = - { 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, 5, 10, 5, 13, 11, - 14, 15, 13, 11, 27, 10, 11, 15, 27, 20, - 14, 10, 27, 10, 12, 45, 21, 20, 14, 45, - 18, 12, 18, 20, 51, 12, 21, 20, 12, 472, - 18, 18, 12, 12, 23, 24, 23, 24, 25, 23, - 25, 51, 30, 25, 30, 32, 32, 41, 32, 55, - 41, 47, 47, 24, 25, 57, 58, 67, 69, 55, - - 71, 67, 72, 72, 58, 79, 465, 464, 69, 57, - 71, 84, 84, 148, 84, 181, 148, 214, 181, 166, - 214, 79, 181, 211, 211, 241, 211, 79, 166, 463, - 148, 166, 166, 250, 166, 460, 269, 269, 250, 269, - 270, 241, 270, 270, 270, 270, 320, 459, 320, 320, - 320, 320, 322, 458, 322, 322, 322, 322, 470, 470, - 455, 470, 470, 471, 471, 454, 471, 471, 473, 453, - 452, 473, 473, 474, 474, 446, 474, 474, 475, 475, - 445, 444, 475, 441, 439, 438, 437, 436, 435, 434, - 432, 431, 429, 428, 427, 425, 424, 423, 422, 421, - - 420, 419, 418, 416, 415, 414, 413, 410, 409, 408, - 407, 405, 404, 403, 402, 401, 400, 399, 398, 397, - 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, - 386, 383, 381, 380, 379, 375, 373, 372, 370, 368, - 365, 364, 363, 362, 361, 360, 358, 357, 356, 355, - 354, 353, 352, 350, 348, 347, 346, 345, 344, 343, - 342, 340, 339, 338, 337, 336, 335, 334, 332, 331, - 330, 329, 327, 325, 324, 321, 319, 318, 317, 316, - 315, 314, 313, 312, 311, 309, 308, 306, 305, 304, - 303, 302, 301, 300, 299, 298, 296, 295, 294, 293, - - 292, 291, 289, 287, 286, 285, 283, 282, 281, 280, - 279, 278, 276, 275, 274, 273, 272, 271, 267, 266, - 265, 264, 263, 262, 260, 258, 257, 255, 254, 252, - 251, 249, 248, 246, 245, 244, 243, 242, 239, 238, - 237, 236, 235, 232, 231, 229, 228, 227, 226, 225, - 224, 223, 222, 221, 220, 219, 217, 216, 213, 212, - 210, 207, 206, 205, 203, 202, 201, 200, 199, 198, - 197, 196, 195, 194, 193, 192, 191, 190, 189, 187, - 186, 185, 184, 183, 182, 180, 179, 178, 177, 176, - 175, 174, 171, 170, 169, 167, 165, 164, 163, 162, - - 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, - 151, 150, 149, 147, 146, 145, 144, 143, 142, 141, - 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, - 130, 129, 128, 126, 125, 124, 123, 122, 121, 120, - 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, - 109, 108, 107, 105, 104, 103, 102, 101, 100, 99, - 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, - 88, 86, 85, 83, 82, 81, 80, 78, 77, 76, - 75, 74, 73, 70, 68, 66, 65, 64, 63, 62, - 61, 60, 59, 56, 54, 53, 52, 50, 49, 48, - - 46, 44, 43, 42, 40, 39, 38, 37, 34, 31, - 26, 22, 17, 16, 9, 7, 3, 469, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, - 469, 469, 469 - } ; - -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 "rclex.l" -#define INITIAL 0 -#line 2 "rclex.l" -/* Copyright 1997, 1998, 1999, 2001, 2002, 2003, 2005 - Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support. - - 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. */ - -/* This is a lex input file which generates a lexer used by the - Windows rc file parser. It basically just recognized a bunch of - keywords. */ - -#include "bfd.h" -#include "bucomm.h" -#include "libiberty.h" -#include "safe-ctype.h" -#include "windres.h" -#include "rcparse.h" - -#include - -#define YY_NO_UNPUT - -/* Whether we are in rcdata mode, in which we returns the lengths of - strings. */ - -static int rcdata_mode; - -/* Whether we are supressing lines from cpp (including windows.h or - headers from your C sources may bring in externs and typedefs). - When active, we return IGNORED_TOKEN, which lets us ignore these - outside of resource constructs. Thus, it isn't required to protect - all the non-preprocessor lines in your header files with #ifdef - RC_INVOKED. It also means your RC file can't include other RC - files if they're named "*.h". Sorry. Name them *.rch or whatever. */ - -static int suppress_cpp_data; - -#define MAYBE_RETURN(x) return suppress_cpp_data ? IGNORED_TOKEN : (x) - -/* The first filename we detect in the cpp output. We use this to - tell included files from the original file. */ - -static char *initial_fn; - -/* List of allocated strings. */ - -struct alloc_string -{ - struct alloc_string *next; - char *s; -}; - -static struct alloc_string *strings; - -/* Local functions. */ - -static void cpp_line (const char *); -static char *handle_quotes (const char *, unsigned long *); -static char *get_string (int); - -#line 716 "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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 78 "rclex.l" - - -#line 881 "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 >= 470 ) - 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] != 518 ); - -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 80 "rclex.l" -{ MAYBE_RETURN (BEG); } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 81 "rclex.l" -{ MAYBE_RETURN (BEG); } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 82 "rclex.l" -{ MAYBE_RETURN (END); } - YY_BREAK -case 4: -YY_RULE_SETUP -#line 83 "rclex.l" -{ MAYBE_RETURN (END); } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 84 "rclex.l" -{ MAYBE_RETURN (ACCELERATORS); } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 85 "rclex.l" -{ MAYBE_RETURN (VIRTKEY); } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 86 "rclex.l" -{ MAYBE_RETURN (ASCII); } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 87 "rclex.l" -{ MAYBE_RETURN (NOINVERT); } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 88 "rclex.l" -{ MAYBE_RETURN (SHIFT); } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 89 "rclex.l" -{ MAYBE_RETURN (CONTROL); } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 90 "rclex.l" -{ MAYBE_RETURN (ALT); } - YY_BREAK -case 12: -YY_RULE_SETUP -#line 91 "rclex.l" -{ MAYBE_RETURN (BITMAP); } - YY_BREAK -case 13: -YY_RULE_SETUP -#line 92 "rclex.l" -{ MAYBE_RETURN (CURSOR); } - YY_BREAK -case 14: -YY_RULE_SETUP -#line 93 "rclex.l" -{ MAYBE_RETURN (DIALOG); } - YY_BREAK -case 15: -YY_RULE_SETUP -#line 94 "rclex.l" -{ MAYBE_RETURN (DIALOGEX); } - YY_BREAK -case 16: -YY_RULE_SETUP -#line 95 "rclex.l" -{ MAYBE_RETURN (EXSTYLE); } - YY_BREAK -case 17: -YY_RULE_SETUP -#line 96 "rclex.l" -{ MAYBE_RETURN (CAPTION); } - YY_BREAK -case 18: -YY_RULE_SETUP -#line 97 "rclex.l" -{ MAYBE_RETURN (CLASS); } - YY_BREAK -case 19: -YY_RULE_SETUP -#line 98 "rclex.l" -{ MAYBE_RETURN (STYLE); } - YY_BREAK -case 20: -YY_RULE_SETUP -#line 99 "rclex.l" -{ MAYBE_RETURN (AUTO3STATE); } - YY_BREAK -case 21: -YY_RULE_SETUP -#line 100 "rclex.l" -{ MAYBE_RETURN (AUTOCHECKBOX); } - YY_BREAK -case 22: -YY_RULE_SETUP -#line 101 "rclex.l" -{ MAYBE_RETURN (AUTORADIOBUTTON); } - YY_BREAK -case 23: -YY_RULE_SETUP -#line 102 "rclex.l" -{ MAYBE_RETURN (CHECKBOX); } - YY_BREAK -case 24: -YY_RULE_SETUP -#line 103 "rclex.l" -{ MAYBE_RETURN (COMBOBOX); } - YY_BREAK -case 25: -YY_RULE_SETUP -#line 104 "rclex.l" -{ MAYBE_RETURN (CTEXT); } - YY_BREAK -case 26: -YY_RULE_SETUP -#line 105 "rclex.l" -{ MAYBE_RETURN (DEFPUSHBUTTON); } - YY_BREAK -case 27: -YY_RULE_SETUP -#line 106 "rclex.l" -{ MAYBE_RETURN (EDITTEXT); } - YY_BREAK -case 28: -YY_RULE_SETUP -#line 107 "rclex.l" -{ MAYBE_RETURN (GROUPBOX); } - YY_BREAK -case 29: -YY_RULE_SETUP -#line 108 "rclex.l" -{ MAYBE_RETURN (LISTBOX); } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 109 "rclex.l" -{ MAYBE_RETURN (LTEXT); } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 110 "rclex.l" -{ MAYBE_RETURN (PUSHBOX); } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 111 "rclex.l" -{ MAYBE_RETURN (PUSHBUTTON); } - YY_BREAK -case 33: -YY_RULE_SETUP -#line 112 "rclex.l" -{ MAYBE_RETURN (RADIOBUTTON); } - YY_BREAK -case 34: -YY_RULE_SETUP -#line 113 "rclex.l" -{ MAYBE_RETURN (RTEXT); } - YY_BREAK -case 35: -YY_RULE_SETUP -#line 114 "rclex.l" -{ MAYBE_RETURN (SCROLLBAR); } - YY_BREAK -case 36: -YY_RULE_SETUP -#line 115 "rclex.l" -{ MAYBE_RETURN (STATE3); } - YY_BREAK -case 37: -YY_RULE_SETUP -#line 116 "rclex.l" -{ MAYBE_RETURN (USERBUTTON); } - YY_BREAK -case 38: -YY_RULE_SETUP -#line 117 "rclex.l" -{ MAYBE_RETURN (BEDIT); } - YY_BREAK -case 39: -YY_RULE_SETUP -#line 118 "rclex.l" -{ MAYBE_RETURN (HEDIT); } - YY_BREAK -case 40: -YY_RULE_SETUP -#line 119 "rclex.l" -{ MAYBE_RETURN (IEDIT); } - YY_BREAK -case 41: -YY_RULE_SETUP -#line 120 "rclex.l" -{ MAYBE_RETURN (FONT); } - YY_BREAK -case 42: -YY_RULE_SETUP -#line 121 "rclex.l" -{ MAYBE_RETURN (ICON); } - YY_BREAK -case 43: -YY_RULE_SETUP -#line 122 "rclex.l" -{ MAYBE_RETURN (LANGUAGE); } - YY_BREAK -case 44: -YY_RULE_SETUP -#line 123 "rclex.l" -{ MAYBE_RETURN (CHARACTERISTICS); } - YY_BREAK -case 45: -YY_RULE_SETUP -#line 124 "rclex.l" -{ MAYBE_RETURN (VERSIONK); } - YY_BREAK -case 46: -YY_RULE_SETUP -#line 125 "rclex.l" -{ MAYBE_RETURN (MENU); } - YY_BREAK -case 47: -YY_RULE_SETUP -#line 126 "rclex.l" -{ MAYBE_RETURN (MENUEX); } - YY_BREAK -case 48: -YY_RULE_SETUP -#line 127 "rclex.l" -{ MAYBE_RETURN (MENUITEM); } - YY_BREAK -case 49: -YY_RULE_SETUP -#line 128 "rclex.l" -{ MAYBE_RETURN (SEPARATOR); } - YY_BREAK -case 50: -YY_RULE_SETUP -#line 129 "rclex.l" -{ MAYBE_RETURN (POPUP); } - YY_BREAK -case 51: -YY_RULE_SETUP -#line 130 "rclex.l" -{ MAYBE_RETURN (CHECKED); } - YY_BREAK -case 52: -YY_RULE_SETUP -#line 131 "rclex.l" -{ MAYBE_RETURN (GRAYED); } - YY_BREAK -case 53: -YY_RULE_SETUP -#line 132 "rclex.l" -{ MAYBE_RETURN (HELP); } - YY_BREAK -case 54: -YY_RULE_SETUP -#line 133 "rclex.l" -{ MAYBE_RETURN (INACTIVE); } - YY_BREAK -case 55: -YY_RULE_SETUP -#line 134 "rclex.l" -{ MAYBE_RETURN (MENUBARBREAK); } - YY_BREAK -case 56: -YY_RULE_SETUP -#line 135 "rclex.l" -{ MAYBE_RETURN (MENUBREAK); } - YY_BREAK -case 57: -YY_RULE_SETUP -#line 136 "rclex.l" -{ MAYBE_RETURN (MESSAGETABLE); } - YY_BREAK -case 58: -YY_RULE_SETUP -#line 137 "rclex.l" -{ MAYBE_RETURN (RCDATA); } - YY_BREAK -case 59: -YY_RULE_SETUP -#line 138 "rclex.l" -{ MAYBE_RETURN (STRINGTABLE); } - YY_BREAK -case 60: -YY_RULE_SETUP -#line 139 "rclex.l" -{ MAYBE_RETURN (VERSIONINFO); } - YY_BREAK -case 61: -YY_RULE_SETUP -#line 140 "rclex.l" -{ MAYBE_RETURN (FILEVERSION); } - YY_BREAK -case 62: -YY_RULE_SETUP -#line 141 "rclex.l" -{ MAYBE_RETURN (PRODUCTVERSION); } - YY_BREAK -case 63: -YY_RULE_SETUP -#line 142 "rclex.l" -{ MAYBE_RETURN (FILEFLAGSMASK); } - YY_BREAK -case 64: -YY_RULE_SETUP -#line 143 "rclex.l" -{ MAYBE_RETURN (FILEFLAGS); } - YY_BREAK -case 65: -YY_RULE_SETUP -#line 144 "rclex.l" -{ MAYBE_RETURN (FILEOS); } - YY_BREAK -case 66: -YY_RULE_SETUP -#line 145 "rclex.l" -{ MAYBE_RETURN (FILETYPE); } - YY_BREAK -case 67: -YY_RULE_SETUP -#line 146 "rclex.l" -{ MAYBE_RETURN (FILESUBTYPE); } - YY_BREAK -case 68: -YY_RULE_SETUP -#line 147 "rclex.l" -{ MAYBE_RETURN (VALUE); } - YY_BREAK -case 69: -YY_RULE_SETUP -#line 148 "rclex.l" -{ MAYBE_RETURN (MOVEABLE); } - YY_BREAK -case 70: -YY_RULE_SETUP -#line 149 "rclex.l" -{ MAYBE_RETURN (FIXED); } - YY_BREAK -case 71: -YY_RULE_SETUP -#line 150 "rclex.l" -{ MAYBE_RETURN (PURE); } - YY_BREAK -case 72: -YY_RULE_SETUP -#line 151 "rclex.l" -{ MAYBE_RETURN (IMPURE); } - YY_BREAK -case 73: -YY_RULE_SETUP -#line 152 "rclex.l" -{ MAYBE_RETURN (PRELOAD); } - YY_BREAK -case 74: -YY_RULE_SETUP -#line 153 "rclex.l" -{ MAYBE_RETURN (LOADONCALL); } - YY_BREAK -case 75: -YY_RULE_SETUP -#line 154 "rclex.l" -{ MAYBE_RETURN (DISCARDABLE); } - YY_BREAK -case 76: -YY_RULE_SETUP -#line 155 "rclex.l" -{ MAYBE_RETURN (NOT); } - YY_BREAK -case 77: -YY_RULE_SETUP -#line 157 "rclex.l" -{ - char *s, *send; - - /* This is a hack to let us parse version - information easily. */ - - s = strchr (yytext, '"'); - ++s; - send = strchr (s, '"'); - if (strncmp (s, "StringFileInfo", - sizeof "StringFileInfo" - 1) == 0 - && s + sizeof "StringFileInfo" - 1 == send) - MAYBE_RETURN (BLOCKSTRINGFILEINFO); - else if (strncmp (s, "VarFileInfo", - sizeof "VarFileInfo" - 1) == 0 - && s + sizeof "VarFileInfo" - 1 == send) - MAYBE_RETURN (BLOCKVARFILEINFO); - else - { - char *r; - - r = get_string (send - s + 1); - strncpy (r, s, send - s); - r[send - s] = '\0'; - yylval.s = r; - MAYBE_RETURN (BLOCK); - } - } - YY_BREAK -case 78: -YY_RULE_SETUP -#line 186 "rclex.l" -{ - cpp_line (yytext); - } - YY_BREAK -case 79: -YY_RULE_SETUP -#line 190 "rclex.l" -{ - yylval.i.val = strtoul (yytext, 0, 0); - yylval.i.dword = 1; - MAYBE_RETURN (NUMBER); - } - YY_BREAK -case 80: -YY_RULE_SETUP -#line 196 "rclex.l" -{ - yylval.i.val = strtoul (yytext, 0, 0); - yylval.i.dword = 0; - MAYBE_RETURN (NUMBER); - } - YY_BREAK -case 81: -YY_RULE_SETUP -#line 202 "rclex.l" -{ - char *s; - unsigned long length; - - s = handle_quotes (yytext, &length); - if (! rcdata_mode) - { - yylval.s = s; - MAYBE_RETURN (QUOTEDSTRING); - } - else - { - yylval.ss.length = length; - yylval.ss.s = s; - MAYBE_RETURN (SIZEDSTRING); - } - } - YY_BREAK -case 82: -YY_RULE_SETUP -#line 220 "rclex.l" -{ - char *s; - - /* I rejected comma in a string in order to - handle VIRTKEY, CONTROL in an accelerator - resource. This means that an unquoted - file name can not contain a comma. I - don't know what rc permits. */ - - s = get_string (strlen (yytext) + 1); - strcpy (s, yytext); - yylval.s = s; - MAYBE_RETURN (STRING); - } - YY_BREAK -case 83: -YY_RULE_SETUP -#line 235 "rclex.l" -{ ++rc_lineno; } - YY_BREAK -case 84: -YY_RULE_SETUP -#line 236 "rclex.l" -{ /* ignore whitespace */ } - YY_BREAK -case 85: -YY_RULE_SETUP -#line 237 "rclex.l" -{ MAYBE_RETURN (*yytext); } - YY_BREAK -case 86: -YY_RULE_SETUP -#line 239 "rclex.l" -ECHO; - YY_BREAK -#line 1460 "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 >= 470 ) - 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 >= 470 ) - 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 == 469); - - 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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 239 "rclex.l" - -#ifndef yywrap -/* This is needed for some versions of lex. */ -int yywrap (void) -{ - return 1; -} -#endif - -/* Handle a C preprocessor line. */ - -static void -cpp_line (const char *s) -{ - int line; - char *send, *fn; - - ++s; - while (ISSPACE (*s)) - ++s; - - line = strtol (s, &send, 0); - if (*send != '\0' && ! ISSPACE (*send)) - return; - - /* Subtract 1 because we are about to count the newline. */ - rc_lineno = line - 1; - - s = send; - while (ISSPACE (*s)) - ++s; - - if (*s != '"') - return; - - ++s; - send = strchr (s, '"'); - if (send == NULL) - return; - - fn = (char *) xmalloc (send - s + 1); - strncpy (fn, s, send - s); - fn[send - s] = '\0'; - - free (rc_filename); - rc_filename = fn; - - if (!initial_fn) - { - initial_fn = xmalloc (strlen (fn) + 1); - strcpy (initial_fn, fn); - } - - /* Allow the initial file, regardless of name. Suppress all other - files if they end in ".h" (this allows included "*.rc"). */ - if (strcmp (initial_fn, fn) == 0 - || strcmp (fn + strlen (fn) - 2, ".h") != 0) - suppress_cpp_data = 0; - else - suppress_cpp_data = 1; -} - -/* Handle a quoted string. The quotes are stripped. A pair of quotes - in a string are turned into a single quote. Adjacent strings are - merged separated by whitespace are merged, as in C. */ - -static char * -handle_quotes (const char *input, unsigned long *len) -{ - char *ret, *s; - const char *t; - int ch; - - ret = get_string (strlen (input) + 1); - - s = ret; - t = input; - if (*t == '"') - ++t; - while (*t != '\0') - { - if (*t == '\\') - { - ++t; - switch (*t) - { - case '\0': - rcparse_warning ("backslash at end of string"); - break; - - case '\"': - rcparse_warning ("use \"\" to put \" in a string"); - break; - - case 'a': - *s++ = ESCAPE_B; /* Strange, but true... */ - ++t; - break; - - case 'b': - *s++ = ESCAPE_B; - ++t; - break; - - case 'f': - *s++ = ESCAPE_F; - ++t; - break; - - case 'n': - *s++ = ESCAPE_N; - ++t; - break; - - case 'r': - *s++ = ESCAPE_R; - ++t; - break; - - case 't': - *s++ = ESCAPE_T; - ++t; - break; - - case 'v': - *s++ = ESCAPE_V; - ++t; - break; - - case '\\': - *s++ = *t++; - break; - - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - ch = *t - '0'; - ++t; - if (*t >= '0' && *t <= '7') - { - ch = (ch << 3) | (*t - '0'); - ++t; - if (*t >= '0' && *t <= '7') - { - ch = (ch << 3) | (*t - '0'); - ++t; - } - } - *s++ = ch; - break; - - case 'x': - ++t; - ch = 0; - while (1) - { - if (*t >= '0' && *t <= '9') - ch = (ch << 4) | (*t - '0'); - else if (*t >= 'a' && *t <= 'f') - ch = (ch << 4) | (*t - 'a' + 10); - else if (*t >= 'A' && *t <= 'F') - ch = (ch << 4) | (*t - 'A' + 10); - else - break; - ++t; - } - *s++ = ch; - break; - - default: - rcparse_warning ("unrecognized escape sequence"); - *s++ = '\\'; - *s++ = *t++; - break; - } - } - else if (*t != '"') - *s++ = *t++; - else if (t[1] == '\0') - break; - else if (t[1] == '"') - { - *s++ = '"'; - t += 2; - } - else - { - ++t; - assert (ISSPACE (*t)); - while (ISSPACE (*t)) - { - if ((*t) == '\n') - ++rc_lineno; - ++t; - } - if (*t == '\0') - break; - assert (*t == '"'); - ++t; - } - } - - *s = '\0'; - - *len = s - ret; - - return ret; -} - -/* Allocate a string of a given length. */ - -static char * -get_string (int len) -{ - struct alloc_string *as; - - as = (struct alloc_string *) xmalloc (sizeof *as); - as->s = xmalloc (len); - - as->next = strings; - strings = as; - - return as->s; -} - -/* Discard all the strings we have allocated. The parser calls this - when it no longer needs them. */ - -void -rcparse_discard_strings (void) -{ - struct alloc_string *as; - - as = strings; - while (as != NULL) - { - struct alloc_string *n; - - free (as->s); - n = as->next; - free (as); - as = n; - } - - strings = NULL; -} - -/* Enter rcdata mode. */ - -void -rcparse_rcdata (void) -{ - rcdata_mode = 1; -} - -/* Go back to normal mode from rcdata mode. */ - -void -rcparse_normal (void) -{ - rcdata_mode = 0; -} diff --git a/binutils/rcparse.c b/binutils/rcparse.c deleted file mode 100644 index 89116edc90e..00000000000 --- a/binutils/rcparse.c +++ /dev/null @@ -1,3513 +0,0 @@ -/* A Bison parser, made from rcparse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define BEG 257 -# define END 258 -# define ACCELERATORS 259 -# define VIRTKEY 260 -# define ASCII 261 -# define NOINVERT 262 -# define SHIFT 263 -# define CONTROL 264 -# define ALT 265 -# define BITMAP 266 -# define CURSOR 267 -# define DIALOG 268 -# define DIALOGEX 269 -# define EXSTYLE 270 -# define CAPTION 271 -# define CLASS 272 -# define STYLE 273 -# define AUTO3STATE 274 -# define AUTOCHECKBOX 275 -# define AUTORADIOBUTTON 276 -# define CHECKBOX 277 -# define COMBOBOX 278 -# define CTEXT 279 -# define DEFPUSHBUTTON 280 -# define EDITTEXT 281 -# define GROUPBOX 282 -# define LISTBOX 283 -# define LTEXT 284 -# define PUSHBOX 285 -# define PUSHBUTTON 286 -# define RADIOBUTTON 287 -# define RTEXT 288 -# define SCROLLBAR 289 -# define STATE3 290 -# define USERBUTTON 291 -# define BEDIT 292 -# define HEDIT 293 -# define IEDIT 294 -# define FONT 295 -# define ICON 296 -# define LANGUAGE 297 -# define CHARACTERISTICS 298 -# define VERSIONK 299 -# define MENU 300 -# define MENUEX 301 -# define MENUITEM 302 -# define SEPARATOR 303 -# define POPUP 304 -# define CHECKED 305 -# define GRAYED 306 -# define HELP 307 -# define INACTIVE 308 -# define MENUBARBREAK 309 -# define MENUBREAK 310 -# define MESSAGETABLE 311 -# define RCDATA 312 -# define STRINGTABLE 313 -# define VERSIONINFO 314 -# define FILEVERSION 315 -# define PRODUCTVERSION 316 -# define FILEFLAGSMASK 317 -# define FILEFLAGS 318 -# define FILEOS 319 -# define FILETYPE 320 -# define FILESUBTYPE 321 -# define BLOCKSTRINGFILEINFO 322 -# define BLOCKVARFILEINFO 323 -# define VALUE 324 -# define BLOCK 325 -# define MOVEABLE 326 -# define FIXED 327 -# define PURE 328 -# define IMPURE 329 -# define PRELOAD 330 -# define LOADONCALL 331 -# define DISCARDABLE 332 -# define NOT 333 -# define QUOTEDSTRING 334 -# define STRING 335 -# define NUMBER 336 -# define SIZEDSTRING 337 -# define IGNORED_TOKEN 338 -# define NEG 339 - -#line 1 "rcparse.y" - /* rcparse.y -- parser for Windows rc files - Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 - Free Software Foundation, Inc. - Written by Ian Lance Taylor, Cygnus Support. - - 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. */ - -/* This is a parser for Windows rc files. It is based on the parser - by Gunther Ebert . */ - -#include "bfd.h" -#include "bucomm.h" -#include "libiberty.h" -#include "windres.h" -#include "safe-ctype.h" - -/* The current language. */ - -static unsigned short language; - -/* The resource information during a sub statement. */ - -static struct res_res_info sub_res_info; - -/* Dialog information. This is built by the nonterminals styles and - controls. */ - -static struct dialog dialog; - -/* This is used when building a style. It is modified by the - nonterminal styleexpr. */ - -static unsigned long style; - -/* These are used when building a control. They are set before using - control_params. */ - -static unsigned long base_style; -static unsigned long default_style; -static unsigned long class; -static struct res_id res_text_field; -static unichar null_unichar; - -/* This is used for COMBOBOX, LISTBOX and EDITTEXT which - do not allow resource 'text' field in control definition. */ -static const struct res_id res_null_text = { 1, {{0, &null_unichar}}}; - - -#line 65 "rcparse.y" -#ifndef YYSTYPE -typedef union -{ - struct accelerator acc; - struct accelerator *pacc; - struct dialog_control *dialog_control; - struct menuitem *menuitem; - struct - { - struct rcdata_item *first; - struct rcdata_item *last; - } rcdata; - struct rcdata_item *rcdata_item; - struct stringtable_data *stringtable; - struct fixed_versioninfo *fixver; - struct ver_info *verinfo; - struct ver_stringinfo *verstring; - struct ver_varinfo *vervar; - struct res_id id; - struct res_res_info res_info; - struct - { - unsigned short on; - unsigned short off; - } memflags; - struct - { - unsigned long val; - /* Nonzero if this number was explicitly specified as long. */ - int dword; - } i; - unsigned long il; - unsigned short is; - const char *s; - struct - { - unsigned long length; - const char *s; - } ss; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 500 -#define YYFLAG -32768 -#define YYNTBASE 99 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 189) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, 92, 87, 2, - 97, 98, 90, 88, 95, 89, 2, 91, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 96, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 86, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 85, 2, 93, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 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, 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, 94 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 1, 4, 7, 10, 13, 16, 19, 22, - 25, 28, 31, 34, 37, 40, 43, 46, 53, 54, - 57, 60, 65, 67, 69, 71, 75, 78, 80, 82, - 84, 86, 88, 90, 95, 100, 101, 115, 116, 130, - 131, 146, 147, 151, 152, 156, 160, 164, 168, 172, - 178, 185, 193, 202, 206, 210, 215, 219, 220, 223, - 224, 229, 230, 235, 236, 241, 242, 247, 248, 253, - 254, 258, 270, 283, 296, 310, 311, 316, 317, 322, - 323, 327, 328, 333, 334, 339, 346, 355, 366, 378, - 379, 384, 385, 389, 390, 395, 396, 401, 402, 407, - 408, 413, 414, 419, 420, 424, 425, 430, 431, 447, - 454, 463, 473, 474, 477, 479, 482, 483, 487, 488, - 492, 493, 497, 498, 502, 507, 512, 516, 523, 524, - 527, 532, 535, 542, 543, 547, 550, 552, 554, 556, - 558, 560, 562, 569, 570, 573, 576, 580, 586, 589, - 595, 602, 610, 620, 625, 632, 637, 638, 641, 642, - 644, 646, 648, 652, 656, 657, 664, 665, 669, 674, - 681, 686, 693, 694, 701, 708, 712, 716, 720, 724, - 728, 729, 738, 746, 747, 753, 754, 758, 760, 762, - 764, 767, 770, 773, 775, 776, 779, 783, 788, 792, - 793, 796, 797, 800, 802, 804, 806, 808, 810, 812, - 814, 816, 818, 820, 823, 827, 832, 834, 838, 839, - 841, 844, 846, 848, 852, 855, 858, 862, 866, 870, - 874, 878, 882, 886, 890, 893, 895, 897, 901, 904, - 908, 912, 916, 920, 924, 928, 932 -}; -static const short yyrhs[] = -{ - -1, 99, 100, 0, 99, 106, 0, 99, 107, 0, - 99, 108, 0, 99, 146, 0, 99, 147, 0, 99, - 148, 0, 99, 149, 0, 99, 154, 0, 99, 157, - 0, 99, 158, 0, 99, 163, 0, 99, 166, 0, - 99, 167, 0, 99, 84, 0, 172, 5, 175, 3, - 101, 4, 0, 0, 101, 102, 0, 103, 186, 0, - 103, 186, 95, 104, 0, 80, 0, 187, 0, 105, - 0, 104, 95, 105, 0, 104, 105, 0, 6, 0, - 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, - 172, 12, 177, 179, 0, 172, 13, 176, 179, 0, - 0, 172, 14, 177, 112, 187, 183, 183, 183, 109, - 113, 3, 114, 4, 0, 0, 172, 15, 177, 112, - 187, 183, 183, 183, 110, 113, 3, 114, 4, 0, - 0, 172, 15, 177, 112, 187, 183, 183, 183, 183, - 111, 113, 3, 114, 4, 0, 0, 16, 96, 184, - 0, 0, 113, 17, 80, 0, 113, 18, 172, 0, - 113, 19, 180, 0, 113, 16, 184, 0, 113, 18, - 80, 0, 113, 41, 184, 95, 80, 0, 113, 41, - 184, 95, 80, 183, 0, 113, 41, 184, 95, 80, - 183, 183, 0, 113, 41, 184, 95, 80, 183, 183, - 183, 0, 113, 46, 172, 0, 113, 44, 184, 0, - 113, 43, 184, 183, 0, 113, 45, 184, 0, 0, - 114, 115, 0, 0, 20, 138, 116, 137, 0, 0, - 21, 138, 117, 137, 0, 0, 22, 138, 118, 137, - 0, 0, 38, 138, 119, 137, 0, 0, 23, 138, - 120, 137, 0, 0, 24, 121, 137, 0, 10, 138, - 184, 183, 140, 183, 183, 183, 183, 182, 139, 0, - 10, 138, 184, 183, 140, 183, 183, 183, 183, 183, - 183, 139, 0, 10, 138, 184, 95, 80, 140, 183, - 183, 183, 183, 182, 139, 0, 10, 138, 184, 95, - 80, 140, 183, 183, 183, 183, 183, 183, 139, 0, - 0, 25, 138, 122, 137, 0, 0, 26, 138, 123, - 137, 0, 0, 27, 124, 137, 0, 0, 28, 138, - 125, 137, 0, 0, 39, 138, 126, 137, 0, 42, - 174, 184, 183, 183, 139, 0, 42, 174, 184, 183, - 183, 183, 183, 139, 0, 42, 174, 184, 183, 183, - 183, 183, 142, 182, 139, 0, 42, 174, 184, 183, - 183, 183, 183, 142, 183, 183, 139, 0, 0, 40, - 138, 127, 137, 0, 0, 29, 128, 137, 0, 0, - 30, 138, 129, 137, 0, 0, 31, 138, 130, 137, - 0, 0, 32, 138, 131, 137, 0, 0, 33, 138, - 132, 137, 0, 0, 34, 138, 133, 137, 0, 0, - 35, 134, 137, 0, 0, 36, 138, 135, 137, 0, - 0, 37, 174, 184, 95, 184, 95, 184, 95, 184, - 95, 184, 95, 136, 180, 182, 0, 184, 183, 183, - 183, 183, 139, 0, 184, 183, 183, 183, 183, 144, - 182, 139, 0, 184, 183, 183, 183, 183, 144, 183, - 183, 139, 0, 0, 187, 95, 0, 80, 0, 80, - 95, 0, 0, 3, 159, 4, 0, 0, 95, 141, - 180, 0, 0, 95, 143, 180, 0, 0, 95, 145, - 180, 0, 172, 41, 176, 179, 0, 172, 42, 176, - 179, 0, 43, 184, 183, 0, 172, 46, 175, 3, - 150, 4, 0, 0, 150, 151, 0, 48, 80, 183, - 152, 0, 48, 49, 0, 50, 80, 152, 3, 150, - 4, 0, 0, 152, 95, 153, 0, 152, 153, 0, - 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, - 56, 0, 172, 47, 175, 3, 155, 4, 0, 0, - 155, 156, 0, 48, 80, 0, 48, 80, 183, 0, - 48, 80, 183, 183, 182, 0, 48, 49, 0, 50, - 80, 3, 155, 4, 0, 50, 80, 183, 3, 155, - 4, 0, 50, 80, 183, 183, 3, 155, 4, 0, - 50, 80, 183, 183, 183, 182, 3, 155, 4, 0, - 172, 57, 177, 179, 0, 172, 58, 175, 3, 159, - 4, 0, 172, 58, 175, 179, 0, 0, 160, 161, - 0, 0, 162, 0, 83, 0, 185, 0, 162, 95, - 83, 0, 162, 95, 185, 0, 0, 59, 175, 3, - 164, 165, 4, 0, 0, 165, 184, 80, 0, 165, - 184, 95, 80, 0, 172, 172, 175, 3, 159, 4, - 0, 172, 172, 175, 179, 0, 172, 60, 168, 3, - 169, 4, 0, 0, 168, 61, 184, 183, 183, 183, - 0, 168, 62, 184, 183, 183, 183, 0, 168, 63, - 184, 0, 168, 64, 184, 0, 168, 65, 184, 0, - 168, 66, 184, 0, 168, 67, 184, 0, 0, 169, - 68, 3, 71, 3, 170, 4, 4, 0, 169, 69, - 3, 70, 80, 171, 4, 0, 0, 170, 70, 80, - 95, 80, 0, 0, 171, 183, 183, 0, 187, 0, - 81, 0, 80, 0, 80, 95, 0, 81, 95, 0, - 187, 95, 0, 173, 0, 0, 175, 178, 0, 175, - 44, 184, 0, 175, 43, 184, 183, 0, 175, 45, - 184, 0, 0, 176, 178, 0, 0, 177, 178, 0, - 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, - 77, 0, 78, 0, 80, 0, 81, 0, 181, 0, - 79, 181, 0, 180, 85, 181, 0, 180, 85, 79, - 181, 0, 82, 0, 97, 184, 98, 0, 0, 183, - 0, 95, 184, 0, 185, 0, 82, 0, 97, 185, - 98, 0, 93, 185, 0, 89, 185, 0, 185, 90, - 185, 0, 185, 91, 185, 0, 185, 92, 185, 0, - 185, 88, 185, 0, 185, 89, 185, 0, 185, 87, - 185, 0, 185, 86, 185, 0, 185, 85, 185, 0, - 95, 187, 0, 188, 0, 82, 0, 97, 185, 98, - 0, 93, 185, 0, 188, 90, 185, 0, 188, 91, - 185, 0, 188, 92, 185, 0, 188, 88, 185, 0, - 188, 89, 185, 0, 188, 87, 185, 0, 188, 86, - 185, 0, 188, 85, 185, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 161, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 182, 192, 197, - 217, 223, 234, 256, 265, 270, 275, 281, 286, 291, - 295, 299, 303, 311, 323, 335, 335, 361, 361, 388, - 388, 418, 423, 429, 431, 437, 441, 446, 450, 454, - 467, 482, 497, 512, 516, 520, 524, 530, 532, 542, - 542, 554, 554, 565, 565, 576, 576, 590, 590, 601, - 601, 614, 625, 634, 647, 658, 658, 669, 669, 680, - 680, 691, 691, 702, 702, 716, 721, 727, 733, 739, - 739, 753, 753, 764, 764, 775, 775, 785, 785, 796, - 796, 807, 807, 818, 818, 829, 829, 840, 840, 857, - 869, 880, 891, 896, 901, 905, 911, 916, 924, 924, - 930, 930, 936, 936, 944, 956, 969, 978, 988, 993, - 1009, 1014, 1018, 1024, 1029, 1033, 1039, 1044, 1048, 1052, - 1056, 1060, 1068, 1078, 1083, 1099, 1104, 1108, 1112, 1116, - 1120, 1124, 1128, 1137, 1149, 1157, 1169, 1169, 1180, 1186, - 1192, 1201, 1209, 1218, 1231, 1231, 1237, 1239, 1246, 1258, - 1266, 1277, 1287, 1294, 1300, 1306, 1311, 1316, 1321, 1326, - 1339, 1344, 1348, 1354, 1359, 1365, 1370, 1378, 1384, 1399, - 1404, 1408, 1415, 1421, 1437, 1445, 1451, 1456, 1461, 1470, - 1477, 1487, 1494, 1505, 1511, 1516, 1521, 1526, 1531, 1536, - 1545, 1550, 1566, 1571, 1575, 1579, 1585, 1590, 1598, 1603, - 1611, 1620, 1629, 1634, 1638, 1643, 1648, 1653, 1658, 1663, - 1668, 1673, 1678, 1683, 1693, 1702, 1713, 1718, 1722, 1727, - 1732, 1737, 1742, 1747, 1752, 1757, 1762 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "BEG", "END", "ACCELERATORS", "VIRTKEY", - "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR", - "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE", - "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX", - "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT", - "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3", - "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "LANGUAGE", - "CHARACTERISTICS", "VERSIONK", "MENU", "MENUEX", "MENUITEM", - "SEPARATOR", "POPUP", "CHECKED", "GRAYED", "HELP", "INACTIVE", - "MENUBARBREAK", "MENUBREAK", "MESSAGETABLE", "RCDATA", "STRINGTABLE", - "VERSIONINFO", "FILEVERSION", "PRODUCTVERSION", "FILEFLAGSMASK", - "FILEFLAGS", "FILEOS", "FILETYPE", "FILESUBTYPE", "BLOCKSTRINGFILEINFO", - "BLOCKVARFILEINFO", "VALUE", "BLOCK", "MOVEABLE", "FIXED", "PURE", - "IMPURE", "PRELOAD", "LOADONCALL", "DISCARDABLE", "NOT", "QUOTEDSTRING", - "STRING", "NUMBER", "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", "'&'", - "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "NEG", "','", "'='", "'('", - "')'", "input", "accelerator", "acc_entries", "acc_entry", "acc_event", - "acc_options", "acc_option", "bitmap", "cursor", "dialog", "@1", "@2", - "@3", "exstyle", "styles", "controls", "control", "@4", "@5", "@6", - "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", - "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", - "control_params", "optresidc", "opt_control_data", "control_styleexpr", - "@25", "icon_styleexpr", "@26", "control_params_styleexpr", "@27", - "font", "icon", "language", "menu", "menuitems", "menuitem", - "menuitem_flags", "menuitem_flag", "menuex", "menuexitems", - "menuexitem", "messagetable", "rcdata", "optrcdata_data", "@28", - "optrcdata_data_int", "rcdata_data", "stringtable", "@29", - "string_data", "user", "versioninfo", "fixedverinfo", "verblocks", - "vervals", "vertrans", "id", "resname", "resref", "suboptions", - "memflags_move_discard", "memflags_move", "memflag", "file_name", - "styleexpr", "parennumber", "optcnumexpr", "cnumexpr", "numexpr", - "sizednumexpr", "cposnumexpr", "posnumexpr", "sizedposnumexpr", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 100, 101, 101, - 102, 102, 103, 103, 104, 104, 104, 105, 105, 105, - 105, 105, 105, 106, 107, 109, 108, 110, 108, 111, - 108, 112, 112, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 114, 114, 116, - 115, 117, 115, 118, 115, 119, 115, 120, 115, 121, - 115, 115, 115, 115, 115, 122, 115, 123, 115, 124, - 115, 125, 115, 126, 115, 115, 115, 115, 115, 127, - 115, 128, 115, 129, 115, 130, 115, 131, 115, 132, - 115, 133, 115, 134, 115, 135, 115, 136, 115, 137, - 137, 137, 138, 138, 138, 138, 139, 139, 141, 140, - 143, 142, 145, 144, 146, 147, 148, 149, 150, 150, - 151, 151, 151, 152, 152, 152, 153, 153, 153, 153, - 153, 153, 154, 155, 155, 156, 156, 156, 156, 156, - 156, 156, 156, 157, 158, 158, 160, 159, 161, 161, - 162, 162, 162, 162, 164, 163, 165, 165, 165, 166, - 166, 167, 168, 168, 168, 168, 168, 168, 168, 168, - 169, 169, 169, 170, 170, 171, 171, 172, 172, 173, - 173, 173, 174, 174, 175, 175, 175, 175, 175, 176, - 176, 177, 177, 178, 178, 178, 178, 178, 178, 178, - 179, 179, 180, 180, 180, 180, 181, 181, 182, 182, - 183, 184, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 186, 187, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 6, 0, 2, - 2, 4, 1, 1, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 4, 4, 0, 13, 0, 13, 0, - 14, 0, 3, 0, 3, 3, 3, 3, 3, 5, - 6, 7, 8, 3, 3, 4, 3, 0, 2, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 3, 11, 12, 12, 13, 0, 4, 0, 4, 0, - 3, 0, 4, 0, 4, 6, 8, 10, 11, 0, - 4, 0, 3, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 3, 0, 4, 0, 15, 6, - 8, 9, 0, 2, 1, 2, 0, 3, 0, 3, - 0, 3, 0, 3, 4, 4, 3, 6, 0, 2, - 4, 2, 6, 0, 3, 2, 1, 1, 1, 1, - 1, 1, 6, 0, 2, 2, 3, 5, 2, 5, - 6, 7, 9, 4, 6, 4, 0, 2, 0, 1, - 1, 1, 3, 3, 0, 6, 0, 3, 4, 6, - 4, 6, 0, 6, 6, 3, 3, 3, 3, 3, - 0, 8, 7, 0, 5, 0, 3, 1, 1, 1, - 2, 2, 2, 1, 0, 2, 3, 4, 3, 0, - 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 3, 4, 1, 3, 0, 1, - 2, 1, 1, 3, 2, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 1, 1, 3, 2, 3, - 3, 3, 3, 3, 3, 3, 3 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 1, 0, 0, 194, 188, 236, 16, 0, 0, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 0, 187, 235, 222, 0, 0, 0, - 0, 221, 0, 238, 0, 194, 201, 199, 201, 201, - 199, 199, 194, 194, 201, 194, 172, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 224, 0, 0, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 0, 0, 0, 203, 204, 205, 206, 207, 208, 209, - 195, 237, 0, 0, 0, 41, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 245, 244, 242, 243, - 239, 240, 241, 223, 220, 233, 232, 231, 229, 230, - 226, 227, 228, 166, 0, 196, 198, 18, 210, 211, - 202, 33, 200, 34, 0, 0, 0, 124, 125, 128, - 143, 153, 156, 155, 180, 0, 0, 0, 0, 0, - 0, 0, 156, 170, 0, 197, 0, 0, 0, 0, - 0, 0, 0, 158, 0, 0, 0, 175, 176, 177, - 178, 179, 0, 165, 0, 17, 22, 19, 0, 23, - 42, 0, 0, 127, 0, 0, 129, 142, 0, 0, - 144, 154, 160, 157, 159, 161, 171, 0, 0, 0, - 0, 169, 167, 0, 0, 20, 0, 0, 131, 0, - 133, 148, 145, 0, 0, 0, 0, 0, 0, 168, - 234, 0, 35, 37, 133, 0, 146, 143, 0, 162, - 163, 0, 0, 173, 174, 27, 28, 29, 30, 31, - 32, 21, 24, 43, 43, 39, 130, 128, 136, 137, - 138, 139, 140, 141, 0, 135, 218, 0, 143, 0, - 183, 185, 0, 26, 0, 0, 43, 0, 134, 147, - 219, 149, 0, 143, 218, 0, 0, 25, 57, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, - 132, 150, 0, 0, 0, 0, 182, 0, 0, 47, - 44, 48, 45, 0, 216, 0, 46, 212, 0, 0, - 54, 56, 53, 0, 57, 151, 143, 181, 0, 186, - 36, 112, 112, 112, 112, 112, 69, 112, 112, 79, - 112, 91, 112, 112, 112, 112, 112, 103, 112, 0, - 112, 112, 112, 0, 58, 213, 0, 0, 0, 55, - 38, 0, 0, 0, 114, 0, 0, 59, 61, 63, - 67, 0, 75, 77, 0, 81, 0, 93, 95, 97, - 99, 101, 0, 105, 189, 0, 193, 0, 0, 65, - 83, 89, 0, 217, 0, 214, 49, 40, 152, 184, - 115, 0, 113, 0, 0, 0, 0, 70, 0, 0, - 0, 80, 0, 92, 0, 0, 0, 0, 0, 104, - 0, 190, 191, 0, 192, 0, 0, 0, 0, 215, - 50, 0, 0, 60, 62, 64, 68, 0, 76, 78, - 82, 94, 96, 98, 100, 102, 106, 0, 66, 84, - 90, 0, 51, 0, 118, 0, 0, 0, 116, 52, - 0, 0, 0, 0, 0, 156, 85, 0, 0, 119, - 0, 116, 0, 0, 116, 0, 0, 122, 109, 218, - 0, 117, 120, 86, 218, 0, 218, 0, 116, 219, - 0, 0, 116, 219, 218, 116, 219, 123, 110, 116, - 0, 121, 87, 116, 116, 219, 71, 116, 111, 0, - 88, 73, 116, 72, 107, 74, 0, 218, 108, 0, - 0 -}; - -static const short yydefgoto[] = -{ - 1, 9, 146, 167, 168, 231, 232, 10, 11, 12, - 233, 234, 256, 125, 254, 288, 334, 383, 384, 385, - 405, 386, 351, 389, 390, 354, 392, 406, 407, 356, - 394, 395, 396, 397, 398, 362, 400, 496, 387, 345, - 446, 435, 441, 464, 471, 459, 467, 13, 14, 15, - 16, 150, 176, 215, 245, 17, 151, 180, 18, 19, - 152, 153, 183, 184, 20, 113, 144, 21, 22, 93, - 154, 265, 266, 23, 366, 367, 32, 84, 83, 80, - 121, 296, 297, 259, 260, 388, 31, 195, 346, 25 -}; - -static const short yypact[] = -{ - -32768, 13, 287,-32768,-32768,-32768,-32768, 287, 287,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 106,-32768, 585,-32768, 287, 287, 287, - -71, 675, 83,-32768, 637,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 287, 287, - 287, 287, 287, 287, 287, 287,-32768,-32768, 651, 287, - -32768, 287, 287, 287, 287, 287, 287, 287, 287,-32768, - 287, 287, 287,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 286, 678, 678, 188, 188, 678, 678, 323, - 375, 678, 210, 128, 274, 682, 688, 642, -37, -37, - -32768,-32768,-32768,-32768,-32768, 682, 688, 642, -37, -37, - -32768,-32768,-32768,-32768, -71,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, -49, 141, 141,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 287, 287, 287, 287, 287, - 287, 287,-32768,-32768, -1,-32768, 5, 287, -71, -71, - 34, 96, 47, 373, 39, -71, -71,-32768,-32768,-32768, - -32768,-32768, 54,-32768, -46,-32768,-32768,-32768, -12,-32768, - -32768, -71, -71,-32768, -43, 10,-32768,-32768, -35, 32, - -32768,-32768,-32768,-32768, 28, 675,-32768, 113, 121, -71, - -71,-32768,-32768, 52, 141, 46, -71, -71,-32768, -71, - -32768,-32768, -71, 8, 454, 97, 112, -71, -71,-32768, - -32768, 775,-32768, -71,-32768, 119, -71,-32768, 9,-32768, - 675, 151, 87,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 22,-32768,-32768,-32768,-32768, 245,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 736,-32768, -71, 101,-32768, 14, - -32768,-32768, 775,-32768, 370, 512,-32768, 158,-32768,-32768, - -32768,-32768, 172,-32768, -71, 21, 6,-32768,-32768, 287, - 116, 227, 133, 287, 287, 287, 287, 260,-32768, 523, - -32768,-32768, 179, 183, 95, 125,-32768, -71, 584,-32768, - -32768,-32768,-32768, 43,-32768, 287, 126,-32768, 115, -71, - -32768,-32768,-32768, 621,-32768,-32768,-32768,-32768, 138,-32768, - -32768, 297, 297, 297, 297, 297,-32768, 297, 297,-32768, - 297,-32768, 297, 297, 297, 297, 297,-32768, 297, 230, - 297, 297, 297, 230,-32768,-32768, 137, 142, 164,-32768, - -32768, 658, 193, 166, 153, 287, 154,-32768,-32768,-32768, - -32768, 287,-32768,-32768, 287,-32768, 287,-32768,-32768,-32768, - -32768,-32768, 287,-32768, 163, 173,-32768, 287, 174,-32768, - -32768,-32768, 287,-32768, 43,-32768, -71,-32768,-32768,-32768, - -32768, 175,-32768, 287, 287, 287, 287,-32768, -71, 287, - 287,-32768, 287,-32768, 287, 287, 287, 287, 287,-32768, - 287,-32768,-32768, 181,-32768, 287, 287, 287, -71,-32768, - -71, 341, 184,-32768,-32768,-32768,-32768, -71,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 287,-32768,-32768, - -32768, -71, -71, 184,-32768, -71, -71, 185, 18,-32768, - -71, 133, -71, -71, 287,-32768,-32768, -71, -71, 126, - -71, 19, 197, 255, 20, -71, -71,-32768,-32768, -71, - 287,-32768,-32768,-32768, -71, -71, -71, 133, 291, -71, - 207, 133, 291, -71, -71, 291, -71, 126,-32768, 291, - 287, 126,-32768, 291, 291, -71,-32768, 291,-32768, 208, - -32768,-32768, 291,-32768,-32768,-32768, 133, 84,-32768, 305, - -32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768,-32768,-32768,-32768, -216,-32768,-32768,-32768, - -32768,-32768,-32768, 220, -208, -260,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 127, 389, - 108, -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 77,-32768, 107, 71,-32768, -213,-32768,-32768,-32768, - -141,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, -21,-32768, -11, 398, 140, 213, 549, - 487, -425, -285, -257, 29, -2, 12,-32768, 4,-32768 -}; - - -#define YYLAST 792 - - -static const short yytable[] = -{ - 30, 162, 47, 163, 247, 24, 198, 283, 335, 165, - 286, 217, 248, 499, 201, 253, 449, 263, 303, 33, - 34, 445, 445, 445, 59, 284, 255, 24, 225, 226, - 227, 228, 229, 230, 192, 262, 267, 199, 173, 56, - 57, 58, 477, 186, 341, 202, 481, 147, 279, 193, - 282, 181, 375, 66, 67, 68, 2, 104, 191, 60, - 95, 96, 97, 98, 99, 100, 101, 102, 114, 115, - 116, 497, 3, 105, 106, 107, 108, 109, 110, 111, - 112, 26, 174, 194, 175, 166, 69, 5, 27, 409, - 200, 285, 28, 342, 4, 5, 29, 6, 7, 307, - 177, 59, 8, 59, 59, 261, 7, 187, 188, 59, - 8, 35, 203, 59, 457, 462, 205, 252, 36, 37, - 38, 39, 237, 204, 206, 294, 70, 71, 72, 148, - 149, 134, 209, 155, 156, 157, 158, 159, 160, 161, - 295, 211, 164, 145, 178, 170, 179, 40, 41, 178, - 169, 179, 42, 43, 250, 73, 74, 75, 76, 77, - 78, 79, 280, 44, 45, 185, 46, 251, 221, 337, - 238, 239, 240, 241, 242, 243, 281, 171, 172, 59, - 87, 88, 222, 305, 189, 190, 306, 4, 5, 135, - 136, 137, 138, 139, 140, 141, 290, 378, 210, 7, - 196, 197, 468, 8, 124, 308, 174, 472, 175, 475, - 338, 337, 293, 132, 244, 294, 220, 484, 207, 208, - 178, 374, 179, 5, 294, 212, 213, 178, 214, 179, - 295, 216, 218, 343, 7, 373, 223, 224, 8, 295, - 498, 178, 235, 179, 376, 246, 379, 249, 380, 382, - 292, 85, 86, 70, 71, 72, 302, 91, 401, 461, - 73, 74, 75, 76, 77, 78, 79, 289, 402, 404, - 411, 298, 299, 300, 301, 24, 427, 142, 264, 434, - 444, 24, 73, 74, 75, 76, 77, 78, 79, 117, - 118, 119, 460, 336, 445, 287, 238, 239, 240, 241, - 242, 243, 480, 494, 453, 500, 126, 291, 4, 5, - 364, 365, 5, 440, 257, 258, 309, 70, 71, 72, - 7, 236, 372, 7, 8, 0, 129, 8, 339, 70, - 71, 72, 0, 368, 0, 0, 0, 368, 0, 0, - 244, 4, 5, 381, 0, 0, 73, 74, 75, 76, - 77, 78, 79, 7, 118, 119, 0, 8, 73, 74, - 75, 76, 77, 78, 79, 403, 70, 71, 72, 26, - 408, 0, 0, 268, 0, 0, 27, 344, 130, 5, - 28, 0, 0, 0, 29, 0, 269, 270, 271, 272, - 7, 0, 0, 0, 8, 73, 74, 75, 76, 77, - 78, 79, 0, 0, 0, 410, 0, 0, 0, 104, - 412, 273, 0, 274, 275, 276, 277, 417, 70, 71, - 72, 433, 0, 26, 0, 437, 0, 0, 0, 0, - 27, 0, 0, 82, 28, 0, 0, 431, 29, 432, - 89, 90, 452, 92, 0, 94, 436, 73, 74, 75, - 76, 77, 78, 79, 0, 26, 182, 0, 470, 0, - 438, 439, 27, 0, 442, 443, 28, 447, 0, 448, - 29, 450, 451, 0, 0, 0, 454, 455, 489, 456, - 0, 391, 0, 393, 465, 466, 0, 0, 469, 399, - 0, 0, 0, 473, 474, 476, 0, 0, 479, 0, - 0, 0, 483, 485, 0, 487, 0, 0, 0, 0, - 413, 414, 415, 416, 492, 278, 418, 419, 0, 420, - 0, 421, 422, 423, 424, 425, 304, 426, 269, 270, - 271, 272, 428, 429, 430, 0, 26, 219, 0, 269, - 270, 271, 272, 27, 0, 0, 0, 28, 0, 0, - 0, 29, 0, 273, 0, 274, 275, 276, 277, 458, - 0, 0, 463, 0, 273, 0, 274, 275, 276, 277, - 0, 123, 0, 0, 127, 128, 478, 0, 131, 133, - 482, 143, 0, 486, 0, 0, 0, 488, 310, 0, - 0, 490, 491, 0, 311, 493, 0, 0, 0, 0, - 495, 0, 0, 0, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 340, 333, 0, 0, 0, - 0, 311, 120, 122, 120, 120, 122, 122, 0, 0, - 120, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 377, 333, 0, 0, 0, 0, 311, 0, - 48, 49, 50, 51, 52, 53, 54, 55, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, - 333, 347, 348, 349, 350, 0, 352, 353, 0, 355, - 0, 357, 358, 359, 360, 361, 0, 363, 0, 369, - 370, 371, 61, 62, 63, 64, 65, 66, 67, 68, - 64, 65, 66, 67, 68, 81, 61, 62, 63, 64, - 65, 66, 67, 68, 0, 0, 0, 0, 0, 103, - 73, 74, 75, 76, 77, 78, 79, 0, 118, 119, - 61, 62, 63, 64, 65, 66, 67, 68, 62, 63, - 64, 65, 66, 67, 68, 63, 64, 65, 66, 67, - 68, 225, 226, 227, 228, 229, 230, 238, 239, 240, - 241, 242, 243 -}; - -static const short yycheck[] = -{ - 2, 142, 23, 4, 217, 1, 49, 264, 293, 4, - 4, 3, 3, 0, 49, 231, 441, 3, 278, 7, - 8, 3, 3, 3, 95, 4, 234, 23, 6, 7, - 8, 9, 10, 11, 80, 248, 252, 80, 4, 27, - 28, 29, 467, 4, 304, 80, 471, 96, 256, 95, - 263, 4, 337, 90, 91, 92, 43, 59, 4, 30, - 48, 49, 50, 51, 52, 53, 54, 55, 70, 71, - 72, 496, 59, 61, 62, 63, 64, 65, 66, 67, - 68, 82, 48, 95, 50, 80, 3, 82, 89, 374, - 80, 70, 93, 306, 81, 82, 97, 84, 93, 4, - 4, 95, 97, 95, 95, 4, 93, 68, 69, 95, - 97, 5, 80, 95, 95, 95, 3, 95, 12, 13, - 14, 15, 3, 95, 3, 82, 43, 44, 45, 125, - 126, 3, 80, 135, 136, 137, 138, 139, 140, 141, - 97, 95, 144, 114, 48, 147, 50, 41, 42, 48, - 146, 50, 46, 47, 3, 72, 73, 74, 75, 76, - 77, 78, 4, 57, 58, 153, 60, 80, 71, 85, - 51, 52, 53, 54, 55, 56, 4, 148, 149, 95, - 40, 41, 70, 4, 155, 156, 3, 81, 82, 61, - 62, 63, 64, 65, 66, 67, 80, 4, 194, 93, - 171, 172, 459, 97, 16, 80, 48, 464, 50, 466, - 95, 85, 79, 3, 95, 82, 204, 474, 189, 190, - 48, 79, 50, 82, 82, 196, 197, 48, 199, 50, - 97, 202, 203, 95, 93, 98, 207, 208, 97, 97, - 497, 48, 213, 50, 80, 216, 80, 218, 95, 95, - 271, 38, 39, 43, 44, 45, 277, 44, 95, 4, - 72, 73, 74, 75, 76, 77, 78, 269, 95, 95, - 95, 273, 274, 275, 276, 271, 95, 3, 249, 95, - 95, 277, 72, 73, 74, 75, 76, 77, 78, 3, - 80, 81, 95, 295, 3, 266, 51, 52, 53, 54, - 55, 56, 95, 95, 445, 0, 86, 80, 81, 82, - 80, 81, 82, 433, 237, 244, 287, 43, 44, 45, - 93, 214, 333, 93, 97, -1, 3, 97, 299, 43, - 44, 45, -1, 329, -1, -1, -1, 333, -1, -1, - 95, 81, 82, 345, -1, -1, 72, 73, 74, 75, - 76, 77, 78, 93, 80, 81, -1, 97, 72, 73, - 74, 75, 76, 77, 78, 367, 43, 44, 45, 82, - 372, -1, -1, 3, -1, -1, 89, 80, 3, 82, - 93, -1, -1, -1, 97, -1, 16, 17, 18, 19, - 93, -1, -1, -1, 97, 72, 73, 74, 75, 76, - 77, 78, -1, -1, -1, 376, -1, -1, -1, 411, - 381, 41, -1, 43, 44, 45, 46, 388, 43, 44, - 45, 80, -1, 82, -1, 427, -1, -1, -1, -1, - 89, -1, -1, 35, 93, -1, -1, 408, 97, 410, - 42, 43, 444, 45, -1, 47, 417, 72, 73, 74, - 75, 76, 77, 78, -1, 82, 83, -1, 460, -1, - 431, 432, 89, -1, 435, 436, 93, 438, -1, 440, - 97, 442, 443, -1, -1, -1, 447, 448, 480, 450, - -1, 354, -1, 356, 455, 456, -1, -1, 459, 362, - -1, -1, -1, 464, 465, 466, -1, -1, 469, -1, - -1, -1, 473, 474, -1, 476, -1, -1, -1, -1, - 383, 384, 385, 386, 485, 3, 389, 390, -1, 392, - -1, 394, 395, 396, 397, 398, 3, 400, 16, 17, - 18, 19, 405, 406, 407, -1, 82, 83, -1, 16, - 17, 18, 19, 89, -1, -1, -1, 93, -1, -1, - -1, 97, -1, 41, -1, 43, 44, 45, 46, 451, - -1, -1, 454, -1, 41, -1, 43, 44, 45, 46, - -1, 84, -1, -1, 87, 88, 468, -1, 91, 92, - 472, 94, -1, 475, -1, -1, -1, 479, 4, -1, - -1, 483, 484, -1, 10, 487, -1, -1, -1, -1, - 492, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 4, 42, -1, -1, -1, - -1, 10, 83, 84, 85, 86, 87, 88, -1, -1, - 91, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 4, 42, -1, -1, -1, -1, 10, -1, - 85, 86, 87, 88, 89, 90, 91, 92, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, - 42, 312, 313, 314, 315, -1, 317, 318, -1, 320, - -1, 322, 323, 324, 325, 326, -1, 328, -1, 330, - 331, 332, 85, 86, 87, 88, 89, 90, 91, 92, - 88, 89, 90, 91, 92, 98, 85, 86, 87, 88, - 89, 90, 91, 92, -1, -1, -1, -1, -1, 98, - 72, 73, 74, 75, 76, 77, 78, -1, 80, 81, - 85, 86, 87, 88, 89, 90, 91, 92, 86, 87, - 88, 89, 90, 91, 92, 87, 88, 89, 90, 91, - 92, 6, 7, 8, 9, 10, 11, 51, 52, 53, - 54, 55, 56 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 17: -#line 184 "rcparse.y" -{ - define_accelerator (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].pacc); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 18: -#line 194 "rcparse.y" -{ - yyval.pacc = NULL; - } - break; -case 19: -#line 198 "rcparse.y" -{ - struct accelerator *a; - - a = (struct accelerator *) res_alloc (sizeof *a); - *a = yyvsp[0].acc; - if (yyvsp[-1].pacc == NULL) - yyval.pacc = a; - else - { - struct accelerator **pp; - - for (pp = &yyvsp[-1].pacc->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = a; - yyval.pacc = yyvsp[-1].pacc; - } - } - break; -case 20: -#line 219 "rcparse.y" -{ - yyval.acc = yyvsp[-1].acc; - yyval.acc.id = yyvsp[0].il; - } - break; -case 21: -#line 224 "rcparse.y" -{ - yyval.acc = yyvsp[-3].acc; - yyval.acc.id = yyvsp[-2].il; - yyval.acc.flags |= yyvsp[0].is; - if ((yyval.acc.flags & ACC_VIRTKEY) == 0 - && (yyval.acc.flags & (ACC_SHIFT | ACC_CONTROL)) != 0) - rcparse_warning (_("inappropriate modifiers for non-VIRTKEY")); - } - break; -case 22: -#line 236 "rcparse.y" -{ - const char *s = yyvsp[0].s; - char ch; - - yyval.acc.next = NULL; - yyval.acc.id = 0; - ch = *s; - if (ch != '^') - yyval.acc.flags = 0; - else - { - yyval.acc.flags = ACC_CONTROL | ACC_VIRTKEY; - ++s; - ch = *s; - ch = TOUPPER (ch); - } - yyval.acc.key = ch; - if (s[1] != '\0') - rcparse_warning (_("accelerator should only be one character")); - } - break; -case 23: -#line 257 "rcparse.y" -{ - yyval.acc.next = NULL; - yyval.acc.flags = 0; - yyval.acc.id = 0; - yyval.acc.key = yyvsp[0].il; - } - break; -case 24: -#line 267 "rcparse.y" -{ - yyval.is = yyvsp[0].is; - } - break; -case 25: -#line 271 "rcparse.y" -{ - yyval.is = yyvsp[-2].is | yyvsp[0].is; - } - break; -case 26: -#line 276 "rcparse.y" -{ - yyval.is = yyvsp[-1].is | yyvsp[0].is; - } - break; -case 27: -#line 283 "rcparse.y" -{ - yyval.is = ACC_VIRTKEY; - } - break; -case 28: -#line 287 "rcparse.y" -{ - /* This is just the absence of VIRTKEY. */ - yyval.is = 0; - } - break; -case 29: -#line 292 "rcparse.y" -{ - yyval.is = ACC_NOINVERT; - } - break; -case 30: -#line 296 "rcparse.y" -{ - yyval.is = ACC_SHIFT; - } - break; -case 31: -#line 300 "rcparse.y" -{ - yyval.is = ACC_CONTROL; - } - break; -case 32: -#line 304 "rcparse.y" -{ - yyval.is = ACC_ALT; - } - break; -case 33: -#line 313 "rcparse.y" -{ - define_bitmap (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 34: -#line 325 "rcparse.y" -{ - define_cursor (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 35: -#line 338 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-3].il; - dialog.y = yyvsp[-2].il; - dialog.width = yyvsp[-1].il; - dialog.height = yyvsp[0].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-4].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = NULL; - dialog.controls = NULL; - sub_res_info = yyvsp[-5].res_info; - style = 0; - } - break; -case 36: -#line 355 "rcparse.y" -{ - define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 37: -#line 363 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-3].il; - dialog.y = yyvsp[-2].il; - dialog.width = yyvsp[-1].il; - dialog.height = yyvsp[0].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-4].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = ((struct dialog_ex *) - res_alloc (sizeof (struct dialog_ex))); - memset (dialog.ex, 0, sizeof (struct dialog_ex)); - dialog.controls = NULL; - sub_res_info = yyvsp[-5].res_info; - style = 0; - } - break; -case 38: -#line 382 "rcparse.y" -{ - define_dialog (yyvsp[-12].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 39: -#line 390 "rcparse.y" -{ - memset (&dialog, 0, sizeof dialog); - dialog.x = yyvsp[-4].il; - dialog.y = yyvsp[-3].il; - dialog.width = yyvsp[-2].il; - dialog.height = yyvsp[-1].il; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; - dialog.exstyle = yyvsp[-5].il; - dialog.menu.named = 1; - dialog.class.named = 1; - dialog.font = NULL; - dialog.ex = ((struct dialog_ex *) - res_alloc (sizeof (struct dialog_ex))); - memset (dialog.ex, 0, sizeof (struct dialog_ex)); - dialog.ex->help = yyvsp[0].il; - dialog.controls = NULL; - sub_res_info = yyvsp[-6].res_info; - style = 0; - } - break; -case 40: -#line 410 "rcparse.y" -{ - define_dialog (yyvsp[-13].id, &sub_res_info, &dialog); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 41: -#line 420 "rcparse.y" -{ - yyval.il = 0; - } - break; -case 42: -#line 424 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 44: -#line 432 "rcparse.y" -{ - dialog.style |= WS_CAPTION; - style |= WS_CAPTION; - unicode_from_ascii ((int *) NULL, &dialog.caption, yyvsp[0].s); - } - break; -case 45: -#line 438 "rcparse.y" -{ - dialog.class = yyvsp[0].id; - } - break; -case 46: -#line 443 "rcparse.y" -{ - dialog.style = style; - } - break; -case 47: -#line 447 "rcparse.y" -{ - dialog.exstyle = yyvsp[0].il; - } - break; -case 48: -#line 451 "rcparse.y" -{ - res_string_to_id (& dialog.class, yyvsp[0].s); - } - break; -case 49: -#line 455 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-2].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[0].s); - if (dialog.ex != NULL) - { - dialog.ex->weight = 0; - dialog.ex->italic = 0; - dialog.ex->charset = 1; - } - } - break; -case 50: -#line 468 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-3].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-1].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[0].il; - dialog.ex->italic = 0; - dialog.ex->charset = 1; - } - } - break; -case 51: -#line 483 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-4].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-2].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[-1].il; - dialog.ex->italic = yyvsp[0].il; - dialog.ex->charset = 1; - } - } - break; -case 52: -#line 498 "rcparse.y" -{ - dialog.style |= DS_SETFONT; - style |= DS_SETFONT; - dialog.pointsize = yyvsp[-5].il; - unicode_from_ascii ((int *) NULL, &dialog.font, yyvsp[-3].s); - if (dialog.ex == NULL) - rcparse_warning (_("extended FONT requires DIALOGEX")); - else - { - dialog.ex->weight = yyvsp[-2].il; - dialog.ex->italic = yyvsp[-1].il; - dialog.ex->charset = yyvsp[0].il; - } - } - break; -case 53: -#line 513 "rcparse.y" -{ - dialog.menu = yyvsp[0].id; - } - break; -case 54: -#line 517 "rcparse.y" -{ - sub_res_info.characteristics = yyvsp[0].il; - } - break; -case 55: -#line 521 "rcparse.y" -{ - sub_res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 56: -#line 525 "rcparse.y" -{ - sub_res_info.version = yyvsp[0].il; - } - break; -case 58: -#line 533 "rcparse.y" -{ - struct dialog_control **pp; - - for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].dialog_control; - } - break; -case 59: -#line 544 "rcparse.y" -{ - default_style = BS_AUTO3STATE | WS_TABSTOP; - base_style = BS_AUTO3STATE; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 60: -#line 551 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 61: -#line 555 "rcparse.y" -{ - default_style = BS_AUTOCHECKBOX | WS_TABSTOP; - base_style = BS_AUTOCHECKBOX; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 62: -#line 562 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 63: -#line 566 "rcparse.y" -{ - default_style = BS_AUTORADIOBUTTON | WS_TABSTOP; - base_style = BS_AUTORADIOBUTTON; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 64: -#line 573 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 65: -#line 577 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - res_text_field = yyvsp[0].id; - } - break; -case 66: -#line 584 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("BEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "BEDIT"); - } - break; -case 67: -#line 591 "rcparse.y" -{ - default_style = BS_CHECKBOX | WS_TABSTOP; - base_style = BS_CHECKBOX | WS_TABSTOP; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 68: -#line 598 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 69: -#line 602 "rcparse.y" -{ - /* This is as per MSDN documentation. With some (???) - versions of MS rc.exe their is no default style. */ - default_style = CBS_SIMPLE | WS_TABSTOP; - base_style = 0; - class = CTL_COMBOBOX; - res_text_field = res_null_text; - } - break; -case 70: -#line 611 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 71: -#line 616 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-9].id, yyvsp[-8].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-7].il, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 72: -#line 627 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-10].id, yyvsp[-9].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-8].il, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning (_("help ID requires DIALOGEX")); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - break; -case 73: -#line 636 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-10].id, yyvsp[-9].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, 0, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning ("control data requires DIALOGEX"); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - yyval.dialog_control->class.named = 1; - unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-7].s); - } - break; -case 74: -#line 649 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-11].id, yyvsp[-10].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, 0, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning ("help ID requires DIALOGEX"); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - yyval.dialog_control->class.named = 1; - unicode_from_ascii (&yyval.dialog_control->class.u.n.length, &yyval.dialog_control->class.u.n.name, yyvsp[-8].s); - } - break; -case 75: -#line 659 "rcparse.y" -{ - default_style = SS_CENTER | WS_GROUP; - base_style = SS_CENTER; - class = CTL_STATIC; - res_text_field = yyvsp[0].id; - } - break; -case 76: -#line 666 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 77: -#line 670 "rcparse.y" -{ - default_style = BS_DEFPUSHBUTTON | WS_TABSTOP; - base_style = BS_DEFPUSHBUTTON | WS_TABSTOP; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 78: -#line 677 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 79: -#line 681 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - res_text_field = res_null_text; - } - break; -case 80: -#line 688 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 81: -#line 692 "rcparse.y" -{ - default_style = BS_GROUPBOX; - base_style = BS_GROUPBOX; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 82: -#line 699 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 83: -#line 703 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - res_text_field = yyvsp[0].id; - } - break; -case 84: -#line 710 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("IEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "HEDIT"); - } - break; -case 85: -#line 717 "rcparse.y" -{ - yyval.dialog_control = define_icon_control (yyvsp[-4].id, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-1].il, 0, 0, 0, yyvsp[0].rcdata_item, - dialog.ex); - } - break; -case 86: -#line 723 "rcparse.y" -{ - yyval.dialog_control = define_icon_control (yyvsp[-6].id, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, 0, 0, 0, yyvsp[0].rcdata_item, - dialog.ex); - } - break; -case 87: -#line 729 "rcparse.y" -{ - yyval.dialog_control = define_icon_control (yyvsp[-8].id, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, style, yyvsp[-1].il, 0, yyvsp[0].rcdata_item, - dialog.ex); - } - break; -case 88: -#line 735 "rcparse.y" -{ - yyval.dialog_control = define_icon_control (yyvsp[-9].id, yyvsp[-8].il, yyvsp[-7].il, yyvsp[-6].il, style, yyvsp[-2].il, yyvsp[-1].il, yyvsp[0].rcdata_item, - dialog.ex); - } - break; -case 89: -#line 740 "rcparse.y" -{ - default_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - base_style = ES_LEFT | WS_BORDER | WS_TABSTOP; - class = CTL_EDIT; - res_text_field = yyvsp[0].id; - } - break; -case 90: -#line 747 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - if (dialog.ex == NULL) - rcparse_warning (_("IEDIT requires DIALOGEX")); - res_string_to_id (&yyval.dialog_control->class, "IEDIT"); - } - break; -case 91: -#line 754 "rcparse.y" -{ - default_style = LBS_NOTIFY | WS_BORDER; - base_style = LBS_NOTIFY | WS_BORDER; - class = CTL_LISTBOX; - res_text_field = res_null_text; - } - break; -case 92: -#line 761 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 93: -#line 765 "rcparse.y" -{ - default_style = SS_LEFT | WS_GROUP; - base_style = SS_LEFT; - class = CTL_STATIC; - res_text_field = yyvsp[0].id; - } - break; -case 94: -#line 772 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 95: -#line 776 "rcparse.y" -{ - default_style = BS_PUSHBOX | WS_TABSTOP; - base_style = BS_PUSHBOX; - class = CTL_BUTTON; - } - break; -case 96: -#line 782 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 97: -#line 786 "rcparse.y" -{ - default_style = BS_PUSHBUTTON | WS_TABSTOP; - base_style = BS_PUSHBUTTON | WS_TABSTOP; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 98: -#line 793 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 99: -#line 797 "rcparse.y" -{ - default_style = BS_RADIOBUTTON | WS_TABSTOP; - base_style = BS_RADIOBUTTON; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 100: -#line 804 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 101: -#line 808 "rcparse.y" -{ - default_style = SS_RIGHT | WS_GROUP; - base_style = SS_RIGHT; - class = CTL_STATIC; - res_text_field = yyvsp[0].id; - } - break; -case 102: -#line 815 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 103: -#line 819 "rcparse.y" -{ - default_style = SBS_HORZ; - base_style = 0; - class = CTL_SCROLLBAR; - res_text_field = res_null_text; - } - break; -case 104: -#line 826 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 105: -#line 830 "rcparse.y" -{ - default_style = BS_3STATE | WS_TABSTOP; - base_style = BS_3STATE; - class = CTL_BUTTON; - res_text_field = yyvsp[0].id; - } - break; -case 106: -#line 837 "rcparse.y" -{ - yyval.dialog_control = yyvsp[0].dialog_control; - } - break; -case 107: -#line 842 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } - break; -case 108: -#line 844 "rcparse.y" -{ - yyval.dialog_control = define_control (yyvsp[-13].id, yyvsp[-12].il, yyvsp[-10].il, yyvsp[-8].il, yyvsp[-6].il, yyvsp[-4].il, CTL_BUTTON, - style, yyvsp[0].il); - } - break; -case 109: -#line 859 "rcparse.y" -{ - yyval.dialog_control = define_control (res_text_field, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-2].il, yyvsp[-1].il, class, - default_style | WS_CHILD | WS_VISIBLE, 0); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 110: -#line 871 "rcparse.y" -{ - yyval.dialog_control = define_control (res_text_field, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, class, style, yyvsp[-1].il); - if (yyvsp[0].rcdata_item != NULL) - { - if (dialog.ex == NULL) - rcparse_warning (_("control data requires DIALOGEX")); - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - } - break; -case 111: -#line 882 "rcparse.y" -{ - yyval.dialog_control = define_control (res_text_field, yyvsp[-8].il, yyvsp[-7].il, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, class, style, yyvsp[-2].il); - if (dialog.ex == NULL) - rcparse_warning (_("help ID requires DIALOGEX")); - yyval.dialog_control->help = yyvsp[-1].il; - yyval.dialog_control->data = yyvsp[0].rcdata_item; - } - break; -case 112: -#line 893 "rcparse.y" -{ - res_string_to_id (&yyval.id, ""); - } - break; -case 113: -#line 897 "rcparse.y" -{ - yyval.id.named = 0; - yyval.id.u.id = yyvsp[-1].il; - } - break; -case 114: -#line 902 "rcparse.y" -{ - res_string_to_id (&yyval.id, yyvsp[0].s); - } - break; -case 115: -#line 906 "rcparse.y" -{ - res_string_to_id (&yyval.id, yyvsp[-1].s); - } - break; -case 116: -#line 913 "rcparse.y" -{ - yyval.rcdata_item = NULL; - } - break; -case 117: -#line 917 "rcparse.y" -{ - yyval.rcdata_item = yyvsp[-1].rcdata.first; - } - break; -case 118: -#line 926 "rcparse.y" -{ style = WS_CHILD | WS_VISIBLE; } - break; -case 120: -#line 932 "rcparse.y" -{ style = SS_ICON | WS_CHILD | WS_VISIBLE; } - break; -case 122: -#line 938 "rcparse.y" -{ style = base_style | WS_CHILD | WS_VISIBLE; } - break; -case 124: -#line 946 "rcparse.y" -{ - define_font (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 125: -#line 958 "rcparse.y" -{ - define_icon (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 126: -#line 971 "rcparse.y" -{ - language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 127: -#line 980 "rcparse.y" -{ - define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 128: -#line 990 "rcparse.y" -{ - yyval.menuitem = NULL; - } - break; -case 129: -#line 994 "rcparse.y" -{ - if (yyvsp[-1].menuitem == NULL) - yyval.menuitem = yyvsp[0].menuitem; - else - { - struct menuitem **pp; - - for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].menuitem; - yyval.menuitem = yyvsp[-1].menuitem; - } - } - break; -case 130: -#line 1011 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-2].s, yyvsp[-1].il, yyvsp[0].is, 0, 0, NULL); - } - break; -case 131: -#line 1015 "rcparse.y" -{ - yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); - } - break; -case 132: -#line 1019 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-4].s, 0, yyvsp[-3].is, 0, 0, yyvsp[-1].menuitem); - } - break; -case 133: -#line 1026 "rcparse.y" -{ - yyval.is = 0; - } - break; -case 134: -#line 1030 "rcparse.y" -{ - yyval.is = yyvsp[-2].is | yyvsp[0].is; - } - break; -case 135: -#line 1034 "rcparse.y" -{ - yyval.is = yyvsp[-1].is | yyvsp[0].is; - } - break; -case 136: -#line 1041 "rcparse.y" -{ - yyval.is = MENUITEM_CHECKED; - } - break; -case 137: -#line 1045 "rcparse.y" -{ - yyval.is = MENUITEM_GRAYED; - } - break; -case 138: -#line 1049 "rcparse.y" -{ - yyval.is = MENUITEM_HELP; - } - break; -case 139: -#line 1053 "rcparse.y" -{ - yyval.is = MENUITEM_INACTIVE; - } - break; -case 140: -#line 1057 "rcparse.y" -{ - yyval.is = MENUITEM_MENUBARBREAK; - } - break; -case 141: -#line 1061 "rcparse.y" -{ - yyval.is = MENUITEM_MENUBREAK; - } - break; -case 142: -#line 1070 "rcparse.y" -{ - define_menu (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].menuitem); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 143: -#line 1080 "rcparse.y" -{ - yyval.menuitem = NULL; - } - break; -case 144: -#line 1084 "rcparse.y" -{ - if (yyvsp[-1].menuitem == NULL) - yyval.menuitem = yyvsp[0].menuitem; - else - { - struct menuitem **pp; - - for (pp = &yyvsp[-1].menuitem->next; *pp != NULL; pp = &(*pp)->next) - ; - *pp = yyvsp[0].menuitem; - yyval.menuitem = yyvsp[-1].menuitem; - } - } - break; -case 145: -#line 1101 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[0].s, 0, 0, 0, 0, NULL); - } - break; -case 146: -#line 1105 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-1].s, yyvsp[0].il, 0, 0, 0, NULL); - } - break; -case 147: -#line 1109 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-3].s, yyvsp[-2].il, yyvsp[-1].il, yyvsp[0].il, 0, NULL); - } - break; -case 148: -#line 1113 "rcparse.y" -{ - yyval.menuitem = define_menuitem (NULL, 0, 0, 0, 0, NULL); - } - break; -case 149: -#line 1117 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-3].s, 0, 0, 0, 0, yyvsp[-1].menuitem); - } - break; -case 150: -#line 1121 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-4].s, yyvsp[-3].il, 0, 0, 0, yyvsp[-1].menuitem); - } - break; -case 151: -#line 1125 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-5].s, yyvsp[-4].il, yyvsp[-3].il, 0, 0, yyvsp[-1].menuitem); - } - break; -case 152: -#line 1130 "rcparse.y" -{ - yyval.menuitem = define_menuitem (yyvsp[-7].s, yyvsp[-6].il, yyvsp[-5].il, yyvsp[-4].il, yyvsp[-3].il, yyvsp[-1].menuitem); - } - break; -case 153: -#line 1139 "rcparse.y" -{ - define_messagetable (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 154: -#line 1151 "rcparse.y" -{ - define_rcdata (yyvsp[-5].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 155: -#line 1158 "rcparse.y" -{ - define_rcdata_file (yyvsp[-3].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 156: -#line 1170 "rcparse.y" -{ - rcparse_rcdata (); - } - break; -case 157: -#line 1174 "rcparse.y" -{ - rcparse_normal (); - yyval.rcdata = yyvsp[0].rcdata; - } - break; -case 158: -#line 1182 "rcparse.y" -{ - yyval.rcdata.first = NULL; - yyval.rcdata.last = NULL; - } - break; -case 159: -#line 1187 "rcparse.y" -{ - yyval.rcdata = yyvsp[0].rcdata; - } - break; -case 160: -#line 1194 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); - yyval.rcdata.first = ri; - yyval.rcdata.last = ri; - } - break; -case 161: -#line 1202 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); - yyval.rcdata.first = ri; - yyval.rcdata.last = ri; - } - break; -case 162: -#line 1210 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_string (yyvsp[0].ss.s, yyvsp[0].ss.length); - yyval.rcdata.first = yyvsp[-2].rcdata.first; - yyvsp[-2].rcdata.last->next = ri; - yyval.rcdata.last = ri; - } - break; -case 163: -#line 1219 "rcparse.y" -{ - struct rcdata_item *ri; - - ri = define_rcdata_number (yyvsp[0].i.val, yyvsp[0].i.dword); - yyval.rcdata.first = yyvsp[-2].rcdata.first; - yyvsp[-2].rcdata.last->next = ri; - yyval.rcdata.last = ri; - } - break; -case 164: -#line 1233 "rcparse.y" -{ sub_res_info = yyvsp[-1].res_info; } - break; -case 167: -#line 1240 "rcparse.y" -{ - define_stringtable (&sub_res_info, yyvsp[-1].il, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 168: -#line 1247 "rcparse.y" -{ - define_stringtable (&sub_res_info, yyvsp[-2].il, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 169: -#line 1260 "rcparse.y" -{ - define_user_data (yyvsp[-5].id, yyvsp[-4].id, &yyvsp[-3].res_info, yyvsp[-1].rcdata.first); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 170: -#line 1267 "rcparse.y" -{ - define_user_file (yyvsp[-3].id, yyvsp[-2].id, &yyvsp[-1].res_info, yyvsp[0].s); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 171: -#line 1279 "rcparse.y" -{ - define_versioninfo (yyvsp[-5].id, language, yyvsp[-3].fixver, yyvsp[-1].verinfo); - if (yychar != YYEMPTY) - YYERROR; - rcparse_discard_strings (); - } - break; -case 172: -#line 1289 "rcparse.y" -{ - yyval.fixver = ((struct fixed_versioninfo *) - res_alloc (sizeof (struct fixed_versioninfo))); - memset (yyval.fixver, 0, sizeof (struct fixed_versioninfo)); - } - break; -case 173: -#line 1295 "rcparse.y" -{ - yyvsp[-5].fixver->file_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; - yyvsp[-5].fixver->file_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; - yyval.fixver = yyvsp[-5].fixver; - } - break; -case 174: -#line 1301 "rcparse.y" -{ - yyvsp[-5].fixver->product_version_ms = (yyvsp[-3].il << 16) | yyvsp[-2].il; - yyvsp[-5].fixver->product_version_ls = (yyvsp[-1].il << 16) | yyvsp[0].il; - yyval.fixver = yyvsp[-5].fixver; - } - break; -case 175: -#line 1307 "rcparse.y" -{ - yyvsp[-2].fixver->file_flags_mask = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 176: -#line 1312 "rcparse.y" -{ - yyvsp[-2].fixver->file_flags = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 177: -#line 1317 "rcparse.y" -{ - yyvsp[-2].fixver->file_os = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 178: -#line 1322 "rcparse.y" -{ - yyvsp[-2].fixver->file_type = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 179: -#line 1327 "rcparse.y" -{ - yyvsp[-2].fixver->file_subtype = yyvsp[0].il; - yyval.fixver = yyvsp[-2].fixver; - } - break; -case 180: -#line 1341 "rcparse.y" -{ - yyval.verinfo = NULL; - } - break; -case 181: -#line 1345 "rcparse.y" -{ - yyval.verinfo = append_ver_stringfileinfo (yyvsp[-7].verinfo, yyvsp[-4].s, yyvsp[-2].verstring); - } - break; -case 182: -#line 1349 "rcparse.y" -{ - yyval.verinfo = append_ver_varfileinfo (yyvsp[-6].verinfo, yyvsp[-2].s, yyvsp[-1].vervar); - } - break; -case 183: -#line 1356 "rcparse.y" -{ - yyval.verstring = NULL; - } - break; -case 184: -#line 1360 "rcparse.y" -{ - yyval.verstring = append_verval (yyvsp[-4].verstring, yyvsp[-2].s, yyvsp[0].s); - } - break; -case 185: -#line 1367 "rcparse.y" -{ - yyval.vervar = NULL; - } - break; -case 186: -#line 1371 "rcparse.y" -{ - yyval.vervar = append_vertrans (yyvsp[-2].vervar, yyvsp[-1].il, yyvsp[0].il); - } - break; -case 187: -#line 1380 "rcparse.y" -{ - yyval.id.named = 0; - yyval.id.u.id = yyvsp[0].il; - } - break; -case 188: -#line 1385 "rcparse.y" -{ - char *copy, *s; - - /* It seems that resource ID's are forced to upper case. */ - copy = xstrdup (yyvsp[0].s); - for (s = copy; *s != '\0'; s++) - *s = TOUPPER (*s); - res_string_to_id (&yyval.id, copy); - free (copy); - } - break; -case 189: -#line 1401 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 190: -#line 1405 "rcparse.y" -{ - yyval.s = yyvsp[-1].s; - } - break; -case 191: -#line 1409 "rcparse.y" -{ - yyval.s = yyvsp[-1].s; - } - break; -case 192: -#line 1417 "rcparse.y" -{ - yyval.id.named = 0; - yyval.id.u.id = yyvsp[-1].il; - } - break; -case 193: -#line 1422 "rcparse.y" -{ - char *copy, *s; - - /* It seems that resource ID's are forced to upper case. */ - copy = xstrdup (yyvsp[0].s); - for (s = copy; *s != '\0'; s++) - *s = TOUPPER (*s); - res_string_to_id (&yyval.id, copy); - free (copy); - } - break; -case 194: -#line 1439 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - /* FIXME: Is this the right default? */ - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; - } - break; -case 195: -#line 1446 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 196: -#line 1452 "rcparse.y" -{ - yyval.res_info = yyvsp[-2].res_info; - yyval.res_info.characteristics = yyvsp[0].il; - } - break; -case 197: -#line 1457 "rcparse.y" -{ - yyval.res_info = yyvsp[-3].res_info; - yyval.res_info.language = yyvsp[-1].il | (yyvsp[0].il << SUBLANG_SHIFT); - } - break; -case 198: -#line 1462 "rcparse.y" -{ - yyval.res_info = yyvsp[-2].res_info; - yyval.res_info.version = yyvsp[0].il; - } - break; -case 199: -#line 1472 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE; - } - break; -case 200: -#line 1478 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 201: -#line 1489 "rcparse.y" -{ - memset (&yyval.res_info, 0, sizeof (struct res_res_info)); - yyval.res_info.language = language; - yyval.res_info.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE; - } - break; -case 202: -#line 1495 "rcparse.y" -{ - yyval.res_info = yyvsp[-1].res_info; - yyval.res_info.memflags |= yyvsp[0].memflags.on; - yyval.res_info.memflags &=~ yyvsp[0].memflags.off; - } - break; -case 203: -#line 1507 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_MOVEABLE; - yyval.memflags.off = 0; - } - break; -case 204: -#line 1512 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_MOVEABLE; - } - break; -case 205: -#line 1517 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_PURE; - yyval.memflags.off = 0; - } - break; -case 206: -#line 1522 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_PURE; - } - break; -case 207: -#line 1527 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_PRELOAD; - yyval.memflags.off = 0; - } - break; -case 208: -#line 1532 "rcparse.y" -{ - yyval.memflags.on = 0; - yyval.memflags.off = MEMFLAG_PRELOAD; - } - break; -case 209: -#line 1537 "rcparse.y" -{ - yyval.memflags.on = MEMFLAG_DISCARDABLE; - yyval.memflags.off = 0; - } - break; -case 210: -#line 1547 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 211: -#line 1551 "rcparse.y" -{ - yyval.s = yyvsp[0].s; - } - break; -case 212: -#line 1568 "rcparse.y" -{ - style |= yyvsp[0].il; - } - break; -case 213: -#line 1572 "rcparse.y" -{ - style &=~ yyvsp[0].il; - } - break; -case 214: -#line 1576 "rcparse.y" -{ - style |= yyvsp[0].il; - } - break; -case 215: -#line 1580 "rcparse.y" -{ - style &=~ yyvsp[0].il; - } - break; -case 216: -#line 1587 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 217: -#line 1591 "rcparse.y" -{ - yyval.il = yyvsp[-1].il; - } - break; -case 218: -#line 1600 "rcparse.y" -{ - yyval.il = 0; - } - break; -case 219: -#line 1604 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 220: -#line 1613 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 221: -#line 1622 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 222: -#line 1631 "rcparse.y" -{ - yyval.i = yyvsp[0].i; - } - break; -case 223: -#line 1635 "rcparse.y" -{ - yyval.i = yyvsp[-1].i; - } - break; -case 224: -#line 1639 "rcparse.y" -{ - yyval.i.val = ~ yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 225: -#line 1644 "rcparse.y" -{ - yyval.i.val = - yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 226: -#line 1649 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 227: -#line 1654 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 228: -#line 1659 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 229: -#line 1664 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 230: -#line 1669 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 231: -#line 1674 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 232: -#line 1679 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 233: -#line 1684 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 234: -#line 1695 "rcparse.y" -{ - yyval.il = yyvsp[0].il; - } - break; -case 235: -#line 1704 "rcparse.y" -{ - yyval.il = yyvsp[0].i.val; - } - break; -case 236: -#line 1715 "rcparse.y" -{ - yyval.i = yyvsp[0].i; - } - break; -case 237: -#line 1719 "rcparse.y" -{ - yyval.i = yyvsp[-1].i; - } - break; -case 238: -#line 1723 "rcparse.y" -{ - yyval.i.val = ~ yyvsp[0].i.val; - yyval.i.dword = yyvsp[0].i.dword; - } - break; -case 239: -#line 1728 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val * yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 240: -#line 1733 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val / yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 241: -#line 1738 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val % yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 242: -#line 1743 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val + yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 243: -#line 1748 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val - yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 244: -#line 1753 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val & yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 245: -#line 1758 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val ^ yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -case 246: -#line 1763 "rcparse.y" -{ - yyval.i.val = yyvsp[-2].i.val | yyvsp[0].i.val; - yyval.i.dword = yyvsp[-2].i.dword || yyvsp[0].i.dword; - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 1769 "rcparse.y" - - -/* Set the language from the command line. */ - -void -rcparse_set_language (int lang) -{ - language = lang; -} diff --git a/binutils/rcparse.h b/binutils/rcparse.h deleted file mode 100644 index 3ad5fd3e0b9..00000000000 --- a/binutils/rcparse.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union -{ - struct accelerator acc; - struct accelerator *pacc; - struct dialog_control *dialog_control; - struct menuitem *menuitem; - struct - { - struct rcdata_item *first; - struct rcdata_item *last; - } rcdata; - struct rcdata_item *rcdata_item; - struct stringtable_data *stringtable; - struct fixed_versioninfo *fixver; - struct ver_info *verinfo; - struct ver_stringinfo *verstring; - struct ver_varinfo *vervar; - struct res_id id; - struct res_res_info res_info; - struct - { - unsigned short on; - unsigned short off; - } memflags; - struct - { - unsigned long val; - /* Nonzero if this number was explicitly specified as long. */ - int dword; - } i; - unsigned long il; - unsigned short is; - const char *s; - struct - { - unsigned long length; - const char *s; - } ss; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define BEG 257 -# define END 258 -# define ACCELERATORS 259 -# define VIRTKEY 260 -# define ASCII 261 -# define NOINVERT 262 -# define SHIFT 263 -# define CONTROL 264 -# define ALT 265 -# define BITMAP 266 -# define CURSOR 267 -# define DIALOG 268 -# define DIALOGEX 269 -# define EXSTYLE 270 -# define CAPTION 271 -# define CLASS 272 -# define STYLE 273 -# define AUTO3STATE 274 -# define AUTOCHECKBOX 275 -# define AUTORADIOBUTTON 276 -# define CHECKBOX 277 -# define COMBOBOX 278 -# define CTEXT 279 -# define DEFPUSHBUTTON 280 -# define EDITTEXT 281 -# define GROUPBOX 282 -# define LISTBOX 283 -# define LTEXT 284 -# define PUSHBOX 285 -# define PUSHBUTTON 286 -# define RADIOBUTTON 287 -# define RTEXT 288 -# define SCROLLBAR 289 -# define STATE3 290 -# define USERBUTTON 291 -# define BEDIT 292 -# define HEDIT 293 -# define IEDIT 294 -# define FONT 295 -# define ICON 296 -# define LANGUAGE 297 -# define CHARACTERISTICS 298 -# define VERSIONK 299 -# define MENU 300 -# define MENUEX 301 -# define MENUITEM 302 -# define SEPARATOR 303 -# define POPUP 304 -# define CHECKED 305 -# define GRAYED 306 -# define HELP 307 -# define INACTIVE 308 -# define MENUBARBREAK 309 -# define MENUBREAK 310 -# define MESSAGETABLE 311 -# define RCDATA 312 -# define STRINGTABLE 313 -# define VERSIONINFO 314 -# define FILEVERSION 315 -# define PRODUCTVERSION 316 -# define FILEFLAGSMASK 317 -# define FILEFLAGS 318 -# define FILEOS 319 -# define FILETYPE 320 -# define FILESUBTYPE 321 -# define BLOCKSTRINGFILEINFO 322 -# define BLOCKVARFILEINFO 323 -# define VALUE 324 -# define BLOCK 325 -# define MOVEABLE 326 -# define FIXED 327 -# define PURE 328 -# define IMPURE 329 -# define PRELOAD 330 -# define LOADONCALL 331 -# define DISCARDABLE 332 -# define NOT 333 -# define QUOTEDSTRING 334 -# define STRING 335 -# define NUMBER 336 -# define SIZEDSTRING 337 -# define IGNORED_TOKEN 338 -# define NEG 339 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/binutils/sysinfo.c b/binutils/sysinfo.c deleted file mode 100644 index 75b1687389a..00000000000 --- a/binutils/sysinfo.c +++ /dev/null @@ -1,1518 +0,0 @@ -/* A Bison parser, made from sysinfo.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define COND 257 -# define REPEAT 258 -# define TYPE 259 -# define NAME 260 -# define NUMBER 261 -# define UNIT 262 - -#line 20 "sysinfo.y" - -#include -#include - -extern char *word; -extern char writecode; -extern int number; -extern int unit; -char nice_name[1000]; -char *it; -int sofar; -int width; -int code; -char * repeat; -char *oldrepeat; -char *name; -int rdepth; -char *loop [] = {"","n","m","/*BAD*/"}; -char *names[] = {" ","[n]","[n][m]"}; -char *pnames[]= {"","*","**"}; - -static int yyerror (char *s); -extern int yylex (void); - -#line 46 "sysinfo.y" -#ifndef YYSTYPE -typedef union { - int i; - char *s; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 55 -#define YYFLAG -32768 -#define YYNTBASE 11 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 262 ? yytranslate[x] : 29) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, - 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 7, - 8, 9, 10 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 1, 4, 7, 8, 9, 16, 19, 22, - 25, 26, 27, 34, 35, 42, 43, 54, 56, 57, - 61, 64, 68, 69, 70, 74, 75 -}; -static const short yyrhs[] = -{ - -1, 12, 13, 0, 14, 13, 0, 0, 0, 5, - 8, 9, 15, 16, 6, 0, 21, 16, 0, 19, - 16, 0, 17, 16, 0, 0, 0, 5, 4, 8, - 18, 16, 6, 0, 0, 5, 3, 8, 20, 16, - 6, 0, 0, 5, 24, 5, 23, 25, 6, 26, - 22, 27, 6, 0, 7, 0, 0, 5, 8, 6, - 0, 9, 10, 0, 5, 8, 6, 0, 0, 0, - 5, 28, 6, 0, 0, 28, 5, 8, 8, 6, - 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 60, 60, 98, 99, 102, 102, 180, 182, 183, - 184, 187, 187, 234, 234, 260, 260, 368, 370, 373, - 378, 384, 386, 389, 390, 392, 393 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "COND", "REPEAT", "'('", "')'", "TYPE", - "NAME", "NUMBER", "UNIT", "top", "@1", "it_list", "it", "@2", - "it_field_list", "repeat_it_field", "@3", "cond_it_field", "@4", - "it_field", "@5", "attr_type", "attr_desc", "attr_size", "attr_id", - "enums", "enum_list", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 12, 11, 13, 13, 15, 14, 16, 16, 16, - 16, 18, 17, 20, 19, 22, 21, 23, 23, 24, - 25, 26, 26, 27, 27, 28, 28 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 0, 2, 2, 0, 0, 6, 2, 2, 2, - 0, 0, 6, 0, 6, 0, 10, 1, 0, 3, - 2, 3, 0, 0, 3, 0, 5 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 1, 4, 0, 2, 4, 0, 3, 5, 10, 0, - 0, 10, 10, 10, 0, 0, 0, 0, 6, 9, - 8, 7, 13, 11, 0, 18, 10, 10, 19, 17, - 0, 0, 0, 0, 0, 14, 12, 20, 22, 0, - 15, 0, 23, 21, 25, 0, 0, 16, 0, 24, - 0, 0, 26, 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 53, 1, 3, 4, 8, 10, 11, 27, 12, 26, - 13, 42, 30, 17, 34, 40, 45, 46 -}; - -static const short yypact[] = -{ - -32768, 3, 2,-32768, 3, 4,-32768,-32768, 6, 0, - 8, 6, 6, 6, 9, 10, 11, 7,-32768,-32768, - -32768,-32768,-32768,-32768, 14, 15, 6, 6,-32768,-32768, - 12, 17, 18, -1, 19,-32768,-32768,-32768, 21, 20, - -32768, 23, 22,-32768,-32768, 24, 1,-32768, 25,-32768, - 26, 29,-32768, 31, 32,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768, 33,-32768,-32768, -11,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768 -}; - - -#define YYLAST 37 - - -static const short yytable[] = -{ - 19, 20, 21, 14, 15, 16, 48, 49, 2, 37, - 5, 9, 25, 7, 18, 31, 32, 22, 23, 24, - 28, 33, 29, 35, 36, 38, 39, 44, 41, 43, - 47, 54, 55, 50, 51, 52, 0, 6 -}; - -static const short yycheck[] = -{ - 11, 12, 13, 3, 4, 5, 5, 6, 5, 10, - 8, 5, 5, 9, 6, 26, 27, 8, 8, 8, - 6, 9, 7, 6, 6, 6, 5, 5, 8, 6, - 6, 0, 0, 8, 8, 6, -1, 4 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 1: -#line 60 "sysinfo.y" -{ - switch (writecode) - { - case 'i': - printf("#ifdef SYSROFF_SWAP_IN\n"); - break; - case 'p': - printf("#ifdef SYSROFF_p\n"); - break; - case 'd': - break; - case 'g': - printf("#ifdef SYSROFF_SWAP_OUT\n"); - break; - case 'c': - printf("#ifdef SYSROFF_PRINT\n"); - printf("#include \n"); - printf("#include \n"); - printf("#include \n"); - break; - } - } - break; -case 2: -#line 82 "sysinfo.y" -{ - switch (writecode) { - case 'i': - case 'p': - case 'g': - case 'c': - printf("#endif\n"); - break; - case 'd': - break; - } -} - break; -case 5: -#line 104 "sysinfo.y" -{ - it = yyvsp[-1].s; code = yyvsp[0].i; - switch (writecode) - { - case 'd': - printf("\n\n\n#define IT_%s_CODE 0x%x\n", it,code); - printf("struct IT_%s;\n", it); - printf("extern void sysroff_swap_%s_in PARAMS ((struct IT_%s *));\n", - yyvsp[-1].s, it); - printf("extern void sysroff_swap_%s_out PARAMS ((FILE *, struct IT_%s *));\n", - yyvsp[-1].s, it); - printf("extern void sysroff_print_%s_out PARAMS ((struct IT_%s *));\n", - yyvsp[-1].s, it); - printf("struct IT_%s { \n", it); - break; - case 'i': - printf("void sysroff_swap_%s_in(ptr)\n",yyvsp[-1].s); - printf("struct IT_%s *ptr;\n", it); - printf("{\n"); - printf("unsigned char raw[255];\n"); - printf("\tint idx = 0 ;\n"); - printf("\tint size;\n"); - printf("memset(raw,0,255);\n"); - printf("memset(ptr,0,sizeof(*ptr));\n"); - printf("size = fillup(raw);\n"); - break; - case 'g': - printf("void sysroff_swap_%s_out(file,ptr)\n",yyvsp[-1].s); - printf("FILE * file;\n"); - printf("struct IT_%s *ptr;\n", it); - printf("{\n"); - printf("\tunsigned char raw[255];\n"); - printf("\tint idx = 16 ;\n"); - printf("\tmemset (raw, 0, 255);\n"); - printf("\tcode = IT_%s_CODE;\n", it); - break; - case 'o': - printf("void sysroff_swap_%s_out(abfd,ptr)\n",yyvsp[-1].s); - printf("bfd * abfd;\n"); - printf("struct IT_%s *ptr;\n",it); - printf("{\n"); - printf("int idx = 0 ;\n"); - break; - case 'c': - printf("void sysroff_print_%s_out(ptr)\n",yyvsp[-1].s); - printf("struct IT_%s *ptr;\n", it); - printf("{\n"); - printf("itheader(\"%s\", IT_%s_CODE);\n",yyvsp[-1].s,yyvsp[-1].s); - break; - - case 't': - break; - } - - } - break; -case 6: -#line 161 "sysinfo.y" -{ - switch (writecode) { - case 'd': - printf("};\n"); - break; - case 'g': - printf("\tchecksum(file,raw, idx, IT_%s_CODE);\n", it); - - case 'i': - - case 'o': - case 'c': - printf("}\n"); - } -} - break; -case 11: -#line 188 "sysinfo.y" -{ - rdepth++; - switch (writecode) - { - case 'c': - if (rdepth==1) - printf("\tprintf(\"repeat %%d\\n\", %s);\n",yyvsp[0].s); - if (rdepth==2) - printf("\tprintf(\"repeat %%d\\n\", %s[n]);\n",yyvsp[0].s); - case 'i': - case 'g': - case 'o': - - if (rdepth==1) - { - printf("\t{ int n; for (n = 0; n < %s; n++) {\n", yyvsp[0].s); - } - if (rdepth == 2) { - printf("\t{ int m; for (m = 0; m < %s[n]; m++) {\n", yyvsp[0].s); - } - - break; - } - - oldrepeat = repeat; - repeat = yyvsp[0].s; - } - break; -case 12: -#line 218 "sysinfo.y" -{ - repeat = oldrepeat; - oldrepeat =0; - rdepth--; - switch (writecode) - { - case 'i': - case 'g': - case 'o': - case 'c': - printf("\t}}\n"); - } - } - break; -case 13: -#line 235 "sysinfo.y" -{ - switch (writecode) - { - case 'i': - case 'g': - case 'o': - case 'c': - printf("\tif (%s) {\n", yyvsp[0].s); - break; - } - } - break; -case 14: -#line 248 "sysinfo.y" -{ - switch (writecode) - { - case 'i': - case 'g': - case 'o': - case 'c': - printf("\t}\n"); - } - } - break; -case 15: -#line 262 "sysinfo.y" -{name = yyvsp[0].s; } - break; -case 16: -#line 264 "sysinfo.y" -{ - char *desc = yyvsp[-8].s; - char *type = yyvsp[-6].s; - int size = yyvsp[-5].i; - char *id = yyvsp[-3].s; -char *p = names[rdepth]; -char *ptr = pnames[rdepth]; - switch (writecode) - { - case 'g': - if (size % 8) - { - - printf("\twriteBITS(ptr->%s%s,raw,&idx,%d);\n", - id, - names[rdepth], size); - - } - else { - printf("\twrite%s(ptr->%s%s,raw,&idx,%d,file);\n", - type, - id, - names[rdepth],size/8); - } - break; - case 'i': - { - - if (rdepth >= 1) - - { - printf("if (!ptr->%s) ptr->%s = (%s*)xcalloc(%s, sizeof(ptr->%s[0]));\n", - id, - id, - type, - repeat, - id); - } - - if (rdepth == 2) - { - printf("if (!ptr->%s[n]) ptr->%s[n] = (%s**)xcalloc(%s[n], sizeof(ptr->%s[n][0]));\n", - id, - id, - type, - repeat, - id); - } - - } - - if (size % 8) - { - printf("\tptr->%s%s = getBITS(raw,&idx, %d,size);\n", - id, - names[rdepth], - size); - } - else { - printf("\tptr->%s%s = get%s(raw,&idx, %d,size);\n", - id, - names[rdepth], - type, - size/8); - } - break; - case 'o': - printf("\tput%s(raw,%d,%d,&idx,ptr->%s%s);\n", type,size/8,size%8,id,names[rdepth]); - break; - case 'd': - if (repeat) - printf("\t/* repeat %s */\n", repeat); - - if (type[0] == 'I') { - printf("\tint %s%s; \t/* %s */\n",ptr,id, desc); - } - else if (type[0] =='C') { - printf("\tchar %s*%s;\t /* %s */\n",ptr,id, desc); - } - else { - printf("\tbarray %s%s;\t /* %s */\n",ptr,id, desc); - } - break; - case 'c': - printf("tabout();\n"); - printf("\tprintf(\"/*%-30s*/ ptr->%s = \");\n", desc, id); - - if (type[0] == 'I') - printf("\tprintf(\"%%d\\n\",ptr->%s%s);\n", id,p); - else if (type[0] == 'C') - printf("\tprintf(\"%%s\\n\",ptr->%s%s);\n", id,p); - - else if (type[0] == 'B') - { - printf("\tpbarray(&ptr->%s%s);\n", id,p); - } - else abort(); - break; - } - } - break; -case 17: -#line 369 "sysinfo.y" -{ yyval.s = yyvsp[0].s; } - break; -case 18: -#line 370 "sysinfo.y" -{ yyval.s = "INT";} - break; -case 19: -#line 375 "sysinfo.y" -{ yyval.s = yyvsp[-1].s; } - break; -case 20: -#line 380 "sysinfo.y" -{ yyval.i = yyvsp[-1].i * yyvsp[0].i; } - break; -case 21: -#line 385 "sysinfo.y" -{ yyval.s = yyvsp[-1].s; } - break; -case 22: -#line 386 "sysinfo.y" -{ yyval.s = "dummy";} - break; -case 26: -#line 394 "sysinfo.y" -{ - switch (writecode) - { - case 'd': - printf("#define %s %s\n", yyvsp[-2].s,yyvsp[-1].s); - break; - case 'c': - printf("if (ptr->%s%s == %s) { tabout(); printf(\"%s\\n\");}\n", name, names[rdepth],yyvsp[-1].s,yyvsp[-2].s); - } - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 409 "sysinfo.y" - -/* four modes - - -d write structure definitions for sysroff in host format - -i write functions to swap into sysroff format in - -o write functions to swap into sysroff format out - -c write code to print info in human form */ - -int yydebug; -char writecode; - -int -main (int ac, char **av) -{ - expandargv (&ac, &av); - - yydebug=0; - if (ac > 1) - writecode = av[1][1]; -if (writecode == 'd') - { - printf("typedef struct { unsigned char *data; int len; } barray; \n"); - printf("typedef int INT;\n"); - printf("typedef char * CHARS;\n"); - - } - yyparse(); -return 0; -} - -static int -yyerror (char *s) -{ - fprintf(stderr, "%s\n" , s); - return 0; -} diff --git a/binutils/sysinfo.h b/binutils/sysinfo.h deleted file mode 100644 index 6030f15c6c7..00000000000 --- a/binutils/sysinfo.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union { - int i; - char *s; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define COND 257 -# define REPEAT 258 -# define TYPE 259 -# define NAME 260 -# define NUMBER 261 -# define UNIT 262 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/binutils/syslex.c b/binutils/syslex.c deleted file mode 100644 index a1ef562e42b..00000000000 --- a/binutils/syslex.c +++ /dev/null @@ -1,1732 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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 25 -#define YY_END_OF_BUFFER 26 -static yyconst short int yy_accept[81] = - { 0, - 0, 0, 26, 25, 7, 8, 5, 25, 1, 2, - 11, 11, 6, 3, 4, 25, 25, 25, 25, 25, - 25, 25, 0, 9, 11, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, - 13, 0, 0, 0, 0, 16, 0, 0, 0, 0, - 0, 12, 15, 0, 23, 0, 0, 0, 0, 0, - 0, 14, 18, 0, 0, 0, 0, 0, 17, 0, - 24, 0, 0, 0, 20, 22, 0, 21, 19, 0 - } ; - -static yyconst int yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 5, 1, 1, 1, 1, 1, 6, - 7, 1, 1, 1, 1, 1, 1, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 1, 10, 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, - 11, 1, 12, 1, 1, 1, 13, 14, 15, 16, - - 17, 18, 19, 20, 21, 1, 1, 22, 1, 23, - 24, 25, 1, 26, 27, 28, 29, 30, 1, 31, - 32, 33, 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[34] = - { 0, - 1, 1, 2, 1, 1, 1, 1, 3, 3, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1 - } ; - -static yyconst short int yy_base[84] = - { 0, - 0, 0, 100, 101, 101, 101, 101, 94, 101, 101, - 26, 28, 0, 101, 101, 82, 26, 18, 74, 79, - 78, 81, 88, 101, 32, 0, 0, 76, 65, 62, - 61, 75, 20, 59, 61, 66, 58, 0, 57, 56, - 54, 63, 53, 62, 54, 101, 59, 48, 53, 46, - 59, 101, 44, 43, 101, 41, 55, 46, 53, 44, - 31, 101, 101, 39, 27, 21, 39, 19, 101, 35, - 101, 33, 26, 29, 101, 101, 28, 101, 101, 101, - 58, 61, 41 - } ; - -static yyconst short int yy_def[84] = - { 0, - 80, 1, 80, 80, 80, 80, 80, 81, 80, 80, - 80, 80, 82, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 81, 80, 80, 83, 82, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 83, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, - 80, 80, 80 - } ; - -static yyconst short int yy_nxt[135] = - { 0, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 4, 4, 4, 4, 4, - 19, 4, 4, 4, 4, 20, 21, 4, 4, 22, - 4, 4, 4, 25, 25, 25, 25, 32, 29, 25, - 25, 33, 44, 38, 79, 78, 30, 77, 45, 76, - 75, 74, 73, 72, 71, 70, 26, 31, 23, 23, - 23, 27, 69, 27, 68, 67, 66, 65, 64, 63, - 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, - 52, 51, 50, 49, 48, 47, 46, 43, 42, 41, - 40, 39, 24, 37, 36, 35, 34, 28, 24, 80, - - 3, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80 - } ; - -static yyconst short int yy_chk[135] = - { 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, 11, 11, 12, 12, 18, 17, 25, - 25, 18, 33, 83, 77, 74, 17, 73, 33, 72, - 70, 68, 67, 66, 65, 64, 11, 17, 81, 81, - 81, 82, 61, 82, 60, 59, 58, 57, 56, 54, - 53, 51, 50, 49, 48, 47, 45, 44, 43, 42, - 41, 40, 39, 37, 36, 35, 34, 32, 31, 30, - 29, 28, 23, 22, 21, 20, 19, 16, 8, 3, - - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80 - } ; - -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 "syslex.l" -#define INITIAL 0 -#line 2 "syslex.l" -/* Copyright 2001, 2003, 2005 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. */ - -#include "config.h" -#ifdef HAVE_STRING_H -#include -#else -#ifdef HAVE_STRINGS_H -#include -#endif -#endif -#include "sysinfo.h" -char *word; -int number; -int unit; - -#define YY_NO_UNPUT - -#ifndef yywrap -static int yywrap (void) { return 1; } -#endif - -extern int yylex (void); -#line 460 "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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 "syslex.l" - -#line 624 "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 >= 81 ) - 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] != 101 ); - -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 43 "syslex.l" -{ return '(';} - YY_BREAK -case 2: -YY_RULE_SETUP -#line 44 "syslex.l" -{ return ')';} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 45 "syslex.l" -{ return '[';} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 46 "syslex.l" -{ return ']';} - YY_BREAK -case 5: -YY_RULE_SETUP -#line 47 "syslex.l" -{ ; } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 48 "syslex.l" -{ ; } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 49 "syslex.l" -{ ; } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 50 "syslex.l" -{ ; } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 51 "syslex.l" -{ - yylval.s = malloc (yyleng - 1); - memcpy (yylval.s, yytext + 1, yyleng - 2); - yylval.s[yyleng - 2] = '\0'; - return NAME; - } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 58 "syslex.l" -{ - yylval.i = strtol(yytext,0,16); - return NUMBER; - } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 63 "syslex.l" -{ - yylval.i = atoi(yytext); - return NUMBER; - } - YY_BREAK -case 12: -YY_RULE_SETUP -#line 69 "syslex.l" -{ yylval.i =1 ;return UNIT;} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 70 "syslex.l" -{ yylval.i = 1; return UNIT;} - YY_BREAK -case 14: -YY_RULE_SETUP -#line 71 "syslex.l" -{ yylval.i= 8; return UNIT;} - YY_BREAK -case 15: -YY_RULE_SETUP -#line 72 "syslex.l" -{ yylval.i = 8; return UNIT;} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 74 "syslex.l" -{ yylval.s = "INT"; return TYPE;} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 75 "syslex.l" -{ yylval.s = "BARRAY"; return TYPE;} - YY_BREAK -case 18: -YY_RULE_SETUP -#line 76 "syslex.l" -{ yylval.s = "CHARS"; return TYPE;} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 77 "syslex.l" -{ yylval.i = 0; return NUMBER;} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 78 "syslex.l" -{ yylval.i = -4; return NUMBER;} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 79 "syslex.l" -{ yylval.i = -2; return NUMBER; } - YY_BREAK -case 22: -YY_RULE_SETUP -#line 80 "syslex.l" -{ yylval.i = -1; return NUMBER; } - YY_BREAK -case 23: -YY_RULE_SETUP -#line 81 "syslex.l" -{ return COND;} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 82 "syslex.l" -{ return REPEAT;} - YY_BREAK -case 25: -YY_RULE_SETUP -#line 83 "syslex.l" -ECHO; - YY_BREAK -#line 843 "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 >= 81 ) - 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 >= 81 ) - 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 == 80); - - 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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 83 "syslex.l" diff --git a/gas/itbl-lex.c b/gas/itbl-lex.c deleted file mode 100644 index 2381aea641a..00000000000 --- a/gas/itbl-lex.c +++ /dev/null @@ -1,1713 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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 15 -#define YY_END_OF_BUFFER 16 -static yyconst short int yy_accept[60] = - { 0, - 0, 0, 16, 14, 13, 12, 11, 8, 8, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 8, 0, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 7, 9, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 5, 1, 2, 3, 10, 6, 10, 4, 0 - } ; - -static yyconst int yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 1, 5, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 1, 8, 1, - 1, 1, 1, 1, 9, 10, 11, 12, 13, 10, - 14, 15, 16, 15, 15, 15, 17, 18, 15, 15, - 15, 19, 20, 15, 15, 15, 15, 15, 15, 15, - 1, 1, 1, 1, 15, 1, 21, 10, 22, 23, - - 24, 10, 25, 15, 26, 15, 15, 15, 27, 28, - 15, 29, 15, 30, 31, 15, 15, 15, 15, 32, - 15, 15, 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[33] = - { 0, - 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3 - } ; - -static yyconst short int yy_base[62] = - { 0, - 0, 0, 83, 84, 84, 84, 84, 27, 29, 70, - 0, 62, 61, 60, 20, 55, 47, 46, 45, 12, - 35, 37, 0, 0, 62, 60, 59, 58, 53, 49, - 45, 43, 42, 41, 37, 32, 0, 0, 43, 44, - 43, 42, 42, 36, 23, 27, 26, 25, 25, 20, - 0, 0, 0, 0, 35, 0, 23, 0, 84, 58, - 43 - } ; - -static yyconst short int yy_def[62] = - { 0, - 59, 1, 59, 59, 59, 59, 59, 59, 59, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 59, 61, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 61, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 0, 59, - 59 - } ; - -static yyconst short int yy_nxt[117] = - { 0, - 4, 5, 6, 5, 7, 8, 9, 7, 10, 11, - 12, 13, 11, 14, 11, 15, 11, 11, 11, 11, - 16, 17, 18, 11, 19, 20, 11, 11, 21, 11, - 11, 11, 22, 22, 22, 22, 29, 30, 35, 36, - 37, 37, 22, 22, 38, 58, 58, 56, 57, 54, - 53, 52, 51, 56, 55, 54, 53, 52, 23, 24, - 24, 51, 50, 49, 48, 47, 46, 45, 44, 43, - 42, 41, 40, 39, 34, 33, 32, 31, 28, 27, - 26, 25, 59, 3, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59 - } ; - -static yyconst short int yy_chk[117] = - { 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, 8, 8, 9, 9, 15, 15, 20, 20, - 21, 21, 22, 22, 61, 57, 55, 50, 49, 48, - 47, 46, 45, 44, 43, 42, 41, 40, 8, 60, - 60, 39, 36, 35, 34, 33, 32, 31, 30, 29, - 28, 27, 26, 25, 19, 18, 17, 16, 14, 13, - 12, 10, 3, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59 - } ; - -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 "itbl-lex.l" -#define INITIAL 0 -/* itbl-lex.l - Copyright 1997, 1998, 2001, 2002, 2005 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS 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. - - GAS 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 GAS; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ -#line 22 "itbl-lex.l" -#include -#include -#include - -#include "itbl-lex.h" -#include - -#ifdef DEBUG -#define DBG(x) printf x -#define MDBG(x) printf x -#else -#define DBG(x) -#define MDBG(x) -#endif - -int insntbl_line = 1; -#line 446 "itbl-lex.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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 45 "itbl-lex.l" - - -#line 611 "itbl-lex.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 >= 60 ) - 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] != 84 ); - -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 47 "itbl-lex.l" -{ - return CREG; - } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 50 "itbl-lex.l" -{ - return DREG; - } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 53 "itbl-lex.l" -{ - return GREG; - } - YY_BREAK -case 4: -YY_RULE_SETUP -#line 56 "itbl-lex.l" -{ - return IMMED; - } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 59 "itbl-lex.l" -{ - return ADDR; - } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 62 "itbl-lex.l" -{ - return INSN; - } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 65 "itbl-lex.l" -{ - yytext[yyleng] = 0; - yylval.processor = strtoul (yytext+1, 0, 0); - return PNUM; - } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 70 "itbl-lex.l" -{ - yytext[yyleng] = 0; - yylval.num = strtoul (yytext, 0, 0); - return NUM; - } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 75 "itbl-lex.l" -{ - yytext[yyleng] = 0; - yylval.num = strtoul (yytext, 0, 0); - return NUM; - } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 80 "itbl-lex.l" -{ - yytext[yyleng] = 0; - yylval.str = strdup (yytext); - return ID; - } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 85 "itbl-lex.l" -{ - int c; - while ((c = input ()) != EOF) - { - if (c == '\n') - { - unput (c); - break; - } - } - } - YY_BREAK -case 12: -YY_RULE_SETUP -#line 96 "itbl-lex.l" -{ - insntbl_line++; - MDBG (("in lex, NL = %d (x%x)\n", NL, NL)); - return NL; - } - YY_BREAK -case 13: -YY_RULE_SETUP -#line 101 "itbl-lex.l" -{ - } - YY_BREAK -case 14: -YY_RULE_SETUP -#line 103 "itbl-lex.l" -{ - MDBG (("char = %x, %d\n", yytext[0], yytext[0])); - return yytext[0]; - } - YY_BREAK -case 15: -YY_RULE_SETUP -#line 107 "itbl-lex.l" -ECHO; - YY_BREAK -#line 815 "itbl-lex.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 >= 60 ) - 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 >= 60 ) - 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 == 59); - - 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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 107 "itbl-lex.l" - - -#ifndef yywrap -int -yywrap () - { - return 1; - } -#endif diff --git a/gas/itbl-parse.c b/gas/itbl-parse.c deleted file mode 100644 index 1d4d5d6c66e..00000000000 --- a/gas/itbl-parse.c +++ /dev/null @@ -1,1546 +0,0 @@ -/* A Bison parser, made from itbl-parse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define DREG 257 -# define CREG 258 -# define GREG 259 -# define IMMED 260 -# define ADDR 261 -# define INSN 262 -# define NUM 263 -# define ID 264 -# define NL 265 -# define PNUM 266 - -#line 21 "itbl-parse.y" - - -/* - -Yacc grammar for instruction table entries. - -======================================================================= -Original Instruction table specification document: - - MIPS Coprocessor Table Specification - ==================================== - -This document describes the format of the MIPS coprocessor table. The -table specifies a list of valid functions, data registers and control -registers that can be used in coprocessor instructions. This list, -together with the coprocessor instruction classes listed below, -specifies the complete list of coprocessor instructions that will -be recognized and assembled by the GNU assembler. In effect, -this makes the GNU assembler table-driven, where the table is -specified by the programmer. - -The table is an ordinary text file that the GNU assembler reads when -it starts. Using the information in the table, the assembler -generates an internal list of valid coprocessor registers and -functions. The assembler uses this internal list in addition to the -standard MIPS registers and instructions which are built-in to the -assembler during code generation. - -To specify the coprocessor table when invoking the GNU assembler, use -the command line option "--itbl file", where file is the -complete name of the table, including path and extension. - -Examples: - - gas -t cop.tbl test.s -o test.o - gas -t /usr/local/lib/cop.tbl test.s -o test.o - gas --itbl d:\gnu\data\cop.tbl test.s -o test.o - -Only one table may be supplied during a single invocation of -the assembler. - - -Instruction classes -=================== - -Below is a list of the valid coprocessor instruction classes for -any given coprocessor "z". These instructions are already recognized -by the assembler, and are listed here only for reference. - -Class format instructions -------------------------------------------------- -Class1: - op base rt offset - LWCz rt,offset (base) - SWCz rt,offset (base) -Class2: - COPz sub rt rd 0 - MTCz rt,rd - MFCz rt,rd - CTCz rt,rd - CFCz rt,rd -Class3: - COPz CO cofun - COPz cofun -Class4: - COPz BC br offset - BCzT offset - BCzF offset -Class5: - COPz sub rt rd 0 - DMFCz rt,rd - DMTCz rt,rd -Class6: - op base rt offset - LDCz rt,offset (base) - SDCz rt,offset (base) -Class7: - COPz BC br offset - BCzTL offset - BCzFL offset - -The coprocessor table defines coprocessor-specific registers that can -be used with all of the above classes of instructions, where -appropriate. It also defines additional coprocessor-specific -functions for Class3 (COPz cofun) instructions, Thus, the table allows -the programmer to use convenient mnemonics and operands for these -functions, instead of the COPz mmenmonic and cofun operand. - -The names of the MIPS general registers and their aliases are defined -by the assembler and will be recognized as valid register names by the -assembler when used (where allowed) in coprocessor instructions. -However, the names and values of all coprocessor data and control -register mnemonics must be specified in the coprocessor table. - - -Table Grammar -============= - -Here is the grammar for the coprocessor table: - - table -> entry* - - entry -> [z entrydef] [comment] '\n' - - entrydef -> type name val - entrydef -> 'insn' name val funcdef ; type of entry (instruction) - - z -> 'p'['0'..'3'] ; processor number - type -> ['dreg' | 'creg' | 'greg' ] ; type of entry (register) - ; 'dreg', 'creg' or 'greg' specifies a data, control, or general - ; register mnemonic, respectively - name -> [ltr|dec]* ; mnemonic of register/function - val -> [dec|hex] ; register/function number (integer constant) - - funcdef -> frange flags fields - ; bitfield range for opcode - ; list of fields' formats - fields -> field* - field -> [','] ftype frange flags - flags -> ['*' flagexpr] - flagexpr -> '[' flagexpr ']' - flagexpr -> val '|' flagexpr - ftype -> [ type | 'immed' | 'addr' ] - ; 'immed' specifies an immediate value; see grammar for "val" above - ; 'addr' specifies a C identifier; name of symbol to be resolved at - ; link time - frange -> ':' val '-' val ; starting to ending bit positions, where - ; where 0 is least significant bit - frange -> (null) ; default range of 31-0 will be assumed - - comment -> [';'|'#'] [char]* - char -> any printable character - ltr -> ['a'..'z'|'A'..'Z'] - dec -> ['0'..'9']* ; value in decimal - hex -> '0x'['0'..'9' | 'a'..'f' | 'A'..'F']* ; value in hexadecimal - - -Examples -======== - -Example 1: - -The table: - - p1 dreg d1 1 ; data register "d1" for COP1 has value 1 - p1 creg c3 3 ; ctrl register "c3" for COP1 has value 3 - p3 func fill 0x1f:24-20 ; function "fill" for COP3 has value 31 and - ; no fields - -will allow the assembler to accept the following coprocessor instructions: - - LWC1 d1,0x100 ($2) - fill - -Here, the general purpose register "$2", and instruction "LWC1", are standard -mnemonics built-in to the MIPS assembler. - - -Example 2: - -The table: - - p3 dreg d3 3 ; data register "d3" for COP3 has value 3 - p3 creg c2 22 ; control register "c2" for COP3 has value 22 - p3 func fee 0x1f:24-20 dreg:17-13 creg:12-8 immed:7-0 - ; function "fee" for COP3 has value 31, and 3 fields - ; consisting of a data register, a control register, - ; and an immediate value. - -will allow the assembler to accept the following coprocessor instruction: - - fee d3,c2,0x1 - -and will emit the object code: - - 31-26 25 24-20 19-18 17-13 12-8 7-0 - COPz CO fun dreg creg immed - 010011 1 11111 00 00011 10110 00000001 - - 0x4ff07601 - - -Example 3: - -The table: - - p3 dreg d3 3 ; data register "d3" for COP3 has value 3 - p3 creg c2 22 ; control register "c2" for COP3 has value 22 - p3 func fuu 0x01f00001 dreg:17-13 creg:12-8 - -will allow the assembler to accept the following coprocessor -instruction: - - fuu d3,c2 - -and will emit the object code: - - 31-26 25 24-20 19-18 17-13 12-8 7-0 - COPz CO fun dreg creg - 010011 1 11111 00 00011 10110 00000001 - - 0x4ff07601 - -In this way, the programmer can force arbitrary bits of an instruction -to have predefined values. - -======================================================================= -Additional notes: - -Encoding of ranges: -To handle more than one bit position range within an instruction, -use 0s to mask out the ranges which don't apply. -May decide to modify the syntax to allow commas separate multiple -ranges within an instruction (range','range). - -Changes in grammar: - The number of parms argument to the function entry -was deleted from the original format such that we now count the fields. - ----- -FIXME! should really change lexical analyzer -to recognize 'dreg' etc. in context sensitive way. -Currently function names or mnemonics may be incorrectly parsed as keywords - -FIXME! hex is ambiguous with any digit - -*/ - -#include -#include "itbl-lex.h" -#include "itbl-ops.h" - -/* #define DEBUG */ - -#ifdef DEBUG -#ifndef DBG_LVL -#define DBG_LVL 1 -#endif -#else -#define DBG_LVL 0 -#endif - -#if DBG_LVL >= 1 -#define DBG(x) printf x -#else -#define DBG(x) -#endif - -#if DBG_LVL >= 2 -#define DBGL2(x) printf x -#else -#define DBGL2(x) -#endif - -static int sbit, ebit; -static struct itbl_entry *insn=0; -static int yyerror PARAMS ((const char *)); - - -#line 281 "itbl-parse.y" -#ifndef YYSTYPE -typedef union - { - char *str; - int num; - int processor; - unsigned long val; - } yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 51 -#define YYFLAG -32768 -#define YYNTBASE 20 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 266 ? yytranslate[x] : 34) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, - 2, 2, 17, 2, 13, 19, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 18, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 15, 2, 16, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 14, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 2, 5, 6, 12, 13, 23, 25, 28, - 32, 35, 36, 38, 40, 42, 46, 50, 54, 56, - 59, 60, 65, 66, 68, 70, 72, 74, 76, 78 -}; -static const short yyrhs[] = -{ - 21, 0, 22, 21, 0, 0, 30, 31, 32, 33, - 11, 0, 0, 30, 8, 32, 33, 29, 28, 23, - 24, 11, 0, 11, 0, 1, 11, 0, 13, 26, - 24, 0, 26, 24, 0, 0, 31, 0, 7, 0, - 6, 0, 25, 29, 28, 0, 9, 14, 27, 0, - 15, 27, 16, 0, 9, 0, 17, 27, 0, 0, - 18, 9, 19, 9, 0, 0, 12, 0, 3, 0, - 4, 0, 5, 0, 10, 0, 9, 0, 9, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 298, 302, 304, 307, 314, 314, 323, 324, 327, - 329, 330, 333, 339, 344, 351, 360, 365, 369, 375, - 381, 387, 394, 401, 409, 415, 420, 427, 435, 443 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "DREG", "CREG", "GREG", "IMMED", "ADDR", - "INSN", "NUM", "ID", "NL", "PNUM", "','", "'|'", "'['", "']'", "'*'", - "':'", "'-'", "insntbl", "entrys", "entry", "@1", "fieldspecs", "ftype", - "fieldspec", "flagexpr", "flags", "range", "pnum", "regtype", "name", - "value", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 20, 21, 21, 22, 23, 22, 22, 22, 24, - 24, 24, 25, 25, 25, 26, 27, 27, 27, 28, - 28, 29, 29, 30, 31, 31, 31, 32, 34, 33 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 1, 2, 0, 5, 0, 9, 1, 2, 3, - 2, 0, 1, 1, 1, 3, 3, 3, 1, 2, - 0, 4, 0, 1, 1, 1, 1, 1, 1, 1 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 0, 0, 7, 23, 1, 0, 0, 8, 2, 24, - 25, 26, 0, 0, 27, 0, 0, 29, 22, 0, - 0, 20, 4, 0, 0, 5, 0, 18, 0, 19, - 11, 21, 0, 0, 14, 13, 0, 0, 22, 11, - 12, 16, 17, 11, 6, 20, 10, 9, 15, 0, - 0, 0 -}; - -static const short yydefgoto[] = -{ - 49, 4, 5, 30, 37, 38, 39, 29, 25, 21, - 6, 40, 15, 18 -}; - -static const short yypact[] = -{ - 0, -9,-32768,-32768,-32768, 0, 12,-32768,-32768,-32768, - -32768,-32768, 3, 3,-32768, 9, 9,-32768, -8, 8, - 19, 15,-32768, 10, -6,-32768, 24, 20, -6,-32768, - 1,-32768, -6, 21,-32768,-32768, 18, 25, -8, 1, - -32768,-32768,-32768, 1,-32768, 15,-32768,-32768,-32768, 35, - 38,-32768 -}; - -static const short yypgoto[] = -{ - -32768, 34,-32768,-32768, -13,-32768, 4, -1, -4, 5, - -32768, 36, 31, 29 -}; - - -#define YYLAST 45 - - -static const short yytable[] = -{ - -3, 1, 7, 27, 9, 10, 11, 34, 35, 28, - 20, 2, 3, 14, 36, 9, 10, 11, 17, 22, - 12, 9, 10, 11, 34, 35, 46, 33, 23, 26, - 47, 41, 24, 31, 32, 50, 44, 42, 51, 8, - 43, 48, 13, 45, 16, 19 -}; - -static const short yycheck[] = -{ - 0, 1, 11, 9, 3, 4, 5, 6, 7, 15, - 18, 11, 12, 10, 13, 3, 4, 5, 9, 11, - 8, 3, 4, 5, 6, 7, 39, 28, 9, 19, - 43, 32, 17, 9, 14, 0, 11, 16, 0, 5, - 36, 45, 6, 38, 13, 16 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 4: -#line 309 "itbl-parse.y" -{ - DBG (("line %d: entry pnum=%d type=%d name=%s value=x%x\n", - insntbl_line, yyvsp[-4].num, yyvsp[-3].num, yyvsp[-2].str, yyvsp[-1].val)); - itbl_add_reg (yyvsp[-4].num, yyvsp[-3].num, yyvsp[-2].str, yyvsp[-1].val); - } - break; -case 5: -#line 315 "itbl-parse.y" -{ - DBG (("line %d: entry pnum=%d type=INSN name=%s value=x%x", - insntbl_line, yyvsp[-5].num, yyvsp[-3].str, yyvsp[-2].val)); - DBG ((" sbit=%d ebit=%d flags=0x%x\n", sbit, ebit, yyvsp[0].val)); - insn=itbl_add_insn (yyvsp[-5].num, yyvsp[-3].str, yyvsp[-2].val, sbit, ebit, yyvsp[0].val); - } - break; -case 6: -#line 322 "itbl-parse.y" -{} - break; -case 12: -#line 335 "itbl-parse.y" -{ - DBGL2 (("ftype\n")); - yyval.num = yyvsp[0].num; - } - break; -case 13: -#line 340 "itbl-parse.y" -{ - DBGL2 (("addr\n")); - yyval.num = ADDR; - } - break; -case 14: -#line 345 "itbl-parse.y" -{ - DBGL2 (("immed\n")); - yyval.num = IMMED; - } - break; -case 15: -#line 353 "itbl-parse.y" -{ - DBG (("line %d: field type=%d sbit=%d ebit=%d, flags=0x%x\n", - insntbl_line, yyvsp[-2].num, sbit, ebit, yyvsp[0].val)); - itbl_add_operand (insn, yyvsp[-2].num, sbit, ebit, yyvsp[0].val); - } - break; -case 16: -#line 362 "itbl-parse.y" -{ - yyval.val = yyvsp[-2].num | yyvsp[0].val; - } - break; -case 17: -#line 366 "itbl-parse.y" -{ - yyval.val = yyvsp[-1].val; - } - break; -case 18: -#line 370 "itbl-parse.y" -{ - yyval.val = yyvsp[0].num; - } - break; -case 19: -#line 377 "itbl-parse.y" -{ - DBGL2 (("flags=%d\n", yyvsp[0].val)); - yyval.val = yyvsp[0].val; - } - break; -case 20: -#line 382 "itbl-parse.y" -{ - yyval.val = 0; - } - break; -case 21: -#line 389 "itbl-parse.y" -{ - DBGL2 (("range %d %d\n", yyvsp[-2].num, yyvsp[0].num)); - sbit = yyvsp[-2].num; - ebit = yyvsp[0].num; - } - break; -case 22: -#line 395 "itbl-parse.y" -{ - sbit = 31; - ebit = 0; - } - break; -case 23: -#line 403 "itbl-parse.y" -{ - DBGL2 (("pnum=%d\n",yyvsp[0].num)); - yyval.num = yyvsp[0].num; - } - break; -case 24: -#line 411 "itbl-parse.y" -{ - DBGL2 (("dreg\n")); - yyval.num = DREG; - } - break; -case 25: -#line 416 "itbl-parse.y" -{ - DBGL2 (("creg\n")); - yyval.num = CREG; - } - break; -case 26: -#line 421 "itbl-parse.y" -{ - DBGL2 (("greg\n")); - yyval.num = GREG; - } - break; -case 27: -#line 429 "itbl-parse.y" -{ - DBGL2 (("name=%s\n",yyvsp[0].str)); - yyval.str = yyvsp[0].str; - } - break; -case 28: -#line 437 "itbl-parse.y" -{ - DBGL2 (("num=%d\n",yyvsp[0].num)); - yyval.num = yyvsp[0].num; - } - break; -case 29: -#line 445 "itbl-parse.y" -{ - DBGL2 (("val=x%x\n",yyvsp[0].num)); - yyval.val = yyvsp[0].num; - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 450 "itbl-parse.y" - - -static int -yyerror (msg) - const char *msg; -{ - printf ("line %d: %s\n", insntbl_line, msg); - return 0; -} diff --git a/gas/itbl-parse.h b/gas/itbl-parse.h deleted file mode 100644 index 00bdbdb9df2..00000000000 --- a/gas/itbl-parse.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union - { - char *str; - int num; - int processor; - unsigned long val; - } yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define DREG 257 -# define CREG 258 -# define GREG 259 -# define IMMED 260 -# define ADDR 261 -# define INSN 262 -# define NUM 263 -# define ID 264 -# define NL 265 -# define PNUM 266 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/gas/m68k-parse.c b/gas/m68k-parse.c deleted file mode 100644 index 63566af0982..00000000000 --- a/gas/m68k-parse.c +++ /dev/null @@ -1,2305 +0,0 @@ -/* A Bison parser, made from /nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define DR 257 -# define AR 258 -# define FPR 259 -# define FPCR 260 -# define LPC 261 -# define ZAR 262 -# define ZDR 263 -# define LZPC 264 -# define CREG 265 -# define INDEXREG 266 -# define EXPR 267 - -#line 28 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" - - -#include "as.h" -#include "tc-m68k.h" -#include "m68k-parse.h" -#include "safe-ctype.h" - -/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, - etc), as well as gratuitously global symbol names If other parser - generators (bison, byacc, etc) produce additional global names that - conflict at link time, then those parser generators need to be - fixed instead of adding those names to this list. */ - -#define yymaxdepth m68k_maxdepth -#define yyparse m68k_parse -#define yylex m68k_lex -#define yyerror m68k_error -#define yylval m68k_lval -#define yychar m68k_char -#define yydebug m68k_debug -#define yypact m68k_pact -#define yyr1 m68k_r1 -#define yyr2 m68k_r2 -#define yydef m68k_def -#define yychk m68k_chk -#define yypgo m68k_pgo -#define yyact m68k_act -#define yyexca m68k_exca -#define yyerrflag m68k_errflag -#define yynerrs m68k_nerrs -#define yyps m68k_ps -#define yypv m68k_pv -#define yys m68k_s -#define yy_yys m68k_yys -#define yystate m68k_state -#define yytmp m68k_tmp -#define yyv m68k_v -#define yy_yyv m68k_yyv -#define yyval m68k_val -#define yylloc m68k_lloc -#define yyreds m68k_reds /* With YYDEBUG defined */ -#define yytoks m68k_toks /* With YYDEBUG defined */ -#define yylhs m68k_yylhs -#define yylen m68k_yylen -#define yydefred m68k_yydefred -#define yydgoto m68k_yydgoto -#define yysindex m68k_yysindex -#define yyrindex m68k_yyrindex -#define yygindex m68k_yygindex -#define yytable m68k_yytable -#define yycheck m68k_yycheck - -#ifndef YYDEBUG -#define YYDEBUG 1 -#endif - -/* Internal functions. */ - -static enum m68k_register m68k_reg_parse PARAMS ((char **)); -static int yylex PARAMS ((void)); -static void yyerror PARAMS ((const char *)); - -/* The parser sets fields pointed to by this global variable. */ -static struct m68k_op *op; - - -#line 95 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -#ifndef YYSTYPE -typedef union -{ - struct m68k_indexreg indexreg; - enum m68k_register reg; - struct m68k_exp exp; - unsigned long mask; - int onereg; - int trailing_ampersand; -} yystype; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 180 -#define YYFLAG -32768 -#define YYNTBASE 27 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 267 ? yytranslate[x] : 47) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const 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, 17, 2, 2, 14, 2, - 18, 19, 2, 20, 22, 21, 2, 26, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 15, 2, 16, 2, 25, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 23, 2, 24, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 2, 5, 8, 9, 11, 14, 17, 19, - 21, 23, 25, 27, 29, 32, 35, 37, 41, 46, - 51, 57, 63, 68, 72, 76, 80, 88, 96, 103, - 109, 116, 122, 129, 135, 141, 146, 156, 164, 173, - 180, 191, 200, 211, 220, 229, 232, 236, 240, 246, - 253, 264, 274, 285, 287, 289, 291, 293, 295, 297, - 299, 301, 303, 305, 307, 309, 311, 313, 314, 316, - 318, 320, 321, 324, 325, 328, 329, 332, 334, 338, - 342, 344, 346, 350, 354, 358, 360, 362, 364 -}; -static const short yyrhs[] = -{ - 29, 0, 30, 28, 0, 31, 28, 0, 0, 14, - 0, 15, 15, 0, 16, 16, 0, 3, 0, 4, - 0, 5, 0, 6, 0, 11, 0, 13, 0, 17, - 13, 0, 14, 13, 0, 43, 0, 18, 4, 19, - 0, 18, 4, 19, 20, 0, 21, 18, 4, 19, - 0, 18, 13, 22, 37, 19, 0, 18, 37, 22, - 13, 19, 0, 13, 18, 37, 19, 0, 18, 7, - 19, 0, 18, 8, 19, 0, 18, 10, 19, 0, - 18, 13, 22, 37, 22, 32, 19, 0, 18, 13, - 22, 37, 22, 39, 19, 0, 18, 13, 22, 33, - 40, 19, 0, 18, 33, 22, 13, 19, 0, 13, - 18, 37, 22, 32, 19, 0, 18, 37, 22, 32, - 19, 0, 13, 18, 37, 22, 39, 19, 0, 18, - 37, 22, 39, 19, 0, 13, 18, 33, 40, 19, - 0, 18, 33, 40, 19, 0, 18, 23, 13, 40, - 24, 22, 32, 41, 19, 0, 18, 23, 13, 40, - 24, 41, 19, 0, 18, 23, 37, 24, 22, 32, - 41, 19, 0, 18, 23, 37, 24, 41, 19, 0, - 18, 23, 13, 22, 37, 22, 32, 24, 41, 19, - 0, 18, 23, 37, 22, 32, 24, 41, 19, 0, - 18, 23, 13, 22, 37, 22, 39, 24, 41, 19, - 0, 18, 23, 37, 22, 39, 24, 41, 19, 0, - 18, 23, 42, 33, 40, 24, 41, 19, 0, 38, - 25, 0, 38, 25, 20, 0, 38, 25, 21, 0, - 38, 25, 18, 13, 19, 0, 38, 25, 18, 42, - 32, 19, 0, 38, 25, 18, 13, 19, 25, 18, - 42, 32, 19, 0, 38, 25, 18, 13, 19, 25, - 18, 13, 19, 0, 38, 25, 18, 42, 32, 19, - 25, 18, 13, 19, 0, 12, 0, 34, 0, 12, - 0, 35, 0, 35, 0, 4, 0, 8, 0, 3, - 0, 9, 0, 4, 0, 7, 0, 36, 0, 10, - 0, 8, 0, 0, 37, 0, 7, 0, 10, 0, - 0, 22, 37, 0, 0, 22, 13, 0, 0, 13, - 22, 0, 45, 0, 45, 26, 44, 0, 46, 26, - 44, 0, 46, 0, 45, 0, 45, 26, 44, 0, - 46, 26, 44, 0, 46, 21, 46, 0, 3, 0, - 4, 0, 5, 0, 6, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 120, 122, 126, 133, 136, 142, 148, 153, 158, - 163, 168, 173, 178, 183, 188, 193, 205, 211, 216, - 221, 231, 241, 251, 256, 261, 266, 273, 284, 291, - 297, 304, 310, 321, 331, 338, 344, 352, 359, 366, - 372, 380, 387, 399, 410, 422, 431, 439, 447, 457, - 464, 472, 479, 492, 494, 506, 508, 519, 521, 522, - 527, 529, 534, 536, 542, 544, 545, 550, 555, 560, - 562, 567, 572, 580, 586, 594, 600, 608, 610, 614, - 625, 630, 631, 635, 641, 651, 656, 660, 664 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "DR", "AR", "FPR", "FPCR", "LPC", "ZAR", - "ZDR", "LZPC", "CREG", "INDEXREG", "EXPR", "'&'", "'<'", "'>'", "'#'", - "'('", "')'", "'+'", "'-'", "','", "'['", "']'", "'@'", "'/'", - "operand", "optional_ampersand", "generic_operand", "motorola_operand", - "mit_operand", "zireg", "zdireg", "zadr", "zdr", "apc", "zapc", - "optzapc", "zpc", "optczapc", "optcexpr", "optexprc", "reglist", - "ireglist", "reglistpair", "reglistreg", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 27, 27, 27, 28, 28, 29, 29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, - 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, - 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, - 39, 40, 40, 41, 41, 42, 42, 43, 43, 43, - 44, 44, 44, 44, 45, 46, 46, 46, 46 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 1, 2, 2, 0, 1, 2, 2, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 3, 4, 4, - 5, 5, 4, 3, 3, 3, 7, 7, 6, 5, - 6, 5, 6, 5, 5, 4, 9, 7, 8, 6, - 10, 8, 10, 8, 8, 2, 3, 3, 5, 6, - 10, 9, 10, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 0, 2, 0, 2, 0, 2, 1, 3, 3, - 1, 1, 3, 3, 3, 1, 1, 1, 1 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 67, 85, 86, 87, 88, 63, 66, 65, 12, 13, - 0, 0, 0, 0, 0, 0, 1, 4, 4, 64, - 68, 0, 16, 77, 0, 0, 15, 6, 7, 14, - 60, 62, 63, 66, 61, 65, 55, 0, 75, 71, - 56, 0, 0, 5, 2, 3, 45, 0, 0, 0, - 62, 71, 0, 17, 23, 24, 25, 0, 71, 0, - 0, 0, 0, 0, 0, 75, 46, 47, 85, 86, - 87, 88, 78, 81, 80, 84, 79, 0, 0, 22, - 0, 18, 71, 0, 76, 0, 0, 73, 71, 0, - 72, 35, 58, 69, 59, 70, 53, 0, 0, 54, - 57, 0, 19, 0, 0, 0, 0, 34, 0, 0, - 0, 20, 0, 72, 73, 0, 0, 0, 0, 0, - 29, 21, 31, 33, 48, 76, 0, 82, 83, 30, - 32, 28, 0, 0, 0, 0, 0, 73, 73, 74, - 73, 39, 73, 0, 49, 26, 27, 0, 0, 73, - 37, 0, 0, 0, 0, 0, 75, 0, 73, 73, - 0, 41, 43, 38, 44, 0, 0, 0, 0, 0, - 36, 51, 0, 0, 40, 42, 50, 52, 0, 0, - 0 -}; - -static const short yydefgoto[] = -{ - 178, 44, 16, 17, 18, 98, 39, 99, 100, 19, - 90, 21, 101, 62, 118, 60, 22, 72, 73, 74 -}; - -static const short yypact[] = -{ - 89, 8, 11, 18, 22,-32768,-32768,-32768,-32768, 12, - 24, 16, 23, 28, 67, 40,-32768, 32, 32,-32768, - -32768, 37,-32768, 62, -11, 123,-32768,-32768,-32768,-32768, - -32768, 54, 70, 82,-32768, 92,-32768, 76, 140, 94, - -32768, 99, 118,-32768,-32768,-32768, 47, 79, 79, 79, - -32768, 101, 29, 114,-32768,-32768,-32768, 123, 117, -10, - 69, 147, 119, 105, 146, 139,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 141, 0,-32768,-32768, 154, 149,-32768, - 133,-32768, 101, 127, 154, 145, 133, 148, 101, 152, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 153, 155,-32768, - -32768, 156,-32768, 137, 20, 79, 79,-32768, 157, 158, - 159,-32768, 133, 151, 160, 161, 162, 116, 164, 163, - -32768,-32768,-32768,-32768, 165,-32768, 169,-32768,-32768,-32768, - -32768,-32768, 170, 172, 133, 116, 173, 171, 171,-32768, - 171,-32768, 171, 166, 174,-32768,-32768, 176, 177, 171, - -32768, 167, 175, 178, 179, 183, 168, 185, 171, 171, - 186,-32768,-32768,-32768,-32768, 144, 20, 182, 187, 188, - -32768,-32768, 189, 190,-32768,-32768,-32768,-32768, 196, 204, - -32768 -}; - -static const short yypgoto[] = -{ - -32768, 192,-32768,-32768,-32768, -79, 9,-32768, -8,-32768, - 2,-32768, -77, -38, -95, -65,-32768, -45, 211, 5 -}; - - -#define YYLAST 211 - - -static const short yytable[] = -{ - 104, 108, 20, 109, 76, 24, 40, 115, -8, 116, - 48, -9, 86, 78, 87, 49, 41, 40, -10, 136, - 85, 48, -11, 30, 92, 126, 106, 52, 94, 34, - 25, 27, 96, 132, 51, 133, -62, 26, 140, 28, - 59, 29, 152, 153, 110, 154, 43, 155, 79, 40, - 119, 80, 40, 75, 160, 147, 149, 148, 42, 83, - 127, 128, 46, 168, 169, 65, 82, 66, 67, 88, - 30, 31, 30, 53, 32, 33, 34, 35, 34, 36, - 37, 36, 68, 69, 70, 71, 113, 172, 47, 54, - 38, 166, 1, 2, 3, 4, 5, 6, 57, 7, - 8, 55, 9, 10, 11, 12, 13, 14, 30, 92, - 15, 56, 93, 94, 34, 95, 61, 96, 97, 30, - 92, 63, 64, 77, 94, 34, 30, 50, 96, 139, - 5, 6, 34, 7, 81, 36, 30, 92, 91, 84, - 93, 94, 34, 95, 50, 96, 111, 5, 6, 112, - 7, 50, 103, 58, 5, 6, 124, 7, 50, 125, - 89, 5, 6, 171, 7, 102, 125, 105, 107, 114, - 117, 120, 121, 134, 122, 123, 129, 130, 131, 0, - 139, 165, 135, 141, 156, 137, 138, 142, 144, 145, - 143, 146, 150, 151, 161, 173, 179, 162, 163, 157, - 158, 159, 164, 167, 180, 170, 174, 175, 176, 177, - 45, 23 -}; - -static const short yycheck[] = -{ - 65, 80, 0, 80, 49, 0, 14, 86, 0, 86, - 21, 0, 22, 51, 24, 26, 14, 25, 0, 114, - 58, 21, 0, 3, 4, 104, 26, 25, 8, 9, - 18, 15, 12, 112, 25, 112, 25, 13, 117, 16, - 38, 13, 137, 138, 82, 140, 14, 142, 19, 57, - 88, 22, 60, 48, 149, 134, 135, 134, 18, 57, - 105, 106, 25, 158, 159, 18, 57, 20, 21, 60, - 3, 4, 3, 19, 7, 8, 9, 10, 9, 12, - 13, 12, 3, 4, 5, 6, 84, 166, 26, 19, - 23, 156, 3, 4, 5, 6, 7, 8, 22, 10, - 11, 19, 13, 14, 15, 16, 17, 18, 3, 4, - 21, 19, 7, 8, 9, 10, 22, 12, 13, 3, - 4, 22, 4, 22, 8, 9, 3, 4, 12, 13, - 7, 8, 9, 10, 20, 12, 3, 4, 19, 22, - 7, 8, 9, 10, 4, 12, 19, 7, 8, 22, - 10, 4, 13, 13, 7, 8, 19, 10, 4, 22, - 13, 7, 8, 19, 10, 19, 22, 26, 19, 24, - 22, 19, 19, 22, 19, 19, 19, 19, 19, -1, - 13, 13, 22, 19, 18, 24, 24, 24, 19, 19, - 25, 19, 19, 22, 19, 13, 0, 19, 19, 25, - 24, 24, 19, 18, 0, 19, 19, 19, 19, 19, - 18, 0 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 2: -#line 123 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->trailing_ampersand = yyvsp[0].trailing_ampersand; - } - break; -case 3: -#line 127 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->trailing_ampersand = yyvsp[0].trailing_ampersand; - } - break; -case 4: -#line 135 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ yyval.trailing_ampersand = 0; } - break; -case 5: -#line 137 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ yyval.trailing_ampersand = 1; } - break; -case 6: -#line 144 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = LSH; - } - break; -case 7: -#line 149 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = RSH; - } - break; -case 8: -#line 154 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = DREG; - op->reg = yyvsp[0].reg; - } - break; -case 9: -#line 159 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = AREG; - op->reg = yyvsp[0].reg; - } - break; -case 10: -#line 164 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = FPREG; - op->reg = yyvsp[0].reg; - } - break; -case 11: -#line 169 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = CONTROL; - op->reg = yyvsp[0].reg; - } - break; -case 12: -#line 174 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = CONTROL; - op->reg = yyvsp[0].reg; - } - break; -case 13: -#line 179 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = ABSL; - op->disp = yyvsp[0].exp; - } - break; -case 14: -#line 184 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = IMMED; - op->disp = yyvsp[0].exp; - } - break; -case 15: -#line 189 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = IMMED; - op->disp = yyvsp[0].exp; - } - break; -case 16: -#line 194 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = REGLST; - op->mask = yyvsp[0].mask; - } - break; -case 17: -#line 207 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = AINDR; - op->reg = yyvsp[-1].reg; - } - break; -case 18: -#line 212 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = AINC; - op->reg = yyvsp[-2].reg; - } - break; -case 19: -#line 217 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = ADEC; - op->reg = yyvsp[-1].reg; - } - break; -case 20: -#line 222 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-3].exp; - if ((yyvsp[-1].reg >= ZADDR0 && yyvsp[-1].reg <= ZADDR7) - || yyvsp[-1].reg == ZPC) - op->mode = BASE; - else - op->mode = DISP; - } - break; -case 21: -#line 232 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-1].exp; - if ((yyvsp[-3].reg >= ZADDR0 && yyvsp[-3].reg <= ZADDR7) - || yyvsp[-3].reg == ZPC) - op->mode = BASE; - else - op->mode = DISP; - } - break; -case 22: -#line 242 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-3].exp; - if ((yyvsp[-1].reg >= ZADDR0 && yyvsp[-1].reg <= ZADDR7) - || yyvsp[-1].reg == ZPC) - op->mode = BASE; - else - op->mode = DISP; - } - break; -case 23: -#line 252 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = DISP; - op->reg = yyvsp[-1].reg; - } - break; -case 24: -#line 257 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-1].reg; - } - break; -case 25: -#line 262 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-1].reg; - } - break; -case 26: -#line 267 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-5].exp; - op->index = yyvsp[-1].indexreg; - } - break; -case 27: -#line 274 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-3].reg == PC || yyvsp[-3].reg == ZPC) - yyerror (_("syntax error")); - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-5].exp; - op->index.reg = yyvsp[-3].reg; - op->index.size = SIZE_UNSPEC; - op->index.scale = 1; - } - break; -case 28: -#line 285 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-4].exp; - op->index = yyvsp[-2].indexreg; - } - break; -case 29: -#line 292 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->disp = yyvsp[-1].exp; - op->index = yyvsp[-3].indexreg; - } - break; -case 30: -#line 298 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-5].exp; - op->index = yyvsp[-1].indexreg; - } - break; -case 31: -#line 305 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-3].reg; - op->index = yyvsp[-1].indexreg; - } - break; -case 32: -#line 311 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-3].reg == PC || yyvsp[-3].reg == ZPC) - yyerror (_("syntax error")); - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-5].exp; - op->index.reg = yyvsp[-3].reg; - op->index.size = SIZE_UNSPEC; - op->index.scale = 1; - } - break; -case 33: -#line 322 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-3].reg == PC || yyvsp[-3].reg == ZPC) - yyerror (_("syntax error")); - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->index.reg = yyvsp[-3].reg; - op->index.size = SIZE_UNSPEC; - op->index.scale = 1; - } - break; -case 34: -#line 332 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->disp = yyvsp[-4].exp; - op->index = yyvsp[-2].indexreg; - } - break; -case 35: -#line 339 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-1].reg; - op->index = yyvsp[-2].indexreg; - } - break; -case 36: -#line 345 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-5].reg; - op->disp = yyvsp[-6].exp; - op->index = yyvsp[-2].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 37: -#line 353 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-4].exp; - op->odisp = yyvsp[-1].exp; - } - break; -case 38: -#line 360 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-5].reg; - op->index = yyvsp[-2].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 39: -#line 367 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-3].reg; - op->odisp = yyvsp[-1].exp; - } - break; -case 40: -#line 373 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = PRE; - op->reg = yyvsp[-5].reg; - op->disp = yyvsp[-7].exp; - op->index = yyvsp[-3].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 41: -#line 381 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = PRE; - op->reg = yyvsp[-5].reg; - op->index = yyvsp[-3].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 42: -#line 388 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-5].reg == PC || yyvsp[-5].reg == ZPC) - yyerror (_("syntax error")); - op->mode = PRE; - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-7].exp; - op->index.reg = yyvsp[-5].reg; - op->index.size = SIZE_UNSPEC; - op->index.scale = 1; - op->odisp = yyvsp[-1].exp; - } - break; -case 43: -#line 400 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-5].reg == PC || yyvsp[-5].reg == ZPC) - yyerror (_("syntax error")); - op->mode = PRE; - op->reg = yyvsp[-3].reg; - op->index.reg = yyvsp[-5].reg; - op->index.size = SIZE_UNSPEC; - op->index.scale = 1; - op->odisp = yyvsp[-1].exp; - } - break; -case 44: -#line 411 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = PRE; - op->reg = yyvsp[-3].reg; - op->disp = yyvsp[-5].exp; - op->index = yyvsp[-4].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 45: -#line 424 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - /* We use optzapc to avoid a shift/reduce conflict. */ - if (yyvsp[-1].reg < ADDR0 || yyvsp[-1].reg > ADDR7) - yyerror (_("syntax error")); - op->mode = AINDR; - op->reg = yyvsp[-1].reg; - } - break; -case 46: -#line 432 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - /* We use optzapc to avoid a shift/reduce conflict. */ - if (yyvsp[-2].reg < ADDR0 || yyvsp[-2].reg > ADDR7) - yyerror (_("syntax error")); - op->mode = AINC; - op->reg = yyvsp[-2].reg; - } - break; -case 47: -#line 440 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - /* We use optzapc to avoid a shift/reduce conflict. */ - if (yyvsp[-2].reg < ADDR0 || yyvsp[-2].reg > ADDR7) - yyerror (_("syntax error")); - op->mode = ADEC; - op->reg = yyvsp[-2].reg; - } - break; -case 48: -#line 448 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->reg = yyvsp[-4].reg; - op->disp = yyvsp[-1].exp; - if ((yyvsp[-4].reg >= ZADDR0 && yyvsp[-4].reg <= ZADDR7) - || yyvsp[-4].reg == ZPC) - op->mode = BASE; - else - op->mode = DISP; - } - break; -case 49: -#line 458 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = BASE; - op->reg = yyvsp[-5].reg; - op->disp = yyvsp[-2].exp; - op->index = yyvsp[-1].indexreg; - } - break; -case 50: -#line 465 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-9].reg; - op->disp = yyvsp[-6].exp; - op->index = yyvsp[-1].indexreg; - op->odisp = yyvsp[-2].exp; - } - break; -case 51: -#line 473 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = POST; - op->reg = yyvsp[-8].reg; - op->disp = yyvsp[-5].exp; - op->odisp = yyvsp[-1].exp; - } - break; -case 52: -#line 480 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - op->mode = PRE; - op->reg = yyvsp[-9].reg; - op->disp = yyvsp[-6].exp; - op->index = yyvsp[-5].indexreg; - op->odisp = yyvsp[-1].exp; - } - break; -case 54: -#line 495 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.indexreg.reg = yyvsp[0].reg; - yyval.indexreg.size = SIZE_UNSPEC; - yyval.indexreg.scale = 1; - } - break; -case 56: -#line 509 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.indexreg.reg = yyvsp[0].reg; - yyval.indexreg.size = SIZE_UNSPEC; - yyval.indexreg.scale = 1; - } - break; -case 67: -#line 552 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.reg = ZADDR0; - } - break; -case 71: -#line 569 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.reg = ZADDR0; - } - break; -case 72: -#line 573 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.reg = yyvsp[0].reg; - } - break; -case 73: -#line 582 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.exp.exp.X_op = O_absent; - yyval.exp.size = SIZE_UNSPEC; - } - break; -case 74: -#line 587 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.exp = yyvsp[0].exp; - } - break; -case 75: -#line 596 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.exp.exp.X_op = O_absent; - yyval.exp.size = SIZE_UNSPEC; - } - break; -case 76: -#line 601 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.exp = yyvsp[-1].exp; - } - break; -case 78: -#line 611 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.mask = yyvsp[-2].mask | yyvsp[0].mask; - } - break; -case 79: -#line 615 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.mask = (1 << yyvsp[-2].onereg) | yyvsp[0].mask; - } - break; -case 80: -#line 627 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.mask = 1 << yyvsp[0].onereg; - } - break; -case 82: -#line 632 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.mask = yyvsp[-2].mask | yyvsp[0].mask; - } - break; -case 83: -#line 636 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.mask = (1 << yyvsp[-2].onereg) | yyvsp[0].mask; - } - break; -case 84: -#line 643 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[-2].onereg <= yyvsp[0].onereg) - yyval.mask = (1 << (yyvsp[0].onereg + 1)) - 1 - ((1 << yyvsp[-2].onereg) - 1); - else - yyval.mask = (1 << (yyvsp[-2].onereg + 1)) - 1 - ((1 << yyvsp[0].onereg) - 1); - } - break; -case 85: -#line 653 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.onereg = yyvsp[0].reg - DATA0; - } - break; -case 86: -#line 657 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.onereg = yyvsp[0].reg - ADDR0 + 8; - } - break; -case 87: -#line 661 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - yyval.onereg = yyvsp[0].reg - FP0 + 16; - } - break; -case 88: -#line 665 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" -{ - if (yyvsp[0].reg == FPI) - yyval.onereg = 24; - else if (yyvsp[0].reg == FPS) - yyval.onereg = 25; - else - yyval.onereg = 26; - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 675 "/nevyn/big/src/binutils/binutils-2.16/src.snap/gas/.././gas/config/m68k-parse.y" - - -/* The string to parse is stored here, and modified by yylex. */ - -static char *str; - -/* The original string pointer. */ - -static char *strorig; - -/* If *CCP could be a register, return the register number and advance - *CCP. Otherwise don't change *CCP, and return 0. */ - -static enum m68k_register -m68k_reg_parse (ccp) - register char **ccp; -{ - char *start = *ccp; - char c; - char *p; - symbolS *symbolp; - - if (flag_reg_prefix_optional) - { - if (*start == REGISTER_PREFIX) - start++; - p = start; - } - else - { - if (*start != REGISTER_PREFIX) - return 0; - p = start + 1; - } - - if (! is_name_beginner (*p)) - return 0; - - p++; - while (is_part_of_name (*p) && *p != '.' && *p != ':' && *p != '*') - p++; - - c = *p; - *p = 0; - symbolp = symbol_find (start); - *p = c; - - if (symbolp != NULL && S_GET_SEGMENT (symbolp) == reg_section) - { - *ccp = p; - return S_GET_VALUE (symbolp); - } - - /* In MRI mode, something like foo.bar can be equated to a register - name. */ - while (flag_mri && c == '.') - { - ++p; - while (is_part_of_name (*p) && *p != '.' && *p != ':' && *p != '*') - p++; - c = *p; - *p = '\0'; - symbolp = symbol_find (start); - *p = c; - if (symbolp != NULL && S_GET_SEGMENT (symbolp) == reg_section) - { - *ccp = p; - return S_GET_VALUE (symbolp); - } - } - - return 0; -} - -/* The lexer. */ - -static int -yylex () -{ - enum m68k_register reg; - char *s; - int parens; - int c = 0; - int tail = 0; - char *hold; - - if (*str == ' ') - ++str; - - if (*str == '\0') - return 0; - - /* Various special characters are just returned directly. */ - switch (*str) - { - case '@': - /* In MRI mode, this can be the start of an octal number. */ - if (flag_mri) - { - if (ISDIGIT (str[1]) - || ((str[1] == '+' || str[1] == '-') - && ISDIGIT (str[2]))) - break; - } - /* Fall through. */ - case '#': - case '&': - case ',': - case ')': - case '/': - case '[': - case ']': - case '<': - case '>': - return *str++; - case '+': - /* It so happens that a '+' can only appear at the end of an - operand, or if it is trailed by an '&'(see mac load insn). - If it appears anywhere else, it must be a unary. */ - if (str[1] == '\0' || (str[1] == '&' && str[2] == '\0')) - return *str++; - break; - case '-': - /* A '-' can only appear in -(ar), rn-rn, or ar@-. If it - appears anywhere else, it must be a unary minus on an - expression, unless it it trailed by a '&'(see mac load insn). */ - if (str[1] == '\0' || (str[1] == '&' && str[2] == '\0')) - return *str++; - s = str + 1; - if (*s == '(') - ++s; - if (m68k_reg_parse (&s) != 0) - return *str++; - break; - case '(': - /* A '(' can only appear in `(reg)', `(expr,...', `([', `@(', or - `)('. If it appears anywhere else, it must be starting an - expression. */ - if (str[1] == '[' - || (str > strorig - && (str[-1] == '@' - || str[-1] == ')'))) - return *str++; - s = str + 1; - if (m68k_reg_parse (&s) != 0) - return *str++; - /* Check for the case of '(expr,...' by scanning ahead. If we - find a comma outside of balanced parentheses, we return '('. - If we find an unbalanced right parenthesis, then presumably - the '(' really starts an expression. */ - parens = 0; - for (s = str + 1; *s != '\0'; s++) - { - if (*s == '(') - ++parens; - else if (*s == ')') - { - if (parens == 0) - break; - --parens; - } - else if (*s == ',' && parens == 0) - { - /* A comma can not normally appear in an expression, so - this is a case of '(expr,...'. */ - return *str++; - } - } - } - - /* See if it's a register. */ - - reg = m68k_reg_parse (&str); - if (reg != 0) - { - int ret; - - yylval.reg = reg; - - if (reg >= DATA0 && reg <= DATA7) - ret = DR; - else if (reg >= ADDR0 && reg <= ADDR7) - ret = AR; - else if (reg >= FP0 && reg <= FP7) - return FPR; - else if (reg == FPI - || reg == FPS - || reg == FPC) - return FPCR; - else if (reg == PC) - return LPC; - else if (reg >= ZDATA0 && reg <= ZDATA7) - ret = ZDR; - else if (reg >= ZADDR0 && reg <= ZADDR7) - ret = ZAR; - else if (reg == ZPC) - return LZPC; - else - return CREG; - - /* If we get here, we have a data or address register. We - must check for a size or scale; if we find one, we must - return INDEXREG. */ - - s = str; - - if (*s != '.' && *s != ':' && *s != '*') - return ret; - - yylval.indexreg.reg = reg; - - if (*s != '.' && *s != ':') - yylval.indexreg.size = SIZE_UNSPEC; - else - { - ++s; - switch (*s) - { - case 'w': - case 'W': - yylval.indexreg.size = SIZE_WORD; - ++s; - break; - case 'l': - case 'L': - yylval.indexreg.size = SIZE_LONG; - ++s; - break; - default: - yyerror (_("illegal size specification")); - yylval.indexreg.size = SIZE_UNSPEC; - break; - } - } - - yylval.indexreg.scale = 1; - - if (*s == '*' || *s == ':') - { - expressionS scale; - - ++s; - - hold = input_line_pointer; - input_line_pointer = s; - expression (&scale); - s = input_line_pointer; - input_line_pointer = hold; - - if (scale.X_op != O_constant) - yyerror (_("scale specification must resolve to a number")); - else - { - switch (scale.X_add_number) - { - case 1: - case 2: - case 4: - case 8: - yylval.indexreg.scale = scale.X_add_number; - break; - default: - yyerror (_("invalid scale value")); - break; - } - } - } - - str = s; - - return INDEXREG; - } - - /* It must be an expression. Before we call expression, we need to - look ahead to see if there is a size specification. We must do - that first, because otherwise foo.l will be treated as the symbol - foo.l, rather than as the symbol foo with a long size - specification. The grammar requires that all expressions end at - the end of the operand, or with ',', '(', ']', ')'. */ - - parens = 0; - for (s = str; *s != '\0'; s++) - { - if (*s == '(') - { - if (parens == 0 - && s > str - && (s[-1] == ')' || ISALNUM (s[-1]))) - break; - ++parens; - } - else if (*s == ')') - { - if (parens == 0) - break; - --parens; - } - else if (parens == 0 - && (*s == ',' || *s == ']')) - break; - } - - yylval.exp.size = SIZE_UNSPEC; - if (s <= str + 2 - || (s[-2] != '.' && s[-2] != ':')) - tail = 0; - else - { - switch (s[-1]) - { - case 's': - case 'S': - case 'b': - case 'B': - yylval.exp.size = SIZE_BYTE; - break; - case 'w': - case 'W': - yylval.exp.size = SIZE_WORD; - break; - case 'l': - case 'L': - yylval.exp.size = SIZE_LONG; - break; - default: - break; - } - if (yylval.exp.size != SIZE_UNSPEC) - tail = 2; - } - -#ifdef OBJ_ELF - { - /* Look for @PLTPC, etc. */ - char *cp; - - yylval.exp.pic_reloc = pic_none; - cp = s - tail; - if (cp - 6 > str && cp[-6] == '@') - { - if (strncmp (cp - 6, "@PLTPC", 6) == 0) - { - yylval.exp.pic_reloc = pic_plt_pcrel; - tail += 6; - } - else if (strncmp (cp - 6, "@GOTPC", 6) == 0) - { - yylval.exp.pic_reloc = pic_got_pcrel; - tail += 6; - } - } - else if (cp - 4 > str && cp[-4] == '@') - { - if (strncmp (cp - 4, "@PLT", 4) == 0) - { - yylval.exp.pic_reloc = pic_plt_off; - tail += 4; - } - else if (strncmp (cp - 4, "@GOT", 4) == 0) - { - yylval.exp.pic_reloc = pic_got_off; - tail += 4; - } - } - } -#endif - - if (tail != 0) - { - c = s[-tail]; - s[-tail] = 0; - } - - hold = input_line_pointer; - input_line_pointer = str; - expression (&yylval.exp.exp); - str = input_line_pointer; - input_line_pointer = hold; - - if (tail != 0) - { - s[-tail] = c; - str = s; - } - - return EXPR; -} - -/* Parse an m68k operand. This is the only function which is called - from outside this file. */ - -int -m68k_ip_op (s, oparg) - char *s; - struct m68k_op *oparg; -{ - memset (oparg, 0, sizeof *oparg); - oparg->error = NULL; - oparg->index.reg = ZDATA0; - oparg->index.scale = 1; - oparg->disp.exp.X_op = O_absent; - oparg->odisp.exp.X_op = O_absent; - - str = strorig = s; - op = oparg; - - return yyparse (); -} - -/* The error handler. */ - -static void -yyerror (s) - const char *s; -{ - op->error = s; -} diff --git a/ld/ldgram.c b/ld/ldgram.c deleted file mode 100644 index 0e778a5740a..00000000000 --- a/ld/ldgram.c +++ /dev/null @@ -1,3370 +0,0 @@ -/* A Bison parser, made from ldgram.y - by GNU bison 1.35. */ - -#define YYBISON 1 /* Identify Bison output. */ - -# define INT 257 -# define NAME 258 -# define LNAME 259 -# define PLUSEQ 260 -# define MINUSEQ 261 -# define MULTEQ 262 -# define DIVEQ 263 -# define LSHIFTEQ 264 -# define RSHIFTEQ 265 -# define ANDEQ 266 -# define OREQ 267 -# define OROR 268 -# define ANDAND 269 -# define EQ 270 -# define NE 271 -# define LE 272 -# define GE 273 -# define LSHIFT 274 -# define RSHIFT 275 -# define UNARY 276 -# define END 277 -# define ALIGN_K 278 -# define BLOCK 279 -# define BIND 280 -# define QUAD 281 -# define SQUAD 282 -# define LONG 283 -# define SHORT 284 -# define BYTE 285 -# define SECTIONS 286 -# define PHDRS 287 -# define DATA_SEGMENT_ALIGN 288 -# define DATA_SEGMENT_RELRO_END 289 -# define DATA_SEGMENT_END 290 -# define SORT_BY_NAME 291 -# define SORT_BY_ALIGNMENT 292 -# define SIZEOF_HEADERS 293 -# define OUTPUT_FORMAT 294 -# define FORCE_COMMON_ALLOCATION 295 -# define OUTPUT_ARCH 296 -# define INHIBIT_COMMON_ALLOCATION 297 -# define SEGMENT_START 298 -# define INCLUDE 299 -# define MEMORY 300 -# define DEFSYMEND 301 -# define NOLOAD 302 -# define DSECT 303 -# define COPY 304 -# define INFO 305 -# define OVERLAY 306 -# define DEFINED 307 -# define TARGET_K 308 -# define SEARCH_DIR 309 -# define MAP 310 -# define ENTRY 311 -# define NEXT 312 -# define SIZEOF 313 -# define ADDR 314 -# define LOADADDR 315 -# define MAX_K 316 -# define MIN_K 317 -# define STARTUP 318 -# define HLL 319 -# define SYSLIB 320 -# define FLOAT 321 -# define NOFLOAT 322 -# define NOCROSSREFS 323 -# define ORIGIN 324 -# define FILL 325 -# define LENGTH 326 -# define CREATE_OBJECT_SYMBOLS 327 -# define INPUT 328 -# define GROUP 329 -# define OUTPUT 330 -# define CONSTRUCTORS 331 -# define ALIGNMOD 332 -# define AT 333 -# define SUBALIGN 334 -# define PROVIDE 335 -# define AS_NEEDED 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 - -#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--; - -#line 67 "ldgram.y" -#ifndef YYSTYPE -typedef union { - 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; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - - - -#define YYFINAL 689 -#define YYFLAG -32768 -#define YYNTBASE 138 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 368 ? yytranslate[x] : 250) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const short 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, 136, 2, 2, 2, 34, 21, 2, - 37, 133, 32, 30, 131, 31, 2, 33, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 16, 132, - 24, 10, 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, 134, 2, 135, 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, 137, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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, 3, 4, 5, - 6, 7, 8, 9, 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, 130 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 3, 6, 9, 12, 14, 15, 20, 21, - 24, 28, 29, 32, 37, 39, 41, 44, 46, 51, - 56, 60, 63, 68, 72, 77, 82, 87, 92, 97, - 100, 103, 106, 111, 116, 119, 122, 125, 128, 129, - 135, 138, 139, 143, 146, 147, 149, 153, 155, 159, - 160, 162, 166, 168, 171, 175, 176, 179, 182, 183, - 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, - 208, 213, 218, 223, 232, 237, 239, 241, 246, 247, - 253, 258, 259, 265, 270, 275, 277, 281, 284, 286, - 290, 293, 294, 300, 301, 309, 310, 317, 322, 325, - 328, 329, 334, 337, 338, 346, 348, 350, 352, 354, - 360, 365, 370, 378, 386, 394, 402, 411, 414, 416, - 420, 422, 424, 428, 433, 435, 436, 442, 445, 447, - 449, 451, 456, 458, 463, 468, 471, 473, 474, 476, - 478, 480, 482, 484, 486, 488, 491, 492, 494, 496, - 498, 500, 502, 504, 506, 508, 510, 512, 516, 520, - 527, 529, 530, 536, 539, 543, 544, 545, 553, 557, - 561, 562, 566, 568, 571, 573, 576, 581, 586, 590, - 594, 596, 601, 605, 606, 608, 610, 611, 614, 618, - 619, 622, 625, 629, 634, 637, 640, 643, 647, 651, - 655, 659, 663, 667, 671, 675, 679, 683, 687, 691, - 695, 699, 703, 707, 713, 717, 721, 726, 728, 730, - 735, 740, 745, 750, 755, 762, 769, 776, 781, 788, - 793, 795, 802, 809, 816, 821, 826, 830, 831, 836, - 837, 842, 843, 845, 847, 848, 849, 850, 851, 852, - 853, 872, 873, 874, 875, 876, 877, 896, 897, 898, - 906, 908, 910, 912, 914, 916, 920, 921, 924, 928, - 931, 938, 949, 952, 954, 955, 957, 960, 961, 962, - 966, 967, 968, 969, 970, 982, 987, 988, 991, 992, - 993, 1000, 1002, 1003, 1007, 1013, 1014, 1018, 1019, 1022, - 1023, 1029, 1031, 1034, 1039, 1045, 1052, 1054, 1057, 1058, - 1061, 1066, 1071, 1080, 1082, 1086, 1087, 1097, 1098, 1106, - 1107 -}; -static const short yyrhs[] = -{ - 115, 152, 0, 116, 142, 0, 126, 238, 0, 117, - 140, 0, 4, 0, 0, 141, 4, 10, 201, 0, - 0, 143, 144, 0, 144, 145, 104, 0, 0, 99, - 201, 0, 99, 201, 131, 201, 0, 4, 0, 100, - 0, 106, 147, 0, 105, 0, 110, 4, 10, 201, - 0, 110, 4, 131, 201, 0, 110, 4, 201, 0, - 109, 4, 0, 101, 4, 131, 201, 0, 101, 4, - 201, 0, 101, 4, 10, 201, 0, 38, 4, 10, - 201, 0, 38, 4, 131, 201, 0, 94, 4, 10, - 201, 0, 94, 4, 131, 201, 0, 102, 149, 0, - 103, 148, 0, 107, 4, 0, 112, 4, 131, 4, - 0, 112, 4, 131, 3, 0, 111, 201, 0, 113, - 3, 0, 118, 150, 0, 119, 151, 0, 0, 61, - 139, 146, 144, 36, 0, 120, 4, 0, 0, 147, - 131, 4, 0, 147, 4, 0, 0, 4, 0, 148, - 131, 4, 0, 4, 0, 149, 131, 4, 0, 0, - 4, 0, 150, 131, 4, 0, 4, 0, 151, 4, - 0, 151, 131, 4, 0, 0, 153, 154, 0, 154, - 155, 0, 0, 183, 0, 162, 0, 230, 0, 192, - 0, 193, 0, 195, 0, 197, 0, 164, 0, 240, - 0, 132, 0, 70, 37, 4, 133, 0, 71, 37, - 139, 133, 0, 92, 37, 139, 133, 0, 56, 37, - 4, 133, 0, 56, 37, 4, 131, 4, 131, 4, - 133, 0, 58, 37, 4, 133, 0, 57, 0, 59, - 0, 90, 37, 158, 133, 0, 0, 91, 156, 37, - 158, 133, 0, 72, 37, 139, 133, 0, 0, 61, - 139, 157, 154, 36, 0, 85, 37, 198, 133, 0, - 119, 37, 151, 133, 0, 4, 0, 158, 131, 4, - 0, 158, 4, 0, 5, 0, 158, 131, 5, 0, - 158, 5, 0, 0, 98, 37, 159, 158, 133, 0, - 0, 158, 131, 98, 37, 160, 158, 133, 0, 0, - 158, 98, 37, 161, 158, 133, 0, 46, 53, 163, - 54, 0, 163, 206, 0, 163, 164, 0, 0, 73, - 37, 4, 133, 0, 181, 180, 0, 0, 108, 165, - 37, 201, 131, 4, 133, 0, 4, 0, 32, 0, - 15, 0, 166, 0, 130, 37, 168, 133, 166, 0, - 51, 37, 166, 133, 0, 52, 37, 166, 133, 0, - 51, 37, 52, 37, 166, 133, 133, 0, 51, 37, - 51, 37, 166, 133, 133, 0, 52, 37, 51, 37, - 166, 133, 133, 0, 52, 37, 52, 37, 166, 133, - 133, 0, 51, 37, 130, 37, 168, 133, 166, 133, - 0, 168, 166, 0, 166, 0, 169, 182, 167, 0, - 167, 0, 4, 0, 134, 169, 135, 0, 167, 37, - 169, 133, 0, 170, 0, 0, 127, 37, 172, 170, - 133, 0, 181, 180, 0, 89, 0, 132, 0, 93, - 0, 51, 37, 93, 133, 0, 171, 0, 176, 37, - 199, 133, 0, 87, 37, 177, 133, 0, 174, 173, - 0, 173, 0, 0, 174, 0, 41, 0, 42, 0, - 43, 0, 44, 0, 45, 0, 199, 0, 10, 177, - 0, 0, 6, 0, 7, 0, 8, 0, 9, 0, - 11, 0, 12, 0, 13, 0, 14, 0, 132, 0, - 131, 0, 4, 10, 199, 0, 4, 179, 199, 0, - 97, 37, 4, 10, 199, 133, 0, 131, 0, 0, - 62, 53, 185, 184, 54, 0, 184, 185, 0, 184, - 131, 185, 0, 0, 0, 4, 186, 189, 16, 187, - 182, 188, 0, 86, 10, 199, 0, 88, 10, 199, - 0, 0, 37, 190, 133, 0, 191, 0, 190, 191, - 0, 4, 0, 136, 4, 0, 80, 37, 139, 133, - 0, 81, 37, 194, 133, 0, 81, 37, 133, 0, - 194, 182, 139, 0, 139, 0, 82, 37, 196, 133, - 0, 196, 182, 139, 0, 0, 83, 0, 84, 0, - 0, 4, 198, 0, 4, 131, 198, 0, 0, 200, - 201, 0, 31, 201, 0, 37, 201, 133, 0, 74, - 37, 201, 133, 0, 136, 201, 0, 30, 201, 0, - 137, 201, 0, 201, 32, 201, 0, 201, 33, 201, - 0, 201, 34, 201, 0, 201, 30, 201, 0, 201, - 31, 201, 0, 201, 28, 201, 0, 201, 29, 201, - 0, 201, 22, 201, 0, 201, 23, 201, 0, 201, - 26, 201, 0, 201, 27, 201, 0, 201, 24, 201, - 0, 201, 25, 201, 0, 201, 21, 201, 0, 201, - 20, 201, 0, 201, 19, 201, 0, 201, 15, 201, - 16, 201, 0, 201, 18, 201, 0, 201, 17, 201, - 0, 69, 37, 4, 133, 0, 3, 0, 55, 0, - 75, 37, 4, 133, 0, 76, 37, 4, 133, 0, - 77, 37, 4, 133, 0, 102, 37, 201, 133, 0, - 38, 37, 201, 133, 0, 38, 37, 201, 131, 201, - 133, 0, 48, 37, 201, 131, 201, 133, 0, 49, - 37, 201, 131, 201, 133, 0, 50, 37, 201, 133, - 0, 60, 37, 4, 131, 201, 133, 0, 39, 37, - 201, 133, 0, 4, 0, 78, 37, 201, 131, 201, - 133, 0, 79, 37, 201, 131, 201, 133, 0, 108, - 37, 201, 131, 4, 133, 0, 86, 37, 4, 133, - 0, 88, 37, 4, 133, 0, 95, 25, 4, 0, - 0, 95, 37, 201, 133, 0, 0, 96, 37, 201, - 133, 0, 0, 128, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 4, 207, 221, 203, 204, 208, 205, - 53, 209, 175, 54, 210, 224, 202, 225, 178, 211, - 182, 0, 0, 0, 0, 0, 0, 68, 212, 222, - 223, 203, 204, 213, 53, 214, 226, 54, 215, 224, - 202, 225, 178, 216, 182, 0, 0, 0, 91, 217, - 221, 218, 53, 163, 54, 0, 64, 0, 65, 0, - 66, 0, 67, 0, 68, 0, 37, 219, 133, 0, - 0, 37, 133, 0, 201, 220, 16, 0, 220, 16, - 0, 40, 37, 201, 133, 220, 16, 0, 40, 37, - 201, 133, 39, 37, 201, 133, 220, 16, 0, 201, - 16, 0, 16, 0, 0, 85, 0, 25, 4, 0, - 0, 0, 225, 16, 4, 0, 0, 0, 0, 0, - 226, 4, 227, 53, 175, 54, 228, 225, 178, 229, - 182, 0, 47, 53, 231, 54, 0, 0, 231, 232, - 0, 0, 0, 4, 233, 235, 236, 234, 132, 0, - 201, 0, 0, 4, 237, 236, 0, 95, 37, 201, - 133, 236, 0, 0, 37, 201, 133, 0, 0, 239, - 242, 0, 0, 241, 125, 53, 242, 54, 0, 243, - 0, 242, 243, 0, 53, 245, 54, 132, 0, 121, - 53, 245, 54, 132, 0, 121, 53, 245, 54, 244, - 132, 0, 121, 0, 244, 121, 0, 0, 246, 132, - 0, 123, 16, 246, 132, 0, 124, 16, 246, 132, - 0, 123, 16, 246, 132, 124, 16, 246, 132, 0, - 122, 0, 246, 132, 122, 0, 0, 246, 132, 119, - 4, 53, 247, 246, 249, 54, 0, 0, 119, 4, - 53, 248, 246, 249, 54, 0, 0, 132, 0 -}; - -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 163, 165, 166, 167, 171, 174, 174, 184, 184, - 197, 199, 202, 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, 249, 249, - 253, 255, 258, 260, 261, 264, 267, 270, 273, 277, - 279, 280, 283, 286, 288, 292, 292, 303, 305, 310, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 323, 325, 327, 330, 332, 334, 336, 338, 339, 339, - 343, 345, 345, 349, 353, 356, 360, 363, 366, 369, - 372, 375, 375, 379, 379, 383, 383, 389, 393, 395, - 396, 399, 402, 403, 403, 410, 415, 419, 425, 432, - 438, 444, 450, 456, 462, 468, 474, 482, 491, 502, - 511, 522, 531, 535, 541, 543, 543, 549, 551, 555, - 556, 561, 566, 567, 572, 578, 580, 583, 585, 588, - 591, 593, 595, 597, 601, 611, 614, 617, 620, 622, - 624, 626, 628, 630, 632, 637, 637, 641, 646, 654, - 661, 662, 665, 669, 671, 672, 676, 676, 683, 691, - 700, 703, 706, 708, 711, 714, 718, 723, 725, 729, - 732, 737, 739, 742, 745, 748, 752, 757, 766, 777, - 777, 782, 785, 787, 789, 791, 793, 796, 798, 800, - 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, - 822, 824, 826, 828, 830, 832, 834, 836, 838, 841, - 843, 845, 847, 849, 851, 853, 855, 857, 859, 868, - 870, 872, 874, 876, 878, 880, 885, 887, 890, 892, - 895, 897, 900, 902, 903, 906, 906, 906, 906, 906, - 906, 926, 926, 926, 926, 926, 926, 944, 944, 944, - 957, 959, 960, 961, 962, 965, 967, 968, 971, 973, - 974, 979, 983, 985, 988, 991, 995, 998, 1001, 1006, - 1019, 1021, 1021, 1021, 1021, 1037, 1041, 1043, 1046, 1046, - 1046, 1056, 1100, 1105, 1117, 1124, 1129, 1137, 1137, 1151, - 1151, 1161, 1163, 1166, 1171, 1175, 1181, 1186, 1192, 1197, - 1201, 1205, 1209, 1215, 1220, 1224, 1224, 1234, 1234, 1246, - 1248 -}; -#endif - - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "INT", "NAME", "LNAME", "PLUSEQ", "MINUSEQ", - "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ", - "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'", - "'>'", "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'", - "'%'", "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", "AS_NEEDED", "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", "','", "';'", "')'", "'['", "']'", "'!'", "'~'", "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", "@7", "@8", "@9", "sections", "sec_or_group_p1", - "statement_anywhere", "@10", "wildcard_name", "wildcard_spec", - "exclude_name_list", "file_NAME_list", "input_section_spec_no_keep", - "input_section_spec", "@11", "statement", "statement_list", - "statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op", - "end", "assignment", "opt_comma", "memory", "memory_spec_list", - "memory_spec", "@12", "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", "@13", "exp", "memspec_at_opt", - "opt_at", "opt_subalign", "sect_constraint", "section", "@14", "@15", - "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25", - "type", "atype", "opt_exp_with_type", "opt_exp_without_type", - "opt_nocrossrefs", "memspec_opt", "phdr_opt", "overlay_section", "@26", - "@27", "@28", "phdrs", "phdr_list", "phdr", "@29", "@30", "phdr_type", - "phdr_qualifiers", "phdr_val", "version_script_file", "@31", "version", - "@32", "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns", - "@33", "@34", "opt_semicolon", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 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, 158, 160, 158, 161, 158, 162, 163, 163, - 163, 164, 164, 165, 164, 166, 166, 166, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 168, 168, 169, - 169, 170, 170, 170, 171, 172, 171, 173, 173, 173, - 173, 173, 173, 173, 173, 174, 174, 175, 175, 176, - 176, 176, 176, 176, 177, 178, 178, 179, 179, 179, - 179, 179, 179, 179, 179, 180, 180, 181, 181, 181, - 182, 182, 183, 184, 184, 184, 186, 185, 187, 188, - 189, 189, 190, 190, 191, 191, 192, 193, 193, 194, - 194, 195, 196, 196, 197, 197, 198, 198, 198, 200, - 199, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 202, 202, 203, 203, - 204, 204, 205, 205, 205, 207, 208, 209, 210, 211, - 206, 212, 213, 214, 215, 216, 206, 217, 218, 206, - 219, 219, 219, 219, 219, 220, 220, 220, 221, 221, - 221, 221, 222, 222, 223, 223, 224, 224, 225, 225, - 226, 227, 228, 229, 226, 230, 231, 231, 233, 234, - 232, 235, 236, 236, 236, 237, 237, 239, 238, 241, - 240, 242, 242, 243, 243, 243, 244, 244, 245, 245, - 245, 245, 245, 246, 246, 247, 246, 248, 246, 249, - 249 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 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, 0, 5, 0, 7, 0, 6, 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, 4, 4, 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[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 0, 55, 8, 6, 297, 1, 58, 2, 11, 4, - 0, 3, 0, 56, 9, 0, 308, 0, 298, 301, - 0, 0, 0, 0, 75, 0, 76, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 185, 0, 0, - 78, 0, 0, 103, 0, 68, 57, 60, 66, 0, - 59, 62, 63, 64, 65, 61, 67, 0, 14, 0, - 0, 0, 0, 15, 0, 0, 0, 17, 44, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 308, 302, 147, 148, - 149, 150, 189, 151, 152, 153, 154, 189, 100, 286, - 0, 0, 5, 81, 0, 0, 0, 0, 0, 0, - 0, 183, 186, 0, 0, 0, 0, 0, 0, 156, - 155, 102, 0, 0, 38, 0, 217, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 0, 47, 29, 45, 30, 16, 31, 21, - 0, 34, 0, 35, 50, 36, 52, 37, 40, 10, - 7, 0, 0, 0, 0, 309, 0, 157, 0, 158, - 0, 0, 0, 0, 58, 166, 165, 0, 0, 0, - 0, 0, 178, 180, 161, 161, 186, 0, 85, 88, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 195, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, - 43, 0, 0, 0, 20, 0, 0, 53, 0, 317, - 0, 0, 303, 0, 314, 0, 190, 245, 97, 251, - 257, 99, 98, 288, 285, 287, 0, 72, 74, 299, - 170, 0, 69, 70, 80, 101, 176, 160, 177, 0, - 181, 0, 186, 187, 83, 91, 87, 90, 0, 0, - 77, 0, 71, 189, 0, 84, 0, 25, 26, 41, - 27, 28, 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 215, 214, 212, 211, 210, 204, 205, 208, 209, - 206, 207, 202, 203, 200, 201, 197, 198, 199, 13, - 24, 22, 48, 46, 42, 18, 19, 33, 32, 51, - 54, 0, 310, 311, 0, 306, 304, 0, 266, 0, - 266, 0, 0, 82, 0, 0, 162, 0, 163, 179, - 182, 188, 0, 95, 86, 89, 0, 79, 0, 0, - 300, 39, 0, 223, 229, 0, 0, 227, 0, 216, - 193, 219, 220, 221, 0, 0, 234, 235, 222, 0, - 0, 319, 0, 315, 307, 305, 0, 0, 266, 0, - 239, 273, 0, 274, 258, 291, 292, 0, 174, 0, - 0, 172, 0, 164, 0, 0, 93, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 320, 0, 0, - 0, 260, 261, 262, 263, 264, 267, 0, 0, 0, - 0, 269, 0, 241, 272, 275, 239, 0, 295, 0, - 289, 0, 175, 171, 173, 0, 161, 92, 0, 0, - 104, 224, 225, 226, 228, 231, 232, 233, 318, 0, - 319, 265, 0, 268, 0, 0, 246, 241, 100, 0, - 292, 0, 0, 73, 189, 0, 96, 0, 312, 0, - 266, 0, 0, 244, 252, 0, 0, 293, 0, 290, - 168, 0, 167, 94, 316, 0, 0, 238, 0, 242, - 243, 0, 0, 259, 296, 292, 189, 0, 270, 240, - 247, 253, 294, 169, 0, 137, 280, 266, 121, 107, - 106, 139, 140, 141, 142, 143, 0, 0, 0, 128, - 130, 0, 0, 129, 0, 108, 0, 124, 132, 136, - 138, 0, 0, 0, 0, 0, 0, 0, 189, 125, - 0, 105, 0, 120, 161, 0, 135, 248, 189, 127, - 281, 254, 271, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 144, 0, 118, 0, 0, 122, 0, 161, - 277, 0, 0, 277, 0, 0, 131, 0, 110, 0, - 0, 111, 134, 105, 0, 0, 117, 119, 123, 0, - 237, 133, 137, 237, 0, 0, 0, 0, 0, 126, - 109, 276, 0, 278, 0, 278, 0, 0, 0, 0, - 0, 0, 146, 282, 146, 113, 112, 0, 114, 115, - 236, 189, 0, 249, 278, 255, 116, 145, 279, 161, - 146, 161, 250, 283, 256, 161, 284, 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 687, 103, 9, 10, 7, 8, 14, 78, 210, 157, - 156, 154, 165, 167, 5, 6, 13, 46, 114, 184, - 201, 392, 489, 445, 47, 180, 48, 117, 575, 576, - 615, 594, 577, 578, 613, 579, 580, 581, 582, 611, - 673, 97, 121, 49, 618, 50, 291, 186, 290, 486, - 532, 385, 440, 441, 51, 52, 194, 53, 195, 54, - 197, 612, 178, 215, 653, 473, 506, 541, 282, 378, - 523, 555, 620, 679, 379, 542, 556, 623, 681, 380, - 477, 467, 429, 430, 433, 476, 640, 662, 584, 622, - 674, 685, 55, 181, 285, 381, 512, 436, 480, 510, - 11, 12, 56, 57, 18, 19, 377, 84, 85, 460, - 371, 458 -}; - -static const short yypact[] = -{ - 139,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 18,-32768, -35, 759, 1346, 52, 180, 14, -35,-32768, - 391, 26, 74, 96,-32768, 162,-32768, 85, 149, 196, - 203, 220, 232, 254, 255, 273,-32768,-32768, 291, 292, - -32768, 293, 295,-32768, 296,-32768,-32768,-32768,-32768, -78, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 98,-32768, 242, - 85, 332, 672,-32768, 334, 336, 341,-32768,-32768, 342, - 354, 356, 672, 357, 360, 361, 363, 371, 283, 672, - 372,-32768, 373, 375, 323, 262, 180,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 403, 404,-32768,-32768, 405, 410, 85, 85, 411, 85, - 13,-32768, 412, 37, 358, 85, 414, 384, 363,-32768, - -32768,-32768, 374, 25,-32768, 83,-32768,-32768, 672, 672, - 672, 387, 388, 389, 392, 393,-32768, 394, 397, 398, - 399, 406, 407, 413, 415, 418, 419, 422, 424, 672, - 672, 1474, 35,-32768, 311,-32768, 316, 11,-32768,-32768, - 435, 1704, 338,-32768,-32768, 339,-32768, 33,-32768,-32768, - 1704, 423, -95, -95, 335, -16, 417,-32768, 672,-32768, - 258, 42, 3, 344,-32768,-32768,-32768, 345, 347, 348, - 349, 364,-32768,-32768, 133, 167, 36, 365,-32768,-32768, - 438, 24, 37, 366, 477, 672, 7, -35, 672, 672, - -32768, 672, 672,-32768,-32768, 940, 672, 672, 672, 672, - 672, 489, 490, 672, 492, 496, 497, 672, 672, 498, - 499, 672, 672,-32768,-32768, 672, 672, 672, 672, 672, - 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, - 672, 672, 672, 672, 672, 672, 672, 1704, 501, 503, - -32768, 504, 672, 672, 1704, 248, 511,-32768, 512,-32768, - 390, 401,-32768, 515,-32768, -45, 1704, 391,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768, 516,-32768,-32768, 824, - 502, 21,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 85, - -32768, 85, 412,-32768,-32768,-32768,-32768,-32768, 505, 127, - -32768, 77,-32768,-32768, 1494,-32768, 47, 1704, 1704, 1368, - 1704, 1704,-32768, 253, 960, 1514, 1534, 980, 409, 402, - 1000, 408, 416, 425, 1554, 1589, 426, 427, 1020, 1609, - 1671, 1037, 1153, 770, 1268, 660, 920, 920, 285, 285, - 285, 285, 186, 186, 256, 256,-32768,-32768,-32768, 1704, - 1704, 1704,-32768,-32768,-32768, 1704, 1704,-32768,-32768,-32768, - -32768, -95, 113, -16, 481,-32768,-32768, 117, 514, 593, - 514, 672, 430,-32768, 9, 520,-32768, 405,-32768,-32768, - -32768,-32768, 37,-32768,-32768,-32768, 509,-32768, 432, 534, - -32768,-32768, 672,-32768,-32768, 672, 672,-32768, 672,-32768, - -32768,-32768,-32768,-32768, 672, 672,-32768,-32768,-32768, 543, - 672, 436, 532,-32768,-32768,-32768, 304, 513, 1629, 540, - 462,-32768, 1726, 482,-32768, 1704, 22, 566,-32768, 569, - 8,-32768, 491,-32768, 103, 37,-32768,-32768, 442, 1057, - 1077, 1097, 1117, 1137, 1174, 443, 1704, -16, 524, -95, - -95,-32768,-32768,-32768,-32768,-32768,-32768, 446, 672, 163, - 564,-32768, 544, 486,-32768,-32768, 462, 531, 548, 549, - -32768, 454,-32768,-32768,-32768, 584, 464,-32768, 111, 37, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 466, - 436,-32768, 1194,-32768, 672, 562,-32768, 486,-32768, 672, - 22, 672, 469,-32768,-32768, 517,-32768, 114, -16, 550, - 272, 1214, 672, 177,-32768, 320, 1234,-32768, 1254,-32768, - -32768, 596,-32768,-32768,-32768, 570, 587,-32768, 1291,-32768, - -32768, 555, 557,-32768,-32768, 22,-32768, 672,-32768,-32768, - -32768,-32768,-32768,-32768, 1311, 692,-32768, 574, 518,-32768, - -32768,-32768,-32768,-32768,-32768,-32768, 575, 576, 577,-32768, - -32768, 578, 580,-32768, 207,-32768, 581,-32768,-32768,-32768, - 692, 565, 583, -78, 45, 605, 46, 381,-32768,-32768, - 211,-32768, 588,-32768, 132, 207,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 589, 590, 495, 592, 500, 597, 598, - 506, 507,-32768, 73,-32768, 15, 209,-32768, 207, 194, - 611, 519, 585, 611, 211, 211,-32768, 211,-32768, 211, - 211,-32768,-32768, 521, 522, 211,-32768,-32768,-32768, 633, - 551,-32768, 692, 551, 523, 525, 16, 526, 527,-32768, - -32768,-32768, 619,-32768, 591,-32768, 528, 530, 211, 533, - 541, 643, 53,-32768, 53,-32768,-32768, 545,-32768,-32768, - -32768,-32768, 645,-32768,-32768,-32768,-32768,-32768,-32768, 464, - 53, 464,-32768,-32768,-32768, 464,-32768, 657, 664,-32768 -}; - -static const short yypgoto[] = -{ - -32768, -51,-32768,-32768,-32768,-32768, 455,-32768,-32768,-32768, - -32768,-32768,-32768, 559,-32768,-32768, 529,-32768,-32768,-32768, - -192,-32768,-32768,-32768,-32768, 165, -174,-32768, -167, -538, - 70, 104, 67,-32768,-32768, 118,-32768, 58,-32768, 34, - -620,-32768, 121, -512, -193,-32768,-32768, -259,-32768,-32768, - -32768,-32768,-32768, 266,-32768,-32768,-32768,-32768,-32768,-32768, - -173, -92,-32768, -58, 65, 236, 208,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, -394, 337,-32768,-32768, 91, -622,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -494,-32768, - -32768,-32768,-32768,-32768, 535, -15,-32768, 630, -165,-32768, - -32768, 218 -}; - - -#define YYLAST 1760 - - -static const short yytable[] = -{ - 177, 299, 301, 87, 151, 179, 281, 270, 271, 124, - 311, 267, 438, 438, 161, 260, 527, 102, 16, 591, - 591, 170, 15, 303, 80, 185, 478, 81, 306, 307, - 559, 559, 388, 664, 470, 208, 593, 267, 126, 127, - 196, 198, 199, 583, 675, 255, 283, 560, 560, 600, - 591, 552, 680, 119, 120, 188, 189, 593, 191, 193, - 683, 559, 79, 671, 203, 128, 129, 86, 583, 672, - 213, 214, 130, 131, 132, 386, 375, 633, 560, 98, - 637, 306, 307, 133, 134, 135, 17, 376, 559, 102, - 136, 233, 234, 211, 257, 137, 284, 603, 604, 601, - 16, 400, 264, 273, 138, 560, 274, 306, 307, 139, - 140, 141, 142, 143, 144, 306, 307, 479, 306, 307, - 276, 145, 308, 146, 592, 567, 536, 99, 443, 391, - 583, 394, 395, 100, 286, 200, 287, 147, 268, 605, - 315, 483, 261, 148, 439, 439, 192, 314, 635, 658, - 317, 318, 387, 320, 321, 309, 209, 310, 323, 324, - 325, 326, 327, 585, 268, 330, 256, 302, 17, 334, - 335, 149, 150, 338, 339, 308, 606, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 101, - 444, 308, 104, 572, 365, 366, 421, 574, 309, 308, - 397, 591, 308, 591, 212, 591, 249, 250, 251, 252, - 253, 398, 559, 122, 559, 396, 559, 461, 462, 463, - 464, 465, 273, 105, 309, 274, 487, 422, 424, 560, - 106, 560, 309, 560, 516, 309, 123, 533, 389, 425, - 390, 367, 368, 488, 1, 2, 3, 107, 592, 567, - 603, 604, 277, 297, 297, 4, 298, 617, 235, 108, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 251, 252, - 253, 109, 110, 515, 499, 500, 466, 517, 297, 80, - 300, 87, 81, 82, 83, 539, 540, 126, 127, 469, - 111, 535, 278, 247, 248, 249, 250, 251, 252, 253, - 428, 432, 428, 435, 277, 297, 279, 638, 112, 113, - 115, 32, 116, 118, 128, 129, 125, 572, 152, 606, - 153, 130, 131, 132, 449, 155, 158, 450, 451, 280, - 452, 281, 133, 134, 135, 42, 453, 454, 159, 136, - 160, 162, 456, 163, 137, 164, 43, 166, 461, 462, - 463, 464, 465, 138, 543, 168, 171, 174, 139, 140, - 141, 142, 143, 144, 402, 591, 403, 169, 279, 172, - 145, 173, 146, 32, 175, 202, 559, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 147, 182, 183, 185, - 502, 280, 148, 560, 187, 190, 196, 42, 204, 607, - 610, 205, 530, 614, 216, 217, 218, 207, 43, 219, - 220, 221, 608, 609, 222, 223, 224, 466, 126, 127, - 149, 150, 258, 225, 226, 262, 521, 259, 636, 607, - 227, 526, 228, 528, 553, 229, 230, 644, 645, 231, - 614, 232, 647, 648, 538, 128, 129, 272, 650, 265, - 266, 275, 130, 131, 132, 305, 269, 288, 292, 636, - 293, 294, 295, 133, 134, 135, 682, 313, 684, 554, - 136, 667, 686, 328, 329, 137, 331, 296, 304, 312, - 332, 333, 336, 337, 138, 362, 621, 363, 364, 139, - 140, 141, 142, 143, 144, 369, 370, 126, 127, 374, - 382, 145, 372, 146, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 373, 423, 409, 442, 147, 448, 384, - 408, 411, 393, 148, 128, 129, 446, 455, 459, 412, - 468, 426, 131, 132, 427, -105, 471, 472, 413, 416, - 417, 437, 133, 134, 135, 447, 263, 475, 457, 136, - 481, 149, 150, 482, 137, 490, 497, 485, 498, 501, - 503, 504, 505, 138, 508, 509, 511, 513, 139, 140, - 141, 142, 143, 144, 514, 297, 126, 127, 518, 522, - 145, 529, 146, 548, 534, 531, 546, 547, 550, 431, - 551, 469, 586, 587, 588, 589, 147, 590, 595, 597, - 598, 602, 148, 128, 129, 616, 624, 625, 626, 627, - 130, 131, 132, 628, 629, 630, 639, 651, 642, 631, - 632, 133, 134, 135, 661, 663, 652, 670, 136, 678, - 149, 150, 641, 137, -121, 649, 656, 688, 657, 659, - 660, 665, 138, 666, 689, 319, 668, 139, 140, 141, - 142, 143, 144, 525, 669, 126, 127, 206, 676, 145, - 634, 146, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 147, 558, 646, 596, 619, - 654, 148, 128, 129, 599, 677, 484, 559, 655, 130, - 131, 132, 507, 289, 643, 524, 176, 434, 519, 0, - 133, 134, 135, 0, 560, 0, 0, 136, 0, 149, - 150, 0, 137, 561, 562, 563, 564, 565, 0, 0, - 0, 138, 316, 566, 567, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 145, 0, - 146, 0, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 0, 0, 0, 0, 568, - 148, 569, 0, 0, 0, 570, 0, 0, 0, 42, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 21, 22, 0, 149, 150, - 0, 0, 0, 0, 0, 23, 24, 25, 26, 571, - 27, 28, 572, 0, 573, 0, 574, 0, 20, 29, - 30, 31, 32, 0, 0, 0, 0, 0, 0, 33, - 34, 35, 36, 37, 38, 0, 0, 0, 0, 39, - 40, 41, 0, 0, 0, 0, 42, 0, 0, 0, - 383, 0, 0, 0, 0, 0, 0, 43, 0, 0, - 21, 22, 0, 0, 0, 0, 0, 0, 44, 0, - 23, 24, 25, 26, -299, 27, 28, 0, 0, 0, - 0, 45, 0, 0, 29, 30, 31, 32, 0, 0, - 0, 0, 0, 0, 33, 34, 35, 36, 37, 38, - 0, 0, 0, 0, 39, 40, 41, 0, 0, 0, - 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 235, 45, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 235, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 235, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 235, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 235, 0, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 235, 322, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 235, 404, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 235, 407, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 235, 410, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 235, 418, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 0, 235, - 491, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 492, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 493, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 494, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 495, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 0, 0, 0, 235, 496, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 235, 520, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 0, 537, 0, 0, - 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, - 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 0, 0, 545, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 59, 60, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 549, 0, 0, 0, 0, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 557, 62, 63, 64, 65, 66, - -41, 67, 68, 69, 0, 70, 71, 72, 73, 74, - 0, 0, 61, 0, 75, 76, 77, 62, 63, 64, - 65, 66, 0, 67, 68, 69, 0, 70, 71, 72, - 73, 74, 0, 0, 0, 0, 75, 76, 77, 235, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 235, - 0, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 254, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 235, 399, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 235, 405, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 0, 406, 469, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 414, 235, 420, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, - 415, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 0, - 419, 235, 474, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253 -}; - -static const short yycheck[] = -{ - 92, 194, 195, 18, 62, 97, 180, 172, 173, 60, - 202, 4, 4, 4, 72, 4, 510, 4, 53, 4, - 4, 79, 4, 196, 119, 4, 4, 122, 4, 5, - 15, 15, 291, 655, 428, 10, 574, 4, 3, 4, - 4, 4, 5, 555, 664, 10, 4, 32, 32, 4, - 4, 545, 674, 131, 132, 106, 107, 595, 109, 110, - 680, 15, 10, 10, 115, 30, 31, 53, 580, 16, - 128, 129, 37, 38, 39, 54, 121, 4, 32, 53, - 618, 4, 5, 48, 49, 50, 121, 132, 15, 4, - 55, 149, 150, 10, 152, 60, 54, 51, 52, 54, - 53, 54, 160, 119, 69, 32, 122, 4, 5, 74, - 75, 76, 77, 78, 79, 4, 5, 95, 4, 5, - 178, 86, 98, 88, 51, 52, 520, 53, 387, 302, - 642, 4, 5, 37, 131, 98, 133, 102, 131, 93, - 133, 133, 131, 108, 136, 136, 133, 205, 133, 133, - 208, 209, 131, 211, 212, 131, 131, 133, 216, 217, - 218, 219, 220, 557, 131, 223, 131, 131, 121, 227, - 228, 136, 137, 231, 232, 98, 130, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 37, - 392, 98, 53, 130, 262, 263, 371, 134, 131, 98, - 133, 4, 98, 4, 131, 4, 30, 31, 32, 33, - 34, 313, 15, 125, 15, 98, 15, 64, 65, 66, - 67, 68, 119, 37, 131, 122, 133, 124, 121, 32, - 37, 32, 131, 32, 133, 131, 4, 133, 299, 132, - 301, 3, 4, 445, 115, 116, 117, 37, 51, 52, - 51, 52, 4, 131, 131, 126, 133, 135, 15, 37, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 32, 33, - 34, 37, 37, 486, 459, 460, 133, 489, 131, 119, - 133, 316, 122, 123, 124, 128, 129, 3, 4, 37, - 37, 39, 54, 28, 29, 30, 31, 32, 33, 34, - 378, 379, 380, 381, 4, 131, 68, 133, 37, 37, - 37, 73, 37, 37, 30, 31, 4, 130, 4, 130, - 4, 37, 38, 39, 402, 4, 4, 405, 406, 91, - 408, 525, 48, 49, 50, 97, 414, 415, 4, 55, - 4, 4, 420, 3, 60, 4, 108, 4, 64, 65, - 66, 67, 68, 69, 54, 4, 4, 54, 74, 75, - 76, 77, 78, 79, 131, 4, 133, 104, 68, 16, - 86, 16, 88, 73, 132, 37, 15, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 102, 4, 4, 4, - 468, 91, 108, 32, 4, 4, 4, 97, 4, 586, - 587, 37, 514, 590, 37, 37, 37, 53, 108, 37, - 37, 37, 51, 52, 37, 37, 37, 133, 3, 4, - 136, 137, 131, 37, 37, 10, 504, 131, 615, 616, - 37, 509, 37, 511, 546, 37, 37, 624, 625, 37, - 627, 37, 629, 630, 522, 30, 31, 132, 635, 131, - 131, 54, 37, 38, 39, 37, 53, 133, 133, 646, - 133, 133, 133, 48, 49, 50, 679, 10, 681, 547, - 55, 658, 685, 4, 4, 60, 4, 133, 133, 133, - 4, 4, 4, 4, 69, 4, 598, 4, 4, 74, - 75, 76, 77, 78, 79, 4, 4, 3, 4, 4, - 4, 86, 132, 88, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 132, 53, 133, 16, 102, 4, 37, - 131, 133, 37, 108, 30, 31, 37, 4, 16, 133, - 37, 37, 38, 39, 40, 37, 16, 95, 133, 133, - 133, 131, 48, 49, 50, 133, 131, 85, 132, 55, - 4, 136, 137, 4, 60, 133, 133, 86, 54, 133, - 16, 37, 96, 69, 53, 37, 37, 133, 74, 75, - 76, 77, 78, 79, 10, 131, 3, 4, 132, 37, - 86, 132, 88, 16, 54, 88, 10, 37, 53, 16, - 53, 37, 37, 37, 37, 37, 102, 37, 37, 54, - 37, 16, 108, 30, 31, 37, 37, 37, 133, 37, - 37, 38, 39, 133, 37, 37, 25, 4, 53, 133, - 133, 48, 49, 50, 25, 54, 95, 4, 55, 4, - 136, 137, 133, 60, 133, 133, 133, 0, 133, 133, - 133, 133, 69, 133, 0, 210, 133, 74, 75, 76, - 77, 78, 79, 508, 133, 3, 4, 118, 133, 86, - 613, 88, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 102, 4, 627, 580, 595, - 642, 108, 30, 31, 583, 671, 440, 15, 643, 37, - 38, 39, 476, 184, 623, 507, 86, 380, 500, -1, - 48, 49, 50, -1, 32, -1, -1, 55, -1, 136, - 137, -1, 60, 41, 42, 43, 44, 45, -1, -1, - -1, 69, 207, 51, 52, -1, 74, 75, 76, 77, - 78, 79, -1, -1, -1, -1, -1, -1, 86, -1, - 88, -1, -1, 4, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, -1, -1, -1, -1, 87, - 108, 89, -1, -1, -1, 93, -1, -1, -1, 97, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 46, 47, -1, 136, 137, - -1, -1, -1, -1, -1, 56, 57, 58, 59, 127, - 61, 62, 130, -1, 132, -1, 134, -1, 4, 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, -1, -1, -1, - 36, -1, -1, -1, -1, -1, -1, 108, -1, -1, - 46, 47, -1, -1, -1, -1, -1, -1, 119, -1, - 56, 57, 58, 59, 125, 61, 62, -1, -1, -1, - -1, 132, -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, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 119, 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, -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, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 15, 133, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 15, 133, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 15, 133, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 15, 133, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 15, 133, 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, -1, 15, - 133, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, - 133, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, - 133, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, - 133, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, - 133, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, 15, 133, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 15, 133, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, 133, -1, -1, - 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 133, -1, -1, - -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, -1, -1, 133, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 36, -1, 38, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 133, -1, -1, -1, -1, 61, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 94, -1, -1, -1, 133, 99, 100, 101, 102, 103, - 104, 105, 106, 107, -1, 109, 110, 111, 112, 113, - -1, -1, 94, -1, 118, 119, 120, 99, 100, 101, - 102, 103, -1, 105, 106, 107, -1, 109, 110, 111, - 112, 113, -1, -1, -1, -1, 118, 119, 120, 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, -1, 15, 131, 17, 18, 19, 20, - 21, 22, 23, 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, 131, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, 131, 37, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 131, 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, -1, 15, - 131, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 131, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* 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. */ - -#if ! defined (yyoverflow) || defined (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 /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* 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_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - - -#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 /* 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); \ - yychar1 = 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). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ - -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -#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 - -#ifdef 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) -# include -# 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 - -#line 316 "/usr/share/bison/bison.simple" - - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else -int yyparse (void); -# endif -#endif - -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; - -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif - - -/* If nonreentrant, generate the variables here. */ - -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ - -int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ - - 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 yychar1 = 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; - -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif - -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - YYSIZE_T yystacksize = YYINITDEPTH; - - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif - - /* 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; -#if YYLSP_NEEDED - yylsp = yyls; -#endif - 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 (yyssp >= yyss + yystacksize - 1) - { - /* 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. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* 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), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyoverflowlab; -# else - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - 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); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyssp >= yyss + yystacksize - 1) - 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 == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* 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 the semantic value of - the lookahead token. 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]; - -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 6: -#line 175 "ldgram.y" -{ ldlex_defsym(); } - break; -case 7: -#line 177 "ldgram.y" -{ - ldlex_popstate(); - lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree)); - } - break; -case 8: -#line 185 "ldgram.y" -{ - ldlex_mri_script (); - PUSH_ERROR (_("MRI style script")); - } - break; -case 9: -#line 190 "ldgram.y" -{ - ldlex_popstate (); - mri_draw_tree (); - POP_ERROR (); - } - break; -case 14: -#line 205 "ldgram.y" -{ - einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp[0].name); - } - break; -case 15: -#line 208 "ldgram.y" -{ - config.map_filename = "-"; - } - break; -case 18: -#line 214 "ldgram.y" -{ mri_public(yyvsp[-2].name, yyvsp[0].etree); } - break; -case 19: -#line 216 "ldgram.y" -{ mri_public(yyvsp[-2].name, yyvsp[0].etree); } - break; -case 20: -#line 218 "ldgram.y" -{ mri_public(yyvsp[-1].name, yyvsp[0].etree); } - break; -case 21: -#line 220 "ldgram.y" -{ mri_format(yyvsp[0].name); } - break; -case 22: -#line 222 "ldgram.y" -{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);} - break; -case 23: -#line 224 "ldgram.y" -{ mri_output_section(yyvsp[-1].name, yyvsp[0].etree);} - break; -case 24: -#line 226 "ldgram.y" -{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);} - break; -case 25: -#line 228 "ldgram.y" -{ mri_align(yyvsp[-2].name,yyvsp[0].etree); } - break; -case 26: -#line 230 "ldgram.y" -{ mri_align(yyvsp[-2].name,yyvsp[0].etree); } - break; -case 27: -#line 232 "ldgram.y" -{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); } - break; -case 28: -#line 234 "ldgram.y" -{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); } - break; -case 31: -#line 238 "ldgram.y" -{ mri_name(yyvsp[0].name); } - break; -case 32: -#line 240 "ldgram.y" -{ mri_alias(yyvsp[-2].name,yyvsp[0].name,0);} - break; -case 33: -#line 242 "ldgram.y" -{ mri_alias (yyvsp[-2].name, 0, (int) yyvsp[0].bigint.integer); } - break; -case 34: -#line 244 "ldgram.y" -{ mri_base(yyvsp[0].etree); } - break; -case 35: -#line 246 "ldgram.y" -{ mri_truncate ((unsigned int) yyvsp[0].bigint.integer); } - break; -case 38: -#line 250 "ldgram.y" -{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); } - break; -case 39: -#line 252 "ldgram.y" -{ ldlex_popstate (); } - break; -case 40: -#line 254 "ldgram.y" -{ lang_add_entry (yyvsp[0].name, FALSE); } - break; -case 42: -#line 259 "ldgram.y" -{ mri_order(yyvsp[0].name); } - break; -case 43: -#line 260 "ldgram.y" -{ mri_order(yyvsp[0].name); } - break; -case 45: -#line 266 "ldgram.y" -{ mri_load(yyvsp[0].name); } - break; -case 46: -#line 267 "ldgram.y" -{ mri_load(yyvsp[0].name); } - break; -case 47: -#line 272 "ldgram.y" -{ mri_only_load(yyvsp[0].name); } - break; -case 48: -#line 274 "ldgram.y" -{ mri_only_load(yyvsp[0].name); } - break; -case 49: -#line 278 "ldgram.y" -{ yyval.name = NULL; } - break; -case 52: -#line 285 "ldgram.y" -{ ldlang_add_undef (yyvsp[0].name); } - break; -case 53: -#line 287 "ldgram.y" -{ ldlang_add_undef (yyvsp[0].name); } - break; -case 54: -#line 289 "ldgram.y" -{ ldlang_add_undef (yyvsp[0].name); } - break; -case 55: -#line 293 "ldgram.y" -{ - ldlex_both(); - } - break; -case 56: -#line 297 "ldgram.y" -{ - ldlex_popstate(); - } - break; -case 69: -#line 322 "ldgram.y" -{ lang_add_target(yyvsp[-1].name); } - break; -case 70: -#line 324 "ldgram.y" -{ ldfile_add_library_path (yyvsp[-1].name, FALSE); } - break; -case 71: -#line 326 "ldgram.y" -{ lang_add_output(yyvsp[-1].name, 1); } - break; -case 72: -#line 328 "ldgram.y" -{ lang_add_output_format (yyvsp[-1].name, (char *) NULL, - (char *) NULL, 1); } - break; -case 73: -#line 331 "ldgram.y" -{ lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); } - break; -case 74: -#line 333 "ldgram.y" -{ ldfile_set_output_arch (yyvsp[-1].name, bfd_arch_unknown); } - break; -case 75: -#line 335 "ldgram.y" -{ command_line.force_common_definition = TRUE ; } - break; -case 76: -#line 337 "ldgram.y" -{ command_line.inhibit_common_definition = TRUE ; } - break; -case 78: -#line 340 "ldgram.y" -{ lang_enter_group (); } - break; -case 79: -#line 342 "ldgram.y" -{ lang_leave_group (); } - break; -case 80: -#line 344 "ldgram.y" -{ lang_add_map(yyvsp[-1].name); } - break; -case 81: -#line 346 "ldgram.y" -{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); } - break; -case 82: -#line 348 "ldgram.y" -{ ldlex_popstate (); } - break; -case 83: -#line 350 "ldgram.y" -{ - lang_add_nocrossref (yyvsp[-1].nocrossref); - } - break; -case 85: -#line 358 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum, - (char *)NULL); } - break; -case 86: -#line 361 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum, - (char *)NULL); } - break; -case 87: -#line 364 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum, - (char *)NULL); } - break; -case 88: -#line 367 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum, - (char *)NULL); } - break; -case 89: -#line 370 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum, - (char *)NULL); } - break; -case 90: -#line 373 "ldgram.y" -{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum, - (char *)NULL); } - break; -case 91: -#line 376 "ldgram.y" -{ yyval.integer = as_needed; as_needed = TRUE; } - break; -case 92: -#line 378 "ldgram.y" -{ as_needed = yyvsp[-2].integer; } - break; -case 93: -#line 380 "ldgram.y" -{ yyval.integer = as_needed; as_needed = TRUE; } - break; -case 94: -#line 382 "ldgram.y" -{ as_needed = yyvsp[-2].integer; } - break; -case 95: -#line 384 "ldgram.y" -{ yyval.integer = as_needed; as_needed = TRUE; } - break; -case 96: -#line 386 "ldgram.y" -{ as_needed = yyvsp[-2].integer; } - break; -case 101: -#line 401 "ldgram.y" -{ lang_add_entry (yyvsp[-1].name, FALSE); } - break; -case 103: -#line 403 "ldgram.y" -{ldlex_expression ();} - break; -case 104: -#line 404 "ldgram.y" -{ ldlex_popstate (); - lang_add_assignment (exp_assert (yyvsp[-3].etree, yyvsp[-1].name)); } - break; -case 105: -#line 412 "ldgram.y" -{ - yyval.cname = yyvsp[0].name; - } - break; -case 106: -#line 416 "ldgram.y" -{ - yyval.cname = "*"; - } - break; -case 107: -#line 420 "ldgram.y" -{ - yyval.cname = "?"; - } - break; -case 108: -#line 427 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[0].cname; - yyval.wildcard.sorted = none; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 109: -#line 433 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[0].cname; - yyval.wildcard.sorted = none; - yyval.wildcard.exclude_name_list = yyvsp[-2].name_list; - } - break; -case 110: -#line 439 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-1].cname; - yyval.wildcard.sorted = by_name; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 111: -#line 445 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-1].cname; - yyval.wildcard.sorted = by_alignment; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 112: -#line 451 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-2].cname; - yyval.wildcard.sorted = by_name_alignment; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 113: -#line 457 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-2].cname; - yyval.wildcard.sorted = by_name; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 114: -#line 463 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-2].cname; - yyval.wildcard.sorted = by_alignment_name; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 115: -#line 469 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-2].cname; - yyval.wildcard.sorted = by_alignment; - yyval.wildcard.exclude_name_list = NULL; - } - break; -case 116: -#line 475 "ldgram.y" -{ - yyval.wildcard.name = yyvsp[-1].cname; - yyval.wildcard.sorted = by_name; - yyval.wildcard.exclude_name_list = yyvsp[-3].name_list; - } - break; -case 117: -#line 484 "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 118: -#line 493 "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 119: -#line 504 "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 120: -#line 513 "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 121: -#line 524 "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 122: -#line 532 "ldgram.y" -{ - lang_add_wild (NULL, yyvsp[-1].wildcard_list, ldgram_had_keep); - } - break; -case 123: -#line 536 "ldgram.y" -{ - lang_add_wild (&yyvsp[-3].wildcard, yyvsp[-1].wildcard_list, ldgram_had_keep); - } - break; -case 125: -#line 544 "ldgram.y" -{ ldgram_had_keep = TRUE; } - break; -case 126: -#line 546 "ldgram.y" -{ ldgram_had_keep = FALSE; } - break; -case 128: -#line 552 "ldgram.y" -{ - lang_add_attribute(lang_object_symbols_statement_enum); - } - break; -case 130: -#line 557 "ldgram.y" -{ - - lang_add_attribute(lang_constructors_statement_enum); - } - break; -case 131: -#line 562 "ldgram.y" -{ - constructors_sorted = TRUE; - lang_add_attribute (lang_constructors_statement_enum); - } - break; -case 133: -#line 568 "ldgram.y" -{ - lang_add_data ((int) yyvsp[-3].integer, yyvsp[-1].etree); - } - break; -case 134: -#line 573 "ldgram.y" -{ - lang_add_fill (yyvsp[-1].fill); - } - break; -case 139: -#line 590 "ldgram.y" -{ yyval.integer = yyvsp[0].token; } - break; -case 140: -#line 592 "ldgram.y" -{ yyval.integer = yyvsp[0].token; } - break; -case 141: -#line 594 "ldgram.y" -{ yyval.integer = yyvsp[0].token; } - break; -case 142: -#line 596 "ldgram.y" -{ yyval.integer = yyvsp[0].token; } - break; -case 143: -#line 598 "ldgram.y" -{ yyval.integer = yyvsp[0].token; } - break; -case 144: -#line 603 "ldgram.y" -{ - yyval.fill = exp_get_fill (yyvsp[0].etree, - 0, - "fill value", - lang_first_phase_enum); - } - break; -case 145: -#line 613 "ldgram.y" -{ yyval.fill = yyvsp[0].fill; } - break; -case 146: -#line 614 "ldgram.y" -{ yyval.fill = (fill_type *) 0; } - break; -case 147: -#line 619 "ldgram.y" -{ yyval.token = '+'; } - break; -case 148: -#line 621 "ldgram.y" -{ yyval.token = '-'; } - break; -case 149: -#line 623 "ldgram.y" -{ yyval.token = '*'; } - break; -case 150: -#line 625 "ldgram.y" -{ yyval.token = '/'; } - break; -case 151: -#line 627 "ldgram.y" -{ yyval.token = LSHIFT; } - break; -case 152: -#line 629 "ldgram.y" -{ yyval.token = RSHIFT; } - break; -case 153: -#line 631 "ldgram.y" -{ yyval.token = '&'; } - break; -case 154: -#line 633 "ldgram.y" -{ yyval.token = '|'; } - break; -case 157: -#line 643 "ldgram.y" -{ - lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree)); - } - break; -case 158: -#line 647 "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 159: -#line 655 "ldgram.y" -{ - lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree)); - } - break; -case 166: -#line 677 "ldgram.y" -{ region = lang_memory_region_lookup (yyvsp[0].name, TRUE); } - break; -case 167: -#line 680 "ldgram.y" -{} - break; -case 168: -#line 685 "ldgram.y" -{ region->current = - region->origin = - exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum); -} - break; -case 169: -#line 693 "ldgram.y" -{ region->length = exp_get_vma(yyvsp[0].etree, - ~((bfd_vma)0), - "length", - lang_first_phase_enum); - } - break; -case 170: -#line 702 "ldgram.y" -{ /* dummy action to avoid bison 1.25 error message */ } - break; -case 174: -#line 713 "ldgram.y" -{ lang_set_flags (region, yyvsp[0].name, 0); } - break; -case 175: -#line 715 "ldgram.y" -{ lang_set_flags (region, yyvsp[0].name, 1); } - break; -case 176: -#line 720 "ldgram.y" -{ lang_startup(yyvsp[-1].name); } - break; -case 178: -#line 726 "ldgram.y" -{ ldemul_hll((char *)NULL); } - break; -case 179: -#line 731 "ldgram.y" -{ ldemul_hll(yyvsp[0].name); } - break; -case 180: -#line 733 "ldgram.y" -{ ldemul_hll(yyvsp[0].name); } - break; -case 182: -#line 741 "ldgram.y" -{ ldemul_syslib(yyvsp[0].name); } - break; -case 184: -#line 747 "ldgram.y" -{ lang_float(TRUE); } - break; -case 185: -#line 749 "ldgram.y" -{ lang_float(FALSE); } - break; -case 186: -#line 754 "ldgram.y" -{ - yyval.nocrossref = NULL; - } - break; -case 187: -#line 758 "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 188: -#line 767 "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 189: -#line 777 "ldgram.y" -{ ldlex_expression (); } - break; -case 190: -#line 779 "ldgram.y" -{ ldlex_popstate (); yyval.etree=yyvsp[0].etree;} - break; -case 191: -#line 784 "ldgram.y" -{ yyval.etree = exp_unop ('-', yyvsp[0].etree); } - break; -case 192: -#line 786 "ldgram.y" -{ yyval.etree = yyvsp[-1].etree; } - break; -case 193: -#line 788 "ldgram.y" -{ yyval.etree = exp_unop ((int) yyvsp[-3].integer,yyvsp[-1].etree); } - break; -case 194: -#line 790 "ldgram.y" -{ yyval.etree = exp_unop ('!', yyvsp[0].etree); } - break; -case 195: -#line 792 "ldgram.y" -{ yyval.etree = yyvsp[0].etree; } - break; -case 196: -#line 794 "ldgram.y" -{ yyval.etree = exp_unop ('~', yyvsp[0].etree);} - break; -case 197: -#line 797 "ldgram.y" -{ yyval.etree = exp_binop ('*', yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 198: -#line 799 "ldgram.y" -{ yyval.etree = exp_binop ('/', yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 199: -#line 801 "ldgram.y" -{ yyval.etree = exp_binop ('%', yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 200: -#line 803 "ldgram.y" -{ yyval.etree = exp_binop ('+', yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 201: -#line 805 "ldgram.y" -{ yyval.etree = exp_binop ('-' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 202: -#line 807 "ldgram.y" -{ yyval.etree = exp_binop (LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 203: -#line 809 "ldgram.y" -{ yyval.etree = exp_binop (RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 204: -#line 811 "ldgram.y" -{ yyval.etree = exp_binop (EQ , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 205: -#line 813 "ldgram.y" -{ yyval.etree = exp_binop (NE , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 206: -#line 815 "ldgram.y" -{ yyval.etree = exp_binop (LE , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 207: -#line 817 "ldgram.y" -{ yyval.etree = exp_binop (GE , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 208: -#line 819 "ldgram.y" -{ yyval.etree = exp_binop ('<' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 209: -#line 821 "ldgram.y" -{ yyval.etree = exp_binop ('>' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 210: -#line 823 "ldgram.y" -{ yyval.etree = exp_binop ('&' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 211: -#line 825 "ldgram.y" -{ yyval.etree = exp_binop ('^' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 212: -#line 827 "ldgram.y" -{ yyval.etree = exp_binop ('|' , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 213: -#line 829 "ldgram.y" -{ yyval.etree = exp_trinop ('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 214: -#line 831 "ldgram.y" -{ yyval.etree = exp_binop (ANDAND , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 215: -#line 833 "ldgram.y" -{ yyval.etree = exp_binop (OROR , yyvsp[-2].etree, yyvsp[0].etree); } - break; -case 216: -#line 835 "ldgram.y" -{ yyval.etree = exp_nameop (DEFINED, yyvsp[-1].name); } - break; -case 217: -#line 837 "ldgram.y" -{ yyval.etree = exp_bigintop (yyvsp[0].bigint.integer, yyvsp[0].bigint.str); } - break; -case 218: -#line 839 "ldgram.y" -{ yyval.etree = exp_nameop (SIZEOF_HEADERS,0); } - break; -case 219: -#line 842 "ldgram.y" -{ yyval.etree = exp_nameop (SIZEOF,yyvsp[-1].name); } - break; -case 220: -#line 844 "ldgram.y" -{ yyval.etree = exp_nameop (ADDR,yyvsp[-1].name); } - break; -case 221: -#line 846 "ldgram.y" -{ yyval.etree = exp_nameop (LOADADDR,yyvsp[-1].name); } - break; -case 222: -#line 848 "ldgram.y" -{ yyval.etree = exp_unop (ABSOLUTE, yyvsp[-1].etree); } - break; -case 223: -#line 850 "ldgram.y" -{ yyval.etree = exp_unop (ALIGN_K,yyvsp[-1].etree); } - break; -case 224: -#line 852 "ldgram.y" -{ yyval.etree = exp_binop (ALIGN_K,yyvsp[-3].etree,yyvsp[-1].etree); } - break; -case 225: -#line 854 "ldgram.y" -{ yyval.etree = exp_binop (DATA_SEGMENT_ALIGN, yyvsp[-3].etree, yyvsp[-1].etree); } - break; -case 226: -#line 856 "ldgram.y" -{ yyval.etree = exp_binop (DATA_SEGMENT_RELRO_END, yyvsp[-1].etree, yyvsp[-3].etree); } - break; -case 227: -#line 858 "ldgram.y" -{ yyval.etree = exp_unop (DATA_SEGMENT_END, yyvsp[-1].etree); } - break; -case 228: -#line 860 "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 229: -#line 869 "ldgram.y" -{ yyval.etree = exp_unop (ALIGN_K,yyvsp[-1].etree); } - break; -case 230: -#line 871 "ldgram.y" -{ yyval.etree = exp_nameop (NAME,yyvsp[0].name); } - break; -case 231: -#line 873 "ldgram.y" -{ yyval.etree = exp_binop (MAX_K, yyvsp[-3].etree, yyvsp[-1].etree ); } - break; -case 232: -#line 875 "ldgram.y" -{ yyval.etree = exp_binop (MIN_K, yyvsp[-3].etree, yyvsp[-1].etree ); } - break; -case 233: -#line 877 "ldgram.y" -{ yyval.etree = exp_assert (yyvsp[-3].etree, yyvsp[-1].name); } - break; -case 234: -#line 879 "ldgram.y" -{ yyval.etree = exp_nameop (ORIGIN, yyvsp[-1].name); } - break; -case 235: -#line 881 "ldgram.y" -{ yyval.etree = exp_nameop (LENGTH, yyvsp[-1].name); } - break; -case 236: -#line 886 "ldgram.y" -{ yyval.name = yyvsp[0].name; } - break; -case 237: -#line 887 "ldgram.y" -{ yyval.name = 0; } - break; -case 238: -#line 891 "ldgram.y" -{ yyval.etree = yyvsp[-1].etree; } - break; -case 239: -#line 892 "ldgram.y" -{ yyval.etree = 0; } - break; -case 240: -#line 896 "ldgram.y" -{ yyval.etree = yyvsp[-1].etree; } - break; -case 241: -#line 897 "ldgram.y" -{ yyval.etree = 0; } - break; -case 242: -#line 901 "ldgram.y" -{ yyval.token = ONLY_IF_RO; } - break; -case 243: -#line 902 "ldgram.y" -{ yyval.token = ONLY_IF_RW; } - break; -case 244: -#line 903 "ldgram.y" -{ yyval.token = 0; } - break; -case 245: -#line 906 "ldgram.y" -{ ldlex_expression(); } - break; -case 246: -#line 909 "ldgram.y" -{ ldlex_popstate (); ldlex_script (); } - break; -case 247: -#line 912 "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 248: -#line 918 "ldgram.y" -{ ldlex_popstate (); ldlex_expression (); } - break; -case 249: -#line 920 "ldgram.y" -{ - ldlex_popstate (); - lang_leave_output_section_statement (yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name); - } - break; -case 250: -#line 925 "ldgram.y" -{} - break; -case 251: -#line 927 "ldgram.y" -{ ldlex_expression (); } - break; -case 252: -#line 929 "ldgram.y" -{ ldlex_popstate (); ldlex_script (); } - break; -case 253: -#line 931 "ldgram.y" -{ - lang_enter_overlay (yyvsp[-5].etree, yyvsp[-2].etree); - } - break; -case 254: -#line 936 "ldgram.y" -{ ldlex_popstate (); ldlex_expression (); } - break; -case 255: -#line 938 "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 257: -#line 948 "ldgram.y" -{ ldlex_expression (); } - break; -case 258: -#line 950 "ldgram.y" -{ - ldlex_popstate (); - lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree)); - } - break; -case 260: -#line 958 "ldgram.y" -{ sectype = noload_section; } - break; -case 261: -#line 959 "ldgram.y" -{ sectype = dsect_section; } - break; -case 262: -#line 960 "ldgram.y" -{ sectype = copy_section; } - break; -case 263: -#line 961 "ldgram.y" -{ sectype = info_section; } - break; -case 264: -#line 962 "ldgram.y" -{ sectype = overlay_section; } - break; -case 266: -#line 967 "ldgram.y" -{ sectype = normal_section; } - break; -case 267: -#line 968 "ldgram.y" -{ sectype = normal_section; } - break; -case 268: -#line 972 "ldgram.y" -{ yyval.etree = yyvsp[-2].etree; } - break; -case 269: -#line 973 "ldgram.y" -{ yyval.etree = (etree_type *)NULL; } - break; -case 270: -#line 978 "ldgram.y" -{ yyval.etree = yyvsp[-3].etree; } - break; -case 271: -#line 980 "ldgram.y" -{ yyval.etree = yyvsp[-7].etree; } - break; -case 272: -#line 984 "ldgram.y" -{ yyval.etree = yyvsp[-1].etree; } - break; -case 273: -#line 985 "ldgram.y" -{ yyval.etree = (etree_type *) NULL; } - break; -case 274: -#line 990 "ldgram.y" -{ yyval.integer = 0; } - break; -case 275: -#line 992 "ldgram.y" -{ yyval.integer = 1; } - break; -case 276: -#line 997 "ldgram.y" -{ yyval.name = yyvsp[0].name; } - break; -case 277: -#line 998 "ldgram.y" -{ yyval.name = DEFAULT_MEMORY_REGION; } - break; -case 278: -#line 1003 "ldgram.y" -{ - yyval.section_phdr = NULL; - } - break; -case 279: -#line 1007 "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 281: -#line 1023 "ldgram.y" -{ - ldlex_script (); - lang_enter_overlay_section (yyvsp[0].name); - } - break; -case 282: -#line 1028 "ldgram.y" -{ ldlex_popstate (); ldlex_expression (); } - break; -case 283: -#line 1030 "ldgram.y" -{ - ldlex_popstate (); - lang_leave_overlay_section (yyvsp[0].fill, yyvsp[-1].section_phdr); - } - break; -case 288: -#line 1047 "ldgram.y" -{ ldlex_expression (); } - break; -case 289: -#line 1048 "ldgram.y" -{ ldlex_popstate (); } - break; -case 290: -#line 1050 "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 291: -#line 1058 "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 292: -#line 1102 "ldgram.y" -{ - memset (&yyval.phdr, 0, sizeof (struct phdr_info)); - } - break; -case 293: -#line 1106 "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 294: -#line 1118 "ldgram.y" -{ - yyval.phdr = yyvsp[0].phdr; - yyval.phdr.at = yyvsp[-2].etree; - } - break; -case 295: -#line 1126 "ldgram.y" -{ - yyval.etree = NULL; - } - break; -case 296: -#line 1130 "ldgram.y" -{ - yyval.etree = yyvsp[-1].etree; - } - break; -case 297: -#line 1138 "ldgram.y" -{ - ldlex_version_file (); - PUSH_ERROR (_("VERSION script")); - } - break; -case 298: -#line 1143 "ldgram.y" -{ - ldlex_popstate (); - POP_ERROR (); - } - break; -case 299: -#line 1152 "ldgram.y" -{ - ldlex_version_script (); - } - break; -case 300: -#line 1156 "ldgram.y" -{ - ldlex_popstate (); - } - break; -case 303: -#line 1168 "ldgram.y" -{ - lang_register_vers_node (NULL, yyvsp[-2].versnode, NULL); - } - break; -case 304: -#line 1172 "ldgram.y" -{ - lang_register_vers_node (yyvsp[-4].name, yyvsp[-2].versnode, NULL); - } - break; -case 305: -#line 1176 "ldgram.y" -{ - lang_register_vers_node (yyvsp[-5].name, yyvsp[-3].versnode, yyvsp[-1].deflist); - } - break; -case 306: -#line 1183 "ldgram.y" -{ - yyval.deflist = lang_add_vers_depend (NULL, yyvsp[0].name); - } - break; -case 307: -#line 1187 "ldgram.y" -{ - yyval.deflist = lang_add_vers_depend (yyvsp[-1].deflist, yyvsp[0].name); - } - break; -case 308: -#line 1194 "ldgram.y" -{ - yyval.versnode = lang_new_vers_node (NULL, NULL); - } - break; -case 309: -#line 1198 "ldgram.y" -{ - yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL); - } - break; -case 310: -#line 1202 "ldgram.y" -{ - yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL); - } - break; -case 311: -#line 1206 "ldgram.y" -{ - yyval.versnode = lang_new_vers_node (NULL, yyvsp[-1].versyms); - } - break; -case 312: -#line 1210 "ldgram.y" -{ - yyval.versnode = lang_new_vers_node (yyvsp[-5].versyms, yyvsp[-1].versyms); - } - break; -case 313: -#line 1217 "ldgram.y" -{ - yyval.versyms = lang_new_vers_pattern (NULL, yyvsp[0].name, ldgram_vers_current_lang); - } - break; -case 314: -#line 1221 "ldgram.y" -{ - yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang); - } - break; -case 315: -#line 1225 "ldgram.y" -{ - yyval.name = ldgram_vers_current_lang; - ldgram_vers_current_lang = yyvsp[-1].name; - } - break; -case 316: -#line 1230 "ldgram.y" -{ - yyval.versyms = yyvsp[-2].versyms; - ldgram_vers_current_lang = yyvsp[-3].name; - } - break; -case 317: -#line 1235 "ldgram.y" -{ - yyval.name = ldgram_vers_current_lang; - ldgram_vers_current_lang = yyvsp[-1].name; - } - break; -case 318: -#line 1240 "ldgram.y" -{ - yyval.versyms = yyvsp[-2].versyms; - ldgram_vers_current_lang = yyvsp[-3].name; - } - break; -} - -#line 706 "/usr/share/bison/bison.simple" - - - yyvsp -= yylen; - yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif - - /* 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 - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - 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) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); - YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); - } - goto yyerrlab1; - - -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: - 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) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - - -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; -#endif - - -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - - YYDPRINTF ((stderr, "Shifting error token, ")); - - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); - yyresult = 2; - /* Fall through. */ - -yyreturn: -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - return yyresult; -} -#line 1251 "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 --git a/ld/ldgram.h b/ld/ldgram.h deleted file mode 100644 index c2203fc035c..00000000000 --- a/ld/ldgram.h +++ /dev/null @@ -1,152 +0,0 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H - -#ifndef YYSTYPE -typedef union { - 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; -# define YYSTYPE yystype -# define YYSTYPE_IS_TRIVIAL 1 -#endif -# define INT 257 -# define NAME 258 -# define LNAME 259 -# define PLUSEQ 260 -# define MINUSEQ 261 -# define MULTEQ 262 -# define DIVEQ 263 -# define LSHIFTEQ 264 -# define RSHIFTEQ 265 -# define ANDEQ 266 -# define OREQ 267 -# define OROR 268 -# define ANDAND 269 -# define EQ 270 -# define NE 271 -# define LE 272 -# define GE 273 -# define LSHIFT 274 -# define RSHIFT 275 -# define UNARY 276 -# define END 277 -# define ALIGN_K 278 -# define BLOCK 279 -# define BIND 280 -# define QUAD 281 -# define SQUAD 282 -# define LONG 283 -# define SHORT 284 -# define BYTE 285 -# define SECTIONS 286 -# define PHDRS 287 -# define DATA_SEGMENT_ALIGN 288 -# define DATA_SEGMENT_RELRO_END 289 -# define DATA_SEGMENT_END 290 -# define SORT_BY_NAME 291 -# define SORT_BY_ALIGNMENT 292 -# define SIZEOF_HEADERS 293 -# define OUTPUT_FORMAT 294 -# define FORCE_COMMON_ALLOCATION 295 -# define OUTPUT_ARCH 296 -# define INHIBIT_COMMON_ALLOCATION 297 -# define SEGMENT_START 298 -# define INCLUDE 299 -# define MEMORY 300 -# define DEFSYMEND 301 -# define NOLOAD 302 -# define DSECT 303 -# define COPY 304 -# define INFO 305 -# define OVERLAY 306 -# define DEFINED 307 -# define TARGET_K 308 -# define SEARCH_DIR 309 -# define MAP 310 -# define ENTRY 311 -# define NEXT 312 -# define SIZEOF 313 -# define ADDR 314 -# define LOADADDR 315 -# define MAX_K 316 -# define MIN_K 317 -# define STARTUP 318 -# define HLL 319 -# define SYSLIB 320 -# define FLOAT 321 -# define NOFLOAT 322 -# define NOCROSSREFS 323 -# define ORIGIN 324 -# define FILL 325 -# define LENGTH 326 -# define CREATE_OBJECT_SYMBOLS 327 -# define INPUT 328 -# define GROUP 329 -# define OUTPUT 330 -# define CONSTRUCTORS 331 -# define ALIGNMOD 332 -# define AT 333 -# define SUBALIGN 334 -# define PROVIDE 335 -# define AS_NEEDED 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 - - -extern YYSTYPE yylval; - -#endif /* not BISON_Y_TAB_H */ diff --git a/ld/ldlex.c b/ld/ldlex.c deleted file mode 100644 index b88d9d7bb6a..00000000000 --- a/ld/ldlex.c +++ /dev/null @@ -1,3808 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header$ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include -#include - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include -#ifndef _WIN32 -#include -#endif - -/* 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 -#include -#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 180 -#define YY_END_OF_BUFFER 181 -static yyconst short int yy_accept[1275] = - { 0, - 0, 0, 160, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 180, - 178, 163, 162, 32, 178, 160, 38, 29, 44, 43, - 34, 35, 28, 36, 160, 37, 8, 8, 45, 46, - 39, 40, 27, 33, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 10, 9, 160, 109, 107, 160, 42, - 30, 41, 31, 179, 163, 32, 179, 158, 38, 29, - 44, 43, 34, 35, 28, 36, 158, 37, 8, 8, - 45, 46, 39, 40, 27, 33, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 10, 9, 158, 158, 42, 30, 41, 31, 158, - 8, 8, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 109, 107, 4, 3, 2, 4, 5, 119, 118, 157, - 34, 35, 28, 36, 157, 37, 8, 8, 45, 46, - 40, 33, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 10, 9, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 31, 177, 175, - 176, 178, 170, 169, 164, 171, 172, 168, 168, 168, - - 168, 173, 174, 163, 15, 0, 161, 160, 8, 26, - 24, 22, 20, 21, 1, 23, 8, 8, 160, 18, - 17, 14, 16, 19, 160, 160, 160, 160, 113, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 25, 13, 158, 6, 22, 20, 21, - 0, 1, 23, 8, 0, 7, 7, 8, 7, 14, - 158, 7, 7, 7, 158, 158, 113, 7, 158, 158, - - 7, 158, 158, 158, 7, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 7, 158, 8, 8, 0, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 4, - 4, 118, 118, 157, 6, 120, 22, 23, 121, 157, - 7, 7, 7, 157, 157, 157, 7, 157, 7, 7, - 157, 157, 157, 157, 157, 157, 157, 157, 7, 157, - 157, 157, 7, 157, 7, 7, 157, 157, 157, 157, - - 157, 157, 157, 157, 177, 176, 169, 168, 0, 168, - 168, 168, 11, 12, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 86, 160, 160, 160, 160, 160, - 160, 160, 160, 68, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 110, - 108, 160, 8, 159, 8, 158, 7, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 59, 60, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 86, 158, 158, 158, - 158, 68, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 110, 108, 4, - 8, 157, 157, 157, 157, 157, 122, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 139, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 168, 168, 168, 160, 57, 160, 160, - 51, 160, 93, 160, 102, 160, 160, 160, 160, 160, - 160, 160, 82, 160, 160, 160, 160, 103, 160, 160, - - 116, 160, 160, 91, 160, 64, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 89, 160, 160, 160, 160, - 160, 99, 160, 160, 160, 160, 160, 160, 160, 160, - 158, 57, 158, 158, 158, 51, 158, 102, 158, 158, - 158, 158, 158, 103, 116, 158, 158, 64, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 93, - 158, 158, 158, 158, 82, 158, 158, 158, 158, 158, - 91, 158, 158, 158, 158, 158, 89, 158, 158, 158, - 99, 158, 158, 158, 158, 158, 157, 157, 157, 126, - 134, 125, 157, 157, 136, 129, 132, 157, 157, 137, - - 157, 157, 157, 157, 157, 143, 151, 142, 157, 157, - 154, 146, 149, 157, 157, 155, 157, 157, 168, 168, - 168, 160, 53, 160, 50, 160, 160, 160, 160, 101, - 62, 160, 160, 88, 160, 74, 160, 160, 73, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 112, - 160, 160, 160, 160, 92, 160, 160, 90, 160, 160, - 160, 160, 160, 160, 160, 158, 53, 158, 158, 50, - 158, 158, 101, 158, 74, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 62, 158, 88, 158, 158, 158, 73, 158, 158, 158, - - 158, 112, 158, 158, 92, 158, 90, 158, 158, 158, - 158, 157, 127, 124, 157, 157, 136, 136, 131, 157, - 135, 157, 157, 144, 141, 157, 157, 154, 154, 148, - 157, 153, 157, 168, 168, 166, 160, 160, 160, 160, - 160, 160, 160, 63, 160, 160, 160, 52, 160, 47, - 160, 160, 100, 160, 48, 72, 160, 160, 160, 160, - 160, 69, 160, 160, 160, 87, 70, 160, 160, 160, - 158, 61, 158, 158, 158, 158, 52, 158, 158, 100, - 158, 48, 158, 158, 158, 69, 158, 158, 158, 158, - 158, 63, 158, 158, 158, 47, 158, 72, 158, 158, - - 158, 158, 158, 87, 70, 158, 157, 157, 63, 133, - 130, 157, 157, 157, 152, 150, 147, 157, 167, 165, - 160, 160, 160, 160, 160, 76, 160, 160, 111, 160, - 160, 160, 94, 160, 160, 96, 115, 160, 160, 160, - 160, 160, 83, 160, 49, 160, 160, 158, 158, 158, - 76, 158, 158, 158, 158, 104, 115, 158, 158, 158, - 158, 158, 158, 158, 158, 111, 158, 94, 158, 96, - 158, 158, 158, 83, 49, 157, 157, 157, 157, 157, - 157, 138, 160, 160, 160, 160, 160, 160, 160, 58, - 160, 160, 160, 160, 160, 81, 160, 160, 160, 114, - - 156, 160, 138, 158, 158, 158, 58, 158, 158, 158, - 158, 114, 156, 158, 158, 158, 158, 158, 158, 158, - 158, 81, 158, 138, 123, 128, 156, 140, 145, 75, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 75, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 160, 160, 160, 160, 160, 160, 160, - 105, 106, 160, 160, 71, 160, 160, 160, 160, 160, - 158, 158, 158, 105, 106, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 71, 158, 158, 160, 160, 160, - - 160, 160, 160, 95, 85, 160, 160, 160, 160, 160, - 160, 158, 158, 95, 158, 158, 158, 158, 158, 158, - 158, 85, 158, 158, 158, 78, 160, 160, 117, 160, - 160, 160, 160, 160, 160, 97, 160, 158, 117, 158, - 158, 158, 78, 158, 158, 158, 158, 158, 97, 160, - 160, 160, 160, 84, 67, 160, 160, 160, 158, 67, - 158, 158, 158, 158, 158, 84, 158, 160, 160, 160, - 160, 160, 160, 66, 160, 65, 158, 158, 158, 66, - 65, 158, 158, 158, 158, 160, 160, 160, 160, 160, - 160, 160, 158, 158, 158, 158, 158, 158, 158, 160, - - 160, 56, 160, 160, 160, 160, 158, 56, 158, 158, - 158, 158, 158, 160, 160, 160, 160, 160, 98, 158, - 158, 158, 158, 158, 98, 160, 54, 160, 160, 160, - 54, 158, 158, 158, 158, 160, 160, 160, 160, 158, - 158, 158, 158, 160, 160, 160, 160, 158, 158, 158, - 158, 77, 160, 160, 160, 158, 77, 158, 158, 55, - 160, 160, 55, 158, 158, 79, 160, 79, 158, 160, - 158, 80, 80, 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[1297] = - { 0, - 0, 0, 0, 0, 81, 0, 156, 0, 226, 306, - 386, 0, 164, 174, 467, 548, 629, 710, 2190, 2191, - 2191, 2187, 2191, 2165, 2182, 774, 2191, 155, 2191, 2191, - 2163, 2162, 0, 2161, 0, 156, 304, 235, 0, 2191, - 149, 2160, 181, 0, 230, 172, 159, 181, 171, 221, - 2139, 2144, 2141, 2149, 226, 139, 230, 240, 229, 2132, - 304, 2151, 2146, 0, 0, 2117, 2113, 2101, 2107, 2191, - 185, 2191, 0, 2191, 2169, 2147, 2164, 819, 2191, 254, - 2191, 2191, 2145, 2144, 2191, 198, 0, 270, 864, 143, - 2191, 2191, 246, 2143, 261, 2191, 923, 318, 337, 467, - - 479, 473, 2122, 2125, 2133, 258, 263, 260, 252, 2119, - 302, 2191, 2191, 547, 2096, 2191, 451, 2191, 0, 982, - 638, 717, 498, 464, 316, 313, 253, 331, 2123, 2120, - 311, 349, 465, 490, 466, 2112, 548, 2131, 2126, 2097, - 2093, 2081, 1027, 2191, 2191, 0, 2191, 2191, 2149, 1072, - 2128, 2127, 2191, 2126, 0, 2125, 0, 458, 2191, 0, - 2124, 2191, 1117, 559, 580, 476, 550, 504, 333, 2120, - 2102, 2098, 143, 2100, 2191, 2191, 587, 584, 631, 596, - 585, 510, 2085, 2069, 2065, 465, 2067, 0, 2136, 2191, - 0, 2125, 2191, 0, 2191, 2191, 2191, 2116, 544, 512, - - 589, 2191, 2191, 2133, 2191, 2129, 2191, 0, 1176, 2191, - 2191, 0, 0, 0, 0, 0, 728, 0, 625, 2110, - 2191, 0, 2191, 2109, 2087, 2101, 2095, 2072, 0, 2088, - 2086, 2080, 255, 2094, 2078, 2091, 2091, 2075, 510, 2082, - 2078, 2074, 2076, 2078, 636, 2084, 2074, 569, 2071, 2073, - 2061, 588, 2072, 2074, 2062, 2076, 2076, 2064, 2077, 634, - 2062, 2050, 2057, 2053, 2072, 2070, 2052, 2052, 2051, 2020, - 2023, 2028, 2013, 2191, 2191, 0, 1227, 2191, 2191, 2191, - 0, 2191, 0, 534, 731, 0, 2191, 2191, 0, 2191, - 657, 714, 779, 0, 2055, 168, 0, 782, 2049, 2047, - - 2045, 785, 824, 2055, 2056, 2043, 2051, 2051, 2041, 2053, - 2029, 2038, 2027, 341, 2038, 2040, 2043, 2032, 2039, 2019, - 2042, 815, 1991, 637, 848, 0, 2023, 2037, 2020, 294, - 2034, 2018, 2031, 2016, 652, 2023, 2019, 2015, 2020, 711, - 644, 595, 2018, 717, 2010, 2024, 2024, 2026, 653, 2011, - 2007, 2003, 2022, 2003, 2003, 2002, 1971, 1974, 1979, 0, - 1278, 2038, 2191, 0, 1329, 0, 0, 2191, 0, 662, - 735, 733, 0, 2006, 738, 827, 2005, 2009, 1992, 1993, - 1991, 2008, 1995, 2003, 2004, 2002, 2003, 1982, 747, 1962, - 835, 836, 1961, 1965, 1950, 1951, 1949, 1964, 1952, 1959, - - 1960, 1958, 1959, 1940, 2012, 0, 0, 1993, 1992, 651, - 706, 658, 2191, 2191, 1971, 1967, 1977, 1969, 1978, 1978, - 1975, 1960, 1953, 1976, 1975, 1966, 1971, 1955, 1960, 1966, - 1958, 1968, 1965, 1946, 0, 1954, 1950, 1955, 1942, 1946, - 1954, 1956, 1952, 0, 1943, 1937, 1938, 1943, 1939, 1928, - 1945, 1935, 1932, 1931, 1926, 1943, 1928, 1925, 1931, 1925, - 1937, 1921, 1939, 1921, 1937, 1925, 1929, 1916, 1889, 0, - 0, 1897, 0, 0, 849, 1917, 900, 1924, 1925, 1915, - 1924, 1924, 1901, 1924, 932, 1921, 1911, 1901, 1906, 1904, - 1912, 1914, 0, 0, 1897, 1898, 1900, 1889, 1906, 1894, - - 1889, 1897, 1904, 1907, 1862, 1870, 1887, 1899, 1884, 1901, - 1892, 1882, 1894, 1877, 1877, 1864, 0, 1844, 1839, 1824, - 1835, 0, 1826, 1824, 1809, 1796, 1785, 1793, 1777, 1759, - 1760, 1757, 1775, 1750, 1677, 1681, 1668, 0, 0, 0, - 0, 1671, 731, 1680, 1679, 1667, 0, 1677, 1668, 1660, - 1675, 1673, 1672, 1664, 1655, 1656, 1659, 1627, 724, 1635, - 1634, 1623, 0, 1632, 1623, 1616, 1629, 1627, 1626, 1619, - 1611, 1612, 1614, 717, 680, 741, 1645, 0, 1642, 1650, - 0, 1643, 0, 1633, 0, 1632, 1620, 1636, 1629, 1623, - 1626, 1628, 0, 1625, 1639, 1627, 1621, 0, 1639, 1620, - - 0, 1619, 1637, 0, 1614, 0, 1616, 1615, 1628, 1597, - 1618, 1604, 1607, 1596, 1600, 0, 1605, 1598, 1601, 1585, - 1589, 1572, 1598, 1581, 1588, 1590, 1593, 1588, 1554, 1550, - 1582, 0, 1579, 1574, 1586, 0, 1579, 0, 1558, 1574, - 1566, 1564, 1568, 0, 0, 1563, 1581, 0, 1566, 1579, - 1548, 1569, 1565, 1567, 1570, 1559, 1561, 1530, 1526, 0, - 1550, 1549, 1543, 1549, 0, 1546, 1560, 1543, 1561, 1542, - 0, 1543, 1545, 1538, 1546, 1533, 0, 1548, 1541, 1529, - 1517, 1543, 1525, 1530, 1530, 1520, 1516, 1508, 1512, 0, - 0, 0, 1507, 1523, 1397, 0, 0, 1505, 1513, 0, - - 1501, 1517, 1477, 1470, 1473, 0, 0, 0, 1469, 1483, - 1477, 0, 0, 1467, 1473, 0, 1463, 1477, 793, 801, - 748, 1489, 0, 1504, 0, 1490, 1501, 1486, 1499, 0, - 0, 1499, 1488, 0, 1470, 0, 1496, 1490, 0, 1490, - 1493, 1471, 1476, 1493, 1489, 1483, 1477, 1470, 1488, 0, - 1484, 1479, 1471, 1471, 0, 1478, 1481, 0, 1461, 1472, - 1478, 1459, 1463, 1422, 1434, 1449, 0, 1449, 1463, 0, - 1448, 1460, 0, 1455, 0, 1447, 1445, 1429, 1443, 1437, - 1431, 1443, 1439, 1428, 1435, 1431, 1389, 1401, 1419, 1431, - 0, 1421, 0, 1403, 1429, 1423, 0, 1406, 1429, 1409, - - 1427, 0, 1418, 1410, 0, 1422, 0, 1402, 1420, 1401, - 1405, 1398, 0, 1405, 1403, 1396, 0, 1557, 0, 215, - 0, 250, 301, 0, 415, 446, 466, 0, 1637, 0, - 538, 0, 547, 805, 790, 595, 573, 653, 652, 666, - 710, 727, 756, 0, 767, 787, 773, 0, 799, 0, - 795, 795, 0, 810, 0, 787, 806, 840, 819, 850, - 851, 842, 849, 860, 871, 0, 0, 866, 832, 851, - 865, 0, 882, 882, 889, 889, 0, 891, 887, 0, - 902, 0, 885, 906, 893, 883, 914, 873, 892, 909, - 901, 0, 930, 932, 919, 0, 920, 914, 921, 917, - - 935, 925, 937, 0, 0, 940, 941, 948, 0, 0, - 0, 944, 916, 921, 0, 0, 0, 918, 974, 975, - 966, 967, 970, 962, 971, 0, 948, 965, 0, 950, - 964, 971, 0, 959, 990, 0, 0, 988, 974, 963, - 987, 966, 0, 984, 0, 963, 961, 996, 997, 996, - 0, 973, 987, 988, 976, 0, 0, 977, 1001, 996, - 975, 973, 1010, 1007, 1008, 0, 993, 0, 1033, 0, - 1021, 1007, 996, 0, 0, 1030, 1032, 1032, 1002, 1005, - 1005, 0, 1038, 1023, 1042, 1032, 1040, 1034, 1045, 0, - 1044, 1032, 1033, 1037, 1044, 0, 1035, 1050, 1055, 0, - - 0, 1021, 0, 1054, 1054, 1062, 0, 1065, 1053, 1053, - 1074, 0, 0, 1044, 1061, 1080, 1070, 1081, 1067, 1071, - 1078, 0, 1087, 0, 0, 0, 0, 0, 0, 0, - 1074, 1080, 1086, 1083, 1080, 1079, 1089, 1101, 1093, 1079, - 1080, 1079, 1099, 1090, 1102, 1080, 0, 1108, 1105, 1109, - 1111, 1097, 1126, 1096, 1115, 1121, 1120, 1120, 1133, 1119, - 1120, 1127, 1139, 1124, 1138, 1130, 1133, 1131, 1134, 1129, - 0, 0, 1147, 1144, 0, 1157, 1155, 1151, 1148, 1128, - 1150, 1153, 1147, 0, 0, 1166, 1167, 1137, 1155, 1169, - 1160, 1163, 1175, 1171, 0, 1176, 1173, 1169, 1187, 1171, - - 1187, 1179, 1181, 0, 0, 1194, 1178, 1192, 1191, 1194, - 1164, 1181, 1197, 0, 1185, 1199, 1169, 1187, 1204, 1200, - 1202, 0, 1215, 1211, 1217, 0, 1203, 1193, 0, 1194, - 1211, 1207, 1214, 1217, 1222, 0, 1190, 1208, 0, 1221, - 1224, 1196, 0, 1224, 1214, 1231, 1227, 1234, 0, 1218, - 1249, 1250, 1238, 0, 0, 1234, 1242, 1208, 1268, 0, - 1238, 1210, 1234, 1265, 1260, 0, 1262, 1257, 1265, 1264, - 1280, 1275, 1257, 0, 1285, 0, 1280, 1279, 1289, 0, - 0, 1276, 1284, 1266, 1293, 1274, 1291, 1297, 1290, 1291, - 1303, 1291, 1297, 1303, 1296, 1284, 1304, 1316, 1304, 1307, - - 1317, 0, 1307, 1311, 1315, 1308, 1322, 0, 1318, 1324, - 1323, 1327, 1321, 1341, 1330, 1330, 1343, 1335, 0, 1334, - 1334, 1348, 1348, 1340, 0, 1338, 0, 1323, 1354, 1341, - 0, 1326, 1343, 1358, 1345, 1355, 1363, 1349, 1368, 1370, - 1367, 1365, 1384, 1369, 1375, 1381, 1390, 1378, 1379, 1390, - 1399, 0, 1397, 1387, 1383, 1400, 0, 1390, 1386, 0, - 1393, 1399, 0, 1395, 1401, 0, 1396, 0, 1397, 1399, - 1400, 0, 0, 2191, 1717, 1728, 1739, 1750, 1761, 1772, - 1780, 1788, 1796, 1807, 1815, 1826, 1837, 1848, 1851, 1860, - 1868, 1429, 1879, 1890, 1901, 1912 - - } ; - -static yyconst short int yy_def[1297] = - { 0, - 1275, 1275, 1274, 3, 1274, 5, 5, 7, 1276, 1276, - 1274, 11, 1277, 1277, 1278, 1278, 1279, 1279, 1274, 1274, - 1274, 1274, 1274, 1274, 1280, 1281, 1274, 1274, 1274, 1274, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1274, - 1274, 1281, 1274, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1274, - 1274, 1274, 1281, 1274, 1274, 1274, 1280, 1282, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1282, 1282, 1274, 89, - 1274, 1274, 1274, 1274, 1274, 1274, 1282, 97, 97, 97, - - 97, 97, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1274, 1274, 97, 1282, 1274, 1274, 1274, 1282, 1282, - 1274, 1274, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1283, 1274, 1274, 1283, 1274, 1274, 1284, 1285, - 1286, 1274, 1274, 1274, 1285, 1285, 89, 89, 1274, 1287, - 1274, 1274, 1285, 163, 163, 163, 163, 163, 1285, 1285, - 1285, 1285, 1285, 1285, 1274, 1274, 163, 163, 163, 163, - 163, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1274, 1274, - 1288, 1274, 1274, 1289, 1274, 1274, 1274, 1290, 1290, 1290, - - 1290, 1274, 1274, 1274, 1274, 1280, 1274, 1281, 1281, 1274, - 1274, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 209, 1274, - 1274, 1281, 1274, 1274, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1274, 1274, 1282, 1282, 1274, 1274, 1274, - 1291, 1274, 1282, 89, 89, 285, 1274, 1274, 1292, 1274, - 97, 97, 97, 1282, 1282, 1282, 1282, 97, 1282, 1282, - - 1282, 97, 97, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 97, 1282, 120, 1274, 1292, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1283, - 1283, 1284, 1274, 1285, 1285, 1286, 1286, 1274, 1287, 163, - 163, 163, 1285, 1285, 163, 163, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 163, 1285, - 163, 163, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - - 1285, 1285, 1285, 1285, 1274, 1288, 1289, 1290, 1274, 1290, - 1290, 1290, 1274, 1274, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1282, 1291, 1292, 1282, 97, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 97, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1283, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1290, 1290, 1290, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1293, 1285, 1285, 1285, 1285, 1285, - - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1294, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1290, 1290, - 1290, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1285, 1285, 1285, 1285, 1285, 1295, 1293, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1296, 1294, 1285, - 1285, 1285, 1285, 1290, 1290, 1290, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - - 1282, 1282, 1282, 1282, 1282, 1282, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1290, 1290, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1285, 1285, 1285, 1285, 1285, - 1285, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - - 1281, 1281, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1285, 1285, 1285, 1285, 1285, 1285, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, - - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, - 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1281, - 1281, 1281, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1281, - - 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1282, 1282, 1282, - 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1281, 1281, 1282, - 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1281, - 1282, 1282, 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1282, - 1282, 1282, 1282, 1281, 1281, 1281, 1281, 1282, 1282, 1282, - 1282, 1281, 1281, 1281, 1281, 1282, 1282, 1282, 1282, 1281, - 1281, 1281, 1282, 1282, 1282, 1281, 1281, 1282, 1282, 1281, - 1282, 1281, 1282, 0, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274 - - } ; - -static yyconst short int yy_nxt[2273] = - { 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, 249, 189, 190, 215, 250, 191, - 220, 221, 386, 121, 122, 189, 190, 211, 216, 191, - 192, 123, 124, 125, 126, 127, 128, 387, 129, 130, - 192, 287, 131, 132, 133, 134, 135, 136, 233, 137, - - 138, 234, 139, 223, 224, 230, 235, 274, 231, 238, - 236, 479, 140, 87, 87, 87, 87, 87, 287, 239, - 280, 232, 141, 480, 237, 142, 74, 74, 20, 74, - 74, 74, 143, 74, 74, 74, 74, 74, 144, 74, - 145, 193, 911, 121, 122, 74, 74, 74, 147, 74, - 74, 193, 217, 217, 240, 247, 225, 241, 226, 251, - 242, 257, 210, 275, 281, 248, 227, 220, 221, 252, - 218, 258, 218, 228, 229, 912, 211, 74, 253, 74, - 74, 282, 254, 223, 224, 255, 256, 309, 311, 313, - 315, 334, 283, 422, 316, 423, 312, 310, 317, 314, - - 218, 335, 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, 319, 509, 260, 483, 320, 261, 262, 332, 218, - 309, 218, 333, 263, 298, 264, 298, 321, 265, 266, - 341, 299, 219, 267, 300, 330, 304, 74, 331, 74, - 74, 276, 276, 298, 336, 298, 381, 337, 496, 218, - 338, 218, 382, 276, 342, 913, 301, 497, 343, 219, - 276, 276, 312, 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, 274, 21, 21, 21, 21, 21, 21, - 195, 21, 914, 192, 21, 21, 195, 195, 21, 21, - 21, 21, 302, 298, 313, 298, 303, 299, 347, 298, - - 300, 298, 372, 276, 344, 298, 287, 298, 318, 276, - 304, 276, 364, 329, 915, 276, 276, 276, 21, 21, - 21, 21, 276, 276, 327, 402, 328, 305, 315, 275, - 372, 409, 316, 287, 295, 345, 346, 429, 403, 916, - 364, 296, 297, 380, 196, 21, 197, 21, 21, 189, - 190, 21, 21, 191, 430, 21, 21, 21, 21, 21, - 21, 195, 21, 409, 192, 21, 21, 195, 195, 21, - 21, 21, 21, 298, 397, 298, 372, 349, 411, 398, - 350, 320, 287, 276, 375, 372, 364, 351, 378, 352, - 276, 276, 353, 321, 442, 364, 917, 354, 379, 21, - - 21, 21, 21, 918, 322, 376, 372, 443, 409, 287, - 372, 372, 377, 372, 409, 447, 364, 921, 448, 410, - 364, 364, 372, 364, 449, 196, 21, 197, 21, 21, - 189, 190, 364, 25, 191, 522, 21, 21, 21, 21, - 391, 21, 195, 493, 389, 192, 21, 21, 195, 195, - 21, 21, 21, 390, 396, 325, 325, 372, 412, 457, - 208, 458, 208, 436, 394, 459, 437, 364, 438, 492, - 409, 395, 473, 288, 473, 288, 439, 409, 529, 487, - 530, 922, 521, 298, 502, 298, 326, 392, 372, 199, - 208, 200, 208, 276, 393, 201, 513, 923, 364, 409, - - 276, 276, 473, 288, 473, 288, 202, 21, 203, 21, - 21, 189, 190, 326, 25, 191, 576, 21, 21, 21, - 21, 924, 21, 195, 574, 409, 192, 21, 21, 195, - 195, 21, 21, 21, 325, 325, 409, 720, 518, 925, - 298, 489, 298, 519, 496, 217, 217, 524, 285, 285, - 276, 520, 288, 497, 288, 926, 688, 476, 276, 372, - 409, 372, 689, 218, 372, 218, 1274, 409, 1274, 364, - 199, 364, 200, 372, 364, 575, 201, 719, 542, 287, - 704, 544, 288, 364, 288, 927, 705, 202, 21, 203, - 21, 209, 209, 218, 928, 218, 1274, 721, 1274, 209, - - 209, 209, 209, 209, 209, 298, 287, 477, 298, 409, - 298, 298, 409, 298, 836, 276, 929, 930, 276, 558, - 409, 276, 276, 276, 409, 276, 276, 931, 276, 484, - 209, 209, 209, 209, 209, 209, 277, 277, 932, 933, - 934, 298, 935, 298, 277, 277, 277, 277, 277, 277, - 298, 276, 298, 372, 485, 936, 920, 835, 276, 276, - 276, 372, 372, 364, 834, 325, 325, 276, 276, 937, - 545, 364, 364, 919, 938, 277, 277, 277, 277, 277, - 277, 284, 284, 288, 288, 288, 288, 505, 939, 285, - 286, 285, 286, 285, 285, 940, 287, 941, 942, 288, - - 943, 288, 944, 287, 945, 946, 947, 560, 561, 948, - 949, 950, 289, 288, 288, 288, 288, 951, 952, 953, - 285, 286, 285, 286, 285, 285, 298, 287, 298, 288, - 954, 288, 955, 287, 956, 957, 276, 958, 959, 289, - 291, 291, 632, 276, 276, 960, 961, 962, 291, 292, - 291, 293, 291, 291, 963, 294, 964, 965, 298, 295, - 298, 966, 294, 967, 968, 640, 296, 297, 276, 969, - 970, 294, 971, 972, 973, 276, 276, 974, 975, 291, - 298, 291, 298, 291, 291, 976, 294, 977, 978, 979, - 980, 981, 294, 409, 409, 982, 983, 984, 294, 324, - - 324, 985, 986, 987, 988, 989, 990, 324, 324, 324, - 324, 324, 324, 991, 992, 993, 995, 996, 997, 998, - 994, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, - 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 324, 324, - 324, 324, 324, 324, 361, 361, 1016, 1017, 1018, 1021, - 1022, 1023, 361, 361, 361, 361, 361, 361, 1019, 1024, - 1025, 1026, 1027, 1020, 1028, 1029, 1030, 1031, 1032, 1033, - 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, - 1044, 1046, 1047, 361, 361, 361, 361, 361, 361, 365, - 365, 1048, 1049, 1045, 1050, 1051, 1052, 365, 365, 365, - - 365, 365, 365, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 1060, 1061, 1062, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1073, 1074, 1075, 1076, 1077, 1063, 1078, 1079, 365, 365, - 365, 365, 365, 365, 370, 370, 1080, 1081, 1082, 1083, - 1071, 1086, 370, 371, 370, 372, 370, 370, 1072, 373, - 1084, 1087, 1088, 374, 1089, 1090, 373, 1091, 1085, 1092, - 1093, 1094, 1095, 1096, 1097, 373, 1098, 1099, 1100, 1101, - 1102, 1103, 1104, 370, 372, 370, 372, 370, 370, 1105, - 373, 1106, 1107, 1108, 1109, 1110, 373, 1111, 1112, 1113, - 1114, 1115, 373, 209, 209, 1116, 1117, 1118, 1119, 1120, - - 1121, 209, 209, 209, 209, 209, 209, 1122, 1123, 1124, - 1125, 218, 1126, 218, 1127, 1128, 1129, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 1144, 209, 209, 209, 209, 209, 209, 1145, 1146, - 1147, 218, 1148, 218, 277, 277, 1149, 1150, 1151, 1152, - 1153, 1154, 277, 277, 277, 277, 277, 277, 1155, 1156, - 1157, 1158, 473, 1159, 473, 1160, 1161, 1162, 1163, 1164, - 1165, 1166, 1167, 1168, 1169, 1172, 1173, 1174, 1170, 1175, - 1176, 1180, 1181, 277, 277, 277, 277, 277, 277, 1182, - 1183, 1171, 473, 1177, 473, 361, 361, 1178, 1184, 1185, - - 1186, 1187, 1188, 361, 361, 361, 361, 361, 361, 1189, - 1179, 1190, 1191, 540, 1192, 540, 1193, 1194, 1195, 1196, - 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, - 1207, 1208, 1209, 1210, 361, 361, 361, 361, 361, 361, - 1211, 1212, 1213, 540, 1214, 540, 365, 365, 1215, 1216, - 1217, 1218, 1219, 1220, 365, 365, 365, 365, 365, 365, - 1221, 1222, 1223, 1224, 541, 1225, 541, 1226, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 365, 365, 365, 365, 365, - 365, 1244, 1245, 1246, 541, 1247, 541, 817, 817, 1248, - - 817, 817, 817, 1249, 817, 817, 817, 817, 817, 1250, - 817, 1251, 1252, 1253, 1254, 1255, 1256, 817, 817, 817, - 817, 817, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 475, - 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, - 900, 817, 899, 898, 897, 896, 895, 894, 893, 892, - 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, - 881, 880, 879, 878, 817, 817, 817, 828, 828, 877, - 828, 828, 828, 876, 828, 828, 828, 828, 828, 875, - 828, 874, 873, 872, 871, 870, 869, 828, 828, 828, - - 828, 828, 868, 867, 866, 865, 864, 863, 862, 861, - 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, - 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, - 840, 828, 839, 838, 837, 833, 832, 831, 830, 827, - 826, 825, 824, 823, 822, 821, 820, 819, 816, 815, - 814, 813, 812, 811, 828, 828, 828, 817, 817, 810, - 817, 817, 817, 809, 817, 817, 817, 817, 817, 808, - 817, 807, 806, 805, 804, 803, 802, 817, 817, 817, - 817, 817, 801, 800, 799, 798, 797, 796, 795, 794, - 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, - - 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, - 773, 817, 772, 771, 770, 769, 768, 767, 766, 765, - 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, - 754, 753, 752, 751, 817, 817, 817, 828, 828, 750, - 828, 828, 828, 749, 828, 828, 828, 828, 828, 748, - 828, 747, 746, 745, 744, 743, 742, 828, 828, 828, - 828, 828, 741, 740, 739, 738, 737, 736, 735, 734, - 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, - 723, 722, 718, 717, 716, 715, 714, 713, 712, 711, - 710, 828, 709, 708, 707, 706, 703, 702, 701, 700, - - 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, - 687, 686, 685, 684, 828, 828, 828, 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, 276, 683, 276, 276, 276, 276, 276, 276, 360, - - 682, 681, 680, 679, 360, 360, 360, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 364, 678, - 364, 677, 364, 364, 364, 364, 366, 676, 366, 366, - 366, 366, 366, 366, 366, 366, 366, 369, 675, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 406, 674, - 406, 406, 406, 406, 406, 406, 406, 406, 406, 407, - 673, 407, 408, 408, 408, 672, 671, 408, 408, 670, - 408, 474, 669, 474, 474, 474, 474, 474, 474, 818, - 668, 818, 818, 818, 818, 818, 818, 818, 818, 818, - 829, 667, 829, 829, 829, 829, 829, 829, 829, 829, - - 829, 817, 666, 817, 817, 817, 817, 817, 817, 817, - 817, 817, 828, 665, 828, 828, 828, 828, 828, 828, - 828, 828, 828, 664, 663, 640, 662, 661, 660, 632, - 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, - 649, 648, 647, 646, 645, 644, 643, 642, 641, 639, - 638, 637, 636, 635, 634, 633, 631, 630, 629, 628, - 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, 408, 409, 405, 573, 572, 571, 570, 569, 568, - 567, 566, 565, 564, 563, 562, 559, 557, 556, 555, - 554, 553, 552, 551, 550, 549, 548, 547, 546, 543, - 363, 539, 538, 505, 537, 536, 535, 534, 533, 532, - 531, 528, 527, 526, 525, 523, 517, 516, 515, 514, - 512, 511, 484, 510, 508, 507, 476, 506, 504, 503, - 502, 501, 500, 499, 498, 495, 494, 493, 492, 491, - 490, 489, 488, 487, 486, 483, 482, 481, 478, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, - - 461, 460, 456, 455, 454, 453, 452, 451, 450, 446, - 445, 444, 441, 440, 435, 434, 433, 432, 431, 428, - 427, 426, 425, 424, 421, 420, 419, 418, 417, 416, - 415, 414, 413, 207, 204, 409, 282, 405, 404, 401, - 400, 399, 388, 385, 384, 383, 290, 368, 280, 279, - 367, 363, 359, 358, 357, 356, 355, 348, 340, 339, - 323, 318, 308, 307, 306, 290, 279, 278, 207, 205, - 204, 273, 272, 271, 270, 269, 268, 259, 246, 245, - 244, 243, 222, 214, 213, 212, 207, 205, 204, 1274, - 19, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274 - } ; - -static yyconst short int yy_chk[2273] = - { 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, 296, 7, 7, 7, 7, 7, 7, 90, 49, - 86, 46, 7, 296, 48, 7, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 13, 820, 9, 9, 9, 9, 9, 9, 9, - 9, 14, 38, 38, 50, 55, 45, 50, 45, 57, - 50, 59, 80, 71, 86, 55, 45, 93, 93, 57, - 38, 59, 38, 45, 45, 822, 80, 9, 58, 9, - 9, 88, 58, 95, 95, 58, 58, 106, 107, 108, - 109, 127, 88, 233, 109, 233, 107, 106, 109, 108, - - 38, 127, 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, 111, 330, 61, 330, 111, 61, 61, 126, 37, - 131, 37, 126, 61, 98, 61, 98, 111, 61, 61, - 131, 98, 37, 61, 98, 125, 126, 10, 125, 10, - 10, 98, 98, 99, 128, 99, 169, 128, 314, 37, - 128, 37, 169, 99, 132, 823, 99, 314, 132, 37, - 99, 99, 132, 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, 825, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 100, 100, 133, 100, 100, 124, 135, 102, - - 124, 102, 166, 100, 133, 101, 158, 101, 135, 102, - 100, 100, 166, 124, 826, 101, 102, 102, 15, 15, - 15, 15, 101, 101, 123, 186, 123, 101, 134, 117, - 168, 200, 134, 158, 123, 134, 134, 239, 186, 827, - 168, 123, 123, 168, 15, 15, 15, 15, 16, 16, - 16, 16, 16, 16, 239, 16, 16, 16, 16, 16, - 16, 16, 16, 199, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 114, 182, 114, 167, 137, 200, 182, - 137, 137, 284, 114, 164, 164, 167, 137, 167, 137, - 114, 114, 137, 137, 248, 164, 831, 137, 167, 16, - - 16, 16, 16, 833, 114, 165, 165, 248, 201, 284, - 178, 181, 165, 177, 836, 252, 165, 837, 252, 199, - 178, 181, 180, 177, 252, 16, 16, 16, 16, 17, - 17, 17, 180, 17, 17, 342, 17, 17, 17, 17, - 178, 17, 17, 342, 177, 17, 17, 17, 17, 17, - 17, 17, 17, 177, 181, 121, 121, 179, 201, 260, - 219, 260, 219, 245, 180, 260, 245, 179, 245, 341, - 410, 180, 324, 121, 324, 121, 245, 412, 349, 335, - 349, 838, 341, 291, 349, 291, 121, 179, 370, 17, - 219, 17, 219, 291, 179, 17, 335, 839, 370, 575, - - 291, 291, 324, 121, 324, 121, 17, 17, 17, 17, - 18, 18, 18, 121, 18, 18, 412, 18, 18, 18, - 18, 840, 18, 18, 410, 411, 18, 18, 18, 18, - 18, 18, 18, 18, 122, 122, 574, 575, 340, 841, - 292, 340, 292, 340, 344, 217, 217, 344, 285, 285, - 292, 340, 122, 344, 122, 842, 543, 292, 292, 372, - 576, 371, 543, 217, 375, 217, 285, 721, 285, 372, - 18, 371, 18, 389, 375, 411, 18, 574, 371, 285, - 559, 375, 122, 389, 122, 843, 559, 18, 18, 18, - 18, 26, 26, 217, 845, 217, 285, 576, 285, 26, - - 26, 26, 26, 26, 26, 293, 285, 293, 298, 835, - 298, 302, 719, 302, 721, 293, 846, 847, 298, 389, - 720, 302, 293, 293, 834, 298, 298, 849, 302, 302, - 26, 26, 26, 26, 26, 26, 78, 78, 851, 852, - 854, 322, 856, 322, 78, 78, 78, 78, 78, 78, - 303, 322, 303, 376, 303, 857, 835, 720, 322, 322, - 303, 391, 392, 376, 719, 325, 325, 303, 303, 858, - 376, 391, 392, 834, 859, 78, 78, 78, 78, 78, - 78, 89, 89, 325, 475, 325, 475, 322, 860, 89, - 89, 89, 89, 89, 89, 861, 89, 862, 863, 89, - - 864, 89, 865, 89, 868, 869, 870, 391, 392, 871, - 873, 874, 89, 325, 475, 325, 475, 875, 876, 878, - 89, 89, 89, 89, 89, 89, 477, 89, 477, 89, - 879, 89, 881, 89, 883, 884, 477, 885, 886, 89, - 97, 97, 477, 477, 477, 887, 888, 889, 97, 97, - 97, 97, 97, 97, 890, 97, 891, 893, 485, 97, - 485, 894, 97, 895, 897, 485, 97, 97, 485, 898, - 899, 97, 900, 901, 902, 485, 485, 903, 906, 97, - 97, 97, 97, 97, 97, 907, 97, 908, 912, 913, - 914, 918, 97, 919, 920, 921, 922, 923, 97, 120, - - 120, 924, 925, 927, 928, 930, 931, 120, 120, 120, - 120, 120, 120, 932, 934, 935, 938, 939, 940, 941, - 935, 942, 944, 946, 947, 948, 949, 950, 952, 953, - 954, 955, 958, 959, 960, 961, 962, 963, 120, 120, - 120, 120, 120, 120, 143, 143, 964, 965, 967, 971, - 972, 973, 143, 143, 143, 143, 143, 143, 969, 976, - 977, 978, 979, 969, 980, 981, 983, 984, 985, 986, - 987, 988, 989, 991, 992, 993, 994, 995, 997, 998, - 999, 1002, 1004, 143, 143, 143, 143, 143, 143, 150, - 150, 1005, 1006, 999, 1008, 1009, 1010, 150, 150, 150, - - 150, 150, 150, 1011, 1014, 1015, 1016, 1017, 1018, 1019, - 1020, 1021, 1023, 1031, 1032, 1033, 1034, 1035, 1036, 1037, - 1039, 1040, 1041, 1042, 1043, 1023, 1044, 1045, 150, 150, - 150, 150, 150, 150, 163, 163, 1046, 1048, 1049, 1050, - 1038, 1052, 163, 163, 163, 163, 163, 163, 1038, 163, - 1051, 1053, 1054, 163, 1055, 1056, 163, 1057, 1051, 1058, - 1059, 1060, 1061, 1062, 1063, 163, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 163, 163, 163, 163, 163, 163, 1073, - 163, 1074, 1076, 1077, 1078, 1079, 163, 1080, 1081, 1082, - 1083, 1086, 163, 209, 209, 1087, 1088, 1089, 1090, 1091, - - 1092, 209, 209, 209, 209, 209, 209, 1093, 1094, 1096, - 1097, 209, 1098, 209, 1099, 1100, 1101, 1102, 1103, 1106, - 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1115, 1116, 1117, - 1118, 1119, 209, 209, 209, 209, 209, 209, 1120, 1121, - 1123, 209, 1124, 209, 277, 277, 1125, 1127, 1128, 1130, - 1131, 1132, 277, 277, 277, 277, 277, 277, 1133, 1134, - 1135, 1137, 277, 1138, 277, 1140, 1141, 1142, 1144, 1145, - 1146, 1147, 1148, 1150, 1151, 1152, 1153, 1156, 1151, 1157, - 1158, 1161, 1162, 277, 277, 277, 277, 277, 277, 1163, - 1164, 1151, 277, 1159, 277, 361, 361, 1159, 1165, 1167, - - 1168, 1169, 1170, 361, 361, 361, 361, 361, 361, 1171, - 1159, 1172, 1173, 361, 1175, 361, 1177, 1178, 1179, 1182, - 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1193, 1194, 1195, 1196, 361, 361, 361, 361, 361, 361, - 1197, 1198, 1199, 361, 1200, 361, 365, 365, 1201, 1203, - 1204, 1205, 1206, 1207, 365, 365, 365, 365, 365, 365, - 1209, 1210, 1211, 1212, 365, 1213, 365, 1214, 1215, 1216, - 1217, 1218, 1220, 1221, 1222, 1223, 1224, 1226, 1228, 1229, - 1230, 1232, 1233, 1234, 1235, 365, 365, 365, 365, 365, - 365, 1236, 1237, 1238, 365, 1239, 365, 695, 695, 1240, - - 695, 695, 695, 1241, 695, 695, 695, 695, 695, 1242, - 695, 1243, 1244, 1245, 1246, 1247, 1248, 695, 695, 695, - 695, 695, 1249, 1250, 1251, 1253, 1254, 1255, 1256, 1258, - 1259, 1261, 1262, 1264, 1265, 1267, 1269, 1270, 1271, 1292, - 816, 815, 814, 812, 811, 810, 809, 808, 806, 804, - 803, 695, 801, 800, 799, 798, 796, 795, 794, 792, - 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, - 780, 779, 778, 777, 695, 695, 695, 711, 711, 776, - 711, 711, 711, 774, 711, 711, 711, 711, 711, 772, - 711, 771, 769, 768, 766, 765, 764, 711, 711, 711, - - 711, 711, 763, 762, 761, 760, 759, 757, 756, 754, - 753, 752, 751, 749, 748, 747, 746, 745, 744, 743, - 742, 741, 740, 738, 737, 735, 733, 732, 729, 728, - 727, 711, 726, 724, 722, 718, 717, 715, 714, 710, - 709, 705, 704, 703, 702, 701, 699, 698, 694, 693, - 689, 688, 687, 686, 711, 711, 711, 818, 818, 685, - 818, 818, 818, 684, 818, 818, 818, 818, 818, 683, - 818, 682, 681, 680, 679, 678, 676, 818, 818, 818, - 818, 818, 675, 674, 673, 672, 670, 669, 668, 667, - 666, 664, 663, 662, 661, 659, 658, 657, 656, 655, - - 654, 653, 652, 651, 650, 649, 647, 646, 643, 642, - 641, 818, 640, 639, 637, 635, 634, 633, 631, 630, - 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, - 619, 618, 617, 615, 818, 818, 818, 829, 829, 614, - 829, 829, 829, 613, 829, 829, 829, 829, 829, 612, - 829, 611, 610, 609, 608, 607, 605, 829, 829, 829, - 829, 829, 603, 602, 600, 599, 597, 596, 595, 594, - 592, 591, 590, 589, 588, 587, 586, 584, 582, 580, - 579, 577, 573, 572, 571, 570, 569, 568, 567, 566, - 565, 829, 564, 562, 561, 560, 558, 557, 556, 555, - - 554, 553, 552, 551, 550, 549, 548, 546, 545, 544, - 542, 537, 536, 535, 829, 829, 829, 1275, 1275, 1275, - 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1277, - 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, - 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1278, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, - 1279, 1279, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, - 1280, 1280, 1280, 1281, 1281, 1281, 1281, 1281, 1281, 1281, - 1281, 1282, 534, 1282, 1282, 1282, 1282, 1282, 1282, 1283, - - 533, 532, 531, 530, 1283, 1283, 1283, 1284, 1284, 1284, - 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1285, 529, - 1285, 528, 1285, 1285, 1285, 1285, 1286, 527, 1286, 1286, - 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1287, 526, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1288, 525, - 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1289, - 524, 1289, 1290, 1290, 1290, 523, 521, 1290, 1290, 520, - 1290, 1291, 519, 1291, 1291, 1291, 1291, 1291, 1291, 1293, - 518, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1294, 516, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, - - 1294, 1295, 515, 1295, 1295, 1295, 1295, 1295, 1295, 1295, - 1295, 1295, 1296, 514, 1296, 1296, 1296, 1296, 1296, 1296, - 1296, 1296, 1296, 513, 512, 511, 510, 509, 508, 507, - 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, - 496, 495, 492, 491, 490, 489, 488, 487, 486, 484, - 483, 482, 481, 480, 479, 478, 476, 472, 469, 468, - 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, - 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, - 447, 446, 445, 443, 442, 441, 440, 439, 438, 437, - 436, 434, 433, 432, 431, 430, 429, 428, 427, 426, - - 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, - 415, 409, 408, 405, 404, 403, 402, 401, 400, 399, - 398, 397, 396, 395, 394, 393, 390, 388, 387, 386, - 385, 384, 383, 382, 381, 380, 379, 378, 377, 374, - 362, 359, 358, 357, 356, 355, 354, 353, 352, 351, - 350, 348, 347, 346, 345, 343, 339, 338, 337, 336, - 334, 333, 332, 331, 329, 328, 327, 323, 321, 320, - 319, 318, 317, 316, 315, 313, 312, 311, 310, 309, - 308, 307, 306, 305, 304, 301, 300, 299, 295, 273, - 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - - 262, 261, 259, 258, 257, 256, 255, 254, 253, 251, - 250, 249, 247, 246, 244, 243, 242, 241, 240, 238, - 237, 236, 235, 234, 232, 231, 230, 228, 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, 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, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, - 1274, 1274 - } ; - -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, 2004, 2005 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 - -#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 -#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 YY_NO_UNPUT - -#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 1407 "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 -#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 \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - } -#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 123 "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 1587 "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 >= 1275 ) - 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] != 2191 ); - -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 140 "ldlex.l" -{ comment (); } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 143 "ldlex.l" -{ RTOKEN('-');} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 144 "ldlex.l" -{ RTOKEN('+');} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 145 "ldlex.l" -{ yylval.name = xstrdup (yytext); return NAME; } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 146 "ldlex.l" -{ RTOKEN('='); } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 148 "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 154 "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 179 "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 208 "ldlex.l" -{ RTOKEN(']');} - YY_BREAK -case 10: -YY_RULE_SETUP -#line 209 "ldlex.l" -{ RTOKEN('[');} - YY_BREAK -case 11: -YY_RULE_SETUP -#line 210 "ldlex.l" -{ RTOKEN(LSHIFTEQ);} - YY_BREAK -case 12: -YY_RULE_SETUP -#line 211 "ldlex.l" -{ RTOKEN(RSHIFTEQ);} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 212 "ldlex.l" -{ RTOKEN(OROR);} - YY_BREAK -case 14: -YY_RULE_SETUP -#line 213 "ldlex.l" -{ RTOKEN(EQ);} - YY_BREAK -case 15: -YY_RULE_SETUP -#line 214 "ldlex.l" -{ RTOKEN(NE);} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 215 "ldlex.l" -{ RTOKEN(GE);} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 216 "ldlex.l" -{ RTOKEN(LE);} - YY_BREAK -case 18: -YY_RULE_SETUP -#line 217 "ldlex.l" -{ RTOKEN(LSHIFT);} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 218 "ldlex.l" -{ RTOKEN(RSHIFT);} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 219 "ldlex.l" -{ RTOKEN(PLUSEQ);} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 220 "ldlex.l" -{ RTOKEN(MINUSEQ);} - YY_BREAK -case 22: -YY_RULE_SETUP -#line 221 "ldlex.l" -{ RTOKEN(MULTEQ);} - YY_BREAK -case 23: -YY_RULE_SETUP -#line 222 "ldlex.l" -{ RTOKEN(DIVEQ);} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 223 "ldlex.l" -{ RTOKEN(ANDEQ);} - YY_BREAK -case 25: -YY_RULE_SETUP -#line 224 "ldlex.l" -{ RTOKEN(OREQ);} - YY_BREAK -case 26: -YY_RULE_SETUP -#line 225 "ldlex.l" -{ RTOKEN(ANDAND);} - YY_BREAK -case 27: -YY_RULE_SETUP -#line 226 "ldlex.l" -{ RTOKEN('>');} - YY_BREAK -case 28: -YY_RULE_SETUP -#line 227 "ldlex.l" -{ RTOKEN(',');} - YY_BREAK -case 29: -YY_RULE_SETUP -#line 228 "ldlex.l" -{ RTOKEN('&');} - YY_BREAK -case 30: -YY_RULE_SETUP -#line 229 "ldlex.l" -{ RTOKEN('|');} - YY_BREAK -case 31: -YY_RULE_SETUP -#line 230 "ldlex.l" -{ RTOKEN('~');} - YY_BREAK -case 32: -YY_RULE_SETUP -#line 231 "ldlex.l" -{ RTOKEN('!');} - YY_BREAK -case 33: -YY_RULE_SETUP -#line 232 "ldlex.l" -{ RTOKEN('?');} - YY_BREAK -case 34: -YY_RULE_SETUP -#line 233 "ldlex.l" -{ RTOKEN('*');} - YY_BREAK -case 35: -YY_RULE_SETUP -#line 234 "ldlex.l" -{ RTOKEN('+');} - YY_BREAK -case 36: -YY_RULE_SETUP -#line 235 "ldlex.l" -{ RTOKEN('-');} - YY_BREAK -case 37: -YY_RULE_SETUP -#line 236 "ldlex.l" -{ RTOKEN('/');} - YY_BREAK -case 38: -YY_RULE_SETUP -#line 237 "ldlex.l" -{ RTOKEN('%');} - YY_BREAK -case 39: -YY_RULE_SETUP -#line 238 "ldlex.l" -{ RTOKEN('<');} - YY_BREAK -case 40: -YY_RULE_SETUP -#line 239 "ldlex.l" -{ RTOKEN('=');} - YY_BREAK -case 41: -YY_RULE_SETUP -#line 240 "ldlex.l" -{ RTOKEN('}') ; } - YY_BREAK -case 42: -YY_RULE_SETUP -#line 241 "ldlex.l" -{ RTOKEN('{'); } - YY_BREAK -case 43: -YY_RULE_SETUP -#line 242 "ldlex.l" -{ RTOKEN(')');} - YY_BREAK -case 44: -YY_RULE_SETUP -#line 243 "ldlex.l" -{ RTOKEN('(');} - YY_BREAK -case 45: -YY_RULE_SETUP -#line 244 "ldlex.l" -{ RTOKEN(':'); } - YY_BREAK -case 46: -YY_RULE_SETUP -#line 245 "ldlex.l" -{ RTOKEN(';');} - YY_BREAK -case 47: -YY_RULE_SETUP -#line 246 "ldlex.l" -{ RTOKEN(MEMORY);} - YY_BREAK -case 48: -YY_RULE_SETUP -#line 247 "ldlex.l" -{ RTOKEN(ORIGIN);} - YY_BREAK -case 49: -YY_RULE_SETUP -#line 248 "ldlex.l" -{ RTOKEN(VERSIONK);} - YY_BREAK -case 50: -YY_RULE_SETUP -#line 249 "ldlex.l" -{ RTOKEN(BLOCK);} - YY_BREAK -case 51: -YY_RULE_SETUP -#line 250 "ldlex.l" -{ RTOKEN(BIND);} - YY_BREAK -case 52: -YY_RULE_SETUP -#line 251 "ldlex.l" -{ RTOKEN(LENGTH);} - YY_BREAK -case 53: -YY_RULE_SETUP -#line 252 "ldlex.l" -{ RTOKEN(ALIGN_K);} - YY_BREAK -case 54: -YY_RULE_SETUP -#line 253 "ldlex.l" -{ RTOKEN(DATA_SEGMENT_ALIGN);} - YY_BREAK -case 55: -YY_RULE_SETUP -#line 254 "ldlex.l" -{ RTOKEN(DATA_SEGMENT_RELRO_END);} - YY_BREAK -case 56: -YY_RULE_SETUP -#line 255 "ldlex.l" -{ RTOKEN(DATA_SEGMENT_END);} - YY_BREAK -case 57: -YY_RULE_SETUP -#line 256 "ldlex.l" -{ RTOKEN(ADDR);} - YY_BREAK -case 58: -YY_RULE_SETUP -#line 257 "ldlex.l" -{ RTOKEN(LOADADDR);} - YY_BREAK -case 59: -YY_RULE_SETUP -#line 258 "ldlex.l" -{ RTOKEN(MAX_K); } - YY_BREAK -case 60: -YY_RULE_SETUP -#line 259 "ldlex.l" -{ RTOKEN(MIN_K); } - YY_BREAK -case 61: -YY_RULE_SETUP -#line 260 "ldlex.l" -{ RTOKEN(ASSERT_K); } - YY_BREAK -case 62: -YY_RULE_SETUP -#line 261 "ldlex.l" -{ RTOKEN(ENTRY);} - YY_BREAK -case 63: -YY_RULE_SETUP -#line 262 "ldlex.l" -{ RTOKEN(EXTERN);} - YY_BREAK -case 64: -YY_RULE_SETUP -#line 263 "ldlex.l" -{ RTOKEN(NEXT);} - YY_BREAK -case 65: -YY_RULE_SETUP -#line 264 "ldlex.l" -{ RTOKEN(SIZEOF_HEADERS);} - YY_BREAK -case 66: -YY_RULE_SETUP -#line 265 "ldlex.l" -{ RTOKEN(SIZEOF_HEADERS);} - YY_BREAK -case 67: -YY_RULE_SETUP -#line 266 "ldlex.l" -{ RTOKEN(SEGMENT_START);} - YY_BREAK -case 68: -YY_RULE_SETUP -#line 267 "ldlex.l" -{ RTOKEN(MAP);} - YY_BREAK -case 69: -YY_RULE_SETUP -#line 268 "ldlex.l" -{ RTOKEN(SIZEOF);} - YY_BREAK -case 70: -YY_RULE_SETUP -#line 269 "ldlex.l" -{ RTOKEN(TARGET_K);} - YY_BREAK -case 71: -YY_RULE_SETUP -#line 270 "ldlex.l" -{ RTOKEN(SEARCH_DIR);} - YY_BREAK -case 72: -YY_RULE_SETUP -#line 271 "ldlex.l" -{ RTOKEN(OUTPUT);} - YY_BREAK -case 73: -YY_RULE_SETUP -#line 272 "ldlex.l" -{ RTOKEN(INPUT);} - YY_BREAK -case 74: -YY_RULE_SETUP -#line 273 "ldlex.l" -{ RTOKEN(GROUP);} - YY_BREAK -case 75: -YY_RULE_SETUP -#line 274 "ldlex.l" -{ RTOKEN(AS_NEEDED);} - YY_BREAK -case 76: -YY_RULE_SETUP -#line 275 "ldlex.l" -{ RTOKEN(DEFINED);} - YY_BREAK -case 77: -YY_RULE_SETUP -#line 276 "ldlex.l" -{ RTOKEN(CREATE_OBJECT_SYMBOLS);} - YY_BREAK -case 78: -YY_RULE_SETUP -#line 277 "ldlex.l" -{ RTOKEN( CONSTRUCTORS);} - YY_BREAK -case 79: -YY_RULE_SETUP -#line 278 "ldlex.l" -{ RTOKEN(FORCE_COMMON_ALLOCATION);} - YY_BREAK -case 80: -YY_RULE_SETUP -#line 279 "ldlex.l" -{ RTOKEN(INHIBIT_COMMON_ALLOCATION);} - YY_BREAK -case 81: -YY_RULE_SETUP -#line 280 "ldlex.l" -{ RTOKEN(SECTIONS);} - YY_BREAK -case 82: -YY_RULE_SETUP -#line 281 "ldlex.l" -{ RTOKEN(FILL);} - YY_BREAK -case 83: -YY_RULE_SETUP -#line 282 "ldlex.l" -{ RTOKEN(STARTUP);} - YY_BREAK -case 84: -YY_RULE_SETUP -#line 283 "ldlex.l" -{ RTOKEN(OUTPUT_FORMAT);} - YY_BREAK -case 85: -YY_RULE_SETUP -#line 284 "ldlex.l" -{ RTOKEN( OUTPUT_ARCH);} - YY_BREAK -case 86: -YY_RULE_SETUP -#line 285 "ldlex.l" -{ RTOKEN(HLL);} - YY_BREAK -case 87: -YY_RULE_SETUP -#line 286 "ldlex.l" -{ RTOKEN(SYSLIB);} - YY_BREAK -case 88: -YY_RULE_SETUP -#line 287 "ldlex.l" -{ RTOKEN(FLOAT);} - YY_BREAK -case 89: -YY_RULE_SETUP -#line 288 "ldlex.l" -{ RTOKEN( QUAD);} - YY_BREAK -case 90: -YY_RULE_SETUP -#line 289 "ldlex.l" -{ RTOKEN( SQUAD);} - YY_BREAK -case 91: -YY_RULE_SETUP -#line 290 "ldlex.l" -{ RTOKEN( LONG);} - YY_BREAK -case 92: -YY_RULE_SETUP -#line 291 "ldlex.l" -{ RTOKEN( SHORT);} - YY_BREAK -case 93: -YY_RULE_SETUP -#line 292 "ldlex.l" -{ RTOKEN( BYTE);} - YY_BREAK -case 94: -YY_RULE_SETUP -#line 293 "ldlex.l" -{ RTOKEN(NOFLOAT);} - YY_BREAK -case 95: -YY_RULE_SETUP -#line 294 "ldlex.l" -{ RTOKEN(NOCROSSREFS);} - YY_BREAK -case 96: -YY_RULE_SETUP -#line 295 "ldlex.l" -{ RTOKEN(OVERLAY); } - YY_BREAK -case 97: -YY_RULE_SETUP -#line 296 "ldlex.l" -{ RTOKEN(SORT_BY_NAME); } - YY_BREAK -case 98: -YY_RULE_SETUP -#line 297 "ldlex.l" -{ RTOKEN(SORT_BY_ALIGNMENT); } - YY_BREAK -case 99: -YY_RULE_SETUP -#line 298 "ldlex.l" -{ RTOKEN(SORT_BY_NAME); } - YY_BREAK -case 100: -YY_RULE_SETUP -#line 299 "ldlex.l" -{ RTOKEN(NOLOAD);} - YY_BREAK -case 101: -YY_RULE_SETUP -#line 300 "ldlex.l" -{ RTOKEN(DSECT);} - YY_BREAK -case 102: -YY_RULE_SETUP -#line 301 "ldlex.l" -{ RTOKEN(COPY);} - YY_BREAK -case 103: -YY_RULE_SETUP -#line 302 "ldlex.l" -{ RTOKEN(INFO);} - YY_BREAK -case 104: -YY_RULE_SETUP -#line 303 "ldlex.l" -{ RTOKEN(OVERLAY);} - YY_BREAK -case 105: -YY_RULE_SETUP -#line 304 "ldlex.l" -{ RTOKEN(ONLY_IF_RO); } - YY_BREAK -case 106: -YY_RULE_SETUP -#line 305 "ldlex.l" -{ RTOKEN(ONLY_IF_RW); } - YY_BREAK -case 107: -YY_RULE_SETUP -#line 306 "ldlex.l" -{ RTOKEN(ORIGIN);} - YY_BREAK -case 108: -YY_RULE_SETUP -#line 307 "ldlex.l" -{ RTOKEN(ORIGIN);} - YY_BREAK -case 109: -YY_RULE_SETUP -#line 308 "ldlex.l" -{ RTOKEN( LENGTH);} - YY_BREAK -case 110: -YY_RULE_SETUP -#line 309 "ldlex.l" -{ RTOKEN( LENGTH);} - YY_BREAK -case 111: -YY_RULE_SETUP -#line 310 "ldlex.l" -{ RTOKEN(INCLUDE);} - YY_BREAK -case 112: -YY_RULE_SETUP -#line 311 "ldlex.l" -{ RTOKEN (PHDRS); } - YY_BREAK -case 113: -YY_RULE_SETUP -#line 312 "ldlex.l" -{ RTOKEN(AT);} - YY_BREAK -case 114: -YY_RULE_SETUP -#line 313 "ldlex.l" -{ RTOKEN(SUBALIGN);} - YY_BREAK -case 115: -YY_RULE_SETUP -#line 314 "ldlex.l" -{ RTOKEN(PROVIDE); } - YY_BREAK -case 116: -YY_RULE_SETUP -#line 315 "ldlex.l" -{ RTOKEN(KEEP); } - YY_BREAK -case 117: -YY_RULE_SETUP -#line 316 "ldlex.l" -{ RTOKEN(EXCLUDE_FILE); } - YY_BREAK -case 118: -YY_RULE_SETUP -#line 317 "ldlex.l" -{ ++ lineno; } - YY_BREAK -case 119: -YY_RULE_SETUP -#line 318 "ldlex.l" -{ ++ lineno; RTOKEN(NEWLINE); } - YY_BREAK -case 120: -YY_RULE_SETUP -#line 319 "ldlex.l" -{ /* Mri comment line */ } - YY_BREAK -case 121: -YY_RULE_SETUP -#line 320 "ldlex.l" -{ /* Mri comment line */ } - YY_BREAK -case 122: -YY_RULE_SETUP -#line 321 "ldlex.l" -{ RTOKEN(ENDWORD); } - YY_BREAK -case 123: -YY_RULE_SETUP -#line 322 "ldlex.l" -{ RTOKEN(ALIGNMOD);} - YY_BREAK -case 124: -YY_RULE_SETUP -#line 323 "ldlex.l" -{ RTOKEN(ALIGN_K);} - YY_BREAK -case 125: -YY_RULE_SETUP -#line 324 "ldlex.l" -{ RTOKEN(CHIP); } - YY_BREAK -case 126: -YY_RULE_SETUP -#line 325 "ldlex.l" -{ RTOKEN(BASE); } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 326 "ldlex.l" -{ RTOKEN(ALIAS); } - YY_BREAK -case 128: -YY_RULE_SETUP -#line 327 "ldlex.l" -{ RTOKEN(TRUNCATE); } - YY_BREAK -case 129: -YY_RULE_SETUP -#line 328 "ldlex.l" -{ RTOKEN(LOAD); } - YY_BREAK -case 130: -YY_RULE_SETUP -#line 329 "ldlex.l" -{ RTOKEN(PUBLIC); } - YY_BREAK -case 131: -YY_RULE_SETUP -#line 330 "ldlex.l" -{ RTOKEN(ORDER); } - YY_BREAK -case 132: -YY_RULE_SETUP -#line 331 "ldlex.l" -{ RTOKEN(NAMEWORD); } - YY_BREAK -case 133: -YY_RULE_SETUP -#line 332 "ldlex.l" -{ RTOKEN(FORMAT); } - YY_BREAK -case 134: -YY_RULE_SETUP -#line 333 "ldlex.l" -{ RTOKEN(CASE); } - YY_BREAK -case 135: -YY_RULE_SETUP -#line 334 "ldlex.l" -{ RTOKEN(START); } - YY_BREAK -case 136: -YY_RULE_SETUP -#line 335 "ldlex.l" -{ RTOKEN(LIST); /* LIST and ignore to end of line */ } - YY_BREAK -case 137: -YY_RULE_SETUP -#line 336 "ldlex.l" -{ RTOKEN(SECT); } - YY_BREAK -case 138: -YY_RULE_SETUP -#line 337 "ldlex.l" -{ RTOKEN(ABSOLUTE); } - YY_BREAK -case 139: -YY_RULE_SETUP -#line 338 "ldlex.l" -{ RTOKEN(ENDWORD); } - YY_BREAK -case 140: -YY_RULE_SETUP -#line 339 "ldlex.l" -{ RTOKEN(ALIGNMOD);} - YY_BREAK -case 141: -YY_RULE_SETUP -#line 340 "ldlex.l" -{ RTOKEN(ALIGN_K);} - YY_BREAK -case 142: -YY_RULE_SETUP -#line 341 "ldlex.l" -{ RTOKEN(CHIP); } - YY_BREAK -case 143: -YY_RULE_SETUP -#line 342 "ldlex.l" -{ RTOKEN(BASE); } - YY_BREAK -case 144: -YY_RULE_SETUP -#line 343 "ldlex.l" -{ RTOKEN(ALIAS); } - YY_BREAK -case 145: -YY_RULE_SETUP -#line 344 "ldlex.l" -{ RTOKEN(TRUNCATE); } - YY_BREAK -case 146: -YY_RULE_SETUP -#line 345 "ldlex.l" -{ RTOKEN(LOAD); } - YY_BREAK -case 147: -YY_RULE_SETUP -#line 346 "ldlex.l" -{ RTOKEN(PUBLIC); } - YY_BREAK -case 148: -YY_RULE_SETUP -#line 347 "ldlex.l" -{ RTOKEN(ORDER); } - YY_BREAK -case 149: -YY_RULE_SETUP -#line 348 "ldlex.l" -{ RTOKEN(NAMEWORD); } - YY_BREAK -case 150: -YY_RULE_SETUP -#line 349 "ldlex.l" -{ RTOKEN(FORMAT); } - YY_BREAK -case 151: -YY_RULE_SETUP -#line 350 "ldlex.l" -{ RTOKEN(CASE); } - YY_BREAK -case 152: -YY_RULE_SETUP -#line 351 "ldlex.l" -{ RTOKEN(EXTERN); } - YY_BREAK -case 153: -YY_RULE_SETUP -#line 352 "ldlex.l" -{ RTOKEN(START); } - YY_BREAK -case 154: -YY_RULE_SETUP -#line 353 "ldlex.l" -{ RTOKEN(LIST); /* LIST and ignore to end of line */ } - YY_BREAK -case 155: -YY_RULE_SETUP -#line 354 "ldlex.l" -{ RTOKEN(SECT); } - YY_BREAK -case 156: -YY_RULE_SETUP -#line 355 "ldlex.l" -{ RTOKEN(ABSOLUTE); } - YY_BREAK -case 157: -YY_RULE_SETUP -#line 357 "ldlex.l" -{ -/* Filename without commas, needed to parse mri stuff */ - yylval.name = xstrdup (yytext); - return NAME; - } - YY_BREAK -case 158: -YY_RULE_SETUP -#line 364 "ldlex.l" -{ - yylval.name = xstrdup (yytext); - return NAME; - } - YY_BREAK -case 159: -YY_RULE_SETUP -#line 368 "ldlex.l" -{ - yylval.name = xstrdup (yytext + 2); - return LNAME; - } - YY_BREAK -case 160: -YY_RULE_SETUP -#line 372 "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 161: -YY_RULE_SETUP -#line 389 "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 162: -YY_RULE_SETUP -#line 396 "ldlex.l" -{ lineno++;} - YY_BREAK -case 163: -YY_RULE_SETUP -#line 397 "ldlex.l" -{ } - YY_BREAK -case 164: -YY_RULE_SETUP -#line 399 "ldlex.l" -{ return *yytext; } - YY_BREAK -case 165: -YY_RULE_SETUP -#line 401 "ldlex.l" -{ RTOKEN(GLOBAL); } - YY_BREAK -case 166: -YY_RULE_SETUP -#line 403 "ldlex.l" -{ RTOKEN(LOCAL); } - YY_BREAK -case 167: -YY_RULE_SETUP -#line 405 "ldlex.l" -{ RTOKEN(EXTERN); } - YY_BREAK -case 168: -YY_RULE_SETUP -#line 407 "ldlex.l" -{ yylval.name = xstrdup (yytext); - return VERS_IDENTIFIER; } - YY_BREAK -case 169: -YY_RULE_SETUP -#line 410 "ldlex.l" -{ yylval.name = xstrdup (yytext); - return VERS_TAG; } - YY_BREAK -case 170: -YY_RULE_SETUP -#line 413 "ldlex.l" -{ BEGIN(VERS_SCRIPT); return *yytext; } - YY_BREAK -case 171: -YY_RULE_SETUP -#line 415 "ldlex.l" -{ BEGIN(VERS_NODE); - vers_node_nesting = 0; - return *yytext; - } - YY_BREAK -case 172: -YY_RULE_SETUP -#line 419 "ldlex.l" -{ return *yytext; } - YY_BREAK -case 173: -YY_RULE_SETUP -#line 420 "ldlex.l" -{ vers_node_nesting++; return *yytext; } - YY_BREAK -case 174: -YY_RULE_SETUP -#line 421 "ldlex.l" -{ if (--vers_node_nesting < 0) - BEGIN(VERS_SCRIPT); - return *yytext; - } - YY_BREAK -case 175: -YY_RULE_SETUP -#line 426 "ldlex.l" -{ lineno++; } - YY_BREAK -case 176: -YY_RULE_SETUP -#line 428 "ldlex.l" -{ /* Eat up comments */ } - YY_BREAK -case 177: -YY_RULE_SETUP -#line 430 "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 432 "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 178: -YY_RULE_SETUP -#line 450 "ldlex.l" -lex_warn_invalid (" in script", yytext); - YY_BREAK -case 179: -YY_RULE_SETUP -#line 451 "ldlex.l" -lex_warn_invalid (" in expression", yytext); - YY_BREAK -case 180: -YY_RULE_SETUP -#line 453 "ldlex.l" -ECHO; - YY_BREAK -#line 2693 "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 >= 1275 ) - 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 >= 1275 ) - 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 == 1274); - - 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 _WIN32 -#include -#else -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#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 453 "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); -} -- cgit v1.2.1