home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / binutils-2.7-src.tgz / tar.out / fsf / binutils / ld / ldlex.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  96KB  |  3,293 lines

  1. /* A lexical scanner generated by flex */
  2.  
  3. /* Scanner skeleton version:
  4.  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.85 95/04/24 10:48:47 vern Exp $
  5.  */
  6.  
  7. #define FLEX_SCANNER
  8. #define YY_FLEX_MAJOR_VERSION 2
  9. #define YY_FLEX_MINOR_VERSION 5
  10.  
  11. #include <stdio.h>
  12.  
  13.  
  14. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  15. #ifdef c_plusplus
  16. #ifndef __cplusplus
  17. #define __cplusplus
  18. #endif
  19. #endif
  20.  
  21.  
  22. #ifdef __cplusplus
  23.  
  24. #include <stdlib.h>
  25. #include <unistd.h>
  26.  
  27. /* Use prototypes in function declarations. */
  28. #define YY_USE_PROTOS
  29.  
  30. /* The "const" storage-class-modifier is valid. */
  31. #define YY_USE_CONST
  32.  
  33. #else    /* ! __cplusplus */
  34.  
  35. #if __STDC__
  36.  
  37. #define YY_USE_PROTOS
  38. #define YY_USE_CONST
  39.  
  40. #endif    /* __STDC__ */
  41. #endif    /* ! __cplusplus */
  42.  
  43. #ifdef __TURBOC__
  44.  #pragma warn -rch
  45.  #pragma warn -use
  46. #include <io.h>
  47. #include <stdlib.h>
  48. #define YY_USE_CONST
  49. #define YY_USE_PROTOS
  50. #endif
  51.  
  52. #ifdef YY_USE_CONST
  53. #define yyconst const
  54. #else
  55. #define yyconst
  56. #endif
  57.  
  58.  
  59. #ifdef YY_USE_PROTOS
  60. #define YY_PROTO(proto) proto
  61. #else
  62. #define YY_PROTO(proto) ()
  63. #endif
  64.  
  65. /* Returned upon end-of-file. */
  66. #define YY_NULL 0
  67.  
  68. /* Promotes a possibly negative, possibly signed char to an unsigned
  69.  * integer for use as an array index.  If the signed char is negative,
  70.  * we want to instead treat it as an 8-bit unsigned char, hence the
  71.  * double cast.
  72.  */
  73. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  74.  
  75. /* Enter a start condition.  This macro really ought to take a parameter,
  76.  * but we do it the disgusting crufty way forced on us by the ()-less
  77.  * definition of BEGIN.
  78.  */
  79. #define BEGIN yy_start = 1 + 2 *
  80.  
  81. /* Translate the current start state into a value that can be later handed
  82.  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  83.  * compatibility.
  84.  */
  85. #define YY_START ((yy_start - 1) / 2)
  86. #define YYSTATE YY_START
  87.  
  88. /* Action number for EOF rule of a given start state. */
  89. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  90.  
  91. /* Special action meaning "start processing a new file". */
  92. #define YY_NEW_FILE yyrestart( yyin )
  93.  
  94. #define YY_END_OF_BUFFER_CHAR 0
  95.  
  96. /* Size of default input buffer. */
  97. #define YY_BUF_SIZE 16384
  98.  
  99. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  100.  
  101. extern int yyleng;
  102. extern FILE *yyin, *yyout;
  103.  
  104. #define EOB_ACT_CONTINUE_SCAN 0
  105. #define EOB_ACT_END_OF_FILE 1
  106. #define EOB_ACT_LAST_MATCH 2
  107.  
  108. /* The funky do-while in the following #define is used to turn the definition
  109.  * int a single C statement (which needs a semi-colon terminator).  This
  110.  * avoids problems with code like:
  111.  *
  112.  *     if ( condition_holds )
  113.  *        yyless( 5 );
  114.  *    else
  115.  *        do_something_else();
  116.  *
  117.  * Prior to using the do-while the compiler would get upset at the
  118.  * "else" because it interpreted the "if" statement as being all
  119.  * done when it reached the ';' after the yyless() call.
  120.  */
  121.  
  122. /* Return all but the first 'n' matched characters back to the input stream. */
  123.  
  124. #define yyless(n) \
  125.     do \
  126.         { \
  127.         /* Undo effects of setting up yytext. */ \
  128.         *yy_cp = yy_hold_char; \
  129.         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  130.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  131.         } \
  132.     while ( 0 )
  133.  
  134. #define unput(c) yyunput( c, yytext_ptr )
  135.  
  136. /* The following is because we cannot portably get our hands on size_t
  137.  * (without autoconf's help, which isn't available because we want
  138.  * flex-generated scanners to compile on their own).
  139.  */
  140. typedef unsigned int yy_size_t;
  141.  
  142.  
  143. struct yy_buffer_state
  144.     {
  145.     FILE *yy_input_file;
  146.  
  147.     char *yy_ch_buf;        /* input buffer */
  148.     char *yy_buf_pos;        /* current position in input buffer */
  149.  
  150.     /* Size of input buffer in bytes, not including room for EOB
  151.      * characters.
  152.      */
  153.     yy_size_t yy_buf_size;
  154.  
  155.     /* Number of characters read into yy_ch_buf, not including EOB
  156.      * characters.
  157.      */
  158.     int yy_n_chars;
  159.  
  160.     /* Whether we "own" the buffer - i.e., we know we created it,
  161.      * and can realloc() it to grow it, and should free() it to
  162.      * delete it.
  163.      */
  164.     int yy_is_our_buffer;
  165.  
  166.     /* Whether this is an "interactive" input source; if so, and
  167.      * if we're using stdio for input, then we want to use getc()
  168.      * instead of fread(), to make sure we stop fetching input after
  169.      * each newline.
  170.      */
  171.     int yy_is_interactive;
  172.  
  173.     /* Whether we're considered to be at the beginning of a line.
  174.      * If so, '^' rules will be active on the next match, otherwise
  175.      * not.
  176.      */
  177.     int yy_at_bol;
  178.  
  179.     /* Whether to try to fill the input buffer when we reach the
  180.      * end of it.
  181.      */
  182.     int yy_fill_buffer;
  183.  
  184.     int yy_buffer_status;
  185. #define YY_BUFFER_NEW 0
  186. #define YY_BUFFER_NORMAL 1
  187.     /* When an EOF's been seen but there's still some text to process
  188.      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  189.      * shouldn't try reading from the input source any more.  We might
  190.      * still have a bunch of tokens to match, though, because of
  191.      * possible backing-up.
  192.      *
  193.      * When we actually see the EOF, we change the status to "new"
  194.      * (via yyrestart()), so that the user can continue scanning by
  195.      * just pointing yyin at a new input file.
  196.      */
  197. #define YY_BUFFER_EOF_PENDING 2
  198.     };
  199.  
  200. static YY_BUFFER_STATE yy_current_buffer = 0;
  201.  
  202. /* We provide macros for accessing buffer states in case in the
  203.  * future we want to put the buffer states in a more general
  204.  * "scanner state".
  205.  */
  206. #define YY_CURRENT_BUFFER yy_current_buffer
  207.  
  208.  
  209. /* yy_hold_char holds the character lost when yytext is formed. */
  210. static char yy_hold_char;
  211.  
  212. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  213.  
  214.  
  215. int yyleng;
  216.  
  217. /* Points to current character in buffer. */
  218. static char *yy_c_buf_p = (char *) 0;
  219. static int yy_init = 1;        /* whether we need to initialize */
  220. static int yy_start = 0;    /* start state number */
  221.  
  222. /* Flag which is used to allow yywrap()'s to do buffer switches
  223.  * instead of setting up a fresh yyin.  A bit of a hack ...
  224.  */
  225. static int yy_did_buffer_switch_on_eof;
  226.  
  227. void yyrestart YY_PROTO(( FILE *input_file ));
  228.  
  229. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  230. void yy_load_buffer_state YY_PROTO(( void ));
  231. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  232. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  233. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  234. void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  235. #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
  236.  
  237. YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
  238. YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str ));
  239. YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
  240.  
  241. static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
  242. static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
  243. static void yy_flex_free YY_PROTO(( void * ));
  244.  
  245. #define yy_new_buffer yy_create_buffer
  246.  
  247. #define yy_set_interactive(is_interactive) \
  248.     { \
  249.     if ( ! yy_current_buffer ) \
  250.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  251.     yy_current_buffer->yy_is_interactive = is_interactive; \
  252.     }
  253.  
  254. #define yy_set_bol(at_bol) \
  255.     { \
  256.     if ( ! yy_current_buffer ) \
  257.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  258.     yy_current_buffer->yy_at_bol = at_bol; \
  259.     }
  260.  
  261. #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
  262.  
  263. typedef unsigned char YY_CHAR;
  264. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  265. typedef int yy_state_type;
  266. extern char *yytext;
  267. #define yytext_ptr yytext
  268.  
  269. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  270. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  271. static int yy_get_next_buffer YY_PROTO(( void ));
  272. static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
  273.  
  274. /* Done after the current pattern has been matched and before the
  275.  * corresponding action - sets up yytext.
  276.  */
  277. #define YY_DO_BEFORE_ACTION \
  278.     yytext_ptr = yy_bp; \
  279.     yyleng = (int) (yy_cp - yy_bp); \
  280.     yy_hold_char = *yy_cp; \
  281.     *yy_cp = '\0'; \
  282.     yy_c_buf_p = yy_cp;
  283.  
  284. #define YY_NUM_RULES 146
  285. #define YY_END_OF_BUFFER 147
  286. static yyconst short int yy_accept[916] =
  287.     {   0,
  288.         0,    0,  139,  139,    0,    0,    0,    0,    0,    0,
  289.         0,    0,  147,  146,  144,  143,  141,  142,   32,  144,
  290.       139,   38,   29,   44,   43,   34,   35,   28,   36,  139,
  291.        37,    8,    8,   45,   46,   39,   40,   27,   33,    8,
  292.         8,    8,    8,    8,    8,  139,  139,  139,  139,  139,
  293.       139,  139,  139,  139,  139,  139,   10,    9,    8,   89,
  294.        87,  139,   42,   30,   41,   31,  145,  143,  142,   32,
  295.       145,  137,   38,   29,   44,   43,   34,   35,   28,   36,
  296.       137,   37,    8,    8,   45,   46,   39,   40,   27,   33,
  297.         8,    8,    8,    8,    8,  137,  137,  137,  137,  137,
  298.  
  299.       137,   10,    9,    8,  137,   42,   30,   41,   31,  137,
  300.         8,    8,    8,    8,    8,    8,    8,    8,  137,  137,
  301.       137,  137,  137,  137,  137,  137,  137,  137,    8,    8,
  302.        89,   87,    4,    3,    2,    4,    5,    4,   96,   97,
  303.        95,  136,   34,   35,   28,   36,  136,   37,    8,    8,
  304.        45,   46,   40,    8,    8,    8,    8,    8,    8,  136,
  305.       136,  136,  136,  136,  136,   10,    9,    8,    8,    8,
  306.         8,    8,  136,  136,  136,  136,  136,  136,   31,   15,
  307.         0,  140,  139,    8,    8,   26,   24,   22,   20,   21,
  308.         1,   23,    8,  139,   18,   17,   14,   16,   19,    8,
  309.  
  310.         8,  139,   93,  139,  139,  139,  139,  139,    8,  139,
  311.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  312.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  313.       139,  139,  139,  139,  139,    8,  139,  139,  139,   25,
  314.        13,  137,    6,    6,   20,   21,    0,   23,    8,    7,
  315.         7,    8,    7,   14,    8,    7,    7,    7,    8,  137,
  316.        93,    7,  137,  137,    7,    8,  137,  137,  137,  137,
  317.       137,  137,  137,  137,    7,  137,    8,    8,    8,    0,
  318.         8,    8,  137,  137,  137,    8,  137,  137,  137,  137,
  319.       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
  320.  
  321.       137,  137,  137,  137,  137,  137,    8,  137,  137,    4,
  322.         4,    4,    4,   95,   95,  136,    6,    6,   98,   22,
  323.        23,   99,    8,    7,    7,    7,    8,  136,    8,    8,
  324.         7,  136,    7,    7,  136,  136,  136,  136,  136,  136,
  325.       136,  136,    7,  136,    8,    8,    7,  136,    7,    7,
  326.       136,  136,  136,  136,  136,  136,  136,  136,   11,   12,
  327.       139,    8,  139,  139,  139,  139,  139,  139,  139,    8,
  328.       139,  139,  139,  139,  139,  139,   74,  139,  139,  139,
  329.       139,  139,   58,  139,  139,  139,  139,  139,  139,  139,
  330.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  331.  
  332.       139,   90,   88,  139,  137,  138,  137,    7,  137,  137,
  333.       137,  137,    8,  137,  137,  137,  137,  137,  137,  137,
  334.       137,  137,  137,    8,  137,  137,  137,    8,  137,  137,
  335.       137,  137,   74,  137,  137,  137,  137,   58,  137,  137,
  336.       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
  337.        90,   88,    4,   95,  136,  136,  136,  136,  136,  136,
  338.       100,  136,  136,  136,  136,  136,  136,  136,  136,  136,
  339.       136,  136,  136,  136,  136,  136,  118,  136,  136,  136,
  340.       136,  136,  136,  136,  136,  136,  136,  139,   53,  139,
  341.        50,  139,   80,  139,   84,  139,  139,  139,  139,   70,
  342.  
  343.       139,  139,  139,  139,   85,  139,  139,   78,  139,   55,
  344.       139,  139,  139,  139,  139,  139,  139,   77,  139,  139,
  345.       139,  139,  139,  139,  139,  139,  139,  137,   53,  137,
  346.        50,  137,   84,  137,  137,  137,   85,   55,  137,  137,
  347.       137,  137,  137,  137,   80,  137,  137,  137,   70,  137,
  348.       137,  137,  137,  137,   78,  137,  137,  137,  137,  137,
  349.        77,  137,  137,  137,  137,  137,  137,    8,  136,  136,
  350.       136,  104,  112,  103,  136,  136,  115,  107,  110,  136,
  351.       136,  116,  136,  136,  136,  136,  136,  122,  130,  121,
  352.       136,  136,  133,  125,  128,  136,  136,  134,  136,  136,
  353.  
  354.       139,   52,   49,  139,  139,  139,   83,   54,   76,  139,
  355.        64,  139,   63,  139,  139,  139,  139,  139,  139,  139,
  356.        92,  139,  139,  139,   79,  139,  139,  139,  139,  139,
  357.       139,  137,   52,   49,  137,   83,   64,  137,  137,  137,
  358.       137,  137,  137,  137,  137,   54,   76,  137,  137,   63,
  359.       137,  137,  137,  137,  137,   92,  137,  137,   79,  137,
  360.       137,  137,  136,  105,  102,  136,  136,  115,  115,  109,
  361.       136,  114,  136,  136,  123,  120,  136,  136,  133,  133,
  362.       127,  136,  132,  136,  139,  139,  139,  139,  139,  139,
  363.        51,   47,  139,   82,   48,   62,  139,  139,  139,  139,
  364.  
  365.        59,  139,   75,   60,  139,  139,  137,  137,   82,  137,
  366.       137,   59,  137,  137,  137,  137,  137,  137,   51,   47,
  367.       137,   48,   62,  137,  137,  137,   75,   60,  136,  136,
  368.       113,  111,  108,  136,  136,  136,  131,  129,  126,  136,
  369.       139,  139,  139,   65,  139,   91,   81,  139,   86,   94,
  370.       139,  139,  139,   71,  139,  139,  137,   65,   86,   94,
  371.       137,  137,  137,  137,  137,  137,   91,   81,  137,  137,
  372.       137,   71,  136,  136,  136,  136,  136,  136,  117,  139,
  373.       139,  139,  139,  139,  139,   69,  139,  135,  139,  117,
  374.       137,  135,  137,  137,  137,  137,  137,  137,  137,   69,
  375.  
  376.       117,  101,  106,  135,  119,  124,  139,  139,  139,  139,
  377.       139,  139,  139,  139,  137,  137,  137,  137,  137,  137,
  378.       137,  137,  139,  139,  139,  139,  139,   61,  139,  139,
  379.       137,  137,  137,  137,  137,  137,  137,   61,  139,  139,
  380.       139,   73,  139,  139,  139,  137,  137,  137,  137,  137,
  381.        73,  137,   67,  139,  139,  139,  139,  139,  137,  137,
  382.        67,  137,  137,  137,  139,  139,   72,  139,  139,  137,
  383.       137,  137,  137,   72,  139,  139,   57,   56,   57,   56,
  384.       137,  137,  139,  139,  137,  137,  139,  139,  137,  137,
  385.       139,  139,  137,  137,  139,  139,  137,  137,  139,  139,
  386.  
  387.       137,  137,  139,  139,  137,  137,   66,  139,   66,  137,
  388.       139,  137,   68,   68,    0
  389.     } ;
  390.  
  391. static yyconst int yy_ec[256] =
  392.     {   0,
  393.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  394.         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
  395.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  396.         1,    2,    5,    6,    7,    8,    9,   10,    1,   11,
  397.        12,   13,   14,   15,   16,   17,   18,   19,   20,   20,
  398.        20,   20,   20,   20,   20,   20,   20,   21,   22,   23,
  399.        24,   25,   26,    1,   27,   28,   29,   30,   31,   32,
  400.        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
  401.        43,   44,   45,   46,   47,   48,   17,   49,   50,   51,
  402.        52,   17,   53,    1,   54,    1,   55,   56,   57,   58,
  403.  
  404.        59,   60,   61,   62,   63,   17,   64,   65,   66,   67,
  405.        68,   69,   17,   70,   71,   72,   73,   17,   17,   74,
  406.        17,   75,   76,   77,   78,   79,    1,    1,    1,    1,
  407.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  408.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  409.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  410.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  411.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  412.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  413.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  414.  
  415.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  416.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  417.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  418.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  419.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  420.         1,    1,    1,    1,    1
  421.     } ;
  422.  
  423. static yyconst int yy_meta[80] =
  424.     {   0,
  425.         1,    1,    2,    1,    1,    1,    1,    3,    1,    1,
  426.         1,    1,    1,    3,    4,    3,    5,    5,    6,    6,
  427.         3,    1,    1,    4,    1,    1,    6,    6,    6,    6,
  428.         6,    6,    5,    5,    5,    5,    6,    5,    6,    5,
  429.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  430.         5,    3,    3,    5,    6,    6,    6,    6,    6,    6,
  431.         5,    5,    5,    6,    5,    6,    5,    5,    5,    5,
  432.         5,    5,    5,    6,    5,    1,    1,    1,    3
  433.     } ;
  434.  
  435. static yyconst short int yy_base[931] =
  436.     {   0,
  437.         0,    0,    0,    0,   79,    0,  151,    0,  219,    0,
  438.       298,    0, 1658, 1659, 1659, 1659, 1659, 1659, 1633, 1650,
  439.       359, 1659,  150, 1659, 1659, 1631, 1630,    0, 1629,    0,
  440.       148,  401, 1578,    0, 1659,  139, 1627,  140, 1659,  138,
  441.       360,  339,  351,  127,  362, 1606, 1611, 1608,  146,  142,
  442.       157,  155,  161, 1600,  377, 1619,    0,    0,  144, 1586,
  443.      1574, 1580, 1659,  360, 1659,    0, 1659, 1659, 1659, 1618,
  444.      1635,  457, 1659,  375, 1659, 1659, 1616, 1615, 1659,  357,
  445.         0,  191,  499, 1564, 1659, 1659,  190, 1613,  368, 1659,
  446.       555,  416,  425,  452,  463, 1592, 1595,  363, 1586, 1589,
  447.  
  448.      1597, 1659, 1659,  464, 1568, 1659,  402, 1659,    0,  611,
  449.       404,  468,  560,  597,  502,  614,  485,  638, 1592, 1589,
  450.       404,  374,  408,  425,  408, 1581,  650, 1600,  588,  653,
  451.      1567, 1555,  701, 1659, 1659,    0, 1659,  743, 1659, 1659,
  452.      1621,  791, 1599, 1598, 1659, 1597,    0, 1596,    0, 1545,
  453.      1659,    0, 1594,  833,  468,  542,  436,  522,  567,  512,
  454.      1590, 1572, 1568,  378, 1570, 1659, 1659,  553,  627,  636,
  455.       620,  618,  339, 1558, 1542, 1538,  505, 1540,    0, 1659,
  456.      1603, 1659,    0,    0, 1534, 1659, 1659, 1659,    0,    0,
  457.      1659,    0,    0,  660, 1583, 1659,    0, 1659, 1582,  463,
  458.  
  459.       376, 1570,    0, 1564, 1562, 1556,  560, 1570,  143, 1569,
  460.      1553, 1560, 1556, 1552, 1554, 1556,  674, 1553, 1552, 1549,
  461.      1551, 1540,  540, 1553, 1541, 1555, 1555, 1543, 1556,  593,
  462.      1541, 1530, 1553, 1534, 1534,  429, 1510, 1515, 1500, 1659,
  463.      1659,    0,  889, 1500, 1659, 1659,    0,    0, 1499, 1498,
  464.      1659, 1659,  671, 1659,  677,  708,  738,    0,    0, 1536,
  465.         0,  739, 1530, 1528, 1526,  751, 1536, 1525, 1533, 1515,
  466.      1525, 1531, 1520, 1509,  758, 1484,  820,  776,    0,    0,
  467.       836,  839, 1512,  620, 1526,  892, 1510, 1517, 1513, 1509,
  468.      1514,  680, 1511, 1510, 1507, 1509,  651, 1512, 1500, 1515,
  469.  
  470.      1517,  666, 1502, 1515, 1496, 1496,  893, 1472, 1477,    0,
  471.      1463,    0,    0, 1533, 1531,    0,  946, 1460,    0,    0,
  472.      1659,    0,  507,  673,  711,    0,    0, 1498,  786,  788,
  473.      1497, 1501, 1484, 1485, 1483, 1500, 1487, 1495, 1496, 1494,
  474.      1495, 1474,  797, 1457,  806,  868, 1456, 1460, 1445, 1446,
  475.      1444, 1459, 1447, 1454, 1455, 1453, 1454, 1435, 1659, 1659,
  476.      1466,  437, 1473, 1475, 1475, 1472, 1457, 1451, 1473,  614,
  477.      1470, 1454, 1459, 1469, 1466, 1447,    0, 1455, 1451, 1444,
  478.      1457, 1456,    0, 1447, 1441, 1448, 1444, 1451, 1441, 1438,
  479.      1437, 1432, 1449, 1434, 1431, 1432, 1444, 1430, 1435, 1439,
  480.  
  481.      1403,    0,    0, 1411, 1450,    0, 1427,  897, 1434, 1436,
  482.      1436, 1414,  951, 1434, 1415, 1420, 1414, 1418, 1414, 1409,
  483.      1425, 1387, 1395,  943, 1422, 1407, 1424,  903, 1406, 1411,
  484.      1421, 1418,    0, 1404, 1389, 1397, 1391,    0, 1373, 1370,
  485.      1371, 1329, 1326, 1339, 1324, 1321, 1322, 1321, 1326, 1330,
  486.         0,    0,  951, 1659, 1002, 1321,  714, 1330, 1329, 1317,
  487.         0, 1327, 1318, 1310, 1325, 1323, 1322, 1314, 1305, 1306,
  488.      1309, 1280,  687, 1288, 1287, 1276,    0, 1285, 1277, 1270,
  489.      1283, 1281, 1280, 1273, 1265, 1266, 1268, 1296,    0, 1293,
  490.         0, 1295,    0, 1285,    0, 1284, 1289, 1282, 1277,    0,
  491.  
  492.      1280, 1294, 1282, 1276,    0, 1271, 1270,    0, 1271,    0,
  493.      1273, 1286, 1277, 1263, 1266, 1254, 1258,    0, 1263, 1256,
  494.      1244, 1248, 1242, 1252, 1255, 1220, 1216, 1245,    0, 1242,
  495.         0, 1244,    0, 1240, 1233, 1236,    0,    0, 1250, 1238,
  496.      1240, 1233, 1208, 1204,    0, 1225, 1224, 1219,    0, 1222,
  497.      1236, 1219, 1219, 1218,    0, 1219, 1221, 1226, 1213, 1214,
  498.         0, 1229, 1222, 1210, 1209, 1219, 1222,  959, 1214, 1206,
  499.      1210,    0,    0,    0, 1205, 1221, 1062,    0,    0, 1203,
  500.      1211,    0, 1199, 1210, 1173, 1166, 1169,    0,    0,    0,
  501.      1165, 1179, 1140,    0,    0, 1162, 1163,    0, 1149, 1158,
  502.  
  503.      1167,    0,    0, 1169, 1181, 1180,    0,    0,    0, 1156,
  504.         0, 1179,    0, 1174, 1157, 1179, 1175, 1164, 1157, 1175,
  505.         0, 1171, 1166, 1158,    0, 1166, 1150, 1168, 1149, 1121,
  506.      1133, 1145,    0,    0, 1160,    0,    0, 1160, 1162, 1158,
  507.      1155, 1113, 1125, 1140, 1152,    0,    0, 1128, 1151,    0,
  508.      1146, 1129, 1151, 1137, 1130,    0, 1141, 1133,    0, 1126,
  509.      1144, 1125, 1123,    0, 1130, 1128, 1121,    0, 1218,    0,
  510.      1132,    0, 1133, 1086,    0, 1092, 1090, 1084,    0, 1296,
  511.         0, 1097,    0, 1093, 1097, 1090, 1082, 1105, 1105, 1102,
  512.         0,    0, 1086,    0,    0, 1077, 1080, 1098, 1074, 1087,
  513.  
  514.      1072, 1083,    0,    0, 1052, 1069, 1076, 1091,    0, 1070,
  515.      1088, 1064, 1045, 1062, 1068, 1060, 1084, 1081,    0,    0,
  516.      1065,    0, 1056, 1055, 1068, 1065,    0,    0, 1060, 1064,
  517.         0,    0,    0, 1058, 1031, 1034,    0,    0,    0, 1029,
  518.      1069, 1070, 1057,    0, 1056,    0,    0,  713,    0,    0,
  519.      1066, 1050, 1060,    0, 1034, 1030, 1060,    0,    0,    0,
  520.      1056, 1030, 1021, 1053, 1040, 1039,    0,    0,  723, 1049,
  521.      1033,    0, 1045, 1040, 1034,  997,  997,  995,    0, 1007,
  522.      1024, 1012, 1006, 1008, 1013,    0, 1016,    0,  987,    0,
  523.      1014,    0,  985,  997, 1014, 1002,  996,  998, 1003,    0,
  524.  
  525.         0,    0,    0,    0,    0,    0,  996, 1000,  996,  999,
  526.       983,  982,  997,  964,  991,  961,  973,  977,  972,  979,
  527.       956,  955,  951,  963,  952,  958,  952,    0,  954,  914,
  528.       941,  912,  924,  930,  919,  920,  408,    0,  403,  470,
  529.       483,    0,  517,  521,  544,  597,  578,  605,  684,  674,
  530.         0,  698,    0,  681,  689,  698,  707,  682,  720,  695,
  531.         0,  732,  733,  744,  737,  765,    0,  748,  723,  760,
  532.       735,  754,  785,    0,  772,  789,    0,    0,    0,    0,
  533.       783,  792,  782,  798,  787,  800,  802,  802,  806,  813,
  534.       828,  837,  851,  851,  842,  858,  846,  871,  866,  864,
  535.  
  536.       875,  868,  870,  888,  888,  899,    0,  895,    0,  896,
  537.       910,  911,    0,    0, 1659, 1374, 1380, 1384, 1388,  946,
  538.      1390, 1396, 1400, 1406, 1412, 1416, 1422, 1428, 1434, 1440
  539.     } ;
  540.  
  541. static yyconst short int yy_def[931] =
  542.     {   0,
  543.       916,  916,  915,    3,  915,    5,    5,    7,  915,    9,
  544.       915,   11,  915,  915,  915,  915,  915,  915,  915,  917,
  545.       918,  915,  915,  915,  915,  915,  918,  918,  918,  918,
  546.       918,  918,   32,  918,  915,  915,  918,  915,  915,   32,
  547.        32,   32,   32,   32,   32,  918,  918,  918,  918,  918,
  548.       918,  918,  918,  918,  918,  918,  918,  918,   32,  918,
  549.       918,  918,  915,  915,  915,  918,  915,  915,  915,  915,
  550.       917,  919,  915,  915,  915,  915,  915,  915,  915,  915,
  551.       919,  919,  915,   83,  915,  915,  915,  915,  915,  915,
  552.       919,   91,   91,   91,   91,  919,  919,  919,  919,  919,
  553.  
  554.       919,  915,  915,   91,  919,  915,  915,  915,  919,  919,
  555.       920,  920,  110,  110,  110,  110,  110,  110,  919,  919,
  556.       919,  919,  919,  919,  919,  919,  919,  919,  110,  110,
  557.       919,  919,  921,  915,  915,  921,  915,  921,  915,  915,
  558.       922,  923,  924,  915,  915,  915,  923,  923,   83,   83,
  559.       915,  925,  915,  923,  154,  154,  154,  154,  154,  923,
  560.       923,  923,  923,  923,  923,  915,  915,  154,  154,  154,
  561.       154,  154,  923,  923,  923,  923,  923,  923,  923,  915,
  562.       917,  915,  918,   32,   32,  915,  915,  915,  918,  918,
  563.       915,  918,  918,   32,  915,  915,  918,  915,  915,   32,
  564.  
  565.        32,  918,  918,  918,  918,  918,  918,  918,   32,  918,
  566.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  567.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  568.       918,  918,  918,  918,  918,   32,  918,  918,  918,  915,
  569.       915,  919,  919,  243,  915,  915,  926,  919,   83,   83,
  570.       915,  915,  112,  915,   91,   91,   91,  919,  919,  919,
  571.       919,   91,  919,  919,  919,   91,  919,  919,  919,  919,
  572.       919,  919,  919,  919,   91,  919,  110,  110,  112,  253,
  573.       110,  110,  919,  919,  919,  110,  919,  919,  919,  919,
  574.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  575.  
  576.       919,  919,  919,  919,  919,  919,  110,  919,  919,  921,
  577.       138,  138,  921,  922,  915,  923,  923,  317,  924,  924,
  578.       915,  925,  154,  154,  154,  923,  923,  923,  154,  154,
  579.       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
  580.       923,  923,  154,  923,  154,  154,  923,  923,  923,  923,
  581.       923,  923,  923,  923,  923,  923,  923,  923,  915,  915,
  582.       918,   32,  918,  918,  918,  918,  918,  918,  918,   32,
  583.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  584.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  585.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  586.  
  587.       918,  918,  918,  918,  110,  926,  919,   91,  919,  919,
  588.       919,  919,   91,  919,  919,  919,  919,  919,  919,  919,
  589.       919,  919,  919,  110,  919,  919,  919,  110,  919,  919,
  590.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  591.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  592.       919,  919,  138,  915,  923,  923,  923,  923,  923,  923,
  593.       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
  594.       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
  595.       923,  923,  923,  923,  923,  923,  923,  918,  918,  918,
  596.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  597.  
  598.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  599.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  600.       918,  918,  918,  918,  918,  918,  918,  919,  919,  919,
  601.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  602.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  603.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  604.       919,  919,  919,  919,  919,  919,  919,  455,  923,  923,
  605.       923,  923,  923,  923,  923,  923,  927,  923,  923,  923,
  606.       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
  607.       923,  923,  928,  923,  923,  923,  923,  923,  923,  923,
  608.  
  609.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  610.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  611.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  612.       918,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  613.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  614.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  615.       919,  919,  923,  923,  923,  923,  923,  929,  927,  923,
  616.       923,  923,  923,  923,  923,  923,  923,  923,  930,  928,
  617.       923,  923,  923,  923,  918,  918,  918,  918,  918,  918,
  618.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  619.  
  620.       918,  918,  918,  918,  918,  918,  919,  919,  919,  919,
  621.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  622.       919,  919,  919,  919,  919,  919,  919,  919,  923,  923,
  623.       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
  624.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  625.       918,  918,  918,  918,  918,  918,  919,  919,  919,  919,
  626.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  627.       919,  919,  923,  923,  923,  923,  923,  923,  918,  918,
  628.       918,  918,  918,  918,  918,  918,  918,  918,  918,  919,
  629.       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
  630.  
  631.       923,  923,  923,  923,  923,  923,  918,  918,  918,  918,
  632.       918,  918,  918,  918,  919,  919,  919,  919,  919,  919,
  633.       919,  919,  918,  918,  918,  918,  918,  918,  918,  918,
  634.       919,  919,  919,  919,  919,  919,  919,  919,  918,  918,
  635.       918,  918,  918,  918,  918,  919,  919,  919,  919,  919,
  636.       919,  919,  918,  918,  918,  918,  918,  918,  919,  919,
  637.       919,  919,  919,  919,  918,  918,  918,  918,  918,  919,
  638.       919,  919,  919,  919,  918,  918,  918,  918,  919,  919,
  639.       919,  919,  918,  918,  919,  919,  918,  918,  919,  919,
  640.       918,  918,  919,  919,  918,  918,  919,  919,  918,  918,
  641.  
  642.       919,  919,  918,  918,  919,  919,  918,  918,  919,  919,
  643.       918,  919,  918,  919,    0,  915,  915,  915,  915,  915,
  644.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915
  645.     } ;
  646.  
  647. static yyconst short int yy_nxt[1739] =
  648.     {   0,
  649.        15,   16,   17,   18,   19,   20,   15,   21,   22,   23,
  650.        24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
  651.        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
  652.        44,   45,   46,   47,   48,   30,   30,   49,   50,   51,
  653.        52,   53,   54,   30,   55,   56,   30,   30,   30,   30,
  654.        30,   57,   58,   30,   59,   33,   33,   33,   33,   33,
  655.        30,   30,   30,   30,   60,   30,   30,   61,   30,   30,
  656.        62,   30,   30,   30,   30,   63,   64,   65,   66,   67,
  657.        68,   17,   69,   70,   71,   67,   72,   73,   74,   75,
  658.        76,   77,   78,   79,   80,   81,   82,   83,   84,   85,
  659.  
  660.        86,   87,   88,   89,   90,   91,   92,   93,   94,   95,
  661.        95,   96,   81,   97,   81,   81,   81,   81,   98,   99,
  662.       100,   81,   81,  101,   81,   81,   81,   81,   81,   81,
  663.       102,  103,   81,  104,   95,   95,   95,   95,   95,   81,
  664.        81,   81,   81,   81,   81,   81,   81,   81,   81,  105,
  665.        81,   81,   81,   81,  106,  107,  108,  109,  110,  186,
  666.       191,  195,  196,  198,  199,  200,  211,  201,  220,  111,
  667.       112,  192,  221,  187,  370,  202,  218,  113,  114,  115,
  668.       116,  117,  118,  203,  119,  120,  219,  222,  121,  122,
  669.       123,  124,  125,  126,  227,  127,  128,  223,  224,  236,
  670.  
  671.       183,  225,  226,  191,  228,  129,  130,  130,  130,  130,
  672.       130,  183,  195,  196,  248,  131,  183,  183,  132,   67,
  673.        67,   14,   67,   67,   67,   67,  133,   67,   67,   67,
  674.        67,   67,  134,   67,  135,  136,  136,  111,  112,   67,
  675.        67,   67,  137,   67,   67,  138,  138,  138,  138,  138,
  676.       138,  136,  136,  136,  136,  136,  136,  136,  136,  136,
  677.       136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
  678.        67,   67,  136,  138,  138,  138,  138,  138,  138,  136,
  679.       136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
  680.       136,  136,  136,  136,   67,   67,   67,  136,   15,   16,
  681.  
  682.       139,  140,   19,   15,  141,  142,   22,   23,   24,   25,
  683.       143,  144,  145,  146,  147,  148,  149,  150,  151,  152,
  684.        36,  153,   38,   39,  154,  155,  156,  157,  158,  159,
  685.       147,  147,  147,  147,  147,  160,  147,  161,  162,  163,
  686.       147,  147,  164,  165,  147,  147,  147,  147,  147,  166,
  687.       167,  147,  168,  169,  170,  157,  171,  172,  147,  147,
  688.       147,  147,  173,  147,  174,  175,  176,  147,  177,  178,
  689.       147,  147,  147,   63,   64,   65,  179,  184,  185,  207,
  690.       246,  209,  208,  240,  186,  185,  185,  185,  185,  185,
  691.       185,  198,  199,  270,  204,  210,  212,  205,  187,  213,
  692.  
  693.       295,  351,  214,  271,  296,  362,  352,  230,  340,  206,
  694.       231,  232,  183,  185,  185,  185,  185,  185,  185,  185,
  695.       185,  247,  233,  341,  183,  240,  234,  185,  185,  185,
  696.       185,  185,  185,  183,  293,  183,  241,  193,  270,  193,
  697.       252,  300,  252,  262,  294,  262,  852,  853,  297,  183,
  698.       263,  273,  262,  264,  262,  185,  185,  185,  185,  185,
  699.       185,  242,  242,  325,  193,  265,  193,  252,  298,  252,
  700.       242,  299,  272,  316,  194,  243,  244,  280,  241,  262,
  701.       489,  262,  266,  244,  244,  244,  244,  244,  244,  242,
  702.       262,  262,  262,  262,  329,  325,  267,  242,  854,  401,
  703.  
  704.       242,  242,  183,  278,  252,  316,  252,  361,  242,  242,
  705.       183,  244,  244,  244,  244,  244,  244,  249,  249,  275,
  706.       278,  259,  855,  259,  287,  249,  250,  249,  250,  249,
  707.       249,  252,  251,  252,  325,  252,  183,  252,  259,  251,
  708.       259,  915,  284,  856,  316,  285,  335,  251,  259,  325,
  709.       259,  857,  336,  249,  250,  249,  250,  249,  249,  316,
  710.       251,  332,  252,  356,  252,  259,  251,  259,  330,  325,
  711.       333,  386,  253,  255,  255,  331,  357,  387,  278,  316,
  712.       325,  255,  256,  255,  257,  255,  255,  281,  258,  282,
  713.       316,  259,  260,  259,  325,  258,  259,  260,  259,  367,
  714.  
  715.       261,  368,  858,  258,  316,  261,  278,  334,  343,  255,
  716.       262,  255,  262,  255,  255,  278,  258,  344,  259,  394,
  717.       259,  395,  258,  259,  259,  259,  259,  859,  258,  277,
  718.       278,  263,  278,  259,  264,  259,  860,  278,  278,  278,
  719.       278,  278,  278,  307,  286,  325,  283,  325,  497,  861,
  720.       259,  259,  259,  259,  325,  316,  278,  316,  267,  426,
  721.       259,  412,  259,  325,  316,  278,  278,  278,  278,  278,
  722.       278,  278,  288,  316,  259,  289,  259,  259,  290,  259,
  723.       302,  345,  440,  303,  274,  350,  348,  183,  418,  259,
  724.       346,  259,  445,  349,  446,  304,  183,  347,  183,  305,
  725.  
  726.       325,  259,  378,  259,  262,  379,  262,  915,  434,  915,
  727.       316,  416,  862,  863,  242,  380,  259,  456,  259,  311,
  728.       312,  435,  242,  183,  864,  183,  865,  312,  312,  312,
  729.       312,  312,  312,  183,  915,  262,  915,  262,  325,  783,
  730.       570,  586,  866,  867,  784,  242,  571,  587,  316,  797,
  731.       868,  869,  407,  242,  798,  312,  312,  312,  312,  312,
  732.       312,  312,  312,  870,  871,  262,  262,  408,  262,  312,
  733.       312,  312,  312,  312,  312,  242,  242,  872,  262,  313,
  734.       262,  313,  413,  242,  242,  262,  873,  262,  242,  874,
  735.       875,  876,  877,  878,  278,  242,  242,  312,  312,  312,
  736.  
  737.       312,  312,  312,  242,  879,  880,  313,  881,  313,  317,
  738.       318,  882,  259,  325,  259,  325,  883,  318,  318,  318,
  739.       318,  318,  318,  316,  325,  316,  884,  885,  422,  886,
  740.       458,  887,  459,  325,  316,  888,  889,  890,  278,  259,
  741.       891,  259,  892,  316,  893,  318,  318,  318,  318,  318,
  742.       318,  323,  323,  894,  278,  895,  259,  278,  259,  323,
  743.       324,  323,  325,  323,  323,  896,  326,  472,  424,  327,
  744.       328,  327,  259,  326,  259,  259,  474,  259,  897,  898,
  745.       407,  326,  899,  259,  900,  259,  901,  323,  325,  323,
  746.       325,  323,  323,  405,  326,  325,  327,  902,  327,  259,
  747.  
  748.       326,  259,  259,  903,  259,  316,  326,  244,  244,  904,
  749.       278,  278,  905,  906,  907,  244,  244,  244,  244,  244,
  750.       244,  278,  908,  428,  262,  259,  262,  259,  259,  259,
  751.       259,  259,  909,  910,  242,  911,  912,  534,  475,  259,
  752.       529,  259,  242,  244,  244,  244,  244,  244,  244,  913,
  753.       914,  279,  259,  851,  259,  259,  259,  259,  259,  850,
  754.       849,  278,  405,  422,  318,  318,  259,  848,  259,  847,
  755.       846,  845,  318,  318,  318,  318,  318,  318,  262,  259,
  756.       262,  259,  327,  844,  327,  534,  529,  310,  242,  310,
  757.       843,  842,  841,  840,  839,  327,  242,  327,  838,  837,
  758.  
  759.       318,  318,  318,  318,  318,  318,  259,  836,  259,  327,
  760.       835,  327,  834,  833,  310,  832,  310,  831,  830,  455,
  761.       568,  568,  327,  829,  327,  828,  827,  826,  568,  568,
  762.       568,  568,  568,  568,  825,  824,  823,  822,  821,  820,
  763.       819,  818,  817,  816,  815,  814,  813,  812,  811,  810,
  764.       809,  808,  807,  806,  805,  804,  568,  568,  568,  568,
  765.       568,  568,  668,  668,  803,  668,  668,  668,  668,  802,
  766.       668,  668,  668,  668,  668,  801,  668,  800,  799,  796,
  767.       795,  794,  793,  668,  668,  668,  668,  668,  792,  791,
  768.       790,  789,  788,  787,  786,  785,  782,  781,  780,  779,
  769.  
  770.       778,  777,  776,  775,  774,  773,  772,  771,  770,  769,
  771.       768,  767,  766,  765,  764,  763,  762,  761,  760,  759,
  772.       758,  757,  756,  755,  754,  753,  752,  751,  750,  749,
  773.       748,  747,  746,  745,  744,  743,  742,  668,  668,  668,
  774.       679,  679,  741,  679,  679,  679,  679,  740,  679,  679,
  775.       679,  679,  679,  739,  679,  738,  737,  736,  735,  734,
  776.       733,  679,  679,  679,  679,  679,  732,  731,  730,  729,
  777.       728,  727,  726,  725,  724,  723,  722,  721,  720,  719,
  778.       718,  717,  716,  715,  714,  713,  712,  711,  710,  709,
  779.       708,  707,  706,  705,  704,  703,  702,  701,  700,  699,
  780.  
  781.       698,  697,  696,  695,  694,  693,  692,  691,  690,  689,
  782.       688,  687,  686,  685,  684,  679,  679,  679,  668,  668,
  783.       683,  668,  668,  668,  668,  682,  668,  668,  668,  668,
  784.       668,  681,  668,  678,  677,  676,  675,  674,  673,  668,
  785.       668,  668,  668,  668,  672,  671,  670,  667,  666,  665,
  786.       664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
  787.       654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
  788.       644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
  789.       634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
  790.       624,  623,  622,  668,  668,  668,  679,  679,  621,  679,
  791.  
  792.       679,  679,  679,  620,  679,  679,  679,  679,  679,  619,
  793.       679,  618,  617,  616,  615,  614,  613,  679,  679,  679,
  794.       679,  679,  612,  611,  610,  609,  608,  607,  606,  605,
  795.       604,  603,  602,  601,  600,  599,  598,  597,  596,  595,
  796.       594,  593,  592,  591,  590,  589,  588,  585,  584,  583,
  797.       582,  581,  580,  579,  578,  577,  576,  575,  574,  573,
  798.       572,  569,  567,  566,  565,  564,  563,  562,  561,  560,
  799.       559,  679,  679,  679,   14,   14,   14,   14,   14,   14,
  800.       181,  181,  181,  181,  181,  181,  183,  183,  183,  183,
  801.       242,  242,  242,  242,  310,  310,  314,  314,  314,  314,
  802.  
  803.       314,  314,  316,  558,  316,  316,  319,  557,  319,  319,
  804.       319,  319,  322,  556,  322,  322,  322,  322,  406,  406,
  805.       406,  406,  669,  555,  669,  669,  669,  669,  680,  554,
  806.       680,  680,  680,  680,  668,  553,  668,  668,  668,  668,
  807.       679,  552,  679,  679,  679,  679,  551,  550,  549,  548,
  808.       547,  546,  545,  544,  543,  542,  541,  540,  539,  538,
  809.       537,  536,  535,  533,  532,  531,  530,  528,  278,  527,
  810.       526,  525,  524,  523,  522,  521,  520,  519,  518,  517,
  811.       516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
  812.       506,  505,  504,  503,  502,  501,  500,  499,  498,  496,
  813.  
  814.       495,  494,  493,  492,  491,  490,  488,  487,  486,  485,
  815.       484,  483,  482,  481,  480,  479,  478,  477,  476,  473,
  816.       471,  470,  469,  468,  467,  466,  465,  464,  463,  462,
  817.       461,  460,  457,  316,  454,  315,  453,  452,  451,  450,
  818.       449,  448,  447,  444,  443,  442,  441,  439,  438,  437,
  819.       436,  433,  432,  431,  430,  429,  427,  425,  423,  421,
  820.       420,  419,  418,  417,  416,  415,  414,  412,  411,  410,
  821.       409,  251,  251,  242,  404,  403,  402,  400,  399,  398,
  822.       397,  396,  393,  392,  391,  390,  389,  388,  385,  384,
  823.       383,  382,  381,  377,  376,  375,  374,  373,  372,  371,
  824.  
  825.       369,  366,  365,  364,  363,  360,  359,  183,  182,  358,
  826.       355,  354,  353,  342,  339,  338,  337,  254,  251,  321,
  827.       246,  245,  320,  315,  309,  308,  306,  301,  292,  291,
  828.       276,  274,  273,  272,  269,  268,  254,  251,  245,  188,
  829.       182,  180,  239,  238,  237,  235,  229,  217,  216,  215,
  830.       197,  183,  190,  189,  188,  182,  180,  915,   13,  915,
  831.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  832.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  833.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  834.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  835.  
  836.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  837.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  838.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  839.       915,  915,  915,  915,  915,  915,  915,  915
  840.     } ;
  841.  
  842. static yyconst short int yy_chk[1739] =
  843.     {   0,
  844.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  845.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  846.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  847.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  848.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  849.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  850.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  851.         3,    3,    3,    3,    3,    3,    3,    3,    3,    5,
  852.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  853.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  854.  
  855.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  856.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  857.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  858.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  859.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  860.         5,    5,    5,    5,    5,    5,    5,    5,    7,   23,
  861.        31,   36,   36,   38,   38,   40,   44,   40,   50,    7,
  862.         7,   31,   50,   23,  209,   40,   49,    7,    7,    7,
  863.         7,    7,    7,   40,    7,    7,   49,   51,    7,    7,
  864.         7,    7,    7,    7,   53,    7,    7,   51,   52,   59,
  865.  
  866.        44,   52,   52,   82,   53,    7,    7,    7,    7,    7,
  867.         7,   40,   87,   87,   82,    7,  209,   59,    7,    9,
  868.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  869.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  870.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  871.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  872.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  873.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  874.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  875.         9,    9,    9,    9,    9,    9,    9,    9,   11,   11,
  876.  
  877.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  878.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  879.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  880.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  881.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  882.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  883.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  884.        11,   11,   11,   11,   11,   11,   11,   21,   21,   42,
  885.        80,   43,   42,   64,   74,   21,   21,   21,   21,   21,
  886.        21,   89,   89,   98,   41,   43,   45,   41,   74,   45,
  887.  
  888.       122,  173,   45,   98,  122,  201,  173,   55,  164,   41,
  889.        55,   55,   42,   21,   21,   21,   21,   21,   21,   32,
  890.        32,   80,   55,  164,   43,  107,   55,   32,   32,   32,
  891.        32,   32,   32,   41,  121,   45,   64,   32,  123,   32,
  892.       111,  125,  111,   92,  121,   92,  837,  839,  123,  201,
  893.        92,  125,   93,   92,   93,   32,   32,   32,   32,   32,
  894.        32,   92,   93,  157,   32,   93,   32,  111,  124,  111,
  895.        93,  124,  124,  157,   32,   72,   72,  111,  107,   94,
  896.       362,   94,   94,   72,   72,   72,   72,   72,   72,   94,
  897.        95,  104,   95,  104,  155,  155,   94,   94,  840,  236,
  898.  
  899.        95,  104,  236,  117,  112,  155,  112,  200,   95,  104,
  900.       362,   72,   72,   72,   72,   72,   72,   83,   83,  104,
  901.       115,  117,  841,  117,  117,   83,   83,   83,   83,   83,
  902.        83,  112,   83,  112,  323,   83,  200,   83,  115,   83,
  903.       115,  112,  115,  843,  323,  115,  160,   83,  117,  158,
  904.       117,  844,  160,   83,   83,   83,   83,   83,   83,  158,
  905.        83,  158,   83,  177,   83,  115,   83,  115,  156,  156,
  906.       158,  223,   83,   91,   91,  156,  177,  223,  113,  156,
  907.       168,   91,   91,   91,   91,   91,   91,  113,   91,  113,
  908.       168,   91,   91,   91,  159,   91,  113,  113,  113,  207,
  909.  
  910.        91,  207,  845,   91,  159,  113,  129,  159,  168,   91,
  911.        91,   91,   91,   91,   91,  114,   91,  168,   91,  230,
  912.        91,  230,   91,  113,  129,  113,  129,  846,   91,  110,
  913.       110,  114,  116,  114,  114,  114,  847,  110,  110,  110,
  914.       110,  110,  110,  129,  116,  172,  114,  171,  370,  848,
  915.       116,  129,  116,  129,  169,  172,  118,  171,  116,  284,
  916.       114,  284,  114,  170,  169,  110,  110,  110,  110,  110,
  917.       110,  130,  118,  170,  118,  118,  118,  116,  118,  116,
  918.       127,  169,  297,  127,  127,  172,  171,  370,  297,  130,
  919.       170,  130,  302,  171,  302,  127,  194,  170,  194,  127,
  920.  
  921.       324,  118,  217,  118,  255,  217,  255,  253,  292,  253,
  922.       324,  292,  849,  850,  255,  217,  130,  324,  130,  133,
  923.       133,  292,  255,  194,  852,  194,  854,  133,  133,  133,
  924.       133,  133,  133,  194,  253,  256,  253,  256,  325,  748,
  925.       457,  473,  855,  856,  748,  256,  457,  473,  325,  769,
  926.       857,  858,  256,  256,  769,  133,  133,  133,  133,  133,
  927.       133,  138,  138,  859,  860,  257,  262,  257,  262,  138,
  928.       138,  138,  138,  138,  138,  257,  262,  862,  266,  138,
  929.       266,  138,  266,  257,  262,  275,  863,  275,  266,  864,
  930.       865,  866,  868,  869,  278,  275,  266,  138,  138,  138,
  931.  
  932.       138,  138,  138,  275,  870,  871,  138,  872,  138,  142,
  933.       142,  873,  278,  329,  278,  330,  875,  142,  142,  142,
  934.       142,  142,  142,  329,  343,  330,  876,  881,  275,  882,
  935.       329,  883,  330,  345,  343,  884,  885,  886,  277,  278,
  936.       887,  278,  888,  345,  889,  142,  142,  142,  142,  142,
  937.       142,  154,  154,  890,  281,  891,  277,  282,  277,  154,
  938.       154,  154,  154,  154,  154,  892,  154,  343,  282,  154,
  939.       154,  154,  281,  154,  281,  282,  345,  282,  893,  894,
  940.       281,  154,  895,  277,  896,  277,  897,  154,  154,  154,
  941.       154,  154,  154,  277,  154,  346,  154,  898,  154,  281,
  942.  
  943.       154,  281,  282,  899,  282,  346,  154,  243,  243,  900,
  944.       286,  307,  901,  902,  903,  243,  243,  243,  243,  243,
  945.       243,  428,  904,  286,  408,  243,  408,  243,  286,  307,
  946.       286,  307,  905,  906,  408,  908,  910,  428,  346,  428,
  947.       408,  428,  408,  243,  243,  243,  243,  243,  243,  911,
  948.       912,  920,  243,  836,  243,  286,  307,  286,  307,  835,
  949.       834,  424,  243,  307,  317,  317,  428,  833,  428,  832,
  950.       831,  830,  317,  317,  317,  317,  317,  317,  413,  424,
  951.       413,  424,  317,  829,  317,  413,  424,  453,  413,  453,
  952.       827,  826,  825,  824,  823,  568,  413,  568,  822,  821,
  953.  
  954.       317,  317,  317,  317,  317,  317,  424,  820,  424,  317,
  955.       819,  317,  818,  817,  453,  816,  453,  815,  814,  317,
  956.       455,  455,  568,  813,  568,  812,  811,  810,  455,  455,
  957.       455,  455,  455,  455,  809,  808,  807,  799,  798,  797,
  958.       796,  795,  794,  793,  791,  789,  787,  785,  784,  783,
  959.       782,  781,  780,  778,  777,  776,  455,  455,  455,  455,
  960.       455,  455,  577,  577,  775,  577,  577,  577,  577,  774,
  961.       577,  577,  577,  577,  577,  773,  577,  771,  770,  766,
  962.       765,  764,  763,  577,  577,  577,  577,  577,  762,  761,
  963.       757,  756,  755,  753,  752,  751,  745,  743,  742,  741,
  964.  
  965.       740,  736,  735,  734,  730,  729,  726,  725,  724,  723,
  966.       721,  718,  717,  716,  715,  714,  713,  712,  711,  710,
  967.       708,  707,  706,  705,  702,  701,  700,  699,  698,  697,
  968.       696,  693,  690,  689,  688,  687,  686,  577,  577,  577,
  969.       593,  593,  685,  593,  593,  593,  593,  684,  593,  593,
  970.       593,  593,  593,  682,  593,  678,  677,  676,  674,  673,
  971.       671,  593,  593,  593,  593,  593,  667,  666,  665,  663,
  972.       662,  661,  660,  658,  657,  655,  654,  653,  652,  651,
  973.       649,  648,  645,  644,  643,  642,  641,  640,  639,  638,
  974.       635,  632,  631,  630,  629,  628,  627,  626,  624,  623,
  975.  
  976.       622,  620,  619,  618,  617,  616,  615,  614,  612,  610,
  977.       606,  605,  604,  601,  600,  593,  593,  593,  669,  669,
  978.       599,  669,  669,  669,  669,  597,  669,  669,  669,  669,
  979.       669,  596,  669,  592,  591,  587,  586,  585,  584,  669,
  980.       669,  669,  669,  669,  583,  581,  580,  576,  575,  571,
  981.       570,  569,  567,  566,  565,  564,  563,  562,  560,  559,
  982.       558,  557,  556,  554,  553,  552,  551,  550,  548,  547,
  983.       546,  544,  543,  542,  541,  540,  539,  536,  535,  534,
  984.       532,  530,  528,  527,  526,  525,  524,  523,  522,  521,
  985.       520,  519,  517,  669,  669,  669,  680,  680,  516,  680,
  986.  
  987.       680,  680,  680,  515,  680,  680,  680,  680,  680,  514,
  988.       680,  513,  512,  511,  509,  507,  506,  680,  680,  680,
  989.       680,  680,  504,  503,  502,  501,  499,  498,  497,  496,
  990.       494,  492,  490,  488,  487,  486,  485,  484,  483,  482,
  991.       481,  480,  479,  478,  476,  475,  474,  472,  471,  470,
  992.       469,  468,  467,  466,  465,  464,  463,  462,  460,  459,
  993.       458,  456,  450,  449,  448,  447,  446,  445,  444,  443,
  994.       442,  680,  680,  680,  916,  916,  916,  916,  916,  916,
  995.       917,  917,  917,  917,  917,  917,  918,  918,  918,  918,
  996.       919,  919,  919,  919,  921,  921,  922,  922,  922,  922,
  997.  
  998.       922,  922,  923,  441,  923,  923,  924,  440,  924,  924,
  999.       924,  924,  925,  439,  925,  925,  925,  925,  926,  926,
  1000.       926,  926,  927,  437,  927,  927,  927,  927,  928,  436,
  1001.       928,  928,  928,  928,  929,  435,  929,  929,  929,  929,
  1002.       930,  434,  930,  930,  930,  930,  432,  431,  430,  429,
  1003.       427,  426,  425,  423,  422,  421,  420,  419,  418,  417,
  1004.       416,  415,  414,  412,  411,  410,  409,  407,  405,  404,
  1005.       401,  400,  399,  398,  397,  396,  395,  394,  393,  392,
  1006.       391,  390,  389,  388,  387,  386,  385,  384,  382,  381,
  1007.       380,  379,  378,  376,  375,  374,  373,  372,  371,  369,
  1008.  
  1009.       368,  367,  366,  365,  364,  363,  361,  358,  357,  356,
  1010.       355,  354,  353,  352,  351,  350,  349,  348,  347,  344,
  1011.       342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
  1012.       332,  331,  328,  318,  315,  314,  311,  309,  308,  306,
  1013.       305,  304,  303,  301,  300,  299,  298,  296,  295,  294,
  1014.       293,  291,  290,  289,  288,  287,  285,  283,  276,  274,
  1015.       273,  272,  271,  270,  269,  268,  267,  265,  264,  263,
  1016.       260,  250,  249,  244,  239,  238,  237,  235,  234,  233,
  1017.       232,  231,  229,  228,  227,  226,  225,  224,  222,  221,
  1018.       220,  219,  218,  216,  215,  214,  213,  212,  211,  210,
  1019.  
  1020.       208,  206,  205,  204,  202,  199,  195,  185,  181,  178,
  1021.       176,  175,  174,  165,  163,  162,  161,  153,  150,  148,
  1022.       146,  144,  143,  141,  132,  131,  128,  126,  120,  119,
  1023.       105,  101,  100,   99,   97,   96,   88,   84,   78,   77,
  1024.        71,   70,   62,   61,   60,   56,   54,   48,   47,   46,
  1025.        37,   33,   29,   27,   26,   20,   19,   13,  915,  915,
  1026.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1027.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1028.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1029.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1030.  
  1031.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1032.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1033.       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
  1034.       915,  915,  915,  915,  915,  915,  915,  915
  1035.     } ;
  1036.  
  1037. static yy_state_type yy_last_accepting_state;
  1038. static char *yy_last_accepting_cpos;
  1039.  
  1040. /* The intent behind this definition is that it'll catch
  1041.  * any uses of REJECT which flex missed.
  1042.  */
  1043. #define REJECT reject_used_but_not_detected
  1044. #define yymore() yymore_used_but_not_detected
  1045. #define YY_MORE_ADJ 0
  1046. char *yytext;
  1047. #line 1 "./ldlex.l"
  1048. #define INITIAL 0
  1049. #line 2 "./ldlex.l"
  1050.  
  1051. /* Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
  1052.  
  1053. This file is part of GLD, the Gnu Linker.
  1054.  
  1055. GLD is free software; you can redistribute it and/or modify
  1056. it under the terms of the GNU General Public License as published by
  1057. the Free Software Foundation; either version 2, or (at your option)
  1058. any later version.
  1059.  
  1060. GLD is distributed in the hope that it will be useful,
  1061. but WITHOUT ANY WARRANTY; without even the implied warranty of
  1062. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1063. GNU General Public License for more details.
  1064.  
  1065. You should have received a copy of the GNU General Public License
  1066. along with GLD; see the file COPYING.  If not, write to
  1067. the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  1068.  
  1069. /*
  1070. This was written by steve chamberlain
  1071.                     sac@cygnus.com
  1072. */
  1073.  
  1074.  
  1075. #include <ansidecl.h>
  1076. #include <stdio.h>
  1077. #include <ctype.h>
  1078.  
  1079. #ifdef MPW
  1080. /* Prevent enum redefinition problems. */
  1081. #define TRUE_FALSE_ALREADY_DEFINED
  1082. #endif /* MPW */
  1083.  
  1084. #include "bfd.h"
  1085. #include "sysdep.h"
  1086. #include "ld.h"
  1087. #include "ldgram.h"
  1088. #include "ldmisc.h"
  1089. #include "ldexp.h"
  1090. #include "ldlang.h"
  1091. #include "ldfile.h"
  1092. #include "ldlex.h"
  1093. #include "ldmain.h"
  1094.  
  1095. /* The type of top-level parser input.
  1096.    yylex and yyparse (indirectly) both check this.  */
  1097. input_type parser_input;
  1098.  
  1099. /* Radix to use for bfd_scan_vma -- 0 (default to base 10) or 16.  */
  1100. int hex_mode;
  1101.  
  1102. /* Line number in the current input file.
  1103.    (FIXME Actually, it doesn't appear to get reset for each file?)  */
  1104. unsigned int lineno = 1;
  1105.  
  1106. /* The string we are currently lexing, or NULL if we are reading a
  1107.    file.  */
  1108. const char *lex_string = NULL;
  1109.  
  1110. /* Support for flex reading from more than one input file (stream).
  1111.    `include_stack' is flex's input state for each open file;
  1112.    `file_name_stack' is the file names.  `lineno_stack' is the current
  1113.    line numbers.
  1114.  
  1115.    If `include_stack_ptr' is 0, we haven't started reading anything yet.
  1116.    Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */
  1117.  
  1118. #undef YY_INPUT
  1119. #define YY_INPUT(buf,result,max_size) yy_input(buf, &result, max_size)
  1120.  
  1121. #define MAX_INCLUDE_DEPTH 10
  1122. static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
  1123. static const char *file_name_stack[MAX_INCLUDE_DEPTH];
  1124. static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
  1125. static unsigned int include_stack_ptr = 0;
  1126.  
  1127. static YY_BUFFER_STATE yy_create_string_buffer PARAMS ((const char *string,
  1128.                             size_t size));
  1129. static void yy_input PARAMS ((char *, int *result, int max_size));
  1130.  
  1131. static void comment PARAMS ((void));
  1132. static void lex_warn_invalid PARAMS ((char *where, char *what));
  1133.  
  1134. /* STATES 
  1135.     EXPRESSION    definitely in an expression
  1136.     SCRIPT        definitely in a script
  1137.     BOTH        either EXPRESSION or SCRIPT
  1138.     DEFSYMEXP    in an argument to -defsym
  1139.         MRI             in an MRI script
  1140. */
  1141. #define RTOKEN(x)  {  yylval.token = x; return x; }
  1142.  
  1143. /* Some versions of flex want this.  */
  1144. #ifndef yywrap
  1145. int yywrap () { return 1; }
  1146. #endif
  1147. #define SCRIPT 1
  1148.  
  1149. #define EXPRESSION 2
  1150.  
  1151. #define BOTH 3
  1152.  
  1153. #define DEFSYMEXP 4
  1154.  
  1155. #define MRI 5
  1156.  
  1157. #line 1158 "lex.yy.c"
  1158.  
  1159. /* Macros after this point can all be overridden by user definitions in
  1160.  * section 1.
  1161.  */
  1162.  
  1163. #ifndef YY_SKIP_YYWRAP
  1164. #ifdef __cplusplus
  1165. extern "C" int yywrap YY_PROTO(( void ));
  1166. #else
  1167. extern int yywrap YY_PROTO(( void ));
  1168. #endif
  1169. #endif
  1170.  
  1171. #ifndef YY_NO_UNPUT
  1172. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  1173. #endif
  1174.  
  1175. #ifndef yytext_ptr
  1176. static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
  1177. #endif
  1178.  
  1179. #ifndef YY_NO_INPUT
  1180. #ifdef __cplusplus
  1181. static int yyinput YY_PROTO(( void ));
  1182. #else
  1183. static int input YY_PROTO(( void ));
  1184. #endif
  1185. #endif
  1186.  
  1187. #if YY_STACK_USED
  1188. static int yy_start_stack_ptr = 0;
  1189. static int yy_start_stack_depth = 0;
  1190. static int *yy_start_stack = 0;
  1191. #ifndef YY_NO_PUSH_STATE
  1192. static void yy_push_state YY_PROTO(( int new_state ));
  1193. #endif
  1194. #ifndef YY_NO_POP_STATE
  1195. static void yy_pop_state YY_PROTO(( void ));
  1196. #endif
  1197. #ifndef YY_NO_TOP_STATE
  1198. static int yy_top_state YY_PROTO(( void ));
  1199. #endif
  1200.  
  1201. #else
  1202. #define YY_NO_PUSH_STATE 1
  1203. #define YY_NO_POP_STATE 1
  1204. #define YY_NO_TOP_STATE 1
  1205. #endif
  1206.  
  1207. #ifdef YY_MALLOC_DECL
  1208. YY_MALLOC_DECL
  1209. #else
  1210. #if __STDC__
  1211. #ifndef __cplusplus
  1212. #include <stdlib.h>
  1213. #endif
  1214. #else
  1215. /* Just try to get by without declaring the routines.  This will fail
  1216.  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  1217.  * or sizeof(void*) != sizeof(int).
  1218.  */
  1219. #endif
  1220. #endif
  1221.  
  1222. /* Amount of stuff to slurp up with each read. */
  1223. #ifndef YY_READ_BUF_SIZE
  1224. #define YY_READ_BUF_SIZE 8192
  1225. #endif
  1226.  
  1227. /* Copy whatever the last rule matched to the standard output. */
  1228.  
  1229. #ifndef ECHO
  1230. /* This used to be an fputs(), but since the string might contain NUL's,
  1231.  * we now use fwrite().
  1232.  */
  1233. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  1234. #endif
  1235.  
  1236. /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  1237.  * is returned in "result".
  1238.  */
  1239. #ifndef YY_INPUT
  1240. #define YY_INPUT(buf,result,max_size) \
  1241.     if ( yy_current_buffer->yy_is_interactive ) \
  1242.         { \
  1243.         int c = '*', n; \
  1244.         for ( n = 0; n < max_size && \
  1245.                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  1246.             buf[n] = (char) c; \
  1247.         if ( c == '\n' ) \
  1248.             buf[n++] = (char) c; \
  1249.         if ( c == EOF && ferror( yyin ) ) \
  1250.             YY_FATAL_ERROR( "input in flex scanner failed" ); \
  1251.         result = n; \
  1252.         } \
  1253.     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  1254.           && ferror( yyin ) ) \
  1255.         YY_FATAL_ERROR( "input in flex scanner failed" );
  1256. #endif
  1257.  
  1258. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  1259.  * we don't want an extra ';' after the "return" because that will cause
  1260.  * some compilers to complain about unreachable statements.
  1261.  */
  1262. #ifndef yyterminate
  1263. #define yyterminate() return YY_NULL
  1264. #endif
  1265.  
  1266. /* Number of entries by which start-condition stack grows. */
  1267. #ifndef YY_START_STACK_INCR
  1268. #define YY_START_STACK_INCR 25
  1269. #endif
  1270.  
  1271. /* Report a fatal error. */
  1272. #ifndef YY_FATAL_ERROR
  1273. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  1274. #endif
  1275.  
  1276. /* Default declaration of generated scanner - a define so the user can
  1277.  * easily add parameters.
  1278.  */
  1279. #ifndef YY_DECL
  1280. #define YY_DECL int yylex YY_PROTO(( void ))
  1281. #endif
  1282.  
  1283. /* Code executed at the beginning of each rule, after yytext and yyleng
  1284.  * have been set up.
  1285.  */
  1286. #ifndef YY_USER_ACTION
  1287. #define YY_USER_ACTION
  1288. #endif
  1289.  
  1290. /* Code executed at the end of each rule. */
  1291. #ifndef YY_BREAK
  1292. #define YY_BREAK break;
  1293. #endif
  1294.  
  1295. #define YY_RULE_SETUP \
  1296.     YY_USER_ACTION
  1297.  
  1298. YY_DECL
  1299.     {
  1300.     register yy_state_type yy_current_state;
  1301.     register char *yy_cp, *yy_bp;
  1302.     register int yy_act;
  1303.  
  1304. #line 120 "./ldlex.l"
  1305.  
  1306.  
  1307.   if (parser_input != input_selected)
  1308.     {
  1309.       /* The first token of the input determines the initial parser state.  */
  1310.       input_type t = parser_input;
  1311.       parser_input = input_selected;
  1312.       switch (t)
  1313.     {
  1314.     case input_script: return INPUT_SCRIPT; break;
  1315.     case input_mri_script: return INPUT_MRI_SCRIPT; break;
  1316.     case input_defsym: return INPUT_DEFSYM; break;
  1317.     default: abort ();
  1318.     }
  1319.     }
  1320.  
  1321. #line 1322 "lex.yy.c"
  1322.  
  1323.     if ( yy_init )
  1324.         {
  1325.         yy_init = 0;
  1326.  
  1327. #ifdef YY_USER_INIT
  1328.         YY_USER_INIT;
  1329. #endif
  1330.  
  1331.         if ( ! yy_start )
  1332.             yy_start = 1;    /* first start state */
  1333.  
  1334.         if ( ! yyin )
  1335.             yyin = stdin;
  1336.  
  1337.         if ( ! yyout )
  1338.             yyout = stdout;
  1339.  
  1340.         if ( ! yy_current_buffer )
  1341.             yy_current_buffer =
  1342.                 yy_create_buffer( yyin, YY_BUF_SIZE );
  1343.  
  1344.         yy_load_buffer_state();
  1345.         }
  1346.  
  1347.     while ( 1 )        /* loops until end-of-file is reached */
  1348.         {
  1349.         yy_cp = yy_c_buf_p;
  1350.  
  1351.         /* Support of yytext. */
  1352.         *yy_cp = yy_hold_char;
  1353.  
  1354.         /* yy_bp points to the position in yy_ch_buf of the start of
  1355.          * the current run.
  1356.          */
  1357.         yy_bp = yy_cp;
  1358.  
  1359.         yy_current_state = yy_start;
  1360. yy_match:
  1361.         do
  1362.             {
  1363.             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1364.             if ( yy_accept[yy_current_state] )
  1365.                 {
  1366.                 yy_last_accepting_state = yy_current_state;
  1367.                 yy_last_accepting_cpos = yy_cp;
  1368.                 }
  1369.             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1370.                 {
  1371.                 yy_current_state = (int) yy_def[yy_current_state];
  1372.                 if ( yy_current_state >= 916 )
  1373.                     yy_c = yy_meta[(unsigned int) yy_c];
  1374.                 }
  1375.             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1376.             ++yy_cp;
  1377.             }
  1378.         while ( yy_base[yy_current_state] != 1659 );
  1379.  
  1380. yy_find_action:
  1381.         yy_act = yy_accept[yy_current_state];
  1382.         if ( yy_act == 0 )
  1383.             { /* have to back up */
  1384.             yy_cp = yy_last_accepting_cpos;
  1385.             yy_current_state = yy_last_accepting_state;
  1386.             yy_act = yy_accept[yy_current_state];
  1387.             }
  1388.  
  1389.         YY_DO_BEFORE_ACTION;
  1390.  
  1391.  
  1392. do_action:    /* This label is used only to access EOF actions. */
  1393.  
  1394.  
  1395.         switch ( yy_act )
  1396.     { /* beginning of action switch */
  1397.             case 0: /* must back up */
  1398.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1399.             *yy_cp = yy_hold_char;
  1400.             yy_cp = yy_last_accepting_cpos;
  1401.             yy_current_state = yy_last_accepting_state;
  1402.             goto yy_find_action;
  1403.  
  1404. case 1:
  1405. YY_RULE_SETUP
  1406. #line 136 "./ldlex.l"
  1407. { comment(); }
  1408.     YY_BREAK
  1409. case 2:
  1410. YY_RULE_SETUP
  1411. #line 139 "./ldlex.l"
  1412. { RTOKEN('-');}
  1413.     YY_BREAK
  1414. case 3:
  1415. YY_RULE_SETUP
  1416. #line 140 "./ldlex.l"
  1417. { RTOKEN('+');}
  1418.     YY_BREAK
  1419. case 4:
  1420. YY_RULE_SETUP
  1421. #line 141 "./ldlex.l"
  1422. { yylval.name = buystring(yytext); return NAME; }
  1423.     YY_BREAK
  1424. case 5:
  1425. YY_RULE_SETUP
  1426. #line 142 "./ldlex.l"
  1427. { RTOKEN('='); }
  1428.     YY_BREAK
  1429. case 6:
  1430. YY_RULE_SETUP
  1431. #line 144 "./ldlex.l"
  1432. {
  1433.                   yylval.integer = bfd_scan_vma (yytext+1, 0,16);
  1434.                 return INT;
  1435.             }
  1436.     YY_BREAK
  1437. case 7:
  1438. YY_RULE_SETUP
  1439. #line 149 "./ldlex.l"
  1440. {
  1441.                    int ibase ;
  1442.                    switch (yytext[yyleng-1]) {
  1443.                     case 'X': 
  1444.                     case 'x':
  1445.                     case 'H':
  1446.                     case 'h':
  1447.                      ibase = 16;
  1448.                      break;
  1449.                     case 'O':
  1450.                     case 'o':
  1451.                      ibase = 8;
  1452.                      break;
  1453.                     case 'B':
  1454.                     case 'b':
  1455.                      ibase = 2;
  1456.                      break;
  1457.                     default:
  1458.                      ibase = 10;
  1459.                    }
  1460.                    yylval.integer = bfd_scan_vma (yytext, 0,
  1461.                                   ibase);
  1462.                    return INT;
  1463.                  }
  1464.     YY_BREAK
  1465. case 8:
  1466. YY_RULE_SETUP
  1467. #line 173 "./ldlex.l"
  1468. {
  1469.                   yylval.integer = bfd_scan_vma (yytext, 0,
  1470.                                  hex_mode);
  1471.                   if (yytext[yyleng-1]=='M'
  1472.                     || yytext[yyleng-1] == 'm') {
  1473.                       yylval.integer *= 1024*1024;
  1474.                     }    
  1475.                   if (yytext[yyleng-1]=='K' 
  1476.                 || yytext[yyleng-1]=='k') {
  1477.                       yylval.integer *= 1024;
  1478.                     }        
  1479.                   return INT;
  1480.                 }
  1481.     YY_BREAK
  1482. case 9:
  1483. YY_RULE_SETUP
  1484. #line 186 "./ldlex.l"
  1485. { RTOKEN(']');}
  1486.     YY_BREAK
  1487. case 10:
  1488. YY_RULE_SETUP
  1489. #line 187 "./ldlex.l"
  1490. { RTOKEN('[');}
  1491.     YY_BREAK
  1492. case 11:
  1493. YY_RULE_SETUP
  1494. #line 188 "./ldlex.l"
  1495. { RTOKEN(LSHIFTEQ);}
  1496.     YY_BREAK
  1497. case 12:
  1498. YY_RULE_SETUP
  1499. #line 189 "./ldlex.l"
  1500. { RTOKEN(RSHIFTEQ);}
  1501.     YY_BREAK
  1502. case 13:
  1503. YY_RULE_SETUP
  1504. #line 190 "./ldlex.l"
  1505. { RTOKEN(OROR);}
  1506.     YY_BREAK
  1507. case 14:
  1508. YY_RULE_SETUP
  1509. #line 191 "./ldlex.l"
  1510. { RTOKEN(EQ);}
  1511.     YY_BREAK
  1512. case 15:
  1513. YY_RULE_SETUP
  1514. #line 192 "./ldlex.l"
  1515. { RTOKEN(NE);}
  1516.     YY_BREAK
  1517. case 16:
  1518. YY_RULE_SETUP
  1519. #line 193 "./ldlex.l"
  1520. { RTOKEN(GE);}
  1521.     YY_BREAK
  1522. case 17:
  1523. YY_RULE_SETUP
  1524. #line 194 "./ldlex.l"
  1525. { RTOKEN(LE);}
  1526.     YY_BREAK
  1527. case 18:
  1528. YY_RULE_SETUP
  1529. #line 195 "./ldlex.l"
  1530. { RTOKEN(LSHIFT);}
  1531.     YY_BREAK
  1532. case 19:
  1533. YY_RULE_SETUP
  1534. #line 196 "./ldlex.l"
  1535. { RTOKEN(RSHIFT);}
  1536.     YY_BREAK
  1537. case 20:
  1538. YY_RULE_SETUP
  1539. #line 197 "./ldlex.l"
  1540. { RTOKEN(PLUSEQ);}
  1541.     YY_BREAK
  1542. case 21:
  1543. YY_RULE_SETUP
  1544. #line 198 "./ldlex.l"
  1545. { RTOKEN(MINUSEQ);}
  1546.     YY_BREAK
  1547. case 22:
  1548. YY_RULE_SETUP
  1549. #line 199 "./ldlex.l"
  1550. { RTOKEN(MULTEQ);}
  1551.     YY_BREAK
  1552. case 23:
  1553. YY_RULE_SETUP
  1554. #line 200 "./ldlex.l"
  1555. { RTOKEN(DIVEQ);}
  1556.     YY_BREAK
  1557. case 24:
  1558. YY_RULE_SETUP
  1559. #line 201 "./ldlex.l"
  1560. { RTOKEN(ANDEQ);}
  1561.     YY_BREAK
  1562. case 25:
  1563. YY_RULE_SETUP
  1564. #line 202 "./ldlex.l"
  1565. { RTOKEN(OREQ);}
  1566.     YY_BREAK
  1567. case 26:
  1568. YY_RULE_SETUP
  1569. #line 203 "./ldlex.l"
  1570. { RTOKEN(ANDAND);}
  1571.     YY_BREAK
  1572. case 27:
  1573. YY_RULE_SETUP
  1574. #line 204 "./ldlex.l"
  1575. { RTOKEN('>');}
  1576.     YY_BREAK
  1577. case 28:
  1578. YY_RULE_SETUP
  1579. #line 205 "./ldlex.l"
  1580. { RTOKEN(',');}
  1581.     YY_BREAK
  1582. case 29:
  1583. YY_RULE_SETUP
  1584. #line 206 "./ldlex.l"
  1585. { RTOKEN('&');}
  1586.     YY_BREAK
  1587. case 30:
  1588. YY_RULE_SETUP
  1589. #line 207 "./ldlex.l"
  1590. { RTOKEN('|');}
  1591.     YY_BREAK
  1592. case 31:
  1593. YY_RULE_SETUP
  1594. #line 208 "./ldlex.l"
  1595. { RTOKEN('~');}
  1596.     YY_BREAK
  1597. case 32:
  1598. YY_RULE_SETUP
  1599. #line 209 "./ldlex.l"
  1600. { RTOKEN('!');}
  1601.     YY_BREAK
  1602. case 33:
  1603. YY_RULE_SETUP
  1604. #line 210 "./ldlex.l"
  1605. { RTOKEN('?');}
  1606.     YY_BREAK
  1607. case 34:
  1608. YY_RULE_SETUP
  1609. #line 211 "./ldlex.l"
  1610. { RTOKEN('*');}
  1611.     YY_BREAK
  1612. case 35:
  1613. YY_RULE_SETUP
  1614. #line 212 "./ldlex.l"
  1615. { RTOKEN('+');}
  1616.     YY_BREAK
  1617. case 36:
  1618. YY_RULE_SETUP
  1619. #line 213 "./ldlex.l"
  1620. { RTOKEN('-');}
  1621.     YY_BREAK
  1622. case 37:
  1623. YY_RULE_SETUP
  1624. #line 214 "./ldlex.l"
  1625. { RTOKEN('/');}
  1626.     YY_BREAK
  1627. case 38:
  1628. YY_RULE_SETUP
  1629. #line 215 "./ldlex.l"
  1630. { RTOKEN('%');}
  1631.     YY_BREAK
  1632. case 39:
  1633. YY_RULE_SETUP
  1634. #line 216 "./ldlex.l"
  1635. { RTOKEN('<');}
  1636.     YY_BREAK
  1637. case 40:
  1638. YY_RULE_SETUP
  1639. #line 217 "./ldlex.l"
  1640. { RTOKEN('=');}
  1641.     YY_BREAK
  1642. case 41:
  1643. YY_RULE_SETUP
  1644. #line 218 "./ldlex.l"
  1645. { RTOKEN('}') ; }
  1646.     YY_BREAK
  1647. case 42:
  1648. YY_RULE_SETUP
  1649. #line 219 "./ldlex.l"
  1650. { RTOKEN('{'); }
  1651.     YY_BREAK
  1652. case 43:
  1653. YY_RULE_SETUP
  1654. #line 220 "./ldlex.l"
  1655. { RTOKEN(')');}
  1656.     YY_BREAK
  1657. case 44:
  1658. YY_RULE_SETUP
  1659. #line 221 "./ldlex.l"
  1660. { RTOKEN('(');}
  1661.     YY_BREAK
  1662. case 45:
  1663. YY_RULE_SETUP
  1664. #line 222 "./ldlex.l"
  1665. { RTOKEN(':'); }
  1666.     YY_BREAK
  1667. case 46:
  1668. YY_RULE_SETUP
  1669. #line 223 "./ldlex.l"
  1670. { RTOKEN(';');}
  1671.     YY_BREAK
  1672. case 47:
  1673. YY_RULE_SETUP
  1674. #line 224 "./ldlex.l"
  1675. { RTOKEN(MEMORY);}
  1676.     YY_BREAK
  1677. case 48:
  1678. YY_RULE_SETUP
  1679. #line 225 "./ldlex.l"
  1680. { RTOKEN(ORIGIN);}
  1681.     YY_BREAK
  1682. case 49:
  1683. YY_RULE_SETUP
  1684. #line 226 "./ldlex.l"
  1685. { RTOKEN(BLOCK);}
  1686.     YY_BREAK
  1687. case 50:
  1688. YY_RULE_SETUP
  1689. #line 227 "./ldlex.l"
  1690. { RTOKEN(BIND);}
  1691.     YY_BREAK
  1692. case 51:
  1693. YY_RULE_SETUP
  1694. #line 228 "./ldlex.l"
  1695. { RTOKEN(LENGTH);}
  1696.     YY_BREAK
  1697. case 52:
  1698. YY_RULE_SETUP
  1699. #line 229 "./ldlex.l"
  1700. { RTOKEN(ALIGN_K);}
  1701.     YY_BREAK
  1702. case 53:
  1703. YY_RULE_SETUP
  1704. #line 230 "./ldlex.l"
  1705. { RTOKEN(ADDR);}
  1706.     YY_BREAK
  1707. case 54:
  1708. YY_RULE_SETUP
  1709. #line 231 "./ldlex.l"
  1710. { RTOKEN(ENTRY);}
  1711.     YY_BREAK
  1712. case 55:
  1713. YY_RULE_SETUP
  1714. #line 232 "./ldlex.l"
  1715. { RTOKEN(NEXT);}
  1716.     YY_BREAK
  1717. case 56:
  1718. YY_RULE_SETUP
  1719. #line 233 "./ldlex.l"
  1720. { RTOKEN(SIZEOF_HEADERS);}
  1721.     YY_BREAK
  1722. case 57:
  1723. YY_RULE_SETUP
  1724. #line 234 "./ldlex.l"
  1725. { RTOKEN(SIZEOF_HEADERS);}
  1726.     YY_BREAK
  1727. case 58:
  1728. YY_RULE_SETUP
  1729. #line 235 "./ldlex.l"
  1730. { RTOKEN(MAP);}
  1731.     YY_BREAK
  1732. case 59:
  1733. YY_RULE_SETUP
  1734. #line 236 "./ldlex.l"
  1735. { RTOKEN(SIZEOF);}
  1736.     YY_BREAK
  1737. case 60:
  1738. YY_RULE_SETUP
  1739. #line 237 "./ldlex.l"
  1740. { RTOKEN(TARGET_K);}
  1741.     YY_BREAK
  1742. case 61:
  1743. YY_RULE_SETUP
  1744. #line 238 "./ldlex.l"
  1745. { RTOKEN(SEARCH_DIR);}
  1746.     YY_BREAK
  1747. case 62:
  1748. YY_RULE_SETUP
  1749. #line 239 "./ldlex.l"
  1750. { RTOKEN(OUTPUT);}
  1751.     YY_BREAK
  1752. case 63:
  1753. YY_RULE_SETUP
  1754. #line 240 "./ldlex.l"
  1755. { RTOKEN(INPUT);}
  1756.     YY_BREAK
  1757. case 64:
  1758. YY_RULE_SETUP
  1759. #line 241 "./ldlex.l"
  1760. { RTOKEN(GROUP);}
  1761.     YY_BREAK
  1762. case 65:
  1763. YY_RULE_SETUP
  1764. #line 242 "./ldlex.l"
  1765. { RTOKEN(DEFINED);}
  1766.     YY_BREAK
  1767. case 66:
  1768. YY_RULE_SETUP
  1769. #line 243 "./ldlex.l"
  1770. { RTOKEN(CREATE_OBJECT_SYMBOLS);}
  1771.     YY_BREAK
  1772. case 67:
  1773. YY_RULE_SETUP
  1774. #line 244 "./ldlex.l"
  1775. { RTOKEN( CONSTRUCTORS);}
  1776.     YY_BREAK
  1777. case 68:
  1778. YY_RULE_SETUP
  1779. #line 245 "./ldlex.l"
  1780. { RTOKEN(FORCE_COMMON_ALLOCATION);}
  1781.     YY_BREAK
  1782. case 69:
  1783. YY_RULE_SETUP
  1784. #line 246 "./ldlex.l"
  1785. { RTOKEN(SECTIONS);}
  1786.     YY_BREAK
  1787. case 70:
  1788. YY_RULE_SETUP
  1789. #line 247 "./ldlex.l"
  1790. { RTOKEN(FILL);}
  1791.     YY_BREAK
  1792. case 71:
  1793. YY_RULE_SETUP
  1794. #line 248 "./ldlex.l"
  1795. { RTOKEN(STARTUP);}
  1796.     YY_BREAK
  1797. case 72:
  1798. YY_RULE_SETUP
  1799. #line 249 "./ldlex.l"
  1800. { RTOKEN(OUTPUT_FORMAT);}
  1801.     YY_BREAK
  1802. case 73:
  1803. YY_RULE_SETUP
  1804. #line 250 "./ldlex.l"
  1805. { RTOKEN( OUTPUT_ARCH);}
  1806.     YY_BREAK
  1807. case 74:
  1808. YY_RULE_SETUP
  1809. #line 251 "./ldlex.l"
  1810. { RTOKEN(HLL);}
  1811.     YY_BREAK
  1812. case 75:
  1813. YY_RULE_SETUP
  1814. #line 252 "./ldlex.l"
  1815. { RTOKEN(SYSLIB);}
  1816.     YY_BREAK
  1817. case 76:
  1818. YY_RULE_SETUP
  1819. #line 253 "./ldlex.l"
  1820. { RTOKEN(FLOAT);}
  1821.     YY_BREAK
  1822. case 77:
  1823. YY_RULE_SETUP
  1824. #line 254 "./ldlex.l"
  1825. { RTOKEN( QUAD);}
  1826.     YY_BREAK
  1827. case 78:
  1828. YY_RULE_SETUP
  1829. #line 255 "./ldlex.l"
  1830. { RTOKEN( LONG);}
  1831.     YY_BREAK
  1832. case 79:
  1833. YY_RULE_SETUP
  1834. #line 256 "./ldlex.l"
  1835. { RTOKEN( SHORT);}
  1836.     YY_BREAK
  1837. case 80:
  1838. YY_RULE_SETUP
  1839. #line 257 "./ldlex.l"
  1840. { RTOKEN( BYTE);}
  1841.     YY_BREAK
  1842. case 81:
  1843. YY_RULE_SETUP
  1844. #line 258 "./ldlex.l"
  1845. { RTOKEN(NOFLOAT);}
  1846.     YY_BREAK
  1847. case 82:
  1848. YY_RULE_SETUP
  1849. #line 259 "./ldlex.l"
  1850. { RTOKEN(NOLOAD);}
  1851.     YY_BREAK
  1852. case 83:
  1853. YY_RULE_SETUP
  1854. #line 260 "./ldlex.l"
  1855. { RTOKEN(DSECT);}
  1856.     YY_BREAK
  1857. case 84:
  1858. YY_RULE_SETUP
  1859. #line 261 "./ldlex.l"
  1860. { RTOKEN(COPY);}
  1861.     YY_BREAK
  1862. case 85:
  1863. YY_RULE_SETUP
  1864. #line 262 "./ldlex.l"
  1865. { RTOKEN(INFO);}
  1866.     YY_BREAK
  1867. case 86:
  1868. YY_RULE_SETUP
  1869. #line 263 "./ldlex.l"
  1870. { RTOKEN(OVERLAY);}
  1871.     YY_BREAK
  1872. case 87:
  1873. YY_RULE_SETUP
  1874. #line 264 "./ldlex.l"
  1875. { RTOKEN(ORIGIN);}
  1876.     YY_BREAK
  1877. case 88:
  1878. YY_RULE_SETUP
  1879. #line 265 "./ldlex.l"
  1880. { RTOKEN(ORIGIN);}
  1881.     YY_BREAK
  1882. case 89:
  1883. YY_RULE_SETUP
  1884. #line 266 "./ldlex.l"
  1885. { RTOKEN( LENGTH);}
  1886.     YY_BREAK
  1887. case 90:
  1888. YY_RULE_SETUP
  1889. #line 267 "./ldlex.l"
  1890. { RTOKEN( LENGTH);}
  1891.     YY_BREAK
  1892. case 91:
  1893. YY_RULE_SETUP
  1894. #line 268 "./ldlex.l"
  1895. { RTOKEN(INCLUDE);}
  1896.     YY_BREAK
  1897. case 92:
  1898. YY_RULE_SETUP
  1899. #line 269 "./ldlex.l"
  1900. { RTOKEN (PHDRS); }
  1901.     YY_BREAK
  1902. case 93:
  1903. YY_RULE_SETUP
  1904. #line 270 "./ldlex.l"
  1905. { RTOKEN(AT);}
  1906.     YY_BREAK
  1907. case 94:
  1908. YY_RULE_SETUP
  1909. #line 271 "./ldlex.l"
  1910. { RTOKEN(PROVIDE); }
  1911.     YY_BREAK
  1912. case 95:
  1913. YY_RULE_SETUP
  1914. #line 272 "./ldlex.l"
  1915. { ++ lineno; }
  1916.     YY_BREAK
  1917. case 96:
  1918. YY_RULE_SETUP
  1919. #line 273 "./ldlex.l"
  1920. { ++ lineno;  RTOKEN(NEWLINE); }
  1921.     YY_BREAK
  1922. case 97:
  1923. YY_RULE_SETUP
  1924. #line 274 "./ldlex.l"
  1925. { ++ lineno;  RTOKEN(NEWLINE); }
  1926.     YY_BREAK
  1927. case 98:
  1928. YY_RULE_SETUP
  1929. #line 275 "./ldlex.l"
  1930. { /* Mri comment line */ }
  1931.     YY_BREAK
  1932. case 99:
  1933. YY_RULE_SETUP
  1934. #line 276 "./ldlex.l"
  1935. { /* Mri comment line */ }
  1936.     YY_BREAK
  1937. case 100:
  1938. YY_RULE_SETUP
  1939. #line 277 "./ldlex.l"
  1940. { RTOKEN(ENDWORD); }
  1941.     YY_BREAK
  1942. case 101:
  1943. YY_RULE_SETUP
  1944. #line 278 "./ldlex.l"
  1945. { RTOKEN(ALIGNMOD);}
  1946.     YY_BREAK
  1947. case 102:
  1948. YY_RULE_SETUP
  1949. #line 279 "./ldlex.l"
  1950. { RTOKEN(ALIGN_K);}
  1951.     YY_BREAK
  1952. case 103:
  1953. YY_RULE_SETUP
  1954. #line 280 "./ldlex.l"
  1955. { RTOKEN(CHIP); }
  1956.     YY_BREAK
  1957. case 104:
  1958. YY_RULE_SETUP
  1959. #line 281 "./ldlex.l"
  1960. { RTOKEN(BASE); }
  1961.     YY_BREAK
  1962. case 105:
  1963. YY_RULE_SETUP
  1964. #line 282 "./ldlex.l"
  1965. { RTOKEN(ALIAS); }
  1966.     YY_BREAK
  1967. case 106:
  1968. YY_RULE_SETUP
  1969. #line 283 "./ldlex.l"
  1970. { RTOKEN(TRUNCATE); }
  1971.     YY_BREAK
  1972. case 107:
  1973. YY_RULE_SETUP
  1974. #line 284 "./ldlex.l"
  1975. { RTOKEN(LOAD); }
  1976.     YY_BREAK
  1977. case 108:
  1978. YY_RULE_SETUP
  1979. #line 285 "./ldlex.l"
  1980. { RTOKEN(PUBLIC); }
  1981.     YY_BREAK
  1982. case 109:
  1983. YY_RULE_SETUP
  1984. #line 286 "./ldlex.l"
  1985. { RTOKEN(ORDER); }
  1986.     YY_BREAK
  1987. case 110:
  1988. YY_RULE_SETUP
  1989. #line 287 "./ldlex.l"
  1990. { RTOKEN(NAMEWORD); }
  1991.     YY_BREAK
  1992. case 111:
  1993. YY_RULE_SETUP
  1994. #line 288 "./ldlex.l"
  1995. { RTOKEN(FORMAT); }
  1996.     YY_BREAK
  1997. case 112:
  1998. YY_RULE_SETUP
  1999. #line 289 "./ldlex.l"
  2000. { RTOKEN(CASE); }
  2001.     YY_BREAK
  2002. case 113:
  2003. YY_RULE_SETUP
  2004. #line 290 "./ldlex.l"
  2005. { RTOKEN(EXTERN); }
  2006.     YY_BREAK
  2007. case 114:
  2008. YY_RULE_SETUP
  2009. #line 291 "./ldlex.l"
  2010. { RTOKEN(START); }
  2011.     YY_BREAK
  2012. case 115:
  2013. YY_RULE_SETUP
  2014. #line 292 "./ldlex.l"
  2015. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  2016.     YY_BREAK
  2017. case 116:
  2018. YY_RULE_SETUP
  2019. #line 293 "./ldlex.l"
  2020. { RTOKEN(SECT); }
  2021.     YY_BREAK
  2022. case 117:
  2023. YY_RULE_SETUP
  2024. #line 294 "./ldlex.l"
  2025. { RTOKEN(ABSOLUTE); }
  2026.     YY_BREAK
  2027. case 118:
  2028. YY_RULE_SETUP
  2029. #line 295 "./ldlex.l"
  2030. { RTOKEN(ENDWORD); }
  2031.     YY_BREAK
  2032. case 119:
  2033. YY_RULE_SETUP
  2034. #line 296 "./ldlex.l"
  2035. { RTOKEN(ALIGNMOD);}
  2036.     YY_BREAK
  2037. case 120:
  2038. YY_RULE_SETUP
  2039. #line 297 "./ldlex.l"
  2040. { RTOKEN(ALIGN_K);}
  2041.     YY_BREAK
  2042. case 121:
  2043. YY_RULE_SETUP
  2044. #line 298 "./ldlex.l"
  2045. { RTOKEN(CHIP); }
  2046.     YY_BREAK
  2047. case 122:
  2048. YY_RULE_SETUP
  2049. #line 299 "./ldlex.l"
  2050. { RTOKEN(BASE); }
  2051.     YY_BREAK
  2052. case 123:
  2053. YY_RULE_SETUP
  2054. #line 300 "./ldlex.l"
  2055. { RTOKEN(ALIAS); }
  2056.     YY_BREAK
  2057. case 124:
  2058. YY_RULE_SETUP
  2059. #line 301 "./ldlex.l"
  2060. { RTOKEN(TRUNCATE); }
  2061.     YY_BREAK
  2062. case 125:
  2063. YY_RULE_SETUP
  2064. #line 302 "./ldlex.l"
  2065. { RTOKEN(LOAD); }
  2066.     YY_BREAK
  2067. case 126:
  2068. YY_RULE_SETUP
  2069. #line 303 "./ldlex.l"
  2070. { RTOKEN(PUBLIC); }
  2071.     YY_BREAK
  2072. case 127:
  2073. YY_RULE_SETUP
  2074. #line 304 "./ldlex.l"
  2075. { RTOKEN(ORDER); }
  2076.     YY_BREAK
  2077. case 128:
  2078. YY_RULE_SETUP
  2079. #line 305 "./ldlex.l"
  2080. { RTOKEN(NAMEWORD); }
  2081.     YY_BREAK
  2082. case 129:
  2083. YY_RULE_SETUP
  2084. #line 306 "./ldlex.l"
  2085. { RTOKEN(FORMAT); }
  2086.     YY_BREAK
  2087. case 130:
  2088. YY_RULE_SETUP
  2089. #line 307 "./ldlex.l"
  2090. { RTOKEN(CASE); }
  2091.     YY_BREAK
  2092. case 131:
  2093. YY_RULE_SETUP
  2094. #line 308 "./ldlex.l"
  2095. { RTOKEN(EXTERN); }
  2096.     YY_BREAK
  2097. case 132:
  2098. YY_RULE_SETUP
  2099. #line 309 "./ldlex.l"
  2100. { RTOKEN(START); }
  2101.     YY_BREAK
  2102. case 133:
  2103. YY_RULE_SETUP
  2104. #line 310 "./ldlex.l"
  2105. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  2106.     YY_BREAK
  2107. case 134:
  2108. YY_RULE_SETUP
  2109. #line 311 "./ldlex.l"
  2110. { RTOKEN(SECT); }
  2111.     YY_BREAK
  2112. case 135:
  2113. YY_RULE_SETUP
  2114. #line 312 "./ldlex.l"
  2115. { RTOKEN(ABSOLUTE); }
  2116.     YY_BREAK
  2117. case 136:
  2118. YY_RULE_SETUP
  2119. #line 314 "./ldlex.l"
  2120. {
  2121. /* Filename without commas, needed to parse mri stuff */
  2122.                  yylval.name = buystring(yytext); 
  2123.                   return NAME;
  2124.                 }
  2125.     YY_BREAK
  2126. case 137:
  2127. YY_RULE_SETUP
  2128. #line 321 "./ldlex.l"
  2129. {
  2130.                  yylval.name = buystring(yytext); 
  2131.                   return NAME;
  2132.                 }
  2133.     YY_BREAK
  2134. case 138:
  2135. YY_RULE_SETUP
  2136. #line 325 "./ldlex.l"
  2137. {
  2138.                   yylval.name = buystring (yytext + 2);
  2139.                   return LNAME;
  2140.                 }
  2141.     YY_BREAK
  2142. case 139:
  2143. YY_RULE_SETUP
  2144. #line 329 "./ldlex.l"
  2145. { yylval.name = buystring(yytext); 
  2146.                   return NAME;
  2147.                 }
  2148.     YY_BREAK
  2149. case 140:
  2150. YY_RULE_SETUP
  2151. #line 333 "./ldlex.l"
  2152. {
  2153.                     /* No matter the state, quotes
  2154.                        give what's inside */
  2155.                     yylval.name = buystring(yytext+1);
  2156.                     yylval.name[yyleng-2] = 0;
  2157.                     return NAME;
  2158.                 }
  2159.     YY_BREAK
  2160. case 141:
  2161. YY_RULE_SETUP
  2162. #line 340 "./ldlex.l"
  2163. { lineno++;}
  2164.     YY_BREAK
  2165. case 142:
  2166. YY_RULE_SETUP
  2167. #line 341 "./ldlex.l"
  2168. { lineno++;}
  2169.     YY_BREAK
  2170. case 143:
  2171. YY_RULE_SETUP
  2172. #line 342 "./ldlex.l"
  2173.  
  2174.     YY_BREAK
  2175. case YY_STATE_EOF(INITIAL):
  2176. case YY_STATE_EOF(SCRIPT):
  2177. case YY_STATE_EOF(EXPRESSION):
  2178. case YY_STATE_EOF(BOTH):
  2179. case YY_STATE_EOF(DEFSYMEXP):
  2180. case YY_STATE_EOF(MRI):
  2181. #line 344 "./ldlex.l"
  2182. {
  2183.   include_stack_ptr--;
  2184.     
  2185.   if (include_stack_ptr == 0) 
  2186.   {
  2187.     yyterminate();
  2188.   }
  2189.   else 
  2190.   {
  2191.     yy_switch_to_buffer(include_stack[include_stack_ptr]);
  2192.  
  2193.   }
  2194.   BEGIN(SCRIPT);
  2195.   ldfile_input_filename = file_name_stack[include_stack_ptr - 1];
  2196.   lineno = lineno_stack[include_stack_ptr - 1];
  2197.  
  2198.   return END;
  2199. }
  2200.     YY_BREAK
  2201. case 144:
  2202. YY_RULE_SETUP
  2203. #line 363 "./ldlex.l"
  2204. lex_warn_invalid(" in script", yytext);
  2205.     YY_BREAK
  2206. case 145:
  2207. YY_RULE_SETUP
  2208. #line 364 "./ldlex.l"
  2209. lex_warn_invalid(" in expression", yytext);
  2210.     YY_BREAK
  2211. case 146:
  2212. YY_RULE_SETUP
  2213. #line 366 "./ldlex.l"
  2214. ECHO;
  2215.     YY_BREAK
  2216. #line 2217 "lex.yy.c"
  2217.  
  2218.     case YY_END_OF_BUFFER:
  2219.         {
  2220.         /* Amount of text matched not including the EOB char. */
  2221.         int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
  2222.  
  2223.         /* Undo the effects of YY_DO_BEFORE_ACTION. */
  2224.         *yy_cp = yy_hold_char;
  2225.  
  2226.         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  2227.             {
  2228.             /* We're scanning a new file or input source.  It's
  2229.              * possible that this happened because the user
  2230.              * just pointed yyin at a new source and called
  2231.              * yylex().  If so, then we have to assure
  2232.              * consistency between yy_current_buffer and our
  2233.              * globals.  Here is the right place to do so, because
  2234.              * this is the first action (other than possibly a
  2235.              * back-up) that will match for the new input source.
  2236.              */
  2237.             yy_n_chars = yy_current_buffer->yy_n_chars;
  2238.             yy_current_buffer->yy_input_file = yyin;
  2239.             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  2240.             }
  2241.  
  2242.         /* Note that here we test for yy_c_buf_p "<=" to the position
  2243.          * of the first EOB in the buffer, since yy_c_buf_p will
  2244.          * already have been incremented past the NUL character
  2245.          * (since all states make transitions on EOB to the
  2246.          * end-of-buffer state).  Contrast this with the test
  2247.          * in input().
  2248.          */
  2249.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2250.             { /* This was really a NUL. */
  2251.             yy_state_type yy_next_state;
  2252.  
  2253.             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  2254.  
  2255.             yy_current_state = yy_get_previous_state();
  2256.  
  2257.             /* Okay, we're now positioned to make the NUL
  2258.              * transition.  We couldn't have
  2259.              * yy_get_previous_state() go ahead and do it
  2260.              * for us because it doesn't know how to deal
  2261.              * with the possibility of jamming (and we don't
  2262.              * want to build jamming into it because then it
  2263.              * will run more slowly).
  2264.              */
  2265.  
  2266.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2267.  
  2268.             yy_bp = yytext_ptr + YY_MORE_ADJ;
  2269.  
  2270.             if ( yy_next_state )
  2271.                 {
  2272.                 /* Consume the NUL. */
  2273.                 yy_cp = ++yy_c_buf_p;
  2274.                 yy_current_state = yy_next_state;
  2275.                 goto yy_match;
  2276.                 }
  2277.  
  2278.             else
  2279.                 {
  2280.                 yy_cp = yy_c_buf_p;
  2281.                 goto yy_find_action;
  2282.                 }
  2283.             }
  2284.  
  2285.         else switch ( yy_get_next_buffer() )
  2286.             {
  2287.             case EOB_ACT_END_OF_FILE:
  2288.                 {
  2289.                 yy_did_buffer_switch_on_eof = 0;
  2290.  
  2291.                 if ( yywrap() )
  2292.                     {
  2293.                     /* Note: because we've taken care in
  2294.                      * yy_get_next_buffer() to have set up
  2295.                      * yytext, we can now set up
  2296.                      * yy_c_buf_p so that if some total
  2297.                      * hoser (like flex itself) wants to
  2298.                      * call the scanner after we return the
  2299.                      * YY_NULL, it'll still work - another
  2300.                      * YY_NULL will get returned.
  2301.                      */
  2302.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2303.  
  2304.                     yy_act = YY_STATE_EOF(YY_START);
  2305.                     goto do_action;
  2306.                     }
  2307.  
  2308.                 else
  2309.                     {
  2310.                     if ( ! yy_did_buffer_switch_on_eof )
  2311.                         YY_NEW_FILE;
  2312.                     }
  2313.                 break;
  2314.                 }
  2315.  
  2316.             case EOB_ACT_CONTINUE_SCAN:
  2317.                 yy_c_buf_p =
  2318.                     yytext_ptr + yy_amount_of_matched_text;
  2319.  
  2320.                 yy_current_state = yy_get_previous_state();
  2321.  
  2322.                 yy_cp = yy_c_buf_p;
  2323.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2324.                 goto yy_match;
  2325.  
  2326.             case EOB_ACT_LAST_MATCH:
  2327.                 yy_c_buf_p =
  2328.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2329.  
  2330.                 yy_current_state = yy_get_previous_state();
  2331.  
  2332.                 yy_cp = yy_c_buf_p;
  2333.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2334.                 goto yy_find_action;
  2335.             }
  2336.         break;
  2337.         }
  2338.  
  2339.     default:
  2340.         YY_FATAL_ERROR(
  2341.             "fatal flex scanner internal error--no action found" );
  2342.     } /* end of action switch */
  2343.         } /* end of scanning one token */
  2344.     } /* end of yylex */
  2345.  
  2346.  
  2347. /* yy_get_next_buffer - try to read in a new buffer
  2348.  *
  2349.  * Returns a code representing an action:
  2350.  *    EOB_ACT_LAST_MATCH -
  2351.  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2352.  *    EOB_ACT_END_OF_FILE - end of file
  2353.  */
  2354.  
  2355. static int yy_get_next_buffer()
  2356.     {
  2357.     register char *dest = yy_current_buffer->yy_ch_buf;
  2358.     register char *source = yytext_ptr;
  2359.     register int number_to_move, i;
  2360.     int ret_val;
  2361.  
  2362.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2363.         YY_FATAL_ERROR(
  2364.         "fatal flex scanner internal error--end of buffer missed" );
  2365.  
  2366.     if ( yy_current_buffer->yy_fill_buffer == 0 )
  2367.         { /* Don't try to fill the buffer, so this is an EOF. */
  2368.         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  2369.             {
  2370.             /* We matched a singled characater, the EOB, so
  2371.              * treat this as a final EOF.
  2372.              */
  2373.             return EOB_ACT_END_OF_FILE;
  2374.             }
  2375.  
  2376.         else
  2377.             {
  2378.             /* We matched some text prior to the EOB, first
  2379.              * process it.
  2380.              */
  2381.             return EOB_ACT_LAST_MATCH;
  2382.             }
  2383.         }
  2384.  
  2385.     /* Try to read more data. */
  2386.  
  2387.     /* First move last chars to start of buffer. */
  2388.     number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
  2389.  
  2390.     for ( i = 0; i < number_to_move; ++i )
  2391.         *(dest++) = *(source++);
  2392.  
  2393.     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  2394.         /* don't do the read, it's not guaranteed to return an EOF,
  2395.          * just force an EOF
  2396.          */
  2397.         yy_n_chars = 0;
  2398.  
  2399.     else
  2400.         {
  2401.         int num_to_read =
  2402.             yy_current_buffer->yy_buf_size - number_to_move - 1;
  2403.  
  2404.         while ( num_to_read <= 0 )
  2405.             { /* Not enough room in the buffer - grow it. */
  2406. #ifdef YY_USES_REJECT
  2407.             YY_FATAL_ERROR(
  2408. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  2409. #else
  2410.  
  2411.             /* just a shorter name for the current buffer */
  2412.             YY_BUFFER_STATE b = yy_current_buffer;
  2413.  
  2414.             int yy_c_buf_p_offset =
  2415.                 (int) (yy_c_buf_p - b->yy_ch_buf);
  2416.  
  2417.             if ( b->yy_is_our_buffer )
  2418.                 {
  2419.                 int new_size = b->yy_buf_size * 2;
  2420.  
  2421.                 if ( new_size <= 0 )
  2422.                     b->yy_buf_size += b->yy_buf_size / 8;
  2423.                 else
  2424.                     b->yy_buf_size *= 2;
  2425.  
  2426.                 b->yy_ch_buf = (char *)
  2427.                     /* Include room in for 2 EOB chars. */
  2428.                     yy_flex_realloc( (void *) b->yy_ch_buf,
  2429.                              b->yy_buf_size + 2 );
  2430.                 }
  2431.             else
  2432.                 /* Can't grow it, we don't own it. */
  2433.                 b->yy_ch_buf = 0;
  2434.  
  2435.             if ( ! b->yy_ch_buf )
  2436.                 YY_FATAL_ERROR(
  2437.                 "fatal error - scanner input buffer overflow" );
  2438.  
  2439.             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  2440.  
  2441.             num_to_read = yy_current_buffer->yy_buf_size -
  2442.                         number_to_move - 1;
  2443. #endif
  2444.             }
  2445.  
  2446.         if ( num_to_read > YY_READ_BUF_SIZE )
  2447.             num_to_read = YY_READ_BUF_SIZE;
  2448.  
  2449.         /* Read in more data. */
  2450.         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2451.             yy_n_chars, num_to_read );
  2452.         }
  2453.  
  2454.     if ( yy_n_chars == 0 )
  2455.         {
  2456.         if ( number_to_move == YY_MORE_ADJ )
  2457.             {
  2458.             ret_val = EOB_ACT_END_OF_FILE;
  2459.             yyrestart( yyin );
  2460.             }
  2461.  
  2462.         else
  2463.             {
  2464.             ret_val = EOB_ACT_LAST_MATCH;
  2465.             yy_current_buffer->yy_buffer_status =
  2466.                 YY_BUFFER_EOF_PENDING;
  2467.             }
  2468.         }
  2469.  
  2470.     else
  2471.         ret_val = EOB_ACT_CONTINUE_SCAN;
  2472.  
  2473.     yy_n_chars += number_to_move;
  2474.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2475.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2476.  
  2477.     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
  2478.  
  2479.     return ret_val;
  2480.     }
  2481.  
  2482.  
  2483. /* yy_get_previous_state - get the state just before the EOB char was reached */
  2484.  
  2485. static yy_state_type yy_get_previous_state()
  2486.     {
  2487.     register yy_state_type yy_current_state;
  2488.     register char *yy_cp;
  2489.  
  2490.     yy_current_state = yy_start;
  2491.  
  2492.     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2493.         {
  2494.         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  2495.         if ( yy_accept[yy_current_state] )
  2496.             {
  2497.             yy_last_accepting_state = yy_current_state;
  2498.             yy_last_accepting_cpos = yy_cp;
  2499.             }
  2500.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2501.             {
  2502.             yy_current_state = (int) yy_def[yy_current_state];
  2503.             if ( yy_current_state >= 916 )
  2504.                 yy_c = yy_meta[(unsigned int) yy_c];
  2505.             }
  2506.         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2507.         }
  2508.  
  2509.     return yy_current_state;
  2510.     }
  2511.  
  2512.  
  2513. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2514.  *
  2515.  * synopsis
  2516.  *    next_state = yy_try_NUL_trans( current_state );
  2517.  */
  2518.  
  2519. #ifdef YY_USE_PROTOS
  2520. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  2521. #else
  2522. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2523. yy_state_type yy_current_state;
  2524. #endif
  2525.     {
  2526.     register int yy_is_jam;
  2527.     register char *yy_cp = yy_c_buf_p;
  2528.  
  2529.     register YY_CHAR yy_c = 1;
  2530.     if ( yy_accept[yy_current_state] )
  2531.         {
  2532.         yy_last_accepting_state = yy_current_state;
  2533.         yy_last_accepting_cpos = yy_cp;
  2534.         }
  2535.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2536.         {
  2537.         yy_current_state = (int) yy_def[yy_current_state];
  2538.         if ( yy_current_state >= 916 )
  2539.             yy_c = yy_meta[(unsigned int) yy_c];
  2540.         }
  2541.     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2542.     yy_is_jam = (yy_current_state == 915);
  2543.  
  2544.     return yy_is_jam ? 0 : yy_current_state;
  2545.     }
  2546.  
  2547.  
  2548. #ifndef YY_NO_UNPUT
  2549. #ifdef YY_USE_PROTOS
  2550. static void yyunput( int c, register char *yy_bp )
  2551. #else
  2552. static void yyunput( c, yy_bp )
  2553. int c;
  2554. register char *yy_bp;
  2555. #endif
  2556.     {
  2557.     register char *yy_cp = yy_c_buf_p;
  2558.  
  2559.     /* undo effects of setting up yytext */
  2560.     *yy_cp = yy_hold_char;
  2561.  
  2562.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2563.         { /* need to shift things up to make room */
  2564.         /* +2 for EOB chars. */
  2565.         register int number_to_move = yy_n_chars + 2;
  2566.         register char *dest = &yy_current_buffer->yy_ch_buf[
  2567.                     yy_current_buffer->yy_buf_size + 2];
  2568.         register char *source =
  2569.                 &yy_current_buffer->yy_ch_buf[number_to_move];
  2570.  
  2571.         while ( source > yy_current_buffer->yy_ch_buf )
  2572.             *--dest = *--source;
  2573.  
  2574.         yy_cp += (int) (dest - source);
  2575.         yy_bp += (int) (dest - source);
  2576.         yy_n_chars = yy_current_buffer->yy_buf_size;
  2577.  
  2578.         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2579.             YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2580.         }
  2581.  
  2582.     *--yy_cp = (char) c;
  2583.  
  2584.  
  2585.     yytext_ptr = yy_bp;
  2586.     yy_hold_char = *yy_cp;
  2587.     yy_c_buf_p = yy_cp;
  2588.     }
  2589. #endif    /* ifndef YY_NO_UNPUT */
  2590.  
  2591.  
  2592. #ifdef __cplusplus
  2593. static int yyinput()
  2594. #else
  2595. static int input()
  2596. #endif
  2597.     {
  2598.     int c;
  2599.  
  2600.     *yy_c_buf_p = yy_hold_char;
  2601.  
  2602.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  2603.         {
  2604.         /* yy_c_buf_p now points to the character we want to return.
  2605.          * If this occurs *before* the EOB characters, then it's a
  2606.          * valid NUL; if not, then we've hit the end of the buffer.
  2607.          */
  2608.         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2609.             /* This was really a NUL. */
  2610.             *yy_c_buf_p = '\0';
  2611.  
  2612.         else
  2613.             { /* need more input */
  2614.             yytext_ptr = yy_c_buf_p;
  2615.             ++yy_c_buf_p;
  2616.  
  2617.             switch ( yy_get_next_buffer() )
  2618.                 {
  2619.                 case EOB_ACT_END_OF_FILE:
  2620.                     {
  2621.                     if ( yywrap() )
  2622.                         {
  2623.                         yy_c_buf_p =
  2624.                         yytext_ptr + YY_MORE_ADJ;
  2625.                         return EOF;
  2626.                         }
  2627.  
  2628.                     if ( ! yy_did_buffer_switch_on_eof )
  2629.                         YY_NEW_FILE;
  2630. #ifdef __cplusplus
  2631.                     return yyinput();
  2632. #else
  2633.                     return input();
  2634. #endif
  2635.                     }
  2636.  
  2637.                 case EOB_ACT_CONTINUE_SCAN:
  2638.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2639.                     break;
  2640.  
  2641.                 case EOB_ACT_LAST_MATCH:
  2642. #ifdef __cplusplus
  2643.                     YY_FATAL_ERROR(
  2644.                     "unexpected last match in yyinput()" );
  2645. #else
  2646.                     YY_FATAL_ERROR(
  2647.                     "unexpected last match in input()" );
  2648. #endif
  2649.                 }
  2650.             }
  2651.         }
  2652.  
  2653.     c = *(unsigned char *) yy_c_buf_p;    /* cast for 8-bit char's */
  2654.     *yy_c_buf_p = '\0';    /* preserve yytext */
  2655.     yy_hold_char = *++yy_c_buf_p;
  2656.  
  2657.  
  2658.     return c;
  2659.     }
  2660.  
  2661.  
  2662. #ifdef YY_USE_PROTOS
  2663. void yyrestart( FILE *input_file )
  2664. #else
  2665. void yyrestart( input_file )
  2666. FILE *input_file;
  2667. #endif
  2668.     {
  2669.     if ( ! yy_current_buffer )
  2670.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  2671.  
  2672.     yy_init_buffer( yy_current_buffer, input_file );
  2673.     yy_load_buffer_state();
  2674.     }
  2675.  
  2676.  
  2677. #ifdef YY_USE_PROTOS
  2678. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2679. #else
  2680. void yy_switch_to_buffer( new_buffer )
  2681. YY_BUFFER_STATE new_buffer;
  2682. #endif
  2683.     {
  2684.     if ( yy_current_buffer == new_buffer )
  2685.         return;
  2686.  
  2687.     if ( yy_current_buffer )
  2688.         {
  2689.         /* Flush out information for old buffer. */
  2690.         *yy_c_buf_p = yy_hold_char;
  2691.         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  2692.         yy_current_buffer->yy_n_chars = yy_n_chars;
  2693.         }
  2694.  
  2695.     yy_current_buffer = new_buffer;
  2696.     yy_load_buffer_state();
  2697.  
  2698.     /* We don't actually know whether we did this switch during
  2699.      * EOF (yywrap()) processing, but the only time this flag
  2700.      * is looked at is after yywrap() is called, so it's safe
  2701.      * to go ahead and always set it.
  2702.      */
  2703.     yy_did_buffer_switch_on_eof = 1;
  2704.     }
  2705.  
  2706.  
  2707. #ifdef YY_USE_PROTOS
  2708. void yy_load_buffer_state( void )
  2709. #else
  2710. void yy_load_buffer_state()
  2711. #endif
  2712.     {
  2713.     yy_n_chars = yy_current_buffer->yy_n_chars;
  2714.     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  2715.     yyin = yy_current_buffer->yy_input_file;
  2716.     yy_hold_char = *yy_c_buf_p;
  2717.     }
  2718.  
  2719.  
  2720. #ifdef YY_USE_PROTOS
  2721. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  2722. #else
  2723. YY_BUFFER_STATE yy_create_buffer( file, size )
  2724. FILE *file;
  2725. int size;
  2726. #endif
  2727.     {
  2728.     YY_BUFFER_STATE b;
  2729.  
  2730.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  2731.     if ( ! b )
  2732.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2733.  
  2734.     b->yy_buf_size = size;
  2735.  
  2736.     /* yy_ch_buf has to be 2 characters longer than the size given because
  2737.      * we need to put in 2 end-of-buffer characters.
  2738.      */
  2739.     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  2740.     if ( ! b->yy_ch_buf )
  2741.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2742.  
  2743.     b->yy_is_our_buffer = 1;
  2744.  
  2745.     yy_init_buffer( b, file );
  2746.  
  2747.     return b;
  2748.     }
  2749.  
  2750.  
  2751. #ifdef YY_USE_PROTOS
  2752. void yy_delete_buffer( YY_BUFFER_STATE b )
  2753. #else
  2754. void yy_delete_buffer( b )
  2755. YY_BUFFER_STATE b;
  2756. #endif
  2757.     {
  2758.     if ( ! b )
  2759.         return;
  2760.  
  2761.     if ( b == yy_current_buffer )
  2762.         yy_current_buffer = (YY_BUFFER_STATE) 0;
  2763.  
  2764.     if ( b->yy_is_our_buffer )
  2765.         yy_flex_free( (void *) b->yy_ch_buf );
  2766.  
  2767.     yy_flex_free( (void *) b );
  2768.     }
  2769.  
  2770.  
  2771. #ifndef YY_ALWAYS_INTERACTIVE
  2772. #ifndef YY_NEVER_INTERACTIVE
  2773. extern int isatty YY_PROTO(( int ));
  2774. #endif
  2775. #endif
  2776.  
  2777. #ifdef YY_USE_PROTOS
  2778. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  2779. #else
  2780. void yy_init_buffer( b, file )
  2781. YY_BUFFER_STATE b;
  2782. FILE *file;
  2783. #endif
  2784.  
  2785.  
  2786.     {
  2787.     yy_flush_buffer( b );
  2788.  
  2789.     b->yy_input_file = file;
  2790.     b->yy_fill_buffer = 1;
  2791.  
  2792. #if YY_ALWAYS_INTERACTIVE
  2793.     b->yy_is_interactive = 1;
  2794. #else
  2795. #if YY_NEVER_INTERACTIVE
  2796.     b->yy_is_interactive = 0;
  2797. #else
  2798.     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  2799. #endif
  2800. #endif
  2801.     }
  2802.  
  2803.  
  2804. #ifdef YY_USE_PROTOS
  2805. void yy_flush_buffer( YY_BUFFER_STATE b )
  2806. #else
  2807. void yy_flush_buffer( b )
  2808. YY_BUFFER_STATE b;
  2809. #endif
  2810.  
  2811.     {
  2812.     b->yy_n_chars = 0;
  2813.  
  2814.     /* We always need two end-of-buffer characters.  The first causes
  2815.      * a transition to the end-of-buffer state.  The second causes
  2816.      * a jam in that state.
  2817.      */
  2818.     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  2819.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2820.  
  2821.     b->yy_buf_pos = &b->yy_ch_buf[0];
  2822.  
  2823.     b->yy_at_bol = 1;
  2824.     b->yy_buffer_status = YY_BUFFER_NEW;
  2825.  
  2826.     if ( b == yy_current_buffer )
  2827.         yy_load_buffer_state();
  2828.     }
  2829.  
  2830.  
  2831. #ifndef YY_NO_SCAN_BUFFER
  2832. #ifdef YY_USE_PROTOS
  2833. YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
  2834. #else
  2835. YY_BUFFER_STATE yy_scan_buffer( base, size )
  2836. char *base;
  2837. yy_size_t size;
  2838. #endif
  2839.     {
  2840.     YY_BUFFER_STATE b;
  2841.  
  2842.     if ( size < 2 ||
  2843.          base[size-2] != YY_END_OF_BUFFER_CHAR ||
  2844.          base[size-1] != YY_END_OF_BUFFER_CHAR )
  2845.         /* They forgot to leave room for the EOB's. */
  2846.         return 0;
  2847.  
  2848.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  2849.     if ( ! b )
  2850.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  2851.  
  2852.     b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
  2853.     b->yy_buf_pos = b->yy_ch_buf = base;
  2854.     b->yy_is_our_buffer = 0;
  2855.     b->yy_input_file = 0;
  2856.     b->yy_n_chars = b->yy_buf_size;
  2857.     b->yy_is_interactive = 0;
  2858.     b->yy_at_bol = 1;
  2859.     b->yy_fill_buffer = 0;
  2860.     b->yy_buffer_status = YY_BUFFER_NEW;
  2861.  
  2862.     yy_switch_to_buffer( b );
  2863.  
  2864.     return b;
  2865.     }
  2866. #endif
  2867.  
  2868.  
  2869. #ifndef YY_NO_SCAN_STRING
  2870. #ifdef YY_USE_PROTOS
  2871. YY_BUFFER_STATE yy_scan_string( yyconst char *str )
  2872. #else
  2873. YY_BUFFER_STATE yy_scan_string( str )
  2874. yyconst char *str;
  2875. #endif
  2876.     {
  2877.     int len;
  2878.     for ( len = 0; str[len]; ++len )
  2879.         ;
  2880.  
  2881.     return yy_scan_bytes( str, len );
  2882.     }
  2883. #endif
  2884.  
  2885.  
  2886. #ifndef YY_NO_SCAN_BYTES
  2887. #ifdef YY_USE_PROTOS
  2888. YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
  2889. #else
  2890. YY_BUFFER_STATE yy_scan_bytes( bytes, len )
  2891. yyconst char *bytes;
  2892. int len;
  2893. #endif
  2894.     {
  2895.     YY_BUFFER_STATE b;
  2896.     char *buf;
  2897.     yy_size_t n;
  2898.     int i;
  2899.  
  2900.     /* Get memory for full buffer, including space for trailing EOB's. */
  2901.     n = len + 2;
  2902.     buf = (char *) yy_flex_alloc( n );
  2903.     if ( ! buf )
  2904.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  2905.  
  2906.     for ( i = 0; i < len; ++i )
  2907.         buf[i] = bytes[i];
  2908.  
  2909.     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
  2910.  
  2911.     b = yy_scan_buffer( buf, n );
  2912.     if ( ! b )
  2913.         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  2914.  
  2915.     /* It's okay to grow etc. this buffer, and we should throw it
  2916.      * away when we're done.
  2917.      */
  2918.     b->yy_is_our_buffer = 1;
  2919.  
  2920.     return b;
  2921.     }
  2922. #endif
  2923.  
  2924.  
  2925. #ifndef YY_NO_PUSH_STATE
  2926. #ifdef YY_USE_PROTOS
  2927. static void yy_push_state( int new_state )
  2928. #else
  2929. static void yy_push_state( new_state )
  2930. int new_state;
  2931. #endif
  2932.     {
  2933.     if ( yy_start_stack_ptr >= yy_start_stack_depth )
  2934.         {
  2935.         yy_size_t new_size;
  2936.  
  2937.         yy_start_stack_depth += YY_START_STACK_INCR;
  2938.         new_size = yy_start_stack_depth * sizeof( int );
  2939.  
  2940.         if ( ! yy_start_stack )
  2941.             yy_start_stack = (int *) yy_flex_alloc( new_size );
  2942.  
  2943.         else
  2944.             yy_start_stack = (int *) yy_flex_realloc(
  2945.                     (void *) yy_start_stack, new_size );
  2946.  
  2947.         if ( ! yy_start_stack )
  2948.             YY_FATAL_ERROR(
  2949.             "out of memory expanding start-condition stack" );
  2950.         }
  2951.  
  2952.     yy_start_stack[yy_start_stack_ptr++] = YY_START;
  2953.  
  2954.     BEGIN(new_state);
  2955.     }
  2956. #endif
  2957.  
  2958.  
  2959. #ifndef YY_NO_POP_STATE
  2960. static void yy_pop_state()
  2961.     {
  2962.     if ( --yy_start_stack_ptr < 0 )
  2963.         YY_FATAL_ERROR( "start-condition stack underflow" );
  2964.  
  2965.     BEGIN(yy_start_stack[yy_start_stack_ptr]);
  2966.     }
  2967. #endif
  2968.  
  2969.  
  2970. #ifndef YY_NO_TOP_STATE
  2971. static int yy_top_state()
  2972.     {
  2973.     return yy_start_stack[yy_start_stack_ptr - 1];
  2974.     }
  2975. #endif
  2976.  
  2977. #ifndef YY_EXIT_FAILURE
  2978. #define YY_EXIT_FAILURE 2
  2979. #endif
  2980.  
  2981. #ifdef YY_USE_PROTOS
  2982. static void yy_fatal_error( yyconst char msg[] )
  2983. #else
  2984. static void yy_fatal_error( msg )
  2985. char msg[];
  2986. #endif
  2987.     {
  2988.     (void) fprintf( stderr, "%s\n", msg );
  2989.     exit( YY_EXIT_FAILURE );
  2990.     }
  2991.  
  2992.  
  2993.  
  2994. /* Redefine yyless() so it works in section 3 code. */
  2995.  
  2996. #undef yyless
  2997. #define yyless(n) \
  2998.     do \
  2999.         { \
  3000.         /* Undo effects of setting up yytext. */ \
  3001.         yytext[yyleng] = yy_hold_char; \
  3002.         yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  3003.         yy_hold_char = *yy_c_buf_p; \
  3004.         *yy_c_buf_p = '\0'; \
  3005.         yyleng = n; \
  3006.         } \
  3007.     while ( 0 )
  3008.  
  3009.  
  3010. /* Internal utility routines. */
  3011.  
  3012. #ifndef yytext_ptr
  3013. #ifdef YY_USE_PROTOS
  3014. static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
  3015. #else
  3016. static void yy_flex_strncpy( s1, s2, n )
  3017. char *s1;
  3018. yyconst char *s2;
  3019. int n;
  3020. #endif
  3021.     {
  3022.     register int i;
  3023.     for ( i = 0; i < n; ++i )
  3024.         s1[i] = s2[i];
  3025.     }
  3026. #endif
  3027.  
  3028.  
  3029. #ifdef YY_USE_PROTOS
  3030. static void *yy_flex_alloc( yy_size_t size )
  3031. #else
  3032. static void *yy_flex_alloc( size )
  3033. yy_size_t size;
  3034. #endif
  3035.     {
  3036.     return (void *) xmalloc( size );
  3037.     }
  3038.  
  3039. #ifdef YY_USE_PROTOS
  3040. static void *yy_flex_realloc( void *ptr, yy_size_t size )
  3041. #else
  3042. static void *yy_flex_realloc( ptr, size )
  3043. void *ptr;
  3044. yy_size_t size;
  3045. #endif
  3046.     {
  3047.     /* The cast to (char *) in the following accommodates both
  3048.      * implementations that use char* generic pointers, and those
  3049.      * that use void* generic pointers.  It works with the latter
  3050.      * because both ANSI C and C++ allow castless assignment from
  3051.      * any pointer type to void*, and deal with argument conversions
  3052.      * as though doing an assignment.
  3053.      */
  3054.     return (void *) realloc( (char *) ptr, size );
  3055.     }
  3056.  
  3057. #ifdef YY_USE_PROTOS
  3058. static void yy_flex_free( void *ptr )
  3059. #else
  3060. static void yy_flex_free( ptr )
  3061. void *ptr;
  3062. #endif
  3063.     {
  3064.     free( ptr );
  3065.     }
  3066.  
  3067. #if YY_MAIN
  3068. int main()
  3069.     {
  3070.     yylex();
  3071.     return 0;
  3072.     }
  3073. #endif
  3074. #line 366 "./ldlex.l"
  3075.  
  3076.  
  3077.  
  3078. /* Switch flex to reading script file NAME, open on FILE,
  3079.    saving the current input info on the include stack.  */
  3080.  
  3081. void
  3082. lex_push_file (file, name)
  3083.      FILE *file;
  3084.      const char *name;
  3085. {
  3086.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  3087.     {
  3088.       einfo("%F:includes nested too deeply\n");
  3089.     }
  3090.   file_name_stack[include_stack_ptr] = name;
  3091.   lineno_stack[include_stack_ptr] = 1;
  3092.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  3093.  
  3094.   include_stack_ptr++;
  3095.   yyin = file;
  3096.   yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  3097.   BEGIN (SCRIPT);
  3098. }
  3099.  
  3100. /* Return a newly created flex input buffer containing STRING,
  3101.    which is SIZE bytes long.  */
  3102.  
  3103. static YY_BUFFER_STATE 
  3104. yy_create_string_buffer (string, size)
  3105.      CONST char *string;
  3106.      size_t size;
  3107. {
  3108.   YY_BUFFER_STATE b;
  3109.  
  3110.   /* Calls to m-alloc get turned by sed into xm-alloc.  */
  3111.   b = (YY_BUFFER_STATE) xmalloc (sizeof (struct yy_buffer_state));
  3112.   b->yy_input_file = 0;
  3113.   b->yy_buf_size = size;
  3114.  
  3115.   /* yy_ch_buf has to be 2 characters longer than the size given because
  3116.      we need to put in 2 end-of-buffer characters.  */
  3117.   b->yy_ch_buf = (char *) xmalloc ((unsigned) (b->yy_buf_size + 3));
  3118.  
  3119.   b->yy_ch_buf[0] = '\n';
  3120.   strcpy (b->yy_ch_buf+1, string);
  3121.   b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR;
  3122.   b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR;
  3123.   b->yy_n_chars = size+1;
  3124.   b->yy_buf_pos = &b->yy_ch_buf[1];
  3125.  
  3126.   /* flex 2.4.7 changed the interface.  FIXME: We should not be using
  3127.      a flex internal interface in the first place!  */
  3128. #ifdef YY_BUFFER_NEW
  3129.   b->yy_buffer_status = YY_BUFFER_NEW;
  3130. #else
  3131.   b->yy_eof_status = EOF_NOT_SEEN;
  3132. #endif
  3133.  
  3134.   return b;
  3135. }
  3136.  
  3137. /* Switch flex to reading from STRING, saving the current input info
  3138.    on the include stack.  */
  3139.  
  3140. void
  3141. lex_redirect (string)
  3142.      CONST char *string;
  3143. {
  3144.   YY_BUFFER_STATE tmp;
  3145.  
  3146.   yy_init = 0;
  3147.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  3148.     {
  3149.       einfo("%F: macros nested too deeply\n");
  3150.     }
  3151.   file_name_stack[include_stack_ptr] = "redirect";
  3152.   lineno_stack[include_stack_ptr] = 0;
  3153.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  3154.   include_stack_ptr++;
  3155.   tmp = yy_create_string_buffer (string, strlen (string));
  3156.   yy_switch_to_buffer (tmp);
  3157.   BEGIN (SCRIPT);
  3158. }
  3159.  
  3160. /* Functions to switch to a different flex start condition,
  3161.    saving the current start condition on `state_stack'.  */
  3162.  
  3163. static int state_stack[MAX_INCLUDE_DEPTH * 2];
  3164. static int *state_stack_p = state_stack;
  3165.  
  3166. void
  3167. ldlex_script ()
  3168. {
  3169.   *(state_stack_p)++ = yy_start;
  3170.   BEGIN (SCRIPT);
  3171. }
  3172.  
  3173. void
  3174. ldlex_mri_script ()
  3175. {
  3176.   *(state_stack_p)++ = yy_start;
  3177.   BEGIN (MRI);
  3178. }
  3179.  
  3180. void
  3181. ldlex_defsym ()
  3182. {
  3183.   *(state_stack_p)++ = yy_start;
  3184.   BEGIN (DEFSYMEXP);
  3185. }
  3186.        
  3187. void
  3188. ldlex_expression ()
  3189. {
  3190.   *(state_stack_p)++ = yy_start;
  3191.   BEGIN (EXPRESSION);
  3192. }
  3193.  
  3194. void
  3195. ldlex_both ()
  3196. {
  3197.   *(state_stack_p)++ = yy_start;
  3198.   BEGIN (BOTH);
  3199. }
  3200.  
  3201. void
  3202. ldlex_popstate ()
  3203. {
  3204.   yy_start = *(--state_stack_p);
  3205. }
  3206.  
  3207.  
  3208. /* Place up to MAX_SIZE characters in BUF and return in *RESULT
  3209.    either the number of characters read, or 0 to indicate EOF.  */
  3210.  
  3211. static void
  3212. yy_input (buf, result, max_size)
  3213.      char *buf;
  3214.      int *result;
  3215.      int max_size;
  3216. {
  3217.   *result = 0; 
  3218.   if (yy_current_buffer->yy_input_file)
  3219.     {
  3220.       if (yyin)
  3221.     {
  3222.       *result = read (fileno (yyin), (char *) buf, max_size);
  3223.       if (*result < 0) 
  3224.         einfo ("%F%P: read in flex scanner failed");
  3225.     }
  3226.     }
  3227. }
  3228.  
  3229. /* Eat the rest of a C-style comment.  */
  3230.  
  3231. static void
  3232. comment ()
  3233. {
  3234.   int c;
  3235.  
  3236.   while (1)
  3237.   {
  3238.     c = input();
  3239.     while (c != '*' && c != EOF) 
  3240.     {
  3241.       if (c == '\n' || c == '\r')
  3242.     lineno++;
  3243.       c = input();
  3244.     }
  3245.  
  3246.     if (c == '*')
  3247.     {
  3248.       c = input();
  3249.       while (c == '*')
  3250.        c = input();
  3251.       if (c == '/')
  3252.        break;            /* found the end */
  3253.     }
  3254.  
  3255.     if (c == '\n' || c == '\r')
  3256.       lineno++;
  3257.  
  3258.     if (c == EOF)
  3259.     {
  3260.       einfo( "%F%P: EOF in comment\n");
  3261.       break;
  3262.     }
  3263.   }
  3264. }
  3265.  
  3266. /* Warn the user about a garbage character WHAT in the input
  3267.    in context WHERE.  */
  3268.  
  3269. static void
  3270. lex_warn_invalid (where, what)
  3271.      char *where, *what;
  3272. {
  3273.   char buf[5];
  3274.  
  3275.   /* If we have found an input file whose format we do not recognize,
  3276.      and we are therefore treating it as a linker script, and we find
  3277.      an invalid character, then most likely this is a real object file
  3278.      of some different format.  Treat it as such.  */
  3279.   if (ldfile_assumed_script)
  3280.     {
  3281.       bfd_set_error (bfd_error_file_not_recognized);
  3282.       einfo ("%F%s: file not recognized: %E\n", ldfile_input_filename);
  3283.     }
  3284.  
  3285.   if (! isprint ((unsigned char) *what))
  3286.     {
  3287.       sprintf (buf, "\\%03o", (unsigned int) *what);
  3288.       what = buf;
  3289.     }
  3290.  
  3291.   einfo ("%P:%S: ignoring invalid character `%s'%s\n", what, where);
  3292. }
  3293.