home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / binutils.2 / ld / ldlex.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-30  |  82.0 KB  |  2,769 lines

  1. /* A lexical scanner generated by flex */
  2. # line 3 "flex.skel"
  3.  
  4. /* scanner skeleton version:
  5.  */
  6.  
  7. #define FLEX_SCANNER
  8.  
  9. #include <stdio.h>
  10.  
  11.  
  12. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  13. #ifdef c_plusplus
  14. #ifndef __cplusplus
  15. #define __cplusplus
  16. #endif
  17. #endif
  18.  
  19.  
  20. #ifdef __cplusplus
  21.  
  22. #include <stdlib.h>
  23. #include <osfcn.h>
  24.  
  25. /* use prototypes in function declarations */
  26. #define YY_USE_PROTOS
  27.  
  28. /* the "const" storage-class-modifier is valid */
  29. #define YY_USE_CONST
  30.  
  31. #else    /* ! __cplusplus */
  32.  
  33. #ifdef __STDC__
  34.  
  35. #ifdef __GNUC__
  36. #include <stddef.h>
  37. void *malloc( size_t );
  38. void free( void* );
  39. #else
  40. #include <stdlib.h>
  41. #endif    /* __GNUC__ */
  42.  
  43. #define YY_USE_PROTOS
  44. #define YY_USE_CONST
  45.  
  46. #endif    /* __STDC__ */
  47. #endif    /* ! __cplusplus */
  48.  
  49.  
  50. #ifdef __TURBOC__
  51. #define YY_USE_CONST
  52. #endif
  53.  
  54.  
  55. #ifndef YY_USE_CONST
  56. #define const
  57. #endif
  58.  
  59.  
  60. #ifdef YY_USE_PROTOS
  61. #define YY_PROTO(proto) proto
  62. #else
  63. #define YY_PROTO(proto) ()
  64. /* we can't get here if it's an ANSI C compiler, or a C++ compiler,
  65.  * so it's got to be a K&R compiler, and therefore there's no standard
  66.  * place from which to include these definitions
  67.  */
  68. char *malloc();
  69. int free();
  70. int read();
  71. #endif
  72.  
  73.  
  74. /* amount of stuff to slurp up with each read */
  75. #ifndef YY_READ_BUF_SIZE
  76. #define YY_READ_BUF_SIZE 8192
  77. #endif
  78.  
  79. /* returned upon end-of-file */
  80. #define YY_END_TOK 0
  81.  
  82. /* copy whatever the last rule matched to the standard output */
  83.  
  84. /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
  85. /* this used to be an fputs(), but since the string might contain NUL's,
  86.  * we now use fwrite()
  87.  */
  88. #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
  89.  
  90. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  91.  * is returned in "result".
  92.  */
  93. #define YY_INPUT(buf,result,max_size) \
  94.     if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
  95.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  96. #define YY_NULL 0
  97.  
  98. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  99.  * we don't want an extra ';' after the "return" because that will cause
  100.  * some compilers to complain about unreachable statements.
  101.  */
  102. #define yyterminate() return ( YY_NULL )
  103.  
  104. /* report a fatal error */
  105.  
  106. /* The funky do-while is used to turn this macro definition into
  107.  * a single C statement (which needs a semi-colon terminator).
  108.  * This avoids problems with code like:
  109.  *
  110.  *     if ( something_happens )
  111.  *        YY_FATAL_ERROR( "oops, the something happened" );
  112.  *    else
  113.  *        everything_okay();
  114.  *
  115.  * Prior to using the do-while the compiler would get upset at the
  116.  * "else" because it interpreted the "if" statement as being all
  117.  * done when it reached the ';' after the YY_FATAL_ERROR() call.
  118.  */
  119.  
  120. #define YY_FATAL_ERROR(msg) \
  121.     do \
  122.         { \
  123.         (void) fputs( msg, stderr ); \
  124.         (void) putc( '\n', stderr ); \
  125.         exit( 1 ); \
  126.         } \
  127.     while ( 0 )
  128.  
  129. /* default yywrap function - always treat EOF as an EOF */
  130. #define yywrap() 1
  131.  
  132. /* enter a start condition.  This macro really ought to take a parameter,
  133.  * but we do it the disgusting crufty way forced on us by the ()-less
  134.  * definition of BEGIN
  135.  */
  136. #define BEGIN yy_start = 1 + 2 *
  137.  
  138. /* action number for EOF rule of a given start state */
  139. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  140.  
  141. /* special action meaning "start processing a new file" */
  142. #define YY_NEW_FILE \
  143.     do \
  144.         { \
  145.         yy_init_buffer( yy_current_buffer, yyin ); \
  146.         yy_load_buffer_state(); \
  147.         } \
  148.     while ( 0 )
  149.  
  150. /* default declaration of generated scanner - a define so the user can
  151.  * easily add parameters
  152.  */
  153. #define YY_DECL int yylex YY_PROTO(( void )) 
  154.  
  155. /* code executed at the end of each rule */
  156. #define YY_BREAK break;
  157.  
  158. #define YY_END_OF_BUFFER_CHAR 0
  159.  
  160. #ifndef YY_BUF_SIZE
  161. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
  162. #endif
  163.  
  164. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  165.  
  166. #define YY_CHAR char
  167. # line 1 "./ldlex.l"
  168. #define INITIAL 0
  169. # line 2 "./ldlex.l"
  170.  
  171. /* Copyright (C) 1991 Free Software Foundation, Inc.
  172.  
  173. This file is part of GLD, the Gnu Linker.
  174.  
  175. GLD is free software; you can redistribute it and/or modify
  176. it under the terms of the GNU General Public License as published by
  177. the Free Software Foundation; either version 2, or (at your option)
  178. any later version.
  179.  
  180. GLD is distributed in the hope that it will be useful,
  181. but WITHOUT ANY WARRANTY; without even the implied warranty of
  182. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  183. GNU General Public License for more details.
  184.  
  185. You should have received a copy of the GNU General Public License
  186. along with GLD; see the file COPYING.  If not, write to
  187. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  188.  
  189. /*
  190. This was written by steve chamberlain
  191.                     sac@cygnus.com
  192. */
  193.  
  194.  
  195. typedef int bfd_vma;
  196. #include <ansidecl.h>
  197. #include "ldgram.h"
  198.  
  199. int ldgram_in_defsym;
  200. int ldgram_had_equals;
  201. int ldgram_in_script;
  202.  
  203. int hex_mode;
  204. extern int fgetc();
  205. extern int yyparse();
  206.  
  207.  
  208.  
  209. char *buystring();
  210.  
  211. unsigned int lineno = 1;
  212. int old;
  213.  
  214. static comment();
  215.  
  216. #undef YY_INPUT
  217. #define YY_INPUT(buf,result,max_size) yy_input(buf, &result, max_size)
  218. #undef YY_FATAL_ERROR
  219. #define YY_FATAL_ERROR ;
  220. #define MAX_INCLUDE_DEPTH 10
  221. YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
  222. char *file_name_stack[MAX_INCLUDE_DEPTH];
  223. unsigned int include_stack_ptr = 0;
  224.  
  225.  
  226. /* STATES 
  227.     COMMAND         on command line
  228.     COMMENT        in a C comment
  229.     EXPRESSION    definiatelyt in an expression
  230.     SCRIPT        definately in a script
  231.     SOMEWHERE    either EXPRESSION or SCRIPT
  232.         MRI             in an MRI script
  233. */
  234. #define RTOKEN(x)  {  yylval.token = x; return x; }
  235. #define COMMAND 1
  236. #define SCRIPT 2
  237. #define EXPRESSION 3
  238. #define COMMENT 4
  239. #define BOTH 5
  240. #define DEFSYMEXP 6
  241. #define MRI 7
  242. # line 90 "./ldlex.l"
  243. # line 168 "flex.skel"
  244.  
  245. /* done after the current pattern has been matched and before the
  246.  * corresponding action - sets up yytext
  247.  */
  248. #define YY_DO_BEFORE_ACTION \
  249.     yytext = yy_bp; \
  250.     yyleng = yy_cp - yy_bp; \
  251.     yy_hold_char = *yy_cp; \
  252.     *yy_cp = '\0'; \
  253.     yy_c_buf_p = yy_cp;
  254. # line 179 "flex.skel"
  255.  
  256. #define EOB_ACT_CONTINUE_SCAN 0
  257. #define EOB_ACT_END_OF_FILE 1
  258. #define EOB_ACT_LAST_MATCH 2
  259.  
  260. /* return all but the first 'n' matched characters back to the input stream */
  261. #define yyless(n) \
  262.     do \
  263.         { \
  264.         /* undo effects of setting up yytext */ \
  265.         *yy_cp = yy_hold_char; \
  266.         yy_c_buf_p = yy_cp = yy_bp + n; \
  267.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  268.         } \
  269.     while ( 0 )
  270.  
  271. #define unput(c) yyunput( c, yytext )
  272.  
  273.  
  274. struct yy_buffer_state
  275.     {
  276.     FILE *yy_input_file;
  277.  
  278.     YY_CHAR *yy_ch_buf;        /* input buffer */
  279.     YY_CHAR *yy_buf_pos;    /* current position in input buffer */
  280.  
  281.     /* size of input buffer in bytes, not including room for EOB characters */
  282.     int yy_buf_size;    
  283.  
  284.     /* number of characters read into yy_ch_buf, not including EOB characters */
  285.     int yy_n_chars;
  286.  
  287.     int yy_eof_status;        /* whether we've seen an EOF on this buffer */
  288. #define EOF_NOT_SEEN 0
  289.     /* "pending" happens when the EOF has been seen but there's still
  290.      * some text process
  291.      */
  292. #define EOF_PENDING 1
  293. #define EOF_DONE 2
  294.     };
  295.  
  296. static YY_BUFFER_STATE yy_current_buffer;
  297.  
  298. /* we provide macros for accessing buffer states in case in the
  299.  * future we want to put the buffer states in a more general
  300.  * "scanner state"
  301.  */
  302. #define YY_CURRENT_BUFFER yy_current_buffer
  303.  
  304.  
  305. /* yy_hold_char holds the character lost when yytext is formed */
  306. static YY_CHAR yy_hold_char;
  307.  
  308. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  309.  
  310.  
  311.  
  312. #ifndef YY_USER_ACTION
  313. #define YY_USER_ACTION
  314. #endif
  315.  
  316. #ifndef YY_USER_INIT
  317. #define YY_USER_INIT
  318. #endif
  319.  
  320. extern YY_CHAR *yytext;
  321. extern int yyleng;
  322. extern FILE *yyin, *yyout;
  323.  
  324. YY_CHAR *yytext;
  325. int yyleng;
  326.  
  327. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  328.  
  329. #define YY_END_OF_BUFFER 181
  330. typedef int yy_state_type;
  331. static const short int yy_accept[912] =
  332.     {   0,
  333.         0,    0,  175,  175,  175,  175,    0,    0,    0,    0,
  334.         0,    0,    0,    0,    0,    0,  181,  180,  178,  172,
  335.       180,  172,  175,  172,  177,   83,  175,   89,   80,   96,
  336.        95,   85,   86,   79,   87,  175,   88,   59,   59,   99,
  337.       100,   90,   92,   78,   84,   59,   59,   59,   59,   59,
  338.        59,  175,  175,  175,  175,  175,  175,  175,  175,   61,
  339.        60,   59,  142,  140,  175,   94,   81,   93,   82,  174,
  340.        86,   79,   87,  174,   88,   59,   59,   99,   92,   59,
  341.        59,   59,  174,  174,   61,   60,   59,  174,   82,  174,
  342.        59,   59,   59,   59,   59,   59,   59,   59,  174,  174,
  343.  
  344.       174,  174,  174,  174,  174,  174,   59,   59,  142,  140,
  345.         5,    4,    3,    2,    4,    6,    4,  146,  173,  147,
  346.       173,   92,   59,   59,   59,   59,   59,   59,  173,  173,
  347.       173,  173,  173,  173,   59,   59,   59,   59,  173,  173,
  348.       173,  173,  172,    0,  176,  172,  175,  175,  175,  175,
  349.        49,   55,  175,   28,   14,  175,   34,   37,   47,  175,
  350.        27,   31,   22,   33,   25,   21,  175,   20,   17,  175,
  351.        13,   19,   15,   36,   30,   35,   26,   32,  175,    1,
  352.        66,   59,   59,   77,   75,   73,   71,   72,   74,   59,
  353.       175,   69,   68,   65,   67,   70,   59,   59,  175,  145,
  354.  
  355.       175,  175,  175,  175,   59,  175,  175,  175,  175,  175,
  356.       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  357.       175,  175,  175,  175,  175,  175,  175,   59,  175,  175,
  358.       175,   76,   64,  174,   57,   57,   71,   72,   74,   59,
  359.        58,   58,   59,    0,   65,   59,   58,   58,   58,   59,
  360.       174,  145,   58,   59,  174,  174,  174,   59,  174,   59,
  361.        59,   59,   59,   59,  174,  174,  174,  174,   59,  174,
  362.       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
  363.       174,  174,  174,  174,  174,  174,  174,  174,  174,   59,
  364.       174,  174,    4,    4,    4,    4,  173,   57,   57,  147,
  365.  
  366.        59,   58,   58,   58,   59,  173,   59,   58,  173,   58,
  367.       173,  173,  173,  173,  173,  173,  173,   59,  173,  173,
  368.       173,  173,  173,  173,  173,  173,   51,   39,   39,   53,
  369.        54,   48,   56,   41,  175,   45,   46,   46,   46,   46,
  370.        18,   23,  175,   24,  175,   40,  175,  175,  175,   50,
  371.        62,   63,  175,   59,  175,  175,  175,  175,  175,  175,
  372.        59,  175,  175,  175,  175,  175,  128,  175,  175,  175,
  373.       175,  175,  113,  175,  175,  175,  175,  175,  175,  175,
  374.       175,  175,  175,  175,  175,  175,  175,  175,  143,  141,
  375.       175,  174,  174,   58,  174,   59,  174,  174,  174,  174,
  376.  
  377.       174,   59,  174,  174,  174,  174,  174,   59,  174,  174,
  378.       174,  174,  174,  128,  174,  174,  174,  174,  174,  113,
  379.       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
  380.       174,  143,  141,    4,  173,  173,  173,  173,  173,  148,
  381.       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
  382.       163,  173,  173,  173,  173,  173,  173,   39,   29,   46,
  383.        46,   46,  175,  175,  175,  175,  175,  175,  175,  108,
  384.       175,  175,  133,  175,  137,  175,  175,  175,  175,  124,
  385.       175,  175,  175,  138,  175,  175,  131,  175,  110,  175,
  386.       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  387.  
  388.       175,  175,  175,  174,  108,  174,  174,  110,  174,  174,
  389.       174,  174,  174,  133,  174,  137,  174,  174,  174,  124,
  390.       174,  174,  174,  138,  174,  174,  131,  174,  174,  174,
  391.       174,  174,  174,  174,  174,  174,  174,  174,   59,  173,
  392.       173,  173,  152,  151,  173,  160,  155,  158,  173,  173,
  393.       161,  173,  173,  164,  173,  169,  165,  167,  173,  170,
  394.        39,   44,   46,   46,  175,  175,  175,  175,  175,  175,
  395.       175,  107,  105,  175,  175,  175,  136,  109,  130,  175,
  396.       175,  118,  175,  175,  175,  175,  175,  175,  175,  175,
  397.       175,  132,  175,  175,  175,  175,  175,  175,  174,  107,
  398.  
  399.       174,  174,  174,  174,  174,  105,  174,  174,  136,  109,
  400.       130,  174,  174,  118,  174,  174,  174,  174,  174,  174,
  401.       174,  174,  132,  174,  174,  174,  173,  153,  150,  173,
  402.       160,  160,  157,  173,  173,  173,  173,  169,  169,  166,
  403.        38,   43,   42,  175,  175,  175,   16,  175,  175,  175,
  404.       175,  175,  175,  175,  175,  175,  106,  103,  175,  135,
  405.       104,  117,  175,  175,  175,  114,  175,  129,  115,  175,
  406.       175,  174,  174,  135,  114,  174,  174,  174,  174,  174,
  407.       174,  106,  103,  174,  104,  117,  174,  174,  174,  174,
  408.       129,  115,  173,  173,  159,  156,  173,  173,  168,    7,
  409.  
  410.        12,  175,  175,  175,  175,  175,  175,  175,  119,  175,
  411.       144,  134,  175,  139,  175,  175,  175,  125,  175,  175,
  412.       174,  119,  174,  174,  174,  174,  174,  174,  144,  134,
  413.       174,  139,  174,  174,  125,  173,  173,  173,  173,    7,
  414.       175,  175,  175,  175,  162,  175,  175,  175,  175,  175,
  415.       175,  123,  175,  171,  175,  162,  174,  171,  174,  174,
  416.       174,  174,  174,  174,  174,  123,  162,  149,  154,  171,
  417.       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  418.       175,  175,  174,  174,  174,  174,  174,  174,  174,  174,
  419.       175,  175,  175,  175,  175,  175,  175,  175,  175,  116,
  420.  
  421.       175,  175,  174,  174,  174,  174,  174,  174,  174,  116,
  422.       175,  175,  175,  175,  175,  175,  175,  175,  127,  175,
  423.       175,  175,  174,  174,  174,  174,  174,  127,  174,  175,
  424.       175,  175,   11,   10,  121,  175,  175,  175,  175,  175,
  425.       174,  174,  121,  174,  174,  174,  175,  175,  175,  175,
  426.       175,  126,  175,  175,  174,  174,  174,  174,  126,  175,
  427.       175,  175,  175,  175,  112,  111,  112,  111,  174,  174,
  428.         9,    8,  175,  175,  175,  174,  174,  175,  175,  175,
  429.       174,  174,  175,  175,  175,  174,  174,  175,  175,  175,
  430.       174,  174,  175,  175,  175,  174,  174,   52,  175,  175,
  431.  
  432.       174,  174,  120,  175,  120,  174,  175,  174,  122,  122,
  433.         0
  434.     } ;
  435.  
  436. static const YY_CHAR yy_ec[128] =
  437.     {   0,
  438.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  439.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  440.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  441.         1,    2,    4,    5,    1,    6,    7,    8,    1,    9,
  442.        10,   11,   12,   13,   14,   15,   16,   17,   18,   18,
  443.        18,   18,   18,   18,   18,   18,   18,   19,   20,   21,
  444.        22,   23,   24,    1,   25,   26,   27,   28,   29,   30,
  445.        31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
  446.        15,   41,   42,   43,   44,   45,   15,   46,   47,   48,
  447.        49,   15,   50,    1,   51,    1,   52,   53,   54,   55,
  448.  
  449.        56,   57,   58,   59,   60,   15,   61,   62,   63,   64,
  450.        65,   66,   15,   67,   68,   69,   70,   71,   15,   72,
  451.        73,   74,   75,   76,   77,   78,    1
  452.     } ;
  453.  
  454. static const YY_CHAR yy_meta[79] =
  455.     {   0,
  456.         1,    1,    2,    3,    1,    4,    1,    3,    1,    1,
  457.         1,    4,    5,    4,    6,    6,    7,    7,    4,    1,
  458.         3,    5,    3,    1,    7,    7,    7,    7,    7,    7,
  459.         6,    6,    6,    6,    7,    6,    7,    6,    6,    6,
  460.         6,    6,    6,    6,    6,    6,    6,    6,    4,    4,
  461.         6,    7,    7,    7,    7,    7,    7,    6,    6,    6,
  462.         7,    6,    7,    6,    6,    6,    6,    6,    6,    6,
  463.         6,    7,    6,    6,    1,    1,    1,    4
  464.     } ;
  465.  
  466. static const short int yy_base[936] =
  467.     {   0,
  468.         0,    0,    0,   77,  154,    0,  232,    0,    0,    0,
  469.       305,    0,  370,    0,  448,    0, 1757, 1758, 1758,    0,
  470.      1751,    9,  521,   14, 1758, 1733,  583, 1758,    4, 1758,
  471.      1758, 1732, 1731,    0, 1730,    0,   16,  624, 1679,    0,
  472.      1758,    7, 1728,   11, 1758,   17,    0,    1,    2,   11,
  473.        18, 1708, 1699,   17,   23,   26,   17,   63, 1705,    0,
  474.         0,   41, 1667, 1649, 1617, 1758,   28, 1758,    0,  680,
  475.      1651, 1758, 1605,    0,   48,  721, 1554, 1758, 1603,  777,
  476.        79,   83,   79, 1591, 1758, 1758,   88, 1563,    0,  824,
  477.       291,  292,  629,  597,   86,  682,  610,  782, 1586, 1583,
  478.  
  479.        91,   38,   99,   88,  573, 1595,  651,  665, 1563, 1551,
  480.      1758,  865, 1758, 1758,    0, 1758,  906, 1758,  953,    0,
  481.         0, 1758,  994,  109,  110,  114,  313,  330,  104, 1592,
  482.      1575, 1571, 1585, 1572,  571,  657,  592,  648,    4, 1560,
  483.      1544, 1554,    0, 1604, 1758,  719,    0,    0, 1540,  288,
  484.         0,  295,    0, 1555,    0,    0,    0,    0,  475, 1539,
  485.         0,    0,    0,    0,  475,    0, 1540,    0,    0,    0,
  486.      1539,    0, 1547, 1537,    0,    0,    0,    0,    0, 1758,
  487.      1758,    0, 1529, 1758, 1758, 1758,    0,    0,    0,    0,
  488.       694, 1578, 1758,    0, 1758, 1577,  273,  293, 1565,    0,
  489.  
  490.      1558, 1553,    1, 1566,   72, 1565, 1550, 1556, 1552, 1549,
  491.      1553,  714, 1550, 1549, 1546, 1548, 1538,  289, 1550, 1539,
  492.      1552,   41, 1541, 1531, 1553, 1530, 1530,  248, 1506, 1511,
  493.      1494, 1758, 1758,    0, 1041, 1495, 1758, 1758,    0, 1493,
  494.      1487, 1758, 1758,  724, 1758, 1097, 1514, 1522,    0,    0,
  495.      1516,    0,    0, 1518, 1501, 1510, 1497, 1476, 1469,  763,
  496.       811,    0,  867,  838, 1503, 1498,  558, 1511,  912, 1510,
  497.      1495, 1501, 1497, 1494, 1498,  741, 1495, 1494, 1491, 1493,
  498.       310, 1496, 1485, 1498,  590, 1487, 1500, 1482, 1482,  929,
  499.      1458, 1463,    0, 1448,    0,    0,    0, 1153, 1447,    0,
  500.  
  501.      1209, 1476,    0,    0,    0, 1484, 1474, 1482, 1486, 1472,
  502.      1470, 1486, 1473, 1481, 1482, 1480, 1462, 1437, 1444, 1448,
  503.      1435, 1433, 1443, 1431, 1438, 1438,    0,    0, 1422,    0,
  504.         0,    0,  300,    0, 1424,    0,    0, 1420, 1430, 1423,
  505.         0,    0, 1416,    0, 1405,    0, 1411,  557, 1403,    0,
  506.      1758, 1758, 1430,   76, 1437, 1440, 1437, 1423, 1417, 1438,
  507.       571, 1435, 1420, 1424, 1434, 1431,    0, 1421, 1417, 1411,
  508.      1423, 1422,    0, 1413, 1408, 1414, 1410, 1417, 1407, 1405,
  509.      1404, 1401, 1402, 1413, 1400, 1404, 1408, 1373,    0,    0,
  510.      1381, 1419, 1396, 1393, 1402, 1399, 1388, 1391, 1400, 1363,
  511.  
  512.      1371, 1000, 1399, 1396, 1382, 1371, 1392,  852, 1389, 1374,
  513.      1378, 1388, 1384,    0, 1369, 1363, 1352, 1364, 1363,    0,
  514.      1354, 1356, 1360, 1350, 1348, 1347, 1344, 1345, 1344, 1348,
  515.      1352,    0,    0,  727, 1265, 1343,  598, 1352, 1340,    0,
  516.      1342, 1335, 1349, 1347, 1346, 1338, 1330, 1334, 1306, 1304,
  517.         0, 1306, 1299, 1312, 1310, 1309, 1295, 1311,    0, 1294,
  518.      1292, 1288, 1291, 1295, 1293, 1304, 1303, 1285, 1317,    0,
  519.      1314, 1316,    0, 1307,    0, 1306, 1310, 1304, 1294,    0,
  520.      1297, 1310, 1294,    0, 1294, 1293,    0, 1293,    0, 1289,
  521.      1300, 1283, 1271, 1278, 1286, 1279, 1268, 1271, 1266, 1275,
  522.  
  523.      1278, 1244, 1240, 1268,    0, 1265, 1264,    0, 1276, 1261,
  524.      1237, 1233, 1262,    0, 1253,    0, 1246, 1245, 1240,    0,
  525.      1243, 1256, 1240,    0, 1237, 1236,    0, 1237, 1238, 1243,
  526.      1231, 1238, 1246, 1239, 1228, 1227, 1236, 1239,  728, 1231,
  527.      1218, 1221,    0,    0, 1233, 1322,    0,    0, 1216, 1223,
  528.         0, 1227, 1191,    0, 1200, 1399,    0,    0, 1184,    0,
  529.      1181,    0, 1197, 1178, 1173, 1193, 1185, 1171, 1182,  611,
  530.      1196,    0,    0, 1192, 1203, 1202,    0,    0,    0, 1179,
  531.      1201,    0, 1196, 1177, 1198, 1194, 1183, 1177, 1194, 1186,
  532.      1178,    0, 1185, 1169, 1186, 1168, 1134, 1146, 1158,    0,
  533.  
  534.      1172, 1172, 1169, 1128, 1140,    0, 1155, 1166,    0,    0,
  535.         0, 1143, 1165,    0, 1160, 1144, 1164, 1149, 1143, 1160,
  536.      1152, 1138,    0, 1132, 1149, 1131, 1129,    0, 1135, 1125,
  537.         0, 1476,    0, 1140, 1141, 1095, 1095,    0, 1553,    0,
  538.         0,    0,    0, 1100, 1093, 1101,    0, 1096, 1105, 1104,
  539.      1114, 1112, 1104, 1120, 1120, 1117,    0,    0, 1102,    0,
  540.         0, 1093, 1095, 1090, 1102, 1088, 1098,    0,    0, 1068,
  541.      1084, 1091, 1105,    0, 1081, 1062, 1079, 1084, 1070, 1093,
  542.      1090,    0,    0, 1075,    0, 1066, 1069, 1061, 1073, 1070,
  543.         0,    0, 1066, 1069,    0,    0, 1064, 1037,    0,  619,
  544.  
  545.         0, 1052, 1089, 1036, 1035, 1070, 1065, 1052,    0, 1051,
  546.         0,    0,  645,    0, 1061, 1046, 1055,    0, 1030, 1026,
  547.      1055,    0, 1051, 1026, 1022, 1053, 1040, 1038,    0,    0,
  548.       664,    0, 1047, 1032,    0, 1044, 1044, 1036, 1008,  628,
  549.      1002,  992,  993,  991,    0, 1010, 1026, 1008, 1003, 1004,
  550.      1009,    0, 1010,    0,  982,    0, 1007,    0,  978,  989,
  551.      1002,  990,  984,  979,  983,    0,    0,    0,    0,    0,
  552.       946,  941,  950,  941,  964,  968,  964,  973,  958,  957,
  553.       971,  943,  969,  941,  952,  955,  951,  960,  945,  944,
  554.       701,  921,  912,  911,  933,  943,  929,  933,  920,    0,
  555.  
  556.       928,  900,  926,  898,  911,  922,  911,  916,  908,    0,
  557.       888,  884,  886,  874,  873,  885,  899,  887,    0,  891,
  558.       885,  856,  882,  854,  866,  880,  868,    0,  880,  831,
  559.        27,   74,    0,    0,    0,  108,  285,  307,  327,  465,
  560.       501,  478,    0,  560,  612,  624,  613,  635,  633,  650,
  561.       678,    0,  676,  652,  679,  654,  674,  705,    0,  715,
  562.       716,  704,  737,  747,    0,    0,    0,    0,  744,  756,
  563.         0,    0,  782,  750,  765,  761,  774,  754,  785,  786,
  564.       790,  797,  777,  813,  817,  821,  829,  795,  819,  834,
  565.       821,  836,  806,  827,  821,  829,  824,    0,  826,  837,
  566.  
  567.       829,  853,    0,  849,    0,  857,  859,  860,    0,    0,
  568.      1758, 1630, 1637, 1642, 1649, 1654, 1658, 1662,  893, 1664,
  569.      1668, 1675, 1679, 1683, 1687, 1691, 1695, 1699, 1703, 1707,
  570.      1714, 1721, 1728, 1735, 1742
  571.     } ;
  572.  
  573. static const short int yy_def[936] =
  574.     {   0,
  575.       912,  912,  913,  913,  911,    5,  911,    7,  912,  912,
  576.         7,   11,  911,   13,  911,   15,  911,  911,  911,  914,
  577.       915,  916,  911,  916,  911,  911,  917,  911,  911,  911,
  578.       911,  911,  917,  917,  917,  917,  917,  917,   38,  917,
  579.       911,  911,  917,  911,  911,   38,   38,   38,   38,   38,
  580.        38,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  581.       917,   38,  917,  917,  917,  911,  911,  911,  917,  918,
  582.       911,  911,  911,  918,  918,  911,   76,  911,  911,  918,
  583.        80,   80,  918,  918,  911,  911,   80,  918,  918,  918,
  584.       919,  919,   90,   90,   90,   90,   90,   90,  918,  918,
  585.  
  586.       918,  918,  918,  918,  918,  918,   90,   90,  918,  918,
  587.       911,  920,  911,  911,  920,  911,  920,  911,  921,  922,
  588.       921,  911,  921,  123,  123,  123,  123,  123,  921,  921,
  589.       921,  921,  921,  921,  123,  123,  123,  123,  921,  921,
  590.       921,  921,  914,  915,  911,  916,  917,  923,  924,  917,
  591.       925,  917,  926,  917,  917,  927,  917,  917,  928,  917,
  592.       917,  917,  917,  917,  917,  917,  917,  917,  917,  929,
  593.       917,  917,  917,  917,  917,  917,  917,  917,  930,  911,
  594.       911,   38,   38,  911,  911,  911,  917,  917,  917,  917,
  595.        38,  911,  911,  917,  911,  911,   38,   38,  917,  917,
  596.  
  597.       917,  917,  917,  917,   38,  917,  917,  917,  917,  917,
  598.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  599.       917,  917,  917,  917,  917,  917,  917,   38,  917,  917,
  600.       917,  911,  911,  918,  918,  235,  911,  911,  918,   76,
  601.        76,  911,  911,   92,  911,  235,  246,  246,  918,  918,
  602.       918,  918,  246,  246,  918,  918,  918,  246,  918,   90,
  603.        90,   92,   90,   90,  918,  918,  918,  918,   90,  918,
  604.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  605.       918,  918,  918,  918,  918,  918,  918,  918,  918,   90,
  606.       918,  918,  920,  117,  117,  920,  921,  921,  298,  931,
  607.  
  608.       298,  301,  301,  921,  921,  921,  301,  921,  921,  921,
  609.       921,  921,  921,  921,  921,  921,  921,  301,  921,  921,
  610.       921,  921,  921,  921,  921,  921,  923,  924,  924,  917,
  611.       917,  925,  917,  926,  917,  927,  928,  928,  928,  928,
  612.       917,  917,  917,  917,  917,  929,  917,  917,  917,  930,
  613.       911,  911,  917,   38,  917,  917,  917,  917,  917,  917,
  614.        38,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  615.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  616.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  617.       917,   90,  918,  246,  918,  246,  918,  918,  918,  918,
  618.  
  619.       918,   90,  918,  918,  918,  918,  918,   90,  918,  918,
  620.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  621.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  622.       918,  918,  918,  117,  921,  921,  921,  921,  921,  921,
  623.       921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
  624.       921,  921,  921,  921,  921,  921,  921,  924,  917,  928,
  625.       928,  928,  917,  917,  917,  917,  917,  917,  917,  917,
  626.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  627.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  628.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  629.  
  630.       917,  917,  917,  918,  918,  918,  918,  918,  918,  918,
  631.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  632.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  633.       918,  918,  918,  918,  918,  918,  918,  918,  435,  921,
  634.       921,  921,  921,  921,  921,  932,  921,  921,  921,  921,
  635.       921,  921,  921,  921,  921,  933,  921,  921,  921,  921,
  636.       924,  928,  928,  928,  917,  917,  917,  917,  917,  917,
  637.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  638.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  639.       917,  917,  917,  917,  917,  917,  917,  917,  918,  918,
  640.  
  641.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  642.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  643.       918,  918,  918,  918,  918,  918,  921,  921,  921,  921,
  644.       934,  932,  921,  921,  921,  921,  921,  935,  933,  921,
  645.       924,  928,  928,  917,  917,  917,  917,  917,  917,  917,
  646.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  647.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  648.       917,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  649.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  650.       918,  918,  921,  921,  921,  921,  921,  921,  921,  917,
  651.  
  652.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  653.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  654.       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
  655.       918,  918,  918,  918,  918,  921,  921,  921,  921,  911,
  656.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  657.       917,  917,  917,  917,  917,  918,  918,  918,  918,  918,
  658.       918,  918,  918,  918,  918,  918,  921,  921,  921,  921,
  659.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  660.       917,  917,  918,  918,  918,  918,  918,  918,  918,  918,
  661.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  662.  
  663.       917,  917,  918,  918,  918,  918,  918,  918,  918,  918,
  664.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  665.       917,  917,  918,  918,  918,  918,  918,  918,  918,  917,
  666.       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
  667.       918,  918,  918,  918,  918,  918,  917,  917,  917,  917,
  668.       917,  917,  917,  917,  918,  918,  918,  918,  918,  917,
  669.       917,  917,  917,  917,  917,  917,  918,  918,  918,  918,
  670.       917,  917,  917,  917,  917,  918,  918,  917,  917,  917,
  671.       918,  918,  917,  917,  917,  918,  918,  917,  917,  917,
  672.       918,  918,  917,  917,  917,  918,  918,  917,  917,  917,
  673.  
  674.       918,  918,  917,  917,  918,  918,  917,  918,  917,  918,
  675.         0,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  676.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  677.       911,  911,  911,  911,  911
  678.     } ;
  679.  
  680. static const short int yy_nxt[1837] =
  681.     {   0,
  682.        18,   19,   18,   20,   21,  911,   18,   20,   18,   18,
  683.        18,  184,  143,   23,  911,   24,  143,  143,  911,   18,
  684.        20,  143,   20,   18,  180,  185,  180,  192,  193,  143,
  685.       205,  143,  195,  196,  143,  201,  143,  189,  358,  203,
  686.       359,  204,  197,  206,  198,  213,  202,  215,  207,  232,
  687.       208,  216,  199,  209,  217,  214,  210,  219,  180,  200,
  688.       220,  221,  279,  322,  218,  381,  280,  382,  323,  239,
  689.       911,  147,  147,  147,   18,   18,   18,   18,   19,   18,
  690.        20,   21,  147,   18,   20,   18,   18,   18,  147,  147,
  691.        23,  222,   24,  228,  223,  224,   18,   20,  848,   20,
  692.  
  693.        18,  361,  261,  233,  253,  225,  253,  255,  253,  226,
  694.       253,  254,  147,  253,  234,  253,  470,  256,  234,  277,
  695.       250,  234,  250,  234,  267,  234,  268,  255,  282,  278,
  696.       234,  283,  284,  307,  303,  303,  311,  281,  849,  303,
  697.       258,  308,  312,  147,  297,  297,  250,  147,  250,  297,
  698.       850,   18,   18,   18,   18,   19,   25,   26,   21,   27,
  699.        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
  700.        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
  701.        48,   49,   50,   51,   36,   52,   53,   36,   36,   54,
  702.        55,   56,   57,   36,   36,   58,   59,   36,   36,   36,
  703.  
  704.        36,   36,   60,   61,   36,   62,   39,   39,   39,   39,
  705.        39,   36,   36,   36,   36,   63,   36,   36,   64,   36,
  706.        36,   65,   36,   36,   36,   36,   36,   36,   66,   67,
  707.        68,   69,   18,   19,   25,   26,   21,   70,   28,   29,
  708.        30,   31,   32,   71,   72,   73,   74,   75,   76,   77,
  709.        78,   41,   42,   79,   44,   45,   80,   81,   81,   82,
  710.        81,   81,   74,   74,   74,   74,   74,   74,   74,   83,
  711.        74,   74,   74,   84,   74,   74,   74,   74,   74,   74,
  712.        85,   86,   74,   87,   81,   81,   81,   81,   81,   74,
  713.        74,   74,   74,   74,   74,   74,   74,   74,   74,   88,
  714.  
  715.        74,   74,   74,   74,   74,   74,   66,   67,   68,   89,
  716.        90,  333,  333,  330,  353,  388,  333,  333,  376,  147,
  717.       354,   91,   92,  331,  377,  243,  243,  243,  243,   93,
  718.        94,   95,   96,   97,   98,  851,   99,  100,  303,  422,
  719.       101,  102,  103,  104,  147,  398,  105,  106,  297,  852,
  720.       309,  243,  243,  243,  243,  303,  107,  108,  108,  108,
  721.       108,  108,  244,  911,  147,  297,  109,  853,  310,  110,
  722.        18,  111,   18,   18,   18,  112,   18,   18,   18,   18,
  723.        18,  113,   18,  114,  115,  115,   91,   92,   18,   18,
  724.        18,  116,   18,   18,  117,  117,  117,  117,  117,  117,
  725.  
  726.       115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
  727.       115,  115,  115,  115,  115,  115,  115,  115,   18,   18,
  728.       115,  117,  117,  117,  117,  117,  117,  115,  115,  115,
  729.       115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
  730.       115,  115,  115,  115,   18,   18,   18,  115,   18,   19,
  731.       118,   18,   18,  119,   18,   18,   18,   18,  120,   18,
  732.        72,   18,  121,  121,   76,   77,   18,   18,   18,  122,
  733.        18,   18,  123,  124,  125,  126,  127,  128,  121,  121,
  734.       121,  121,  121,  129,  121,  130,  131,  132,  121,  133,
  735.       134,  121,  121,  121,  121,  121,   18,   18,  121,  135,
  736.  
  737.       126,  136,  126,  137,  138,  121,  121,  121,  121,  139,
  738.       121,  140,  141,  121,  121,  142,  121,  121,  121,  121,
  739.       121,  121,   18,   18,   18,  121,  147,  338,  342,  339,
  740.       343,  854,  147,  147,  147,  147,  147,  147,  147,  147,
  741.       344,  855,  147,  340,  856,  148,  149,  147,  147,  150,
  742.       151,  152,  147,  147,  147,  147,  153,  154,  155,  156,
  743.       147,  157,  158,  159,  160,  161,  162,  147,  147,  147,
  744.       147,  147,  147,  163,  164,  165,  166,  167,  168,  147,
  745.       169,  147,  170,  147,  171,  172,  147,  173,  174,  175,
  746.       176,  177,  178,  179,  147,  405,  303,  406,  147,  182,
  747.  
  748.       183,  285,  857,  477,  286,  257,  297,  183,  183,  183,
  749.       183,  183,  183,  261,  426,  287,  427,  303,  466,  288,
  750.       740,  740,  541,  318,  649,  467,  261,  297,  542,  740,
  751.       740,  250,  265,  250,  183,  183,  183,  183,  183,  183,
  752.       183,  183,  147,  266,  250,  261,  250,  271,  183,  183,
  753.       183,  183,  183,  183,  263,  320,  264,  250,  190,  250,
  754.       190,  650,  858,  250,  251,  250,  859,  261,  860,  749,
  755.       250,  252,  250,  303,  750,  183,  183,  183,  183,  183,
  756.       183,  261,  303,  297,  190,  250,  190,  250,  763,  250,
  757.       861,  250,  297,  764,  862,  191,  235,  236,  261,  250,
  758.  
  759.       863,  250,  864,  290,  236,  236,  236,  236,  236,  236,
  760.       269,  250,  321,  250,  811,  319,  250,  865,  250,  866,
  761.       867,  868,  143,  270,  869,  250,  143,  250,  147,  870,
  762.       147,  236,  236,  236,  236,  236,  236,  240,  240,  143,
  763.       368,  143,  250,  369,  250,  240,  241,  240,  241,  240,
  764.       240,  812,  242,  370,  147,  243,  147,  243,  911,  242,
  765.       911,  293,  305,  293,  305,  147,  242,  415,  871,  872,
  766.       416,  873,  240,  240,  240,  240,  240,  240,  874,  261,
  767.       417,  243,  875,  243,  911,  876,  911,  293,  305,  293,
  768.       305,  877,  244,  246,  246,  878,  879,  250,  261,  250,
  769.  
  770.       880,  246,  247,  246,  248,  246,  246,  881,  249,  882,
  771.       883,  250,  251,  250,  272,  249,  250,  273,  250,  252,
  772.       274,  884,  249,  250,  885,  250,  886,  261,  246,  246,
  773.       246,  246,  246,  246,  392,  887,  888,  250,  889,  250,
  774.       260,  261,  250,  890,  250,  250,  891,  250,  261,  261,
  775.       261,  261,  261,  261,  261,  892,  893,  894,  895,  896,
  776.       897,  898,  899,  900,  901,  402,  902,  903,  261,  904,
  777.       905,  250,  250,  250,  250,  261,  261,  261,  261,  261,
  778.       261,  294,  295,  261,  507,  906,  250,  907,  250,  295,
  779.       295,  295,  295,  295,  295,  908,  909,  910,  250,  262,
  780.  
  781.       250,  250,  847,  250,  846,  845,  844,  843,  393,  842,
  782.       841,  840,  250,  839,  250,  838,  295,  295,  295,  295,
  783.       295,  295,  295,  295,  837,  836,  835,  250,  261,  250,
  784.       295,  295,  295,  295,  295,  295,  834,  833,  832,  831,
  785.       296,  408,  296,  830,  829,  261,  250,  828,  250,  827,
  786.       826,  825,  824,  823,  822,  821,  820,  295,  295,  295,
  787.       295,  295,  295,  250,  819,  250,  296,  818,  296,  298,
  788.       299,  817,  250,  816,  250,  815,  814,  299,  299,  299,
  789.       299,  299,  299,  813,  810,  809,  808,  807,  806,  250,
  790.       805,  250,  804,  803,  802,  801,  400,  800,  799,  798,
  791.  
  792.       797,  796,  795,  794,  299,  299,  299,  299,  299,  299,
  793.       301,  301,  793,  792,  791,  790,  261,  789,  301,  302,
  794.       301,  303,  301,  301,  788,  304,  787,  786,  305,  306,
  795.       305,  785,  304,  784,  250,  783,  250,  782,  781,  304,
  796.       505,  780,  779,  778,  777,  301,  301,  301,  301,  301,
  797.       301,  776,  775,  774,  305,  773,  305,  236,  236,  772,
  798.       250,  771,  250,  770,  769,  236,  236,  236,  236,  236,
  799.       236,  768,  767,  766,  765,  250,  762,  250,  761,  760,
  800.       759,  758,  757,  756,  755,  754,  753,  752,  751,  748,
  801.       747,  746,  236,  236,  236,  236,  236,  236,  745,  744,
  802.  
  803.       743,  250,  742,  250,  741,  739,  738,  737,  736,  735,
  804.       734,  733,  392,  246,  246,  732,  731,  730,  729,  728,
  805.       727,  246,  253,  246,  253,  246,  246,  726,  249,  725,
  806.       724,  723,  722,  721,  720,  249,  719,  718,  717,  716,
  807.       715,  714,  249,  713,  712,  711,  710,  709,  246,  246,
  808.       246,  246,  246,  246,  708,  707,  706,  705,  704,  703,
  809.       702,  701,  700,  699,  698,  697,  696,  695,  234,  299,
  810.       299,  694,  693,  692,  691,  690,  689,  299,  299,  299,
  811.       299,  299,  299,  688,  687,  686,  685,  305,  684,  305,
  812.       683,  682,  681,  680,  679,  678,  677,  676,  675,  674,
  813.  
  814.       673,  672,  671,  670,  299,  299,  299,  299,  299,  299,
  815.       669,  668,  667,  305,  666,  305,  665,  664,  663,  662,
  816.       661,  660,  659,  658,  435,  301,  301,  657,  656,  655,
  817.       654,  653,  652,  301,  303,  301,  303,  301,  301,  651,
  818.       304,  648,  647,  646,  645,  644,  643,  304,  642,  641,
  819.       640,  637,  636,  635,  304,  634,  633,  630,  629,  628,
  820.       301,  301,  301,  301,  301,  301,  627,  626,  625,  624,
  821.       623,  622,  621,  620,  619,  618,  617,  616,  615,  614,
  822.       297,  539,  539,  613,  612,  611,  610,  609,  608,  539,
  823.       539,  539,  539,  539,  539,  607,  606,  605,  604,  603,
  824.  
  825.       602,  601,  600,  599,  598,  597,  596,  595,  594,  593,
  826.       592,  591,  590,  589,  588,  587,  539,  539,  539,  539,
  827.       539,  539,  631,  631,  586,  631,  631,  585,  631,  631,
  828.       631,  631,  631,  584,  631,  583,  582,  581,  580,  579,
  829.       578,  631,  631,  631,  631,  631,  577,  576,  575,  574,
  830.       573,  572,  571,  570,  569,  568,  567,  566,  565,  564,
  831.       563,  562,  561,  560,  559,  558,  557,  556,  555,  554,
  832.       553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
  833.       543,  540,  538,  537,  536,  535,  534,  533,  532,  531,
  834.       530,  529,  528,  527,  526,  525,  631,  631,  631,  638,
  835.  
  836.       638,  524,  638,  638,  523,  638,  638,  638,  638,  638,
  837.       522,  638,  521,  520,  519,  518,  517,  516,  638,  638,
  838.       638,  638,  638,  515,  514,  513,  512,  511,  510,  509,
  839.       508,  507,  506,  505,  504,  261,  503,  502,  501,  500,
  840.       499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
  841.       489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
  842.       479,  478,  476,  475,  474,  473,  472,  471,  469,  468,
  843.       465,  464,  463,  638,  638,  638,  631,  631,  462,  631,
  844.       631,  461,  631,  631,  631,  631,  631,  460,  631,  459,
  845.       458,  457,  456,  455,  454,  631,  631,  631,  631,  631,
  846.  
  847.       453,  452,  451,  450,  449,  448,  447,  446,  445,  444,
  848.       443,  442,  441,  440,  439,  438,  437,  436,  297,  434,
  849.       433,  432,  431,  430,  429,  428,  425,  424,  423,  421,
  850.       420,  419,  418,  414,  413,  412,  411,  410,  409,  407,
  851.       404,  403,  401,  400,  399,  398,  397,  396,  395,  394,
  852.       631,  631,  631,  638,  638,  393,  638,  638,  911,  638,
  853.       638,  638,  638,  638,  911,  638,  234,  391,  390,  389,
  854.       387,  386,  638,  638,  638,  638,  638,  385,  384,  383,
  855.       380,  379,  378,  375,  374,  373,  372,  371,  367,  366,
  856.       365,  364,  363,  362,  360,  357,  356,  355,  352,  351,
  857.  
  858.       147,  349,  348,  347,  345,  341,  335,  329,  145,  326,
  859.       325,  324,  317,  316,  315,  314,  313,  292,  291,  289,
  860.       276,  275,  259,  257,  245,  911,  238,  638,  638,  638,
  861.        18,   18,   18,   18,   18,   18,   18,   22,   22,   22,
  862.        22,   22,   22,   22,  143,  143,  143,  143,  143,  144,
  863.       144,  144,  144,  144,  144,  144,  146,  146,  146,  146,
  864.       146,  147,  147,  147,  147,  234,  234,  234,  234,  293,
  865.       293,  297,  237,  297,  297,  300,  231,  300,  300,  300,
  866.       300,  300,  327,  327,  327,  327,  328,  328,  328,  328,
  867.       332,  332,  332,  332,  334,  334,  334,  334,  336,  336,
  868.  
  869.       336,  336,  337,  337,  337,  337,  346,  346,  346,  346,
  870.       350,  350,  350,  350,  300,  230,  300,  300,  300,  300,
  871.       300,  632,  229,  632,  632,  632,  632,  632,  639,  227,
  872.       639,  639,  639,  639,  639,  631,  212,  631,  631,  631,
  873.       631,  631,  638,  211,  638,  638,  638,  638,  638,  194,
  874.       147,  188,  187,  186,  181,  145,  911,   17,  911,  911,
  875.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  876.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  877.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  878.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  879.  
  880.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  881.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  882.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  883.       911,  911,  911,  911,  911,  911
  884.     } ;
  885.  
  886. static const short int yy_chk[1837] =
  887.     {   0,
  888.         3,    3,    3,    3,    3,    0,    3,    3,    3,    3,
  889.         3,   29,   22,    3,    0,    3,   22,   24,    0,    3,
  890.         3,   24,    3,    3,   24,   29,   37,   42,   42,   22,
  891.        49,   22,   44,   44,   24,   47,   24,   37,  203,   48,
  892.       203,   48,   46,   49,   46,   54,   47,   55,   50,   67,
  893.        51,   55,   46,   51,   56,   54,   51,   57,   75,   46,
  894.        57,   57,  102,  139,   56,  222,  102,  222,  139,   75,
  895.         0,   47,   48,   49,    3,    3,    3,    4,    4,    4,
  896.         4,    4,   50,    4,    4,    4,    4,    4,   46,   51,
  897.         4,   58,    4,   62,   58,   58,    4,    4,  831,    4,
  898.  
  899.         4,  205,   95,   67,   81,   58,   81,   83,   82,   58,
  900.        82,   82,   62,   87,   81,   87,  354,   83,   82,  101,
  901.        95,   81,   95,   87,   95,   82,   95,  103,  104,  101,
  902.        87,  104,  104,  124,  124,  125,  129,  103,  832,  126,
  903.        87,  125,  129,  205,  124,  125,   95,  354,   95,  126,
  904.       836,    4,    4,    4,    5,    5,    5,    5,    5,    5,
  905.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  906.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  907.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  908.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  909.  
  910.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  911.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  912.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  913.         5,    5,    7,    7,    7,    7,    7,    7,    7,    7,
  914.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  915.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  916.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  917.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  918.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  919.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  920.  
  921.         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  922.        11,  152,  152,  150,  197,  228,  333,  333,  218,  228,
  923.       198,   11,   11,  150,  218,   91,   92,   91,   92,   11,
  924.        11,   11,   11,   11,   11,  837,   11,   11,  127,  281,
  925.        11,   11,   11,   11,  197,  281,   11,   11,  127,  838,
  926.       127,   91,   92,   91,   92,  128,   11,   11,   11,   11,
  927.        11,   11,   91,   92,  198,  128,   11,  839,  128,   11,
  928.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  929.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  930.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  931.  
  932.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  933.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  934.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  935.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  936.        13,   13,   13,   13,   13,   13,   13,   13,   15,   15,
  937.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  938.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  939.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  940.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  941.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  942.  
  943.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  944.        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  945.        15,   15,   15,   15,   15,   15,   23,  159,  165,  159,
  946.       165,  840,   23,   23,   23,   23,   23,   23,   23,   23,
  947.       165,  841,   23,  159,  842,   23,   23,   23,   23,   23,
  948.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  949.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  950.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  951.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  952.        23,   23,   23,   23,   23,  267,  135,  267,   23,   27,
  953.  
  954.        27,  105,  844,  361,  105,  105,  135,   27,   27,   27,
  955.        27,   27,   27,   94,  285,  105,  285,  137,  348,  105,
  956.       700,  700,  437,  135,  570,  348,   97,  137,  437,  740,
  957.       740,   94,   94,   94,   27,   27,   27,   27,   27,   27,
  958.        38,   38,  361,   94,   97,   93,   97,   97,   38,   38,
  959.        38,   38,   38,   38,   93,  137,   93,   94,   38,   94,
  960.        38,  570,  845,   93,   93,   93,  846,  107,  847,  713,
  961.        97,   93,   97,  138,  713,   38,   38,   38,   38,   38,
  962.        38,  108,  136,  138,   38,  107,   38,  107,  731,   93,
  963.       848,   93,  136,  731,  849,   38,   70,   70,   96,  108,
  964.  
  965.       850,  108,  851,  107,   70,   70,   70,   70,   70,   70,
  966.        96,  107,  138,  107,  791,  136,   96,  853,   96,  854,
  967.       855,  856,  146,   96,  857,  108,  146,  108,  191,  858,
  968.       191,   70,   70,   70,   70,   70,   70,   76,   76,  146,
  969.       212,  146,   96,  212,   96,   76,   76,   76,   76,   76,
  970.        76,  791,   76,  212,  191,   76,  191,   76,  244,   76,
  971.       244,  434,  539,  434,  539,  191,   76,  276,  860,  861,
  972.       276,  862,   76,   76,   76,   76,   76,   76,  863,  260,
  973.       276,   76,  864,   76,  244,  869,  244,  434,  539,  434,
  974.       539,  870,   76,   80,   80,  873,  874,  260,   98,  260,
  975.  
  976.       875,   80,   80,   80,   80,   80,   80,  876,   80,  877,
  977.       878,   80,   80,   80,   98,   80,   98,   98,   98,   80,
  978.        98,  879,   80,  260,  880,  260,  881,  261,   80,   80,
  979.        80,   80,   80,   80,  260,  882,  883,   80,  884,   80,
  980.        90,   90,   98,  885,   98,  261,  886,  261,   90,   90,
  981.        90,   90,   90,   90,  264,  887,  888,  889,  890,  891,
  982.       892,  893,  894,  895,  896,  264,  897,  899,  408,  900,
  983.       901,  261,  264,  261,  264,   90,   90,   90,   90,   90,
  984.        90,  112,  112,  263,  408,  902,  408,  904,  408,  112,
  985.       112,  112,  112,  112,  112,  906,  907,  908,  264,  919,
  986.  
  987.       264,  263,  830,  263,  829,  827,  826,  825,  263,  824,
  988.       823,  822,  408,  821,  408,  820,  112,  112,  112,  112,
  989.       112,  112,  117,  117,  818,  817,  816,  263,  269,  263,
  990.       117,  117,  117,  117,  117,  117,  815,  814,  813,  812,
  991.       117,  269,  117,  811,  809,  290,  269,  808,  269,  807,
  992.       806,  805,  804,  803,  802,  801,  799,  117,  117,  117,
  993.       117,  117,  117,  290,  798,  290,  117,  797,  117,  119,
  994.       119,  796,  269,  795,  269,  794,  793,  119,  119,  119,
  995.       119,  119,  119,  792,  790,  789,  788,  787,  786,  290,
  996.       785,  290,  784,  783,  782,  781,  290,  780,  779,  778,
  997.  
  998.       777,  776,  775,  774,  119,  119,  119,  119,  119,  119,
  999.       123,  123,  773,  772,  771,  765,  402,  764,  123,  123,
  1000.       123,  123,  123,  123,  763,  123,  762,  761,  123,  123,
  1001.       123,  760,  123,  759,  402,  757,  402,  755,  753,  123,
  1002.       402,  751,  750,  749,  748,  123,  123,  123,  123,  123,
  1003.       123,  747,  746,  744,  123,  743,  123,  235,  235,  742,
  1004.       402,  741,  402,  739,  738,  235,  235,  235,  235,  235,
  1005.       235,  737,  736,  734,  733,  235,  728,  235,  727,  726,
  1006.       725,  724,  723,  721,  720,  719,  717,  716,  715,  710,
  1007.       708,  707,  235,  235,  235,  235,  235,  235,  706,  705,
  1008.  
  1009.       704,  235,  703,  235,  702,  698,  697,  694,  693,  690,
  1010.       689,  688,  235,  246,  246,  687,  686,  684,  681,  680,
  1011.       679,  246,  246,  246,  246,  246,  246,  678,  246,  677,
  1012.       676,  675,  673,  672,  671,  246,  670,  667,  666,  665,
  1013.       664,  663,  246,  662,  659,  656,  655,  654,  246,  246,
  1014.       246,  246,  246,  246,  653,  652,  651,  650,  649,  648,
  1015.       646,  645,  644,  637,  636,  635,  634,  630,  246,  298,
  1016.       298,  629,  627,  626,  625,  624,  622,  298,  298,  298,
  1017.       298,  298,  298,  621,  620,  619,  618,  298,  617,  298,
  1018.       616,  615,  613,  612,  608,  607,  605,  604,  603,  602,
  1019.  
  1020.       601,  599,  598,  597,  298,  298,  298,  298,  298,  298,
  1021.       596,  595,  594,  298,  593,  298,  591,  590,  589,  588,
  1022.       587,  586,  585,  584,  298,  301,  301,  583,  581,  580,
  1023.       576,  575,  574,  301,  301,  301,  301,  301,  301,  571,
  1024.       301,  569,  568,  567,  566,  565,  564,  301,  563,  561,
  1025.       559,  555,  553,  552,  301,  550,  549,  545,  542,  541,
  1026.       301,  301,  301,  301,  301,  301,  540,  538,  537,  536,
  1027.       535,  534,  533,  532,  531,  530,  529,  528,  526,  525,
  1028.       301,  435,  435,  523,  522,  521,  519,  518,  517,  435,
  1029.       435,  435,  435,  435,  435,  515,  513,  512,  511,  510,
  1030.  
  1031.       509,  507,  506,  504,  503,  502,  501,  500,  499,  498,
  1032.       497,  496,  495,  494,  493,  492,  435,  435,  435,  435,
  1033.       435,  435,  546,  546,  491,  546,  546,  490,  546,  546,
  1034.       546,  546,  546,  488,  546,  486,  485,  483,  482,  481,
  1035.       479,  546,  546,  546,  546,  546,  478,  477,  476,  474,
  1036.       472,  471,  469,  468,  467,  466,  465,  464,  463,  462,
  1037.       461,  460,  458,  457,  456,  455,  454,  453,  452,  450,
  1038.       449,  448,  447,  446,  445,  444,  443,  442,  441,  439,
  1039.       438,  436,  431,  430,  429,  428,  427,  426,  425,  424,
  1040.       423,  422,  421,  419,  418,  417,  546,  546,  546,  556,
  1041.  
  1042.       556,  416,  556,  556,  415,  556,  556,  556,  556,  556,
  1043.       413,  556,  412,  411,  410,  409,  407,  406,  556,  556,
  1044.       556,  556,  556,  405,  404,  403,  401,  400,  399,  398,
  1045.       397,  396,  395,  394,  393,  392,  391,  388,  387,  386,
  1046.       385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
  1047.       375,  374,  372,  371,  370,  369,  368,  366,  365,  364,
  1048.       363,  362,  360,  359,  358,  357,  356,  355,  353,  349,
  1049.       347,  345,  343,  556,  556,  556,  632,  632,  340,  632,
  1050.       632,  339,  632,  632,  632,  632,  632,  338,  632,  335,
  1051.       329,  326,  325,  324,  323,  632,  632,  632,  632,  632,
  1052.  
  1053.       322,  321,  320,  319,  318,  317,  316,  315,  314,  313,
  1054.       312,  311,  310,  309,  308,  307,  306,  302,  299,  294,
  1055.       292,  291,  289,  288,  287,  286,  284,  283,  282,  280,
  1056.       279,  278,  277,  275,  274,  273,  272,  271,  270,  268,
  1057.       266,  265,  259,  258,  257,  256,  255,  254,  251,  248,
  1058.       632,  632,  632,  639,  639,  247,  639,  639,  241,  639,
  1059.       639,  639,  639,  639,  240,  639,  236,  231,  230,  229,
  1060.       227,  226,  639,  639,  639,  639,  639,  225,  224,  223,
  1061.       221,  220,  219,  217,  216,  215,  214,  213,  211,  210,
  1062.       209,  208,  207,  206,  204,  202,  201,  199,  196,  192,
  1063.  
  1064.       183,  174,  173,  171,  167,  160,  154,  149,  144,  142,
  1065.       141,  140,  134,  133,  132,  131,  130,  110,  109,  106,
  1066.       100,   99,   88,   84,   79,   77,   73,  639,  639,  639,
  1067.       912,  912,  912,  912,  912,  912,  912,  913,  913,  913,
  1068.       913,  913,  913,  913,  914,  914,  914,  914,  914,  915,
  1069.       915,  915,  915,  915,  915,  915,  916,  916,  916,  916,
  1070.       916,  917,  917,  917,  917,  918,  918,  918,  918,  920,
  1071.       920,  921,   71,  921,  921,  922,   65,  922,  922,  922,
  1072.       922,  922,  923,  923,  923,  923,  924,  924,  924,  924,
  1073.       925,  925,  925,  925,  926,  926,  926,  926,  927,  927,
  1074.  
  1075.       927,  927,  928,  928,  928,  928,  929,  929,  929,  929,
  1076.       930,  930,  930,  930,  931,   64,  931,  931,  931,  931,
  1077.       931,  932,   63,  932,  932,  932,  932,  932,  933,   59,
  1078.       933,  933,  933,  933,  933,  934,   53,  934,  934,  934,
  1079.       934,  934,  935,   52,  935,  935,  935,  935,  935,   43,
  1080.        39,   35,   33,   32,   26,   21,   17,  911,  911,  911,
  1081.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1082.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1083.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1084.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1085.  
  1086.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1087.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1088.       911,  911,  911,  911,  911,  911,  911,  911,  911,  911,
  1089.       911,  911,  911,  911,  911,  911
  1090.     } ;
  1091.  
  1092. static yy_state_type yy_last_accepting_state;
  1093. static YY_CHAR *yy_last_accepting_cpos;
  1094.  
  1095. /* the intent behind this definition is that it'll catch
  1096.  * any uses of REJECT which flex missed
  1097.  */
  1098. #define REJECT reject_used_but_not_detected
  1099. #define yymore() yymore_used_but_not_detected
  1100. #define YY_MORE_ADJ 0
  1101. # line 255 "flex.skel"
  1102.  
  1103. /* these variables are all declared out here so that section 3 code can
  1104.  * manipulate them
  1105.  */
  1106. /* points to current character in buffer */
  1107. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  1108. static int yy_init = 1;        /* whether we need to initialize */
  1109. static int yy_start = 0;    /* start state number */
  1110.  
  1111. /* flag which is used to allow yywrap()'s to do buffer switches
  1112.  * instead of setting up a fresh yyin.  A bit of a hack ...
  1113.  */
  1114. static int yy_did_buffer_switch_on_eof;
  1115.  
  1116. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1117. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1118. static int yy_get_next_buffer YY_PROTO(( void ));
  1119. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  1120. void yyrestart YY_PROTO(( FILE *input_file ));
  1121. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  1122. void yy_load_buffer_state YY_PROTO(( void ));
  1123. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  1124. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  1125. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  1126.  
  1127. #define yy_new_buffer yy_create_buffer
  1128.  
  1129. #ifdef __cplusplus
  1130. static int yyinput YY_PROTO(( void ));
  1131. #else
  1132. static int input YY_PROTO(( void ));
  1133. #endif
  1134.  
  1135. YY_DECL
  1136.     {
  1137.     register yy_state_type yy_current_state;
  1138.     register YY_CHAR *yy_cp, *yy_bp;
  1139.     register int yy_act;
  1140.  
  1141.  
  1142.  
  1143.  
  1144. # line 296 "flex.skel"
  1145.  
  1146.     if ( yy_init )
  1147.     {
  1148.     YY_USER_INIT;
  1149.  
  1150.     if ( ! yy_start )
  1151.         yy_start = 1;    /* first start state */
  1152.  
  1153.     if ( ! yyin )
  1154.         yyin = stdin;
  1155.  
  1156.     if ( ! yyout )
  1157.         yyout = stdout;
  1158.  
  1159.     if ( yy_current_buffer )
  1160.         yy_init_buffer( yy_current_buffer, yyin );
  1161.     else
  1162.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1163.  
  1164.     yy_load_buffer_state();
  1165.  
  1166.     yy_init = 0;
  1167.     }
  1168.  
  1169.     while ( 1 )        /* loops until end-of-file is reached */
  1170.     {
  1171. # line 324 "flex.skel"
  1172.     yy_cp = yy_c_buf_p;
  1173.  
  1174.     /* support of yytext */
  1175.     *yy_cp = yy_hold_char;
  1176.  
  1177.     /* yy_bp points to the position in yy_ch_buf of the start of the
  1178.      * current run.
  1179.      */
  1180.     yy_bp = yy_cp;
  1181.  
  1182.     yy_current_state = yy_start;
  1183. yy_match:
  1184.     do
  1185.         {
  1186.         register YY_CHAR yy_c = yy_ec[*yy_cp];
  1187.         if ( yy_accept[yy_current_state] )
  1188.         {
  1189.         yy_last_accepting_state = yy_current_state;
  1190.         yy_last_accepting_cpos = yy_cp;
  1191.         }
  1192.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1193.         {
  1194.         yy_current_state = yy_def[yy_current_state];
  1195.         if ( yy_current_state >= 912 )
  1196.             yy_c = yy_meta[yy_c];
  1197.         }
  1198.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1199.         ++yy_cp;
  1200.         }
  1201.     while ( yy_base[yy_current_state] != 1758 );
  1202. # line 336 "flex.skel"
  1203.  
  1204. yy_find_action:
  1205.     yy_act = yy_accept[yy_current_state];
  1206. # line 340 "flex.skel"
  1207.  
  1208.     YY_DO_BEFORE_ACTION;
  1209.     YY_USER_ACTION;
  1210.  
  1211. do_action:    /* this label is used only to access EOF actions */
  1212.  
  1213. # line 348 "flex.skel"
  1214.  
  1215.     switch ( yy_act )
  1216.         {
  1217.         case 0: /* must backtrack */
  1218.         /* undo the effects of YY_DO_BEFORE_ACTION */
  1219.         *yy_cp = yy_hold_char;
  1220.         yy_cp = yy_last_accepting_cpos;
  1221.         yy_current_state = yy_last_accepting_state;
  1222.         goto yy_find_action;
  1223.  
  1224. case 1:
  1225. # line 93 "./ldlex.l"
  1226. { comment(); }
  1227.     YY_BREAK
  1228. case 2:
  1229. # line 96 "./ldlex.l"
  1230. { RTOKEN('-');}
  1231.     YY_BREAK
  1232. case 3:
  1233. # line 97 "./ldlex.l"
  1234. { RTOKEN('+');}
  1235.     YY_BREAK
  1236. case 4:
  1237. # line 98 "./ldlex.l"
  1238. { yylval.name = buystring(yytext); return NAME; }
  1239.     YY_BREAK
  1240. case 5:
  1241. # line 99 "./ldlex.l"
  1242. { RTOKEN(DEFSYMEND); }
  1243.     YY_BREAK
  1244. case 6:
  1245. # line 100 "./ldlex.l"
  1246. { RTOKEN('='); }
  1247.     YY_BREAK
  1248. case 7:
  1249. # line 101 "./ldlex.l"
  1250. { return OPTION_defsym; }
  1251.     YY_BREAK
  1252. case 8:
  1253. # line 102 "./ldlex.l"
  1254. { return OPTION_noinhibit_exec; }
  1255.     YY_BREAK
  1256. case 9:
  1257. # line 103 "./ldlex.l"
  1258. { return OPTION_noinhibit_exec; }
  1259.     YY_BREAK
  1260. case 10:
  1261. # line 104 "./ldlex.l"
  1262. { return OPTION_sort_common;}
  1263.     YY_BREAK
  1264. case 11:
  1265. # line 105 "./ldlex.l"
  1266. { return OPTION_sort_common;}
  1267.     YY_BREAK
  1268. case 12:
  1269. # line 106 "./ldlex.l"
  1270. { return OPTION_format; }
  1271.     YY_BREAK
  1272. case 13:
  1273. # line 107 "./ldlex.l"
  1274. { return OPTION_n; }
  1275.     YY_BREAK
  1276. case 14:
  1277. # line 108 "./ldlex.l"
  1278. { return OPTION_N; }
  1279.     YY_BREAK
  1280. case 15:
  1281. # line 109 "./ldlex.l"
  1282. { return OPTION_r; }
  1283.     YY_BREAK
  1284. case 16:
  1285. # line 110 "./ldlex.l"
  1286. { return OPTION_relax; }
  1287.     YY_BREAK
  1288. case 17:
  1289. # line 111 "./ldlex.l"
  1290. { return OPTION_r; }
  1291.     YY_BREAK
  1292. case 18:
  1293. # line 112 "./ldlex.l"
  1294. { return OPTION_Ur; }
  1295.     YY_BREAK
  1296. case 19:
  1297. # line 113 "./ldlex.l"
  1298. { return OPTION_o; }
  1299.     YY_BREAK
  1300. case 20:
  1301. # line 114 "./ldlex.l"
  1302. { return OPTION_g; }
  1303.     YY_BREAK
  1304. case 21:
  1305. # line 115 "./ldlex.l"
  1306. { return OPTION_e; }
  1307.     YY_BREAK
  1308. case 22:
  1309. # line 116 "./ldlex.l"
  1310. { return OPTION_b; }
  1311.     YY_BREAK
  1312. case 23:
  1313. # line 117 "./ldlex.l"
  1314. { return OPTION_dc; }
  1315.     YY_BREAK
  1316. case 24:
  1317. # line 118 "./ldlex.l"
  1318. { return OPTION_dp; }
  1319.     YY_BREAK
  1320. case 25:
  1321. # line 119 "./ldlex.l"
  1322. { return OPTION_d; }
  1323.     YY_BREAK
  1324. case 26:
  1325. # line 120 "./ldlex.l"
  1326. { return OPTION_v; }
  1327.     YY_BREAK
  1328. case 27:
  1329. # line 121 "./ldlex.l"
  1330. { return OPTION_V; }
  1331.     YY_BREAK
  1332. case 28:
  1333. # line 122 "./ldlex.l"
  1334. { return OPTION_M; }
  1335.     YY_BREAK
  1336. case 29:
  1337. # line 123 "./ldlex.l"
  1338. { return OPTION_Map;}
  1339.     YY_BREAK
  1340. case 30:
  1341. # line 124 "./ldlex.l"
  1342. { return OPTION_t; }
  1343.     YY_BREAK
  1344. case 31:
  1345. # line 125 "./ldlex.l"
  1346. { return OPTION_X; }
  1347.     YY_BREAK
  1348. case 32:
  1349. # line 126 "./ldlex.l"
  1350. { return OPTION_x; }
  1351.     YY_BREAK
  1352. case 33:
  1353. # line 127 "./ldlex.l"
  1354. { return OPTION_c; }
  1355.     YY_BREAK
  1356. case 34:
  1357. # line 128 "./ldlex.l"
  1358. { return OPTION_R; }
  1359.     YY_BREAK
  1360. case 35:
  1361. # line 129 "./ldlex.l"
  1362. { return OPTION_u; }
  1363.     YY_BREAK
  1364. case 36:
  1365. # line 130 "./ldlex.l"
  1366. { return OPTION_s; }
  1367.     YY_BREAK
  1368. case 37:
  1369. # line 131 "./ldlex.l"
  1370. { return OPTION_S; }
  1371.     YY_BREAK
  1372. case 38:
  1373. # line 132 "./ldlex.l"
  1374. { return OPTION_Bstatic; }
  1375.     YY_BREAK
  1376. case 39:
  1377. # line 133 "./ldlex.l"
  1378. { /* Ignored */ }
  1379.     YY_BREAK
  1380. case 40:
  1381. # line 134 "./ldlex.l"
  1382. {
  1383.                      yylval.name = buystring(yytext+2);
  1384.                       return OPTION_l; 
  1385.                 }
  1386.     YY_BREAK
  1387. case 41:
  1388. # line 139 "./ldlex.l"
  1389.                     yylval.name = buystring(yytext+2);
  1390.                     return OPTION_L; 
  1391.                 }
  1392.     YY_BREAK
  1393. case 42:
  1394. # line 143 "./ldlex.l"
  1395. {
  1396.                  yylval.name = ".text";
  1397.                  return OPTION_Texp;
  1398.                 }
  1399.     YY_BREAK
  1400. case 43:
  1401. # line 147 "./ldlex.l"
  1402. {
  1403.                  yylval.name = ".data";
  1404.                  return OPTION_Texp;
  1405.                    }
  1406.     YY_BREAK
  1407. case 44:
  1408. # line 151 "./ldlex.l"
  1409. {
  1410.                  yylval.name = ".bss";
  1411.                  return OPTION_Texp;
  1412.                    }
  1413.     YY_BREAK
  1414. case 45:
  1415. # line 155 "./ldlex.l"
  1416. {
  1417.                 yylval.name = buystring(yytext+2);
  1418.                 return OPTION_Texp;
  1419.                 }
  1420.     YY_BREAK
  1421. case 46:
  1422. # line 160 "./ldlex.l"
  1423. {
  1424.                  yylval.name = buystring(yytext+2);
  1425.                  return OPTION_Tfile;
  1426.                    }
  1427.     YY_BREAK
  1428. case 47:
  1429. # line 164 "./ldlex.l"
  1430. {
  1431.                  return OPTION_T;
  1432.                    }
  1433.     YY_BREAK
  1434. case 48:
  1435. # line 168 "./ldlex.l"
  1436. {
  1437.                  return OPTION_F;
  1438.                    }
  1439.     YY_BREAK
  1440. case 49:
  1441. # line 171 "./ldlex.l"
  1442. {
  1443.                  return OPTION_F;
  1444.                    }
  1445.     YY_BREAK
  1446. case 50:
  1447. # line 175 "./ldlex.l"
  1448. {
  1449.                     yylval.name = buystring(yytext+2);
  1450.                     return OPTION_y;
  1451.                 }
  1452.     YY_BREAK
  1453. case 51:
  1454. # line 180 "./ldlex.l"
  1455. {
  1456.                             yylval.name = buystring(yytext+2);
  1457.                      return OPTION_Aarch;
  1458.                        }
  1459.     YY_BREAK
  1460. case 52:
  1461. # line 185 "./ldlex.l"
  1462. { return OPTION_RETAIN_SYMBOLS_FILE; }
  1463.     YY_BREAK
  1464. case 53:
  1465. # line 187 "./ldlex.l"
  1466. {
  1467.                     return OPTION_EB;
  1468.                 }
  1469.     YY_BREAK
  1470. case 54:
  1471. # line 190 "./ldlex.l"
  1472. {
  1473.                     return OPTION_EL;
  1474.                 }
  1475.     YY_BREAK
  1476. case 55:
  1477. # line 193 "./ldlex.l"
  1478. {
  1479.                     return OPTION_G;
  1480.                 }
  1481.     YY_BREAK
  1482. case 56:
  1483. # line 196 "./ldlex.l"
  1484. {
  1485.                     yylval.integer = atoi (yytext + 2);
  1486.                     return OPTION_Gval;
  1487.                 }
  1488.     YY_BREAK
  1489. case 57:
  1490. # line 200 "./ldlex.l"
  1491. {
  1492.                   yylval.integer = strtoul(yytext+1, 0,16);
  1493.                 return INT;
  1494.             }
  1495.     YY_BREAK
  1496. case 58:
  1497. # line 205 "./ldlex.l"
  1498. {
  1499.                    int base ;
  1500.                    switch (yytext[yyleng-1]) {
  1501.                     case 'X': 
  1502.                     case 'H':
  1503.                      base = 16;
  1504.                      break;
  1505.                     case 'O':
  1506.                      base = 8;
  1507.                      break;
  1508.                     case 'B':
  1509.                      base = 2;
  1510.                      break;
  1511.                     default:
  1512.                      base = 10;
  1513.                    }
  1514.                    yylval.integer = strtoul(yytext+1, 0, base);    
  1515.                    return INT;
  1516.                  }
  1517.     YY_BREAK
  1518. case 59:
  1519. # line 224 "./ldlex.l"
  1520. {
  1521.                   yylval.integer = strtoul(yytext,0,hex_mode);
  1522.                   if (yytext[yyleng-1]=='M'
  1523.                     || yytext[yyleng-1] == 'm') {
  1524.                       yylval.integer *= 1024*1024;
  1525.                     }    
  1526.                   if (yytext[yyleng-1]=='K' 
  1527.                 || yytext[yyleng-1]=='k') {
  1528.                       yylval.integer *= 1024;
  1529.                     }        
  1530.                   return INT;
  1531.                 }
  1532.     YY_BREAK
  1533. case 60:
  1534. # line 236 "./ldlex.l"
  1535. { RTOKEN(']');}
  1536.     YY_BREAK
  1537. case 61:
  1538. # line 237 "./ldlex.l"
  1539. { RTOKEN('[');}
  1540.     YY_BREAK
  1541. case 62:
  1542. # line 238 "./ldlex.l"
  1543. { RTOKEN(LSHIFTEQ);}
  1544.     YY_BREAK
  1545. case 63:
  1546. # line 239 "./ldlex.l"
  1547. { RTOKEN(RSHIFTEQ);}
  1548.     YY_BREAK
  1549. case 64:
  1550. # line 240 "./ldlex.l"
  1551. { RTOKEN(OROR);}
  1552.     YY_BREAK
  1553. case 65:
  1554. # line 241 "./ldlex.l"
  1555. { RTOKEN(EQ);}
  1556.     YY_BREAK
  1557. case 66:
  1558. # line 242 "./ldlex.l"
  1559. { RTOKEN(NE);}
  1560.     YY_BREAK
  1561. case 67:
  1562. # line 243 "./ldlex.l"
  1563. { RTOKEN(GE);}
  1564.     YY_BREAK
  1565. case 68:
  1566. # line 244 "./ldlex.l"
  1567. { RTOKEN(LE);}
  1568.     YY_BREAK
  1569. case 69:
  1570. # line 245 "./ldlex.l"
  1571. { RTOKEN(LSHIFT);}
  1572.     YY_BREAK
  1573. case 70:
  1574. # line 246 "./ldlex.l"
  1575. { RTOKEN(RSHIFT);}
  1576.     YY_BREAK
  1577. case 71:
  1578. # line 247 "./ldlex.l"
  1579. { RTOKEN(PLUSEQ);}
  1580.     YY_BREAK
  1581. case 72:
  1582. # line 248 "./ldlex.l"
  1583. { RTOKEN(MINUSEQ);}
  1584.     YY_BREAK
  1585. case 73:
  1586. # line 249 "./ldlex.l"
  1587. { RTOKEN(MULTEQ);}
  1588.     YY_BREAK
  1589. case 74:
  1590. # line 250 "./ldlex.l"
  1591. { RTOKEN(DIVEQ);}
  1592.     YY_BREAK
  1593. case 75:
  1594. # line 251 "./ldlex.l"
  1595. { RTOKEN(ANDEQ);}
  1596.     YY_BREAK
  1597. case 76:
  1598. # line 252 "./ldlex.l"
  1599. { RTOKEN(OREQ);}
  1600.     YY_BREAK
  1601. case 77:
  1602. # line 253 "./ldlex.l"
  1603. { RTOKEN(ANDAND);}
  1604.     YY_BREAK
  1605. case 78:
  1606. # line 254 "./ldlex.l"
  1607. { RTOKEN('>');}
  1608.     YY_BREAK
  1609. case 79:
  1610. # line 255 "./ldlex.l"
  1611. { RTOKEN(',');}
  1612.     YY_BREAK
  1613. case 80:
  1614. # line 256 "./ldlex.l"
  1615. { RTOKEN('&');}
  1616.     YY_BREAK
  1617. case 81:
  1618. # line 257 "./ldlex.l"
  1619. { RTOKEN('|');}
  1620.     YY_BREAK
  1621. case 82:
  1622. # line 258 "./ldlex.l"
  1623. { RTOKEN('~');}
  1624.     YY_BREAK
  1625. case 83:
  1626. # line 259 "./ldlex.l"
  1627. { RTOKEN('!');}
  1628.     YY_BREAK
  1629. case 84:
  1630. # line 260 "./ldlex.l"
  1631. { RTOKEN('?');}
  1632.     YY_BREAK
  1633. case 85:
  1634. # line 261 "./ldlex.l"
  1635. { RTOKEN('*');}
  1636.     YY_BREAK
  1637. case 86:
  1638. # line 262 "./ldlex.l"
  1639. { RTOKEN('+');}
  1640.     YY_BREAK
  1641. case 87:
  1642. # line 263 "./ldlex.l"
  1643. { RTOKEN('-');}
  1644.     YY_BREAK
  1645. case 88:
  1646. # line 264 "./ldlex.l"
  1647. { RTOKEN('/');}
  1648.     YY_BREAK
  1649. case 89:
  1650. # line 265 "./ldlex.l"
  1651. { RTOKEN('%');}
  1652.     YY_BREAK
  1653. case 90:
  1654. # line 266 "./ldlex.l"
  1655. { RTOKEN('<');}
  1656.     YY_BREAK
  1657. case 91:
  1658. # line 267 "./ldlex.l"
  1659. { RTOKEN('>');}
  1660.     YY_BREAK
  1661. case 92:
  1662. # line 268 "./ldlex.l"
  1663. { RTOKEN('=');}
  1664.     YY_BREAK
  1665. case 93:
  1666. # line 269 "./ldlex.l"
  1667. { RTOKEN('}') ; }
  1668.     YY_BREAK
  1669. case 94:
  1670. # line 270 "./ldlex.l"
  1671. { RTOKEN('{'); }
  1672.     YY_BREAK
  1673. case 95:
  1674. # line 271 "./ldlex.l"
  1675. { RTOKEN(')');}
  1676.     YY_BREAK
  1677. case 96:
  1678. # line 272 "./ldlex.l"
  1679. { RTOKEN('(');}
  1680.     YY_BREAK
  1681. case 97:
  1682. # line 273 "./ldlex.l"
  1683. { RTOKEN(']');}
  1684.     YY_BREAK
  1685. case 98:
  1686. # line 274 "./ldlex.l"
  1687. { RTOKEN('[');}
  1688.     YY_BREAK
  1689. case 99:
  1690. # line 275 "./ldlex.l"
  1691. { RTOKEN(':'); }
  1692.     YY_BREAK
  1693. case 100:
  1694. # line 276 "./ldlex.l"
  1695. { RTOKEN(';');}
  1696.     YY_BREAK
  1697. case 101:
  1698. # line 277 "./ldlex.l"
  1699. { RTOKEN('-');}
  1700.     YY_BREAK
  1701. case 102:
  1702. # line 278 "./ldlex.l"
  1703. { RTOKEN('/');}
  1704.     YY_BREAK
  1705. case 103:
  1706. # line 279 "./ldlex.l"
  1707. { RTOKEN(MEMORY);}
  1708.     YY_BREAK
  1709. case 104:
  1710. # line 280 "./ldlex.l"
  1711. { RTOKEN(ORIGIN);}
  1712.     YY_BREAK
  1713. case 105:
  1714. # line 281 "./ldlex.l"
  1715. { RTOKEN(BLOCK);}
  1716.     YY_BREAK
  1717. case 106:
  1718. # line 282 "./ldlex.l"
  1719. { RTOKEN(LENGTH);}
  1720.     YY_BREAK
  1721. case 107:
  1722. # line 283 "./ldlex.l"
  1723. { RTOKEN(ALIGN_K);}
  1724.     YY_BREAK
  1725. case 108:
  1726. # line 284 "./ldlex.l"
  1727. { RTOKEN(ADDR);}
  1728.     YY_BREAK
  1729. case 109:
  1730. # line 285 "./ldlex.l"
  1731. { RTOKEN(ENTRY);}
  1732.     YY_BREAK
  1733. case 110:
  1734. # line 286 "./ldlex.l"
  1735. { RTOKEN(NEXT);}
  1736.     YY_BREAK
  1737. case 111:
  1738. # line 287 "./ldlex.l"
  1739. { RTOKEN(SIZEOF_HEADERS);}
  1740.     YY_BREAK
  1741. case 112:
  1742. # line 288 "./ldlex.l"
  1743. { RTOKEN(SIZEOF_HEADERS);}
  1744.     YY_BREAK
  1745. case 113:
  1746. # line 289 "./ldlex.l"
  1747. { RTOKEN(MAP);}
  1748.     YY_BREAK
  1749. case 114:
  1750. # line 290 "./ldlex.l"
  1751. { RTOKEN(SIZEOF);}
  1752.     YY_BREAK
  1753. case 115:
  1754. # line 291 "./ldlex.l"
  1755. { RTOKEN(TARGET_K);}
  1756.     YY_BREAK
  1757. case 116:
  1758. # line 292 "./ldlex.l"
  1759. { RTOKEN(SEARCH_DIR);}
  1760.     YY_BREAK
  1761. case 117:
  1762. # line 293 "./ldlex.l"
  1763. { RTOKEN(OUTPUT);}
  1764.     YY_BREAK
  1765. case 118:
  1766. # line 294 "./ldlex.l"
  1767. { RTOKEN(INPUT);}
  1768.     YY_BREAK
  1769. case 119:
  1770. # line 295 "./ldlex.l"
  1771. { RTOKEN(DEFINED);}
  1772.     YY_BREAK
  1773. case 120:
  1774. # line 296 "./ldlex.l"
  1775. { RTOKEN(CREATE_OBJECT_SYMBOLS);}
  1776.     YY_BREAK
  1777. case 121:
  1778. # line 297 "./ldlex.l"
  1779. { RTOKEN( CONSTRUCTORS);}
  1780.     YY_BREAK
  1781. case 122:
  1782. # line 298 "./ldlex.l"
  1783. { RTOKEN(FORCE_COMMON_ALLOCATION);}
  1784.     YY_BREAK
  1785. case 123:
  1786. # line 299 "./ldlex.l"
  1787. { RTOKEN(SECTIONS);}
  1788.     YY_BREAK
  1789. case 124:
  1790. # line 300 "./ldlex.l"
  1791. { RTOKEN(FILL);}
  1792.     YY_BREAK
  1793. case 125:
  1794. # line 301 "./ldlex.l"
  1795. { RTOKEN(STARTUP);}
  1796.     YY_BREAK
  1797. case 126:
  1798. # line 302 "./ldlex.l"
  1799. { RTOKEN(OUTPUT_FORMAT);}
  1800.     YY_BREAK
  1801. case 127:
  1802. # line 303 "./ldlex.l"
  1803. { RTOKEN( OUTPUT_ARCH);}
  1804.     YY_BREAK
  1805. case 128:
  1806. # line 304 "./ldlex.l"
  1807. { RTOKEN(HLL);}
  1808.     YY_BREAK
  1809. case 129:
  1810. # line 305 "./ldlex.l"
  1811. { RTOKEN(SYSLIB);}
  1812.     YY_BREAK
  1813. case 130:
  1814. # line 306 "./ldlex.l"
  1815. { RTOKEN(FLOAT);}
  1816.     YY_BREAK
  1817. case 131:
  1818. # line 307 "./ldlex.l"
  1819. { RTOKEN( LONG);}
  1820.     YY_BREAK
  1821. case 132:
  1822. # line 308 "./ldlex.l"
  1823. { RTOKEN( SHORT);}
  1824.     YY_BREAK
  1825. case 133:
  1826. # line 309 "./ldlex.l"
  1827. { RTOKEN( BYTE);}
  1828.     YY_BREAK
  1829. case 134:
  1830. # line 310 "./ldlex.l"
  1831. { RTOKEN(NOFLOAT);}
  1832.     YY_BREAK
  1833. case 135:
  1834. # line 311 "./ldlex.l"
  1835. { RTOKEN(NOLOAD);}
  1836.     YY_BREAK
  1837. case 136:
  1838. # line 312 "./ldlex.l"
  1839. { RTOKEN(DSECT);}
  1840.     YY_BREAK
  1841. case 137:
  1842. # line 313 "./ldlex.l"
  1843. { RTOKEN(COPY);}
  1844.     YY_BREAK
  1845. case 138:
  1846. # line 314 "./ldlex.l"
  1847. { RTOKEN(INFO);}
  1848.     YY_BREAK
  1849. case 139:
  1850. # line 315 "./ldlex.l"
  1851. { RTOKEN(OVERLAY);}
  1852.     YY_BREAK
  1853. case 140:
  1854. # line 316 "./ldlex.l"
  1855. { RTOKEN(ORIGIN);}
  1856.     YY_BREAK
  1857. case 141:
  1858. # line 317 "./ldlex.l"
  1859. { RTOKEN(ORIGIN);}
  1860.     YY_BREAK
  1861. case 142:
  1862. # line 318 "./ldlex.l"
  1863. { RTOKEN( LENGTH);}
  1864.     YY_BREAK
  1865. case 143:
  1866. # line 319 "./ldlex.l"
  1867. { RTOKEN( LENGTH);}
  1868.     YY_BREAK
  1869. case 144:
  1870. # line 320 "./ldlex.l"
  1871. { RTOKEN(INCLUDE);}
  1872.     YY_BREAK
  1873. case 145:
  1874. # line 321 "./ldlex.l"
  1875. { RTOKEN(AT);}
  1876.     YY_BREAK
  1877. case 146:
  1878. # line 322 "./ldlex.l"
  1879. { ++ lineno;  RTOKEN(NEWLINE); }
  1880.     YY_BREAK
  1881. case 147:
  1882. # line 323 "./ldlex.l"
  1883. { /* Mri comment line */ }
  1884.     YY_BREAK
  1885. case 148:
  1886. # line 324 "./ldlex.l"
  1887. { RTOKEN(ENDWORD); }
  1888.     YY_BREAK
  1889. case 149:
  1890. # line 325 "./ldlex.l"
  1891. { RTOKEN(ALIGNMOD);}
  1892.     YY_BREAK
  1893. case 150:
  1894. # line 326 "./ldlex.l"
  1895. { RTOKEN(ALIGN_K);}
  1896.     YY_BREAK
  1897. case 151:
  1898. # line 328 "./ldlex.l"
  1899. { RTOKEN(CHIP); }
  1900.     YY_BREAK
  1901. case 152:
  1902. # line 329 "./ldlex.l"
  1903. { RTOKEN(BASE); }
  1904.     YY_BREAK
  1905. case 153:
  1906. # line 330 "./ldlex.l"
  1907. { RTOKEN(ALIAS); }
  1908.     YY_BREAK
  1909. case 154:
  1910. # line 331 "./ldlex.l"
  1911. { RTOKEN(TRUNCATE); }
  1912.     YY_BREAK
  1913. case 155:
  1914. # line 332 "./ldlex.l"
  1915. { RTOKEN(LOAD); }
  1916.     YY_BREAK
  1917. case 156:
  1918. # line 333 "./ldlex.l"
  1919. { RTOKEN(PUBLIC); }
  1920.     YY_BREAK
  1921. case 157:
  1922. # line 334 "./ldlex.l"
  1923. { RTOKEN(ORDER); }
  1924.     YY_BREAK
  1925. case 158:
  1926. # line 335 "./ldlex.l"
  1927. { RTOKEN(NAMEWORD); }
  1928.     YY_BREAK
  1929. case 159:
  1930. # line 336 "./ldlex.l"
  1931. { RTOKEN(FORMAT); }
  1932.     YY_BREAK
  1933. case 160:
  1934. # line 337 "./ldlex.l"
  1935. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  1936.     YY_BREAK
  1937. case 161:
  1938. # line 338 "./ldlex.l"
  1939. { RTOKEN(SECT); }
  1940.     YY_BREAK
  1941. case 162:
  1942. # line 339 "./ldlex.l"
  1943. { RTOKEN(ABSOLUTE); }
  1944.     YY_BREAK
  1945. case 163:
  1946. # line 340 "./ldlex.l"
  1947. { RTOKEN(ENDWORD); }
  1948.     YY_BREAK
  1949. case 164:
  1950. # line 341 "./ldlex.l"
  1951. { RTOKEN(CHIP); }
  1952.     YY_BREAK
  1953. case 165:
  1954. # line 342 "./ldlex.l"
  1955. { RTOKEN(LOAD); }
  1956.     YY_BREAK
  1957. case 166:
  1958. # line 343 "./ldlex.l"
  1959. { RTOKEN(ORDER); }
  1960.     YY_BREAK
  1961. case 167:
  1962. # line 344 "./ldlex.l"
  1963. { RTOKEN(NAMEWORD); }
  1964.     YY_BREAK
  1965. case 168:
  1966. # line 345 "./ldlex.l"
  1967. { RTOKEN(FORMAT); }
  1968.     YY_BREAK
  1969. case 169:
  1970. # line 346 "./ldlex.l"
  1971. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  1972.     YY_BREAK
  1973. case 170:
  1974. # line 347 "./ldlex.l"
  1975. { RTOKEN(SECT); }
  1976.     YY_BREAK
  1977. case 171:
  1978. # line 348 "./ldlex.l"
  1979. { RTOKEN(ABSOLUTE); }
  1980.     YY_BREAK
  1981. case 172:
  1982. # line 350 "./ldlex.l"
  1983. {
  1984.                  yylval.name = buystring(yytext); 
  1985.                   return NAME;
  1986.                 }
  1987.     YY_BREAK
  1988. case 173:
  1989. # line 356 "./ldlex.l"
  1990. {
  1991. /* Filename without commas, needed to parse mri stuff */
  1992.                  yylval.name = buystring(yytext); 
  1993.                   return NAME;
  1994.                 }
  1995.     YY_BREAK
  1996. case 174:
  1997. # line 363 "./ldlex.l"
  1998. {
  1999.                  yylval.name = buystring(yytext); 
  2000.                   return NAME;
  2001.                 }
  2002.     YY_BREAK
  2003. case 175:
  2004. # line 367 "./ldlex.l"
  2005. { yylval.name = buystring(yytext); 
  2006.                   return NAME;
  2007.                 }
  2008.     YY_BREAK
  2009. case 176:
  2010. # line 371 "./ldlex.l"
  2011. {
  2012.                     /* No matter the state, quotes
  2013.                        give what's inside */
  2014.                     yylval.name = buystring(yytext+1);
  2015.                     yylval.name[yyleng-2] = 0;
  2016.                     return NAME;
  2017.                 }
  2018.     YY_BREAK
  2019. case 177:
  2020. # line 378 "./ldlex.l"
  2021. { lineno++;}
  2022.     YY_BREAK
  2023. case 178:
  2024. # line 379 "./ldlex.l"
  2025.  
  2026.     YY_BREAK
  2027. case YY_STATE_EOF(INITIAL):
  2028. case YY_STATE_EOF(COMMAND):
  2029. case YY_STATE_EOF(SCRIPT):
  2030. case YY_STATE_EOF(EXPRESSION):
  2031. case YY_STATE_EOF(COMMENT):
  2032. case YY_STATE_EOF(BOTH):
  2033. case YY_STATE_EOF(DEFSYMEXP):
  2034. case YY_STATE_EOF(MRI):
  2035. # line 381 "./ldlex.l"
  2036. {
  2037.   extern char *ldfile_input_filename;
  2038.   include_stack_ptr--;
  2039.     
  2040.   if (include_stack_ptr == 0) 
  2041.   {
  2042.     yyterminate();
  2043.   }
  2044.   else 
  2045.   {
  2046.     yy_switch_to_buffer(include_stack[include_stack_ptr]);
  2047.  
  2048.   }
  2049.   if (include_stack_ptr==1) 
  2050.   {
  2051.     BEGIN(COMMAND);
  2052.   }
  2053.   else 
  2054.   {
  2055.     BEGIN(SCRIPT);
  2056.     ldfile_input_filename = file_name_stack[include_stack_ptr-1];
  2057.   }
  2058.  
  2059.   return END;
  2060. }
  2061.     YY_BREAK
  2062. case 180:
  2063. # line 407 "./ldlex.l"
  2064. ECHO;
  2065.     YY_BREAK
  2066. # line 353 "flex.skel"
  2067.  
  2068.         case YY_END_OF_BUFFER:
  2069.         {
  2070.         /* amount of text matched not including the EOB char */
  2071.         int yy_amount_of_matched_text = yy_cp - yytext - 1;
  2072.  
  2073.         /* undo the effects of YY_DO_BEFORE_ACTION */
  2074.         *yy_cp = yy_hold_char;
  2075.  
  2076.         /* note that here we test for yy_c_buf_p "<=" to the position
  2077.          * of the first EOB in the buffer, since yy_c_buf_p will
  2078.          * already have been incremented past the NUL character
  2079.          * (since all states make transitions on EOB to the end-
  2080.          * of-buffer state).  Contrast this with the test in yyinput().
  2081.          */
  2082.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2083.             /* this was really a NUL */
  2084.             {
  2085.             yy_state_type yy_next_state;
  2086.  
  2087.             yy_c_buf_p = yytext + yy_amount_of_matched_text;
  2088.  
  2089.             yy_current_state = yy_get_previous_state();
  2090.  
  2091.             /* okay, we're now positioned to make the
  2092.              * NUL transition.  We couldn't have
  2093.              * yy_get_previous_state() go ahead and do it
  2094.              * for us because it doesn't know how to deal
  2095.              * with the possibility of jamming (and we
  2096.              * don't want to build jamming into it because
  2097.              * then it will run more slowly)
  2098.              */
  2099.  
  2100.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2101.  
  2102.             yy_bp = yytext + YY_MORE_ADJ;
  2103.  
  2104.             if ( yy_next_state )
  2105.             {
  2106.             /* consume the NUL */
  2107.             yy_cp = ++yy_c_buf_p;
  2108.             yy_current_state = yy_next_state;
  2109.             goto yy_match;
  2110.             }
  2111.  
  2112.             else
  2113.             {
  2114. # line 402 "flex.skel"
  2115.             goto yy_find_action;
  2116.             }
  2117.             }
  2118.  
  2119.         else switch ( yy_get_next_buffer() )
  2120.             {
  2121.             case EOB_ACT_END_OF_FILE:
  2122.             {
  2123.             yy_did_buffer_switch_on_eof = 0;
  2124.  
  2125.             if ( yywrap() )
  2126.                 {
  2127.                 /* note: because we've taken care in
  2128.                  * yy_get_next_buffer() to have set up yytext,
  2129.                  * we can now set up yy_c_buf_p so that if some
  2130.                  * total hoser (like flex itself) wants
  2131.                  * to call the scanner after we return the
  2132.                  * YY_NULL, it'll still work - another YY_NULL
  2133.                  * will get returned.
  2134.                  */
  2135.                 yy_c_buf_p = yytext + YY_MORE_ADJ;
  2136.  
  2137.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  2138.                 goto do_action;
  2139.                 }
  2140.  
  2141.             else
  2142.                 {
  2143.                 if ( ! yy_did_buffer_switch_on_eof )
  2144.                 YY_NEW_FILE;
  2145.                 }
  2146.             }
  2147.             break;
  2148.  
  2149.             case EOB_ACT_CONTINUE_SCAN:
  2150.             yy_c_buf_p = yytext + yy_amount_of_matched_text;
  2151.  
  2152.             yy_current_state = yy_get_previous_state();
  2153.  
  2154.             yy_cp = yy_c_buf_p;
  2155.             yy_bp = yytext + YY_MORE_ADJ;
  2156.             goto yy_match;
  2157.  
  2158.             case EOB_ACT_LAST_MATCH:
  2159.             yy_c_buf_p =
  2160.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2161.  
  2162.             yy_current_state = yy_get_previous_state();
  2163.  
  2164.             yy_cp = yy_c_buf_p;
  2165.             yy_bp = yytext + YY_MORE_ADJ;
  2166.             goto yy_find_action;
  2167.             }
  2168.         break;
  2169.         }
  2170.  
  2171.         default:
  2172. #ifdef FLEX_DEBUG
  2173.         printf( "action # %d\n", yy_act );
  2174. #endif
  2175.         YY_FATAL_ERROR(
  2176.             "fatal flex scanner internal error--no action found" );
  2177.         }
  2178.     }
  2179.     }
  2180.  
  2181.  
  2182. /* yy_get_next_buffer - try to read in a new buffer
  2183.  *
  2184.  * synopsis
  2185.  *     int yy_get_next_buffer();
  2186.  *     
  2187.  * returns a code representing an action
  2188.  *     EOB_ACT_LAST_MATCH - 
  2189.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2190.  *     EOB_ACT_END_OF_FILE - end of file
  2191.  */
  2192.  
  2193. static int yy_get_next_buffer()
  2194.  
  2195.     {
  2196.     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
  2197.     register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
  2198.     register int number_to_move, i;
  2199.     int ret_val;
  2200.  
  2201.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2202.     YY_FATAL_ERROR(
  2203.         "fatal flex scanner internal error--end of buffer missed" );
  2204.  
  2205.     /* try to read more data */
  2206.  
  2207.     /* first move last chars to start of buffer */
  2208.     number_to_move = yy_c_buf_p - yytext;
  2209.  
  2210.     for ( i = 0; i < number_to_move; ++i )
  2211.     *(dest++) = *(source++);
  2212.  
  2213.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  2214.     /* don't do the read, it's not guaranteed to return an EOF,
  2215.      * just force an EOF
  2216.      */
  2217.     yy_n_chars = 0;
  2218.  
  2219.     else
  2220.     {
  2221.     int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  2222.  
  2223.     if ( num_to_read > YY_READ_BUF_SIZE )
  2224.         num_to_read = YY_READ_BUF_SIZE;
  2225.  
  2226.     else if ( num_to_read <= 0 )
  2227.         YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  2228.  
  2229.     /* read in more data */
  2230.     YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2231.           yy_n_chars, num_to_read );
  2232.     }
  2233.  
  2234.     if ( yy_n_chars == 0 )
  2235.     {
  2236.     if ( number_to_move - YY_MORE_ADJ == 1 )
  2237.         {
  2238.         ret_val = EOB_ACT_END_OF_FILE;
  2239.         yy_current_buffer->yy_eof_status = EOF_DONE;
  2240.         }
  2241.  
  2242.     else
  2243.         {
  2244.         ret_val = EOB_ACT_LAST_MATCH;
  2245.         yy_current_buffer->yy_eof_status = EOF_PENDING;
  2246.         }
  2247.     }
  2248.  
  2249.     else
  2250.     ret_val = EOB_ACT_CONTINUE_SCAN;
  2251.  
  2252.     yy_n_chars += number_to_move;
  2253.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2254.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2255.  
  2256.     /* yytext begins at the second character in yy_ch_buf; the first
  2257.      * character is the one which preceded it before reading in the latest
  2258.      * buffer; it needs to be kept around in case it's a newline, so
  2259.      * yy_get_previous_state() will have with '^' rules active
  2260.      */
  2261.  
  2262.     yytext = &yy_current_buffer->yy_ch_buf[1];
  2263.  
  2264.     return ( ret_val );
  2265.     }
  2266.  
  2267.  
  2268. /* yy_get_previous_state - get the state just before the EOB char was reached
  2269.  *
  2270.  * synopsis
  2271.  *     yy_state_type yy_get_previous_state();
  2272.  */
  2273.  
  2274. static yy_state_type yy_get_previous_state()
  2275.  
  2276.     {
  2277.     register yy_state_type yy_current_state;
  2278.     register YY_CHAR *yy_cp;
  2279.  
  2280.     yy_current_state = yy_start;
  2281. # line 569 "flex.skel"
  2282.  
  2283.     for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2284.     {
  2285.     register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  2286.     if ( yy_accept[yy_current_state] )
  2287.         {
  2288.         yy_last_accepting_state = yy_current_state;
  2289.         yy_last_accepting_cpos = yy_cp;
  2290.         }
  2291.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2292.         {
  2293.         yy_current_state = yy_def[yy_current_state];
  2294.         if ( yy_current_state >= 912 )
  2295.         yy_c = yy_meta[yy_c];
  2296.         }
  2297.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2298. # line 574 "flex.skel"
  2299.     }
  2300.  
  2301.     return ( yy_current_state );
  2302.     }
  2303.  
  2304.  
  2305. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2306.  *
  2307.  * synopsis
  2308.  *     next_state = yy_try_NUL_trans( current_state );
  2309.  */
  2310.  
  2311. #ifdef YY_USE_PROTOS
  2312. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  2313. #else
  2314. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2315. register yy_state_type yy_current_state;
  2316. #endif
  2317.  
  2318.     {
  2319.     register int yy_is_jam;
  2320.     register YY_CHAR *yy_cp = yy_c_buf_p;
  2321.  
  2322.     register YY_CHAR yy_c = 1;
  2323.     if ( yy_accept[yy_current_state] )
  2324.     {
  2325.     yy_last_accepting_state = yy_current_state;
  2326.     yy_last_accepting_cpos = yy_cp;
  2327.     }
  2328.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2329.     {
  2330.     yy_current_state = yy_def[yy_current_state];
  2331.     if ( yy_current_state >= 912 )
  2332.         yy_c = yy_meta[yy_c];
  2333.     }
  2334.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2335.     yy_is_jam = (yy_current_state == 911);
  2336. # line 597 "flex.skel"
  2337.  
  2338.     return ( yy_is_jam ? 0 : yy_current_state );
  2339.     }
  2340.  
  2341.  
  2342. #ifdef YY_USE_PROTOS
  2343. static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
  2344. #else
  2345. static void yyunput( c, yy_bp )
  2346. YY_CHAR c;
  2347. register YY_CHAR *yy_bp;
  2348. #endif
  2349.  
  2350.     {
  2351.     register YY_CHAR *yy_cp = yy_c_buf_p;
  2352.  
  2353.     /* undo effects of setting up yytext */
  2354.     *yy_cp = yy_hold_char;
  2355.  
  2356.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2357.     { /* need to shift things up to make room */
  2358.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  2359.     register YY_CHAR *dest =
  2360.         &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  2361.     register YY_CHAR *source =
  2362.         &yy_current_buffer->yy_ch_buf[number_to_move];
  2363.  
  2364.     while ( source > yy_current_buffer->yy_ch_buf )
  2365.         *--dest = *--source;
  2366.  
  2367.     yy_cp += dest - source;
  2368.     yy_bp += dest - source;
  2369.     yy_n_chars = yy_current_buffer->yy_buf_size;
  2370.  
  2371.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2372.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2373.     }
  2374.  
  2375.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  2376.     yy_cp[-2] = '\n';
  2377.  
  2378.     *--yy_cp = c;
  2379.  
  2380.     /* note: the formal parameter *must* be called "yy_bp" for this
  2381.      *       macro to now work correctly
  2382.      */
  2383.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  2384.     }
  2385.  
  2386.  
  2387. #ifdef __cplusplus
  2388. static int yyinput()
  2389. #else
  2390. static int input()
  2391. #endif
  2392.  
  2393.     {
  2394.     int c;
  2395.     YY_CHAR *yy_cp = yy_c_buf_p;
  2396.  
  2397.     *yy_cp = yy_hold_char;
  2398.  
  2399.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  2400.     {
  2401.     /* yy_c_buf_p now points to the character we want to return.
  2402.      * If this occurs *before* the EOB characters, then it's a
  2403.      * valid NUL; if not, then we've hit the end of the buffer.
  2404.      */
  2405.     if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2406.         /* this was really a NUL */
  2407.         *yy_c_buf_p = '\0';
  2408.  
  2409.     else
  2410.         { /* need more input */
  2411.         yytext = yy_c_buf_p;
  2412.         ++yy_c_buf_p;
  2413.  
  2414.         switch ( yy_get_next_buffer() )
  2415.         {
  2416.         case EOB_ACT_END_OF_FILE:
  2417.             {
  2418.             if ( yywrap() )
  2419.             {
  2420.             yy_c_buf_p = yytext + YY_MORE_ADJ;
  2421.             return ( EOF );
  2422.             }
  2423.  
  2424.             YY_NEW_FILE;
  2425.  
  2426. #ifdef __cplusplus
  2427.             return ( yyinput() );
  2428. #else
  2429.             return ( input() );
  2430. #endif
  2431.             }
  2432.             break;
  2433.  
  2434.         case EOB_ACT_CONTINUE_SCAN:
  2435.             yy_c_buf_p = yytext + YY_MORE_ADJ;
  2436.             break;
  2437.  
  2438.         case EOB_ACT_LAST_MATCH:
  2439. #ifdef __cplusplus
  2440.             YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  2441. #else
  2442.             YY_FATAL_ERROR( "unexpected last match in input()" );
  2443. #endif
  2444.         }
  2445.         }
  2446.     }
  2447.  
  2448.     c = *yy_c_buf_p;
  2449.     yy_hold_char = *++yy_c_buf_p;
  2450.  
  2451.     return ( c );
  2452.     }
  2453.  
  2454.  
  2455. #ifdef YY_USE_PROTOS
  2456. void yyrestart( FILE *input_file )
  2457. #else
  2458. void yyrestart( input_file )
  2459. FILE *input_file;
  2460. #endif
  2461.  
  2462.     {
  2463.     yy_init_buffer( yy_current_buffer, input_file );
  2464.     yy_load_buffer_state();
  2465.     }
  2466.  
  2467.  
  2468. #ifdef YY_USE_PROTOS
  2469. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2470. #else
  2471. void yy_switch_to_buffer( new_buffer )
  2472. YY_BUFFER_STATE new_buffer;
  2473. #endif
  2474.  
  2475.     {
  2476.     if ( yy_current_buffer == new_buffer )
  2477.     return;
  2478.  
  2479.     if ( yy_current_buffer )
  2480.     {
  2481.     /* flush out information for old buffer */
  2482.     *yy_c_buf_p = yy_hold_char;
  2483.     yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  2484.     yy_current_buffer->yy_n_chars = yy_n_chars;
  2485.     }
  2486.  
  2487.     yy_current_buffer = new_buffer;
  2488.     yy_load_buffer_state();
  2489.  
  2490.     /* we don't actually know whether we did this switch during
  2491.      * EOF (yywrap()) processing, but the only time this flag
  2492.      * is looked at is after yywrap() is called, so it's safe
  2493.      * to go ahead and always set it.
  2494.      */
  2495.     yy_did_buffer_switch_on_eof = 1;
  2496.     }
  2497.  
  2498.  
  2499. #ifdef YY_USE_PROTOS
  2500. void yy_load_buffer_state( void )
  2501. #else
  2502. void yy_load_buffer_state()
  2503. #endif
  2504.  
  2505.     {
  2506.     yy_n_chars = yy_current_buffer->yy_n_chars;
  2507.     yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  2508.     yyin = yy_current_buffer->yy_input_file;
  2509.     yy_hold_char = *yy_c_buf_p;
  2510.     }
  2511.  
  2512.  
  2513. #ifdef YY_USE_PROTOS
  2514. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  2515. #else
  2516. YY_BUFFER_STATE yy_create_buffer( file, size )
  2517. FILE *file;
  2518. int size;
  2519. #endif
  2520.  
  2521.     {
  2522.     YY_BUFFER_STATE b;
  2523.  
  2524.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  2525.  
  2526.     if ( ! b )
  2527.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2528.  
  2529.     b->yy_buf_size = size;
  2530.  
  2531.     /* yy_ch_buf has to be 2 characters longer than the size given because
  2532.      * we need to put in 2 end-of-buffer characters.
  2533.      */
  2534.     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  2535.  
  2536.     if ( ! b->yy_ch_buf )
  2537.     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2538.  
  2539.     yy_init_buffer( b, file );
  2540.  
  2541.     return ( b );
  2542.     }
  2543.  
  2544.  
  2545. #ifdef YY_USE_PROTOS
  2546. void yy_delete_buffer( YY_BUFFER_STATE b )
  2547. #else
  2548. void yy_delete_buffer( b )
  2549. YY_BUFFER_STATE b;
  2550. #endif
  2551.  
  2552.     {
  2553.     if ( b == yy_current_buffer )
  2554.     yy_current_buffer = (YY_BUFFER_STATE) 0;
  2555.  
  2556.     free( (char *) b->yy_ch_buf );
  2557.     free( (char *) b );
  2558.     }
  2559.  
  2560.  
  2561. #ifdef YY_USE_PROTOS
  2562. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  2563. #else
  2564. void yy_init_buffer( b, file )
  2565. YY_BUFFER_STATE b;
  2566. FILE *file;
  2567. #endif
  2568.  
  2569.     {
  2570.     b->yy_input_file = file;
  2571.  
  2572.     /* we put in the '\n' and start reading from [1] so that an
  2573.      * initial match-at-newline will be true.
  2574.      */
  2575.  
  2576.     b->yy_ch_buf[0] = '\n';
  2577.     b->yy_n_chars = 1;
  2578.  
  2579.     /* we always need two end-of-buffer characters.  The first causes
  2580.      * a transition to the end-of-buffer state.  The second causes
  2581.      * a jam in that state.
  2582.      */
  2583.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2584.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  2585.  
  2586.     b->yy_buf_pos = &b->yy_ch_buf[1];
  2587.  
  2588.     b->yy_eof_status = EOF_NOT_SEEN;
  2589.     }
  2590. # line 407 "./ldlex.l"
  2591.  
  2592.  
  2593. void
  2594. DEFUN(lex_push_file,(file,name),
  2595.      FILE *file AND
  2596.      char *name)
  2597. {
  2598.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  2599.   {
  2600.     einfo("%F:includes nested too deeply");
  2601.   }
  2602.   file_name_stack[include_stack_ptr] = name;
  2603.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  2604.  
  2605.   include_stack_ptr++;
  2606.   yyin = file;
  2607.   yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  2608.  
  2609.   BEGIN(SCRIPT);
  2610. }
  2611.  
  2612. YY_BUFFER_STATE 
  2613. DEFUN(yy_create_string_buffer,(string,  size),
  2614.       CONST char *string AND
  2615.       int size )
  2616. {
  2617.   YY_BUFFER_STATE b;
  2618.  
  2619.   b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  2620.   b->yy_input_file = 0;
  2621.   
  2622.   if ( ! b )
  2623.    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2624.  
  2625.   b->yy_buf_size = size;
  2626.  
  2627.   /* yy_ch_buf has to be 2 characters longer than the size given because
  2628.    * we need to put in 2 end-of-buffer characters.
  2629.    */
  2630.   b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 3) );
  2631.  
  2632.   if ( ! b->yy_ch_buf )
  2633.    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2634.  
  2635.  
  2636.   b->yy_ch_buf[0] = '\n';
  2637.   strcpy(b->yy_ch_buf+1,  string);
  2638.   b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR;
  2639.   b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR;
  2640.     b->yy_n_chars = size+1;
  2641.   b->yy_buf_pos = &b->yy_ch_buf[1];
  2642.  
  2643.   b->yy_eof_status = EOF_NOT_SEEN;
  2644.  
  2645.   return ( b );
  2646. }
  2647.  
  2648.  
  2649.  
  2650. void
  2651. DEFUN(lex_redirect,( string),
  2652.     CONST  char *string)
  2653. {
  2654.   YY_BUFFER_STATE tmp;
  2655.  
  2656.   int len = strlen(string);
  2657.   yy_init = 0  ;  
  2658.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  2659.   {
  2660.     einfo("%F: macros nested too deeply");
  2661.   }
  2662.   file_name_stack[include_stack_ptr] = "redirect";
  2663.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  2664.   include_stack_ptr++;
  2665.   tmp =   yy_create_string_buffer(string, len);
  2666.   
  2667.   yy_switch_to_buffer(tmp);
  2668.   BEGIN(COMMAND);
  2669.   yyout = stdout;
  2670. }
  2671.  
  2672. int state_stack[20];
  2673. int *state_stack_p = state_stack;
  2674.  
  2675. void
  2676. DEFUN_VOID(ldlex_script)
  2677. {
  2678.   *(state_stack_p)++ = yy_start;
  2679.  
  2680.   BEGIN(SCRIPT);
  2681. }
  2682.  
  2683.  
  2684. void
  2685. DEFUN_VOID(ldlex_mri_script)
  2686. {
  2687.   *(state_stack_p)++ = yy_start;
  2688.   BEGIN(MRI);
  2689. }
  2690.  
  2691. void
  2692. DEFUN_VOID(ldlex_defsym)
  2693. {
  2694.   *(state_stack_p)++ = yy_start;
  2695.   BEGIN(DEFSYMEXP);
  2696. }
  2697.        
  2698. void
  2699. DEFUN_VOID(ldlex_expression)
  2700. {
  2701.   *(state_stack_p)++ = yy_start;
  2702.   BEGIN(EXPRESSION);
  2703.  
  2704. }
  2705. void
  2706. DEFUN_VOID(ldlex_both)
  2707. {
  2708.   *(state_stack_p)++ = yy_start;
  2709.   BEGIN(BOTH);
  2710. }
  2711. void
  2712. DEFUN_VOID(ldlex_command)
  2713. {
  2714.   *(state_stack_p)++ = yy_start;
  2715.   BEGIN(COMMAND);
  2716. }
  2717.  
  2718. void
  2719. DEFUN_VOID(ldlex_popstate)
  2720. {
  2721.   yy_start = *(--state_stack_p);
  2722. }
  2723.  
  2724. yy_input(buf, result, max_size)
  2725. char *buf;
  2726. int *result;
  2727. int max_size;
  2728. {
  2729.   *result = 0; 
  2730.   if (yy_current_buffer->yy_input_file)
  2731.   {
  2732.     if (yyin)
  2733.      if ( (*result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) 
  2734.       YY_FATAL_ERROR( "read() in flex scanner failed" );
  2735.   }
  2736. }
  2737.  
  2738. static
  2739. comment()
  2740. {
  2741.   int c;
  2742.   while (1)
  2743.   {
  2744.     c = input();
  2745.     while (c !='*' && c != EOF) 
  2746.     {
  2747.       if (c == '\n') lineno++;
  2748.       c = input();
  2749.     }
  2750.  
  2751.  
  2752.     if (c == '*')
  2753.     {
  2754.       c = input();
  2755.       while ( c == '*')
  2756.        c = input();
  2757.       if ( c == '/' )
  2758.        break;            /* found the end */
  2759.     }
  2760.  
  2761.     if ( c == EOF )
  2762.     {
  2763.       einfo( "%F%P :EOF in comment");
  2764.       break;
  2765.     }
  2766.   }
  2767. }
  2768.