Added quantiling UDAFs
[com/gs-lite.git] / src / ftacmp / ftalexer.cc
1 #define yy_create_buffer FtaParser_create_buffer\r
2 #define yy_delete_buffer FtaParser_delete_buffer\r
3 #define yy_scan_buffer FtaParser_scan_buffer\r
4 #define yy_scan_string FtaParser_scan_string\r
5 #define yy_scan_bytes FtaParser_scan_bytes\r
6 #define yy_flex_debug FtaParser_flex_debug\r
7 #define yy_init_buffer FtaParser_init_buffer\r
8 #define yy_flush_buffer FtaParser_flush_buffer\r
9 #define yy_load_buffer_state FtaParser_load_buffer_state\r
10 #define yy_switch_to_buffer FtaParser_switch_to_buffer\r
11 #define yyin FtaParserin\r
12 #define yyleng FtaParserleng\r
13 #define yylex FtaParserlex\r
14 #define yyout FtaParserout\r
15 #define yyrestart FtaParserrestart\r
16 #define yytext FtaParsertext\r
17 \r
18 #line 19 "ftalexer.cc"\r
19 /* A lexical scanner generated by flex*/\r
20 \r
21 /* Scanner skeleton version:\r
22  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $\r
23  */\r
24 \r
25 #define FLEX_SCANNER\r
26 #define YY_FLEX_MAJOR_VERSION 2\r
27 #define YY_FLEX_MINOR_VERSION 5\r
28 \r
29 #include <stdio.h>\r
30 #include <unistd.h>\r
31 \r
32 \r
33 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */\r
34 #ifdef c_plusplus\r
35 #ifndef __cplusplus\r
36 #define __cplusplus\r
37 #endif\r
38 #endif\r
39 \r
40 \r
41 #ifdef __cplusplus\r
42 \r
43 #include <stdlib.h>\r
44 \r
45 /* Use prototypes in function declarations. */\r
46 #define YY_USE_PROTOS\r
47 \r
48 /* The "const" storage-class-modifier is valid. */\r
49 #define YY_USE_CONST\r
50 \r
51 #else   /* ! __cplusplus */\r
52 \r
53 #if __STDC__\r
54 \r
55 #define YY_USE_PROTOS\r
56 #define YY_USE_CONST\r
57 \r
58 #endif  /* __STDC__ */\r
59 #endif  /* ! __cplusplus */\r
60 \r
61 #ifdef __TURBOC__\r
62  #pragma warn -rch\r
63  #pragma warn -use\r
64 #include <io.h>\r
65 #include <stdlib.h>\r
66 #define YY_USE_CONST\r
67 #define YY_USE_PROTOS\r
68 #endif\r
69 \r
70 #ifdef YY_USE_CONST\r
71 #define yyconst const\r
72 #else\r
73 #define yyconst\r
74 #endif\r
75 \r
76 \r
77 #ifdef YY_USE_PROTOS\r
78 #define YY_PROTO(proto) proto\r
79 #else\r
80 #define YY_PROTO(proto) ()\r
81 #endif\r
82 \r
83 /* Returned upon end-of-file. */\r
84 #define YY_NULL 0\r
85 \r
86 /* Promotes a possibly negative, possibly signed char to an unsigned\r
87  * integer for use as an array index.  If the signed char is negative,\r
88  * we want to instead treat it as an 8-bit unsigned char, hence the\r
89  * double cast.\r
90  */\r
91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)\r
92 \r
93 /* Enter a start condition.  This macro really ought to take a parameter,\r
94  * but we do it the disgusting crufty way forced on us by the ()-less\r
95  * definition of BEGIN.\r
96  */\r
97 #define BEGIN yy_start = 1 + 2 *\r
98 \r
99 /* Translate the current start state into a value that can be later handed\r
100  * to BEGIN to return to the state.  The YYSTATE alias is for lex\r
101  * compatibility.\r
102  */\r
103 #define YY_START ((yy_start - 1) / 2)\r
104 #define YYSTATE YY_START\r
105 \r
106 /* Action number for EOF rule of a given start state. */\r
107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)\r
108 \r
109 /* Special action meaning "start processing a new file". */\r
110 #define YY_NEW_FILE yyrestart( yyin )\r
111 \r
112 #define YY_END_OF_BUFFER_CHAR 0\r
113 \r
114 /* Size of default input buffer. */\r
115 #define YY_BUF_SIZE 16384\r
116 \r
117 typedef struct yy_buffer_state *YY_BUFFER_STATE;\r
118 \r
119 extern int yyleng;\r
120 extern FILE *yyin, *yyout;\r
121 \r
122 #define EOB_ACT_CONTINUE_SCAN 0\r
123 #define EOB_ACT_END_OF_FILE 1\r
124 #define EOB_ACT_LAST_MATCH 2\r
125 \r
126 /* The funky do-while in the following #define is used to turn the definition\r
127  * int a single C statement (which needs a semi-colon terminator).  This\r
128  * avoids problems with code like:\r
129  *\r
130  *      if ( condition_holds )\r
131  *              yyless( 5 );\r
132  *      else\r
133  *              do_something_else();\r
134  *\r
135  * Prior to using the do-while the compiler would get upset at the\r
136  * "else" because it interpreted the "if" statement as being all\r
137  * done when it reached the ';' after the yyless() call.\r
138  */\r
139 \r
140 /* Return all but the first 'n' matched characters back to the input stream. */\r
141 \r
142 #define yyless(n) \\r
143         do \\r
144                 { \\r
145                 /* Undo effects of setting up yytext. */ \\r
146                 *yy_cp = yy_hold_char; \\r
147                 YY_RESTORE_YY_MORE_OFFSET \\r
148                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \\r
149                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \\r
150                 } \\r
151         while ( 0 )\r
152 \r
153 #define unput(c) yyunput( c, yytext_ptr )\r
154 \r
155 /* Some routines like yy_flex_realloc() are emitted as static but are\r
156    not called by all lexers. This generates warnings in some compilers,\r
157    notably GCC. Arrange to suppress these. */\r
158 #ifdef __GNUC__\r
159 #define YY_MAY_BE_UNUSED __attribute__((unused))\r
160 #else\r
161 #define YY_MAY_BE_UNUSED\r
162 #endif\r
163 \r
164 /* The following is because we cannot portably get our hands on size_t\r
165  * (without autoconf's help, which isn't available because we want\r
166  * flex-generated scanners to compile on their own).\r
167  */\r
168 typedef unsigned int yy_size_t;\r
169 \r
170 \r
171 struct yy_buffer_state\r
172         {\r
173         FILE *yy_input_file;\r
174 \r
175         char *yy_ch_buf;                /* input buffer */\r
176         char *yy_buf_pos;               /* current position in input buffer */\r
177 \r
178         /* Size of input buffer in bytes, not including room for EOB\r
179          * characters.\r
180          */\r
181         yy_size_t yy_buf_size;\r
182 \r
183         /* Number of characters read into yy_ch_buf, not including EOB\r
184          * characters.\r
185          */\r
186         int yy_n_chars;\r
187 \r
188         /* Whether we "own" the buffer - i.e., we know we created it,\r
189          * and can realloc() it to grow it, and should free() it to\r
190          * delete it.\r
191          */\r
192         int yy_is_our_buffer;\r
193 \r
194         /* Whether this is an "interactive" input source; if so, and\r
195          * if we're using stdio for input, then we want to use getc()\r
196          * instead of fread(), to make sure we stop fetching input after\r
197          * each newline.\r
198          */\r
199         int yy_is_interactive;\r
200 \r
201         /* Whether we're considered to be at the beginning of a line.\r
202          * If so, '^' rules will be active on the next match, otherwise\r
203          * not.\r
204          */\r
205         int yy_at_bol;\r
206 \r
207         /* Whether to try to fill the input buffer when we reach the\r
208          * end of it.\r
209          */\r
210         int yy_fill_buffer;\r
211 \r
212         int yy_buffer_status;\r
213 #define YY_BUFFER_NEW 0\r
214 #define YY_BUFFER_NORMAL 1\r
215         /* When an EOF's been seen but there's still some text to process\r
216          * then we mark the buffer as YY_EOF_PENDING, to indicate that we\r
217          * shouldn't try reading from the input source any more.  We might\r
218          * still have a bunch of tokens to match, though, because of\r
219          * possible backing-up.\r
220          *\r
221          * When we actually see the EOF, we change the status to "new"\r
222          * (via yyrestart()), so that the user can continue scanning by\r
223          * just pointing yyin at a new input file.\r
224          */\r
225 #define YY_BUFFER_EOF_PENDING 2\r
226         };\r
227 \r
228 static YY_BUFFER_STATE yy_current_buffer = 0;\r
229 \r
230 /* We provide macros for accessing buffer states in case in the\r
231  * future we want to put the buffer states in a more general\r
232  * "scanner state".\r
233  */\r
234 #define YY_CURRENT_BUFFER yy_current_buffer\r
235 \r
236 \r
237 /* yy_hold_char holds the character lost when yytext is formed. */\r
238 static char yy_hold_char;\r
239 \r
240 static int yy_n_chars;          /* number of characters read into yy_ch_buf */\r
241 \r
242 \r
243 int yyleng;\r
244 \r
245 /* Points to current character in buffer. */\r
246 static char *yy_c_buf_p = (char *) 0;\r
247 static int yy_init = 1;         /* whether we need to initialize */\r
248 static int yy_start = 0;        /* start state number */\r
249 \r
250 /* Flag which is used to allow yywrap()'s to do buffer switches\r
251  * instead of setting up a fresh yyin.  A bit of a hack ...\r
252  */\r
253 static int yy_did_buffer_switch_on_eof;\r
254 \r
255 void yyrestart YY_PROTO(( FILE *input_file ));\r
256 \r
257 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));\r
258 void yy_load_buffer_state YY_PROTO(( void ));\r
259 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));\r
260 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));\r
261 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));\r
262 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));\r
263 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )\r
264 \r
265 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));\r
266 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));\r
267 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));\r
268 \r
269 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));\r
270 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;\r
271 static void yy_flex_free YY_PROTO(( void * ));\r
272 \r
273 #define yy_new_buffer yy_create_buffer\r
274 \r
275 #define yy_set_interactive(is_interactive) \\r
276         { \\r
277         if ( ! yy_current_buffer ) \\r
278                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\r
279         yy_current_buffer->yy_is_interactive = is_interactive; \\r
280         }\r
281 \r
282 #define yy_set_bol(at_bol) \\r
283         { \\r
284         if ( ! yy_current_buffer ) \\r
285                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\r
286         yy_current_buffer->yy_at_bol = at_bol; \\r
287         }\r
288 \r
289 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)\r
290 \r
291 \r
292 #define yywrap() 1\r
293 #define YY_SKIP_YYWRAP\r
294 typedef unsigned char YY_CHAR;\r
295 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;\r
296 typedef int yy_state_type;\r
297 extern char *yytext;\r
298 #define yytext_ptr yytext\r
299 \r
300 static yy_state_type yy_get_previous_state YY_PROTO(( void ));\r
301 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));\r
302 static int yy_get_next_buffer YY_PROTO(( void ));\r
303 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));\r
304 \r
305 /* Done after the current pattern has been matched and before the\r
306  * corresponding action - sets up yytext.\r
307  */\r
308 #define YY_DO_BEFORE_ACTION \\r
309         yytext_ptr = yy_bp; \\r
310         yytext_ptr -= yy_more_len; \\r
311         yyleng = (int) (yy_cp - yytext_ptr); \\r
312         yy_hold_char = *yy_cp; \\r
313         *yy_cp = '\0'; \\r
314         yy_c_buf_p = yy_cp;\r
315 \r
316 #define YY_NUM_RULES 85\r
317 #define YY_END_OF_BUFFER 86\r
318 static yyconst short int yy_accept[655] =\r
319     {   0,\r
320         0,    0,   86,   84,   81,   80,   66,   84,   67,   66,\r
321        66,   70,   57,   62,   60,   63,   69,   69,   69,   69,\r
322        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
323        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
324        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
325        69,   69,   45,   46,   68,   81,   80,    0,   79,   78,\r
326         0,   74,    0,    0,   73,   70,    0,    0,   58,   64,\r
327        61,   65,   59,   69,   69,   26,   69,   69,   69,   10,\r
328        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
329        69,   69,   69,   69,   69,   69,   69,   69,   27,   69,\r
330 \r
331        27,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
332        69,   69,   69,   29,   69,   29,   69,   69,   69,   69,\r
333        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
334        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
335        69,   69,   69,   69,   69,   69,   69,   69,   27,   69,\r
336        69,   69,   69,   69,   29,   69,   69,   69,   69,   69,\r
337        69,   69,   69,    0,   82,    0,   77,    0,   83,   73,\r
338         0,    0,   75,   71,    1,    5,    1,   69,   69,   69,\r
339        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
340        50,   69,   69,   69,   69,   69,   39,   69,   69,   69,\r
341 \r
342        69,   69,   69,   69,   69,   69,    7,   69,    6,   69,\r
343        28,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
344        69,   69,   69,   69,   69,   69,   69,    8,   69,   69,\r
345        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
346        69,   69,    1,   69,   69,   69,   69,   69,   69,   69,\r
347        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
348        69,   69,   69,   69,    0,   76,   72,   69,   69,   69,\r
349        69,   69,   19,   69,   69,   69,   69,   69,   69,   69,\r
350        11,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
351        69,   69,   40,   69,   69,   69,   69,   69,   69,   69,\r
352 \r
353        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
354        69,   32,   69,   69,   69,   69,   33,   69,   36,   69,\r
355        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
356        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
357        69,   69,   69,   69,   69,   69,    9,   69,   69,   69,\r
358        37,   69,   69,   69,   17,   17,   69,   69,   69,   69,\r
359        69,   69,   69,   69,   69,   34,   69,   69,   69,   69,\r
360        69,   44,   69,   69,   69,   69,   69,   69,   35,   69,\r
361        69,   69,   69,   69,   47,   69,   69,   31,   69,   69,\r
362        69,   69,   69,   69,   17,   69,   69,   69,   69,   69,\r
363 \r
364        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
365        69,   43,   54,   69,   69,   69,   69,   25,   69,   69,\r
366        41,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
367        69,   69,   18,   69,   30,   49,   69,   69,   30,   69,\r
368        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
369        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
370        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
371        69,   69,   69,    3,   69,   69,   69,   69,   69,   69,\r
372        69,   69,   69,   38,   69,   69,   69,   69,   69,   69,\r
373        69,   69,   69,   69,   69,   69,   69,   69,    2,   69,\r
374 \r
375        69,   69,   69,   69,   69,   69,   69,   69,   42,   69,\r
376        69,   69,   52,   69,   69,   48,   69,   69,   69,   69,\r
377        69,   69,   69,    4,   69,   69,   69,   69,   69,   69,\r
378        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
379        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
380        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
381        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,\r
382        69,   69,   69,   69,   12,   69,   69,   69,   13,   69,\r
383        69,   69,   55,   21,   69,   69,   69,   69,   69,   69,\r
384        69,   69,   23,   69,   69,   69,   69,   16,   69,   69,\r
385 \r
386        69,   69,   69,   69,   69,   69,   51,   69,   69,   69,\r
387        69,   69,   69,   24,   69,   69,   69,   69,   69,   69,\r
388        69,   69,   69,   69,   69,   69,   69,   22,   20,   69,\r
389        69,   53,   69,   69,   69,   69,   69,   69,   69,   69,\r
390        69,   69,   69,   69,   15,   69,   69,   69,   69,   14,\r
391        69,   69,   56,    0\r
392     } ;\r
393 \r
394 static yyconst int yy_ec[256] =\r
395     {   0,\r
396         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,\r
397         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,\r
398         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
399         1,    2,    4,    1,    4,    4,    4,    4,    5,    4,\r
400         4,    4,    6,    4,    7,    8,    9,   10,   10,   10,\r
401        10,   10,   10,   11,   10,   10,   10,    4,   12,   13,\r
402        14,   15,    1,    4,   16,   17,   18,   19,   20,   21,\r
403        22,   23,   24,   25,   26,   27,   28,   29,   30,   31,\r
404        32,   33,   34,   35,   36,   37,   38,   39,   40,   41,\r
405         4,    1,    4,    1,   42,    1,   43,   44,   45,   46,\r
406 \r
407        47,   48,   49,   50,   51,   52,   41,   53,   54,   55,\r
408        56,   57,   41,   58,   59,   60,   61,   62,   63,   64,\r
409        65,   41,   66,    4,   67,   68,    1,    1,    1,    1,\r
410         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
411         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
412         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
413         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
414         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
415         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
416         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
417 \r
418         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
419         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
420         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
421         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
422         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
423         1,    1,    1,    1,    1\r
424     } ;\r
425 \r
426 static yyconst int yy_meta[69] =\r
427     {   0,\r
428         1,    1,    2,    1,    1,    1,    1,    1,    1,    3,\r
429         3,    1,    1,    1,    1,    3,    3,    3,    3,    3,\r
430         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,\r
431         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,\r
432         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,\r
433         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,\r
434         3,    3,    3,    3,    3,    1,    1,    1\r
435     } ;\r
436 \r
437 static yyconst short int yy_base[660] =\r
438     {   0,\r
439         0,    0,  777,  778,  774,    0,  778,   66,  768,   62,\r
440       765,   66,  778,   65,  778,   69,   56,   30,   61,  753,\r
441         0,   65,   54,   76,   70,   83,  104,   75,   96,   88,\r
442       109,  114,  119,  743,   87,  106,  104,  706,   92,  113,\r
443       712,  726,  713,  720,  125,  710,  109,  122,   47,  715,\r
444       714,  707,  778,  778,  778,  760,    0,  135,  778,  778,\r
445       758,  169,  175,  757,  173,  186,  181,  732,  778,  778,\r
446       778,  778,  778,    0,  739,    0,  735,  710,  706,    0,\r
447       126,  718,  736,  143,  691,  707,  729,  722,  175,  718,\r
448       731,  693,  689,  714,  687,  705,  702,  678,  710,  161,\r
449 \r
450       683,  716,  716,  687,  695,  700,  703,  667,  672,  674,\r
451       693,  667,  706,  683,  689,  681,  662,  688,  690,  697,\r
452       691,  668,  663,  688,  698,  680,  183,  659,  164,  694,\r
453       694,  681,  672,  664,  675,  685,  657,  670,  644,  655,\r
454       651,  157,  638,  654,  644,  640,  639,  632,  638,  644,\r
455       627,  632,  634,  628,  645,  626,  636,  631,  630,  170,\r
456       639,  634,  622,  676,  778,  197,  215,  675,  778,  218,\r
457       224,  226,  229,  650,  634,    0,  633,  658,  639,  643,\r
458       651,  627,  610,  613,  620,  642,  631,  637,  628,  634,\r
459         0,  601,  606,  623,  597,  633,    0,  605,  635,  643,\r
460 \r
461       616,  641,  604,  615,  610,  588,    0,  625,    0,  597,\r
462         0,  612,  628,  623,  626,  594,  624,  604,  615,  610,\r
463       586,  582,  614,  615,  612,  599,  607,    0,  609,  581,\r
464       577,  579,  598,  589,  603,  602,  561,  604,  586,  560,\r
465       575,  574,  573,  571,  554,  557,  564,  550,  555,  547,\r
466       556,  559,  545,  555,  560,  555,  551,  547,  552,  548,\r
467       550,  536,  537,  552,  231,  233,  778,  577,  576,  562,\r
468       566,  554,    0,  533,  536,  526,  556,  564,  564,  562,\r
469         0,  534,  549,  522,  549,  522,  543,  533,  558,  531,\r
470       514,  529,    0,  528,  549,  521,  551,  544,  532,  515,\r
471 \r
472       505,  534,  531,  525,  523,  498,  496,  538,  529,  538,\r
473       517,    0,  519,  506,  492,  529,    0,  511,    0,  529,\r
474       526,  498,  528,  527,  499,  486,  489,  479,  491,  480,\r
475       481,  477,  492,  486,  483,  473,  470,  468,  483,  469,\r
476       479,  482,  502,  474,  498,  492,    0,  469,  464,  498,\r
477         0,  483,  483,  457,  490,  462,  490,  462,  468,  472,\r
478       481,  470,  464,  475,  474,    0,  468,  480,  459,  451,\r
479       457,    0,  480,  455,  465,  453,  437,  458,    0,  464,\r
480       471,  468,  429,  439,    0,  471,  460,    0,  463,  435,\r
481       434,  431,  426,  422,  428,  429,  435,  420,  426,  432,\r
482 \r
483       431,  415,  411,  421,  420,  446,  418,  437,  443,  409,\r
484       414,    0,    0,  420,  419,  431,  404,    0,  433,  441,\r
485         0,  440,  430,  418,  392,  422,  418,  425,  391,  423,\r
486       417,  416,    0,  415,  420,    0,  410,  409,    0,  383,\r
487       413,  397,  416,  388,  387,  380,  385,  391,  377,  379,\r
488       369,  371,  376,  371,  368,  376,  391,  365,  400,  379,\r
489       371,  377,  393,  392,  394,  366,  384,  386,  385,  355,\r
490       375,  349,  375,    0,  377,  350,  378,  368,  342,  372,\r
491       377,  370,  343,    0,  377,  364,  338,  337,  345,  351,\r
492       340,  342,  334,  329,  332,  326,  330,  327,    0,  342,\r
493 \r
494       345,  340,  343,  350,  323,  336,  335,  352,    0,  324,\r
495       354,  326,  330,  347,  319,    0,  334,  308,  338,  346,\r
496       329,  303,  345,    0,  320,  298,  304,  317,  307,  310,\r
497       305,  295,  293,  215,  330,  228,  302,  327,  299,  315,\r
498       314,  318,  291,  312,  286,  306,  313,  286,  320,  292,\r
499       296,  303,  305,  278,  305,   63,  283,  281,  272,  275,\r
500       271,  273,  280,  269,  285,  301,  303,  257,  271,  273,\r
501       290,  263,  297,  269,    0,  273,  272,  289,    0,  279,\r
502       253,  279,    0,    0,  275,  243,  257,  259,  250,  257,\r
503       261,  244,    0,  281,  271,  252,  243,    0,  262,  236,\r
504 \r
505       270,  269,  273,  250,  249,  254,    0,  242,  233,  227,\r
506       234,  243,  255,    0,  228,  248,  222,  250,  223,   37,\r
507       119,  133,  140,  122,  146,  154,  160,    0,    0,  193,\r
508       168,    0,  216,  191,  225,  198,  194,  222,  197,  230,\r
509       204,  237,  202,  207,    0,  230,  205,  231,  207,    0,\r
510       225,  235,    0,  778,  266,  269,  265,  272,  275\r
511     } ;\r
512 \r
513 static yyconst short int yy_def[660] =\r
514     {   0,\r
515       654,    1,  654,  654,  654,  655,  654,  656,  654,  654,\r
516       654,  654,  654,  654,  654,  654,  657,  657,  657,  657,\r
517       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
518       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
519       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
520       657,  657,  654,  654,  654,  654,  655,  656,  654,  654,\r
521       658,  654,  654,  659,  654,  654,  654,  654,  654,  654,\r
522       654,  654,  654,  657,  657,  657,  657,  657,  657,  657,\r
523       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
524       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
525 \r
526       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
527       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
528       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
529       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
530       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
531       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
532       657,  657,  657,  658,  654,  654,  654,  659,  654,  654,\r
533       654,  654,  654,  654,  657,  657,  657,  657,  657,  657,\r
534       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
535       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
536 \r
537       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
538       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
539       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
540       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
541       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
542       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
543       657,  657,  657,  657,  654,  654,  654,  657,  657,  657,\r
544       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
545       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
546       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
547 \r
548       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
549       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
550       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
551       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
552       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
553       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
554       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
555       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
556       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
557       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
558 \r
559       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
560       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
561       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
562       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
563       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
564       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
565       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
566       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
567       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
568       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
569 \r
570       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
571       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
572       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
573       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
574       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
575       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
576       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
577       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
578       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
579       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
580 \r
581       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
582       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
583       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
584       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
585       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,\r
586       657,  657,  657,    0,  654,  654,  654,  654,  654\r
587     } ;\r
588 \r
589 static yyconst short int yy_nxt[847] =\r
590     {   0,\r
591         4,    5,    6,    7,    8,    7,    9,   10,   11,   12,\r
592        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,\r
593        22,   23,   24,   25,   21,   21,   26,   27,   28,   29,\r
594        30,   21,   31,   32,   33,   34,   21,   35,   36,   21,\r
595        21,   21,   37,   38,   39,   21,   21,   40,   41,   42,\r
596        43,   21,   44,   45,   46,   47,   21,   48,   49,   50,\r
597        21,   21,   51,   52,   21,   53,   54,   55,   59,   80,\r
598        60,   62,   62,   65,  632,   66,   66,   69,   70,   71,\r
599        88,   63,   72,   73,   75,   67,   94,   81,   89,   76,\r
600        82,   96,   77,  159,   80,   97,   83,   90,   99,   91,\r
601 \r
602       100,   68,  102,  118,  111,  103,  586,  160,   63,  136,\r
603        78,   95,   67,   84,   76,   92,   85,   79,   98,  105,\r
604       119,   86,   93,  106,  101,  587,  113,  107,  114,  104,\r
605       112,  115,  120,  124,  130,  138,  137,   59,  121,   60,\r
606       125,  131,  132,  633,  142,  178,  108,  143,  126,  127,\r
607       109,  133,  144,  116,  110,  179,  117,  634,  140,  122,\r
608       128,  139,   76,  145,  123,  141,  155,  151,  134,  156,\r
609       146,  152,  157,  635,  129,  153,  628,  158,   62,   62,\r
610       166,  166,  170,  170,  167,  167,  172,  172,   63,  182,\r
611       173,  173,  171,   65,  188,   66,   66,  200,  183,  226,\r
612 \r
613       227,  189,  201,  244,  629,   67,  167,  167,  231,  636,\r
614       228,  637,  245,  229,  260,   63,  638,  228,  639,  171,\r
615       232,   68,  202,  228,  167,  167,  261,  170,  170,  265,\r
616       265,  565,   67,  266,  266,  173,  173,  171,  173,  173,\r
617       266,  266,  266,  266,  568,  640,  641,  642,  643,  644,\r
618       645,  645,  566,  646,  647,  648,  645,  649,  650,  650,\r
619       651,  650,  652,  653,  171,  569,   57,   74,   57,   58,\r
620        58,   58,  164,  164,  164,  168,  168,  168,  631,  630,\r
621       629,  629,  628,  628,  627,  626,  625,  614,  624,  623,\r
622       622,  621,  620,  619,  618,  617,  616,  614,  615,  614,\r
623 \r
624       613,  612,  611,  610,  598,  609,  608,  593,  607,  606,\r
625       605,  604,  603,  602,  601,  600,  599,  598,  598,  597,\r
626       596,  593,  595,  594,  593,  584,  592,  579,  591,  575,\r
627       590,  589,  588,  585,  584,  584,  583,  582,  581,  580,\r
628       579,  579,  578,  577,  576,  575,  575,  574,  573,  572,\r
629       571,  570,  567,  564,  563,  562,  561,  560,  559,  558,\r
630       557,  556,  555,  554,  553,  552,  551,  550,  549,  548,\r
631       547,  546,  545,  544,  543,  542,  541,  540,  539,  538,\r
632       537,  536,  535,  534,  524,  533,  532,  531,  530,  529,\r
633       528,  527,  526,  525,  499,  524,  524,  523,  522,  521,\r
634 \r
635       520,  519,  518,  517,  516,  515,  514,  513,  512,  511,\r
636       510,  509,  509,  508,  507,  506,  505,  504,  503,  502,\r
637       501,  500,  499,  499,  498,  497,  496,  495,  474,  494,\r
638       493,  492,  491,  490,  489,  488,  487,  486,  485,  484,\r
639       483,  482,  481,  480,  479,  478,  477,  476,  474,  475,\r
640       474,  473,  472,  471,  470,  469,  468,  467,  466,  465,\r
641       464,  463,  462,  461,  460,  459,  458,  457,  456,  455,\r
642       439,  433,  454,  453,  452,  451,  450,  418,  449,  448,\r
643       447,  446,  445,  444,  443,  442,  441,  440,  439,  438,\r
644       437,  436,  435,  433,  434,  433,  432,  431,  430,  429,\r
645 \r
646       428,  427,  426,  425,  424,  423,  422,  421,  420,  419,\r
647       418,  418,  417,  416,  415,  414,  413,  412,  411,  410,\r
648       409,  408,  407,  406,  405,  388,  404,  403,  402,  401,\r
649       400,  399,  366,  398,  397,  396,  395,  394,  347,  393,\r
650       392,  391,  390,  389,  388,  388,  387,  386,  385,  384,\r
651       383,  382,  381,  380,  379,  378,  377,  376,  375,  374,\r
652       373,  372,  371,  370,  369,  368,  367,  366,  366,  365,\r
653       364,  363,  362,  361,  360,  359,  358,  357,  356,  355,\r
654       354,  353,  352,  351,  350,  347,  349,  348,  347,  346,\r
655       345,  344,  343,  342,  341,  317,  340,  312,  339,  338,\r
656 \r
657       337,  336,  335,  334,  333,  332,  331,  330,  281,  329,\r
658       273,  328,  327,  326,  325,  324,  323,  322,  321,  320,\r
659       317,  319,  318,  317,  316,  315,  312,  314,  313,  312,\r
660       311,  310,  309,  308,  307,  306,  305,  304,  303,  302,\r
661       301,  300,  299,  298,  297,  296,  295,  294,  293,  292,\r
662       291,  290,  289,  288,  287,  286,  285,  284,  283,  281,\r
663       282,  281,  280,  279,  278,  277,  273,  276,  275,  274,\r
664       273,  272,  271,  270,  269,  268,  267,  169,  165,  264,\r
665       263,  262,  259,  258,  257,  256,  255,  211,  209,  254,\r
666       207,  253,  252,  251,  250,  249,  248,  247,  246,  176,\r
667 \r
668       243,  242,  241,  240,  239,  238,  237,  236,  235,  234,\r
669       233,  230,  225,  224,  223,  222,  221,  220,  219,  218,\r
670       217,  216,  215,  214,  213,  212,  211,  211,  209,  210,\r
671       207,  209,  208,  207,  206,  205,  204,  203,  199,  198,\r
672       197,  196,  195,  194,  193,  192,  191,  190,  187,  186,\r
673       185,  184,  181,  180,  176,  177,  176,  175,  174,  169,\r
674       165,   56,  163,  162,  161,  154,  150,  149,  148,  147,\r
675        80,  135,   87,   64,   61,   56,  654,    3,  654,  654,\r
676       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
677       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
678 \r
679       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
680       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
681       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
682       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
683       654,  654,  654,  654,  654,  654\r
684     } ;\r
685 \r
686 static yyconst short int yy_chk[847] =\r
687     {   0,\r
688         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
689         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
690         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
691         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
692         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
693         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,\r
694         1,    1,    1,    1,    1,    1,    1,    1,    8,   18,\r
695         8,   10,   10,   12,  620,   12,   12,   14,   14,   14,\r
696        22,   10,   16,   16,   17,   12,   23,   19,   22,   17,\r
697        19,   24,   17,   49,   18,   24,   19,   22,   25,   22,\r
698 \r
699        25,   12,   26,   30,   28,   26,  556,   49,   10,   35,\r
700        17,   23,   12,   19,   17,   22,   19,   17,   24,   27,\r
701        30,   19,   22,   27,   25,  556,   29,   27,   29,   26,\r
702        28,   29,   31,   32,   33,   36,   35,   58,   31,   58,\r
703        32,   33,   33,  621,   39,   81,   27,   39,   32,   32,\r
704        27,   33,   39,   29,   27,   81,   29,  622,   37,   31,\r
705        32,   36,   37,   40,   31,   37,   47,   45,   33,   47,\r
706        40,   45,   48,  623,   32,   45,  624,   48,   62,   62,\r
707        63,   63,   65,   65,   63,   63,   67,   67,   62,   84,\r
708        67,   67,   65,   66,   89,   66,   66,  100,   84,  127,\r
709 \r
710       127,   89,  100,  142,  625,   66,  166,  166,  129,  626,\r
711       127,  627,  142,  127,  160,   62,  630,  129,  631,   65,\r
712       129,   66,  100,  160,  167,  167,  160,  170,  170,  171,\r
713       171,  534,   66,  171,  171,  172,  172,  170,  173,  173,\r
714       265,  265,  266,  266,  536,  633,  634,  635,  636,  637,\r
715       638,  639,  534,  640,  641,  642,  643,  644,  646,  647,\r
716       648,  649,  651,  652,  170,  536,  655,  657,  655,  656,\r
717       656,  656,  658,  658,  658,  659,  659,  659,  619,  618,\r
718       617,  616,  615,  613,  612,  611,  610,  609,  608,  606,\r
719       605,  604,  603,  602,  601,  600,  599,  597,  596,  595,\r
720 \r
721       594,  592,  591,  590,  589,  588,  587,  586,  585,  582,\r
722       581,  580,  578,  577,  576,  574,  573,  572,  571,  570,\r
723       569,  568,  567,  566,  565,  564,  563,  562,  561,  560,\r
724       559,  558,  557,  555,  554,  553,  552,  551,  550,  549,\r
725       548,  547,  546,  545,  544,  543,  542,  541,  540,  539,\r
726       538,  537,  535,  533,  532,  531,  530,  529,  528,  527,\r
727       526,  525,  523,  522,  521,  520,  519,  518,  517,  515,\r
728       514,  513,  512,  511,  510,  508,  507,  506,  505,  504,\r
729       503,  502,  501,  500,  498,  497,  496,  495,  494,  493,\r
730       492,  491,  490,  489,  488,  487,  486,  485,  483,  482,\r
731 \r
732       481,  480,  479,  478,  477,  476,  475,  473,  472,  471,\r
733       470,  469,  468,  467,  466,  465,  464,  463,  462,  461,\r
734       460,  459,  458,  457,  456,  455,  454,  453,  452,  451,\r
735       450,  449,  448,  447,  446,  445,  444,  443,  442,  441,\r
736       440,  438,  437,  435,  434,  432,  431,  430,  429,  428,\r
737       427,  426,  425,  424,  423,  422,  420,  419,  417,  416,\r
738       415,  414,  411,  410,  409,  408,  407,  406,  405,  404,\r
739       403,  402,  401,  400,  399,  398,  397,  396,  395,  394,\r
740       393,  392,  391,  390,  389,  387,  386,  384,  383,  382,\r
741       381,  380,  378,  377,  376,  375,  374,  373,  371,  370,\r
742 \r
743       369,  368,  367,  365,  364,  363,  362,  361,  360,  359,\r
744       358,  357,  356,  355,  354,  353,  352,  350,  349,  348,\r
745       346,  345,  344,  343,  342,  341,  340,  339,  338,  337,\r
746       336,  335,  334,  333,  332,  331,  330,  329,  328,  327,\r
747       326,  325,  324,  323,  322,  321,  320,  318,  316,  315,\r
748       314,  313,  311,  310,  309,  308,  307,  306,  305,  304,\r
749       303,  302,  301,  300,  299,  298,  297,  296,  295,  294,\r
750       292,  291,  290,  289,  288,  287,  286,  285,  284,  283,\r
751       282,  280,  279,  278,  277,  276,  275,  274,  272,  271,\r
752       270,  269,  268,  264,  263,  262,  261,  260,  259,  258,\r
753 \r
754       257,  256,  255,  254,  253,  252,  251,  250,  249,  248,\r
755       247,  246,  245,  244,  243,  242,  241,  240,  239,  238,\r
756       237,  236,  235,  234,  233,  232,  231,  230,  229,  227,\r
757       226,  225,  224,  223,  222,  221,  220,  219,  218,  217,\r
758       216,  215,  214,  213,  212,  210,  208,  206,  205,  204,\r
759       203,  202,  201,  200,  199,  198,  196,  195,  194,  193,\r
760       192,  190,  189,  188,  187,  186,  185,  184,  183,  182,\r
761       181,  180,  179,  178,  177,  175,  174,  168,  164,  163,\r
762       162,  161,  159,  158,  157,  156,  155,  154,  153,  152,\r
763       151,  150,  149,  148,  147,  146,  145,  144,  143,  141,\r
764 \r
765       140,  139,  138,  137,  136,  135,  134,  133,  132,  131,\r
766       130,  128,  126,  125,  124,  123,  122,  121,  120,  119,\r
767       118,  117,  116,  115,  114,  113,  112,  111,  110,  109,\r
768       108,  107,  106,  105,  104,  103,  102,  101,   99,   98,\r
769        97,   96,   95,   94,   93,   92,   91,   90,   88,   87,\r
770        86,   85,   83,   82,   79,   78,   77,   75,   68,   64,\r
771        61,   56,   52,   51,   50,   46,   44,   43,   42,   41,\r
772        38,   34,   20,   11,    9,    5,    3,  654,  654,  654,\r
773       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
774       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
775 \r
776       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
777       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
778       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
779       654,  654,  654,  654,  654,  654,  654,  654,  654,  654,\r
780       654,  654,  654,  654,  654,  654\r
781     } ;\r
782 \r
783 static yy_state_type yy_last_accepting_state;\r
784 static char *yy_last_accepting_cpos;\r
785 \r
786 /* The intent behind this definition is that it'll catch\r
787  * any uses of REJECT which flex missed.\r
788  */\r
789 #define REJECT reject_used_but_not_detected\r
790 static int yy_more_flag = 0;\r
791 static int yy_more_len = 0;\r
792 #define yymore() (yy_more_flag = 1)\r
793 #define YY_MORE_ADJ yy_more_len\r
794 #define YY_RESTORE_YY_MORE_OFFSET\r
795 char *yytext;\r
796 #line 1 "fta.l"\r
797 #define INITIAL 0\r
798 /*\r
799         MUST COMPILE WITH\r
800                 flex -PFtaParser -oftalexer.cc fta.l\r
801         (or equivalent).\r
802 */      \r
803 #line 9 "fta.l"\r
804 /*\r
805  * AT&T lex can't handle this lexer due to lex bugs.  It works with flex\r
806  * 2.3.7, pclex 2.0.5, and MKS lex 3.1a.\r
807  */\r
808 \r
809  #include "parse_fta.h"\r
810  #include "parse_schema.h"\r
811  #include <string.h>\r
812 \r
813 \r
814 \r
815 #include "fta.tab.cc.h"\r
816 \r
817 /*\r
818         Some includes that flex doesn't include as standard,\r
819         but which are needed.\r
820 */\r
821 \r
822 #include <stdlib.h>\r
823 #include <string.h>\r
824 \r
825 \r
826 //              Prevent flex from defining yywrap as extern "C" \r
827 \r
828 #define YY_SKIP_YYWRAP\r
829 \r
830 /*              No lex lib, supply the yywrap fcn. that normally resides there\r
831 */\r
832 \r
833 int FtaParserwrap(){return(1);}\r
834 \r
835 extern int FtaParserdebug;\r
836 \r
837 \r
838 /*\r
839                 These variables are used for error reporting:\r
840                 flex_fta_lineno : the line currently being parsed when the error occurs.\r
841                 flex_fta_ch : the character on the line where the error occurs\r
842                 flex_fta_linebuf : store the line for reporting.\r
843 \r
844                 NOTE : 1) the fixed size flex_fta_linebuf buffer is dangerous.\r
845                            2) You might get pointed to a place shortly after\r
846                                   where the syntax error occurs.  It is close enough\r
847                                   for now.\r
848 */\r
849 \r
850 int flex_fta_lineno = 1;\r
851 int flex_fta_ch = 0;\r
852 char flex_fta_linebuf[200000];\r
853 \r
854 char *flex_fta_stringinput = NULL;\r
855 int flex_fta_stringinput_ptr = 0;\r
856 FILE *flex_fta_fileinput = NULL;\r
857 int my_FtaParser_yyinput(char *buf, int max_size);\r
858 \r
859 \r
860 \r
861 void FtaParsererror(char *s){\r
862         int i;\r
863         fprintf(stderr,"On line %d, char %d: %s (token %s):\n%s\n",\r
864                                 flex_fta_lineno, flex_fta_ch, s, FtaParsertext, flex_fta_linebuf );\r
865     for(i=0;i<flex_fta_ch;i++){\r
866                 if(flex_fta_linebuf[i] == '\t'){\r
867                         fprintf(stderr,"\t");\r
868                 }else{\r
869                         fprintf(stderr," ");\r
870                 }\r
871         }\r
872         fprintf(stderr,"^\n");\r
873         //      fprintf(stderr,"%*s\n",1+flex_fta_ch,"^");\r
874 }\r
875 \r
876 #undef YY_INPUT\r
877 #define YY_INPUT(b, r, ms) (r = my_FtaParser_yyinput(b,ms))\r
878 \r
879 /* MKS needs the next line to increase the NFA table */\r
880 #line 881 "ftalexer.cc"\r
881 \r
882 /* Macros after this point can all be overridden by user definitions in\r
883  * section 1.\r
884  */\r
885 \r
886 #ifndef YY_SKIP_YYWRAP\r
887 #ifdef __cplusplus\r
888 extern "C" int yywrap YY_PROTO(( void ));\r
889 #else\r
890 extern int yywrap YY_PROTO(( void ));\r
891 #endif\r
892 #endif\r
893 \r
894 #ifndef YY_NO_UNPUT\r
895 static void yyunput YY_PROTO(( int c, char *buf_ptr ));\r
896 #endif\r
897 \r
898 #ifndef yytext_ptr\r
899 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));\r
900 #endif\r
901 \r
902 #ifdef YY_NEED_STRLEN\r
903 static int yy_flex_strlen YY_PROTO(( yyconst char * ));\r
904 #endif\r
905 \r
906 #ifndef YY_NO_INPUT\r
907 #ifdef __cplusplus\r
908 static int yyinput YY_PROTO(( void ));\r
909 #else\r
910 static int input YY_PROTO(( void ));\r
911 #endif\r
912 #endif\r
913 \r
914 #if YY_STACK_USED\r
915 static int yy_start_stack_ptr = 0;\r
916 static int yy_start_stack_depth = 0;\r
917 static int *yy_start_stack = 0;\r
918 #ifndef YY_NO_PUSH_STATE\r
919 static void yy_push_state YY_PROTO(( int new_state ));\r
920 #endif\r
921 #ifndef YY_NO_POP_STATE\r
922 static void yy_pop_state YY_PROTO(( void ));\r
923 #endif\r
924 #ifndef YY_NO_TOP_STATE\r
925 static int yy_top_state YY_PROTO(( void ));\r
926 #endif\r
927 \r
928 #else\r
929 #define YY_NO_PUSH_STATE 1\r
930 #define YY_NO_POP_STATE 1\r
931 #define YY_NO_TOP_STATE 1\r
932 #endif\r
933 \r
934 #ifdef YY_MALLOC_DECL\r
935 YY_MALLOC_DECL\r
936 #else\r
937 #if __STDC__\r
938 #ifndef __cplusplus\r
939 #include <stdlib.h>\r
940 #endif\r
941 #else\r
942 /* Just try to get by without declaring the routines.  This will fail\r
943  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)\r
944  * or sizeof(void*) != sizeof(int).\r
945  */\r
946 #endif\r
947 #endif\r
948 \r
949 /* Amount of stuff to slurp up with each read. */\r
950 #ifndef YY_READ_BUF_SIZE\r
951 #define YY_READ_BUF_SIZE 8192\r
952 #endif\r
953 \r
954 /* Copy whatever the last rule matched to the standard output. */\r
955 \r
956 #ifndef ECHO\r
957 /* This used to be an fputs(), but since the string might contain NUL's,\r
958  * we now use fwrite().\r
959  */\r
960 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )\r
961 #endif\r
962 \r
963 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,\r
964  * is returned in "result".\r
965  */\r
966 #ifndef YY_INPUT\r
967 #define YY_INPUT(buf,result,max_size) \\r
968         if ( yy_current_buffer->yy_is_interactive ) \\r
969                 { \\r
970                 int c = '*', n; \\r
971                 for ( n = 0; n < max_size && \\r
972                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \\r
973                         buf[n] = (char) c; \\r
974                 if ( c == '\n' ) \\r
975                         buf[n++] = (char) c; \\r
976                 if ( c == EOF && ferror( yyin ) ) \\r
977                         YY_FATAL_ERROR( "input in flex scanner failed" ); \\r
978                 result = n; \\r
979                 } \\r
980         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \\r
981                   && ferror( yyin ) ) \\r
982                 YY_FATAL_ERROR( "input in flex scanner failed" );\r
983 #endif\r
984 \r
985 /* No semi-colon after return; correct usage is to write "yyterminate();" -\r
986  * we don't want an extra ';' after the "return" because that will cause\r
987  * some compilers to complain about unreachable statements.\r
988  */\r
989 #ifndef yyterminate\r
990 #define yyterminate() return YY_NULL\r
991 #endif\r
992 \r
993 /* Number of entries by which start-condition stack grows. */\r
994 #ifndef YY_START_STACK_INCR\r
995 #define YY_START_STACK_INCR 25\r
996 #endif\r
997 \r
998 /* Report a fatal error. */\r
999 #ifndef YY_FATAL_ERROR\r
1000 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )\r
1001 #endif\r
1002 \r
1003 /* Default declaration of generated scanner - a define so the user can\r
1004  * easily add parameters.\r
1005  */\r
1006 #ifndef YY_DECL\r
1007 #define YY_DECL int yylex YY_PROTO(( void ))\r
1008 #endif\r
1009 \r
1010 /* Code executed at the beginning of each rule, after yytext and yyleng\r
1011  * have been set up.\r
1012  */\r
1013 #ifndef YY_USER_ACTION\r
1014 #define YY_USER_ACTION\r
1015 #endif\r
1016 \r
1017 /* Code executed at the end of each rule. */\r
1018 #ifndef YY_BREAK\r
1019 #define YY_BREAK break;\r
1020 #endif\r
1021 \r
1022 #define YY_RULE_SETUP \\r
1023         YY_USER_ACTION\r
1024 \r
1025 YY_DECL\r
1026         {\r
1027         register yy_state_type yy_current_state;\r
1028         register char *yy_cp = NULL, *yy_bp = NULL;\r
1029         register int yy_act;\r
1030 \r
1031 #line 89 "fta.l"\r
1032 \r
1033 \r
1034         /* literal keyword tokens */\r
1035 \r
1036  /*\r
1037                         The actions associated with each text token are to\r
1038                         keep track of the current location (for syntax error reporting)\r
1039                         and to report any necessary info to the emf.y parse tree builder\r
1040 \r
1041                         Its likely that there are a number of omissions, inconsistencies\r
1042                         (some keywords do not need to be in caps), and relics\r
1043                         (keywords such as BETWEEN, INDICATOR, etc., are not used\r
1044                          in emf.y)\r
1045                         This parser is somewhat of a work in progress.\r
1046  */\r
1047 \r
1048  /*             Query keywords          */\r
1049 \r
1050 #line 1051 "ftalexer.cc"\r
1051 \r
1052         if ( yy_init )\r
1053                 {\r
1054                 yy_init = 0;\r
1055 \r
1056 #ifdef YY_USER_INIT\r
1057                 YY_USER_INIT;\r
1058 #endif\r
1059 \r
1060                 if ( ! yy_start )\r
1061                         yy_start = 1;   /* first start state */\r
1062 \r
1063                 if ( ! yyin )\r
1064                         yyin = stdin;\r
1065 \r
1066                 if ( ! yyout )\r
1067                         yyout = stdout;\r
1068 \r
1069                 if ( ! yy_current_buffer )\r
1070                         yy_current_buffer =\r
1071                                 yy_create_buffer( yyin, YY_BUF_SIZE );\r
1072 \r
1073                 yy_load_buffer_state();\r
1074                 }\r
1075 \r
1076         while ( 1 )             /* loops until end-of-file is reached */\r
1077                 {\r
1078                 yy_more_len = 0;\r
1079                 if ( yy_more_flag )\r
1080                         {\r
1081                         yy_more_len = yy_c_buf_p - yytext_ptr;\r
1082                         yy_more_flag = 0;\r
1083                         }\r
1084                 yy_cp = yy_c_buf_p;\r
1085 \r
1086                 /* Support of yytext. */\r
1087                 *yy_cp = yy_hold_char;\r
1088 \r
1089                 /* yy_bp points to the position in yy_ch_buf of the start of\r
1090                  * the current run.\r
1091                  */\r
1092                 yy_bp = yy_cp;\r
1093 \r
1094                 yy_current_state = yy_start;\r
1095 yy_match:\r
1096                 do\r
1097                         {\r
1098                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];\r
1099                         if ( yy_accept[yy_current_state] )\r
1100                                 {\r
1101                                 yy_last_accepting_state = yy_current_state;\r
1102                                 yy_last_accepting_cpos = yy_cp;\r
1103                                 }\r
1104                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )\r
1105                                 {\r
1106                                 yy_current_state = (int) yy_def[yy_current_state];\r
1107                                 if ( yy_current_state >= 655 )\r
1108                                         yy_c = yy_meta[(unsigned int) yy_c];\r
1109                                 }\r
1110                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];\r
1111                         ++yy_cp;\r
1112                         }\r
1113                 while ( yy_base[yy_current_state] != 778 );\r
1114 \r
1115 yy_find_action:\r
1116                 yy_act = yy_accept[yy_current_state];\r
1117                 if ( yy_act == 0 )\r
1118                         { /* have to back up */\r
1119                         yy_cp = yy_last_accepting_cpos;\r
1120                         yy_current_state = yy_last_accepting_state;\r
1121                         yy_act = yy_accept[yy_current_state];\r
1122                         }\r
1123 \r
1124                 YY_DO_BEFORE_ACTION;\r
1125 \r
1126 \r
1127 do_action:      /* This label is used only to access EOF actions. */\r
1128 \r
1129 \r
1130                 switch ( yy_act )\r
1131         { /* beginning of action switch */\r
1132                         case 0: /* must back up */\r
1133                         /* undo the effects of YY_DO_BEFORE_ACTION */\r
1134                         *yy_cp = yy_hold_char;\r
1135                         yy_cp = yy_last_accepting_cpos;\r
1136                         yy_current_state = yy_last_accepting_state;\r
1137                         goto yy_find_action;\r
1138 \r
1139 case 1:\r
1140 YY_RULE_SETUP\r
1141 #line 107 "fta.l"\r
1142 { flex_fta_ch+=FtaParserleng; return AND; }\r
1143         YY_BREAK\r
1144 case 2:\r
1145 YY_RULE_SETUP\r
1146 #line 108 "fta.l"\r
1147 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("AND_AGGR"); return AGGR; }\r
1148         YY_BREAK\r
1149 case 3:\r
1150 YY_RULE_SETUP\r
1151 #line 109 "fta.l"\r
1152 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("OR_AGGR"); return AGGR; }\r
1153         YY_BREAK\r
1154 case 4:\r
1155 YY_RULE_SETUP\r
1156 #line 110 "fta.l"\r
1157 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("XOR_AGGR"); return AGGR; }\r
1158         YY_BREAK\r
1159 case 5:\r
1160 YY_RULE_SETUP\r
1161 #line 111 "fta.l"\r
1162 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("AVG"); return AGGR; }\r
1163         YY_BREAK\r
1164 case 6:\r
1165 YY_RULE_SETUP\r
1166 #line 112 "fta.l"\r
1167 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("MIN"); return AGGR; }\r
1168         YY_BREAK\r
1169 case 7:\r
1170 YY_RULE_SETUP\r
1171 #line 113 "fta.l"\r
1172 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("MAX"); return AGGR; }\r
1173         YY_BREAK\r
1174 case 8:\r
1175 YY_RULE_SETUP\r
1176 #line 114 "fta.l"\r
1177 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("SUM"); return AGGR; }\r
1178         YY_BREAK\r
1179 case 9:\r
1180 YY_RULE_SETUP\r
1181 #line 115 "fta.l"\r
1182 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup("COUNT"); return AGGR; }\r
1183         YY_BREAK\r
1184 case 10:\r
1185 YY_RULE_SETUP\r
1186 #line 116 "fta.l"\r
1187 { flex_fta_ch+=FtaParserleng; return BY; }\r
1188         YY_BREAK\r
1189 case 11:\r
1190 YY_RULE_SETUP\r
1191 #line 117 "fta.l"\r
1192 { flex_fta_ch+=FtaParserleng; return FROM; }\r
1193         YY_BREAK\r
1194 case 12:\r
1195 YY_RULE_SETUP\r
1196 #line 118 "fta.l"\r
1197 { flex_fta_ch+=FtaParserleng; return INNER_JOIN; }\r
1198         YY_BREAK\r
1199 case 13:\r
1200 YY_RULE_SETUP\r
1201 #line 119 "fta.l"\r
1202 { flex_fta_ch+=FtaParserleng; return OUTER_JOIN; }\r
1203         YY_BREAK\r
1204 case 14:\r
1205 YY_RULE_SETUP\r
1206 #line 120 "fta.l"\r
1207 { flex_fta_ch+=FtaParserleng; return RIGHT_OUTER_JOIN; }\r
1208         YY_BREAK\r
1209 case 15:\r
1210 YY_RULE_SETUP\r
1211 #line 121 "fta.l"\r
1212 { flex_fta_ch+=FtaParserleng; return LEFT_OUTER_JOIN; }\r
1213         YY_BREAK\r
1214 case 16:\r
1215 YY_RULE_SETUP\r
1216 #line 122 "fta.l"\r
1217 { flex_fta_ch+=FtaParserleng; return FILTER_JOIN; }\r
1218         YY_BREAK\r
1219 case 17:\r
1220 YY_RULE_SETUP\r
1221 #line 123 "fta.l"\r
1222 { flex_fta_ch+=FtaParserleng; return GROUP; }\r
1223         YY_BREAK\r
1224 case 18:\r
1225 YY_RULE_SETUP\r
1226 #line 124 "fta.l"\r
1227 { flex_fta_ch+=FtaParserleng; return ROLLUP; }\r
1228         YY_BREAK\r
1229 case 19:\r
1230 YY_RULE_SETUP\r
1231 #line 125 "fta.l"\r
1232 { flex_fta_ch+=FtaParserleng; return CUBE; }\r
1233         YY_BREAK\r
1234 case 20:\r
1235 YY_RULE_SETUP\r
1236 #line 126 "fta.l"\r
1237 { flex_fta_ch+=FtaParserleng; return GROUPING_SETS; }\r
1238         YY_BREAK\r
1239 case 21:\r
1240 YY_RULE_SETUP\r
1241 #line 127 "fta.l"\r
1242 { flex_fta_ch+=FtaParserleng; return SUPERGROUP; }\r
1243         YY_BREAK\r
1244 case 22:\r
1245 YY_RULE_SETUP\r
1246 #line 128 "fta.l"\r
1247 { flex_fta_ch+=FtaParserleng; return CLEANING_WHEN; }\r
1248         YY_BREAK\r
1249 case 23:\r
1250 YY_RULE_SETUP\r
1251 #line 129 "fta.l"\r
1252 { flex_fta_ch+=FtaParserleng; return CLEANING_BY; }\r
1253         YY_BREAK\r
1254 case 24:\r
1255 YY_RULE_SETUP\r
1256 #line 130 "fta.l"\r
1257 { flex_fta_ch+=FtaParserleng; return CLOSING_WHEN; }\r
1258         YY_BREAK\r
1259 case 25:\r
1260 YY_RULE_SETUP\r
1261 #line 131 "fta.l"\r
1262 { flex_fta_ch+=FtaParserleng; return HAVING; }\r
1263         YY_BREAK\r
1264 case 26:\r
1265 YY_RULE_SETUP\r
1266 #line 132 "fta.l"\r
1267 { flex_fta_ch+=FtaParserleng; return AS; }\r
1268         YY_BREAK\r
1269 case 27:\r
1270 YY_RULE_SETUP\r
1271 #line 133 "fta.l"\r
1272 { flex_fta_ch+=FtaParserleng; return IN; }\r
1273         YY_BREAK\r
1274 case 28:\r
1275 YY_RULE_SETUP\r
1276 #line 134 "fta.l"\r
1277 { flex_fta_ch+=FtaParserleng; return NOT; }\r
1278         YY_BREAK\r
1279 case 29:\r
1280 YY_RULE_SETUP\r
1281 #line 135 "fta.l"\r
1282 { flex_fta_ch+=FtaParserleng; return OR; }\r
1283         YY_BREAK\r
1284 case 30:\r
1285 YY_RULE_SETUP\r
1286 #line 137 "fta.l"\r
1287 { flex_fta_ch+=FtaParserleng; return SELECT; }\r
1288         YY_BREAK\r
1289 case 31:\r
1290 YY_RULE_SETUP\r
1291 #line 138 "fta.l"\r
1292 { flex_fta_ch+=FtaParserleng; return WHERE; }\r
1293         YY_BREAK\r
1294 case 32:\r
1295 YY_RULE_SETUP\r
1296 #line 139 "fta.l"\r
1297 { flex_fta_ch+=FtaParserleng; return SUCH;}\r
1298         YY_BREAK\r
1299 case 33:\r
1300 YY_RULE_SETUP\r
1301 #line 140 "fta.l"\r
1302 { flex_fta_ch+=FtaParserleng; return THAT;}\r
1303         YY_BREAK\r
1304 case 34:\r
1305 YY_RULE_SETUP\r
1306 #line 141 "fta.l"\r
1307 {flex_fta_ch+=FtaParserleng; return MERGE;}\r
1308         YY_BREAK\r
1309 case 35:\r
1310 YY_RULE_SETUP\r
1311 #line 142 "fta.l"\r
1312 {flex_fta_ch+=FtaParserleng; return SLACK;}\r
1313         YY_BREAK\r
1314 case 36:\r
1315 YY_RULE_SETUP\r
1316 #line 144 "fta.l"\r
1317 { flex_fta_ch+=FtaParserleng; return TRUE_V;}\r
1318         YY_BREAK\r
1319 case 37:\r
1320 YY_RULE_SETUP\r
1321 #line 145 "fta.l"\r
1322 { flex_fta_ch+=FtaParserleng; return FALSE_V;}\r
1323         YY_BREAK\r
1324 case 38:\r
1325 YY_RULE_SETUP\r
1326 #line 146 "fta.l"\r
1327 { flex_fta_ch+=FtaParserleng; return TIMEVAL_L;}\r
1328         YY_BREAK\r
1329 case 39:\r
1330 YY_RULE_SETUP\r
1331 #line 147 "fta.l"\r
1332 { flex_fta_ch+=FtaParserleng; return HEX_L;}\r
1333         YY_BREAK\r
1334 case 40:\r
1335 YY_RULE_SETUP\r
1336 #line 148 "fta.l"\r
1337 { flex_fta_ch+=FtaParserleng; return LHEX_L;}\r
1338         YY_BREAK\r
1339 case 41:\r
1340 YY_RULE_SETUP\r
1341 #line 149 "fta.l"\r
1342 { flex_fta_ch+=FtaParserleng; return IP_L;}\r
1343         YY_BREAK\r
1344 case 42:\r
1345 YY_RULE_SETUP\r
1346 #line 150 "fta.l"\r
1347 { flex_fta_ch+=FtaParserleng; return IPV6_L;}\r
1348         YY_BREAK\r
1349 case 43:\r
1350 YY_RULE_SETUP\r
1351 #line 152 "fta.l"\r
1352 { flex_fta_ch+=FtaParserleng; return DEFINE_SEC;}\r
1353         YY_BREAK\r
1354 case 44:\r
1355 YY_RULE_SETUP\r
1356 #line 153 "fta.l"\r
1357 { flex_fta_ch+=FtaParserleng; return PARAM_SEC;}\r
1358         YY_BREAK\r
1359 case 45:\r
1360 YY_RULE_SETUP\r
1361 #line 155 "fta.l"\r
1362 {flex_fta_ch+=FtaParserleng; return LEFTBRACE;}\r
1363         YY_BREAK\r
1364 case 46:\r
1365 YY_RULE_SETUP\r
1366 #line 156 "fta.l"\r
1367 {flex_fta_ch+=FtaParserleng; return RIGHTBRACE;}\r
1368         YY_BREAK\r
1369 /*\r
1370                 Table definition keywords\r
1371  */             \r
1372 case 47:\r
1373 YY_RULE_SETUP\r
1374 #line 161 "fta.l"\r
1375 { flex_fta_ch+=FtaParserleng; return TABLE; }\r
1376         YY_BREAK\r
1377 case 48:\r
1378 YY_RULE_SETUP\r
1379 #line 162 "fta.l"\r
1380 { flex_fta_ch+=FtaParserleng; return PROTOCOL; }\r
1381         YY_BREAK\r
1382 case 49:\r
1383 YY_RULE_SETUP\r
1384 #line 163 "fta.l"\r
1385 { flex_fta_ch+=FtaParserleng; return STREAM; }\r
1386         YY_BREAK\r
1387 case 50:\r
1388 YY_RULE_SETUP\r
1389 #line 164 "fta.l"\r
1390 { flex_fta_ch+=FtaParserleng; return FTA; }\r
1391         YY_BREAK\r
1392 case 51:\r
1393 YY_RULE_SETUP\r
1394 #line 165 "fta.l"\r
1395 { flex_fta_ch+=FtaParserleng; return UNPACK_FCNS; }\r
1396         YY_BREAK\r
1397 case 52:\r
1398 YY_RULE_SETUP\r
1399 #line 167 "fta.l"\r
1400 { flex_fta_ch+=FtaParserleng; return OPERATOR; }\r
1401         YY_BREAK\r
1402 case 53:\r
1403 YY_RULE_SETUP\r
1404 #line 168 "fta.l"\r
1405 { flex_fta_ch+=FtaParserleng; return OPERATOR_VIEW; }\r
1406         YY_BREAK\r
1407 case 54:\r
1408 YY_RULE_SETUP\r
1409 #line 169 "fta.l"\r
1410 { flex_fta_ch+=FtaParserleng; return FIELDS; }\r
1411         YY_BREAK\r
1412 case 55:\r
1413 YY_RULE_SETUP\r
1414 #line 170 "fta.l"\r
1415 { flex_fta_ch+=FtaParserleng; return SUBQUERIES; }\r
1416         YY_BREAK\r
1417 case 56:\r
1418 YY_RULE_SETUP\r
1419 #line 171 "fta.l"\r
1420 { flex_fta_ch+=FtaParserleng; return SELECTION_PUSHDOWN; }\r
1421         YY_BREAK\r
1422 case 57:\r
1423 YY_RULE_SETUP\r
1424 #line 172 "fta.l"\r
1425 {flex_fta_ch+=FtaParserleng; return SEMICOLON;}\r
1426         YY_BREAK\r
1427 /* punctuation */\r
1428 case 58:\r
1429 #line 177 "fta.l"\r
1430 case 59:\r
1431 YY_RULE_SETUP\r
1432 #line 177 "fta.l"\r
1433 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext); return SHIFT_OP; }\r
1434         YY_BREAK\r
1435 case 60:\r
1436 #line 180 "fta.l"\r
1437 case 61:\r
1438 #line 181 "fta.l"\r
1439 case 62:\r
1440 #line 182 "fta.l"\r
1441 case 63:\r
1442 #line 183 "fta.l"\r
1443 case 64:\r
1444 #line 184 "fta.l"\r
1445 case 65:\r
1446 YY_RULE_SETUP\r
1447 #line 184 "fta.l"\r
1448 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext); return COMPARISON; }\r
1449         YY_BREAK\r
1450 case 66:\r
1451 YY_RULE_SETUP\r
1452 #line 186 "fta.l"\r
1453 { flex_fta_ch+=FtaParserleng; return yytext[0]; }\r
1454         YY_BREAK\r
1455 case 67:\r
1456 YY_RULE_SETUP\r
1457 #line 187 "fta.l"\r
1458 { flex_fta_ch+=FtaParserleng; return yytext[0]; }\r
1459         YY_BREAK\r
1460 case 68:\r
1461 YY_RULE_SETUP\r
1462 #line 188 "fta.l"\r
1463 { flex_fta_ch+=FtaParserleng; return yytext[0]; }\r
1464         YY_BREAK\r
1465 /* names */\r
1466 case 69:\r
1467 YY_RULE_SETUP\r
1468 #line 192 "fta.l"\r
1469 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext); return NAME; }\r
1470         YY_BREAK\r
1471 /* numbers */\r
1472 case 70:\r
1473 #line 197 "fta.l"\r
1474 case 71:\r
1475 YY_RULE_SETUP\r
1476 #line 197 "fta.l"\r
1477 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext);  return INTNUM; }\r
1478         YY_BREAK\r
1479 case 72:\r
1480 YY_RULE_SETUP\r
1481 #line 199 "fta.l"\r
1482 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext);  return LONGINTNUM; }\r
1483         YY_BREAK\r
1484 case 73:\r
1485 #line 202 "fta.l"\r
1486 case 74:\r
1487 #line 203 "fta.l"\r
1488 case 75:\r
1489 #line 204 "fta.l"\r
1490 case 76:\r
1491 #line 205 "fta.l"\r
1492 case 77:\r
1493 YY_RULE_SETUP\r
1494 #line 205 "fta.l"\r
1495 { flex_fta_ch+=FtaParserleng; FtaParserlval.strval = strdup(yytext); return APPROXNUM; }\r
1496         YY_BREAK\r
1497 /* strings */\r
1498 case 78:\r
1499 YY_RULE_SETUP\r
1500 #line 209 "fta.l"\r
1501 {\r
1502                 \r
1503                 int c;\r
1504                 \r
1505                 FtaParserlval.strval = strdup(FtaParsertext+1); \r
1506 \r
1507                 c = yyinput();\r
1508 \r
1509                 unput(c);       /* just peeking */\r
1510                 if(c != '\'') {\r
1511                         flex_fta_ch+=FtaParserleng; \r
1512                         FtaParserlval.strval[FtaParserleng-2] = '\0';\r
1513                         return STRING_TOKEN;\r
1514                 } else\r
1515                         yymore();\r
1516         }\r
1517         YY_BREAK\r
1518 case 79:\r
1519 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */\r
1520 yy_c_buf_p = yy_cp -= 1;\r
1521 YY_DO_BEFORE_ACTION; /* set up yytext again */\r
1522 YY_RULE_SETUP\r
1523 #line 226 "fta.l"\r
1524 { flex_fta_ch+=FtaParserleng; FtaParsererror("Unterminated string"); }\r
1525         YY_BREAK\r
1526 /*                                                                                                                      */\r
1527 /*              Newline : advance the error reporting line number       */\r
1528 /*              and grab the next line into flex_fta_linebuf                    */\r
1529 /*                                                                                                                      */\r
1530 case 80:\r
1531 YY_RULE_SETUP\r
1532 #line 233 "fta.l"\r
1533 {flex_fta_ch=0; flex_fta_lineno++;\r
1534                            strcpy(flex_fta_linebuf,FtaParsertext+1);\r
1535                            yyless(1);\r
1536                            }\r
1537         YY_BREAK\r
1538 case 81:\r
1539 YY_RULE_SETUP\r
1540 #line 238 "fta.l"\r
1541 {flex_fta_ch+=FtaParserleng; }  /* white space */\r
1542         YY_BREAK\r
1543 case 82:\r
1544 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */\r
1545 yy_c_buf_p = yy_cp -= 1;\r
1546 YY_DO_BEFORE_ACTION; /* set up yytext again */\r
1547 YY_RULE_SETUP\r
1548 #line 240 "fta.l"\r
1549 {flex_fta_ch+=FtaParserleng; }; /* comment */\r
1550         YY_BREAK\r
1551 case 83:\r
1552 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */\r
1553 yy_c_buf_p = yy_cp -= 1;\r
1554 YY_DO_BEFORE_ACTION; /* set up yytext again */\r
1555 YY_RULE_SETUP\r
1556 #line 241 "fta.l"\r
1557 {flex_fta_ch+=FtaParserleng; }; /* comment */\r
1558         YY_BREAK\r
1559 case 84:\r
1560 YY_RULE_SETUP\r
1561 #line 243 "fta.l"\r
1562 {flex_fta_ch+=FtaParserleng; fprintf(stderr,"Warning: unknown token (ignored)\n");  FtaParsererror(yytext);}\r
1563         YY_BREAK\r
1564 case 85:\r
1565 YY_RULE_SETUP\r
1566 #line 245 "fta.l"\r
1567 ECHO;\r
1568         YY_BREAK\r
1569 #line 1570 "ftalexer.cc"\r
1570 case YY_STATE_EOF(INITIAL):\r
1571         yyterminate();\r
1572 \r
1573         case YY_END_OF_BUFFER:\r
1574                 {\r
1575                 /* Amount of text matched not including the EOB char. */\r
1576                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;\r
1577 \r
1578                 /* Undo the effects of YY_DO_BEFORE_ACTION. */\r
1579                 *yy_cp = yy_hold_char;\r
1580                 YY_RESTORE_YY_MORE_OFFSET\r
1581 \r
1582                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )\r
1583                         {\r
1584                         /* We're scanning a new file or input source.  It's\r
1585                          * possible that this happened because the user\r
1586                          * just pointed yyin at a new source and called\r
1587                          * yylex().  If so, then we have to assure\r
1588                          * consistency between yy_current_buffer and our\r
1589                          * globals.  Here is the right place to do so, because\r
1590                          * this is the first action (other than possibly a\r
1591                          * back-up) that will match for the new input source.\r
1592                          */\r
1593                         yy_n_chars = yy_current_buffer->yy_n_chars;\r
1594                         yy_current_buffer->yy_input_file = yyin;\r
1595                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;\r
1596                         }\r
1597 \r
1598                 /* Note that here we test for yy_c_buf_p "<=" to the position\r
1599                  * of the first EOB in the buffer, since yy_c_buf_p will\r
1600                  * already have been incremented past the NUL character\r
1601                  * (since all states make transitions on EOB to the\r
1602                  * end-of-buffer state).  Contrast this with the test\r
1603                  * in input().\r
1604                  */\r
1605                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )\r
1606                         { /* This was really a NUL. */\r
1607                         yy_state_type yy_next_state;\r
1608 \r
1609                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;\r
1610 \r
1611                         yy_current_state = yy_get_previous_state();\r
1612 \r
1613                         /* Okay, we're now positioned to make the NUL\r
1614                          * transition.  We couldn't have\r
1615                          * yy_get_previous_state() go ahead and do it\r
1616                          * for us because it doesn't know how to deal\r
1617                          * with the possibility of jamming (and we don't\r
1618                          * want to build jamming into it because then it\r
1619                          * will run more slowly).\r
1620                          */\r
1621 \r
1622                         yy_next_state = yy_try_NUL_trans( yy_current_state );\r
1623 \r
1624                         yy_bp = yytext_ptr + YY_MORE_ADJ;\r
1625 \r
1626                         if ( yy_next_state )\r
1627                                 {\r
1628                                 /* Consume the NUL. */\r
1629                                 yy_cp = ++yy_c_buf_p;\r
1630                                 yy_current_state = yy_next_state;\r
1631                                 goto yy_match;\r
1632                                 }\r
1633 \r
1634                         else\r
1635                                 {\r
1636                                 yy_cp = yy_c_buf_p;\r
1637                                 goto yy_find_action;\r
1638                                 }\r
1639                         }\r
1640 \r
1641                 else switch ( yy_get_next_buffer() )\r
1642                         {\r
1643                         case EOB_ACT_END_OF_FILE:\r
1644                                 {\r
1645                                 yy_did_buffer_switch_on_eof = 0;\r
1646 \r
1647                                 if ( yywrap() )\r
1648                                         {\r
1649                                         /* Note: because we've taken care in\r
1650                                          * yy_get_next_buffer() to have set up\r
1651                                          * yytext, we can now set up\r
1652                                          * yy_c_buf_p so that if some total\r
1653                                          * hoser (like flex itself) wants to\r
1654                                          * call the scanner after we return the\r
1655                                          * YY_NULL, it'll still work - another\r
1656                                          * YY_NULL will get returned.\r
1657                                          */\r
1658                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;\r
1659 \r
1660                                         yy_act = YY_STATE_EOF(YY_START);\r
1661                                         goto do_action;\r
1662                                         }\r
1663 \r
1664                                 else\r
1665                                         {\r
1666                                         if ( ! yy_did_buffer_switch_on_eof )\r
1667                                                 YY_NEW_FILE;\r
1668                                         }\r
1669                                 break;\r
1670                                 }\r
1671 \r
1672                         case EOB_ACT_CONTINUE_SCAN:\r
1673                                 yy_c_buf_p =\r
1674                                         yytext_ptr + yy_amount_of_matched_text;\r
1675 \r
1676                                 yy_current_state = yy_get_previous_state();\r
1677 \r
1678                                 yy_cp = yy_c_buf_p;\r
1679                                 yy_bp = yytext_ptr + YY_MORE_ADJ;\r
1680                                 goto yy_match;\r
1681 \r
1682                         case EOB_ACT_LAST_MATCH:\r
1683                                 yy_c_buf_p =\r
1684                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];\r
1685 \r
1686                                 yy_current_state = yy_get_previous_state();\r
1687 \r
1688                                 yy_cp = yy_c_buf_p;\r
1689                                 yy_bp = yytext_ptr + YY_MORE_ADJ;\r
1690                                 goto yy_find_action;\r
1691                         }\r
1692                 break;\r
1693                 }\r
1694 \r
1695         default:\r
1696                 YY_FATAL_ERROR(\r
1697                         "fatal flex scanner internal error--no action found" );\r
1698         } /* end of action switch */\r
1699                 } /* end of scanning one token */\r
1700         } /* end of yylex */\r
1701 \r
1702 \r
1703 /* yy_get_next_buffer - try to read in a new buffer\r
1704  *\r
1705  * Returns a code representing an action:\r
1706  *      EOB_ACT_LAST_MATCH -\r
1707  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position\r
1708  *      EOB_ACT_END_OF_FILE - end of file\r
1709  */\r
1710 \r
1711 static int yy_get_next_buffer()\r
1712         {\r
1713         register char *dest = yy_current_buffer->yy_ch_buf;\r
1714         register char *source = yytext_ptr;\r
1715         register int number_to_move, i;\r
1716         int ret_val;\r
1717 \r
1718         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )\r
1719                 YY_FATAL_ERROR(\r
1720                 "fatal flex scanner internal error--end of buffer missed" );\r
1721 \r
1722         if ( yy_current_buffer->yy_fill_buffer == 0 )\r
1723                 { /* Don't try to fill the buffer, so this is an EOF. */\r
1724                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )\r
1725                         {\r
1726                         /* We matched a single character, the EOB, so\r
1727                          * treat this as a final EOF.\r
1728                          */\r
1729                         return EOB_ACT_END_OF_FILE;\r
1730                         }\r
1731 \r
1732                 else\r
1733                         {\r
1734                         /* We matched some text prior to the EOB, first\r
1735                          * process it.\r
1736                          */\r
1737                         return EOB_ACT_LAST_MATCH;\r
1738                         }\r
1739                 }\r
1740 \r
1741         /* Try to read more data. */\r
1742 \r
1743         /* First move last chars to start of buffer. */\r
1744         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;\r
1745 \r
1746         for ( i = 0; i < number_to_move; ++i )\r
1747                 *(dest++) = *(source++);\r
1748 \r
1749         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )\r
1750                 /* don't do the read, it's not guaranteed to return an EOF,\r
1751                  * just force an EOF\r
1752                  */\r
1753                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;\r
1754 \r
1755         else\r
1756                 {\r
1757                 int num_to_read =\r
1758                         yy_current_buffer->yy_buf_size - number_to_move - 1;\r
1759 \r
1760                 while ( num_to_read <= 0 )\r
1761                         { /* Not enough room in the buffer - grow it. */\r
1762 #ifdef YY_USES_REJECT\r
1763                         YY_FATAL_ERROR(\r
1764 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );\r
1765 #else\r
1766 \r
1767                         /* just a shorter name for the current buffer */\r
1768                         YY_BUFFER_STATE b = yy_current_buffer;\r
1769 \r
1770                         int yy_c_buf_p_offset =\r
1771                                 (int) (yy_c_buf_p - b->yy_ch_buf);\r
1772 \r
1773                         if ( b->yy_is_our_buffer )\r
1774                                 {\r
1775                                 int new_size = b->yy_buf_size * 2;\r
1776 \r
1777                                 if ( new_size <= 0 )\r
1778                                         b->yy_buf_size += b->yy_buf_size / 8;\r
1779                                 else\r
1780                                         b->yy_buf_size *= 2;\r
1781 \r
1782                                 b->yy_ch_buf = (char *)\r
1783                                         /* Include room in for 2 EOB chars. */\r
1784                                         yy_flex_realloc( (void *) b->yy_ch_buf,\r
1785                                                          b->yy_buf_size + 2 );\r
1786                                 }\r
1787                         else\r
1788                                 /* Can't grow it, we don't own it. */\r
1789                                 b->yy_ch_buf = 0;\r
1790 \r
1791                         if ( ! b->yy_ch_buf )\r
1792                                 YY_FATAL_ERROR(\r
1793                                 "fatal error - scanner input buffer overflow" );\r
1794 \r
1795                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];\r
1796 \r
1797                         num_to_read = yy_current_buffer->yy_buf_size -\r
1798                                                 number_to_move - 1;\r
1799 #endif\r
1800                         }\r
1801 \r
1802                 if ( num_to_read > YY_READ_BUF_SIZE )\r
1803                         num_to_read = YY_READ_BUF_SIZE;\r
1804 \r
1805                 /* Read in more data. */\r
1806                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),\r
1807                         yy_n_chars, num_to_read );\r
1808 \r
1809                 yy_current_buffer->yy_n_chars = yy_n_chars;\r
1810                 }\r
1811 \r
1812         if ( yy_n_chars == 0 )\r
1813                 {\r
1814                 if ( number_to_move == YY_MORE_ADJ )\r
1815                         {\r
1816                         ret_val = EOB_ACT_END_OF_FILE;\r
1817                         yyrestart( yyin );\r
1818                         }\r
1819 \r
1820                 else\r
1821                         {\r
1822                         ret_val = EOB_ACT_LAST_MATCH;\r
1823                         yy_current_buffer->yy_buffer_status =\r
1824                                 YY_BUFFER_EOF_PENDING;\r
1825                         }\r
1826                 }\r
1827 \r
1828         else\r
1829                 ret_val = EOB_ACT_CONTINUE_SCAN;\r
1830 \r
1831         yy_n_chars += number_to_move;\r
1832         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;\r
1833         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;\r
1834 \r
1835         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];\r
1836 \r
1837         return ret_val;\r
1838         }\r
1839 \r
1840 \r
1841 /* yy_get_previous_state - get the state just before the EOB char was reached */\r
1842 \r
1843 static yy_state_type yy_get_previous_state()\r
1844         {\r
1845         register yy_state_type yy_current_state;\r
1846         register char *yy_cp;\r
1847 \r
1848         yy_current_state = yy_start;\r
1849 \r
1850         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )\r
1851                 {\r
1852                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);\r
1853                 if ( yy_accept[yy_current_state] )\r
1854                         {\r
1855                         yy_last_accepting_state = yy_current_state;\r
1856                         yy_last_accepting_cpos = yy_cp;\r
1857                         }\r
1858                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )\r
1859                         {\r
1860                         yy_current_state = (int) yy_def[yy_current_state];\r
1861                         if ( yy_current_state >= 655 )\r
1862                                 yy_c = yy_meta[(unsigned int) yy_c];\r
1863                         }\r
1864                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];\r
1865                 }\r
1866 \r
1867         return yy_current_state;\r
1868         }\r
1869 \r
1870 \r
1871 /* yy_try_NUL_trans - try to make a transition on the NUL character\r
1872  *\r
1873  * synopsis\r
1874  *      next_state = yy_try_NUL_trans( current_state );\r
1875  */\r
1876 \r
1877 #ifdef YY_USE_PROTOS\r
1878 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )\r
1879 #else\r
1880 static yy_state_type yy_try_NUL_trans( yy_current_state )\r
1881 yy_state_type yy_current_state;\r
1882 #endif\r
1883         {\r
1884         register int yy_is_jam;\r
1885         register char *yy_cp = yy_c_buf_p;\r
1886 \r
1887         register YY_CHAR yy_c = 1;\r
1888         if ( yy_accept[yy_current_state] )\r
1889                 {\r
1890                 yy_last_accepting_state = yy_current_state;\r
1891                 yy_last_accepting_cpos = yy_cp;\r
1892                 }\r
1893         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )\r
1894                 {\r
1895                 yy_current_state = (int) yy_def[yy_current_state];\r
1896                 if ( yy_current_state >= 655 )\r
1897                         yy_c = yy_meta[(unsigned int) yy_c];\r
1898                 }\r
1899         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];\r
1900         yy_is_jam = (yy_current_state == 654);\r
1901 \r
1902         return yy_is_jam ? 0 : yy_current_state;\r
1903         }\r
1904 \r
1905 \r
1906 #ifndef YY_NO_UNPUT\r
1907 #ifdef YY_USE_PROTOS\r
1908 static void yyunput( int c, register char *yy_bp )\r
1909 #else\r
1910 static void yyunput( c, yy_bp )\r
1911 int c;\r
1912 register char *yy_bp;\r
1913 #endif\r
1914         {\r
1915         register char *yy_cp = yy_c_buf_p;\r
1916 \r
1917         /* undo effects of setting up yytext */\r
1918         *yy_cp = yy_hold_char;\r
1919 \r
1920         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )\r
1921                 { /* need to shift things up to make room */\r
1922                 /* +2 for EOB chars. */\r
1923                 register int number_to_move = yy_n_chars + 2;\r
1924                 register char *dest = &yy_current_buffer->yy_ch_buf[\r
1925                                         yy_current_buffer->yy_buf_size + 2];\r
1926                 register char *source =\r
1927                                 &yy_current_buffer->yy_ch_buf[number_to_move];\r
1928 \r
1929                 while ( source > yy_current_buffer->yy_ch_buf )\r
1930                         *--dest = *--source;\r
1931 \r
1932                 yy_cp += (int) (dest - source);\r
1933                 yy_bp += (int) (dest - source);\r
1934                 yy_current_buffer->yy_n_chars =\r
1935                         yy_n_chars = yy_current_buffer->yy_buf_size;\r
1936 \r
1937                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )\r
1938                         YY_FATAL_ERROR( "flex scanner push-back overflow" );\r
1939                 }\r
1940 \r
1941         *--yy_cp = (char) c;\r
1942 \r
1943 \r
1944         yytext_ptr = yy_bp;\r
1945         yy_hold_char = *yy_cp;\r
1946         yy_c_buf_p = yy_cp;\r
1947         }\r
1948 #endif  /* ifndef YY_NO_UNPUT */\r
1949 \r
1950 \r
1951 #ifndef YY_NO_INPUT\r
1952 #ifdef __cplusplus\r
1953 static int yyinput()\r
1954 #else\r
1955 static int input()\r
1956 #endif\r
1957         {\r
1958         int c;\r
1959 \r
1960         *yy_c_buf_p = yy_hold_char;\r
1961 \r
1962         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )\r
1963                 {\r
1964                 /* yy_c_buf_p now points to the character we want to return.\r
1965                  * If this occurs *before* the EOB characters, then it's a\r
1966                  * valid NUL; if not, then we've hit the end of the buffer.\r
1967                  */\r
1968                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )\r
1969                         /* This was really a NUL. */\r
1970                         *yy_c_buf_p = '\0';\r
1971 \r
1972                 else\r
1973                         { /* need more input */\r
1974                         int offset = yy_c_buf_p - yytext_ptr;\r
1975                         ++yy_c_buf_p;\r
1976 \r
1977                         switch ( yy_get_next_buffer() )\r
1978                                 {\r
1979                                 case EOB_ACT_LAST_MATCH:\r
1980                                         /* This happens because yy_g_n_b()\r
1981                                          * sees that we've accumulated a\r
1982                                          * token and flags that we need to\r
1983                                          * try matching the token before\r
1984                                          * proceeding.  But for input(),\r
1985                                          * there's no matching to consider.\r
1986                                          * So convert the EOB_ACT_LAST_MATCH\r
1987                                          * to EOB_ACT_END_OF_FILE.\r
1988                                          */\r
1989 \r
1990                                         /* Reset buffer status. */\r
1991                                         yyrestart( yyin );\r
1992 \r
1993                                         /* fall through */\r
1994 \r
1995                                 case EOB_ACT_END_OF_FILE:\r
1996                                         {\r
1997                                         if ( yywrap() )\r
1998                                                 return EOF;\r
1999 \r
2000                                         if ( ! yy_did_buffer_switch_on_eof )\r
2001                                                 YY_NEW_FILE;\r
2002 #ifdef __cplusplus\r
2003                                         return yyinput();\r
2004 #else\r
2005                                         return input();\r
2006 #endif\r
2007                                         }\r
2008 \r
2009                                 case EOB_ACT_CONTINUE_SCAN:\r
2010                                         yy_c_buf_p = yytext_ptr + offset;\r
2011                                         break;\r
2012                                 }\r
2013                         }\r
2014                 }\r
2015 \r
2016         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */\r
2017         *yy_c_buf_p = '\0';     /* preserve yytext */\r
2018         yy_hold_char = *++yy_c_buf_p;\r
2019 \r
2020 \r
2021         return c;\r
2022         }\r
2023 #endif /* YY_NO_INPUT */\r
2024 \r
2025 #ifdef YY_USE_PROTOS\r
2026 void yyrestart( FILE *input_file )\r
2027 #else\r
2028 void yyrestart( input_file )\r
2029 FILE *input_file;\r
2030 #endif\r
2031         {\r
2032         if ( ! yy_current_buffer )\r
2033                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );\r
2034 \r
2035         yy_init_buffer( yy_current_buffer, input_file );\r
2036         yy_load_buffer_state();\r
2037         }\r
2038 \r
2039 \r
2040 #ifdef YY_USE_PROTOS\r
2041 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )\r
2042 #else\r
2043 void yy_switch_to_buffer( new_buffer )\r
2044 YY_BUFFER_STATE new_buffer;\r
2045 #endif\r
2046         {\r
2047         if ( yy_current_buffer == new_buffer )\r
2048                 return;\r
2049 \r
2050         if ( yy_current_buffer )\r
2051                 {\r
2052                 /* Flush out information for old buffer. */\r
2053                 *yy_c_buf_p = yy_hold_char;\r
2054                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;\r
2055                 yy_current_buffer->yy_n_chars = yy_n_chars;\r
2056                 }\r
2057 \r
2058         yy_current_buffer = new_buffer;\r
2059         yy_load_buffer_state();\r
2060 \r
2061         /* We don't actually know whether we did this switch during\r
2062          * EOF (yywrap()) processing, but the only time this flag\r
2063          * is looked at is after yywrap() is called, so it's safe\r
2064          * to go ahead and always set it.\r
2065          */\r
2066         yy_did_buffer_switch_on_eof = 1;\r
2067         }\r
2068 \r
2069 \r
2070 #ifdef YY_USE_PROTOS\r
2071 void yy_load_buffer_state( void )\r
2072 #else\r
2073 void yy_load_buffer_state()\r
2074 #endif\r
2075         {\r
2076         yy_n_chars = yy_current_buffer->yy_n_chars;\r
2077         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;\r
2078         yyin = yy_current_buffer->yy_input_file;\r
2079         yy_hold_char = *yy_c_buf_p;\r
2080         }\r
2081 \r
2082 \r
2083 #ifdef YY_USE_PROTOS\r
2084 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )\r
2085 #else\r
2086 YY_BUFFER_STATE yy_create_buffer( file, size )\r
2087 FILE *file;\r
2088 int size;\r
2089 #endif\r
2090         {\r
2091         YY_BUFFER_STATE b;\r
2092 \r
2093         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );\r
2094         if ( ! b )\r
2095                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );\r
2096 \r
2097         b->yy_buf_size = size;\r
2098 \r
2099         /* yy_ch_buf has to be 2 characters longer than the size given because\r
2100          * we need to put in 2 end-of-buffer characters.\r
2101          */\r
2102         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );\r
2103         if ( ! b->yy_ch_buf )\r
2104                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );\r
2105 \r
2106         b->yy_is_our_buffer = 1;\r
2107 \r
2108         yy_init_buffer( b, file );\r
2109 \r
2110         return b;\r
2111         }\r
2112 \r
2113 \r
2114 #ifdef YY_USE_PROTOS\r
2115 void yy_delete_buffer( YY_BUFFER_STATE b )\r
2116 #else\r
2117 void yy_delete_buffer( b )\r
2118 YY_BUFFER_STATE b;\r
2119 #endif\r
2120         {\r
2121         if ( ! b )\r
2122                 return;\r
2123 \r
2124         if ( b == yy_current_buffer )\r
2125                 yy_current_buffer = (YY_BUFFER_STATE) 0;\r
2126 \r
2127         if ( b->yy_is_our_buffer )\r
2128                 yy_flex_free( (void *) b->yy_ch_buf );\r
2129 \r
2130         yy_flex_free( (void *) b );\r
2131         }\r
2132 \r
2133 \r
2134 \r
2135 #ifdef YY_USE_PROTOS\r
2136 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )\r
2137 #else\r
2138 void yy_init_buffer( b, file )\r
2139 YY_BUFFER_STATE b;\r
2140 FILE *file;\r
2141 #endif\r
2142 \r
2143 \r
2144         {\r
2145         yy_flush_buffer( b );\r
2146 \r
2147         b->yy_input_file = file;\r
2148         b->yy_fill_buffer = 1;\r
2149 \r
2150 #if YY_ALWAYS_INTERACTIVE\r
2151         b->yy_is_interactive = 1;\r
2152 #else\r
2153 #if YY_NEVER_INTERACTIVE\r
2154         b->yy_is_interactive = 0;\r
2155 #else\r
2156         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;\r
2157 #endif\r
2158 #endif\r
2159         }\r
2160 \r
2161 \r
2162 #ifdef YY_USE_PROTOS\r
2163 void yy_flush_buffer( YY_BUFFER_STATE b )\r
2164 #else\r
2165 void yy_flush_buffer( b )\r
2166 YY_BUFFER_STATE b;\r
2167 #endif\r
2168 \r
2169         {\r
2170         if ( ! b )\r
2171                 return;\r
2172 \r
2173         b->yy_n_chars = 0;\r
2174 \r
2175         /* We always need two end-of-buffer characters.  The first causes\r
2176          * a transition to the end-of-buffer state.  The second causes\r
2177          * a jam in that state.\r
2178          */\r
2179         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;\r
2180         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;\r
2181 \r
2182         b->yy_buf_pos = &b->yy_ch_buf[0];\r
2183 \r
2184         b->yy_at_bol = 1;\r
2185         b->yy_buffer_status = YY_BUFFER_NEW;\r
2186 \r
2187         if ( b == yy_current_buffer )\r
2188                 yy_load_buffer_state();\r
2189         }\r
2190 \r
2191 \r
2192 #ifndef YY_NO_SCAN_BUFFER\r
2193 #ifdef YY_USE_PROTOS\r
2194 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )\r
2195 #else\r
2196 YY_BUFFER_STATE yy_scan_buffer( base, size )\r
2197 char *base;\r
2198 yy_size_t size;\r
2199 #endif\r
2200         {\r
2201         YY_BUFFER_STATE b;\r
2202 \r
2203         if ( size < 2 ||\r
2204              base[size-2] != YY_END_OF_BUFFER_CHAR ||\r
2205              base[size-1] != YY_END_OF_BUFFER_CHAR )\r
2206                 /* They forgot to leave room for the EOB's. */\r
2207                 return 0;\r
2208 \r
2209         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );\r
2210         if ( ! b )\r
2211                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );\r
2212 \r
2213         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */\r
2214         b->yy_buf_pos = b->yy_ch_buf = base;\r
2215         b->yy_is_our_buffer = 0;\r
2216         b->yy_input_file = 0;\r
2217         b->yy_n_chars = b->yy_buf_size;\r
2218         b->yy_is_interactive = 0;\r
2219         b->yy_at_bol = 1;\r
2220         b->yy_fill_buffer = 0;\r
2221         b->yy_buffer_status = YY_BUFFER_NEW;\r
2222 \r
2223         yy_switch_to_buffer( b );\r
2224 \r
2225         return b;\r
2226         }\r
2227 #endif\r
2228 \r
2229 \r
2230 #ifndef YY_NO_SCAN_STRING\r
2231 #ifdef YY_USE_PROTOS\r
2232 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )\r
2233 #else\r
2234 YY_BUFFER_STATE yy_scan_string( yy_str )\r
2235 yyconst char *yy_str;\r
2236 #endif\r
2237         {\r
2238         int len;\r
2239         for ( len = 0; yy_str[len]; ++len )\r
2240                 ;\r
2241 \r
2242         return yy_scan_bytes( yy_str, len );\r
2243         }\r
2244 #endif\r
2245 \r
2246 \r
2247 #ifndef YY_NO_SCAN_BYTES\r
2248 #ifdef YY_USE_PROTOS\r
2249 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )\r
2250 #else\r
2251 YY_BUFFER_STATE yy_scan_bytes( bytes, len )\r
2252 yyconst char *bytes;\r
2253 int len;\r
2254 #endif\r
2255         {\r
2256         YY_BUFFER_STATE b;\r
2257         char *buf;\r
2258         yy_size_t n;\r
2259         int i;\r
2260 \r
2261         /* Get memory for full buffer, including space for trailing EOB's. */\r
2262         n = len + 2;\r
2263         buf = (char *) yy_flex_alloc( n );\r
2264         if ( ! buf )\r
2265                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );\r
2266 \r
2267         for ( i = 0; i < len; ++i )\r
2268                 buf[i] = bytes[i];\r
2269 \r
2270         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;\r
2271 \r
2272         b = yy_scan_buffer( buf, n );\r
2273         if ( ! b )\r
2274                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );\r
2275 \r
2276         /* It's okay to grow etc. this buffer, and we should throw it\r
2277          * away when we're done.\r
2278          */\r
2279         b->yy_is_our_buffer = 1;\r
2280 \r
2281         return b;\r
2282         }\r
2283 #endif\r
2284 \r
2285 \r
2286 #ifndef YY_NO_PUSH_STATE\r
2287 #ifdef YY_USE_PROTOS\r
2288 static void yy_push_state( int new_state )\r
2289 #else\r
2290 static void yy_push_state( new_state )\r
2291 int new_state;\r
2292 #endif\r
2293         {\r
2294         if ( yy_start_stack_ptr >= yy_start_stack_depth )\r
2295                 {\r
2296                 yy_size_t new_size;\r
2297 \r
2298                 yy_start_stack_depth += YY_START_STACK_INCR;\r
2299                 new_size = yy_start_stack_depth * sizeof( int );\r
2300 \r
2301                 if ( ! yy_start_stack )\r
2302                         yy_start_stack = (int *) yy_flex_alloc( new_size );\r
2303 \r
2304                 else\r
2305                         yy_start_stack = (int *) yy_flex_realloc(\r
2306                                         (void *) yy_start_stack, new_size );\r
2307 \r
2308                 if ( ! yy_start_stack )\r
2309                         YY_FATAL_ERROR(\r
2310                         "out of memory expanding start-condition stack" );\r
2311                 }\r
2312 \r
2313         yy_start_stack[yy_start_stack_ptr++] = YY_START;\r
2314 \r
2315         BEGIN(new_state);\r
2316         }\r
2317 #endif\r
2318 \r
2319 \r
2320 #ifndef YY_NO_POP_STATE\r
2321 static void yy_pop_state()\r
2322         {\r
2323         if ( --yy_start_stack_ptr < 0 )\r
2324                 YY_FATAL_ERROR( "start-condition stack underflow" );\r
2325 \r
2326         BEGIN(yy_start_stack[yy_start_stack_ptr]);\r
2327         }\r
2328 #endif\r
2329 \r
2330 \r
2331 #ifndef YY_NO_TOP_STATE\r
2332 static int yy_top_state()\r
2333         {\r
2334         return yy_start_stack[yy_start_stack_ptr - 1];\r
2335         }\r
2336 #endif\r
2337 \r
2338 #ifndef YY_EXIT_FAILURE\r
2339 #define YY_EXIT_FAILURE 2\r
2340 #endif\r
2341 \r
2342 #ifdef YY_USE_PROTOS\r
2343 static void yy_fatal_error( yyconst char msg[] )\r
2344 #else\r
2345 static void yy_fatal_error( msg )\r
2346 char msg[];\r
2347 #endif\r
2348         {\r
2349         (void) fprintf( stderr, "%s\n", msg );\r
2350         exit( YY_EXIT_FAILURE );\r
2351         }\r
2352 \r
2353 \r
2354 \r
2355 /* Redefine yyless() so it works in section 3 code. */\r
2356 \r
2357 #undef yyless\r
2358 #define yyless(n) \\r
2359         do \\r
2360                 { \\r
2361                 /* Undo effects of setting up yytext. */ \\r
2362                 yytext[yyleng] = yy_hold_char; \\r
2363                 yy_c_buf_p = yytext + n; \\r
2364                 yy_hold_char = *yy_c_buf_p; \\r
2365                 *yy_c_buf_p = '\0'; \\r
2366                 yyleng = n; \\r
2367                 } \\r
2368         while ( 0 )\r
2369 \r
2370 \r
2371 /* Internal utility routines. */\r
2372 \r
2373 #ifndef yytext_ptr\r
2374 #ifdef YY_USE_PROTOS\r
2375 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )\r
2376 #else\r
2377 static void yy_flex_strncpy( s1, s2, n )\r
2378 char *s1;\r
2379 yyconst char *s2;\r
2380 int n;\r
2381 #endif\r
2382         {\r
2383         register int i;\r
2384         for ( i = 0; i < n; ++i )\r
2385                 s1[i] = s2[i];\r
2386         }\r
2387 #endif\r
2388 \r
2389 #ifdef YY_NEED_STRLEN\r
2390 #ifdef YY_USE_PROTOS\r
2391 static int yy_flex_strlen( yyconst char *s )\r
2392 #else\r
2393 static int yy_flex_strlen( s )\r
2394 yyconst char *s;\r
2395 #endif\r
2396         {\r
2397         register int n;\r
2398         for ( n = 0; s[n]; ++n )\r
2399                 ;\r
2400 \r
2401         return n;\r
2402         }\r
2403 #endif\r
2404 \r
2405 \r
2406 #ifdef YY_USE_PROTOS\r
2407 static void *yy_flex_alloc( yy_size_t size )\r
2408 #else\r
2409 static void *yy_flex_alloc( size )\r
2410 yy_size_t size;\r
2411 #endif\r
2412         {\r
2413         return (void *) malloc( size );\r
2414         }\r
2415 \r
2416 #ifdef YY_USE_PROTOS\r
2417 static void *yy_flex_realloc( void *ptr, yy_size_t size )\r
2418 #else\r
2419 static void *yy_flex_realloc( ptr, size )\r
2420 void *ptr;\r
2421 yy_size_t size;\r
2422 #endif\r
2423         {\r
2424         /* The cast to (char *) in the following accommodates both\r
2425          * implementations that use char* generic pointers, and those\r
2426          * that use void* generic pointers.  It works with the latter\r
2427          * because both ANSI C and C++ allow castless assignment from\r
2428          * any pointer type to void*, and deal with argument conversions\r
2429          * as though doing an assignment.\r
2430          */\r
2431         return (void *) realloc( (char *) ptr, size );\r
2432         }\r
2433 \r
2434 #ifdef YY_USE_PROTOS\r
2435 static void yy_flex_free( void *ptr )\r
2436 #else\r
2437 static void yy_flex_free( ptr )\r
2438 void *ptr;\r
2439 #endif\r
2440         {\r
2441         free( ptr );\r
2442         }\r
2443 \r
2444 #if YY_MAIN\r
2445 int main()\r
2446         {\r
2447         yylex();\r
2448         return 0;\r
2449         }\r
2450 #endif\r
2451 #line 245 "fta.l"\r
2452 \r
2453 \r
2454 int my_FtaParser_yyinput(char *buf, int max_size){\r
2455         int c = 0;\r
2456         int inchar = 0;\r
2457         \r
2458         if(flex_fta_stringinput != NULL){\r
2459                 while(c<max_size){\r
2460                         if(flex_fta_stringinput[flex_fta_stringinput_ptr] != '\0'){\r
2461                                 buf[c++] = flex_fta_stringinput[flex_fta_stringinput_ptr++];\r
2462                         }else{\r
2463                                 break;\r
2464                         }\r
2465                 }\r
2466                 return(c);\r
2467         }\r
2468         \r
2469         if(flex_fta_fileinput != NULL){\r
2470                 while(c < max_size){\r
2471                         inchar = getc(flex_fta_fileinput);\r
2472                         if(inchar != EOF){\r
2473                                 buf[c++] = inchar;\r
2474                         }else{\r
2475                                 break;\r
2476                         }\r
2477                 }\r
2478                 return(c);\r
2479         }\r
2480         \r
2481         return(0);\r
2482 }\r
2483 \r
2484 void FtaParser_setfileinput(FILE *f){\r
2485         FtaParserrestart(NULL);\r
2486 \r
2487         flex_fta_fileinput = f;\r
2488         flex_fta_stringinput = NULL;\r
2489         flex_fta_lineno = 1;\r
2490         flex_fta_ch = 0;\r
2491 }\r
2492 \r
2493 void FtaParser_setstringinput(char *s){\r
2494         FtaParserrestart(NULL);\r
2495 \r
2496         flex_fta_fileinput = NULL;\r
2497         flex_fta_stringinput = s;\r
2498         flex_fta_stringinput_ptr = 0;\r
2499         flex_fta_lineno = 1;\r
2500         flex_fta_ch = 0;\r
2501 }\r
2502         \r
2503                 \r
2504 \r
2505 \r