Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

uesql_scanner.cc

00001 /* A lexical scanner generated by flex */
00002 
00003 /* Scanner skeleton version:
00004  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
00005  */
00006 
00007 #define FLEX_SCANNER
00008 #define YY_FLEX_MAJOR_VERSION 2
00009 #define YY_FLEX_MINOR_VERSION 5
00010 
00011 #include <stdio.h>
00012 #include <unistd.h>
00013 
00014 
00015 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
00016 #ifdef c_plusplus
00017 #ifndef __cplusplus
00018 #define __cplusplus
00019 #endif
00020 #endif
00021 
00022 
00023 #ifdef __cplusplus
00024 
00025 #include <stdlib.h>
00026 
00027 /* Use prototypes in function declarations. */
00028 #define YY_USE_PROTOS
00029 
00030 /* The "const" storage-class-modifier is valid. */
00031 #define YY_USE_CONST
00032 
00033 #else   /* ! __cplusplus */
00034 
00035 #if __STDC__
00036 
00037 #define YY_USE_PROTOS
00038 #define YY_USE_CONST
00039 
00040 #endif  /* __STDC__ */
00041 #endif  /* ! __cplusplus */
00042 
00043 #ifdef __TURBOC__
00044  #pragma warn -rch
00045  #pragma warn -use
00046 #include <io.h>
00047 #include <stdlib.h>
00048 #define YY_USE_CONST
00049 #define YY_USE_PROTOS
00050 #endif
00051 
00052 #ifdef YY_USE_CONST
00053 #define yyconst const
00054 #else
00055 #define yyconst
00056 #endif
00057 
00058 
00059 #ifdef YY_USE_PROTOS
00060 #define YY_PROTO(proto) proto
00061 #else
00062 #define YY_PROTO(proto) ()
00063 #endif
00064 
00065 /* Returned upon end-of-file. */
00066 #define YY_NULL 0
00067 
00068 /* Promotes a possibly negative, possibly signed char to an unsigned
00069  * integer for use as an array index.  If the signed char is negative,
00070  * we want to instead treat it as an 8-bit unsigned char, hence the
00071  * double cast.
00072  */
00073 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00074 
00075 /* Enter a start condition.  This macro really ought to take a parameter,
00076  * but we do it the disgusting crufty way forced on us by the ()-less
00077  * definition of BEGIN.
00078  */
00079 #define BEGIN yy_start = 1 + 2 *
00080 
00081 /* Translate the current start state into a value that can be later handed
00082  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00083  * compatibility.
00084  */
00085 #define YY_START ((yy_start - 1) / 2)
00086 #define YYSTATE YY_START
00087 
00088 /* Action number for EOF rule of a given start state. */
00089 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00090 
00091 /* Special action meaning "start processing a new file". */
00092 #define YY_NEW_FILE yyrestart( yyin )
00093 
00094 #define YY_END_OF_BUFFER_CHAR 0
00095 
00096 /* Size of default input buffer. */
00097 #define YY_BUF_SIZE 16384
00098 
00099 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00100 
00101 extern int yyleng;
00102 extern FILE *yyin, *yyout;
00103 
00104 #define EOB_ACT_CONTINUE_SCAN 0
00105 #define EOB_ACT_END_OF_FILE 1
00106 #define EOB_ACT_LAST_MATCH 2
00107 
00108 /* The funky do-while in the following #define is used to turn the definition
00109  * int a single C statement (which needs a semi-colon terminator).  This
00110  * avoids problems with code like:
00111  *
00112  *      if ( condition_holds )
00113  *              yyless( 5 );
00114  *      else
00115  *              do_something_else();
00116  *
00117  * Prior to using the do-while the compiler would get upset at the
00118  * "else" because it interpreted the "if" statement as being all
00119  * done when it reached the ';' after the yyless() call.
00120  */
00121 
00122 /* Return all but the first 'n' matched characters back to the input stream. */
00123 
00124 #define yyless(n) \
00125         do \
00126                 { \
00127                 /* Undo effects of setting up yytext. */ \
00128                 *yy_cp = yy_hold_char; \
00129                 YY_RESTORE_YY_MORE_OFFSET \
00130                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
00131                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00132                 } \
00133         while ( 0 )
00134 
00135 #define unput(c) yyunput( c, yytext_ptr )
00136 
00137 /* The following is because we cannot portably get our hands on size_t
00138  * (without autoconf's help, which isn't available because we want
00139  * flex-generated scanners to compile on their own).
00140  */
00141 typedef unsigned int yy_size_t;
00142 
00143 
00144 struct yy_buffer_state
00145         {
00146         FILE *yy_input_file;
00147 
00148         char *yy_ch_buf;                /* input buffer */
00149         char *yy_buf_pos;               /* current position in input buffer */
00150 
00151         /* Size of input buffer in bytes, not including room for EOB
00152          * characters.
00153          */
00154         yy_size_t yy_buf_size;
00155 
00156         /* Number of characters read into yy_ch_buf, not including EOB
00157          * characters.
00158          */
00159         int yy_n_chars;
00160 
00161         /* Whether we "own" the buffer - i.e., we know we created it,
00162          * and can realloc() it to grow it, and should free() it to
00163          * delete it.
00164          */
00165         int yy_is_our_buffer;
00166 
00167         /* Whether this is an "interactive" input source; if so, and
00168          * if we're using stdio for input, then we want to use getc()
00169          * instead of fread(), to make sure we stop fetching input after
00170          * each newline.
00171          */
00172         int yy_is_interactive;
00173 
00174         /* Whether we're considered to be at the beginning of a line.
00175          * If so, '^' rules will be active on the next match, otherwise
00176          * not.
00177          */
00178         int yy_at_bol;
00179 
00180         /* Whether to try to fill the input buffer when we reach the
00181          * end of it.
00182          */
00183         int yy_fill_buffer;
00184 
00185         int yy_buffer_status;
00186 #define YY_BUFFER_NEW 0
00187 #define YY_BUFFER_NORMAL 1
00188         /* When an EOF's been seen but there's still some text to process
00189          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00190          * shouldn't try reading from the input source any more.  We might
00191          * still have a bunch of tokens to match, though, because of
00192          * possible backing-up.
00193          *
00194          * When we actually see the EOF, we change the status to "new"
00195          * (via yyrestart()), so that the user can continue scanning by
00196          * just pointing yyin at a new input file.
00197          */
00198 #define YY_BUFFER_EOF_PENDING 2
00199         };
00200 
00201 static YY_BUFFER_STATE yy_current_buffer = 0;
00202 
00203 /* We provide macros for accessing buffer states in case in the
00204  * future we want to put the buffer states in a more general
00205  * "scanner state".
00206  */
00207 #define YY_CURRENT_BUFFER yy_current_buffer
00208 
00209 
00210 /* yy_hold_char holds the character lost when yytext is formed. */
00211 static char yy_hold_char;
00212 
00213 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00214 
00215 
00216 int yyleng;
00217 
00218 /* Points to current character in buffer. */
00219 static char *yy_c_buf_p = (char *) 0;
00220 static int yy_init = 1;         /* whether we need to initialize */
00221 static int yy_start = 0;        /* start state number */
00222 
00223 /* Flag which is used to allow yywrap()'s to do buffer switches
00224  * instead of setting up a fresh yyin.  A bit of a hack ...
00225  */
00226 static int yy_did_buffer_switch_on_eof;
00227 
00228 void yyrestart YY_PROTO(( FILE *input_file ));
00229 
00230 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
00231 void yy_load_buffer_state YY_PROTO(( void ));
00232 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
00233 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00234 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
00235 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00236 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
00237 
00238 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
00239 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
00240 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
00241 
00242 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00243 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
00244 static void yy_flex_free YY_PROTO(( void * ));
00245 
00246 #define yy_new_buffer yy_create_buffer
00247 
00248 #define yy_set_interactive(is_interactive) \
00249         { \
00250         if ( ! yy_current_buffer ) \
00251                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00252         yy_current_buffer->yy_is_interactive = is_interactive; \
00253         }
00254 
00255 #define yy_set_bol(at_bol) \
00256         { \
00257         if ( ! yy_current_buffer ) \
00258                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00259         yy_current_buffer->yy_at_bol = at_bol; \
00260         }
00261 
00262 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00263 
00264 
00265 #define YY_USES_REJECT
00266 typedef unsigned char YY_CHAR;
00267 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00268 typedef int yy_state_type;
00269 #define YY_FLEX_LEX_COMPAT
00270 extern int yylineno;
00271 int yylineno = 1;
00272 extern char yytext[];
00273 
00274 
00275 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00276 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00277 static int yy_get_next_buffer YY_PROTO(( void ));
00278 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
00279 
00280 /* Done after the current pattern has been matched and before the
00281  * corresponding action - sets up yytext.
00282  */
00283 #define YY_DO_BEFORE_ACTION \
00284         yytext_ptr = yy_bp; \
00285         yyleng = (int) (yy_cp - yy_bp); \
00286         yy_hold_char = *yy_cp; \
00287         *yy_cp = '\0'; \
00288         if ( yyleng + yy_more_offset >= YYLMAX ) \
00289                 YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
00290         yy_flex_strncpy( &yytext[yy_more_offset], yytext_ptr, yyleng + 1 ); \
00291         yyleng += yy_more_offset; \
00292         yy_prev_more_offset = yy_more_offset; \
00293         yy_more_offset = 0; \
00294         yy_c_buf_p = yy_cp;
00295 
00296 #define YY_NUM_RULES 95
00297 #define YY_END_OF_BUFFER 96
00298 static yyconst short int yy_acclist[617] =
00299     {   0,
00300         6,    6,   96,    5,   95,    5,   95,    4,   95,    5,
00301        95,    5,   95,    6,   95,    8,   95,   94,   95,   81,
00302        94,   95,   81,   95,   94,   95,   94,   95,   13,   94,
00303        95,   14,   94,   95,   15,   94,   95,   16,   94,   95,
00304        17,   94,   95,   18,   94,   95,   94,   95,   19,   94,
00305        95,   87,   94,   95,   94,   95,   20,   94,   95,   21,
00306        94,   95,   22,   94,   95,   23,   94,   95,   24,   94,
00307        95,   75,   94,   95,   75,   94,   95,   75,   94,   95,
00308        75,   94,   95,   75,   94,   95,   75,   94,   95,   75,
00309        94,   95,   75,   94,   95,   75,   94,   95,   75,   94,
00310 
00311        95,   75,   94,   95,   75,   94,   95,   94,   95,   75,
00312        94,   95,   94,   95,   93,   94,   95,    3,    6,    7,
00313        81,   85,   92,   92,   87,   11,   79,   77,   78,   75,
00314        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00315        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00316        75,   80,    2,   76,   85,   91,   92,   86,   11,   11,
00317        71,   74,   83,   75,   75,   75,   75,   75,   75,   75,
00318        75,   75,   75,   75,   75,   82,   75,   75,   75,   75,
00319        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00320        75,   84,   85,   91,   86,   11,    9,   11,   74,   12,
00321 
00322        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00323        43,   75,   75,   75,   75,   75,   51,   75,   52,   75,
00324        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00325        75,   66,   75,   75,   75,   85,   11,   11,   11,   10,
00326        70,   73,   12,   75,   75,   75,   75,   75,   75,   75,
00327        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00328        75,   75,   75,   60,   75,   75,   75,   75,   75,   75,
00329        75,   75,   11,   11,   11,   73,   83,   75,   75,   75,
00330        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00331        47,   75,   75,   82,   75,   54,   75,   75,   75,   75,
00332 
00333        75,   75,   75,   75,   75,   75,   75,   84,   85,   88,
00334        85,   89,   91,   11,   69,   72,   75,   75,   75,   75,
00335        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00336        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00337        68,   75,   72,   75,   75,   75,   75,   75,   75,   75,
00338        75,   75,   75,   75,   75,   75,   75,   25,   53,   75,
00339        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00340        75,   75,   75,   75,   75,   36,   75,   75,   75,   75,
00341        75,   75,   75,   75,   75,   75,   75,   75,   59,   75,
00342        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00343 
00344        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00345        75,   55,   75,   75,   75,   75,   75,   75,   75,   75,
00346        65,   75,   75,   85,   89,   75,   75,   75,   75,   75,
00347        75,   34,   75,   75,   75,   75,   75,   42,   75,   75,
00348        75,   75,   75,   75,   75,   75,   75,   61,   75,   75,
00349        63,   75,   75,   67,   75,   26,   75,   75,   30,   75,
00350        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00351        75,   75,   75,   50,   75,   75,   75,   75,   62,   75,
00352        75,   85,   90,   75,   75,   75,   75,   75,   75,   75,
00353        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00354 
00355        75,   75,   75,   32,   75,   75,   75,   75,   75,   75,
00356        75,   75,   75,   75,   48,   75,   75,   75,   75,   75,
00357        75,   75,   75,   75,   75,   75,   75,   75,   38,   75,
00358        75,   40,   75,   75,   75,   75,   75,   56,   75,   75,
00359        75,   64,   75,   75,   75,   75,   75,   33,   75,   35,
00360        75,   37,   75,   75,   75,   75,   46,   75,   75,   75,
00361        75,    1,   75,   75,   75,   31,   75,   75,   41,   75,
00362        75,   75,   75,   58,   75,    1,   75,   28,   75,   75,
00363        39,   75,   75,   75,   75,   75,   75,   75,   75,   75,
00364        75,    1,   75,   29,   75,   75,   75,   49,   75,   75,
00365 
00366         1,   27,   75,   75,   75,   57,   75,   44,   75,   75,
00367        75,   75,   75,   75,   45,   75
00368     } ;
00369 
00370 static yyconst short int yy_accept[704] =
00371     {   0,
00372         1,    1,    1,    2,    3,    3,    3,    4,    6,    8,
00373        10,   12,   14,   16,   18,   20,   23,   25,   27,   29,
00374        32,   35,   38,   41,   44,   47,   49,   52,   55,   57,
00375        60,   63,   66,   69,   72,   75,   78,   81,   84,   87,
00376        90,   93,   96,   99,  102,  105,  108,  110,  113,  115,
00377       118,  118,  118,  119,  119,  119,  120,  121,  122,  122,
00378       122,  122,  122,  122,  123,  123,  123,  124,  125,  126,
00379       126,  126,  127,  128,  129,  130,  130,  131,  131,  131,
00380       132,  133,  134,  135,  136,  137,  138,  139,  140,  141,
00381       141,  142,  143,  144,  145,  146,  147,  148,  149,  150,
00382 
00383       151,  152,  152,  152,  153,  153,  154,  154,  155,  155,
00384       155,  155,  157,  157,  157,  157,  157,  157,  158,  158,
00385       159,  160,  160,  160,  160,  161,  161,  161,  162,  163,
00386       163,  164,  164,  165,  166,  167,  168,  169,  170,  171,
00387       172,  173,  174,  175,  176,  176,  177,  178,  179,  180,
00388       181,  182,  183,  184,  185,  186,  187,  188,  189,  190,
00389       191,  192,  193,  193,  193,  193,  193,  193,  193,  195,
00390       195,  195,  196,  196,  197,  197,  197,  197,  197,  198,
00391       198,  198,  198,  198,  199,  199,  199,  199,  199,  199,
00392       200,  201,  201,  201,  202,  203,  204,  205,  206,  207,
00393 
00394       208,  209,  210,  211,  213,  214,  215,  216,  217,  219,
00395       219,  219,  221,  221,  221,  222,  223,  224,  225,  226,
00396       227,  228,  229,  230,  231,  232,  234,  235,  236,  236,
00397       236,  236,  236,  237,  237,  237,  237,  237,  237,  238,
00398       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
00399       238,  238,  238,  239,  240,  240,  241,  241,  241,  242,
00400       243,  244,  244,  244,  245,  246,  247,  248,  249,  250,
00401       251,  252,  253,  254,  255,  256,  257,  258,  259,  259,
00402       259,  259,  259,  260,  261,  262,  263,  264,  266,  267,
00403       268,  269,  270,  271,  272,  273,  273,  273,  273,  273,
00404 
00405       273,  273,  274,  275,  275,  275,  275,  275,  275,  275,
00406       275,  275,  275,  275,  275,  276,  276,  277,  278,  278,
00407       278,  278,  279,  280,  281,  282,  283,  284,  285,  286,
00408       287,  288,  289,  290,  291,  293,  294,  294,  295,  295,
00409       295,  295,  295,  295,  296,  298,  299,  300,  301,  302,
00410       303,  304,  305,  306,  307,  308,  309,  309,  309,  309,
00411       309,  309,  309,  309,  309,  311,  314,  314,  314,  315,
00412       315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
00413       315,  315,  315,  316,  317,  318,  319,  320,  321,  322,
00414       323,  324,  325,  326,  327,  328,  329,  330,  331,  331,
00415 
00416       332,  333,  334,  335,  336,  337,  338,  339,  340,  341,
00417       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
00418       343,  343,  344,  345,  346,  347,  348,  349,  350,  351,
00419       352,  353,  354,  355,  356,  357,  358,  359,  361,  362,
00420       363,  364,  365,  366,  367,  368,  369,  370,  370,  370,
00421       370,  370,  370,  370,  370,  370,  371,  372,  373,  374,
00422       375,  376,  378,  379,  380,  381,  382,  383,  384,  385,
00423       386,  387,  388,  389,  391,  392,  393,  394,  395,  396,
00424       397,  397,  397,  397,  397,  397,  398,  399,  400,  401,
00425       402,  403,  404,  405,  406,  407,  408,  409,  410,  411,
00426 
00427       412,  414,  415,  416,  417,  418,  419,  420,  421,  423,
00428       424,  424,  424,  426,  427,  428,  429,  430,  431,  432,
00429       434,  435,  436,  437,  438,  440,  441,  442,  443,  444,
00430       445,  446,  447,  448,  450,  451,  453,  454,  456,  456,
00431       456,  458,  459,  461,  462,  463,  464,  465,  466,  467,
00432       468,  469,  470,  471,  472,  473,  474,  476,  477,  478,
00433       479,  481,  482,  482,  484,  484,  484,  485,  486,  487,
00434       488,  489,  490,  491,  492,  493,  494,  495,  496,  497,
00435       498,  499,  500,  501,  502,  502,  502,  502,  503,  504,
00436       506,  507,  508,  509,  510,  511,  512,  513,  514,  515,
00437 
00438       517,  518,  519,  520,  521,  522,  522,  522,  523,  524,
00439       525,  526,  527,  528,  529,  531,  532,  534,  535,  536,
00440       537,  538,  540,  541,  542,  544,  544,  544,  544,  545,
00441       546,  547,  548,  550,  552,  554,  555,  556,  557,  559,
00442       560,  561,  562,  562,  562,  563,  564,  565,  566,  568,
00443       569,  571,  572,  573,  574,  576,  576,  577,  577,  578,
00444       580,  581,  583,  584,  585,  586,  586,  586,  586,  586,
00445       586,  587,  588,  589,  590,  591,  592,  592,  592,  592,
00446       593,  594,  596,  597,  598,  600,  601,  601,  602,  602,
00447       604,  605,  606,  608,  608,  610,  611,  612,  613,  614,
00448 
00449       615,  617,  617
00450     } ;
00451 
00452 static yyconst int yy_ec[256] =
00453     {   0,
00454         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00455         4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
00456         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00457         1,    5,    6,    7,    6,    6,    8,    9,   10,   11,
00458        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
00459        21,   21,   21,   21,   21,   21,   21,   22,   23,   24,
00460        25,   26,   27,    6,   28,   29,   30,   31,   32,   33,
00461        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
00462        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
00463        54,    6,   55,    6,   56,    6,   57,   58,   59,   60,
00464 
00465        61,   62,   63,   63,   64,   63,   65,   66,   63,   67,
00466        68,   63,   63,   69,   63,   70,   63,   63,   63,   71,
00467        63,   63,   72,   73,   74,    6,    1,    1,    1,    1,
00468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00469         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00470         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00471         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00472         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00473         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00474         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00475 
00476         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00477         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00478         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00479         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00480         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00481         1,    1,    1,    1,    1
00482     } ;
00483 
00484 static yyconst int yy_meta[75] =
00485     {   0,
00486         1,    2,    3,    2,    4,    5,    6,    7,    8,    7,
00487         9,   10,   11,    6,   12,    6,   13,    7,   14,   14,
00488        14,   15,    7,    7,    7,    7,    7,   16,   16,   16,
00489        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
00490        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
00491        16,   16,   16,   17,   18,   19,   16,   16,   16,   16,
00492        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
00493        16,    5,    7,    5
00494     } ;
00495 
00496 static yyconst short int yy_base[765] =
00497     {   0,
00498         0,    4, 1170, 1169,   65,    0, 1168, 3351,  138, 3351,
00499         1, 1095,    0, 1144, 3351,    8,   18,  195,    6, 3351,
00500      3351, 3351, 3351, 3351, 1143,    9, 3351,   16,   29, 3351,
00501         6, 3351, 1133, 3351,   22,   30,  124,  125,   24,  128,
00502       147,  139,  166,  127,  145,   33, 1130,  206, 1065, 3351,
00503       163, 1061, 3351, 1125, 1050,    0, 3351,  171, 1103,  270,
00504      1100,    0, 1096,  224,  225,    1,  217,  233,  238,   43,
00505        36,  296, 3351, 3351, 3351, 1086,   36, 1074,  172,  244,
00506       245,  286,  288,  287,  289,  298,  299,  295,  302, 1083,
00507       308,  316,  320,  327,  329,  336,  335,  168,  247,  339,
00508 
00509       351,  383, 1070, 3351, 1087, 3351,  998, 1015,  373,  979,
00510       375,  415,  378,  409,  413,  971,  177,  389,  212,  346,
00511       355,  444,  497,    0,  449,  942,  454, 3351,  918,    0,
00512       434,  335,  448,  445,  446,  447,  384,  466,  462,  498,
00513       463,  455,  502,  505,  917,  526,  517,  530,  383,  465,
00514       521,  523,  533,  534,  537,  541,  540,  543,  544,  550,
00515       557,  578,    0,  838,  880,  240,  576,  583,  603,  590,
00516       604,  596,    0,  590,  861,  625,  872,  645, 3351,  632,
00517       636,  657,  677,  693,    0,  681,  703,  661,  850,  801,
00518       792,  709,  792,  651,  698,  671,  710,  696,  712,  713,
00519 
00520       711,  720,  722,  614,  724,  728,  734,  735,  618,  767,
00521       784,  653,  757,  776,  757,  744,  758,  765,  767,  771,
00522       773,  777,  784,  785,  787,  795,  798,  804,  825,  775,
00523       664,  711,  829,  706,  247,  827,  830,  833,  686,    0,
00524       684,  853,  857,  869,  873,  893,  913,  927,  947,    0,
00525       967,  665,  983,  988,  898,  617,  918,  952, 3351,  650,
00526       621,  568,  286,  847,  869,  889,  916,  920,  961,  959,
00527       979,  981,  865,  987,  991,  995,  998,  943,  612,  319,
00528       298,  617,  999, 1001,  997, 1007, 1008,  887, 1017,  958,
00529      1018, 1019,  902, 1021, 1032, 1055,  762, 1053, 1058, 1084,
00530 
00531      1081,  601, 1045, 1106, 1120,  594, 1140,  734, 1032, 1152,
00532      1172, 1176, 1196,    0, 1201,  578,  567, 1145, 1062,  572,
00533       795, 1129, 1113, 1148, 1185, 1192, 1193, 1200, 1203, 1209,
00534      1210, 1211, 1212, 1213, 1109, 1219,  558, 1255,  561,  826,
00535       113,  520,  864, 1220, 1223, 1244, 1232, 1246, 1252, 1253,
00536      1256, 1259, 1260, 1262, 1266, 1288,    0,  518,  923, 1311,
00537       457,  475, 1290, 1307, 1320, 1329, 1323, 1336, 1263,  454,
00538      1356, 1360, 1372, 1376, 1396, 1416, 1420,    0, 1440,  405,
00539      1444, 1461, 3351,    0, 1285, 1350, 1302, 1368, 1372, 1412,
00540      1450, 1385, 1270, 1318, 1392, 1452, 1436, 1453,  464, 1463,
00541 
00542      1464, 1472, 1474, 1480, 1482, 1483, 1484, 1490, 1491, 1331,
00543       394,  404, 1506, 1512, 1526, 1539, 1539, 1559, 1579,    0,
00544      1583,    0, 1535, 1548, 1575, 1582, 1584, 1585, 1497, 1586,
00545      1592, 1598, 1600, 1599, 1602, 1609, 3351, 1550, 1551, 1608,
00546      1615, 1616, 1619, 1632, 1623, 1635, 1636,  345,  387, 1663,
00547      1653, 1666, 1670, 1690, 1694, 1660, 1686, 1693, 1695, 1696,
00548      1697, 1703, 1704, 1706, 1707, 1713, 1716, 1715, 1717, 1726,
00549      1733, 1740, 1742, 1724, 1749, 1751, 1752, 1753, 1761, 1765,
00550       325, 1780, 1784, 1788, 1808, 1774, 1799, 1800, 1802, 1809,
00551      1811, 1812, 1818, 1820, 1822, 1829, 1838, 1839, 1840, 1841,
00552 
00553      1842, 1849, 1855, 1851, 1861, 1867, 1869, 1877, 1880, 1881,
00554       292, 1890, 1911, 1898, 1901, 1902, 1909, 1912, 1919, 1922,
00555      1925, 1928, 1929, 1931, 1935, 1937, 1941, 1945, 1943, 1947,
00556      1951, 1961, 1963, 1964, 1965, 1971, 1973, 1974,  301, 1996,
00557      1981, 1982, 1983, 1997, 2001, 2003, 2004, 2005, 2011, 2014,
00558      2015, 2018, 2030, 2032, 2033, 2036, 2039, 2042, 2043, 2046,
00559      2049, 2050,  268, 2083, 2077, 2090, 2052, 2073, 2085, 2096,
00560      2097, 2060, 2098, 2056, 2099, 2105, 2107, 2108, 2114, 2115,
00561      2125, 2126, 2128, 2124,    0, 2143, 2160, 2137, 2160, 2134,
00562      2144, 2168, 2169, 2170, 2172, 2171, 2187, 2189, 2190, 2191,
00563 
00564      2198, 2199, 2200, 2201, 2208,  265, 2221, 2211, 2226, 2228,
00565      2229, 2235, 2238, 2242, 2244, 2245, 2248, 2251, 2252, 2255,
00566      2261, 2259, 2268, 2272, 2275,  232, 2296, 2285, 2291, 2293,
00567      2294, 2300, 2301, 2303, 2304, 2310, 2313, 2314, 2320, 2322,
00568      2323, 2326, 2357,  253,  218, 2329, 2332, 2348, 2349, 2350,
00569      2352, 2356, 2359, 2360, 2366,  176, 3351, 2393, 2368, 2369,
00570      2370, 2382, 2389, 2386, 2392,  181,  155, 2413, 2420, 2433,
00571      2422, 2424, 2425, 2426, 2428, 2432, 2454, 2471, 2479, 2489,
00572      2443, 2444, 2478, 2481, 2482, 2484,  198,  151, 2513, 2485,
00573      2505, 2506, 2507,  145, 2508, 2516, 2517, 2518, 2524, 2527,
00574 
00575      2525, 3351, 2568, 2587, 2606, 2622, 2641, 2653, 2660, 2666,
00576      2685, 2704, 2716, 2734, 2534, 2753, 2760, 2778,   35, 2796,
00577      2803,  368, 2822, 2841,  419, 2860, 2878, 2896, 2914,  462,
00578      2932, 2537, 2938, 2945,  525, 2963, 2981,  806, 2999, 3006,
00579      3025, 3044, 3063, 3082, 3101, 3108, 3127, 3145, 3163, 3181,
00580       817, 2540, 3199, 1050, 3217, 3223, 3242, 3260, 1054, 3278,
00581        44, 3293, 3312, 3331
00582     } ;
00583 
00584 static yyconst short int yy_def[765] =
00585     {   0,
00586       703,  703,  704,  704,  702,    5,  702,  702,  702,  702,
00587       702,  702,  705,  702,  702,  702,  702,  706,  707,  702,
00588       702,  702,  702,  702,  702,  702,  702,  702,  708,  702,
00589       702,  702,  702,  702,  709,  709,  709,  709,  709,  709,
00590       709,  709,  709,  709,  709,  709,  710,  709,  702,  702,
00591       702,  702,  702,  711,  702,  705,  702,  702,  702,  706,
00592       702,   60,  707,  702,  707,  712,  702,  702,  702,  702,
00593       713,  714,  702,  702,  702,  715,  709,  702,  702,  709,
00594       709,  709,  709,  709,  709,  709,  709,  709,  709,  716,
00595       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00596 
00597       709,  702,  710,  702,  711,  702,  702,  702,  702,  702,
00598       707,  702,  707,  707,  707,  712,  712,  702,  702,  702,
00599       717,  702,  718,  719,  714,  702,  720,  702,  721,  722,
00600       702,  702,  709,  709,  709,  709,  709,  709,  709,  709,
00601       709,  709,  709,  709,  716,  702,  709,  709,  709,  709,
00602       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00603       709,  702,  102,  702,  723,  724,  707,  707,  702,  707,
00604       707,  702,  725,  717,  702,  718,  726,  727,  702,  702,
00605       702,  702,  728,  729,  730,  720,  702,  731,  732,  721,
00606       733,  702,  702,  709,  709,  709,  709,  709,  709,  709,
00607 
00608       709,  709,  709,  709,  709,  709,  709,  709,  709,  702,
00609       702,  709,  702,  702,  709,  709,  709,  709,  709,  709,
00610       709,  709,  709,  709,  709,  709,  709,  709,  702,  702,
00611       702,  723,  702,  724,  724,  707,  707,  707,  734,  735,
00612       726,  702,  727,  736,  702,  702,  702,  737,  702,  738,
00613       728,  702,  729,  739,  702,  702,  702,  731,  702,  740,
00614       733,  702,  741,  709,  709,  709,  709,  709,  709,  709,
00615       709,  709,  709,  709,  709,  709,  709,  709,  742,  743,
00616       702,  744,  709,  709,  709,  709,  709,  709,  709,  709,
00617       709,  709,  709,  709,  709,  702,  745,  702,  707,  707,
00618 
00619       707,  734,  746,  736,  737,  747,  748,  702,  702,  702,
00620       749,  702,  750,  751,  739,  752,  740,  702,  702,  741,
00621       741,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00622       709,  709,  709,  709,  709,  709,  742,  702,  743,  743,
00623       702,  744,  744,  709,  709,  709,  709,  709,  709,  709,
00624       709,  709,  709,  709,  709,  702,  296,  745,  745,  702,
00625       702,  702,  707,  707,  702,  702,  707,  707,  746,  747,
00626       702,  748,  753,  702,  702,  702,  702,  754,  749,  702,
00627       750,  755,  702,  756,  709,  709,  709,  709,  709,  709,
00628       709,  709,  709,  709,  709,  709,  709,  709,  702,  709,
00629 
00630       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00631       702,  757,  707,  707,  707,  707,  753,  702,  758,  759,
00632       755,  756,  709,  709,  709,  709,  709,  709,  709,  709,
00633       709,  709,  709,  709,  709,  709,  702,  709,  709,  709,
00634       709,  709,  709,  709,  709,  709,  709,  702,  757,  702,
00635       707,  707,  707,  758,  760,  709,  709,  709,  709,  709,
00636       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00637       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00638       702,  707,  707,  707,  760,  709,  709,  709,  709,  709,
00639       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00640 
00641       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00642       702,  707,  702,  709,  709,  709,  709,  709,  709,  709,
00643       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00644       709,  709,  709,  709,  709,  709,  709,  709,  702,  707,
00645       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00646       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00647       709,  709,  702,  702,  707,  707,  709,  709,  709,  709,
00648       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00649       709,  709,  709,  709,  761,  707,  707,  709,  709,  709,
00650       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00651 
00652       709,  709,  709,  709,  709,  762,  707,  709,  709,  709,
00653       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00654       709,  709,  709,  709,  709,  762,  762,  707,  709,  709,
00655       709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
00656       709,  709,  702,  762,  762,  709,  709,  709,  709,  709,
00657       709,  709,  709,  709,  709,  702,  702,  763,  709,  709,
00658       709,  709,  709,  709,  709,  764,  764,  702,  763,  763,
00659       709,  709,  709,  709,  709,  709,  764,  702,  763,  763,
00660       709,  709,  709,  709,  709,  709,  764,  764,  763,  709,
00661       709,  709,  709,  764,  709,  709,  709,  709,  709,  709,
00662 
00663       709,    0,  702,  702,  702,  702,  702,  702,  702,  702,
00664       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
00665       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
00666       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
00667       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
00668       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
00669       702,  702,  702,  702
00670     } ;
00671 
00672 static yyconst short int yy_nxt[3426] =
00673     {   0,
00674       702,    9,   10,   58,    9,    9,   10,  702,    9,   58,
00675        58,  702,   58,   53,  702,   64,  117,   11,   54,   58,
00676        58,   11,   58,   59,   65,   65,   65,   67,   67,   67,
00677        73,   74,   68,   59,   69,   69,   69,   71,   76,   79,
00678        76,   71,  102,   78,   71,   78,   76,   70,   71,   76,
00679       184,   78,   76,  184,   78,   87,  119,   78,  119,  606,
00680        12,  120,  120,  120,   12,   15,   16,   17,   15,   16,
00681        15,   18,   15,   15,   19,   20,   21,   22,   23,   24,
00682        25,   26,   27,   28,   28,   28,   29,   30,   31,   32,
00683        33,   34,   35,   36,   37,   38,   35,   35,   35,   35,
00684 
00685        35,   35,   35,   39,   40,   41,   35,   35,   35,   42,
00686        43,   44,   45,   35,   35,   46,   35,   35,   15,   15,
00687        47,   35,   35,   35,   35,   35,   35,   35,   35,   35,
00688        35,   48,   35,   35,   35,   35,   15,   49,   50,   51,
00689        76,   76,   51,   76,   76,   78,   78,  668,   78,   78,
00690       399,   80,   85,  668,   99,   76,   90,  668,   81,   88,
00691        78,   76,   82,   76,   51,   83,   78,   51,   78,   89,
00692        94,   84,   58,   58,   91,   58,   86,  399,  100,   58,
00693        95,  131,   76,  668,   76,  101,   59,   78,   92,   78,
00694       132,  132,  117,  666,   93,   96,  157,   97,   52,   60,
00695 
00696       668,   61,   60,   60,   60,   60,   60,   60,   60,   60,
00697        60,   60,   60,   98,   92,  694,   60,   60,   60,   60,
00698        60,   60,   76,   52,  627,  109,  109,   78,  109,  111,
00699       172,  172,  172,   63,  112,   67,   67,   67,  627,  110,
00700       113,  114,  109,   65,   65,   65,  115,   92,   70,  109,
00701        60,  118,  118,  118,   68,  235,   69,   69,   69,  627,
00702        76,   76,  235,   76,   70,   78,   78,   60,   78,   70,
00703       658,  627,  134,   92,   60,  158,  108,   60,   60,   60,
00704        60,   60,   60,   60,   60,   60,   60,   60,  192,  585,
00705       133,   60,   60,   60,   60,   60,   60,  122,  122,  122,
00706 
00707       122,  321,   76,   76,   76,   76,  123,   78,   78,   78,
00708        78,   76,  124,  135,   76,   76,   78,  126,   76,   78,
00709        78,  210,  563,   78,   76,   60,  136,  137,  138,   78,
00710       539,  139,   76,  341,  340,  140,   76,   78,  141,  142,
00711       143,   78,   60,   76,  131,   76,  144,  147,   78,  127,
00712        78,   76,   76,  132,  132,   76,   78,   78,  149,  150,
00713        78,  341,  148,  154,  120,  120,  120,   76,  511,  151,
00714       155,  173,   78,  152,  109,  109,  175,  109,  153,  156,
00715       160,  159,  165,  191,   64,  148,  191,   64,  110,  450,
00716       481,  161,  162,  167,  167,  167,  168,  168,  168,   76,
00717 
00718        76,  163,  163,  163,   78,   78,  450,  118,  118,  118,
00719       163,  163,  163,  163,  163,  163,  109,  109,  169,  109,
00720        70,  215,   64,  199,   63,  448,  420,  170,  170,  170,
00721       110,  171,  171,  171,  239,  192,  192,  239,  192,  163,
00722       163,  163,  163,  163,  163,  122,  122,  122,  122,  193,
00723       122,  122,  122,  122,  123,  186,  186,  186,  186,  123,
00724       371,   76,   76,   76,   76,  124,   78,   78,   78,   78,
00725       126,   76,  187,  187,  187,  194,   78,  254,   76,   76,
00726       254,   76,   76,   78,   78,  197,   78,   78,  207,  195,
00727       206,  196,  412,  216,  198,  437,  200,  127,  176,  176,
00728 
00729       176,  176,  127,  177,  411,  178,  201,  203,  179,  178,
00730       180,  202,  180,  181,   76,  182,  182,  182,   76,   78,
00731       229,   76,  213,   78,  437,  204,   78,  210,  210,  205,
00732       210,  213,  213,   76,  213,  145,  209,   76,   78,   76,
00733       303,  211,   78,  303,   78,  214,   76,  208,  212,   76,
00734        76,   78,  217,   76,   78,   78,   76,   76,   78,   76,
00735        76,   78,   78,  210,   78,   78,   76,  338,  221,  224,
00736       218,   78,  220,   76,  192,  226,  222,  318,   78,  229,
00737       229,  225,  229,  316,  228,  169,  319,  319,  219,  223,
00738       383,  227,  169,  230,  167,  167,  167,  236,  237,  169,
00739 
00740       371,  168,  168,  168,  109,  109,  173,  109,  170,  170,
00741       170,  175,   63,  169,  172,  172,  172,  173,  110,  213,
00742       114,  338,  171,  171,  171,  238,  176,  176,  176,  176,
00743        76,  177,  343,  178,   76,   78,  702,  178,  180,   78,
00744       180,  181,   78,  182,  182,  182,  243,  243,  243,  243,
00745       245,  245,  245,  178,  246,  246,  246,  178,  247,  247,
00746       247,  247,  257,  257,  257,  257,  316,   76,  179,   76,
00747       127,  248,   78,  249,   78,  182,  182,  182,  247,  247,
00748       247,  247,  186,  186,  186,  186,  314,   76,  179,  264,
00749       242,  248,   78,  250,  122,  122,  122,  122,  252,  187,
00750 
00751       187,  187,  173,  123,  255,  255,  255,  255,  109,  124,
00752       192,  192,   76,  192,   76,  256,  266,   78,  262,   78,
00753       233,  187,  187,  187,  193,  265,   76,   76,   76,   76,
00754       298,   78,   78,   78,   78,  268,   76,  267,   76,  269,
00755        76,   78,  272,   78,   76,   78,  127,  270,  271,   78,
00756        76,   76,  374,  374,  374,   78,   78,  256,  213,  213,
00757        76,  213,  278,  274,  229,   78,  273,  276,  210,  210,
00758       275,  210,  214,   76,   76,  284,  279,  359,   78,   78,
00759       277,   76,  211,   76,  283,  285,   78,   76,   78,   76,
00760       297,  282,   78,   76,   78,  281,  287,  192,   78,  280,
00761 
00762        76,   76,  288,   76,  290,   78,   78,  263,   78,  286,
00763       321,   76,  289,   78,   76,  291,   78,  189,  293,   78,
00764        76,  313,  281,  292,  313,   78,  229,  229,  210,  229,
00765       109,  109,  382,  109,  296,  382,   64,  294,  232,   64,
00766       230,  340,   64,  295,  110,  299,  299,  299,  300,  300,
00767       300,  301,  301,  301,  247,  247,  247,  247,  243,  243,
00768       243,  243,  259,   76,  179,  702,  213,  248,   78,  702,
00769       247,  247,  247,  247,  247,  247,  247,  247,  242,  343,
00770       179,   76,  240,  248,  179,   76,   78,  248,  322,  233,
00771        78,  245,  245,  245,  247,  247,  247,  247,  323,  255,
00772 
00773       255,  255,  255,   76,  179,   76,  231,  248,   78,  331,
00774        78,  246,  246,  246,  247,  247,  247,  247,   76,  257,
00775       257,  257,  257,   78,  179,  229,  146,  248,  305,  305,
00776       305,  305,   76,  306,  189,  307,   76,   78,  359,  307,
00777       308,   78,  308,  309,  324,  310,  310,  310,  247,  247,
00778       247,  247,  256,  257,  257,  257,  257,  353,  179,   76,
00779       326,  248,  325,  185,   78,  312,  312,  312,  247,  247,
00780       247,  247,  256,   58,   76,   76,  336,   76,  179,   78,
00781        78,  248,   78,  250,  122,  122,  122,  122,  252,  122,
00782       122,  122,  122,  123,  166,   76,  350,   76,  123,  124,
00783 
00784        78,  327,   78,   76,  124,  328,  256,   76,   78,  126,
00785       330,   76,   78,   76,   76,   76,   78,   76,   78,   78,
00786        78,   62,   78,   76,   76,  329,  333,  344,   78,   78,
00787       334,  332,  335,   76,   76,   76,  127,   76,   78,   78,
00788        78,  127,   78,  346,  349,  345,  352,  347,   76,  348,
00789       375,  375,  375,   78,  360,  360,  360,  360,  164,  361,
00790       354,  173,  351,  355,  356,  419,  175,  169,  419,  455,
00791       362,  318,  455,  357,  357,  357,  299,  299,  299,  363,
00792       319,  319,  357,  357,  357,  357,  357,  357,  364,  106,
00793       366,   78,  146,  365,  367,  130,  367,  368,  128,  301,
00794 
00795       301,  301,  300,  300,  300,   64,   62,  247,  247,  247,
00796       247,  357,  357,  357,  357,  357,  357,  179,   66,  107,
00797       248,  305,  305,  305,  305,   76,  306,  106,  307,   76,
00798        78,   55,  307,  308,   78,  308,  309,  104,  310,  310,
00799       310,  372,  372,  372,  372,   76,  192,  192,  307,  192,
00800        78,   78,  307,  376,  376,  376,  376,   75,   66,  386,
00801       193,   57,  385,  179,   76,   55,  248,  702,  377,   78,
00802       310,  310,  310,  376,  376,  376,  376,  247,  247,  247,
00803       247,   14,   14,  179,  702,  702,  248,  179,  378,  387,
00804       248,  702,  702,  380,  312,  312,  312,  247,  247,  247,
00805 
00806       247,   76,  122,  122,  122,  122,   78,  179,   76,   76,
00807       248,  123,  250,   78,   78,  702,   76,  124,  702,   76,
00808       388,   78,  126,  390,   78,   76,   76,   76,   76,   76,
00809        78,   78,   78,   78,   78,   76,   76,  394,  392,   76,
00810        78,   78,  397,  702,   78,  702,  391,  389,   76,  702,
00811       398,  396,  702,   78,  127,  393,  210,  210,  400,  210,
00812        76,  702,   76,  402,  337,   78,  395,   78,   76,   76,
00813       211,  401,   76,   78,   78,   76,   76,   78,   76,  173,
00814        78,   78,   76,   78,  175,  702,   76,   78,  405,  229,
00815       229,   78,  229,  403,  702,  702,  410,  409,  702,   64,
00816 
00817       408,   76,  702,  230,  407,  431,   78,  404,  413,  413,
00818       413,  406,  360,  360,  360,  360,   64,  361,   76,  702,
00819       702,  109,  109,   78,  109,  414,  414,  414,  362,   63,
00820       109,  109,   64,  109,   76,  110,  702,  702,   63,   78,
00821       423,  415,  415,  415,  110,  366,  425,   76,  702,  367,
00822       702,  367,   78,  432,  416,  416,  416,  376,  376,  376,
00823       376,  372,  372,  372,  372,  702,   76,  179,  702,  702,
00824       248,   78,  702,  376,  376,  376,  376,  376,  376,  376,
00825       376,  424,  702,  179,   76,  702,  248,  179,   76,   78,
00826       248,  702,  702,   78,  374,  374,  374,  376,  376,  376,
00827 
00828       376,   76,  702,  702,  702,  702,   78,  179,   76,  426,
00829       248,  702,  427,   78,  375,  375,  375,  376,  376,  376,
00830       376,  376,  376,  376,  376,  702,  430,  179,   76,  702,
00831       248,  179,  433,   78,  248,  702,  702,  702,  418,  418,
00832       418,  376,  376,  376,  376,  247,  247,  247,  247,  702,
00833       702,  179,   76,  702,  248,  179,  378,   78,  248,  702,
00834       250,  380,  247,  247,  247,  247,   76,  428,   76,   76,
00835       702,   78,  179,   78,   78,  248,  702,  250,  702,   76,
00836        76,  429,  252,  434,   78,   78,  702,  702,   76,  702,
00837        76,  435,  439,   78,  438,   78,   76,  702,   76,   76,
00838 
00839        76,   78,  440,   78,   78,   78,   76,   76,  436,  702,
00840       702,   78,   78,   76,  441,  169,  702,  446,   78,  702,
00841       442,   64,  451,  444,  413,  413,  413,  462,  702,  445,
00842       414,  414,  414,  452,  443,   64,  702,  447,  702,  702,
00843       376,  376,  376,  376,  415,  415,  415,  453,  366,  702,
00844       179,   76,  367,  248,  367,  702,   78,  416,  416,  416,
00845       376,  376,  376,  376,   76,  702,   76,   76,  702,   78,
00846       179,   78,   78,  248,  702,  456,  702,  418,  418,  418,
00847       376,  376,  376,  376,  247,  247,  247,  247,  702,  472,
00848       179,   76,  457,  248,  179,  378,   78,  248,   76,  250,
00849 
00850        76,   76,   76,   78,  252,   78,   78,   78,   76,  702,
00851       458,  460,  702,   78,   76,   76,   76,  461,   76,   78,
00852        78,   78,  459,   78,   76,   76,  463,  466,  702,   78,
00853        78,   76,   76,  464,  468,   76,   78,   78,  465,   76,
00854        78,  702,  702,  475,   78,  702,  476,  469,   76,  702,
00855       470,   76,   76,   78,  467,  471,   78,   78,  702,  477,
00856       702,  474,  169,  473,  360,  360,  360,  360,  702,  361,
00857       702,  482,  482,  482,  479,   64,   76,  702,  478,   64,
00858       362,   78,  480,  702,  483,  483,  483,  486,  484,  484,
00859       484,  376,  376,  376,  376,  376,  376,  376,  376,  702,
00860 
00861       702,  179,   76,  702,  248,  179,  378,   78,  248,   76,
00862       378,   76,   76,   76,   78,  380,   78,   78,   78,   76,
00863        76,  702,   76,   76,   78,   78,  488,   78,   78,   76,
00864       702,   76,   76,   76,   78,  490,   78,   78,   78,  702,
00865        76,  487,   76,  702,  491,   78,  493,   78,  498,   76,
00866       489,  496,  495,  494,   78,  499,   76,  702,   76,  492,
00867       702,   78,  497,   78,  500,   76,  702,   76,   76,   76,
00868        78,  501,   78,   78,   78,  702,  702,   76,  702,  506,
00869       502,   76,   78,  503,  702,  702,   78,  504,  505,  169,
00870        76,  507,  509,   64,  508,   78,  510,  513,  482,  482,
00871 
00872       482,  702,  483,  483,  483,  512,  484,  484,  484,  376,
00873       376,  376,  376,  514,  702,   76,   76,  702,   76,  179,
00874        78,   78,  248,   78,  378,   76,  702,   76,   76,  380,
00875        78,  517,   78,   78,   76,  516,   76,  702,   76,   78,
00876       520,   78,  518,   78,  515,   76,  702,  519,  702,  702,
00877        78,  521,  522,  525,   76,   76,   76,   76,   76,   78,
00878        78,   78,   78,   78,  702,   76,  702,   76,  702,  526,
00879        78,   76,   78,  523,  702,  524,   78,   76,  527,  528,
00880       531,  702,   78,   76,  532,   76,  529,  702,   78,  702,
00881        78,  530,  534,   76,  533,  702,   76,   76,   78,   64,
00882 
00883       536,   78,   78,  702,  702,  535,  702,  702,  540,  540,
00884       540,  538,  109,  109,   76,  109,  702,   76,   76,   78,
00885        63,  537,   78,   78,  702,   76,  110,  702,   76,  541,
00886        78,  702,  542,   78,  702,   76,  544,  702,   76,  545,
00887        78,   76,  543,   78,   76,   76,   78,   76,  546,   78,
00888        78,   76,   78,   76,  547,  702,   78,   76,   78,   76,
00889       550,   76,   78,   76,   78,  702,   78,   76,   78,  549,
00890       554,  551,   78,  702,  556,  548,  552,   76,  555,   76,
00891        76,   76,   78,  553,   78,   78,   78,   76,  702,   76,
00892        76,  558,   78,  557,   78,   78,  561,   76,   76,   76,
00893 
00894       702,  560,   78,   78,   78,  564,  702,  559,  562,  565,
00895       702,  565,  566,   76,  540,  540,  540,   76,   78,   76,
00896        76,   76,   78,  702,   78,   78,   78,   76,  567,  702,
00897        76,   76,   78,  702,   76,   78,   78,  570,  573,   78,
00898       569,  574,  575,  568,  572,  702,   76,  576,   76,   76,
00899       571,   78,   76,   78,   78,   76,  702,   78,   76,   76,
00900        78,  577,   76,   78,   78,   76,   76,   78,   76,  702,
00901        78,   78,   76,   78,  582,  581,   76,   78,  578,  579,
00902       702,   78,  580,  584,  109,  109,   64,  109,  593,   76,
00903       702,  583,   63,  702,   78,  586,  586,  586,  110,  564,
00904 
00905       589,   76,  595,  565,  702,  565,   78,  588,  587,  587,
00906       587,  702,   76,   76,   76,   76,  590,   78,   78,   78,
00907        78,   76,  702,   76,   76,  702,   78,  591,   78,   78,
00908        76,   76,  592,  702,  702,   78,   78,  594,  596,  597,
00909        76,   76,   76,  599,   76,   78,   78,   78,  600,   78,
00910        76,  598,   64,   76,  702,   78,  702,  702,   78,  605,
00911        76,  586,  586,  586,  607,   78,  608,  702,  702,  564,
00912       601,  602,  603,  565,  604,  565,   76,  609,  587,  587,
00913       587,   78,  610,  612,   76,   76,   76,   76,   76,   78,
00914        78,   78,   78,   78,  702,  702,  702,  702,  611,  616,
00915 
00916       614,  615,  617,   76,  702,   76,   76,   76,   78,  613,
00917        78,   78,   78,  702,   76,   76,   76,   76,  618,   78,
00918        78,   78,   78,  702,   76,  702,  702,   76,  624,   78,
00919        64,  620,   78,  622,  702,  702,  621,  619,  629,  628,
00920       628,  628,   76,  702,   76,   76,  702,   78,  625,   78,
00921        78,   76,  702,  630,   76,  623,   78,  631,   76,   78,
00922        76,   76,  633,   78,   76,   78,   78,   76,   76,   78,
00923       632,   76,   78,   78,  702,   76,   78,   76,  634,  638,
00924        78,  702,   78,  636,   76,  702,  635,  702,   76,   78,
00925       637,   76,  640,   78,  564,  639,   78,  643,  643,  643,
00926 
00927       643,  702,  627,  628,  628,  628,  641,   76,  702,   76,
00928        76,  702,   78,  644,   78,   78,   76,   76,  642,   76,
00929        76,   78,   78,  702,   78,   78,   76,  702,  648,   76,
00930        76,   78,  647,  649,   78,   78,   76,  646,   76,   76,
00931       651,   78,   76,   78,   78,   76,  702,   78,   76,  702,
00932        78,  650,  652,   78,  654,  702,  659,  655,  643,  643,
00933       643,  643,  653,  660,   76,   76,   76,  645,   76,   78,
00934        78,   78,   76,   78,  656,   76,   76,   78,  702,  661,
00935        78,   78,   76,  662,   76,   76,   76,   78,  702,   78,
00936        78,   78,  664,  667,  667,  668,  667,  667,   76,  670,
00937 
00938       665,  702,   76,   78,  702,   76,  671,   78,   76,  672,
00939        78,  663,  702,   78,  643,  643,  643,  643,  673,  702,
00940       667,  667,  668,  667,  667,  676,  670,  702,  657,  702,
00941       656,  674,  675,  667,  677,  678,  677,  677,   76,  670,
00942        76,   76,   76,   78,   76,   78,   78,   78,   76,   78,
00943       679,  682,  702,   78,  702,  677,  678,  677,  677,   76,
00944        76,  702,  685,  681,   78,   78,  683,  702,  702,  702,
00945       684,  687,  643,  643,  643,  643,  690,  702,  686,  667,
00946       667,  668,  667,  667,  657,  670,  702,  702,  656,  667,
00947       667,  668,  667,  667,   76,  670,  689,   76,   76,   78,
00948 
00949        76,   76,   78,   78,  680,   78,   78,  702,  691,  702,
00950       702,  702,  692,  667,  667,  668,  667,  667,  693,  670,
00951       702,   76,   76,   76,   76,  688,   78,   78,   78,   78,
00952       702,  702,   76,   76,   76,  696,  695,   78,   78,   78,
00953        76,   76,  657,   76,  129,   78,   78,  260,   78,  129,
00954       384,  697,  260,  699,  702,  384,  702,  702,  702,  702,
00955       702,  702,  698,  702,  702,  700,  702,  701,    8,    8,
00956         8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
00957         8,    8,    8,    8,    8,    8,    8,   13,   13,   13,
00958        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
00959 
00960        13,   13,   13,   13,   13,   13,   56,   56,   56,   56,
00961        56,   56,   56,   56,   56,   56,  702,   56,   56,   56,
00962        56,   56,   56,   56,   56,   62,  702,   62,   62,   62,
00963        62,   62,   62,   62,   62,   62,   62,   62,  702,  702,
00964        62,   63,   63,  702,   63,   63,   63,   63,   63,   63,
00965        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
00966        72,  702,  702,   72,  702,  702,  702,  702,   72,  702,
00967       702,   72,   77,   77,   77,   77,  702,  702,   77,  103,
00968       103,  103,  702,  702,  103,  105,  105,  105,  105,  105,
00969       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00970 
00971       105,  105,  105,  105,  116,  116,  116,  116,  116,  116,
00972       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
00973       116,  116,  116,  121,  702,  702,  121,  702,  702,  702,
00974       702,  121,  702,  702,  121,  125,  125,  125,  702,  702,
00975       702,  702,  125,  702,  702,  702,  125,  125,  125,  125,
00976       125,  702,  125,  145,  145,  702,  145,  145,  145,  145,
00977       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
00978       145,  145,  174,  174,  174,  174,  702,  702,  174,  183,
00979       183,  183,  702,  183,  702,  183,  702,  183,  183,  702,
00980       183,  183,  702,  183,  702,  702,  183,  188,  188,  188,
00981 
00982       702,  702,  702,  702,  702,  702,  702,  702,  702,  188,
00983       702,  188,  702,  702,  188,  190,  190,  702,  190,  702,
00984       702,  190,  232,  232,  702,  232,  232,  232,  232,  232,
00985       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
00986       232,  234,  234,  234,  234,  234,  234,  234,  234,  234,
00987       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
00988       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
00989       241,  241,  241,  241,  241,  241,  241,  241,  241,  244,
00990       244,  244,  702,  702,  702,  244,  702,  702,  244,  702,
00991       702,  702,  702,  244,  702,  702,  244,  251,  251,  251,
00992 
00993       702,  702,  702,  702,  702,  251,  702,  251,  251,  251,
00994       251,  251,  702,  702,  251,  253,  253,  253,  702,  702,
00995       702,  702,  253,  702,  702,  702,  253,  253,  702,  253,
00996       253,  702,  253,  258,  258,  258,  702,  702,  702,  702,
00997       702,  702,  702,  702,  702,  258,  702,  258,  702,  258,
00998       258,  261,  261,  261,  702,  702,  261,  302,  302,  702,
00999       302,  702,  702,  302,  304,  304,  304,  702,  702,  702,
01000       702,  702,  304,  702,  304,  702,  304,  702,  304,  702,
01001       702,  304,  311,  311,  311,  702,  311,  702,  311,  702,
01002       702,  311,  702,  311,  311,  702,  311,  702,  702,  311,
01003 
01004       315,  315,  315,  702,  702,  702,  702,  315,  702,  702,
01005       702,  315,  315,  315,  315,  315,  702,  315,  317,  317,
01006       702,  317,  702,  702,  317,  320,  320,  320,  320,  320,
01007       320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
01008       320,  320,  320,  320,  337,  337,  702,  337,  337,  337,
01009       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
01010       337,  337,  337,  339,  339,  339,  339,  339,  339,  339,
01011       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
01012       339,  339,  342,  342,  342,  342,  342,  342,  342,  342,
01013       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
01014 
01015       342,  358,  358,  358,  358,  358,  358,  358,  358,  358,
01016       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
01017       369,  369,  369,  369,  702,  702,  369,  370,  370,  370,
01018       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
01019       370,  370,  370,  370,  370,  370,  373,  373,  373,  702,
01020       702,  702,  373,  702,  702,  373,  702,  702,  702,  702,
01021       373,  702,  702,  373,  379,  379,  379,  702,  702,  702,
01022       702,  702,  379,  702,  379,  379,  379,  379,  379,  702,
01023       702,  379,  381,  381,  381,  702,  702,  702,  702,  702,
01024       381,  702,  381,  381,  381,  702,  381,  702,  702,  381,
01025 
01026       417,  417,  417,  702,  702,  702,  702,  702,  417,  702,
01027       417,  702,  417,  702,  417,  702,  702,  417,  421,  421,
01028       421,  702,  702,  702,  702,  702,  421,  702,  421,  421,
01029       421,  421,  421,  702,  702,  421,  422,  702,  422,  702,
01030       702,  422,  449,  449,  449,  449,  449,  449,  449,  449,
01031       449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
01032       449,  454,  454,  454,  702,  702,  702,  702,  702,  454,
01033       702,  454,  454,  454,  702,  454,  702,  702,  454,  485,
01034       485,  485,  702,  702,  702,  702,  702,  485,  702,  485,
01035       485,  485,  485,  485,  702,  702,  485,  626,  626,  626,
01036 
01037       626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
01038       626,  626,  669,  669,  669,  669,  669,  669,  669,  669,
01039       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
01040       669,  667,  667,  667,  667,  667,  667,  667,  667,  667,
01041       667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
01042         7,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01043       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01044       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01045       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01046       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01047 
01048       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01049       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01050       702,  702,  702,  702,  702
01051     } ;
01052 
01053 static yyconst short int yy_chk[3426] =
01054     {   0,
01055         0,    1,    1,   66,    1,    2,    2,    0,    2,   16,
01056        16,    0,   16,   11,    0,   19,   66,    1,   11,   17,
01057        17,    2,   17,   16,   19,   19,   19,   26,   26,   26,
01058        31,   31,   28,   17,   28,   28,   28,   29,   35,   36,
01059        39,   29,   46,   35,   71,   39,   36,   28,   71,   46,
01060       719,   36,   77,  719,   46,   39,   70,   77,   70,  761,
01061         1,   70,   70,   70,    2,    5,    5,    5,    5,    5,
01062         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01063         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01064         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01065 
01066         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01067         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01068         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
01069         5,    5,    5,    5,    5,    5,    5,    5,    5,    9,
01070        37,   38,    9,   44,   40,   37,   38,  694,   44,   40,
01071       341,   37,   38,  688,   44,   42,   41,  667,   37,   40,
01072        42,   45,   37,   41,   51,   37,   45,   51,   41,   40,
01073        42,   37,   58,   58,   41,   58,   38,  341,   44,  117,
01074        42,   79,   43,  666,   98,   45,   58,   43,   41,   98,
01075        79,   79,  117,  656,   41,   43,   98,   43,    9,   18,
01076 
01077       687,   18,   18,   18,   18,   18,   18,   18,   18,   18,
01078        18,   18,   18,   43,   41,  687,   18,   18,   18,   18,
01079        18,   18,   48,   51,  645,   64,   64,   48,   64,   65,
01080       119,  119,  119,   64,   65,   67,   67,   67,  626,   64,
01081        65,   65,  166,   65,   65,   65,   65,   48,   67,  235,
01082        18,   68,   68,   68,   69,  166,   69,   69,   69,  644,
01083        80,   81,  235,   99,   68,   80,   81,   18,   99,   69,
01084       644,  606,   81,   48,   60,   99,   60,   60,   60,   60,
01085        60,   60,   60,   60,   60,   60,   60,   60,  263,  563,
01086        80,   60,   60,   60,   60,   60,   60,   72,   72,   72,
01087 
01088        72,  263,   82,   84,   83,   85,   72,   82,   84,   83,
01089        85,   88,   72,   82,   86,   87,   88,   72,   89,   86,
01090        87,  280,  539,   89,   91,   60,   83,   83,   83,   91,
01091       511,   84,   92,  281,  280,   85,   93,   92,   86,   87,
01092        88,   93,   60,   94,  132,   95,   89,   91,   94,   72,
01093        95,   97,   96,  132,  132,  100,   97,   96,   93,   93,
01094       100,  281,   92,   96,  120,  120,  120,  101,  481,   94,
01095        96,  121,  101,   94,  109,  109,  121,  109,   95,   97,
01096       101,  100,  109,  722,  111,   92,  722,  113,  109,  449,
01097       448,  101,  102,  111,  111,  111,  113,  113,  113,  149,
01098 
01099       137,  102,  102,  102,  149,  137,  412,  118,  118,  118,
01100       102,  102,  102,  102,  102,  102,  112,  112,  114,  112,
01101       118,  149,  115,  137,  112,  411,  380,  114,  114,  114,
01102       112,  115,  115,  115,  725,  131,  131,  725,  131,  102,
01103       102,  102,  102,  102,  102,  122,  122,  122,  122,  131,
01104       125,  125,  125,  125,  122,  127,  127,  127,  127,  125,
01105       370,  134,  135,  136,  133,  125,  134,  135,  136,  133,
01106       125,  142,  127,  127,  127,  133,  142,  730,  139,  141,
01107       730,  150,  138,  139,  141,  136,  150,  138,  142,  134,
01108       141,  135,  362,  150,  136,  399,  138,  122,  123,  123,
01109 
01110       123,  123,  125,  123,  361,  123,  138,  139,  123,  123,
01111       123,  138,  123,  123,  140,  123,  123,  123,  143,  140,
01112       358,  144,  342,  143,  399,  140,  144,  146,  146,  140,
01113       146,  148,  148,  147,  148,  146,  144,  151,  147,  152,
01114       735,  146,  151,  735,  152,  148,  148,  143,  147,  153,
01115       154,  148,  151,  155,  153,  154,  157,  156,  155,  158,
01116       159,  157,  156,  339,  158,  159,  160,  337,  155,  157,
01117       152,  160,  154,  161,  320,  159,  156,  262,  161,  162,
01118       162,  158,  162,  317,  161,  167,  262,  262,  153,  156,
01119       316,  160,  168,  162,  167,  167,  167,  167,  168,  170,
01120 
01121       306,  168,  168,  168,  169,  169,  174,  169,  170,  170,
01122       170,  174,  169,  171,  172,  172,  172,  302,  169,  282,
01123       171,  279,  171,  171,  171,  171,  176,  176,  176,  176,
01124       204,  176,  282,  176,  209,  204,  176,  176,  176,  209,
01125       176,  176,  261,  176,  176,  176,  178,  178,  178,  178,
01126       180,  180,  180,  178,  181,  181,  181,  178,  182,  182,
01127       182,  182,  188,  188,  188,  188,  260,  194,  182,  212,
01128       256,  182,  194,  182,  212,  182,  182,  182,  183,  183,
01129       183,  183,  186,  186,  186,  186,  252,  196,  183,  194,
01130       241,  183,  196,  183,  184,  184,  184,  184,  183,  186,
01131 
01132       186,  186,  239,  184,  187,  187,  187,  187,  234,  184,
01133       192,  192,  198,  192,  195,  188,  196,  198,  192,  195,
01134       232,  187,  187,  187,  192,  195,  197,  201,  199,  200,
01135       231,  197,  201,  199,  200,  198,  202,  197,  203,  199,
01136       205,  202,  201,  203,  206,  205,  184,  199,  200,  206,
01137       207,  208,  308,  308,  308,  207,  208,  187,  213,  213,
01138       216,  213,  208,  203,  297,  216,  202,  206,  210,  210,
01139       205,  210,  213,  215,  217,  216,  210,  297,  215,  217,
01140       207,  218,  210,  219,  215,  217,  218,  220,  219,  221,
01141       230,  214,  220,  222,  221,  213,  219,  321,  222,  211,
01142 
01143       223,  224,  220,  225,  222,  223,  224,  193,  225,  218,
01144       321,  226,  221,  191,  227,  223,  226,  190,  225,  227,
01145       228,  738,  213,  224,  738,  228,  229,  229,  340,  229,
01146       233,  233,  751,  233,  229,  751,  236,  227,  233,  237,
01147       229,  340,  238,  228,  233,  236,  236,  236,  237,  237,
01148       237,  238,  238,  238,  242,  242,  242,  242,  243,  243,
01149       243,  243,  189,  264,  242,  243,  343,  242,  264,  243,
01150       244,  244,  244,  244,  245,  245,  245,  245,  177,  343,
01151       244,  273,  175,  244,  245,  265,  273,  245,  264,  165,
01152       265,  245,  245,  245,  246,  246,  246,  246,  265,  255,
01153 
01154       255,  255,  255,  288,  246,  266,  164,  246,  288,  273,
01155       266,  246,  246,  246,  247,  247,  247,  247,  293,  257,
01156       257,  257,  257,  293,  247,  359,  145,  247,  248,  248,
01157       248,  248,  267,  248,  129,  248,  268,  267,  359,  248,
01158       248,  268,  248,  248,  266,  248,  248,  248,  249,  249,
01159       249,  249,  255,  258,  258,  258,  258,  293,  249,  278,
01160       268,  249,  267,  126,  278,  249,  249,  249,  251,  251,
01161       251,  251,  257,  116,  290,  270,  278,  269,  251,  290,
01162       270,  251,  269,  251,  253,  253,  253,  253,  251,  254,
01163       254,  254,  254,  253,  110,  271,  290,  272,  254,  253,
01164 
01165       271,  269,  272,  274,  254,  270,  258,  275,  274,  254,
01166       272,  276,  275,  285,  277,  283,  276,  284,  285,  277,
01167       283,  108,  284,  286,  287,  271,  275,  283,  286,  287,
01168       276,  274,  277,  289,  291,  292,  253,  294,  289,  291,
01169       292,  254,  294,  285,  289,  284,  292,  286,  295,  287,
01170       309,  309,  309,  295,  298,  298,  298,  298,  107,  298,
01171       294,  303,  291,  295,  296,  754,  303,  299,  754,  759,
01172       298,  319,  759,  296,  296,  296,  299,  299,  299,  299,
01173       319,  319,  296,  296,  296,  296,  296,  296,  300,  105,
01174       301,  103,   90,  300,  301,   78,  301,  301,   76,  301,
01175 
01176       301,  301,  300,  300,  300,   63,   61,  304,  304,  304,
01177       304,  296,  296,  296,  296,  296,  296,  304,   59,   55,
01178       304,  305,  305,  305,  305,  335,  305,   54,  305,  323,
01179       335,   52,  305,  305,  323,  305,  305,   49,  305,  305,
01180       305,  307,  307,  307,  307,  322,  318,  318,  307,  318,
01181       322,   47,  307,  310,  310,  310,  310,   33,   25,  323,
01182       318,   14,  322,  310,  324,   12,  310,    7,  310,  324,
01183       310,  310,  310,  311,  311,  311,  311,  312,  312,  312,
01184       312,    4,    3,  311,    0,    0,  311,  312,  311,  324,
01185       312,    0,    0,  311,  312,  312,  312,  313,  313,  313,
01186 
01187       313,  325,  315,  315,  315,  315,  325,  313,  326,  327,
01188       313,  315,  313,  326,  327,    0,  328,  315,    0,  329,
01189       325,  328,  315,  327,  329,  330,  331,  332,  333,  334,
01190       330,  331,  332,  333,  334,  336,  344,  331,  329,  345,
01191       336,  344,  334,    0,  345,    0,  328,  326,  347,    0,
01192       336,  333,    0,  347,  315,  330,  338,  338,  344,  338,
01193       346,    0,  348,  347,  338,  346,  332,  348,  349,  350,
01194       338,  346,  351,  349,  350,  352,  353,  351,  354,  369,
01195       352,  353,  355,  354,  369,    0,  393,  355,  350,  356,
01196       356,  393,  356,  348,    0,    0,  355,  354,    0,  363,
01197 
01198       353,  385,    0,  356,  352,  393,  385,  349,  363,  363,
01199       363,  351,  360,  360,  360,  360,  364,  360,  387,    0,
01200         0,  365,  365,  387,  365,  364,  364,  364,  360,  365,
01201       366,  366,  367,  366,  394,  365,    0,    0,  366,  394,
01202       385,  367,  367,  367,  366,  368,  387,  410,    0,  368,
01203         0,  368,  410,  394,  368,  368,  368,  371,  371,  371,
01204       371,  372,  372,  372,  372,    0,  386,  371,  372,    0,
01205       371,  386,  372,  373,  373,  373,  373,  374,  374,  374,
01206       374,  386,    0,  373,  388,    0,  373,  374,  389,  388,
01207       374,    0,    0,  389,  374,  374,  374,  375,  375,  375,
01208 
01209       375,  392,    0,    0,    0,    0,  392,  375,  395,  388,
01210       375,    0,  389,  395,  375,  375,  375,  376,  376,  376,
01211       376,  377,  377,  377,  377,    0,  392,  376,  390,    0,
01212       376,  377,  395,  390,  377,    0,    0,    0,  377,  377,
01213       377,  379,  379,  379,  379,  381,  381,  381,  381,    0,
01214         0,  379,  397,    0,  379,  381,  379,  397,  381,    0,
01215       381,  379,  382,  382,  382,  382,  391,  390,  396,  398,
01216         0,  391,  382,  396,  398,  382,    0,  382,    0,  400,
01217       401,  391,  382,  396,  400,  401,    0,    0,  402,    0,
01218       403,  397,  401,  402,  400,  403,  404,    0,  405,  406,
01219 
01220       407,  404,  402,  405,  406,  407,  408,  409,  398,    0,
01221         0,  408,  409,  429,  403,  413,    0,  408,  429,    0,
01222       404,  414,  413,  406,  413,  413,  413,  429,    0,  407,
01223       414,  414,  414,  414,  405,  415,    0,  409,    0,    0,
01224       417,  417,  417,  417,  415,  415,  415,  415,  416,    0,
01225       417,  423,  416,  417,  416,    0,  423,  416,  416,  416,
01226       418,  418,  418,  418,  424,    0,  438,  439,    0,  424,
01227       418,  438,  439,  418,    0,  423,    0,  418,  418,  418,
01228       419,  419,  419,  419,  421,  421,  421,  421,    0,  439,
01229       419,  425,  424,  419,  421,  419,  425,  421,  426,  421,
01230 
01231       427,  428,  430,  426,  421,  427,  428,  430,  431,    0,
01232       425,  427,    0,  431,  432,  434,  433,  428,  435,  432,
01233       434,  433,  426,  435,  440,  436,  430,  433,    0,  440,
01234       436,  441,  442,  431,  435,  443,  441,  442,  432,  445,
01235       443,    0,    0,  442,  445,    0,  443,  436,  444,    0,
01236       436,  446,  447,  444,  434,  436,  446,  447,    0,  444,
01237         0,  441,  451,  440,  450,  450,  450,  450,    0,  450,
01238         0,  451,  451,  451,  446,  452,  456,    0,  445,  453,
01239       450,  456,  447,    0,  452,  452,  452,  456,  453,  453,
01240       453,  454,  454,  454,  454,  455,  455,  455,  455,    0,
01241 
01242         0,  454,  457,    0,  454,  455,  454,  457,  455,  458,
01243       455,  459,  460,  461,  458,  455,  459,  460,  461,  462,
01244       463,    0,  464,  465,  462,  463,  458,  464,  465,  466,
01245         0,  468,  467,  469,  466,  460,  468,  467,  469,    0,
01246       474,  457,  470,    0,  461,  474,  464,  470,  469,  471,
01247       459,  467,  466,  465,  471,  470,  472,    0,  473,  463,
01248         0,  472,  468,  473,  471,  475,    0,  476,  477,  478,
01249       475,  472,  476,  477,  478,    0,    0,  479,    0,  476,
01250       473,  480,  479,  473,    0,    0,  480,  473,  475,  482,
01251       486,  477,  479,  483,  478,  486,  480,  484,  482,  482,
01252 
01253       482,    0,  483,  483,  483,  483,  484,  484,  484,  485,
01254       485,  485,  485,  486,    0,  487,  488,    0,  489,  485,
01255       487,  488,  485,  489,  485,  490,    0,  491,  492,  485,
01256       490,  489,  491,  492,  493,  488,  494,    0,  495,  493,
01257       490,  494,  489,  495,  487,  496,    0,  489,    0,    0,
01258       496,  491,  492,  495,  497,  498,  499,  500,  501,  497,
01259       498,  499,  500,  501,    0,  502,    0,  504,    0,  496,
01260       502,  503,  504,  493,    0,  494,  503,  505,  497,  498,
01261       502,    0,  505,  506,  503,  507,  499,    0,  506,    0,
01262       507,  500,  505,  508,  504,    0,  509,  510,  508,  512,
01263 
01264       507,  509,  510,    0,    0,  506,    0,    0,  512,  512,
01265       512,  510,  513,  513,  514,  513,    0,  515,  516,  514,
01266       513,  508,  515,  516,    0,  517,  513,    0,  518,  514,
01267       517,    0,  515,  518,    0,  519,  517,    0,  520,  518,
01268       519,  521,  516,  520,  522,  523,  521,  524,  519,  522,
01269       523,  525,  524,  526,  521,    0,  525,  527,  526,  529,
01270       524,  528,  527,  530,  529,    0,  528,  531,  530,  523,
01271       527,  524,  531,    0,  529,  522,  524,  532,  528,  533,
01272       534,  535,  532,  526,  533,  534,  535,  536,    0,  537,
01273       538,  531,  536,  530,  537,  538,  535,  541,  542,  543,
01274 
01275         0,  533,  541,  542,  543,  540,    0,  532,  537,  540,
01276         0,  540,  540,  544,  540,  540,  540,  545,  544,  546,
01277       547,  548,  545,    0,  546,  547,  548,  549,  542,    0,
01278       550,  551,  549,    0,  552,  550,  551,  546,  549,  552,
01279       545,  550,  551,  544,  548,    0,  553,  552,  554,  555,
01280       547,  553,  556,  554,  555,  557,    0,  556,  558,  559,
01281       557,  553,  560,  558,  559,  561,  562,  560,  567,    0,
01282       561,  562,  574,  567,  559,  558,  572,  574,  554,  555,
01283         0,  572,  556,  562,  564,  564,  565,  564,  572,  568,
01284         0,  560,  564,    0,  568,  565,  565,  565,  564,  566,
01285 
01286       568,  569,  574,  566,    0,  566,  569,  567,  566,  566,
01287       566,    0,  570,  571,  573,  575,  569,  570,  571,  573,
01288       575,  576,    0,  577,  578,    0,  576,  570,  577,  578,
01289       579,  580,  571,    0,    0,  579,  580,  573,  575,  576,
01290       584,  581,  582,  578,  583,  584,  581,  582,  579,  583,
01291       590,  577,  586,  588,    0,  590,    0,    0,  588,  584,
01292       591,  586,  586,  586,  586,  591,  588,    0,    0,  587,
01293       580,  581,  582,  587,  583,  587,  589,  588,  587,  587,
01294       587,  589,  588,  591,  592,  593,  594,  596,  595,  592,
01295       593,  594,  596,  595,    0,    0,    0,    0,  589,  595,
01296 
01297       593,  594,  596,  597,    0,  598,  599,  600,  597,  592,
01298       598,  599,  600,    0,  601,  602,  603,  604,  597,  601,
01299       602,  603,  604,    0,  605,    0,    0,  608,  604,  605,
01300       607,  599,  608,  602,    0,    0,  601,  598,  608,  607,
01301       607,  607,  609,    0,  610,  611,    0,  609,  605,  610,
01302       611,  612,    0,  609,  613,  603,  612,  610,  614,  613,
01303       615,  616,  612,  614,  617,  615,  616,  618,  619,  617,
01304       611,  620,  618,  619,    0,  622,  620,  621,  613,  619,
01305       622,    0,  621,  616,  623,    0,  614,    0,  624,  623,
01306       618,  625,  621,  624,  628,  620,  625,  627,  627,  627,
01307 
01308       627,    0,  627,  628,  628,  628,  623,  629,    0,  630,
01309       631,    0,  629,  627,  630,  631,  632,  633,  624,  634,
01310       635,  632,  633,    0,  634,  635,  636,    0,  631,  637,
01311       638,  636,  630,  632,  637,  638,  639,  629,  640,  641,
01312       637,  639,  642,  640,  641,  646,    0,  642,  647,    0,
01313       646,  636,  638,  647,  641,    0,  646,  642,  643,  643,
01314       643,  643,  640,  647,  648,  649,  650,  627,  651,  648,
01315       649,  650,  652,  651,  643,  653,  654,  652,    0,  648,
01316       653,  654,  655,  650,  659,  660,  661,  655,    0,  659,
01317       660,  661,  653,  658,  658,  658,  658,  658,  662,  658,
01318 
01319       654,    0,  664,  662,    0,  663,  659,  664,  665,  661,
01320       663,  652,    0,  665,  668,  668,  668,  668,  663,    0,
01321       669,  669,  669,  669,  669,  665,  669,    0,  643,    0,
01322       668,  663,  664,  670,  670,  670,  670,  670,  671,  670,
01323       672,  673,  674,  671,  675,  672,  673,  674,  676,  675,
01324       670,  672,    0,  676,    0,  677,  677,  677,  677,  681,
01325       682,    0,  675,  671,  681,  682,  673,    0,    0,    0,
01326       674,  677,  678,  678,  678,  678,  681,    0,  676,  679,
01327       679,  679,  679,  679,  668,  679,    0,    0,  678,  680,
01328       680,  680,  680,  680,  683,  680,  679,  684,  685,  683,
01329 
01330       686,  690,  684,  685,  670,  686,  690,    0,  683,    0,
01331         0,    0,  684,  689,  689,  689,  689,  689,  686,  689,
01332         0,  691,  692,  693,  695,  677,  691,  692,  693,  695,
01333         0,    0,  696,  697,  698,  692,  691,  696,  697,  698,
01334       699,  701,  678,  700,  715,  699,  701,  732,  700,  715,
01335       752,  696,  732,  698,    0,  752,    0,    0,    0,    0,
01336         0,    0,  697,    0,    0,  699,    0,  700,  703,  703,
01337       703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
01338       703,  703,  703,  703,  703,  703,  703,  704,  704,  704,
01339       704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
01340 
01341       704,  704,  704,  704,  704,  704,  705,  705,  705,  705,
01342       705,  705,  705,  705,  705,  705,    0,  705,  705,  705,
01343       705,  705,  705,  705,  705,  706,    0,  706,  706,  706,
01344       706,  706,  706,  706,  706,  706,  706,  706,    0,    0,
01345       706,  707,  707,    0,  707,  707,  707,  707,  707,  707,
01346       707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
01347       708,    0,    0,  708,    0,    0,    0,    0,  708,    0,
01348         0,  708,  709,  709,  709,  709,    0,    0,  709,  710,
01349       710,  710,    0,    0,  710,  711,  711,  711,  711,  711,
01350       711,  711,  711,  711,  711,  711,  711,  711,  711,  711,
01351 
01352       711,  711,  711,  711,  712,  712,  712,  712,  712,  712,
01353       712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
01354       712,  712,  712,  713,    0,    0,  713,    0,    0,    0,
01355         0,  713,    0,    0,  713,  714,  714,  714,    0,    0,
01356         0,    0,  714,    0,    0,    0,  714,  714,  714,  714,
01357       714,    0,  714,  716,  716,    0,  716,  716,  716,  716,
01358       716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
01359       716,  716,  717,  717,  717,  717,    0,    0,  717,  718,
01360       718,  718,    0,  718,    0,  718,    0,  718,  718,    0,
01361       718,  718,    0,  718,    0,    0,  718,  720,  720,  720,
01362 
01363         0,    0,    0,    0,    0,    0,    0,    0,    0,  720,
01364         0,  720,    0,    0,  720,  721,  721,    0,  721,    0,
01365         0,  721,  723,  723,    0,  723,  723,  723,  723,  723,
01366       723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
01367       723,  724,  724,  724,  724,  724,  724,  724,  724,  724,
01368       724,  724,  724,  724,  724,  724,  724,  724,  724,  724,
01369       726,  726,  726,  726,  726,  726,  726,  726,  726,  726,
01370       726,  726,  726,  726,  726,  726,  726,  726,  726,  727,
01371       727,  727,    0,    0,    0,  727,    0,    0,  727,    0,
01372         0,    0,    0,  727,    0,    0,  727,  728,  728,  728,
01373 
01374         0,    0,    0,    0,    0,  728,    0,  728,  728,  728,
01375       728,  728,    0,    0,  728,  729,  729,  729,    0,    0,
01376         0,    0,  729,    0,    0,    0,  729,  729,    0,  729,
01377       729,    0,  729,  731,  731,  731,    0,    0,    0,    0,
01378         0,    0,    0,    0,    0,  731,    0,  731,    0,  731,
01379       731,  733,  733,  733,    0,    0,  733,  734,  734,    0,
01380       734,    0,    0,  734,  736,  736,  736,    0,    0,    0,
01381         0,    0,  736,    0,  736,    0,  736,    0,  736,    0,
01382         0,  736,  737,  737,  737,    0,  737,    0,  737,    0,
01383         0,  737,    0,  737,  737,    0,  737,    0,    0,  737,
01384 
01385       739,  739,  739,    0,    0,    0,    0,  739,    0,    0,
01386         0,  739,  739,  739,  739,  739,    0,  739,  740,  740,
01387         0,  740,    0,    0,  740,  741,  741,  741,  741,  741,
01388       741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
01389       741,  741,  741,  741,  742,  742,    0,  742,  742,  742,
01390       742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
01391       742,  742,  742,  743,  743,  743,  743,  743,  743,  743,
01392       743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
01393       743,  743,  744,  744,  744,  744,  744,  744,  744,  744,
01394       744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
01395 
01396       744,  745,  745,  745,  745,  745,  745,  745,  745,  745,
01397       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
01398       746,  746,  746,  746,    0,    0,  746,  747,  747,  747,
01399       747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
01400       747,  747,  747,  747,  747,  747,  748,  748,  748,    0,
01401         0,    0,  748,    0,    0,  748,    0,    0,    0,    0,
01402       748,    0,    0,  748,  749,  749,  749,    0,    0,    0,
01403         0,    0,  749,    0,  749,  749,  749,  749,  749,    0,
01404         0,  749,  750,  750,  750,    0,    0,    0,    0,    0,
01405       750,    0,  750,  750,  750,    0,  750,    0,    0,  750,
01406 
01407       753,  753,  753,    0,    0,    0,    0,    0,  753,    0,
01408       753,    0,  753,    0,  753,    0,    0,  753,  755,  755,
01409       755,    0,    0,    0,    0,    0,  755,    0,  755,  755,
01410       755,  755,  755,    0,    0,  755,  756,    0,  756,    0,
01411         0,  756,  757,  757,  757,  757,  757,  757,  757,  757,
01412       757,  757,  757,  757,  757,  757,  757,  757,  757,  757,
01413       757,  758,  758,  758,    0,    0,    0,    0,    0,  758,
01414         0,  758,  758,  758,    0,  758,    0,    0,  758,  760,
01415       760,  760,    0,    0,    0,    0,    0,  760,    0,  760,
01416       760,  760,  760,  760,    0,    0,  760,  762,  762,  762,
01417 
01418       762,  762,  762,  762,  762,  762,  762,  762,  762,  762,
01419       762,  762,  763,  763,  763,  763,  763,  763,  763,  763,
01420       763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
01421       763,  764,  764,  764,  764,  764,  764,  764,  764,  764,
01422       764,  764,  764,  764,  764,  764,  764,  764,  764,  764,
01423       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01424       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01425       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01426       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01427       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01428 
01429       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01430       702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
01431       702,  702,  702,  702,  702
01432     } ;
01433 
01434 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
01435 static char *yy_full_match;
01436 static int yy_lp;
01437 #define REJECT \
01438 { \
01439 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
01440 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
01441 ++yy_lp; \
01442 goto find_rule; \
01443 }
01444 static int yy_more_offset = 0;
01445 static int yy_prev_more_offset = 0;
01446 #define yymore() (yy_more_offset = yy_flex_strlen( yytext ))
01447 #define YY_NEED_STRLEN
01448 #define YY_MORE_ADJ 0
01449 #define YY_RESTORE_YY_MORE_OFFSET \
01450         { \
01451         yy_more_offset = yy_prev_more_offset; \
01452         yyleng -= yy_more_offset; \
01453         }
01454 #ifndef YYLMAX
01455 #define YYLMAX 8192
01456 #endif
01457 
01458 char yytext[YYLMAX];
01459 char *yytext_ptr;
01460 #line 1 "uesql_scanner.ll"
01461 #define INITIAL 0
01462 /*
01463 *  Name:      uesql_scanner.ll
01464 *  Author:    Rafael Jesus Alcantara Perez
01465 *  Summary:   UESQL scanner 
01466 *  Date:      $Date: 2003/06/24 00:14:45 $
01467 *  Revision:  $Revision: 1.19 $
01468 *
01469 *  Comments:  The introducer instruction  ("extern")  for the embedded program, 
01470 *             can not contain any C/C++ comment,  between  the first clause and
01471 *             the opening brace.
01472 *
01473 *             Subsection 5.3:  <literal>.
01474 *             Terminal  <nonquote character>  has  been  changed to include all
01475 *             characters minus <quote> and <newline>.
01476 *
01477 *             Subsection 19.1. <embedded SQL host program>.
01478 *             Terminal <embedded n-adic function call> has  been  introduced to
01479 *             support, not only embedded variables,  but, n-adic function calls
01480 *             (including name-spaces support).
01481 *
01482 *             Subsection 19.1. <embedded SQL host program>.
01483 *             Terminal <embedded array>  has been introduced to support, multi-
01484 *             dimensioned  arrays  (including name-spaces support).  The  array
01485 *             indexes must be variables or constants.
01486 *
01487 *             Subsection 19.1. <embedded SQL host program>.
01488 *             Terminal <embedded variable name>  has  been extended  to support
01489 *             the access to struct/class member variables.
01490 *
01491 *             Subsection 19.4. <embedded SQL C program>.
01492 *             Terminal <C host identifier> has been modified to follow the ANSI
01493 *             C standard.
01494 *
01495 *  Copyright (C) 1996-2002  Rafael Jesus Alcantara Perez <rafa@dedalo-ing.com>
01496 *
01497 *  This program is free software; you can redistribute it and/or modify
01498 *  it under the terms of the GNU General Public License as published by
01499 *  the Free Software Foundation; either version 2 of the License, or
01500 *  (at your option) any later version.
01501 *
01502 *  This program is distributed in the hope that it will be useful,
01503 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
01504 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
01505 *  GNU General Public License for more details.
01506 *
01507 *  You should have received a copy of the GNU General Public License
01508 *  along with this program; if not, write to the Free Software
01509 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
01510 *  MA 02111-1307, USA.
01511 *
01512 */
01513 /*
01514 *  L E X   D E F I N I T I O N S
01515 */
01516 #line 59 "uesql_scanner.ll"
01517 
01518 #include "application.hh"
01519 #include "defs.hh"
01520 #include "stack_value.hh"
01521 #include "uesql_parser.h"
01522 
01523 
01524 //
01525 //  E X P O R T E D   L E X   M A C R O S
01526 //
01527 
01528 //
01529 //  Makes LEX line buffer lenght ('yytext' length).
01530 //
01531 #ifdef YYLMAX
01532 #undef YYLMAX
01533 #endif
01534 #define YYLMAX (1048576L)
01535 
01536 //
01537 //  Makes FLEX not interactive (so it doesn't define 'isatty()').
01538 //  
01539 #define YY_NEVER_INTERACTIVE (1)
01540 
01541 //
01542 //  E X P O R T E D   V A R I A B L E S
01543 //
01544 
01545 extern TApplication*   ptApplication;
01546 
01547 
01548 //
01549 //  E X P O R T E D   M A C R O S
01550 //
01551 
01552 #define ECHO_CACHING  { ptApplication->outputCode (yytext, yyleng); }
01553 
01554 #define DEBUG_TERMINAL(pccTERMINAL)           \
01555 {                                             \
01556   ptApplication->pushTokenName (pccTERMINAL); \
01557   ptApplication->printDebugInformation();     \
01558 }
01559 
01560 #define RETURN_TERMINAL(iTERMINAL) \
01561 {                                  \
01562   DEBUG_TERMINAL (#iTERMINAL);     \
01563   return iTERMINAL;                \
01564 }
01565 
01566 #define RETURN_LITERAL_TERMINAL(iTERMINAL, pkcTEXT) \
01567 {                                                   \
01568   yylval.yCode = pkcTEXT;                           \
01569   DEBUG_TERMINAL (#iTERMINAL);                      \
01570   return iTERMINAL;                                 \
01571 }
01572 
01573 #define RETURN_STRING_LITERAL_TERMINAL(iTERMINAL, pkcTEXT)       \
01574 {                                                                \
01575   yylval.yCode = ptApplication->collapseStringLiteral (pkcTEXT); \
01576   DEBUG_TERMINAL (#iTERMINAL);                                   \
01577   return iTERMINAL;                                              \
01578 }
01579 
01580 /*
01581 *  Definitions for embedded introducer and
01582 *  C language comments removing.
01583 */
01584 /*                             
01585 *  Section 5. Lexical Elements.
01586 */
01587 /*                                            
01588 *  Subsection 5.1. <SQL terminal character>. 
01589 */
01590 /*
01591 *  {SQL_delimited_special_character}
01592 *
01593 *  Warning:  This terminal isn't part of the specification
01594 *            but it simplifies the definition of other 
01595 *            terminals.
01596 */
01597 /*
01598 *  Auxiliar terminals:  second_level_identifier
01599 *                       third_level_identifier
01600 *                       fourth_level_identifier
01601 *                       second_level_asterisk
01602 *                       third_level_asterisk
01603 *                       fourth_level_asterisk
01604 *                       C_array_variable_index
01605 *                       C_array_constant_index
01606 *                       C_array_index
01607 *                       C_variable
01608 *                       C_string_literal
01609 *                       C_numeric_literal
01610 */
01611 /*                           
01612 *  Subsection 5.2. <token> and <separator>.
01613 */
01614 /*
01615 *  Warning:  A new terminal ({tabulator}) has been added to {separator}
01616 *            to let exist tabs in {separator}.
01617 */
01618 /*                           
01619 *  Subsection 5.3. <literal>.
01620 */
01621 /*
01622 *  Warning:  Character set specification has been removed from these
01623 *            terminals:
01624 *
01625 *            {character_string_literal}
01626 *            {national_character_string_literal}
01627 *            {bit_string_literal}
01628 *            {hex_string_literal}
01629 */
01630 /*
01631 *  {time_interval}
01632 *
01633 *  Warning:  This terminal has been modified to
01634 *            simplify its definition.
01635 */
01636 /*
01637 *  Auxiliar terminals:  {real_exact_numeric_literal}
01638 */
01639 /*
01640 *  Subsection 19.1. <embedded SQL host program>.
01641 */
01642 /*
01643 *  Warning:  A new terminal ({qualified_host_identifier}) has been added to let
01644 *            the  embedded expressions support C++ name-spaces (like 'a::b::c')
01645 *            and JAVA packages (like 'a.b.c').
01646 *
01647 *  Warning:  A new terminal ({multi_host_identifier}) has been added to let the
01648 *            newly  added terminal {exception_target} to contain exceptions  to
01649 *            have name-space qualified.
01650 *
01651 *  Warning:  It  has been added two terminals  ({embedded_n_adic_function_call}
01652 *            and {function_parameter}) to parse embedded n-adic function calls.
01653 *
01654 *  Warning:  It has been added two terminals for parsing strings literals.
01655 */
01656 /*
01657 *  Subsection 19.4. <embedded SQL C program>.
01658 */
01659 /*
01660 *  Start Conditions.
01661 */
01662 #define MULTILINE_C_COMMENT 1
01663 #define SC_SQL 2
01664 
01665 #line 1666 "uesql_scanner.cc"
01666 
01667 /* Macros after this point can all be overridden by user definitions in
01668  * section 1.
01669  */
01670 
01671 #ifndef YY_SKIP_YYWRAP
01672 #ifdef __cplusplus
01673 extern "C" int yywrap YY_PROTO(( void ));
01674 #else
01675 extern int yywrap YY_PROTO(( void ));
01676 #endif
01677 #endif
01678 
01679 #ifndef YY_NO_UNPUT
01680 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
01681 #endif
01682 
01683 #ifndef yytext_ptr
01684 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
01685 #endif
01686 
01687 #ifdef YY_NEED_STRLEN
01688 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
01689 #endif
01690 
01691 #ifndef YY_NO_INPUT
01692 #ifdef __cplusplus
01693 static int yyinput YY_PROTO(( void ));
01694 #else
01695 static int input YY_PROTO(( void ));
01696 #endif
01697 #endif
01698 
01699 #if YY_STACK_USED
01700 static int yy_start_stack_ptr = 0;
01701 static int yy_start_stack_depth = 0;
01702 static int *yy_start_stack = 0;
01703 #ifndef YY_NO_PUSH_STATE
01704 static void yy_push_state YY_PROTO(( int new_state ));
01705 #endif
01706 #ifndef YY_NO_POP_STATE
01707 static void yy_pop_state YY_PROTO(( void ));
01708 #endif
01709 #ifndef YY_NO_TOP_STATE
01710 static int yy_top_state YY_PROTO(( void ));
01711 #endif
01712 
01713 #else
01714 #define YY_NO_PUSH_STATE 1
01715 #define YY_NO_POP_STATE 1
01716 #define YY_NO_TOP_STATE 1
01717 #endif
01718 
01719 #ifdef YY_MALLOC_DECL
01720 YY_MALLOC_DECL
01721 #else
01722 #if __STDC__
01723 #ifndef __cplusplus
01724 #include <stdlib.h>
01725 #endif
01726 #else
01727 /* Just try to get by without declaring the routines.  This will fail
01728  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
01729  * or sizeof(void*) != sizeof(int).
01730  */
01731 #endif
01732 #endif
01733 
01734 /* Amount of stuff to slurp up with each read. */
01735 #ifndef YY_READ_BUF_SIZE
01736 #define YY_READ_BUF_SIZE 8192
01737 #endif
01738 
01739 /* Copy whatever the last rule matched to the standard output. */
01740 
01741 #ifndef ECHO
01742 /* This used to be an fputs(), but since the string might contain NUL's,
01743  * we now use fwrite().
01744  */
01745 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01746 #endif
01747 
01748 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01749  * is returned in "result".
01750  */
01751 #ifndef YY_INPUT
01752 #define YY_INPUT(buf,result,max_size) \
01753         if ( yy_current_buffer->yy_is_interactive ) \
01754                 { \
01755                 int c = '*', n; \
01756                 for ( n = 0; n < max_size && \
01757                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01758                         buf[n] = (char) c; \
01759                 if ( c == '\n' ) \
01760                         buf[n++] = (char) c; \
01761                 if ( c == EOF && ferror( yyin ) ) \
01762                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01763                 result = n; \
01764                 } \
01765         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
01766                   && ferror( yyin ) ) \
01767                 YY_FATAL_ERROR( "input in flex scanner failed" );
01768 #endif
01769 
01770 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01771  * we don't want an extra ';' after the "return" because that will cause
01772  * some compilers to complain about unreachable statements.
01773  */
01774 #ifndef yyterminate
01775 #define yyterminate() return YY_NULL
01776 #endif
01777 
01778 /* Number of entries by which start-condition stack grows. */
01779 #ifndef YY_START_STACK_INCR
01780 #define YY_START_STACK_INCR 25
01781 #endif
01782 
01783 /* Report a fatal error. */
01784 #ifndef YY_FATAL_ERROR
01785 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01786 #endif
01787 
01788 /* Default declaration of generated scanner - a define so the user can
01789  * easily add parameters.
01790  */
01791 #ifndef YY_DECL
01792 #define YY_DECL int yylex YY_PROTO(( void ))
01793 #endif
01794 
01795 /* Code executed at the beginning of each rule, after yytext and yyleng
01796  * have been set up.
01797  */
01798 #ifndef YY_USER_ACTION
01799 #define YY_USER_ACTION
01800 #endif
01801 
01802 /* Code executed at the end of each rule. */
01803 #ifndef YY_BREAK
01804 #define YY_BREAK break;
01805 #endif
01806 
01807 #define YY_RULE_SETUP \
01808         YY_USER_ACTION
01809 
01810 YY_DECL
01811         {
01812         register yy_state_type yy_current_state;
01813         register char *yy_cp = NULL, *yy_bp = NULL;
01814         register int yy_act;
01815 
01816 #line 346 "uesql_scanner.ll"
01817 
01818 
01819         /*
01820         *  L E X   R U L E S
01821         */
01822 
01823 #line 1824 "uesql_scanner.cc"
01824 
01825         if ( yy_init )
01826                 {
01827                 yy_init = 0;
01828 
01829 #ifdef YY_USER_INIT
01830                 YY_USER_INIT;
01831 #endif
01832 
01833                 if ( ! yy_start )
01834                         yy_start = 1;   /* first start state */
01835 
01836                 if ( ! yyin )
01837                         yyin = stdin;
01838 
01839                 if ( ! yyout )
01840                         yyout = stdout;
01841 
01842                 if ( ! yy_current_buffer )
01843                         yy_current_buffer =
01844                                 yy_create_buffer( yyin, YY_BUF_SIZE );
01845 
01846                 yy_load_buffer_state();
01847                 }
01848 
01849         while ( 1 )             /* loops until end-of-file is reached */
01850                 {
01851                 yy_cp = yy_c_buf_p;
01852 
01853                 /* Support of yytext. */
01854                 *yy_cp = yy_hold_char;
01855 
01856                 /* yy_bp points to the position in yy_ch_buf of the start of
01857                  * the current run.
01858                  */
01859                 yy_bp = yy_cp;
01860 
01861                 yy_current_state = yy_start;
01862                 yy_state_ptr = yy_state_buf;
01863                 *yy_state_ptr++ = yy_current_state;
01864 yy_match:
01865                 do
01866                         {
01867                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01868                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01869                                 {
01870                                 yy_current_state = (int) yy_def[yy_current_state];
01871                                 if ( yy_current_state >= 703 )
01872                                         yy_c = yy_meta[(unsigned int) yy_c];
01873                                 }
01874                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01875                         *yy_state_ptr++ = yy_current_state;
01876                         ++yy_cp;
01877                         }
01878                 while ( yy_base[yy_current_state] != 3351 );
01879 
01880 yy_find_action:
01881                 yy_current_state = *--yy_state_ptr;
01882                 yy_lp = yy_accept[yy_current_state];
01883 find_rule: /* we branch to this label when backing up */
01884                 for ( ; ; ) /* until we find what rule we matched */
01885                         {
01886                         if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
01887                                 {
01888                                 yy_act = yy_acclist[yy_lp];
01889                                         {
01890                                         yy_full_match = yy_cp;
01891                                         break;
01892                                         }
01893                                 }
01894                         --yy_cp;
01895                         yy_current_state = *--yy_state_ptr;
01896                         yy_lp = yy_accept[yy_current_state];
01897                         }
01898 
01899                 YY_DO_BEFORE_ACTION;
01900 
01901                 if ( yy_act != YY_END_OF_BUFFER )
01902                         {
01903                         int yyl;
01904                         for ( yyl = 0; yyl < yyleng; ++yyl )
01905                                 if ( yytext[yyl] == '\n' )
01906                                         ++yylineno;
01907                         }
01908 
01909 do_action:      /* This label is used only to access EOF actions. */
01910 
01911 
01912                 switch ( yy_act )
01913         { /* beginning of action switch */
01914 case 1:
01915 YY_RULE_SETUP
01916 #line 352 "uesql_scanner.ll"
01917 BEGIN (SC_SQL); ptApplication->handleTarget (yytext); RETURN_TERMINAL (EMBEDDED_SQL_BEGIN);
01918         YY_BREAK
01919 case 2:
01920 YY_RULE_SETUP
01921 #line 353 "uesql_scanner.ll"
01922 ECHO_CACHING;
01923         YY_BREAK
01924 case 3:
01925 YY_RULE_SETUP
01926 #line 354 "uesql_scanner.ll"
01927 ECHO_CACHING; BEGIN (MULTILINE_C_COMMENT); 
01928         YY_BREAK
01929 case 4:
01930 YY_RULE_SETUP
01931 #line 355 "uesql_scanner.ll"
01932 ECHO_CACHING;
01933         YY_BREAK
01934 case 5:
01935 YY_RULE_SETUP
01936 #line 356 "uesql_scanner.ll"
01937 ECHO_CACHING;
01938         YY_BREAK
01939 case 6:
01940 YY_RULE_SETUP
01941 #line 358 "uesql_scanner.ll"
01942 ECHO_CACHING;
01943         YY_BREAK
01944 case 7:
01945 YY_RULE_SETUP
01946 #line 359 "uesql_scanner.ll"
01947 ECHO_CACHING; BEGIN (INITIAL);
01948         YY_BREAK
01949 case 8:
01950 YY_RULE_SETUP
01951 #line 360 "uesql_scanner.ll"
01952 ECHO_CACHING;
01953         YY_BREAK
01954 /*                                           
01955         *  Subsection 19.4: <embedded SQL C program>.
01956         */
01957 case 9:
01958 YY_RULE_SETUP
01959 #line 367 "uesql_scanner.ll"
01960 RETURN_LITERAL_TERMINAL (EMBEDDED_N_ADIC_FUNCTION_CALL, yytext + 1);
01961         YY_BREAK
01962 case 10:
01963 YY_RULE_SETUP
01964 #line 368 "uesql_scanner.ll"
01965 RETURN_LITERAL_TERMINAL (EMBEDDED_ARRAY,                yytext + 1);
01966         YY_BREAK
01967 case 11:
01968 YY_RULE_SETUP
01969 #line 369 "uesql_scanner.ll"
01970 RETURN_LITERAL_TERMINAL (EMBEDDED_VARIABLE_NAME,        yytext + 1);
01971         YY_BREAK
01972 /*
01973         *  Subsection 19.1. <embedded SQL host program>.
01974         */
01975 case 12:
01976 YY_RULE_SETUP
01977 #line 374 "uesql_scanner.ll"
01978 RETURN_LITERAL_TERMINAL (MULTI_HOST_IDENTIFIER, yytext);
01979         YY_BREAK
01980 /*
01981         *  Subsection 5.1: <SQL terminal character>. 
01982         */
01983 case 13:
01984 YY_RULE_SETUP
01985 #line 380 "uesql_scanner.ll"
01986 RETURN_TERMINAL (LEFT_PAREN);
01987         YY_BREAK
01988 case 14:
01989 YY_RULE_SETUP
01990 #line 381 "uesql_scanner.ll"
01991 RETURN_TERMINAL (RIGHT_PAREN);
01992         YY_BREAK
01993 case 15:
01994 YY_RULE_SETUP
01995 #line 382 "uesql_scanner.ll"
01996 RETURN_TERMINAL (ASTERISK);
01997         YY_BREAK
01998 case 16:
01999 YY_RULE_SETUP
02000 #line 383 "uesql_scanner.ll"
02001 RETURN_TERMINAL (PLUS_SIGN);
02002         YY_BREAK
02003 case 17:
02004 YY_RULE_SETUP
02005 #line 384 "uesql_scanner.ll"
02006 RETURN_TERMINAL (COMMA);
02007         YY_BREAK
02008 case 18:
02009 YY_RULE_SETUP
02010 #line 385 "uesql_scanner.ll"
02011 RETURN_TERMINAL (MINUS_SIGN);
02012         YY_BREAK
02013 case 19:
02014 YY_RULE_SETUP
02015 #line 386 "uesql_scanner.ll"
02016 RETURN_TERMINAL (SOLIDUS);
02017         YY_BREAK
02018 case 20:
02019 YY_RULE_SETUP
02020 #line 387 "uesql_scanner.ll"
02021 RETURN_TERMINAL (SEMICOLON);
02022         YY_BREAK
02023 case 21:
02024 YY_RULE_SETUP
02025 #line 388 "uesql_scanner.ll"
02026 RETURN_TERMINAL (LESS_THAN_OPERATOR);
02027         YY_BREAK
02028 case 22:
02029 YY_RULE_SETUP
02030 #line 389 "uesql_scanner.ll"
02031 RETURN_TERMINAL (EQUALS_OPERATOR);
02032         YY_BREAK
02033 case 23:
02034 YY_RULE_SETUP
02035 #line 390 "uesql_scanner.ll"
02036 RETURN_TERMINAL (GREATER_THAN_OPERATOR);
02037         YY_BREAK
02038 case 24:
02039 YY_RULE_SETUP
02040 #line 391 "uesql_scanner.ll"
02041 RETURN_TERMINAL (QUESTION_MARK);
02042         YY_BREAK
02043 /*
02044         *  Subsection 5.2: <token> and <separator>. 
02045         */
02046 /*
02047         *  Non-Terminal:  <reserved word>
02048         *
02049         *  RW_NOT_LIKE
02050         *
02051         *  Warning: This terminal isn't part of the specification.
02052         */
02053 case 25:
02054 YY_RULE_SETUP
02055 #line 404 "uesql_scanner.ll"
02056 RETURN_TERMINAL (RW_NOT_LIKE);
02057         YY_BREAK
02058 /*
02059         *  Non-Terminal:  <non-reserved word>
02060         */
02061 case 26:
02062 YY_RULE_SETUP
02063 #line 409 "uesql_scanner.ll"
02064 RETURN_LITERAL_TERMINAL (NRW_CATALOG_NAME, yytext);
02065         YY_BREAK
02066 case 27:
02067 YY_RULE_SETUP
02068 #line 410 "uesql_scanner.ll"
02069 RETURN_LITERAL_TERMINAL (NRW_CHARACTER_SET_CATALOG, yytext);
02070         YY_BREAK
02071 case 28:
02072 YY_RULE_SETUP
02073 #line 411 "uesql_scanner.ll"
02074 RETURN_LITERAL_TERMINAL (NRW_CHARACTER_SET_NAME, yytext);
02075         YY_BREAK
02076 case 29:
02077 YY_RULE_SETUP
02078 #line 412 "uesql_scanner.ll"
02079 RETURN_LITERAL_TERMINAL (NRW_CHARACTER_SET_SCHEMA, yytext);
02080         YY_BREAK
02081 case 30:
02082 YY_RULE_SETUP
02083 #line 413 "uesql_scanner.ll"
02084 RETURN_LITERAL_TERMINAL (NRW_CLASS_ORIGIN, yytext);
02085         YY_BREAK
02086 case 31:
02087 YY_RULE_SETUP
02088 #line 414 "uesql_scanner.ll"
02089 RETURN_LITERAL_TERMINAL (NRW_COLLATION_CATALOG, yytext);
02090         YY_BREAK
02091 case 32:
02092 YY_RULE_SETUP
02093 #line 415 "uesql_scanner.ll"
02094 RETURN_LITERAL_TERMINAL (NRW_COLLATION_NAME, yytext);
02095         YY_BREAK
02096 case 33:
02097 YY_RULE_SETUP
02098 #line 416 "uesql_scanner.ll"
02099 RETURN_LITERAL_TERMINAL (NRW_COLLATION_SCHEMA, yytext);
02100         YY_BREAK
02101 case 34:
02102 YY_RULE_SETUP
02103 #line 417 "uesql_scanner.ll"
02104 RETURN_LITERAL_TERMINAL (NRW_COLUMN_NAME, yytext);
02105         YY_BREAK
02106 case 35:
02107 YY_RULE_SETUP
02108 #line 418 "uesql_scanner.ll"
02109 RETURN_LITERAL_TERMINAL (NRW_COMMAND_FUNCTION, yytext);
02110         YY_BREAK
02111 case 36:
02112 YY_RULE_SETUP
02113 #line 419 "uesql_scanner.ll"
02114 RETURN_LITERAL_TERMINAL (NRW_COMMITTED, yytext);
02115         YY_BREAK
02116 case 37:
02117 YY_RULE_SETUP
02118 #line 420 "uesql_scanner.ll"
02119 RETURN_LITERAL_TERMINAL (NRW_CONDITION_NUMBER, yytext);
02120         YY_BREAK
02121 case 38:
02122 YY_RULE_SETUP
02123 #line 421 "uesql_scanner.ll"
02124 RETURN_LITERAL_TERMINAL (NRW_CONNECTION_NAME, yytext);
02125         YY_BREAK
02126 case 39:
02127 YY_RULE_SETUP
02128 #line 422 "uesql_scanner.ll"
02129 RETURN_LITERAL_TERMINAL (NRW_CONSTRAINT_CATALOG, yytext);
02130         YY_BREAK
02131 case 40:
02132 YY_RULE_SETUP
02133 #line 423 "uesql_scanner.ll"
02134 RETURN_LITERAL_TERMINAL (NRW_CONSTRAINT_NAME, yytext);
02135         YY_BREAK
02136 case 41:
02137 YY_RULE_SETUP
02138 #line 424 "uesql_scanner.ll"
02139 RETURN_LITERAL_TERMINAL (NRW_CONSTRAINT_SCHEMA, yytext);
02140         YY_BREAK
02141 case 42:
02142 YY_RULE_SETUP
02143 #line 425 "uesql_scanner.ll"
02144 RETURN_LITERAL_TERMINAL (NRW_CURSOR_NAME, yytext);
02145         YY_BREAK
02146 case 43:
02147 YY_RULE_SETUP
02148 #line 426 "uesql_scanner.ll"
02149 RETURN_LITERAL_TERMINAL (NRW_DATA, yytext);
02150         YY_BREAK
02151 case 44:
02152 YY_RULE_SETUP
02153 #line 427 "uesql_scanner.ll"
02154 RETURN_LITERAL_TERMINAL (NRW_DATETIME_INTERVAL_CODE, yytext);
02155         YY_BREAK
02156 case 45:
02157 YY_RULE_SETUP
02158 #line 428 "uesql_scanner.ll"
02159 RETURN_LITERAL_TERMINAL (NRW_DATETIME_INTERVAL_PRECISION, yytext);
02160         YY_BREAK
02161 case 46:
02162 YY_RULE_SETUP
02163 #line 429 "uesql_scanner.ll"
02164 RETURN_LITERAL_TERMINAL (NRW_DYNAMIC_FUNCTION, yytext);
02165         YY_BREAK
02166 case 47:
02167 YY_RULE_SETUP
02168 #line 430 "uesql_scanner.ll"
02169 RETURN_LITERAL_TERMINAL (NRW_LENGTH, yytext);
02170         YY_BREAK
02171 case 48:
02172 YY_RULE_SETUP
02173 #line 431 "uesql_scanner.ll"
02174 RETURN_LITERAL_TERMINAL (NRW_MESSAGE_LENGTH, yytext);
02175         YY_BREAK
02176 case 49:
02177 YY_RULE_SETUP
02178 #line 432 "uesql_scanner.ll"
02179 RETURN_LITERAL_TERMINAL (NRW_MESSAGE_OCTET_LENGTH, yytext);
02180         YY_BREAK
02181 case 50:
02182 YY_RULE_SETUP
02183 #line 433 "uesql_scanner.ll"
02184 RETURN_LITERAL_TERMINAL (NRW_MESSAGE_TEXT, yytext);
02185         YY_BREAK
02186 case 51:
02187 YY_RULE_SETUP
02188 #line 434 "uesql_scanner.ll"
02189 RETURN_LITERAL_TERMINAL (NRW_MORE, yytext);
02190         YY_BREAK
02191 case 52:
02192 YY_RULE_SETUP
02193 #line 435 "uesql_scanner.ll"
02194 RETURN_LITERAL_TERMINAL (NRW_NAME, yytext);
02195         YY_BREAK
02196 case 53:
02197 YY_RULE_SETUP
02198 #line 436 "uesql_scanner.ll"
02199 RETURN_LITERAL_TERMINAL (NRW_NULLABLE, yytext);
02200         YY_BREAK
02201 case 54:
02202 YY_RULE_SETUP
02203 #line 437 "uesql_scanner.ll"
02204 RETURN_LITERAL_TERMINAL (NRW_NUMBER, yytext);
02205         YY_BREAK
02206 case 55:
02207 YY_RULE_SETUP
02208 #line 438 "uesql_scanner.ll"
02209 RETURN_LITERAL_TERMINAL (NRW_REPEATABLE, yytext);
02210         YY_BREAK
02211 case 56:
02212 YY_RULE_SETUP
02213 #line 439 "uesql_scanner.ll"
02214 RETURN_LITERAL_TERMINAL (NRW_RETURNED_LENGTH, yytext);
02215         YY_BREAK
02216 case 57:
02217 YY_RULE_SETUP
02218 #line 440 "uesql_scanner.ll"
02219 RETURN_LITERAL_TERMINAL (NRW_RETURNED_OCTET_LENGTH, yytext);
02220         YY_BREAK
02221 case 58:
02222 YY_RULE_SETUP
02223 #line 441 "uesql_scanner.ll"
02224 RETURN_LITERAL_TERMINAL (NRW_RETURNED_SQLSTATE, yytext);
02225         YY_BREAK
02226 case 59:
02227 YY_RULE_SETUP
02228 #line 442 "uesql_scanner.ll"
02229 RETURN_LITERAL_TERMINAL (NRW_ROW_COUNT, yytext);
02230         YY_BREAK
02231 case 60:
02232 YY_RULE_SETUP
02233 #line 443 "uesql_scanner.ll"
02234 RETURN_LITERAL_TERMINAL (NRW_SCALE, yytext);
02235         YY_BREAK
02236 case 61:
02237 YY_RULE_SETUP
02238 #line 444 "uesql_scanner.ll"
02239 RETURN_LITERAL_TERMINAL (NRW_SCHEMA_NAME, yytext);
02240         YY_BREAK
02241 case 62:
02242 YY_RULE_SETUP
02243 #line 445 "uesql_scanner.ll"
02244 RETURN_LITERAL_TERMINAL (NRW_SERIALIZABLE, yytext);
02245         YY_BREAK
02246 case 63:
02247 YY_RULE_SETUP
02248 #line 446 "uesql_scanner.ll"
02249 RETURN_LITERAL_TERMINAL (NRW_SERVER_NAME, yytext);
02250         YY_BREAK
02251 case 64:
02252 YY_RULE_SETUP
02253 #line 447 "uesql_scanner.ll"
02254 RETURN_LITERAL_TERMINAL (NRW_SUBCLASS_ORIGIN, yytext);
02255         YY_BREAK
02256 case 65:
02257 YY_RULE_SETUP
02258 #line 448 "uesql_scanner.ll"
02259 RETURN_LITERAL_TERMINAL (NRW_TABLE_NAME, yytext);
02260         YY_BREAK
02261 case 66:
02262 YY_RULE_SETUP
02263 #line 449 "uesql_scanner.ll"
02264 RETURN_LITERAL_TERMINAL (NRW_TYPE, yytext);
02265         YY_BREAK
02266 case 67:
02267 YY_RULE_SETUP
02268 #line 450 "uesql_scanner.ll"
02269 RETURN_LITERAL_TERMINAL (NRW_UNCOMMITTED, yytext);
02270         YY_BREAK
02271 case 68:
02272 YY_RULE_SETUP
02273 #line 451 "uesql_scanner.ll"
02274 RETURN_LITERAL_TERMINAL (NRW_UNNAMED, yytext);
02275         YY_BREAK
02276 case 69:
02277 YY_RULE_SETUP
02278 #line 453 "uesql_scanner.ll"
02279 return ptApplication->identifyToken (yytext, 3);
02280         YY_BREAK
02281 case 70:
02282 YY_RULE_SETUP
02283 #line 454 "uesql_scanner.ll"
02284 return ptApplication->identifyToken (yytext, 2);
02285         YY_BREAK
02286 case 71:
02287 YY_RULE_SETUP
02288 #line 455 "uesql_scanner.ll"
02289 return ptApplication->identifyToken (yytext, 1);
02290         YY_BREAK
02291 case 72:
02292 YY_RULE_SETUP
02293 #line 456 "uesql_scanner.ll"
02294 return ptApplication->identifyToken (yytext, 3);
02295         YY_BREAK
02296 case 73:
02297 YY_RULE_SETUP
02298 #line 457 "uesql_scanner.ll"
02299 return ptApplication->identifyToken (yytext, 2);
02300         YY_BREAK
02301 case 74:
02302 YY_RULE_SETUP
02303 #line 458 "uesql_scanner.ll"
02304 return ptApplication->identifyToken (yytext, 1);
02305         YY_BREAK
02306 case 75:
02307 YY_RULE_SETUP
02308 #line 459 "uesql_scanner.ll"
02309 return ptApplication->identifyToken (yytext);
02310         YY_BREAK
02311 case 76:
02312 YY_RULE_SETUP
02313 #line 460 "uesql_scanner.ll"
02314 RETURN_STRING_LITERAL_TERMINAL (DELIMITED_IDENTIFIER, yytext);
02315         YY_BREAK
02316 case 77:
02317 YY_RULE_SETUP
02318 #line 461 "uesql_scanner.ll"
02319 RETURN_TERMINAL (NOT_EQUALS_OPERATOR);
02320         YY_BREAK
02321 case 78:
02322 YY_RULE_SETUP
02323 #line 462 "uesql_scanner.ll"
02324 RETURN_TERMINAL (GREATER_THAN_OR_EQUALS_OPERATOR);
02325         YY_BREAK
02326 case 79:
02327 YY_RULE_SETUP
02328 #line 463 "uesql_scanner.ll"
02329 RETURN_TERMINAL (LESS_THAN_OR_EQUALS_OPERATOR);
02330         YY_BREAK
02331 case 80:
02332 YY_RULE_SETUP
02333 #line 464 "uesql_scanner.ll"
02334 RETURN_TERMINAL (CONCATENATION_OPERATOR);
02335         YY_BREAK
02336 case 81:
02337 YY_RULE_SETUP
02338 #line 465 "uesql_scanner.ll"
02339 ;
02340         YY_BREAK
02341 /*
02342         *  Subsection 5.3. <literal>. 
02343         */
02344 case 82:
02345 YY_RULE_SETUP
02346 #line 472 "uesql_scanner.ll"
02347 RETURN_STRING_LITERAL_TERMINAL (NATIONAL_CHARACTER_STRING_LITERAL, yytext);
02348         YY_BREAK
02349 case 83:
02350 YY_RULE_SETUP
02351 #line 473 "uesql_scanner.ll"
02352 RETURN_STRING_LITERAL_TERMINAL (BIT_STRING_LITERAL, yytext);
02353         YY_BREAK
02354 case 84:
02355 YY_RULE_SETUP
02356 #line 474 "uesql_scanner.ll"
02357 RETURN_STRING_LITERAL_TERMINAL (HEX_STRING_LITERAL, yytext);
02358         YY_BREAK
02359 case 85:
02360 YY_RULE_SETUP
02361 #line 475 "uesql_scanner.ll"
02362 RETURN_STRING_LITERAL_TERMINAL (CHARACTER_STRING_LITERAL, yytext);
02363         YY_BREAK
02364 case 86:
02365 YY_RULE_SETUP
02366 #line 476 "uesql_scanner.ll"
02367 RETURN_LITERAL_TERMINAL (APPROXIMATE_NUMERIC_LITERAL, yytext);
02368         YY_BREAK
02369 case 87:
02370 YY_RULE_SETUP
02371 #line 477 "uesql_scanner.ll"
02372 RETURN_LITERAL_TERMINAL (UNSIGNED_INTEGER, yytext);
02373         YY_BREAK
02374 case 88:
02375 YY_RULE_SETUP
02376 #line 478 "uesql_scanner.ll"
02377 RETURN_LITERAL_TERMINAL (DATE_STRING, yytext);
02378         YY_BREAK
02379 case 89:
02380 YY_RULE_SETUP
02381 #line 479 "uesql_scanner.ll"
02382 RETURN_LITERAL_TERMINAL (TIME_STRING, yytext);
02383         YY_BREAK
02384 case 90:
02385 YY_RULE_SETUP
02386 #line 480 "uesql_scanner.ll"
02387 RETURN_LITERAL_TERMINAL (TIMESTAMP_STRING, yytext);
02388         YY_BREAK
02389 case 91:
02390 YY_RULE_SETUP
02391 #line 481 "uesql_scanner.ll"
02392 RETURN_LITERAL_TERMINAL (INTERVAL_STRING, yytext);
02393         YY_BREAK
02394 /*
02395         *  REAL_EXACT_NUMERIC_LITERAL
02396         *
02397         *  Warning:  This terminal is not part of the specification.  It's used
02398         *            by <exact numeric literal> and by <C_numeric_literal>.
02399         */
02400 case 92:
02401 YY_RULE_SETUP
02402 #line 488 "uesql_scanner.ll"
02403 RETURN_LITERAL_TERMINAL (REAL_EXACT_NUMERIC_LITERAL, yytext);
02404         YY_BREAK
02405 /*
02406         *  Next terminals aren't part of the specification.
02407         *  They are used for compiler purposes.
02408         */
02409 case 93:
02410 YY_RULE_SETUP
02411 #line 495 "uesql_scanner.ll"
02412 BEGIN (INITIAL); RETURN_TERMINAL (EMBEDDED_SQL_END);
02413         YY_BREAK
02414 case 94:
02415 YY_RULE_SETUP
02416 #line 496 "uesql_scanner.ll"
02417 RETURN_TERMINAL (LEXICAL_ERROR);
02418         YY_BREAK
02419 case 95:
02420 YY_RULE_SETUP
02421 #line 499 "uesql_scanner.ll"
02422 ECHO;
02423         YY_BREAK
02424 #line 2425 "uesql_scanner.cc"
02425                         case YY_STATE_EOF(INITIAL):
02426                         case YY_STATE_EOF(MULTILINE_C_COMMENT):
02427                         case YY_STATE_EOF(SC_SQL):
02428                                 yyterminate();
02429 
02430         case YY_END_OF_BUFFER:
02431                 {
02432                 /* Amount of text matched not including the EOB char. */
02433                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
02434 
02435                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02436                 *yy_cp = yy_hold_char;
02437                 YY_RESTORE_YY_MORE_OFFSET
02438 
02439                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
02440                         {
02441                         /* We're scanning a new file or input source.  It's
02442                          * possible that this happened because the user
02443                          * just pointed yyin at a new source and called
02444                          * yylex().  If so, then we have to assure
02445                          * consistency between yy_current_buffer and our
02446                          * globals.  Here is the right place to do so, because
02447                          * this is the first action (other than possibly a
02448                          * back-up) that will match for the new input source.
02449                          */
02450                         yy_n_chars = yy_current_buffer->yy_n_chars;
02451                         yy_current_buffer->yy_input_file = yyin;
02452                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
02453                         }
02454 
02455                 /* Note that here we test for yy_c_buf_p "<=" to the position
02456                  * of the first EOB in the buffer, since yy_c_buf_p will
02457                  * already have been incremented past the NUL character
02458                  * (since all states make transitions on EOB to the
02459                  * end-of-buffer state).  Contrast this with the test
02460                  * in input().
02461                  */
02462                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02463                         { /* This was really a NUL. */
02464                         yy_state_type yy_next_state;
02465 
02466                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
02467 
02468                         yy_current_state = yy_get_previous_state();
02469 
02470                         /* Okay, we're now positioned to make the NUL
02471                          * transition.  We couldn't have
02472                          * yy_get_previous_state() go ahead and do it
02473                          * for us because it doesn't know how to deal
02474                          * with the possibility of jamming (and we don't
02475                          * want to build jamming into it because then it
02476                          * will run more slowly).
02477                          */
02478 
02479                         yy_next_state = yy_try_NUL_trans( yy_current_state );
02480 
02481                         yy_bp = yytext_ptr + YY_MORE_ADJ;
02482 
02483                         if ( yy_next_state )
02484                                 {
02485                                 /* Consume the NUL. */
02486                                 yy_cp = ++yy_c_buf_p;
02487                                 yy_current_state = yy_next_state;
02488                                 goto yy_match;
02489                                 }
02490 
02491                         else
02492                                 {
02493                                 yy_cp = yy_c_buf_p;
02494                                 goto yy_find_action;
02495                                 }
02496                         }
02497 
02498                 else switch ( yy_get_next_buffer() )
02499                         {
02500                         case EOB_ACT_END_OF_FILE:
02501                                 {
02502                                 yy_did_buffer_switch_on_eof = 0;
02503 
02504                                 if ( yywrap() )
02505                                         {
02506                                         /* Note: because we've taken care in
02507                                          * yy_get_next_buffer() to have set up
02508                                          * yytext, we can now set up
02509                                          * yy_c_buf_p so that if some total
02510                                          * hoser (like flex itself) wants to
02511                                          * call the scanner after we return the
02512                                          * YY_NULL, it'll still work - another
02513                                          * YY_NULL will get returned.
02514                                          */
02515                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
02516 
02517                                         yy_act = YY_STATE_EOF(YY_START);
02518                                         goto do_action;
02519                                         }
02520 
02521                                 else
02522                                         {
02523                                         if ( ! yy_did_buffer_switch_on_eof )
02524                                                 YY_NEW_FILE;
02525                                         }
02526                                 break;
02527                                 }
02528 
02529                         case EOB_ACT_CONTINUE_SCAN:
02530                                 yy_c_buf_p =
02531                                         yytext_ptr + yy_amount_of_matched_text;
02532 
02533                                 yy_current_state = yy_get_previous_state();
02534 
02535                                 yy_cp = yy_c_buf_p;
02536                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
02537                                 goto yy_match;
02538 
02539                         case EOB_ACT_LAST_MATCH:
02540                                 yy_c_buf_p =
02541                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
02542 
02543                                 yy_current_state = yy_get_previous_state();
02544 
02545                                 yy_cp = yy_c_buf_p;
02546                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
02547                                 goto yy_find_action;
02548                         }
02549                 break;
02550                 }
02551 
02552         default:
02553                 YY_FATAL_ERROR(
02554                         "fatal flex scanner internal error--no action found" );
02555         } /* end of action switch */
02556                 } /* end of scanning one token */
02557         } /* end of yylex */
02558 
02559 
02560 /* yy_get_next_buffer - try to read in a new buffer
02561  *
02562  * Returns a code representing an action:
02563  *      EOB_ACT_LAST_MATCH -
02564  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02565  *      EOB_ACT_END_OF_FILE - end of file
02566  */
02567 
02568 static int yy_get_next_buffer()
02569         {
02570         register char *dest = yy_current_buffer->yy_ch_buf;
02571         register char *source = yytext_ptr;
02572         register int number_to_move, i;
02573         int ret_val;
02574 
02575         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
02576                 YY_FATAL_ERROR(
02577                 "fatal flex scanner internal error--end of buffer missed" );
02578 
02579         if ( yy_current_buffer->yy_fill_buffer == 0 )
02580                 { /* Don't try to fill the buffer, so this is an EOF. */
02581                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
02582                         {
02583                         /* We matched a single character, the EOB, so
02584                          * treat this as a final EOF.
02585                          */
02586                         return EOB_ACT_END_OF_FILE;
02587                         }
02588 
02589                 else
02590                         {
02591                         /* We matched some text prior to the EOB, first
02592                          * process it.
02593                          */
02594                         return EOB_ACT_LAST_MATCH;
02595                         }
02596                 }
02597 
02598         /* Try to read more data. */
02599 
02600         /* First move last chars to start of buffer. */
02601         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
02602 
02603         for ( i = 0; i < number_to_move; ++i )
02604                 *(dest++) = *(source++);
02605 
02606         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02607                 /* don't do the read, it's not guaranteed to return an EOF,
02608                  * just force an EOF
02609                  */
02610                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
02611 
02612         else
02613                 {
02614                 int num_to_read =
02615                         yy_current_buffer->yy_buf_size - number_to_move - 1;
02616 
02617                 while ( num_to_read <= 0 )
02618                         { /* Not enough room in the buffer - grow it. */
02619 #ifdef YY_USES_REJECT
02620                         YY_FATAL_ERROR(
02621 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
02622 #else
02623 
02624                         /* just a shorter name for the current buffer */
02625                         YY_BUFFER_STATE b = yy_current_buffer;
02626 
02627                         int yy_c_buf_p_offset =
02628                                 (int) (yy_c_buf_p - b->yy_ch_buf);
02629 
02630                         if ( b->yy_is_our_buffer )
02631                                 {
02632                                 int new_size = b->yy_buf_size * 2;
02633 
02634                                 if ( new_size <= 0 )
02635                                         b->yy_buf_size += b->yy_buf_size / 8;
02636                                 else
02637                                         b->yy_buf_size *= 2;
02638 
02639                                 b->yy_ch_buf = (char *)
02640                                         /* Include room in for 2 EOB chars. */
02641                                         yy_flex_realloc( (void *) b->yy_ch_buf,
02642                                                          b->yy_buf_size + 2 );
02643                                 }
02644                         else
02645                                 /* Can't grow it, we don't own it. */
02646                                 b->yy_ch_buf = 0;
02647 
02648                         if ( ! b->yy_ch_buf )
02649                                 YY_FATAL_ERROR(
02650                                 "fatal error - scanner input buffer overflow" );
02651 
02652                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02653 
02654                         num_to_read = yy_current_buffer->yy_buf_size -
02655                                                 number_to_move - 1;
02656 #endif
02657                         }
02658 
02659                 if ( num_to_read > YY_READ_BUF_SIZE )
02660                         num_to_read = YY_READ_BUF_SIZE;
02661 
02662                 /* Read in more data. */
02663                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
02664                         yy_n_chars, num_to_read );
02665 
02666                 yy_current_buffer->yy_n_chars = yy_n_chars;
02667                 }
02668 
02669         if ( yy_n_chars == 0 )
02670                 {
02671                 if ( number_to_move == YY_MORE_ADJ )
02672                         {
02673                         ret_val = EOB_ACT_END_OF_FILE;
02674                         yyrestart( yyin );
02675                         }
02676 
02677                 else
02678                         {
02679                         ret_val = EOB_ACT_LAST_MATCH;
02680                         yy_current_buffer->yy_buffer_status =
02681                                 YY_BUFFER_EOF_PENDING;
02682                         }
02683                 }
02684 
02685         else
02686                 ret_val = EOB_ACT_CONTINUE_SCAN;
02687 
02688         yy_n_chars += number_to_move;
02689         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02690         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02691 
02692         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
02693 
02694         return ret_val;
02695         }
02696 
02697 
02698 /* yy_get_previous_state - get the state just before the EOB char was reached */
02699 
02700 static yy_state_type yy_get_previous_state()
02701         {
02702         register yy_state_type yy_current_state;
02703         register char *yy_cp;
02704 
02705         yy_current_state = yy_start;
02706         yy_state_ptr = yy_state_buf;
02707         *yy_state_ptr++ = yy_current_state;
02708 
02709         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
02710                 {
02711                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02712                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02713                         {
02714                         yy_current_state = (int) yy_def[yy_current_state];
02715                         if ( yy_current_state >= 703 )
02716                                 yy_c = yy_meta[(unsigned int) yy_c];
02717                         }
02718                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02719                 *yy_state_ptr++ = yy_current_state;
02720                 }
02721 
02722         return yy_current_state;
02723         }
02724 
02725 
02726 /* yy_try_NUL_trans - try to make a transition on the NUL character
02727  *
02728  * synopsis
02729  *      next_state = yy_try_NUL_trans( current_state );
02730  */
02731 
02732 #ifdef YY_USE_PROTOS
02733 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
02734 #else
02735 static yy_state_type yy_try_NUL_trans( yy_current_state )
02736 yy_state_type yy_current_state;
02737 #endif
02738         {
02739         register int yy_is_jam;
02740 
02741         register YY_CHAR yy_c = 1;
02742         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02743                 {
02744                 yy_current_state = (int) yy_def[yy_current_state];
02745                 if ( yy_current_state >= 703 )
02746                         yy_c = yy_meta[(unsigned int) yy_c];
02747                 }
02748         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02749         yy_is_jam = (yy_current_state == 702);
02750         if ( ! yy_is_jam )
02751                 *yy_state_ptr++ = yy_current_state;
02752 
02753         return yy_is_jam ? 0 : yy_current_state;
02754         }
02755 
02756 
02757 #ifndef YY_NO_UNPUT
02758 #ifdef YY_USE_PROTOS
02759 static void yyunput( int c, register char *yy_bp )
02760 #else
02761 static void yyunput( c, yy_bp )
02762 int c;
02763 register char *yy_bp;
02764 #endif
02765         {
02766         register char *yy_cp = yy_c_buf_p;
02767 
02768         /* undo effects of setting up yytext */
02769         *yy_cp = yy_hold_char;
02770 
02771         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
02772                 { /* need to shift things up to make room */
02773                 /* +2 for EOB chars. */
02774                 register int number_to_move = yy_n_chars + 2;
02775                 register char *dest = &yy_current_buffer->yy_ch_buf[
02776                                         yy_current_buffer->yy_buf_size + 2];
02777                 register char *source =
02778                                 &yy_current_buffer->yy_ch_buf[number_to_move];
02779 
02780                 while ( source > yy_current_buffer->yy_ch_buf )
02781                         *--dest = *--source;
02782 
02783                 yy_cp += (int) (dest - source);
02784                 yy_bp += (int) (dest - source);
02785                 yy_current_buffer->yy_n_chars =
02786                         yy_n_chars = yy_current_buffer->yy_buf_size;
02787 
02788                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
02789                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
02790                 }
02791 
02792         *--yy_cp = (char) c;
02793 
02794         if ( c == '\n' )
02795                 --yylineno;
02796 
02797         yytext_ptr = yy_bp;
02798         yy_hold_char = *yy_cp;
02799         yy_c_buf_p = yy_cp;
02800         }
02801 #endif  /* ifndef YY_NO_UNPUT */
02802 
02803 
02804 #ifndef YY_NO_INPUT
02805 #ifdef __cplusplus
02806 static int yyinput()
02807 #else
02808 static int input()
02809 #endif
02810         {
02811         int c;
02812 
02813         *yy_c_buf_p = yy_hold_char;
02814 
02815         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02816                 {
02817                 /* yy_c_buf_p now points to the character we want to return.
02818                  * If this occurs *before* the EOB characters, then it's a
02819                  * valid NUL; if not, then we've hit the end of the buffer.
02820                  */
02821                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02822                         /* This was really a NUL. */
02823                         *yy_c_buf_p = '\0';
02824 
02825                 else
02826                         { /* need more input */
02827                         int offset = yy_c_buf_p - yytext_ptr;
02828                         ++yy_c_buf_p;
02829 
02830                         switch ( yy_get_next_buffer() )
02831                                 {
02832                                 case EOB_ACT_LAST_MATCH:
02833                                         /* This happens because yy_g_n_b()
02834                                          * sees that we've accumulated a
02835                                          * token and flags that we need to
02836                                          * try matching the token before
02837                                          * proceeding.  But for input(),
02838                                          * there's no matching to consider.
02839                                          * So convert the EOB_ACT_LAST_MATCH
02840                                          * to EOB_ACT_END_OF_FILE.
02841                                          */
02842 
02843                                         /* Reset buffer status. */
02844                                         yyrestart( yyin );
02845 
02846                                         /* fall through */
02847 
02848                                 case EOB_ACT_END_OF_FILE:
02849                                         {
02850                                         if ( yywrap() )
02851                                                 return EOF;
02852 
02853                                         if ( ! yy_did_buffer_switch_on_eof )
02854                                                 YY_NEW_FILE;
02855 #ifdef __cplusplus
02856                                         return yyinput();
02857 #else
02858                                         return input();
02859 #endif
02860                                         }
02861 
02862                                 case EOB_ACT_CONTINUE_SCAN:
02863                                         yy_c_buf_p = yytext_ptr + offset;
02864                                         break;
02865                                 }
02866                         }
02867                 }
02868 
02869         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
02870         *yy_c_buf_p = '\0';     /* preserve yytext */
02871         yy_hold_char = *++yy_c_buf_p;
02872 
02873         if ( c == '\n' )
02874                 ++yylineno;
02875 
02876         return c;
02877         }
02878 #endif /* YY_NO_INPUT */
02879 
02880 #ifdef YY_USE_PROTOS
02881 void yyrestart( FILE *input_file )
02882 #else
02883 void yyrestart( input_file )
02884 FILE *input_file;
02885 #endif
02886         {
02887         if ( ! yy_current_buffer )
02888                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
02889 
02890         yy_init_buffer( yy_current_buffer, input_file );
02891         yy_load_buffer_state();
02892         }
02893 
02894 
02895 #ifdef YY_USE_PROTOS
02896 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
02897 #else
02898 void yy_switch_to_buffer( new_buffer )
02899 YY_BUFFER_STATE new_buffer;
02900 #endif
02901         {
02902         if ( yy_current_buffer == new_buffer )
02903                 return;
02904 
02905         if ( yy_current_buffer )
02906                 {
02907                 /* Flush out information for old buffer. */
02908                 *yy_c_buf_p = yy_hold_char;
02909                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
02910                 yy_current_buffer->yy_n_chars = yy_n_chars;
02911                 }
02912 
02913         yy_current_buffer = new_buffer;
02914         yy_load_buffer_state();
02915 
02916         /* We don't actually know whether we did this switch during
02917          * EOF (yywrap()) processing, but the only time this flag
02918          * is looked at is after yywrap() is called, so it's safe
02919          * to go ahead and always set it.
02920          */
02921         yy_did_buffer_switch_on_eof = 1;
02922         }
02923 
02924 
02925 #ifdef YY_USE_PROTOS
02926 void yy_load_buffer_state( void )
02927 #else
02928 void yy_load_buffer_state()
02929 #endif
02930         {
02931         yy_n_chars = yy_current_buffer->yy_n_chars;
02932         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
02933         yyin = yy_current_buffer->yy_input_file;
02934         yy_hold_char = *yy_c_buf_p;
02935         }
02936 
02937 
02938 #ifdef YY_USE_PROTOS
02939 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
02940 #else
02941 YY_BUFFER_STATE yy_create_buffer( file, size )
02942 FILE *file;
02943 int size;
02944 #endif
02945         {
02946         YY_BUFFER_STATE b;
02947 
02948         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
02949         if ( ! b )
02950                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02951 
02952         b->yy_buf_size = size;
02953 
02954         /* yy_ch_buf has to be 2 characters longer than the size given because
02955          * we need to put in 2 end-of-buffer characters.
02956          */
02957         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
02958         if ( ! b->yy_ch_buf )
02959                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02960 
02961         b->yy_is_our_buffer = 1;
02962 
02963         yy_init_buffer( b, file );
02964 
02965         return b;
02966         }
02967 
02968 
02969 #ifdef YY_USE_PROTOS
02970 void yy_delete_buffer( YY_BUFFER_STATE b )
02971 #else
02972 void yy_delete_buffer( b )
02973 YY_BUFFER_STATE b;
02974 #endif
02975         {
02976         if ( ! b )
02977                 return;
02978 
02979         if ( b == yy_current_buffer )
02980                 yy_current_buffer = (YY_BUFFER_STATE) 0;
02981 
02982         if ( b->yy_is_our_buffer )
02983                 yy_flex_free( (void *) b->yy_ch_buf );
02984 
02985         yy_flex_free( (void *) b );
02986         }
02987 
02988 
02989 
02990 #ifdef YY_USE_PROTOS
02991 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
02992 #else
02993 void yy_init_buffer( b, file )
02994 YY_BUFFER_STATE b;
02995 FILE *file;
02996 #endif
02997 
02998 
02999         {
03000         yy_flush_buffer( b );
03001 
03002         b->yy_input_file = file;
03003         b->yy_fill_buffer = 1;
03004 
03005 #if YY_ALWAYS_INTERACTIVE
03006         b->yy_is_interactive = 1;
03007 #else
03008 #if YY_NEVER_INTERACTIVE
03009         b->yy_is_interactive = 0;
03010 #else
03011         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
03012 #endif
03013 #endif
03014         }
03015 
03016 
03017 #ifdef YY_USE_PROTOS
03018 void yy_flush_buffer( YY_BUFFER_STATE b )
03019 #else
03020 void yy_flush_buffer( b )
03021 YY_BUFFER_STATE b;
03022 #endif
03023 
03024         {
03025         if ( ! b )
03026                 return;
03027 
03028         b->yy_n_chars = 0;
03029 
03030         /* We always need two end-of-buffer characters.  The first causes
03031          * a transition to the end-of-buffer state.  The second causes
03032          * a jam in that state.
03033          */
03034         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03035         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03036 
03037         b->yy_buf_pos = &b->yy_ch_buf[0];
03038 
03039         b->yy_at_bol = 1;
03040         b->yy_buffer_status = YY_BUFFER_NEW;
03041 
03042         if ( b == yy_current_buffer )
03043                 yy_load_buffer_state();
03044         }
03045 
03046 
03047 #ifndef YY_NO_SCAN_BUFFER
03048 #ifdef YY_USE_PROTOS
03049 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
03050 #else
03051 YY_BUFFER_STATE yy_scan_buffer( base, size )
03052 char *base;
03053 yy_size_t size;
03054 #endif
03055         {
03056         YY_BUFFER_STATE b;
03057 
03058         if ( size < 2 ||
03059              base[size-2] != YY_END_OF_BUFFER_CHAR ||
03060              base[size-1] != YY_END_OF_BUFFER_CHAR )
03061                 /* They forgot to leave room for the EOB's. */
03062                 return 0;
03063 
03064         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
03065         if ( ! b )
03066                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
03067 
03068         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
03069         b->yy_buf_pos = b->yy_ch_buf = base;
03070         b->yy_is_our_buffer = 0;
03071         b->yy_input_file = 0;
03072         b->yy_n_chars = b->yy_buf_size;
03073         b->yy_is_interactive = 0;
03074         b->yy_at_bol = 1;
03075         b->yy_fill_buffer = 0;
03076         b->yy_buffer_status = YY_BUFFER_NEW;
03077 
03078         yy_switch_to_buffer( b );
03079 
03080         return b;
03081         }
03082 #endif
03083 
03084 
03085 #ifndef YY_NO_SCAN_STRING
03086 #ifdef YY_USE_PROTOS
03087 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
03088 #else
03089 YY_BUFFER_STATE yy_scan_string( yy_str )
03090 yyconst char *yy_str;
03091 #endif
03092         {
03093         int len;
03094         for ( len = 0; yy_str[len]; ++len )
03095                 ;
03096 
03097         return yy_scan_bytes( yy_str, len );
03098         }
03099 #endif
03100 
03101 
03102 #ifndef YY_NO_SCAN_BYTES
03103 #ifdef YY_USE_PROTOS
03104 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
03105 #else
03106 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
03107 yyconst char *bytes;
03108 int len;
03109 #endif
03110         {
03111         YY_BUFFER_STATE b;
03112         char *buf;
03113         yy_size_t n;
03114         int i;
03115 
03116         /* Get memory for full buffer, including space for trailing EOB's. */
03117         n = len + 2;
03118         buf = (char *) yy_flex_alloc( n );
03119         if ( ! buf )
03120                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
03121 
03122         for ( i = 0; i < len; ++i )
03123                 buf[i] = bytes[i];
03124 
03125         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
03126 
03127         b = yy_scan_buffer( buf, n );
03128         if ( ! b )
03129                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
03130 
03131         /* It's okay to grow etc. this buffer, and we should throw it
03132          * away when we're done.
03133          */
03134         b->yy_is_our_buffer = 1;
03135 
03136         return b;
03137         }
03138 #endif
03139 
03140 
03141 #ifndef YY_NO_PUSH_STATE
03142 #ifdef YY_USE_PROTOS
03143 static void yy_push_state( int new_state )
03144 #else
03145 static void yy_push_state( new_state )
03146 int new_state;
03147 #endif
03148         {
03149         if ( yy_start_stack_ptr >= yy_start_stack_depth )
03150                 {
03151                 yy_size_t new_size;
03152 
03153                 yy_start_stack_depth += YY_START_STACK_INCR;
03154                 new_size = yy_start_stack_depth * sizeof( int );
03155 
03156                 if ( ! yy_start_stack )
03157                         yy_start_stack = (int *) yy_flex_alloc( new_size );
03158 
03159                 else
03160                         yy_start_stack = (int *) yy_flex_realloc(
03161                                         (void *) yy_start_stack, new_size );
03162 
03163                 if ( ! yy_start_stack )
03164                         YY_FATAL_ERROR(
03165                         "out of memory expanding start-condition stack" );
03166                 }
03167 
03168         yy_start_stack[yy_start_stack_ptr++] = YY_START;
03169 
03170         BEGIN(new_state);
03171         }
03172 #endif
03173 
03174 
03175 #ifndef YY_NO_POP_STATE
03176 static void yy_pop_state()
03177         {
03178         if ( --yy_start_stack_ptr < 0 )
03179                 YY_FATAL_ERROR( "start-condition stack underflow" );
03180 
03181         BEGIN(yy_start_stack[yy_start_stack_ptr]);
03182         }
03183 #endif
03184 
03185 
03186 #ifndef YY_NO_TOP_STATE
03187 static int yy_top_state()
03188         {
03189         return yy_start_stack[yy_start_stack_ptr - 1];
03190         }
03191 #endif
03192 
03193 #ifndef YY_EXIT_FAILURE
03194 #define YY_EXIT_FAILURE 2
03195 #endif
03196 
03197 #ifdef YY_USE_PROTOS
03198 static void yy_fatal_error( yyconst char msg[] )
03199 #else
03200 static void yy_fatal_error( msg )
03201 char msg[];
03202 #endif
03203         {
03204         (void) fprintf( stderr, "%s\n", msg );
03205         exit( YY_EXIT_FAILURE );
03206         }
03207 
03208 
03209 
03210 /* Redefine yyless() so it works in section 3 code. */
03211 
03212 #undef yyless
03213 #define yyless(n) \
03214         do \
03215                 { \
03216                 /* Undo effects of setting up yytext. */ \
03217                 yytext[yyleng] = yy_hold_char; \
03218                 yy_c_buf_p = yytext + n; \
03219                 yy_hold_char = *yy_c_buf_p; \
03220                 *yy_c_buf_p = '\0'; \
03221                 yyleng = n; \
03222                 } \
03223         while ( 0 )
03224 
03225 
03226 /* Internal utility routines. */
03227 
03228 #ifndef yytext_ptr
03229 #ifdef YY_USE_PROTOS
03230 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
03231 #else
03232 static void yy_flex_strncpy( s1, s2, n )
03233 char *s1;
03234 yyconst char *s2;
03235 int n;
03236 #endif
03237         {
03238         register int i;
03239         for ( i = 0; i < n; ++i )
03240                 s1[i] = s2[i];
03241         }
03242 #endif
03243 
03244 #ifdef YY_NEED_STRLEN
03245 #ifdef YY_USE_PROTOS
03246 static int yy_flex_strlen( yyconst char *s )
03247 #else
03248 static int yy_flex_strlen( s )
03249 yyconst char *s;
03250 #endif
03251         {
03252         register int n;
03253         for ( n = 0; s[n]; ++n )
03254                 ;
03255 
03256         return n;
03257         }
03258 #endif
03259 
03260 
03261 #ifdef YY_USE_PROTOS
03262 static void *yy_flex_alloc( yy_size_t size )
03263 #else
03264 static void *yy_flex_alloc( size )
03265 yy_size_t size;
03266 #endif
03267         {
03268         return (void *) malloc( size );
03269         }
03270 
03271 #ifdef YY_USE_PROTOS
03272 static void *yy_flex_realloc( void *ptr, yy_size_t size )
03273 #else
03274 static void *yy_flex_realloc( ptr, size )
03275 void *ptr;
03276 yy_size_t size;
03277 #endif
03278         {
03279         /* The cast to (char *) in the following accommodates both
03280          * implementations that use char* generic pointers, and those
03281          * that use void* generic pointers.  It works with the latter
03282          * because both ANSI C and C++ allow castless assignment from
03283          * any pointer type to void*, and deal with argument conversions
03284          * as though doing an assignment.
03285          */
03286         return (void *) realloc( (char *) ptr, size );
03287         }
03288 
03289 #ifdef YY_USE_PROTOS
03290 static void yy_flex_free( void *ptr )
03291 #else
03292 static void yy_flex_free( ptr )
03293 void *ptr;
03294 #endif
03295         {
03296         free( ptr );
03297         }
03298 
03299 #if YY_MAIN
03300 int main()
03301         {
03302         yylex();
03303         return 0;
03304         }
03305 #endif
03306 #line 499 "uesql_scanner.ll"
03307 
03308 
03309 /*
03310 *  L E X   F U N C T I O N S
03311 */
03312 
03318 int yywrap (void)
03319 {
03320 
03321   return 1;
03322 
03323 }  // yywrap()

Generated on Mon Oct 13 02:40:11 2003 for UESQLC by doxygen1.2.18