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

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 "scan_s.l"
  124. #define INITIAL 0
  125. # line 2 "scan_s.l"
  126. /*
  127.  *  scan_s.l - SQL scanner / server side.
  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. /* $Id: scan_s.l,v 1.245 1997/03/31 03:46:38 kml Exp $ */
  153.   
  154. #include "xmem.h"
  155. #include "sql_decl.h"
  156. #include "trl.h"
  157. #include "parse.h"
  158. #include "const.h"
  159.   
  160.   
  161. #if defined(stderr)
  162. # undef stderr
  163. #endif
  164. #if defined(stdout)
  165. # undef stdout
  166. #endif
  167. #define stderr STDERR
  168. #define stdout STDOUT
  169. #define SQL_PROC(code)  if(code)
  170.   {
  171.     yylloc.first_line=line_num; file_pos=yylloc.last_line=line_num; 
  172.     if (code==TOK_IDENTIFIER && !strcmp(STRING(yylval.ltrp),"DEFINITION_SCHEMA")) 
  173.       yylval.ltrp = ltr_rec(SYSADM);
  174.     return code;
  175.   }
  176. #undef YY_INPUT
  177. #define YY_INPUT(buf,result,max_size) serv_scan_buf_inp(buf,&result,max_size)
  178. extern YYLTYPE yylloc;
  179. static i4_t line_num=0;
  180. static char *bufstring=NULL;
  181. static void 
  182. serv_scan_buf_inp(char *buf, i4_t *result, i4_t max_size)
  183.   register i4_t l = strlen (bufstring );
  184.   l= l > max_size ? max_size : l ;
  185.   if(l)
  186.     {
  187.       bcopy (bufstring, buf, l);
  188.       bufstring += l;
  189.       *result = l;
  190.     }
  191.   else
  192.     {
  193.       *result =  YY_NULL ;
  194.       *buf = 0 ;
  195.     }
  196. }
  197. /* void    SAVESTR(char *s,LTRLREF d); */
  198. #define SAVESTR(s,d)      d=ltr_rec(s)
  199. static str_buf s_scanner_buffer={0,0,NULL};
  200. #define sql_str(s,l)  buffer_string(&s_scanner_buffer,s,l)
  201. #define SQL_str 1
  202. #define SQL_comment 2
  203. #define Identifier 3
  204. # line 108 "scan_s.l"
  205. /* done after the current pattern has been matched and before the
  206.  * corresponding action - sets up yytext
  207.  */
  208. #define YY_DO_BEFORE_ACTION 
  209. yytext = yy_bp; 
  210. yyleng = yy_cp - yy_bp; 
  211. yy_hold_char = *yy_cp; 
  212. *yy_cp = ''; 
  213. yy_c_buf_p = yy_cp;
  214. #define EOB_ACT_CONTINUE_SCAN 0
  215. #define EOB_ACT_END_OF_FILE 1
  216. #define EOB_ACT_LAST_MATCH 2
  217. /* return all but the first 'n' matched characters back to the input stream */
  218. #define yyless(n) 
  219. do 
  220. /* undo effects of setting up yytext */ 
  221. *yy_cp = yy_hold_char; 
  222. yy_c_buf_p = yy_cp = yy_bp + n; 
  223. YY_DO_BEFORE_ACTION; /* set up yytext again */ 
  224. while ( 0 )
  225. #define unput(c) yyunput( c, yytext )
  226. struct yy_buffer_state
  227.     {
  228.     FILE *yy_input_file;
  229.     YY_CHAR *yy_ch_buf; /* input buffer */
  230.     YY_CHAR *yy_buf_pos; /* current position in input buffer */
  231.     /* size of input buffer in bytes, not including room for EOB characters */
  232.     int yy_buf_size;
  233.     /* number of characters read into yy_ch_buf, not including EOB characters */
  234.     int yy_n_chars;
  235.     int yy_eof_status; /* whether we've seen an EOF on this buffer */
  236. #define EOF_NOT_SEEN 0
  237.     /* "pending" happens when the EOF has been seen but there's still
  238.      * some text process
  239.      */
  240. #define EOF_PENDING 1
  241. #define EOF_DONE 2
  242.     };
  243. static YY_BUFFER_STATE yy_current_buffer;
  244. /* we provide macros for accessing buffer states in case in the
  245.  * future we want to put the buffer states in a more general
  246.  * "scanner state"
  247.  */
  248. #define YY_CURRENT_BUFFER yy_current_buffer
  249. /* yy_hold_char holds the character lost when yytext is formed */
  250. static YY_CHAR yy_hold_char;
  251. static int yy_n_chars; /* number of characters read into yy_ch_buf */
  252. #ifndef YY_USER_ACTION
  253. #define YY_USER_ACTION
  254. #endif
  255. #ifndef YY_USER_INIT
  256. #define YY_USER_INIT
  257. #endif
  258. extern YY_CHAR *yytext;
  259. extern int yyleng;
  260. extern FILE *yyin, *yyout;
  261. YY_CHAR *yytext;
  262. int yyleng;
  263. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  264. #define YY_END_OF_BUFFER 133
  265. typedef int yy_state_type;
  266. static const short int yy_accept[471] =
  267.     {   0,
  268.         0,    0,    0,    0,    0,    0,    0,    0,  133,  121,
  269.       116,  120,  118,  117,  107,  108,   99,   97,  109,   98,
  270.       110,  100,  112,  121,   16,  104,  101,  103,   11,  111,
  271.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  272.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  273.       111,  124,  123,  125,  130,  131,  128,  127,  129,  116,
  274.       119,  113,  115,  113,  112,   10,  106,  102,  105,  111,
  275.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  276.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  277.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  278.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  279.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  280.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  281.       124,  122,  128,  126,  115,  114,   10,  111,  111,  111,
  282.       111,   40,  111,  111,  111,  111,  111,   43,  111,  111,
  283.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  284.       111,  111,  111,    7,  111,  111,  111,  111,  111,  111,
  285.       111,    5,  111,  111,  111,  111,   58,  111,  111,  111,
  286.        62,   29,  111,  111,  111,  111,  111,  111,  111,  111,
  287.        65,   66,  111,  111,   90,  111,  111,  111,  111,  111,
  288.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  289.       111,  111,  111,   26,  111,  111,  111,  111,  111,  111,
  290.       111,  111,   38,  111,   89,   39,   41,  111,   92,  111,
  291.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  292.        82,  111,  111,  111,  111,  111,  111,  111,   18,  111,
  293.       111,  111,  111,   54,  111,  111,   55,  111,  111,  111,
  294.       111,  111,  111,  111,   83,  111,   61,  111,   63,   93,
  295.        94,  111,   91,   64,  111,   67,  111,  111,  111,  111,
  296.       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
  297.        71,  111,   72,  111,  111,   95,  111,  111,  111,  111,
  298.        75,  111,   22,  111,  111,   78,   79,   19,  111,    6,
  299.       111,   80,  111,   25,   44,  111,  111,  111,  111,  111,
  300.       111,  111,  111,  111,  111,   49,  111,  111,  111,  111,
  301.        53,  111,  111,    2,   23,   56,  111,   31,  111,  111,
  302.       111,  111,  111,  111,  111,   68,  111,  111,  111,  111,
  303.       111,   86,  111,  111,  111,  111,  111,  111,  111,  111,
  304.       111,   21,   73,  111,  111,  111,  111,   77,  111,  111,
  305.       111,   45,  111,   96,   17,  111,   47,  111,  111,  111,
  306.        48,  111,  111,   51,   52,   85,  111,   57,  111,   60,
  307.       111,  111,   12,  111,   32,  111,  111,  111,  111,   34,
  308.       111,   24,  111,   20,  111,   70,  111,  111,  111,   36,
  309.        74,   76,  111,  111,   42,  111,  111,   46,  111,    8,
  310.        27,  111,   87,   28,  111,  111,  111,  111,  111,   30,
  311.       111,  111,  111,  111,    9,  111,   15,  111,  111,  111,
  312.       111,    4,   50,  111,   13,   81,  111,  111,  111,  111,
  313.        69,  111,    3,    1,  111,  111,   59,  111,  111,   14,
  314.       111,   84,  111,   88,   33,   35,  111,  111,   37,    0
  315.     } ;
  316. static const YY_CHAR yy_ec[256] =
  317.     {   0,
  318.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  319.         1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
  320.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  321.         1,    2,    1,    4,    1,    1,    1,    1,    5,    6,
  322.         7,    8,    9,   10,   11,   12,   13,   14,   14,   14,
  323.        14,   14,   14,   14,   14,   14,   14,   15,   16,   17,
  324.        18,   19,   20,    1,   22,   23,   24,   25,   26,   27,
  325.        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
  326.        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
  327.         1,    1,    1,    1,   21,    1,   22,   23,   24,   25,
  328.        26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
  329.        36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
  330.        46,   47,    1,    1,    1,    1,    1,    1,    1,    1,
  331.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  332.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  333.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  334.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  335.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  336.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  337.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  338.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  339.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  340.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  341.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  342.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  343.         1,    1,    1,    1,    1
  344.     } ;
  345. static const YY_CHAR yy_meta[48] =
  346.     {   0,
  347.         1,    1,    2,    3,    4,    1,    1,    1,    1,    1,
  348.         1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
  349.         5,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  350.         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  351.         6,    6,    6,    6,    6,    6,    6
  352.     } ;
  353. static const short int yy_base[479] =
  354.     {   0,
  355.         0,    0,   45,   46, 1065, 1064,   49,   51, 1066, 1069,
  356.      1063, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1053,
  357.        42, 1069,   45,    0, 1069,   42, 1069, 1045, 1069,   29,
  358.        32,   34,   49,   42,   57,   45, 1040,   51,    0, 1035,
  359.        44,   67,   56,   67,   66,   73,   86,   78,   76,   85,
  360.        89,    0, 1069, 1055, 1069, 1069,    0, 1069, 1055, 1056,
  361.      1069,  103,  112,  113,  118,    0, 1069, 1069, 1069,    0,
  362.       100,   55,  141, 1016, 1028,  127,  168,  109, 1019,  155,
  363.      1028, 1014,  167, 1012, 1009, 1014, 1024, 1024, 1017, 1005,
  364.      1009,   95, 1008,  207,  160, 1000,  248,  289,  996, 1006,
  365.      1008,  994, 1003, 1012,  995,  129,  309,  329,  180,  349,
  366.       169, 1012,  219, 1001, 1004,  204, 1010,  997,  997,  995,
  367.      1005,  374,  997, 1001,  999,  991,  997,  996,  980,  981,
  368.         0, 1069,    0, 1069, 1005, 1004,    0,  394,  991,  414,
  369.       434, 1069,  454,  987,  474,  985,  970, 1069,  974,  988,
  370.       971,  976,  968,  973,  985,  127,  494,  984,  979,  980,
  371.       962,  979,  964,    0,  978,  959,  974,  975,  527,  961,
  372.       961, 1069,  958,  958,  950,  961, 1069,  110,  964,  553,
  373.      1069,    0,  961,  962,  589,  609,  945,  629,  953,  959,
  374.      1069, 1069,  949,  953, 1069,  956,  957,  158,  956,  946,
  375.       945,  951,  940,  942,  948,  932,  946,  649,  938,  944,
  376.       178,  669,  936, 1069,  193,  946,  928,  924,  921,  195,
  377.       935,  931, 1069,  923, 1069, 1069, 1069,  925, 1069,  925,
  378.       933,  689,  926,  931,  926,  925,  913,  912,  926,  915,
  379.      1069,  916,  927,  906,  906,  711,  916,  912,    0,  907,
  380.       902,  913,  900, 1069,  910,  914,    0,  897,  896,  899,
  381.       900,  889,  909,  893, 1069,  903,    0,  888,    0, 1069,
  382.      1069,  896, 1069,    0,  889,    0,  891,  887,  895,  902,
  383.       893,  896,  891,  731,  881,  887,  895,  883,  886,  891,
  384.      1069,  881,    0,  877,  873, 1069,  885,  875,  867,  867,
  385.         0,  881,    0,  880,  874,    0,    0,    0,  860,    0,
  386.       869, 1069,  869,    0,    0,  824,  810,  751,  799,  770,
  387.       746,  743,  706,  692,  684, 1069,  668,  657,  637,  603,
  388.         0,  771,  595,    0,    0,    0,  575,    0,  566,  546,
  389.       560,  563,  558,  553,  547,    0,  541,  541,  545,  552,
  390.       552, 1069,  549,  548,  545,  530,  515,  509,  519,  523,
  391.       502,    0,    0,  500,  499,  483,  479,    0,  491,  485,
  392.       478,    0,  476, 1069,    0,  476,    0,  483,  489,  467,
  393.         0,  464,  791,    0,    0, 1069,  433,    0,  407,    0,
  394.       389,  380,    0,  364,    0,  343,  326,  345,  328,    0,
  395.       328,    0,  319,    0,  288,    0,  268,  261,  250,    0,
  396.         0,    0,  259,  237,    0,  257,  256,    0,  202,    0,
  397.         0,  240, 1069,    0,  244,  167,  253,  811,  242,    0,
  398.       249,  237,  251,  242,    0,  231,    0,  232,  231,  247,
  399.       208,    0,    0,  205,    0, 1069,  208,  216,  214,  213,
  400.         0,  831,    0,    0,  197,  214,    0,  851,  193,    0,
  401.       158, 1069,  134, 1069,    0,    0,  102,   60,    0, 1069,
  402.       871,  877,  883,   59,  885,  891,  897,  899
  403.     } ;
  404. static const short int yy_def[479] =
  405.     {   0,
  406.       470,    1,  471,  471,  472,  472,  473,  473,  470,  470,
  407.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  408.       470,  470,  470,  474,  470,  470,  470,  470,  470,  475,
  409.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  410.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  411.       475,  476,  470,  470,  470,  470,  477,  470,  470,  470,
  412.       470,  470,  470,  470,  470,  478,  470,  470,  470,  475,
  413.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  414.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  415.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  416.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  417.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  418.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  419.       476,  470,  477,  470,  470,  470,  478,  475,  475,  475,
  420.       475,  470,  475,  475,  475,  475,  475,  470,  475,  475,
  421.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  422.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  423.       475,  470,  475,  475,  475,  475,  470,  475,  475,  475,
  424.       470,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  425.       470,  470,  475,  475,  470,  475,  475,  475,  475,  475,
  426.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  427.       475,  475,  475,  470,  475,  475,  475,  475,  475,  475,
  428.       475,  475,  470,  475,  470,  470,  470,  475,  470,  475,
  429.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  430.       470,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  431.       475,  475,  475,  470,  475,  475,  475,   94,  475,  475,
  432.       475,  475,  475,  475,  470,  475,  475,  475,  475,  470,
  433.       470,  475,  470,  475,  475,  475,  475,  475,  475,  475,
  434.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  435.       470,  475,  475,  475,  475,  470,  475,  475,  475,  475,
  436.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  437.       475,  470,  475,  475,  475,  475,  475,  475,  475,  475,
  438.       475,  475,  475,  475,  475,  470,  475,  475,  475,  475,
  439.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  440.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  441.       475,  470,  475,  475,  475,  475,  475,  475,  475,  475,
  442.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  443.       475,  475,  475,  470,  475,  475,  475,  475,  475,  475,
  444.       475,  475,  475,  475,  475,  470,  475,  475,  475,  475,
  445.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  446.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  447.       475,  475,  475,  475,  475,  475,  475,  475,  157,  475,
  448.       475,  475,  470,  475,  475,  180,  475,  475,  475,  475,
  449.       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
  450.       475,  475,  475,  475,  475,  470,  475,  475,  475,  475,
  451.       475,  475,  475,  475,  475,  232,  475,  475,  475,  475,
  452.       475,  470,  475,  470,  475,  475,  475,  475,  475,    0,
  453.       470,  470,  470,  470,  470,  470,  470,  470
  454.     } ;
  455. static const short int yy_nxt[1117] =
  456.     {   0,
  457.        10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
  458.        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
  459.        10,   30,   31,   32,   33,   34,   35,   36,   37,   38,
  460.        39,   40,   41,   42,   43,   44,   45,   39,   46,   47,
  461.        48,   49,   50,   51,   39,   39,   39,   53,   53,   54,
  462.        54,   58,   59,   58,   59,   62,   64,   76,   65,   67,
  463.        68,   71,   78,   72,   66,  100,   79,   63,   73,   80,
  464.        74,   75,   81,  101,   83,   82,   87,   77,   84,  140,
  465.        94,   88,   90,   95,   85,   97,   89,   86,  102,   91,
  466.        98,  105,   92,  107,  469,   93,  103,  106,  113,  121,
  467.       141,  108,  104,  109,  111,  110,  126,  112,  114,  115,
  468.       123,  116,  124,  122,  127,  125,   62,  128,  129,  117,
  469.       135,  118,  135,  119,  130,  136,   62,  120,   63,   64,
  470.       149,   65,  138,  169,  150,  262,  170,  468,   63,  263,
  471.       139,  142,  142,  142,  142,  142,  142,  142,  142,  142,
  472.       142,  142,  142,  142,  146,  142,  142,  142,  142,  142,
  473.       142,  189,  190,  467,  143,  239,  240,  147,  148,  148,
  474.       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
  475.       148,  174,  148,  148,  148,  148,  148,  148,  152,  153,
  476.       157,  280,   70,  158,  197,  175,  154,  466,  198,  159,
  477.       281,  294,   70,  295,  199,  193,  160,  172,  172,  172,
  478.       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
  479.       194,  172,  172,  172,  172,  172,  172,  206,  298,  304,
  480.       299,   70,  465,  305,   70,   70,  207,  463,  461,  460,
  481.       201,  459,  458,  457,  208,  202,  456,  173,  177,  177,
  482.       177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
  483.       177,  203,  177,  177,  177,  177,  177,  177,  455,  454,
  484.       453,  452,  178,  451,  450,  449,  448,  447,  445,  444,
  485.       443,  442,  441,  440,  439,  438,  437,  179,  180,  181,
  486.       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
  487.       181,  181,  436,  181,  181,  181,  181,  181,  181,  191,
  488.       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
  489.       191,  191,  435,  191,  191,  191,  191,  191,  191,  192,
  490.       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
  491.       192,  192,  434,  192,  192,  192,  192,  192,  192,  195,
  492.       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
  493.       195,  195,  433,  195,  195,  195,  195,  195,  195,  432,
  494.       431,  430,  429,  196,  214,  214,  214,  214,  214,  214,
  495.       214,  214,  214,  214,  214,  214,  214,  428,  214,  214,
  496.       214,  214,  214,  214,  223,  223,  223,  223,  223,  223,
  497.       223,  223,  223,  223,  223,  223,  223,  427,  223,  223,
  498.       223,  223,  223,  223,  225,  225,  225,  225,  225,  225,
  499.       225,  225,  225,  225,  225,  225,  225,  426,  225,  225,
  500.       225,  225,  225,  225,  226,  226,  226,  226,  226,  226,
  501.       226,  226,  226,  226,  226,  226,  226,  425,  226,  226,
  502.       226,  226,  226,  226,  227,  227,  227,  227,  227,  227,
  503.       227,  227,  227,  227,  227,  227,  227,  424,  227,  227,
  504.       227,  227,  227,  227,  229,  229,  229,  229,  229,  229,
  505.       229,  229,  229,  229,  229,  229,  229,  422,  229,  229,
  506.       229,  229,  229,  229,  241,  241,  241,  241,  241,  241,
  507.       241,  241,  241,  241,  241,  241,  241,  421,  241,  241,
  508.       241,  241,  241,  241,  420,  419,  418,  417,  416,  415,
  509.       414,  413,  412,  242,  411,  410,  243,  254,  254,  254,
  510.       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
  511.       409,  254,  254,  254,  254,  254,  254,  408,  407,  406,
  512.       405,  404,  255,  265,  265,  265,  265,  265,  265,  265,
  513.       265,  265,  265,  265,  265,  265,  403,  265,  265,  265,
  514.       265,  265,  265,  402,  401,  400,  399,  398,  266,  397,
  515.       396,  395,  394,  393,  392,  391,  390,  389,  267,  270,
  516.       270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
  517.       270,  270,  388,  270,  270,  270,  270,  270,  270,  271,
  518.       271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
  519.       271,  271,  387,  271,  271,  271,  271,  271,  271,  273,
  520.       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
  521.       273,  273,  385,  273,  273,  273,  273,  273,  273,  291,
  522.       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
  523.       291,  291,  384,  291,  291,  291,  291,  291,  291,  296,
  524.       296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
  525.       296,  296,  383,  296,  296,  296,  296,  296,  296,  312,
  526.       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
  527.       312,  312,  382,  312,  312,  312,  312,  312,  312,  381,
  528.       313,  326,  326,  326,  326,  326,  326,  326,  326,  326,
  529.       326,  326,  326,  326,  380,  326,  326,  326,  326,  326,
  530.       326,  352,  352,  352,  352,  352,  352,  352,  352,  352,
  531.       352,  352,  352,  352,  379,  352,  352,  352,  352,  352,
  532.       352,  374,  374,  374,  374,  374,  374,  374,  374,  374,
  533.       374,  374,  374,  374,  378,  374,  374,  374,  374,  374,
  534.       374,  386,  386,  386,  386,  386,  386,  386,  386,  386,
  535.       386,  386,  386,  386,  377,  386,  386,  386,  386,  386,
  536.       386,  423,  423,  423,  423,  423,  423,  423,  423,  423,
  537.       423,  423,  423,  423,  376,  423,  423,  423,  423,  423,
  538.       423,  446,  446,  446,  446,  446,  446,  446,  446,  446,
  539.       446,  446,  446,  446,  375,  446,  446,  446,  446,  446,
  540.       446,  462,  462,  462,  462,  462,  462,  462,  462,  462,
  541.       462,  462,  462,  462,  373,  462,  462,  462,  462,  462,
  542.       462,  464,  464,  464,  464,  464,  464,  464,  464,  464,
  543.       464,  464,  464,  464,  372,  464,  464,  464,  464,  464,
  544.       464,   52,   52,   52,   52,   52,   52,   55,   55,   55,
  545.        55,   55,   55,   57,   57,   57,   57,   57,   57,   70,
  546.        70,  131,  371,  131,  370,  131,  131,  133,  369,  368,
  547.       133,  133,  133,  137,  137,  367,  366,  365,  364,  363,
  548.       362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
  549.       351,  350,  349,  348,  347,  346,  345,  344,  343,  342,
  550.       341,  340,  339,  338,  337,  336,  335,   70,  334,  333,
  551.       332,  331,  330,  329,  328,  327,  325,  324,  323,  322,
  552.       321,  320,  319,  318,  317,  316,  315,  314,  311,  310,
  553.       309,  308,  307,  306,  303,  302,  301,  300,  297,  293,
  554.       292,  290,  289,  288,  287,  286,  285,  284,  283,  282,
  555.       279,  278,  277,  276,  275,  274,  272,  269,  268,  264,
  556.       261,  260,  259,  258,  257,  256,  253,  252,  251,  250,
  557.       249,  248,  247,  246,  245,  244,  238,  237,  236,  235,
  558.       234,  233,  232,  231,  230,  228,  224,  136,  136,  222,
  559.       221,  220,  219,  218,  217,  216,  215,  213,  212,  211,
  560.       210,  209,  205,  204,  200,  188,  187,  186,  185,  184,
  561.       183,  182,  176,  171,  168,  167,  166,  165,  164,  163,
  562.       162,  161,  156,  155,  151,  145,  144,   60,  134,  132,
  563.        99,   96,   69,   61,   60,  470,   56,   56,    9,  470,
  564.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  565.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  566.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  567.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  568.       470,  470,  470,  470,  470,  470
  569.     } ;
  570. static const short int yy_chk[1117] =
  571.     {   0,
  572.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  573.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  574.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  575.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  576.         1,    1,    1,    1,    1,    1,    1,    3,    4,    3,
  577.         4,    7,    7,    8,    8,   21,   23,   31,   23,   26,
  578.        26,   30,   32,   30,  474,   41,   32,   21,   30,   32,
  579.        30,   30,   32,   41,   33,   32,   34,   31,   33,   72,
  580.        36,   34,   35,   36,   33,   38,   34,   33,   42,   35,
  581.        38,   43,   35,   44,  468,   35,   42,   43,   46,   48,
  582.        72,   44,   42,   44,   45,   44,   50,   45,   46,   47,
  583.        49,   47,   49,   48,   50,   49,   62,   51,   51,   47,
  584.        63,   47,   63,   47,   51,   63,   64,   47,   62,   65,
  585.        78,   65,   71,   92,   78,  178,   92,  467,   64,  178,
  586.        71,   73,   73,   73,   73,   73,   73,   73,   73,   73,
  587.        73,   73,   73,   73,   76,   73,   73,   73,   73,   73,
  588.        73,  106,  106,  463,   73,  156,  156,   76,   77,   77,
  589.        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
  590.        77,   95,   77,   77,   77,   77,   77,   77,   80,   80,
  591.        83,  198,  426,   83,  111,   95,   80,  461,  111,   83,
  592.       198,  211,  426,  211,  111,  109,   83,   94,   94,   94,
  593.        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
  594.       109,   94,   94,   94,   94,   94,   94,  116,  215,  220,
  595.       215,  419,  459,  220,  419,  456,  116,  455,  450,  449,
  596.       113,  448,  447,  444,  116,  113,  441,   94,   97,   97,
  597.        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
  598.        97,  113,   97,   97,   97,   97,   97,   97,  440,  439,
  599.       438,  436,   97,  434,  433,  432,  431,  429,  427,  425,
  600.       422,  417,  416,  414,  413,  409,  408,   97,   97,   98,
  601.        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  602.        98,   98,  407,   98,   98,   98,   98,   98,   98,  107,
  603.       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
  604.       107,  107,  405,  107,  107,  107,  107,  107,  107,  108,
  605.       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
  606.       108,  108,  403,  108,  108,  108,  108,  108,  108,  110,
  607.       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
  608.       110,  110,  401,  110,  110,  110,  110,  110,  110,  399,
  609.       398,  397,  396,  110,  122,  122,  122,  122,  122,  122,
  610.       122,  122,  122,  122,  122,  122,  122,  394,  122,  122,
  611.       122,  122,  122,  122,  138,  138,  138,  138,  138,  138,
  612.       138,  138,  138,  138,  138,  138,  138,  392,  138,  138,
  613.       138,  138,  138,  138,  140,  140,  140,  140,  140,  140,
  614.       140,  140,  140,  140,  140,  140,  140,  391,  140,  140,
  615.       140,  140,  140,  140,  141,  141,  141,  141,  141,  141,
  616.       141,  141,  141,  141,  141,  141,  141,  389,  141,  141,
  617.       141,  141,  141,  141,  143,  143,  143,  143,  143,  143,
  618.       143,  143,  143,  143,  143,  143,  143,  387,  143,  143,
  619.       143,  143,  143,  143,  145,  145,  145,  145,  145,  145,
  620.       145,  145,  145,  145,  145,  145,  145,  382,  145,  145,
  621.       145,  145,  145,  145,  157,  157,  157,  157,  157,  157,
  622.       157,  157,  157,  157,  157,  157,  157,  380,  157,  157,
  623.       157,  157,  157,  157,  379,  378,  376,  373,  371,  370,
  624.       369,  367,  366,  157,  365,  364,  157,  169,  169,  169,
  625.       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  626.       361,  169,  169,  169,  169,  169,  169,  360,  359,  358,
  627.       357,  356,  169,  180,  180,  180,  180,  180,  180,  180,
  628.       180,  180,  180,  180,  180,  180,  355,  180,  180,  180,
  629.       180,  180,  180,  354,  353,  351,  350,  349,  180,  348,
  630.       347,  345,  344,  343,  342,  341,  340,  339,  180,  185,
  631.       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
  632.       185,  185,  337,  185,  185,  185,  185,  185,  185,  186,
  633.       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
  634.       186,  186,  333,  186,  186,  186,  186,  186,  186,  188,
  635.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  636.       188,  188,  330,  188,  188,  188,  188,  188,  188,  208,
  637.       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
  638.       208,  208,  329,  208,  208,  208,  208,  208,  208,  212,
  639.       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
  640.       212,  212,  328,  212,  212,  212,  212,  212,  212,  232,
  641.       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
  642.       232,  232,  327,  232,  232,  232,  232,  232,  232,  325,
  643.       232,  246,  246,  246,  246,  246,  246,  246,  246,  246,
  644.       246,  246,  246,  246,  324,  246,  246,  246,  246,  246,
  645.       246,  284,  284,  284,  284,  284,  284,  284,  284,  284,
  646.       284,  284,  284,  284,  323,  284,  284,  284,  284,  284,
  647.       284,  318,  318,  318,  318,  318,  318,  318,  318,  318,
  648.       318,  318,  318,  318,  322,  318,  318,  318,  318,  318,
  649.       318,  332,  332,  332,  332,  332,  332,  332,  332,  332,
  650.       332,  332,  332,  332,  321,  332,  332,  332,  332,  332,
  651.       332,  383,  383,  383,  383,  383,  383,  383,  383,  383,
  652.       383,  383,  383,  383,  320,  383,  383,  383,  383,  383,
  653.       383,  428,  428,  428,  428,  428,  428,  428,  428,  428,
  654.       428,  428,  428,  428,  319,  428,  428,  428,  428,  428,
  655.       428,  452,  452,  452,  452,  452,  452,  452,  452,  452,
  656.       452,  452,  452,  452,  317,  452,  452,  452,  452,  452,
  657.       452,  458,  458,  458,  458,  458,  458,  458,  458,  458,
  658.       458,  458,  458,  458,  316,  458,  458,  458,  458,  458,
  659.       458,  471,  471,  471,  471,  471,  471,  472,  472,  472,
  660.       472,  472,  472,  473,  473,  473,  473,  473,  473,  475,
  661.       475,  476,  313,  476,  311,  476,  476,  477,  309,  305,
  662.       477,  477,  477,  478,  478,  304,  302,  300,  299,  298,
  663.       297,  295,  294,  292,  290,  289,  288,  287,  286,  285,
  664.       283,  282,  281,  280,  279,  278,  277,  275,  272,  268,
  665.       266,  264,  263,  262,  261,  260,  259,  258,  256,  255,
  666.       253,  252,  251,  250,  248,  247,  245,  244,  243,  242,
  667.       240,  239,  238,  237,  236,  235,  234,  233,  231,  230,
  668.       228,  224,  222,  221,  219,  218,  217,  216,  213,  210,
  669.       209,  207,  206,  205,  204,  203,  202,  201,  200,  199,
  670.       197,  196,  194,  193,  190,  189,  187,  184,  183,  179,
  671.       176,  175,  174,  173,  171,  170,  168,  167,  166,  165,
  672.       163,  162,  161,  160,  159,  158,  155,  154,  153,  152,
  673.       151,  150,  149,  147,  146,  144,  139,  136,  135,  130,
  674.       129,  128,  127,  126,  125,  124,  123,  121,  120,  119,
  675.       118,  117,  115,  114,  112,  105,  104,  103,  102,  101,
  676.       100,   99,   96,   93,   91,   90,   89,   88,   87,   86,
  677.        85,   84,   82,   81,   79,   75,   74,   60,   59,   54,
  678.        40,   37,   28,   20,   11,    9,    6,    5,  470,  470,
  679.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  680.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  681.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  682.       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
  683.       470,  470,  470,  470,  470,  470
  684.     } ;
  685. static yy_state_type yy_last_accepting_state;
  686. static YY_CHAR *yy_last_accepting_cpos;
  687. extern int yy_flex_debug;
  688. int yy_flex_debug = 1;
  689. static const short int yy_rule_linenum[132] =
  690.     {   0,
  691.       113,  114,  115,  116,  117,  118,  119,  120,  121,  122,
  692.       130,  141,  142,  143,  144,  145,  150,  151,  152,  153,
  693.       154,  155,  156,  157,  158,  159,  160,  161,  162,  163,
  694.       164,  165,  166,  167,  168,  169,  174,  179,  180,  181,
  695.       182,  183,  184,  185,  186,  187,  188,  189,  190,  191,
  696.       192,  193,  194,  195,  196,  197,  198,  199,  200,  201,
  697.       202,  203,  204,  205,  206,  207,  208,  209,  210,  211,
  698.       212,  213,  214,  215,  216,  217,  218,  219,  220,  225,
  699.       226,  227,  228,  229,  230,  231,  232,  233,  238,  239,
  700.       240,  242,  243,  244,  245,  246,  248,  249,  250,  251,
  701.       253,  254,  255,  256,  257,  258,  260,  261,  262,  263,
  702.       265,  268,  271,  274,  277,  286,  287,  288,  289,  290,
  703.       291,  302,  303,  308,  309,  318,  319,  324,  325,  333,
  704.       334
  705.     } ;
  706. /* the intent behind this definition is that it'll catch
  707.  * any uses of REJECT which flex missed
  708.  */
  709. #define REJECT reject_used_but_not_detected
  710. #define yymore() yymore_used_but_not_detected
  711. #define YY_MORE_ADJ 0
  712. /* these variables are all declared out here so that section 3 code can
  713.  * manipulate them
  714.  */
  715. /* points to current character in buffer */
  716. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  717. static int yy_init = 1; /* whether we need to initialize */
  718. static int yy_start = 0; /* start state number */
  719. /* flag which is used to allow yywrap()'s to do buffer switches
  720.  * instead of setting up a fresh yyin.  A bit of a hack ...
  721.  */
  722. static int yy_did_buffer_switch_on_eof;
  723. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  724. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  725. static int yy_get_next_buffer YY_PROTO(( void ));
  726. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  727. void yyrestart YY_PROTO(( FILE *input_file ));
  728. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  729. void yy_load_buffer_state YY_PROTO(( void ));
  730. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  731. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  732. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  733. #define yy_new_buffer yy_create_buffer
  734. #ifdef __cplusplus
  735. static int yyinput YY_PROTO(( void ));
  736. #else
  737. static int input YY_PROTO(( void ));
  738. #endif
  739. YY_DECL
  740.     {
  741.     register yy_state_type yy_current_state;
  742.     register YY_CHAR *yy_cp, *yy_bp;
  743.     register int yy_act;
  744.     yy_flex_debug=server_scanner_debug;
  745.   /*********************************************
  746.    *          embedded SQL lexics              *
  747.    *********************************************/
  748.     if ( yy_init )
  749. {
  750. YY_USER_INIT;
  751. if ( ! yy_start )
  752.     yy_start = 1; /* first start state */
  753. if ( ! yyin )
  754.     yyin = stdin;
  755. if ( ! yyout )
  756.     yyout = stdout;
  757. if ( yy_current_buffer )
  758.     yy_init_buffer( yy_current_buffer, yyin );
  759. else
  760.     yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  761. yy_load_buffer_state();
  762. yy_init = 0;
  763. }
  764.     while ( 1 ) /* loops until end-of-file is reached */
  765. {
  766. yy_cp = yy_c_buf_p;
  767. /* support of yytext */
  768. *yy_cp = yy_hold_char;
  769. /* yy_bp points to the position in yy_ch_buf of the start of the
  770.  * current run.
  771.  */
  772. yy_bp = yy_cp;
  773. yy_current_state = yy_start;
  774. yy_match:
  775. do
  776.     {
  777.     register YY_CHAR yy_c = yy_ec[*yy_cp];
  778.     if ( yy_accept[yy_current_state] )
  779. {
  780. yy_last_accepting_state = yy_current_state;
  781. yy_last_accepting_cpos = yy_cp;
  782. }
  783.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  784. {
  785. yy_current_state = yy_def[yy_current_state];
  786. if ( yy_current_state >= 471 )
  787.     yy_c = yy_meta[yy_c];
  788. }
  789.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  790.     ++yy_cp;
  791.     }
  792. while ( yy_current_state != 470 );
  793. yy_cp = yy_last_accepting_cpos;
  794. yy_current_state = yy_last_accepting_state;
  795. yy_find_action:
  796. yy_act = yy_accept[yy_current_state];
  797. YY_DO_BEFORE_ACTION;
  798. YY_USER_ACTION;
  799. do_action: /* this label is used only to access EOF actions */
  800. if ( yy_flex_debug )
  801.     {
  802.     if ( yy_act == 0 )
  803. fprintf( stderr, "--scanner backtrackingn" );
  804.     else if ( yy_act < 132 )
  805. fprintf( stderr, "--accepting rule at line %d ("%s")n",
  806.          yy_rule_linenum[yy_act], yytext );
  807.     else if ( yy_act == 132 )
  808. fprintf( stderr, "--accepting default rule ("%s")n",
  809.          yytext );
  810.     else if ( yy_act == 133 )
  811. fprintf( stderr, "--(end of buffer or a NUL)n" );
  812.     else
  813. fprintf( stderr, "--EOFn" );
  814.     }
  815. switch ( yy_act )
  816.     {
  817.     case 0: /* must backtrack */
  818.     /* undo the effects of YY_DO_BEFORE_ACTION */
  819.     *yy_cp = yy_hold_char;
  820.     yy_cp = yy_last_accepting_cpos;
  821.     yy_current_state = yy_last_accepting_state;
  822.     goto yy_find_action;
  823. case 1:
  824. # line 113 "scan_s.l"
  825. SQL_PROC(TOK_WHENEVER);
  826. YY_BREAK
  827. case 2:
  828. # line 114 "scan_s.l"
  829. SQL_PROC(TOK_FOUND   );
  830. YY_BREAK
  831. case 3:
  832. # line 115 "scan_s.l"
  833. SQL_PROC(TOK_SQLERROR);
  834. YY_BREAK
  835. case 4:
  836. # line 116 "scan_s.l"
  837. SQL_PROC(TOK_CONTINUE);
  838. YY_BREAK
  839. case 5:
  840. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  841. yy_c_buf_p = yy_cp -= 1;
  842. YY_DO_BEFORE_ACTION; /* set up yytext again */
  843. # line 117 "scan_s.l"
  844. SQL_PROC(TOK_GOTO    );
  845. YY_BREAK
  846. case 6:
  847. # line 118 "scan_s.l"
  848. SQL_PROC(TOK_BEGIN   );
  849. YY_BREAK
  850. case 7:
  851. # line 119 "scan_s.l"
  852. SQL_PROC(TOK_END     );
  853. YY_BREAK
  854. case 8:
  855. # line 120 "scan_s.l"
  856. SQL_PROC(TOK_DECLARE );
  857. YY_BREAK
  858. case 9:
  859. # line 121 "scan_s.l"
  860. SQL_PROC(TOK_SECTION );
  861. YY_BREAK
  862. case 10:
  863. # line 122 "scan_s.l"
  864. {
  865.                    SAVESTR(yytext+1,yylval.ltrp);
  866.                    SQL_PROC(TOK_PARAM);
  867.                 }
  868. YY_BREAK
  869.   /*********************************************
  870.    *          Dynamic  SQL lexics              *
  871.    *********************************************/
  872. case 11:
  873. # line 130 "scan_s.l"
  874. {
  875.                  static i4_t placeholders_counter = 0;
  876.                  char str[100];
  877.                  sprintf(str,"__%d",placeholders_counter++);
  878.                  SAVESTR(str,yylval.ltrp);
  879.                  SQL_PROC(TOK_PARAM);
  880.                }
  881. YY_BREAK
  882.   /*********************************************
  883.    *          clean  SQL MODULE lexic          *
  884.    *********************************************/
  885. case 12:
  886. # line 141 "scan_s.l"
  887. SQL_PROC(TOK_MODULE      );
  888. YY_BREAK
  889. case 13:
  890. # line 142 "scan_s.l"
  891. SQL_PROC(TOK_LANGUAGE    );
  892. YY_BREAK
  893. case 14:
  894. # line 143 "scan_s.l"
  895. SQL_PROC(TOK_PROCEDURE   );
  896. YY_BREAK
  897. case 15:
  898. # line 144 "scan_s.l"
  899. SQL_PROC(TOK_SQLCODE     );
  900. YY_BREAK
  901. case 16:
  902. # line 145 "scan_s.l"
  903. SQL_PROC(';'             );
  904. YY_BREAK
  905.   /*********************************************
  906.    *          clean  SQL SCHEMA lexic          *
  907.    *********************************************/
  908. case 17:
  909. # line 150 "scan_s.l"
  910. SQL_PROC(TOK_CREATE    );
  911. YY_BREAK
  912. case 18:
  913. # line 151 "scan_s.l"
  914. SQL_PROC(TOK_DROP      );
  915. YY_BREAK
  916. case 19:
  917. # line 152 "scan_s.l"
  918. SQL_PROC(TOK_ALTER     );
  919. YY_BREAK
  920. case 20:
  921. # line 153 "scan_s.l"
  922. SQL_PROC(TOK_SCHEMA    );
  923. YY_BREAK
  924. case 21:
  925. # line 154 "scan_s.l"
  926. SQL_PROC(TOK_TABLE     );
  927. YY_BREAK
  928. case 22:
  929. # line 155 "scan_s.l"
  930. SQL_PROC(TOK_VIEW      );
  931. YY_BREAK
  932. case 23:
  933. # line 156 "scan_s.l"
  934. SQL_PROC(TOK_GRANT     );
  935. YY_BREAK
  936. case 24:
  937. # line 157 "scan_s.l"
  938. SQL_PROC(TOK_REVOKE    );
  939. YY_BREAK
  940. case 25:
  941. # line 158 "scan_s.l"
  942. SQL_PROC(TOK_CHECK     );
  943. YY_BREAK
  944. case 26:
  945. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  946. yy_c_buf_p = yy_cp = yy_bp + 2;
  947. YY_DO_BEFORE_ACTION; /* set up yytext again */
  948. # line 159 "scan_s.l"
  949. SQL_PROC(TOK_TO        );
  950. YY_BREAK
  951. case 27:
  952. # line 160 "scan_s.l"
  953. SQL_PROC(TOK_DEFAULT   ); 
  954. YY_BREAK
  955. case 28:
  956. # line 161 "scan_s.l"
  957. SQL_PROC(TOK_FOREIGN   );
  958. YY_BREAK
  959. case 29:
  960. # line 162 "scan_s.l"
  961. SQL_PROC(TOK_KEY       );
  962. YY_BREAK
  963. case 30:
  964. # line 163 "scan_s.l"
  965. SQL_PROC(TOK_PRIMARY   );    
  966. YY_BREAK
  967. case 31:
  968. # line 164 "scan_s.l"
  969. SQL_PROC(TOK_INDEX     );    
  970. YY_BREAK
  971. case 32:
  972. # line 165 "scan_s.l"
  973. SQL_PROC(TOK_OPTION    );
  974. YY_BREAK
  975. case 33:
  976. # line 166 "scan_s.l"
  977. SQL_PROC(TOK_PRIVILEGES);
  978. YY_BREAK
  979. case 34:
  980. # line 167 "scan_s.l"
  981. SQL_PROC(TOK_PUBLIC    );
  982. YY_BREAK
  983. case 35:
  984. # line 168 "scan_s.l"
  985. SQL_PROC(TOK_REFERENCES);    
  986. YY_BREAK
  987. case 36:
  988. # line 169 "scan_s.l"
  989. SQL_PROC(TOK_UNIQUE    );
  990. YY_BREAK
  991.   /*********************************************
  992.    *            clean  SQL lexic               *
  993.    *********************************************/
  994. case 37:
  995. # line 174 "scan_s.l"
  996. SQL_PROC(TOK_AUTHORIZATION);
  997. YY_BREAK
  998.   /*********************************************
  999.    *          common SQL  keywords             *
  1000.    *********************************************/
  1001. case 38:
  1002. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1003. yy_c_buf_p = yy_cp = yy_bp + 3;
  1004. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1005. # line 179 "scan_s.l"
  1006. SQL_PROC(TOK_ALL       );
  1007. YY_BREAK
  1008. case 39:
  1009. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1010. yy_c_buf_p = yy_cp = yy_bp + 3;
  1011. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1012. # line 180 "scan_s.l"
  1013. SQL_PROC(TOK_ANY       );
  1014. YY_BREAK
  1015. case 40:
  1016. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1017. yy_c_buf_p = yy_cp = yy_bp + 2;
  1018. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1019. # line 181 "scan_s.l"
  1020. SQL_PROC(TOK_AS        );
  1021. YY_BREAK
  1022. case 41:
  1023. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1024. yy_c_buf_p = yy_cp = yy_bp + 3;
  1025. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1026. # line 182 "scan_s.l"
  1027. SQL_PROC(TOK_ASC       );
  1028. YY_BREAK
  1029. case 42:
  1030. # line 183 "scan_s.l"
  1031. SQL_PROC(TOK_BETWEEN   );
  1032. YY_BREAK
  1033. case 43:
  1034. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1035. yy_c_buf_p = yy_cp = yy_bp + 2;
  1036. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1037. # line 184 "scan_s.l"
  1038. SQL_PROC(TOK_BY        );
  1039. YY_BREAK
  1040. case 44:
  1041. # line 185 "scan_s.l"
  1042. SQL_PROC(TOK_CLOSE     );
  1043. YY_BREAK
  1044. case 45:
  1045. # line 186 "scan_s.l"
  1046. SQL_PROC(TOK_COMMIT    );
  1047. YY_BREAK
  1048. case 46:
  1049. # line 187 "scan_s.l"
  1050. SQL_PROC(TOK_CURRENT   );
  1051. YY_BREAK
  1052. case 47:
  1053. # line 188 "scan_s.l"
  1054. SQL_PROC(TOK_CURSOR    );
  1055. YY_BREAK
  1056. case 48:
  1057. # line 189 "scan_s.l"
  1058. SQL_PROC(TOK_DELETE    );
  1059. YY_BREAK
  1060. case 49:
  1061. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1062. yy_c_buf_p = yy_cp = yy_bp + 4;
  1063. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1064. # line 190 "scan_s.l"
  1065. SQL_PROC(TOK_DESC      );
  1066. YY_BREAK
  1067. case 50:
  1068. # line 191 "scan_s.l"
  1069. SQL_PROC(TOK_DISTINCT  );
  1070. YY_BREAK
  1071. case 51:
  1072. # line 192 "scan_s.l"
  1073. SQL_PROC(TOK_ESCAPE    );
  1074. YY_BREAK
  1075. case 52:
  1076. # line 193 "scan_s.l"
  1077. SQL_PROC(TOK_EXISTS    );
  1078. YY_BREAK
  1079. case 53:
  1080. # line 194 "scan_s.l"
  1081. SQL_PROC(TOK_FETCH     );
  1082. YY_BREAK
  1083. case 54:
  1084. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1085. yy_c_buf_p = yy_cp = yy_bp + 3;
  1086. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1087. # line 195 "scan_s.l"
  1088. SQL_PROC(TOK_FOR       );
  1089. YY_BREAK
  1090. case 55:
  1091. # line 196 "scan_s.l"
  1092. SQL_PROC(TOK_FROM      );
  1093. YY_BREAK
  1094. case 56:
  1095. # line 197 "scan_s.l"
  1096. SQL_PROC(TOK_GROUP     );
  1097. YY_BREAK
  1098. case 57:
  1099. # line 198 "scan_s.l"
  1100. SQL_PROC(TOK_HAVING    );
  1101. YY_BREAK
  1102. case 58:
  1103. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1104. yy_c_buf_p = yy_cp = yy_bp + 2;
  1105. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1106. # line 199 "scan_s.l"
  1107. SQL_PROC(TOK_IN        );
  1108. YY_BREAK
  1109. case 59:
  1110. # line 200 "scan_s.l"
  1111. SQL_PROC(TOK_INDICATOR );
  1112. YY_BREAK
  1113. case 60:
  1114. # line 201 "scan_s.l"
  1115. SQL_PROC(TOK_INSERT    );
  1116. YY_BREAK
  1117. case 61:
  1118. # line 202 "scan_s.l"
  1119. SQL_PROC(TOK_INTO      );
  1120. YY_BREAK
  1121. case 62:
  1122. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1123. yy_c_buf_p = yy_cp = yy_bp + 2;
  1124. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1125. # line 203 "scan_s.l"
  1126. SQL_PROC(TOK_IS        );
  1127. YY_BREAK
  1128. case 63:
  1129. # line 204 "scan_s.l"
  1130. SQL_PROC(TOK_LIKE      );
  1131. YY_BREAK
  1132. case 64:
  1133. # line 205 "scan_s.l"
  1134. SQL_PROC(TOK_NULL      );
  1135. YY_BREAK
  1136. case 65:
  1137. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1138. yy_c_buf_p = yy_cp = yy_bp + 2;
  1139. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1140. # line 206 "scan_s.l"
  1141. SQL_PROC(TOK_OF        );
  1142. YY_BREAK
  1143. case 66:
  1144. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1145. yy_c_buf_p = yy_cp = yy_bp + 2;
  1146. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1147. # line 207 "scan_s.l"
  1148. SQL_PROC(TOK_ON        );
  1149. YY_BREAK
  1150. case 67:
  1151. # line 208 "scan_s.l"
  1152. SQL_PROC(TOK_OPEN      );
  1153. YY_BREAK
  1154. case 68:
  1155. # line 209 "scan_s.l"
  1156. SQL_PROC(TOK_ORDER     );
  1157. YY_BREAK
  1158. case 69:
  1159. # line 210 "scan_s.l"
  1160. SQL_PROC(TOK_ROLLBACK  );
  1161. YY_BREAK
  1162. case 70:
  1163. # line 211 "scan_s.l"
  1164. SQL_PROC(TOK_SELECT    );
  1165. YY_BREAK
  1166. case 71:
  1167. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1168. yy_c_buf_p = yy_cp = yy_bp + 3;
  1169. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1170. # line 212 "scan_s.l"
  1171. SQL_PROC(TOK_SET       );
  1172. YY_BREAK
  1173. case 72:
  1174. # line 213 "scan_s.l"
  1175. SQL_PROC(TOK_SOME      );
  1176. YY_BREAK
  1177. case 73:
  1178. # line 214 "scan_s.l"
  1179. SQL_PROC(TOK_UNION     );
  1180. YY_BREAK
  1181. case 74:
  1182. # line 215 "scan_s.l"
  1183. SQL_PROC(TOK_UPDATE    );
  1184. YY_BREAK
  1185. case 75:
  1186. # line 216 "scan_s.l"
  1187. SQL_PROC(TOK_USER      );
  1188. YY_BREAK
  1189. case 76:
  1190. # line 217 "scan_s.l"
  1191. SQL_PROC(TOK_VALUES    );
  1192. YY_BREAK
  1193. case 77:
  1194. # line 218 "scan_s.l"
  1195. SQL_PROC(TOK_WHERE     );
  1196. YY_BREAK
  1197. case 78:
  1198. # line 219 "scan_s.l"
  1199. SQL_PROC(TOK_WITH      );
  1200. YY_BREAK
  1201. case 79:
  1202. # line 220 "scan_s.l"
  1203. SQL_PROC(TOK_WORK      );
  1204. YY_BREAK
  1205.   /******************************************
  1206.    *  common SQL  keywords  for data type   *
  1207.    ******************************************/
  1208. case 80:
  1209. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1210. yy_c_buf_p = yy_cp -= 1;
  1211. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1212. # line 225 "scan_s.l"
  1213. SQL_PROC(TOK_T_CHAR);
  1214. YY_BREAK
  1215. case 81:
  1216. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1217. yy_c_buf_p = yy_cp = yy_bp + 7;
  1218. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1219. # line 226 "scan_s.l"
  1220. SQL_PROC(TOK_T_NUM);
  1221. YY_BREAK
  1222. case 82:
  1223. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1224. yy_c_buf_p = yy_cp -= 1;
  1225. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1226. # line 227 "scan_s.l"
  1227. SQL_PROC(TOK_T_NUM);
  1228. YY_BREAK
  1229. case 83:
  1230. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1231. yy_c_buf_p = yy_cp -= 1;
  1232. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1233. # line 228 "scan_s.l"
  1234. SQL_PROC(TOK_T_INT);
  1235. YY_BREAK
  1236. case 84:
  1237. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1238. yy_c_buf_p = yy_cp = yy_bp + 8;
  1239. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1240. # line 229 "scan_s.l"
  1241. SQL_PROC(TOK_T_SINT);
  1242. YY_BREAK
  1243. case 85:
  1244. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1245. yy_c_buf_p = yy_cp = yy_bp + 5;
  1246. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1247. # line 230 "scan_s.l"
  1248. SQL_PROC(TOK_T_FLT);
  1249. YY_BREAK
  1250. case 86:
  1251. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1252. yy_c_buf_p = yy_cp = yy_bp + 4;
  1253. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1254. # line 231 "scan_s.l"
  1255. SQL_PROC(TOK_T_REAL);
  1256. YY_BREAK
  1257. case 87:
  1258. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1259. yy_c_buf_p = yy_cp = yy_bp + 6;
  1260. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1261. # line 232 "scan_s.l"
  1262. SQL_PROC(TOK_T_DOUBLE);
  1263. YY_BREAK
  1264. case 88:
  1265. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1266. yy_c_buf_p = yy_cp = yy_bp + 9;
  1267. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1268. # line 233 "scan_s.l"
  1269. SQL_PROC(TOK_T_PRECISION);
  1270. YY_BREAK
  1271.   /******************************************
  1272.    *  common SQL  keywords  for expression  *
  1273.    ******************************************/
  1274. case 89:
  1275. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1276. yy_c_buf_p = yy_cp = yy_bp + 3;
  1277. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1278. # line 238 "scan_s.l"
  1279. SQL_PROC(TOK_AND       );
  1280. YY_BREAK
  1281. case 90:
  1282. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1283. yy_c_buf_p = yy_cp = yy_bp + 2;
  1284. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1285. # line 239 "scan_s.l"
  1286. SQL_PROC(TOK_OR        );
  1287. YY_BREAK
  1288. case 91:
  1289. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1290. yy_c_buf_p = yy_cp = yy_bp + 3;
  1291. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1292. # line 240 "scan_s.l"
  1293. SQL_PROC(TOK_NOT       );
  1294. YY_BREAK
  1295. case 92:
  1296. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1297. yy_c_buf_p = yy_cp = yy_bp + 3;
  1298. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1299. # line 242 "scan_s.l"
  1300. SQL_PROC(TOK_AVG   );
  1301. YY_BREAK
  1302. case 93:
  1303. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1304. yy_c_buf_p = yy_cp = yy_bp + 3;
  1305. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1306. # line 243 "scan_s.l"
  1307. SQL_PROC(TOK_MAX   );
  1308. YY_BREAK
  1309. case 94:
  1310. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1311. yy_c_buf_p = yy_cp = yy_bp + 3;
  1312. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1313. # line 244 "scan_s.l"
  1314. SQL_PROC(TOK_MIN   );
  1315. YY_BREAK
  1316. case 95:
  1317. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1318. yy_c_buf_p = yy_cp = yy_bp + 3;
  1319. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1320. # line 245 "scan_s.l"
  1321. SQL_PROC(TOK_SUM   );
  1322. YY_BREAK
  1323. case 96:
  1324. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1325. yy_c_buf_p = yy_cp = yy_bp + 5;
  1326. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1327. # line 246 "scan_s.l"
  1328. SQL_PROC(TOK_COUNT );
  1329. YY_BREAK
  1330. case 97:
  1331. # line 248 "scan_s.l"
  1332. SQL_PROC('+'   );
  1333. YY_BREAK
  1334. case 98:
  1335. # line 249 "scan_s.l"
  1336. SQL_PROC('-'   );
  1337. YY_BREAK
  1338. case 99:
  1339. # line 250 "scan_s.l"
  1340. SQL_PROC('*'   );
  1341. YY_BREAK
  1342. case 100:
  1343. # line 251 "scan_s.l"
  1344. SQL_PROC('/'   );
  1345. YY_BREAK
  1346. case 101:
  1347. # line 253 "scan_s.l"
  1348. SQL_PROC('='   );
  1349. YY_BREAK
  1350. case 102:
  1351. # line 254 "scan_s.l"
  1352. SQL_PROC(TOK_NE);
  1353. YY_BREAK
  1354. case 103:
  1355. # line 255 "scan_s.l"
  1356. SQL_PROC('>'   );
  1357. YY_BREAK
  1358. case 104:
  1359. # line 256 "scan_s.l"
  1360. SQL_PROC('<'   );
  1361. YY_BREAK
  1362. case 105:
  1363. # line 257 "scan_s.l"
  1364. SQL_PROC(TOK_GE);
  1365. YY_BREAK
  1366. case 106:
  1367. # line 258 "scan_s.l"
  1368. SQL_PROC(TOK_LE);
  1369. YY_BREAK
  1370. case 107:
  1371. # line 260 "scan_s.l"
  1372. SQL_PROC('('   );
  1373. YY_BREAK
  1374. case 108:
  1375. # line 261 "scan_s.l"
  1376. SQL_PROC(')'   );
  1377. YY_BREAK
  1378. case 109:
  1379. # line 262 "scan_s.l"
  1380. SQL_PROC(','   );
  1381. YY_BREAK
  1382. case 110:
  1383. # line 263 "scan_s.l"
  1384. SQL_PROC('.'   );
  1385. YY_BREAK
  1386. case 111:
  1387. # line 265 "scan_s.l"
  1388. { SAVESTR(yytext,yylval.ltrp);
  1389.                   SQL_PROC(TOK_IDENTIFIER);}
  1390. YY_BREAK
  1391. case 112:
  1392. # line 268 "scan_s.l"
  1393. { /*  read decimal constant  */
  1394.                   yylval.node=gen_const_node(SQLType_Int,yytext);
  1395.                   SQL_PROC(TOK_INTEGER_CONST); }
  1396. YY_BREAK
  1397. case 113:
  1398. # line 271 "scan_s.l"
  1399. { /*  read float constant  */
  1400.                   yylval.node=gen_const_node(SQLType_Num,yytext);
  1401.                   SQL_PROC(TOK_NUM_CONST); }
  1402. YY_BREAK
  1403. case 114:
  1404. # line 274 "scan_s.l"
  1405. {  /*  read float constant  */
  1406.                   yylval.node=gen_const_node(SQLType_Real,yytext);
  1407.                   SQL_PROC(TOK_REAL_CONST); }
  1408. YY_BREAK
  1409. case 115:
  1410. # line 277 "scan_s.l"
  1411. {  /*  read float constant with error in exponent */
  1412.                   yyerror("Lex: error format for floating constant");
  1413.                   sql_str(yytext,yyleng);
  1414.                   sql_str("0",1);  /* recovery error as possible */
  1415.                   {
  1416.                     char *ptr=sql_str(NULL,0);
  1417.                     yylval.node=gen_const_node(SQLType_Real,ptr);
  1418.                   }
  1419.                   SQL_PROC(TOK_REAL_CONST); }
  1420. YY_BREAK
  1421. case 116:
  1422. # line 286 "scan_s.l"
  1423. /* do nothing */
  1424. YY_BREAK
  1425. case 117:
  1426. # line 287 "scan_s.l"
  1427. BEGIN(SQL_str);
  1428. YY_BREAK
  1429. case 118:
  1430. # line 288 "scan_s.l"
  1431. BEGIN(Identifier);
  1432. YY_BREAK
  1433. case 119:
  1434. # line 289 "scan_s.l"
  1435. BEGIN(SQL_comment);  /* ? ? obsolete */
  1436. YY_BREAK
  1437. case 120:
  1438. # line 290 "scan_s.l"
  1439. line_num++;
  1440. YY_BREAK
  1441. case 121:
  1442. # line 291 "scan_s.l"
  1443.                   char strng[100];
  1444.                   file_pos=line_num;
  1445.   sprintf(strng,
  1446.   "syntax error: unexpected char '%c'",
  1447.   *yytext);
  1448.                   yyerror(strng);
  1449. }
  1450. YY_BREAK
  1451.   /*********************************************
  1452.    *             SQL string recognizer         *
  1453.    *********************************************/
  1454. case 122:
  1455. # line 302 "scan_s.l"
  1456. sql_str("'",1);
  1457. YY_BREAK
  1458. case 123:
  1459. # line 303 "scan_s.l"
  1460. {
  1461.                       yyerror(" Unterminated SQL string ");
  1462.                       line_num++;
  1463.       BEGIN(INITIAL);
  1464.                     }
  1465. YY_BREAK
  1466. case 124:
  1467. # line 308 "scan_s.l"
  1468. sql_str(yytext,yyleng);
  1469. YY_BREAK
  1470. case 125:
  1471. # line 309 "scan_s.l"
  1472. {
  1473.                       char *ptr=sql_str(NULL,0);
  1474.                       BEGIN(INITIAL);
  1475.                       yylval.node=gen_const_node(SQLType_Char,ptr);
  1476.                       SQL_PROC(TOK_STRING_CONST); 
  1477.     }
  1478. YY_BREAK
  1479.   /*********************************************
  1480.    *             SQL quoted identifiers        *
  1481.    *********************************************/
  1482. case 126:
  1483. # line 318 "scan_s.l"
  1484. sql_str(""",1);
  1485. YY_BREAK
  1486. case 127:
  1487. # line 319 "scan_s.l"
  1488. {
  1489.                       yyerror(" Unterminated quoted identifier ");
  1490.                       line_num++;
  1491.       BEGIN(INITIAL);
  1492.                     }
  1493. YY_BREAK
  1494. case 128:
  1495. # line 324 "scan_s.l"
  1496. sql_str(yytext,yyleng);
  1497. YY_BREAK
  1498. case 129:
  1499. # line 325 "scan_s.l"
  1500. {
  1501.                       BEGIN(INITIAL);
  1502.       SAVESTR(sql_str(NULL,0),yylval.ltrp);
  1503.       SQL_PROC(TOK_IDENTIFIER);
  1504.     }
  1505. YY_BREAK
  1506.   /*********************************************
  1507.    *             SQL comment recognizer        *
  1508.    *********************************************/
  1509. case 130:
  1510. # line 333 "scan_s.l"
  1511. /* do nothing */;
  1512. YY_BREAK
  1513. case 131:
  1514. # line 334 "scan_s.l"
  1515. { line_num++; BEGIN(INITIAL); }
  1516. YY_BREAK
  1517. case 132:
  1518. # line 336 "scan_s.l"
  1519. ECHO;
  1520. YY_BREAK
  1521. case YY_STATE_EOF(INITIAL):
  1522. case YY_STATE_EOF(SQL_str):
  1523. case YY_STATE_EOF(SQL_comment):
  1524. case YY_STATE_EOF(Identifier):
  1525.     yyterminate();
  1526.     case YY_END_OF_BUFFER:
  1527. {
  1528. /* amount of text matched not including the EOB char */
  1529. int yy_amount_of_matched_text = yy_cp - yytext - 1;
  1530. /* undo the effects of YY_DO_BEFORE_ACTION */
  1531. *yy_cp = yy_hold_char;
  1532. /* note that here we test for yy_c_buf_p "<=" to the position
  1533.  * of the first EOB in the buffer, since yy_c_buf_p will
  1534.  * already have been incremented past the NUL character
  1535.  * (since all states make transitions on EOB to the end-
  1536.  * of-buffer state).  Contrast this with the test in yyinput().
  1537.  */
  1538. if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1539.     /* this was really a NUL */
  1540.     {
  1541.     yy_state_type yy_next_state;
  1542.     yy_c_buf_p = yytext + yy_amount_of_matched_text;
  1543.     yy_current_state = yy_get_previous_state();
  1544.     /* okay, we're now positioned to make the
  1545.      * NUL transition.  We couldn't have
  1546.      * yy_get_previous_state() go ahead and do it
  1547.      * for us because it doesn't know how to deal
  1548.      * with the possibility of jamming (and we
  1549.      * don't want to build jamming into it because
  1550.      * then it will run more slowly)
  1551.      */
  1552.     yy_next_state = yy_try_NUL_trans( yy_current_state );
  1553.     yy_bp = yytext + YY_MORE_ADJ;
  1554.     if ( yy_next_state )
  1555. {
  1556. /* consume the NUL */
  1557. yy_cp = ++yy_c_buf_p;
  1558. yy_current_state = yy_next_state;
  1559. goto yy_match;
  1560. }
  1561.     else
  1562. {
  1563.     yy_cp = yy_last_accepting_cpos;
  1564.     yy_current_state = yy_last_accepting_state;
  1565. goto yy_find_action;
  1566. }
  1567.     }
  1568. else switch ( yy_get_next_buffer() )
  1569.     {
  1570.     case EOB_ACT_END_OF_FILE:
  1571. {
  1572. yy_did_buffer_switch_on_eof = 0;
  1573. if ( yywrap() )
  1574.     {
  1575.     /* note: because we've taken care in
  1576.      * yy_get_next_buffer() to have set up yytext,
  1577.      * we can now set up yy_c_buf_p so that if some
  1578.      * total hoser (like flex itself) wants
  1579.      * to call the scanner after we return the
  1580.      * YY_NULL, it'll still work - another YY_NULL
  1581.      * will get returned.
  1582.      */
  1583.     yy_c_buf_p = yytext + YY_MORE_ADJ;
  1584.     yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1585.     goto do_action;
  1586.     }
  1587. else
  1588.     {
  1589.     if ( ! yy_did_buffer_switch_on_eof )
  1590. YY_NEW_FILE;
  1591.     }
  1592. }
  1593. break;
  1594.     case EOB_ACT_CONTINUE_SCAN:
  1595. yy_c_buf_p = yytext + yy_amount_of_matched_text;
  1596. yy_current_state = yy_get_previous_state();
  1597. yy_cp = yy_c_buf_p;
  1598. yy_bp = yytext + YY_MORE_ADJ;
  1599. goto yy_match;
  1600.     case EOB_ACT_LAST_MATCH:
  1601. yy_c_buf_p =
  1602.     &yy_current_buffer->yy_ch_buf[yy_n_chars];
  1603. yy_current_state = yy_get_previous_state();
  1604. yy_cp = yy_c_buf_p;
  1605. yy_bp = yytext + YY_MORE_ADJ;
  1606. goto yy_find_action;
  1607.     }
  1608. break;
  1609. }
  1610.     default:
  1611. #ifdef FLEX_DEBUG
  1612. printf( "action # %dn", yy_act );
  1613. #endif
  1614. YY_FATAL_ERROR(
  1615. "fatal flex scanner internal error--no action found" );
  1616.     }
  1617. }
  1618.     }
  1619. /* yy_get_next_buffer - try to read in a new buffer
  1620.  *
  1621.  * synopsis
  1622.  *     int yy_get_next_buffer();
  1623.  *     
  1624.  * returns a code representing an action
  1625.  *     EOB_ACT_LAST_MATCH - 
  1626.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1627.  *     EOB_ACT_END_OF_FILE - end of file
  1628.  */
  1629. static int yy_get_next_buffer()
  1630.     {
  1631.     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
  1632.     register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
  1633.     register int number_to_move, i;
  1634.     int ret_val;
  1635.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  1636. YY_FATAL_ERROR(
  1637. "fatal flex scanner internal error--end of buffer missed" );
  1638.     /* try to read more data */
  1639.     /* first move last chars to start of buffer */
  1640.     number_to_move = yy_c_buf_p - yytext;
  1641.     for ( i = 0; i < number_to_move; ++i )
  1642. *(dest++) = *(source++);
  1643.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  1644. /* don't do the read, it's not guaranteed to return an EOF,
  1645.  * just force an EOF
  1646.  */
  1647. yy_n_chars = 0;
  1648.     else
  1649. {
  1650. int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  1651. if ( num_to_read > YY_READ_BUF_SIZE )
  1652.     num_to_read = YY_READ_BUF_SIZE;
  1653. else if ( num_to_read <= 0 )
  1654.     YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  1655. /* read in more data */
  1656. YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  1657.   yy_n_chars, num_to_read );
  1658. }
  1659.     if ( yy_n_chars == 0 )
  1660. {
  1661. if ( number_to_move - YY_MORE_ADJ == 1 )
  1662.     {
  1663.     ret_val = EOB_ACT_END_OF_FILE;
  1664.     yy_current_buffer->yy_eof_status = EOF_DONE;
  1665.     }
  1666. else
  1667.     {
  1668.     ret_val = EOB_ACT_LAST_MATCH;
  1669.     yy_current_buffer->yy_eof_status = EOF_PENDING;
  1670.     }
  1671. }
  1672.     else
  1673. ret_val = EOB_ACT_CONTINUE_SCAN;
  1674.     yy_n_chars += number_to_move;
  1675.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1676.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1677.     /* yytext begins at the second character in yy_ch_buf; the first
  1678.      * character is the one which preceded it before reading in the latest
  1679.      * buffer; it needs to be kept around in case it's a newline, so
  1680.      * yy_get_previous_state() will have with '^' rules active
  1681.      */
  1682.     yytext = &yy_current_buffer->yy_ch_buf[1];
  1683.     return ( ret_val );
  1684.     }
  1685. /* yy_get_previous_state - get the state just before the EOB char was reached
  1686.  *
  1687.  * synopsis
  1688.  *     yy_state_type yy_get_previous_state();
  1689.  */
  1690. static yy_state_type yy_get_previous_state()
  1691.     {
  1692.     register yy_state_type yy_current_state;
  1693.     register YY_CHAR *yy_cp;
  1694.     yy_current_state = yy_start;
  1695.     for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  1696. {
  1697. register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  1698. if ( yy_accept[yy_current_state] )
  1699.     {
  1700.     yy_last_accepting_state = yy_current_state;
  1701.     yy_last_accepting_cpos = yy_cp;
  1702.     }
  1703. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1704.     {
  1705.     yy_current_state = yy_def[yy_current_state];
  1706.     if ( yy_current_state >= 471 )
  1707. yy_c = yy_meta[yy_c];
  1708.     }
  1709. yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1710. }
  1711.     return ( yy_current_state );
  1712.     }
  1713. /* yy_try_NUL_trans - try to make a transition on the NUL character
  1714.  *
  1715.  * synopsis
  1716.  *     next_state = yy_try_NUL_trans( current_state );
  1717.  */
  1718. #ifdef YY_USE_PROTOS
  1719. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  1720. #else
  1721. static yy_state_type yy_try_NUL_trans( yy_current_state )
  1722. register yy_state_type yy_current_state;
  1723. #endif
  1724.     {
  1725.     register int yy_is_jam;
  1726.     register YY_CHAR *yy_cp = yy_c_buf_p;
  1727.     register YY_CHAR yy_c = 1;
  1728.     if ( yy_accept[yy_current_state] )
  1729. {
  1730. yy_last_accepting_state = yy_current_state;
  1731. yy_last_accepting_cpos = yy_cp;
  1732. }
  1733.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1734. {
  1735. yy_current_state = yy_def[yy_current_state];
  1736. if ( yy_current_state >= 471 )
  1737.     yy_c = yy_meta[yy_c];
  1738. }
  1739.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1740.     yy_is_jam = (yy_current_state == 470);
  1741.     return ( yy_is_jam ? 0 : yy_current_state );
  1742.     }
  1743. #ifdef YY_USE_PROTOS
  1744. static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
  1745. #else
  1746. static void yyunput( c, yy_bp )
  1747. YY_CHAR c;
  1748. register YY_CHAR *yy_bp;
  1749. #endif
  1750.     {
  1751.     register YY_CHAR *yy_cp = yy_c_buf_p;
  1752.     /* undo effects of setting up yytext */
  1753.     *yy_cp = yy_hold_char;
  1754.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1755. { /* need to shift things up to make room */
  1756. register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  1757. register YY_CHAR *dest =
  1758.     &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  1759. register YY_CHAR *source =
  1760.     &yy_current_buffer->yy_ch_buf[number_to_move];
  1761. while ( source > yy_current_buffer->yy_ch_buf )
  1762.     *--dest = *--source;
  1763. yy_cp += dest - source;
  1764. yy_bp += dest - source;
  1765. yy_n_chars = yy_current_buffer->yy_buf_size;
  1766. if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1767.     YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1768. }
  1769.     if ( yy_cp > yy_bp && yy_cp[-1] == 'n' )
  1770. yy_cp[-2] = 'n';
  1771.     *--yy_cp = c;
  1772.     /* note: the formal parameter *must* be called "yy_bp" for this
  1773.      *       macro to now work correctly
  1774.      */
  1775.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1776.     }
  1777. #ifdef __cplusplus
  1778. static int yyinput()
  1779. #else
  1780. static int input()
  1781. #endif
  1782.     {
  1783.     int c;
  1784.     YY_CHAR *yy_cp = yy_c_buf_p;
  1785.     *yy_cp = yy_hold_char;
  1786.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1787. {
  1788. /* yy_c_buf_p now points to the character we want to return.
  1789.  * If this occurs *before* the EOB characters, then it's a
  1790.  * valid NUL; if not, then we've hit the end of the buffer.
  1791.  */
  1792. if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1793.     /* this was really a NUL */
  1794.     *yy_c_buf_p = '';
  1795. else
  1796.     { /* need more input */
  1797.     yytext = yy_c_buf_p;
  1798.     ++yy_c_buf_p;
  1799.     switch ( yy_get_next_buffer() )
  1800. {
  1801. case EOB_ACT_END_OF_FILE:
  1802.     {
  1803.     if ( yywrap() )
  1804. {
  1805. yy_c_buf_p = yytext + YY_MORE_ADJ;
  1806. return ( EOF );
  1807. }
  1808.     YY_NEW_FILE;
  1809. #ifdef __cplusplus
  1810.     return ( yyinput() );
  1811. #else
  1812.     return ( input() );
  1813. #endif
  1814.     }
  1815.     break;
  1816. case EOB_ACT_CONTINUE_SCAN:
  1817.     yy_c_buf_p = yytext + YY_MORE_ADJ;
  1818.     break;
  1819. case EOB_ACT_LAST_MATCH:
  1820. #ifdef __cplusplus
  1821.     YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  1822. #else
  1823.     YY_FATAL_ERROR( "unexpected last match in input()" );
  1824. #endif
  1825. }
  1826.     }
  1827. }
  1828.     c = *yy_c_buf_p;
  1829.     yy_hold_char = *++yy_c_buf_p;
  1830.     return ( c );
  1831.     }
  1832. #ifdef YY_USE_PROTOS
  1833. void yyrestart( FILE *input_file )
  1834. #else
  1835. void yyrestart( input_file )
  1836. FILE *input_file;
  1837. #endif
  1838.     {
  1839.     yy_init_buffer( yy_current_buffer, input_file );
  1840.     yy_load_buffer_state();
  1841.     }
  1842. #ifdef YY_USE_PROTOS
  1843. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1844. #else
  1845. void yy_switch_to_buffer( new_buffer )
  1846. YY_BUFFER_STATE new_buffer;
  1847. #endif
  1848.     {
  1849.     if ( yy_current_buffer == new_buffer )
  1850. return;
  1851.     if ( yy_current_buffer )
  1852. {
  1853. /* flush out information for old buffer */
  1854. *yy_c_buf_p = yy_hold_char;
  1855. yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1856. yy_current_buffer->yy_n_chars = yy_n_chars;
  1857. }
  1858.     yy_current_buffer = new_buffer;
  1859.     yy_load_buffer_state();
  1860.     /* we don't actually know whether we did this switch during
  1861.      * EOF (yywrap()) processing, but the only time this flag
  1862.      * is looked at is after yywrap() is called, so it's safe
  1863.      * to go ahead and always set it.
  1864.      */
  1865.     yy_did_buffer_switch_on_eof = 1;
  1866.     }
  1867. #ifdef YY_USE_PROTOS
  1868. void yy_load_buffer_state( void )
  1869. #else
  1870. void yy_load_buffer_state()
  1871. #endif
  1872.     {
  1873.     yy_n_chars = yy_current_buffer->yy_n_chars;
  1874.     yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  1875.     yyin = yy_current_buffer->yy_input_file;
  1876.     yy_hold_char = *yy_c_buf_p;
  1877.     }
  1878. #ifdef YY_USE_PROTOS
  1879. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  1880. #else
  1881. YY_BUFFER_STATE yy_create_buffer( file, size )
  1882. FILE *file;
  1883. int size;
  1884. #endif
  1885.     {
  1886.     YY_BUFFER_STATE b;
  1887.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  1888.     if ( ! b )
  1889. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1890.     b->yy_buf_size = size;
  1891.     /* yy_ch_buf has to be 2 characters longer than the size given because
  1892.      * we need to put in 2 end-of-buffer characters.
  1893.      */
  1894.     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  1895.     if ( ! b->yy_ch_buf )
  1896. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1897.     yy_init_buffer( b, file );
  1898.     return ( b );
  1899.     }
  1900. #ifdef YY_USE_PROTOS
  1901. void yy_delete_buffer( YY_BUFFER_STATE b )
  1902. #else
  1903. void yy_delete_buffer( b )
  1904. YY_BUFFER_STATE b;
  1905. #endif
  1906.     {
  1907.     if ( b == yy_current_buffer )
  1908. yy_current_buffer = (YY_BUFFER_STATE) 0;
  1909.     free( (char *) b->yy_ch_buf );
  1910.     free( (char *) b );
  1911.     }
  1912. #ifdef YY_USE_PROTOS
  1913. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  1914. #else
  1915. void yy_init_buffer( b, file )
  1916. YY_BUFFER_STATE b;
  1917. FILE *file;
  1918. #endif
  1919.     {
  1920.     b->yy_input_file = file;
  1921.     /* we put in the 'n' and start reading from [1] so that an
  1922.      * initial match-at-newline will be true.
  1923.      */
  1924.     b->yy_ch_buf[0] = 'n';
  1925.     b->yy_n_chars = 1;
  1926.     /* we always need two end-of-buffer characters.  The first causes
  1927.      * a transition to the end-of-buffer state.  The second causes
  1928.      * a jam in that state.
  1929.      */
  1930.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1931.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  1932.     b->yy_buf_pos = &b->yy_ch_buf[1];
  1933.     b->yy_eof_status = EOF_NOT_SEEN;
  1934.     }
  1935. # line 336 "scan_s.l"
  1936. void
  1937. restart_server_scanner(char *stmt,i4_t bline)
  1938. {
  1939.   yy_init=1;
  1940.   line_num=bline;
  1941.   bufstring=stmt;
  1942. }
  1943. int yywrap() { return 1; }