a2k_p1.c.preserve
上传用户:dgyhgb
上传日期:2007-01-07
资源大小:676k
文件大小:37k
源码类别:

SQL Server

开发平台:

Unix_Linux

  1. /* A lexical scanner generated by flex */
  2. /* scanner skeleton version:
  3.  * $Header: /home/horse/u0/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp Locker: vern $
  4.  */
  5. #define FLEX_SCANNER
  6. #include <stdio.h>
  7. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  8. #ifdef c_plusplus
  9. #ifndef __cplusplus
  10. #define __cplusplus
  11. #endif
  12. #endif
  13. #ifdef __cplusplus
  14. #include <stdlib.h>
  15. #include <osfcn.h>
  16. /* use prototypes in function declarations */
  17. #define YY_USE_PROTOS
  18. /* the "const" storage-class-modifier is valid */
  19. #define YY_USE_CONST
  20. #else /* ! __cplusplus */
  21. #ifdef __STDC__
  22. #ifdef __GNUC__
  23. #include <stddef.h>
  24. void *malloc( size_t );
  25. void free( void* );
  26. #else
  27. #include <stdlib.h>
  28. #endif /* __GNUC__ */
  29. #define YY_USE_PROTOS
  30. #define YY_USE_CONST
  31. #endif /* __STDC__ */
  32. #endif /* ! __cplusplus */
  33. #ifdef __TURBOC__
  34. #define YY_USE_CONST
  35. #endif
  36. #ifndef YY_USE_CONST
  37. #define const
  38. #endif
  39. #ifdef YY_USE_PROTOS
  40. #define YY_PROTO(proto) proto
  41. #else
  42. #define YY_PROTO(proto) ()
  43. /* we can't get here if it's an ANSI C compiler, or a C++ compiler,
  44.  * so it's got to be a K&R compiler, and therefore there's no standard
  45.  * place from which to include these definitions
  46.  */
  47. char *malloc();
  48. int free();
  49. int read();
  50. #endif
  51. /* amount of stuff to slurp up with each read */
  52. #ifndef YY_READ_BUF_SIZE
  53. #define YY_READ_BUF_SIZE 8192
  54. #endif
  55. /* returned upon end-of-file */
  56. #define YY_END_TOK 0
  57. /* copy whatever the last rule matched to the standard output */
  58. /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
  59. /* this used to be an fputs(), but since the string might contain NUL's,
  60.  * we now use fwrite()
  61.  */
  62. #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
  63. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  64.  * is returned in "result".
  65.  */
  66. #define YY_INPUT(buf,result,max_size) 
  67. if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) 
  68.     YY_FATAL_ERROR( "read() in flex scanner failed" );
  69. #define YY_NULL 0
  70. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  71.  * we don't want an extra ';' after the "return" because that will cause
  72.  * some compilers to complain about unreachable statements.
  73.  */
  74. #define yyterminate() return ( YY_NULL )
  75. /* report a fatal error */
  76. /* The funky do-while is used to turn this macro definition into
  77.  * a single C statement (which needs a semi-colon terminator).
  78.  * This avoids problems with code like:
  79.  *
  80.  *  if ( something_happens )
  81.  * YY_FATAL_ERROR( "oops, the something happened" );
  82.  * else
  83.  * everything_okay();
  84.  *
  85.  * Prior to using the do-while the compiler would get upset at the
  86.  * "else" because it interpreted the "if" statement as being all
  87.  * done when it reached the ';' after the YY_FATAL_ERROR() call.
  88.  */
  89. #define YY_FATAL_ERROR(msg) 
  90. do 
  91. (void) fputs( msg, stderr ); 
  92. (void) putc( 'n', stderr ); 
  93. exit( 1 ); 
  94. while ( 0 )
  95. /* default yywrap function - always treat EOF as an EOF */
  96. #define yywrap() 1
  97. /* enter a start condition.  This macro really ought to take a parameter,
  98.  * but we do it the disgusting crufty way forced on us by the ()-less
  99.  * definition of BEGIN
  100.  */
  101. #define BEGIN yy_start = 1 + 2 *
  102. /* action number for EOF rule of a given start state */
  103. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  104. /* special action meaning "start processing a new file" */
  105. #define YY_NEW_FILE 
  106. do 
  107. yy_init_buffer( yy_current_buffer, yyin ); 
  108. yy_load_buffer_state(); 
  109. while ( 0 )
  110. /* default declaration of generated scanner - a define so the user can
  111.  * easily add parameters
  112.  */
  113. #define YY_DECL int yylex YY_PROTO(( void )) 
  114. /* code executed at the end of each rule */
  115. #define YY_BREAK break;
  116. #define YY_END_OF_BUFFER_CHAR 0
  117. #ifndef YY_BUF_SIZE
  118. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
  119. #endif
  120. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  121. #define FLEX_DEBUG
  122. #define YY_CHAR unsigned char
  123. # line 1 "a2k_p1.l"
  124. #define INITIAL 0
  125. # line 2 "a2k_p1.l"
  126. /*
  127.  *  a2k_p1.l - ansi 2 knr processing
  128.  *            
  129.  *  This file is a part of GNU SQL Server
  130.  *
  131.  *  Copyright (c) 1996, 1997, Free Software Foundation, Inc
  132.  *  Developed at the Institute of System Programming
  133.  *  This file is written by Michael Kimelman.
  134.  * 
  135.  *  This program is free software; you can redistribute it and/or modify
  136.  *  it under the terms of the GNU General Public License as published by
  137.  *  the Free Software Foundation; either version 2 of the License, or
  138.  *  (at your option) any later version.
  139.  *
  140.  *  This program is distributed in the hope that it will be useful,
  141.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  142.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  143.  *  GNU General Public License for more details.
  144.  *
  145.  *  You should have received a copy of the GNU General Public License
  146.  *  along with this program; if not, write to the Free Software
  147.  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  148.  *
  149.  *  Contact:  gss@ispras.ru
  150.  *
  151.  */
  152. #include <assert.h>
  153. /* $Id: a2k_p1.l,v 1.245 1997/03/31 03:46:38 kml Exp $ */
  154. #define C_str 1
  155. #define C_str1 2
  156. #define Skip 3
  157. # line 46 "a2k_p1.l"
  158. /* done after the current pattern has been matched and before the
  159.  * corresponding action - sets up yytext
  160.  */
  161. #define YY_DO_BEFORE_ACTION 
  162. yytext = yy_bp; 
  163. yyleng = yy_cp - yy_bp; 
  164. yy_hold_char = *yy_cp; 
  165. *yy_cp = ''; 
  166. yy_c_buf_p = yy_cp;
  167. #define EOB_ACT_CONTINUE_SCAN 0
  168. #define EOB_ACT_END_OF_FILE 1
  169. #define EOB_ACT_LAST_MATCH 2
  170. /* return all but the first 'n' matched characters back to the input stream */
  171. #define yyless(n) 
  172. do 
  173. /* undo effects of setting up yytext */ 
  174. *yy_cp = yy_hold_char; 
  175. yy_c_buf_p = yy_cp = yy_bp + n; 
  176. YY_DO_BEFORE_ACTION; /* set up yytext again */ 
  177. while ( 0 )
  178. #define unput(c) yyunput( c, yytext )
  179. struct yy_buffer_state
  180.     {
  181.     FILE *yy_input_file;
  182.     YY_CHAR *yy_ch_buf; /* input buffer */
  183.     YY_CHAR *yy_buf_pos; /* current position in input buffer */
  184.     /* size of input buffer in bytes, not including room for EOB characters */
  185.     int yy_buf_size;
  186.     /* number of characters read into yy_ch_buf, not including EOB characters */
  187.     int yy_n_chars;
  188.     int yy_eof_status; /* whether we've seen an EOF on this buffer */
  189. #define EOF_NOT_SEEN 0
  190.     /* "pending" happens when the EOF has been seen but there's still
  191.      * some text process
  192.      */
  193. #define EOF_PENDING 1
  194. #define EOF_DONE 2
  195.     };
  196. static YY_BUFFER_STATE yy_current_buffer;
  197. /* we provide macros for accessing buffer states in case in the
  198.  * future we want to put the buffer states in a more general
  199.  * "scanner state"
  200.  */
  201. #define YY_CURRENT_BUFFER yy_current_buffer
  202. /* yy_hold_char holds the character lost when yytext is formed */
  203. static YY_CHAR yy_hold_char;
  204. static int yy_n_chars; /* number of characters read into yy_ch_buf */
  205. #ifndef YY_USER_ACTION
  206. #define YY_USER_ACTION
  207. #endif
  208. #ifndef YY_USER_INIT
  209. #define YY_USER_INIT
  210. #endif
  211. extern YY_CHAR *yytext;
  212. extern int yyleng;
  213. extern FILE *yyin, *yyout;
  214. YY_CHAR *yytext;
  215. int yyleng;
  216. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  217. #define YY_END_OF_BUFFER 42
  218. typedef int yy_state_type;
  219. static const short int yy_accept[189] =
  220.     {   0,
  221.         0,    0,    0,    0,    0,    0,    0,    0,   42,    3,
  222.         3,    2,    3,    3,    3,    3,    3,    3,    3,   23,
  223.        41,   22,   23,   40,   24,   25,   27,   40,   39,   40,
  224.        24,   37,   41,   19,    0,    7,    5,    4,    6,    5,
  225.         0,    0,   17,   18,   18,   18,   18,   18,   18,   18,
  226.        23,   21,   20,   24,   38,   39,    0,   24,   37,   38,
  227.        38,   38,   38,   38,   38,    0,   19,    0,    0,    0,
  228.        18,   18,   18,   18,    8,   18,   18,   18,   18,   38,
  229.         0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
  230.        38,   38,   28,   38,   38,   38,   38,    0,    1,   18,
  231.        18,   18,   18,   18,   18,   18,   18,    0,   26,    0,
  232.         0,    0,   28,    0,    0,    0,    0,   38,   38,   38,
  233.        38,   38,   38,   38,   38,   18,   10,   18,   18,   18,
  234.        16,   18,   18,    0,    0,    0,    0,    0,    0,    0,
  235.         0,   38,   30,   38,   38,   38,   36,   38,   38,   18,
  236.        11,    9,   18,   18,   13,    0,   30,    0,    0,    0,
  237.        36,    0,    0,   38,   31,   29,   38,   38,   33,   12,
  238.        18,   15,    0,   31,   29,    0,    0,   33,   32,   38,
  239.        35,   14,   32,    0,   35,   34,   34,    0
  240.     } ;
  241. static const YY_CHAR yy_ec[256] =
  242.     {   0,
  243.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  244.         1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
  245.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  246.         1,    2,    1,    4,    5,    1,    1,    1,    1,    6,
  247.         7,    8,    1,    9,    1,    1,   10,   11,   11,   11,
  248.        11,   11,   11,   11,   11,   11,   11,    1,    1,    1,
  249.         1,    1,    1,    1,   14,   13,   15,   16,   17,   18,
  250.        19,   13,   20,   13,   13,   21,   22,   23,   13,   24,
  251.        13,   25,   26,   13,   27,   13,   13,   13,   13,   13,
  252.         1,   12,    1,    1,   13,    1,   14,   13,   15,   16,
  253.        17,   18,   19,   13,   20,   13,   13,   21,   22,   23,
  254.        13,   24,   13,   25,   26,   13,   27,   13,   13,   13,
  255.        13,   13,    1,    1,    1,    1,    1,    1,    1,    1,
  256.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  257.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  258.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  259.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  260.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  261.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  262.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  263.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  264.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  265.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  266.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  267.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  268.         1,    1,    1,    1,    1
  269.     } ;
  270. static const YY_CHAR yy_meta[28] =
  271.     {   0,
  272.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  273.         2,    1,    3,    3,    3,    3,    3,    3,    3,    3,
  274.         3,    3,    3,    3,    3,    3,    3
  275.     } ;
  276. static const short int yy_base[202] =
  277.     {   0,
  278.         0,    9,   17,   19,   30,   39,  255,  254,  256,  259,
  279.        43,  259,  250,  252,  259,  251,  244,   49,   54,  259,
  280.       259,  259,   21,  259,  249,  259,  259,    0,  248,  241,
  281.        25,   66,  245,  259,   53,  259,  245,  259,  244,  243,
  282.        18,   87,  239,    0,  226,   15,   43,  222,  216,  217,
  283.       259,  259,  259,  237,    0,  236,   55,   83,   81,  220,
  284.        83,   77,  216,  210,  211,  230,  259,   99,  102,  103,
  285.         0,  214,  205,  214,  213,  213,  204,  212,  209,    0,
  286.       106,  107,  110,  207,   98,  104,  203,  197,  198,  202,
  287.       193,  202,  201,  201,  192,  200,  197,  115,  259,  192,
  288.       194,  190,  192,  187,  190,  187,  188,  116,  259,  186,
  289.       177,  186,  185,  185,  176,  184,  181,  176,  178,  174,
  290.       176,  171,  174,  171,  172,  165,    0,  169,  168,  158,
  291.         0,  162,  165,  162,  164,  160,  162,  157,  160,  157,
  292.       158,  151,    0,  155,  154,  144,    0,  148,  151,  151,
  293.         0,    0,  151,  152,    0,  142,  259,  146,  145,  135,
  294.       259,   81,   81,   74,    0,    0,   68,   50,    0,    0,
  295.        40,    0,   36,  259,  259,   31,   32,  259,    0,   20,
  296.         0,    0,  259,    0,  259,    0,  259,  259,  127,  130,
  297.       133,  136,  139,    0,  142,  145,  147,  149,  152,  155,
  298.       158
  299.     } ;
  300. static const short int yy_def[202] =
  301.     {   0,
  302.       189,  189,  190,  190,  191,  191,  192,  192,  188,  188,
  303.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  304.       188,  188,  193,  188,  188,  188,  188,  194,  188,  188,
  305.       188,  194,  195,  188,  188,  188,  188,  188,  188,  188,
  306.       196,  188,   19,  197,  197,  197,  197,  197,  197,  197,
  307.       188,  188,  188,  188,  198,  188,  199,  188,  188,  198,
  308.       198,  198,  198,  198,  198,  195,  188,  196,  200,  196,
  309.       197,  197,  197,  197,  197,  197,  197,  197,  197,  198,
  310.       199,  201,  199,  188,  188,  188,  188,  188,  188,  198,
  311.       198,  198,  198,  198,  198,  198,  198,  196,  188,  197,
  312.       197,  197,  197,  197,  197,  197,  197,  199,  188,  188,
  313.       188,  188,  188,  188,  188,  188,  188,  198,  198,  198,
  314.       198,  198,  198,  198,  198,  197,  197,  197,  197,  197,
  315.       197,  197,  197,  188,  188,  188,  188,  188,  188,  188,
  316.       188,  198,  198,  198,  198,  198,  198,  198,  198,  197,
  317.       197,  197,  197,  197,  197,  188,  188,  188,  188,  188,
  318.       188,  188,  188,  198,  198,  198,  198,  198,  198,  197,
  319.       197,  197,  188,  188,  188,  188,  188,  188,  198,  198,
  320.       198,  197,  188,  188,  188,  198,  188,    0,  188,  188,
  321.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  322.       188
  323.     } ;
  324. static const short int yy_nxt[287] =
  325.     {   0,
  326.       188,   11,   55,   12,   13,   14,   15,  188,   16,   17,
  327.        18,  188,   12,   19,   14,   15,  187,   16,   17,   21,
  328.        22,   21,   22,   52,   53,   69,   58,   70,   23,   59,
  329.        23,   25,   26,   27,   28,   73,  186,   74,   29,   30,
  330.        31,   26,   27,   32,   35,  185,  184,   29,   30,   36,
  331.        42,   37,  183,   43,   35,   36,  182,   37,   38,   36,
  332.        75,   37,   82,  181,   83,   76,   44,   44,   44,   45,
  333.        46,   44,   44,   47,   48,   44,   44,   49,   44,   44,
  334.        50,   60,   61,  180,   58,   62,   63,   59,   42,   64,
  335.       179,   43,   65,   36,   93,   37,   84,   85,  178,   94,
  336.        86,   87,  177,   91,   88,   92,   69,   89,   70,   69,
  337.        69,   99,   70,   82,   82,   83,  109,   82,  111,   83,
  338.       112,  113,   69,   82,   70,   83,  114,   10,   10,   10,
  339.        20,   20,   20,   24,   24,   24,   33,   33,   33,   51,
  340.        51,   51,   66,   66,   66,   68,   68,   68,   71,   71,
  341.        80,   80,   81,   81,   81,   98,   98,   98,  108,  108,
  342.       108,  176,  175,  174,  173,  172,  171,  170,  169,  168,
  343.       167,  166,  165,  164,  163,  162,  161,  160,  159,  158,
  344.       157,  156,  155,  154,  153,  152,  151,  150,  149,  148,
  345.       147,  146,  145,  144,  143,  142,  141,  140,  139,  138,
  346.       137,  136,  135,  134,  133,  132,  131,  130,  129,  128,
  347.       127,  126,  125,  124,  123,  122,  121,  120,  119,  118,
  348.       117,  116,  115,  110,  107,  106,  105,  104,  103,  102,
  349.       101,  100,   67,   97,   96,   95,   90,   56,   54,   79,
  350.        78,   77,   72,  188,   40,   39,   40,   67,   57,   56,
  351.        54,   41,   40,   39,   38,  188,   34,   34,    9,  188,
  352.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  353.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  354.       188,  188,  188,  188,  188,  188
  355.     } ;
  356. static const short int yy_chk[287] =
  357.     {   0,
  358.         0,    1,  194,    1,    1,    1,    1,    0,    1,    1,
  359.         2,    0,    2,    2,    2,    2,  184,    2,    2,    3,
  360.         3,    4,    4,   23,   23,   41,   31,   41,    3,   31,
  361.         4,    5,    5,    5,    5,   46,  180,   46,    5,    5,
  362.         6,    6,    6,    6,   11,  177,  176,    6,    6,   11,
  363.        18,   11,  173,   18,   35,   18,  171,   18,   19,   35,
  364.        47,   35,   57,  168,   57,   47,   19,   19,   19,   19,
  365.        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
  366.        19,   32,   32,  167,   58,   32,   32,   58,   42,   32,
  367.       164,   42,   32,   42,   62,   42,   59,   59,  163,   62,
  368.        59,   59,  162,   61,   59,   61,   68,   59,   68,   69,
  369.        70,   69,   70,   81,   82,   81,   82,   83,   85,   83,
  370.        85,   86,   98,  108,   98,  108,   86,  189,  189,  189,
  371.       190,  190,  190,  191,  191,  191,  192,  192,  192,  193,
  372.       193,  193,  195,  195,  195,  196,  196,  196,  197,  197,
  373.       198,  198,  199,  199,  199,  200,  200,  200,  201,  201,
  374.       201,  160,  159,  158,  156,  154,  153,  150,  149,  148,
  375.       146,  145,  144,  142,  141,  140,  139,  138,  137,  136,
  376.       135,  134,  133,  132,  130,  129,  128,  126,  125,  124,
  377.       123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
  378.       113,  112,  111,  110,  107,  106,  105,  104,  103,  102,
  379.       101,  100,   97,   96,   95,   94,   93,   92,   91,   90,
  380.        89,   88,   87,   84,   79,   78,   77,   76,   75,   74,
  381.        73,   72,   66,   65,   64,   63,   60,   56,   54,   50,
  382.        49,   48,   45,   43,   40,   39,   37,   33,   30,   29,
  383.        25,   17,   16,   14,   13,    9,    8,    7,  188,  188,
  384.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  385.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  386.       188,  188,  188,  188,  188,  188
  387.     } ;
  388. static yy_state_type yy_last_accepting_state;
  389. static YY_CHAR *yy_last_accepting_cpos;
  390. extern int yy_flex_debug;
  391. int yy_flex_debug = 1;
  392. static const short int yy_rule_linenum[41] =
  393.     {   0,
  394.        51,   52,   56,   57,   58,   59,   60,   62,   63,   64,
  395.        65,   66,   67,   68,   69,   70,   71,   72,   73,   77,
  396.        78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
  397.        88,   89,   90,   91,   92,   93,   94,   95,   96,   97
  398.     } ;
  399. /* the intent behind this definition is that it'll catch
  400.  * any uses of REJECT which flex missed
  401.  */
  402. #define REJECT reject_used_but_not_detected
  403. #define yymore() yymore_used_but_not_detected
  404. #define YY_MORE_ADJ 0
  405. /* these variables are all declared out here so that section 3 code can
  406.  * manipulate them
  407.  */
  408. /* points to current character in buffer */
  409. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  410. static int yy_init = 1; /* whether we need to initialize */
  411. static int yy_start = 0; /* start state number */
  412. /* flag which is used to allow yywrap()'s to do buffer switches
  413.  * instead of setting up a fresh yyin.  A bit of a hack ...
  414.  */
  415. static int yy_did_buffer_switch_on_eof;
  416. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  417. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  418. static int yy_get_next_buffer YY_PROTO(( void ));
  419. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  420. void yyrestart YY_PROTO(( FILE *input_file ));
  421. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  422. void yy_load_buffer_state YY_PROTO(( void ));
  423. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  424. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  425. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  426. #define yy_new_buffer yy_create_buffer
  427. #ifdef __cplusplus
  428. static int yyinput YY_PROTO(( void ));
  429. #else
  430. static int input YY_PROTO(( void ));
  431. #endif
  432. YY_DECL
  433.     {
  434.     register yy_state_type yy_current_state;
  435.     register YY_CHAR *yy_cp, *yy_bp;
  436.     register int yy_act;
  437.     
  438.   /*********************************************
  439.    *                C lexics                   *
  440.    *********************************************/
  441.     if ( yy_init )
  442. {
  443. YY_USER_INIT;
  444. if ( ! yy_start )
  445.     yy_start = 1; /* first start state */
  446. if ( ! yyin )
  447.     yyin = stdin;
  448. if ( ! yyout )
  449.     yyout = stdout;
  450. if ( yy_current_buffer )
  451.     yy_init_buffer( yy_current_buffer, yyin );
  452. else
  453.     yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  454. yy_load_buffer_state();
  455. yy_init = 0;
  456. }
  457.     while ( 1 ) /* loops until end-of-file is reached */
  458. {
  459. yy_cp = yy_c_buf_p;
  460. /* support of yytext */
  461. *yy_cp = yy_hold_char;
  462. /* yy_bp points to the position in yy_ch_buf of the start of the
  463.  * current run.
  464.  */
  465. yy_bp = yy_cp;
  466. yy_current_state = yy_start;
  467. if ( yy_bp[-1] == 'n' )
  468.     ++yy_current_state;
  469. yy_match:
  470. do
  471.     {
  472.     register YY_CHAR yy_c = yy_ec[*yy_cp];
  473.     if ( yy_accept[yy_current_state] )
  474. {
  475. yy_last_accepting_state = yy_current_state;
  476. yy_last_accepting_cpos = yy_cp;
  477. }
  478.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  479. {
  480. yy_current_state = yy_def[yy_current_state];
  481. if ( yy_current_state >= 189 )
  482.     yy_c = yy_meta[yy_c];
  483. }
  484.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  485.     ++yy_cp;
  486.     }
  487. while ( yy_current_state != 188 );
  488. yy_cp = yy_last_accepting_cpos;
  489. yy_current_state = yy_last_accepting_state;
  490. yy_find_action:
  491. yy_act = yy_accept[yy_current_state];
  492. YY_DO_BEFORE_ACTION;
  493. YY_USER_ACTION;
  494. do_action: /* this label is used only to access EOF actions */
  495. if ( yy_flex_debug )
  496.     {
  497.     if ( yy_act == 0 )
  498. fprintf( stderr, "--scanner backtrackingn" );
  499.     else if ( yy_act < 41 )
  500. fprintf( stderr, "--accepting rule at line %d ("%s")n",
  501.          yy_rule_linenum[yy_act], yytext );
  502.     else if ( yy_act == 41 )
  503. fprintf( stderr, "--accepting default rule ("%s")n",
  504.          yytext );
  505.     else if ( yy_act == 42 )
  506. fprintf( stderr, "--(end of buffer or a NUL)n" );
  507.     else
  508. fprintf( stderr, "--EOFn" );
  509.     }
  510. switch ( yy_act )
  511.     {
  512.     case 0: /* must backtrack */
  513.     /* undo the effects of YY_DO_BEFORE_ACTION */
  514.     *yy_cp = yy_hold_char;
  515.     yy_cp = yy_last_accepting_cpos;
  516.     yy_current_state = yy_last_accepting_state;
  517.     goto yy_find_action;
  518. case 1:
  519. # line 51 "a2k_p1.l"
  520. ECHO;
  521. YY_BREAK
  522. case 2:
  523. # line 52 "a2k_p1.l"
  524. {
  525.                           ECHO;
  526.   BEGIN(C_str);
  527. }
  528. YY_BREAK
  529. case 3:
  530. # line 56 "a2k_p1.l"
  531. ECHO;
  532. YY_BREAK
  533. case 4:
  534. # line 57 "a2k_p1.l"
  535. fputs("/**/",yyout);  /* ## --> comments in macro */
  536. YY_BREAK
  537. case 5:
  538. # line 58 "a2k_p1.l"
  539. fputs(",",yyout);     /* condence spaces in calls */
  540. YY_BREAK
  541. case 6:
  542. # line 59 "a2k_p1.l"
  543. fputs("(",yyout);    /*        ---- // ----      */
  544. YY_BREAK
  545. case 7:
  546. # line 60 "a2k_p1.l"
  547. fputs(")",yyout);    /*          ---- // ----    */
  548. YY_BREAK
  549.                 /* adjust cpp directives    */ 
  550. case 8:
  551. # line 62 "a2k_p1.l"
  552. fputs("#if",yyout);     
  553. YY_BREAK
  554. case 9:
  555. # line 63 "a2k_p1.l"
  556. fputs("#ifdef",yyout);  
  557. YY_BREAK
  558. case 10:
  559. # line 64 "a2k_p1.l"
  560. fputs("#else",yyout);   
  561. YY_BREAK
  562. case 11:
  563. # line 65 "a2k_p1.l"
  564. fputs("#endif",yyout);  
  565. YY_BREAK
  566. case 12:
  567. # line 66 "a2k_p1.l"
  568. fputs("#define",yyout);  
  569. YY_BREAK
  570. case 13:
  571. # line 67 "a2k_p1.l"
  572. fputs("#undef",yyout);  
  573. YY_BREAK
  574. case 14:
  575. # line 68 "a2k_p1.l"
  576. { fputs("#include",yyout); BEGIN(Skip); }
  577. YY_BREAK
  578. case 15:
  579. # line 69 "a2k_p1.l"
  580. { fputs("#pragma",yyout);  BEGIN(Skip); }
  581. YY_BREAK
  582. case 16:
  583. # line 70 "a2k_p1.l"
  584. { fputs("
  585. YY_BREAK
  586. case 17:
  587. # line 71 "a2k_p1.l"
  588. fputs("#",yyout);  
  589. YY_BREAK
  590. case 18:
  591. # line 72 "a2k_p1.l"
  592. { fprintf(yyout,""%s",yytext+1); BEGIN(C_str); }
  593. YY_BREAK
  594. case 19:
  595. # line 73 "a2k_p1.l"
  596. { ECHO; BEGIN(INITIAL); }
  597. YY_BREAK
  598.   /*********************************************
  599.    *               C string recognizer         *
  600.    *********************************************/
  601. case 20:
  602. # line 77 "a2k_p1.l"
  603. { ECHO; }
  604. YY_BREAK
  605. case 21:
  606. # line 78 "a2k_p1.l"
  607. { ECHO; }
  608. YY_BREAK
  609. case 22:
  610. # line 79 "a2k_p1.l"
  611. { BEGIN(C_str1); }
  612. YY_BREAK
  613. case 23:
  614. # line 80 "a2k_p1.l"
  615. { ECHO; }
  616. YY_BREAK
  617. case 24:
  618. # line 81 "a2k_p1.l"
  619. ; /* waiting */
  620. YY_BREAK
  621. case 25:
  622. # line 82 "a2k_p1.l"
  623. ; /* waiting */
  624. YY_BREAK
  625. case 26:
  626. # line 83 "a2k_p1.l"
  627. ; /* waiting */
  628. YY_BREAK
  629. case 27:
  630. # line 84 "a2k_p1.l"
  631. { BEGIN(C_str);  } /* clip strings */
  632. YY_BREAK
  633. case 28:
  634. # line 85 "a2k_p1.l"
  635. { fputs(""n#if",yyout);       BEGIN(INITIAL);  }
  636. YY_BREAK
  637. case 29:
  638. # line 86 "a2k_p1.l"
  639. { fputs(""n#ifdef",yyout);    BEGIN(INITIAL);  }
  640. YY_BREAK
  641. case 30:
  642. # line 87 "a2k_p1.l"
  643. { fputs(""n#else",yyout);     BEGIN(INITIAL);  }
  644. YY_BREAK
  645. case 31:
  646. # line 88 "a2k_p1.l"
  647. { fputs(""n#endif",yyout);    BEGIN(INITIAL);  }
  648. YY_BREAK
  649. case 32:
  650. # line 89 "a2k_p1.l"
  651. { fputs(""n#define",yyout);    BEGIN(INITIAL);  }
  652. YY_BREAK
  653. case 33:
  654. # line 90 "a2k_p1.l"
  655. { fputs(""n#undef",yyout);    BEGIN(INITIAL);  }
  656. YY_BREAK
  657. case 34:
  658. # line 91 "a2k_p1.l"
  659. { fputs(""n#include",yyout);  BEGIN(Skip);  }
  660. YY_BREAK
  661. case 35:
  662. # line 92 "a2k_p1.l"
  663. { fputs(""n#pragma",yyout);   BEGIN(Skip);  }
  664. YY_BREAK
  665. case 36:
  666. # line 93 "a2k_p1.l"
  667. { fputs(""n
  668. YY_BREAK
  669. case 37:
  670. # line 94 "a2k_p1.l"
  671. { fputs(""n#",yyout);         BEGIN(INITIAL);  }
  672. YY_BREAK
  673. case 38:
  674. # line 95 "a2k_p1.l"
  675. fputs(yytext+1,yyout); /* threw away # and leave name inside string */
  676. YY_BREAK
  677. case 39:
  678. # line 96 "a2k_p1.l"
  679. { fputs("",",yyout); BEGIN(INITIAL);  }
  680. YY_BREAK
  681. case 40:
  682. # line 97 "a2k_p1.l"
  683. { fprintf(yyout,""%s",yytext); BEGIN(INITIAL);  }
  684. YY_BREAK
  685. case 41:
  686. # line 98 "a2k_p1.l"
  687. ECHO;
  688. YY_BREAK
  689. case YY_STATE_EOF(INITIAL):
  690. case YY_STATE_EOF(C_str):
  691. case YY_STATE_EOF(C_str1):
  692. case YY_STATE_EOF(Skip):
  693.     yyterminate();
  694.     case YY_END_OF_BUFFER:
  695. {
  696. /* amount of text matched not including the EOB char */
  697. int yy_amount_of_matched_text = yy_cp - yytext - 1;
  698. /* undo the effects of YY_DO_BEFORE_ACTION */
  699. *yy_cp = yy_hold_char;
  700. /* note that here we test for yy_c_buf_p "<=" to the position
  701.  * of the first EOB in the buffer, since yy_c_buf_p will
  702.  * already have been incremented past the NUL character
  703.  * (since all states make transitions on EOB to the end-
  704.  * of-buffer state).  Contrast this with the test in yyinput().
  705.  */
  706. if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  707.     /* this was really a NUL */
  708.     {
  709.     yy_state_type yy_next_state;
  710.     yy_c_buf_p = yytext + yy_amount_of_matched_text;
  711.     yy_current_state = yy_get_previous_state();
  712.     /* okay, we're now positioned to make the
  713.      * NUL transition.  We couldn't have
  714.      * yy_get_previous_state() go ahead and do it
  715.      * for us because it doesn't know how to deal
  716.      * with the possibility of jamming (and we
  717.      * don't want to build jamming into it because
  718.      * then it will run more slowly)
  719.      */
  720.     yy_next_state = yy_try_NUL_trans( yy_current_state );
  721.     yy_bp = yytext + YY_MORE_ADJ;
  722.     if ( yy_next_state )
  723. {
  724. /* consume the NUL */
  725. yy_cp = ++yy_c_buf_p;
  726. yy_current_state = yy_next_state;
  727. goto yy_match;
  728. }
  729.     else
  730. {
  731.     yy_cp = yy_last_accepting_cpos;
  732.     yy_current_state = yy_last_accepting_state;
  733. goto yy_find_action;
  734. }
  735.     }
  736. else switch ( yy_get_next_buffer() )
  737.     {
  738.     case EOB_ACT_END_OF_FILE:
  739. {
  740. yy_did_buffer_switch_on_eof = 0;
  741. if ( yywrap() )
  742.     {
  743.     /* note: because we've taken care in
  744.      * yy_get_next_buffer() to have set up yytext,
  745.      * we can now set up yy_c_buf_p so that if some
  746.      * total hoser (like flex itself) wants
  747.      * to call the scanner after we return the
  748.      * YY_NULL, it'll still work - another YY_NULL
  749.      * will get returned.
  750.      */
  751.     yy_c_buf_p = yytext + YY_MORE_ADJ;
  752.     yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  753.     goto do_action;
  754.     }
  755. else
  756.     {
  757.     if ( ! yy_did_buffer_switch_on_eof )
  758. YY_NEW_FILE;
  759.     }
  760. }
  761. break;
  762.     case EOB_ACT_CONTINUE_SCAN:
  763. yy_c_buf_p = yytext + yy_amount_of_matched_text;
  764. yy_current_state = yy_get_previous_state();
  765. yy_cp = yy_c_buf_p;
  766. yy_bp = yytext + YY_MORE_ADJ;
  767. goto yy_match;
  768.     case EOB_ACT_LAST_MATCH:
  769. yy_c_buf_p =
  770.     &yy_current_buffer->yy_ch_buf[yy_n_chars];
  771. yy_current_state = yy_get_previous_state();
  772. yy_cp = yy_c_buf_p;
  773. yy_bp = yytext + YY_MORE_ADJ;
  774. goto yy_find_action;
  775.     }
  776. break;
  777. }
  778.     default:
  779. #ifdef FLEX_DEBUG
  780. printf( "action # %dn", yy_act );
  781. #endif
  782. YY_FATAL_ERROR(
  783. "fatal flex scanner internal error--no action found" );
  784.     }
  785. }
  786.     }
  787. /* yy_get_next_buffer - try to read in a new buffer
  788.  *
  789.  * synopsis
  790.  *     int yy_get_next_buffer();
  791.  *     
  792.  * returns a code representing an action
  793.  *     EOB_ACT_LAST_MATCH - 
  794.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  795.  *     EOB_ACT_END_OF_FILE - end of file
  796.  */
  797. static int yy_get_next_buffer()
  798.     {
  799.     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
  800.     register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
  801.     register int number_to_move, i;
  802.     int ret_val;
  803.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  804. YY_FATAL_ERROR(
  805. "fatal flex scanner internal error--end of buffer missed" );
  806.     /* try to read more data */
  807.     /* first move last chars to start of buffer */
  808.     number_to_move = yy_c_buf_p - yytext;
  809.     for ( i = 0; i < number_to_move; ++i )
  810. *(dest++) = *(source++);
  811.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  812. /* don't do the read, it's not guaranteed to return an EOF,
  813.  * just force an EOF
  814.  */
  815. yy_n_chars = 0;
  816.     else
  817. {
  818. int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  819. if ( num_to_read > YY_READ_BUF_SIZE )
  820.     num_to_read = YY_READ_BUF_SIZE;
  821. else if ( num_to_read <= 0 )
  822.     YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  823. /* read in more data */
  824. YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  825.   yy_n_chars, num_to_read );
  826. }
  827.     if ( yy_n_chars == 0 )
  828. {
  829. if ( number_to_move - YY_MORE_ADJ == 1 )
  830.     {
  831.     ret_val = EOB_ACT_END_OF_FILE;
  832.     yy_current_buffer->yy_eof_status = EOF_DONE;
  833.     }
  834. else
  835.     {
  836.     ret_val = EOB_ACT_LAST_MATCH;
  837.     yy_current_buffer->yy_eof_status = EOF_PENDING;
  838.     }
  839. }
  840.     else
  841. ret_val = EOB_ACT_CONTINUE_SCAN;
  842.     yy_n_chars += number_to_move;
  843.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  844.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  845.     /* yytext begins at the second character in yy_ch_buf; the first
  846.      * character is the one which preceded it before reading in the latest
  847.      * buffer; it needs to be kept around in case it's a newline, so
  848.      * yy_get_previous_state() will have with '^' rules active
  849.      */
  850.     yytext = &yy_current_buffer->yy_ch_buf[1];
  851.     return ( ret_val );
  852.     }
  853. /* yy_get_previous_state - get the state just before the EOB char was reached
  854.  *
  855.  * synopsis
  856.  *     yy_state_type yy_get_previous_state();
  857.  */
  858. static yy_state_type yy_get_previous_state()
  859.     {
  860.     register yy_state_type yy_current_state;
  861.     register YY_CHAR *yy_cp;
  862.     register YY_CHAR *yy_bp = yytext;
  863.     yy_current_state = yy_start;
  864.     if ( yy_bp[-1] == 'n' )
  865. ++yy_current_state;
  866.     for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  867. {
  868. register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  869. if ( yy_accept[yy_current_state] )
  870.     {
  871.     yy_last_accepting_state = yy_current_state;
  872.     yy_last_accepting_cpos = yy_cp;
  873.     }
  874. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  875.     {
  876.     yy_current_state = yy_def[yy_current_state];
  877.     if ( yy_current_state >= 189 )
  878. yy_c = yy_meta[yy_c];
  879.     }
  880. yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  881. }
  882.     return ( yy_current_state );
  883.     }
  884. /* yy_try_NUL_trans - try to make a transition on the NUL character
  885.  *
  886.  * synopsis
  887.  *     next_state = yy_try_NUL_trans( current_state );
  888.  */
  889. #ifdef YY_USE_PROTOS
  890. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  891. #else
  892. static yy_state_type yy_try_NUL_trans( yy_current_state )
  893. register yy_state_type yy_current_state;
  894. #endif
  895.     {
  896.     register int yy_is_jam;
  897.     register YY_CHAR *yy_cp = yy_c_buf_p;
  898.     register YY_CHAR yy_c = 1;
  899.     if ( yy_accept[yy_current_state] )
  900. {
  901. yy_last_accepting_state = yy_current_state;
  902. yy_last_accepting_cpos = yy_cp;
  903. }
  904.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  905. {
  906. yy_current_state = yy_def[yy_current_state];
  907. if ( yy_current_state >= 189 )
  908.     yy_c = yy_meta[yy_c];
  909. }
  910.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  911.     yy_is_jam = (yy_current_state == 188);
  912.     return ( yy_is_jam ? 0 : yy_current_state );
  913.     }
  914. #ifdef YY_USE_PROTOS
  915. static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
  916. #else
  917. static void yyunput( c, yy_bp )
  918. YY_CHAR c;
  919. register YY_CHAR *yy_bp;
  920. #endif
  921.     {
  922.     register YY_CHAR *yy_cp = yy_c_buf_p;
  923.     /* undo effects of setting up yytext */
  924.     *yy_cp = yy_hold_char;
  925.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  926. { /* need to shift things up to make room */
  927. register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  928. register YY_CHAR *dest =
  929.     &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  930. register YY_CHAR *source =
  931.     &yy_current_buffer->yy_ch_buf[number_to_move];
  932. while ( source > yy_current_buffer->yy_ch_buf )
  933.     *--dest = *--source;
  934. yy_cp += dest - source;
  935. yy_bp += dest - source;
  936. yy_n_chars = yy_current_buffer->yy_buf_size;
  937. if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  938.     YY_FATAL_ERROR( "flex scanner push-back overflow" );
  939. }
  940.     if ( yy_cp > yy_bp && yy_cp[-1] == 'n' )
  941. yy_cp[-2] = 'n';
  942.     *--yy_cp = c;
  943.     /* note: the formal parameter *must* be called "yy_bp" for this
  944.      *       macro to now work correctly
  945.      */
  946.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  947.     }
  948. #ifdef __cplusplus
  949. static int yyinput()
  950. #else
  951. static int input()
  952. #endif
  953.     {
  954.     int c;
  955.     YY_CHAR *yy_cp = yy_c_buf_p;
  956.     *yy_cp = yy_hold_char;
  957.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  958. {
  959. /* yy_c_buf_p now points to the character we want to return.
  960.  * If this occurs *before* the EOB characters, then it's a
  961.  * valid NUL; if not, then we've hit the end of the buffer.
  962.  */
  963. if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  964.     /* this was really a NUL */
  965.     *yy_c_buf_p = '';
  966. else
  967.     { /* need more input */
  968.     yytext = yy_c_buf_p;
  969.     ++yy_c_buf_p;
  970.     switch ( yy_get_next_buffer() )
  971. {
  972. case EOB_ACT_END_OF_FILE:
  973.     {
  974.     if ( yywrap() )
  975. {
  976. yy_c_buf_p = yytext + YY_MORE_ADJ;
  977. return ( EOF );
  978. }
  979.     YY_NEW_FILE;
  980. #ifdef __cplusplus
  981.     return ( yyinput() );
  982. #else
  983.     return ( input() );
  984. #endif
  985.     }
  986.     break;
  987. case EOB_ACT_CONTINUE_SCAN:
  988.     yy_c_buf_p = yytext + YY_MORE_ADJ;
  989.     break;
  990. case EOB_ACT_LAST_MATCH:
  991. #ifdef __cplusplus
  992.     YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  993. #else
  994.     YY_FATAL_ERROR( "unexpected last match in input()" );
  995. #endif
  996. }
  997.     }
  998. }
  999.     c = *yy_c_buf_p;
  1000.     yy_hold_char = *++yy_c_buf_p;
  1001.     return ( c );
  1002.     }
  1003. #ifdef YY_USE_PROTOS
  1004. void yyrestart( FILE *input_file )
  1005. #else
  1006. void yyrestart( input_file )
  1007. FILE *input_file;
  1008. #endif
  1009.     {
  1010.     yy_init_buffer( yy_current_buffer, input_file );
  1011.     yy_load_buffer_state();
  1012.     }
  1013. #ifdef YY_USE_PROTOS
  1014. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1015. #else
  1016. void yy_switch_to_buffer( new_buffer )
  1017. YY_BUFFER_STATE new_buffer;
  1018. #endif
  1019.     {
  1020.     if ( yy_current_buffer == new_buffer )
  1021. return;
  1022.     if ( yy_current_buffer )
  1023. {
  1024. /* flush out information for old buffer */
  1025. *yy_c_buf_p = yy_hold_char;
  1026. yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1027. yy_current_buffer->yy_n_chars = yy_n_chars;
  1028. }
  1029.     yy_current_buffer = new_buffer;
  1030.     yy_load_buffer_state();
  1031.     /* we don't actually know whether we did this switch during
  1032.      * EOF (yywrap()) processing, but the only time this flag
  1033.      * is looked at is after yywrap() is called, so it's safe
  1034.      * to go ahead and always set it.
  1035.      */
  1036.     yy_did_buffer_switch_on_eof = 1;
  1037.     }
  1038. #ifdef YY_USE_PROTOS
  1039. void yy_load_buffer_state( void )
  1040. #else
  1041. void yy_load_buffer_state()
  1042. #endif
  1043.     {
  1044.     yy_n_chars = yy_current_buffer->yy_n_chars;
  1045.     yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  1046.     yyin = yy_current_buffer->yy_input_file;
  1047.     yy_hold_char = *yy_c_buf_p;
  1048.     }
  1049. #ifdef YY_USE_PROTOS
  1050. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  1051. #else
  1052. YY_BUFFER_STATE yy_create_buffer( file, size )
  1053. FILE *file;
  1054. int size;
  1055. #endif
  1056.     {
  1057.     YY_BUFFER_STATE b;
  1058.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  1059.     if ( ! b )
  1060. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1061.     b->yy_buf_size = size;
  1062.     /* yy_ch_buf has to be 2 characters longer than the size given because
  1063.      * we need to put in 2 end-of-buffer characters.
  1064.      */
  1065.     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  1066.     if ( ! b->yy_ch_buf )
  1067. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1068.     yy_init_buffer( b, file );
  1069.     return ( b );
  1070.     }
  1071. #ifdef YY_USE_PROTOS
  1072. void yy_delete_buffer( YY_BUFFER_STATE b )
  1073. #else
  1074. void yy_delete_buffer( b )
  1075. YY_BUFFER_STATE b;
  1076. #endif
  1077.     {
  1078.     if ( b == yy_current_buffer )
  1079. yy_current_buffer = (YY_BUFFER_STATE) 0;
  1080.     free( (char *) b->yy_ch_buf );
  1081.     free( (char *) b );
  1082.     }
  1083. #ifdef YY_USE_PROTOS
  1084. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  1085. #else
  1086. void yy_init_buffer( b, file )
  1087. YY_BUFFER_STATE b;
  1088. FILE *file;
  1089. #endif
  1090.     {
  1091.     b->yy_input_file = file;
  1092.     /* we put in the 'n' and start reading from [1] so that an
  1093.      * initial match-at-newline will be true.
  1094.      */
  1095.     b->yy_ch_buf[0] = 'n';
  1096.     b->yy_n_chars = 1;
  1097.     /* we always need two end-of-buffer characters.  The first causes
  1098.      * a transition to the end-of-buffer state.  The second causes
  1099.      * a jam in that state.
  1100.      */
  1101.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1102.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  1103.     b->yy_buf_pos = &b->yy_ch_buf[1];
  1104.     b->yy_eof_status = EOF_NOT_SEEN;
  1105.     }
  1106. # line 98 "a2k_p1.l"
  1107. int
  1108. yywrap()
  1109. {
  1110.   return 1;
  1111. }
  1112. int
  1113. main (argc,argv)
  1114.      i4_t argc;
  1115.      char **argv;
  1116. {
  1117.   if ( argc != 3 )
  1118.     {
  1119.       fprintf("Usage: %s input_file output_filen",argv[0]);
  1120.       return 1;
  1121.     }
  1122.   yy_flex_debug = 0;
  1123.   yyin = fopen(argv[1],"r");
  1124.   assert( yyin != NULL);
  1125.   yyout = fopen(argv[2],"w");
  1126.   assert(yyout != NULL);
  1127.   yylex();
  1128.   fclose(yyin);
  1129.   fclose(yyout);
  1130.   return 0;
  1131. }
  1132. int yywrap() { return 1; }