compiler: Support for i18n through $"string" syntax (generates .pot, requires libintl...
[sdk] / compiler / libec / src / lexer.ec
1 #line 2 "lexer.ec"
2 /* A lexical scanner generated by flex */
3
4 /* Scanner skeleton version:
5  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
6  */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11
12 #include <stdio.h>
13
14
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
16 #ifdef c_plusplus
17 #ifndef __cplusplus
18 #define __cplusplus
19 #endif
20 #endif
21
22
23 #ifdef __cplusplus
24
25 #include <stdlib.h>
26 #include <unistd.h>
27
28 /* Use prototypes in function declarations. */
29 #define YY_USE_PROTOS
30
31 /* The "const" storage-class-modifier is valid. */
32 #define YY_USE_CONST
33
34 #else   /* ! __cplusplus */
35
36 #if __STDC__
37
38 #define YY_USE_PROTOS
39 #define YY_USE_CONST
40
41 #endif  /* __STDC__ */
42 #endif  /* ! __cplusplus */
43
44 #ifdef __TURBOC__
45  #pragma warn -rch
46  #pragma warn -use
47 #include <io.h>
48 #include <stdlib.h>
49 #define YY_USE_CONST
50 #define YY_USE_PROTOS
51 #endif
52
53 #ifdef YY_USE_CONST
54 #define yyconst const
55 #else
56 #define yyconst
57 #endif
58
59
60 #ifdef YY_USE_PROTOS
61 #define YY_PROTO(proto) proto
62 #else
63 #define YY_PROTO(proto) ()
64 #endif
65
66 /* Returned upon end-of-file. */
67 #define YY_NULL 0
68
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70  * integer for use as an array index.  If the signed char is negative,
71  * we want to instead treat it as an 8-bit unsigned char, hence the
72  * double cast.
73  */
74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
75
76 /* Enter a start condition.  This macro really ought to take a parameter,
77  * but we do it the disgusting crufty way forced on us by the ()-less
78  * definition of BEGIN.
79  */
80 #define BEGIN yy_start = 1 + 2 *
81
82 /* Translate the current start state into a value that can be later handed
83  * to BEGIN to return to the state.  The YYSTATE alias is for lex
84  * compatibility.
85  */
86 #define YY_START ((yy_start - 1) / 2)
87 #define YYSTATE YY_START
88
89 /* Action number for EOF rule of a given start state. */
90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
91
92 /* Special action meaning "start processing a new file". */
93 #define YY_NEW_FILE yyrestart( yyin )
94
95 #define YY_END_OF_BUFFER_CHAR 0
96
97 /* Size of default input buffer. */
98 #define YY_BUF_SIZE 16384
99
100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
101
102 extern int yyleng;
103 extern FILE *yyin, *yyout;
104
105 #define EOB_ACT_CONTINUE_SCAN 0
106 #define EOB_ACT_END_OF_FILE 1
107 #define EOB_ACT_LAST_MATCH 2
108
109 /* The funky do-while in the following #define is used to turn the definition
110  * int a single C statement (which needs a semi-colon terminator).  This
111  * avoids problems with code like:
112  *
113  *      if ( condition_holds )
114  *              yyless( 5 );
115  *      else
116  *              do_something_else();
117  *
118  * Prior to using the do-while the compiler would get upset at the
119  * "else" because it interpreted the "if" statement as being all
120  * done when it reached the ';' after the yyless() call.
121  */
122
123 /* Return all but the first 'n' matched characters back to the input stream. */
124
125 #define yyless(n) \
126         do \
127                 { \
128                 /* Undo effects of setting up yytext. */ \
129                 *yy_cp = yy_hold_char; \
130                 YY_RESTORE_YY_MORE_OFFSET \
131                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
133                 } \
134         while ( 0 )
135
136 #define unput(c) yyunput( c, yytext_ptr )
137
138 /* The following is because we cannot portably get our hands on size_t
139  * (without autoconf's help, which isn't available because we want
140  * flex-generated scanners to compile on their own).
141  */
142 typedef unsigned int yy_size_t;
143
144
145 struct yy_buffer_state
146         {
147         FILE *yy_input_file;
148
149         char *yy_ch_buf;                /* input buffer */
150         char *yy_buf_pos;               /* current position in input buffer */
151
152         /* Size of input buffer in bytes, not including room for EOB
153          * characters.
154          */
155         yy_size_t yy_buf_size;
156
157         /* Number of characters read into yy_ch_buf, not including EOB
158          * characters.
159          */
160         int yy_n_chars;
161
162         /* Whether we "own" the buffer - i.e., we know we created it,
163          * and can realloc() it to grow it, and should free() it to
164          * delete it.
165          */
166         int yy_is_our_buffer;
167
168         /* Whether this is an "interactive" input source; if so, and
169          * if we're using stdio for input, then we want to use getc()
170          * instead of fread(), to make sure we stop fetching input after
171          * each newline.
172          */
173         int yy_is_interactive;
174
175         /* Whether we're considered to be at the beginning of a line.
176          * If so, '^' rules will be active on the next match, otherwise
177          * not.
178          */
179         int yy_at_bol;
180
181         /* Whether to try to fill the input buffer when we reach the
182          * end of it.
183          */
184         int yy_fill_buffer;
185
186         int yy_buffer_status;
187 #define YY_BUFFER_NEW 0
188 #define YY_BUFFER_NORMAL 1
189         /* When an EOF's been seen but there's still some text to process
190          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191          * shouldn't try reading from the input source any more.  We might
192          * still have a bunch of tokens to match, though, because of
193          * possible backing-up.
194          *
195          * When we actually see the EOF, we change the status to "new"
196          * (via yyrestart()), so that the user can continue scanning by
197          * just pointing yyin at a new input file.
198          */
199 #define YY_BUFFER_EOF_PENDING 2
200         };
201
202 static YY_BUFFER_STATE yy_current_buffer = 0;
203
204 /* We provide macros for accessing buffer states in case in the
205  * future we want to put the buffer states in a more general
206  * "scanner state".
207  */
208 #define YY_CURRENT_BUFFER yy_current_buffer
209
210
211 /* yy_hold_char holds the character lost when yytext is formed. */
212 static char yy_hold_char;
213
214 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
215
216
217 int yyleng;
218
219 /* Points to current character in buffer. */
220 static char *yy_c_buf_p = (char *) 0;
221 static int yy_init = 1;         /* whether we need to initialize */
222 static int yy_start = 0;        /* start state number */
223
224 /* Flag which is used to allow yywrap()'s to do buffer switches
225  * instead of setting up a fresh yyin.  A bit of a hack ...
226  */
227 static int yy_did_buffer_switch_on_eof;
228
229 void yyrestart YY_PROTO(( FILE *input_file ));
230
231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232 void yy_load_buffer_state YY_PROTO(( void ));
233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
238
239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
242
243 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
245 static void yy_flex_free YY_PROTO(( void * ));
246
247 #define yy_new_buffer yy_create_buffer
248
249 #define yy_set_interactive(is_interactive) \
250         { \
251         if ( ! yy_current_buffer ) \
252                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
253         yy_current_buffer->yy_is_interactive = is_interactive; \
254         }
255
256 #define yy_set_bol(at_bol) \
257         { \
258         if ( ! yy_current_buffer ) \
259                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
260         yy_current_buffer->yy_at_bol = at_bol; \
261         }
262
263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
264
265 typedef unsigned char YY_CHAR;
266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
267 typedef int yy_state_type;
268 extern char *yytext;
269 #define yytext_ptr yytext
270
271 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
273 static int yy_get_next_buffer YY_PROTO(( void ));
274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
275
276 /* Done after the current pattern has been matched and before the
277  * corresponding action - sets up yytext.
278  */
279 #define YY_DO_BEFORE_ACTION \
280         yytext_ptr = yy_bp; \
281         yyleng = (int) (yy_cp - yy_bp); \
282         yy_hold_char = *yy_cp; \
283         *yy_cp = '\0'; \
284         yy_c_buf_p = yy_cp;
285
286 #define YY_NUM_RULES 162
287 #define YY_END_OF_BUFFER 163
288 static yyconst short int yy_accept[697] =
289     {   0,
290       102,  102,  163,  161,  160,  159,  158,  145,  161,    1,
291       157,  151,  144,  161,  139,  140,  149,  148,  136,  147,
292       143,  150,  105,  105,  137,  133,  152,  138,  153,  156,
293       102,  102,  141,  142,  154,  102,  102,  102,  102,  102,
294       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
295       102,  102,  102,  134,  155,  135,  146,  132,    0,  110,
296         0,  118,  135,  127,  119,    0,    0,  116,  124,  114,
297       125,  115,  126,    0,  108,    2,    3,  117,  109,  104,
298         0,  105,    0,  105,  102,  142,  134,  141,  123,  129,
299       131,  130,  122,    0,  102,    0,    0,    0,  120,  102,
300
301       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
302       102,  102,  102,  102,  102,   11,  102,  102,  102,  102,
303       102,  102,  102,  102,   19,  102,  102,  102,  102,  102,
304       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
305       102,  102,  102,  102,  102,  102,  102,  102,  121,  128,
306       106,  111,    0,  108,  108,    0,  109,  104,    0,  107,
307       103,  102,  113,  112,  102,  102,  102,  102,  102,  102,
308       102,  102,  102,  102,  102,  102,  102,  102,  102,   82,
309       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
310       102,  102,  102,  102,  102,  102,  102,  102,  102,   17,
311
312        41,  102,  102,  102,  102,   20,  102,  102,  102,   47,
313       102,  102,  102,  102,  102,  102,   40,  102,  102,  102,
314       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
315       102,  102,  102,  102,  102,  102,    0,  108,    0,  108,
316         0,  109,  107,  103,  102,  102,  102,  102,  102,  102,
317       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
318       102,  102,  102,    4,  102,    6,    7,  102,  102,  102,
319       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
320        13,   14,  102,  102,  102,   18,  102,  102,  102,  102,
321       102,   22,  102,   48,  102,  102,  102,  102,  102,  102,
322
323       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
324       102,   21,  102,  102,  102,   35,  102,  102,  102,    0,
325       108,   83,  102,  102,  102,  102,  102,  102,  102,  102,
326       102,  102,  102,  102,  102,  102,  102,  102,  102,    5,
327        43,    8,  102,  102,  102,  102,  102,  102,  102,  102,
328       102,  102,  102,  102,  102,   16,  102,  102,  102,   54,
329        42,  102,  102,  102,  102,  102,   49,  102,   25,  102,
330       102,  102,  102,  102,  102,  102,  102,  102,  102,   33,
331       102,  102,  102,   85,   38,  102,  102,  102,  102,  102,
332       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
333
334       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
335        52,   46,  102,  102,   12,   15,  102,   51,   78,   62,
336       102,  102,  102,   74,  102,   50,   24,   26,   28,   29,
337       102,  102,   30,  102,   31,  102,  102,  102,  102,  102,
338       102,  102,   81,  102,  102,   66,   72,  102,  102,  102,
339        53,  102,  102,  102,  102,  102,  102,   60,  102,  102,
340       102,  102,  102,  102,  102,  102,   99,  100,   98,   10,
341       102,  102,  102,  102,   75,  102,  102,   70,  102,  102,
342       102,  102,   32,  102,   45,  102,  102,  102,  102,  102,
343       102,   61,  102,  102,  102,   84,  102,  102,   69,  102,
344
345       102,  102,  102,  102,  102,    9,  102,  102,  102,  102,
346       102,   39,   23,  102,   96,  102,  102,   34,   36,  102,
347       102,  102,  102,  102,  102,  102,  102,   67,  102,  102,
348       102,  102,  102,  102,  102,  102,  102,  102,   64,   65,
349       102,   97,  102,  102,   44,  102,   88,  102,  102,  102,
350       102,   59,   71,   27,  102,  102,  102,   77,   94,  102,
351       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
352       102,    0,  102,  102,   68,  102,   80,  102,  102,   91,
353       102,  102,  102,  102,  102,  102,  102,    0,    0,  102,
354       102,   63,    0,  102,   73,   37,  102,  102,  102,  102,
355
356       102,   87,  102,   86,   76,    0,  102,  102,   79,  102,
357       102,  102,  102,  101,  102,    0,    0,    0,    0,    0,
358         0,    0,  102,  102,  102,   89,  102,   95,  102,    0,
359         0,    0,    0,   58,    0,    0,    0,    0,    0,  102,
360       102,  102,  102,  102,    0,    0,    0,    0,    0,    0,
361         0,    0,    0,    0,    0,    0,    0,   56,  102,  102,
362       102,  102,    0,    0,    0,    0,    0,    0,    0,   57,
363         0,    0,    0,    0,   55,  102,  102,   93,    0,    0,
364         0,    0,    0,    0,    0,    0,  102,   90,    0,    0,
365         0,  102,  102,  102,   92,    0
366
367     } ;
368
369 static yyconst int yy_ec[256] =
370     {   0,
371         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
372         4,    4,    1,    1,    1,    1,    1,    1,    1,    1,
373         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
374         1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
375        14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
376        22,   23,   22,   24,   22,   22,   22,   25,   26,   27,
377        28,   29,   30,    1,   31,   31,   31,   31,   32,   33,
378        34,   34,   34,   34,   34,   35,   34,   34,   34,   34,
379        34,   34,   34,   34,   36,   34,   34,   37,   34,   34,
380        38,   39,   40,   41,   42,    1,   43,   44,   45,   46,
381
382        47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
383        57,   58,   34,   59,   60,   61,   62,   63,   64,   65,
384        66,   67,   68,   69,   70,   71,    1,    1,    1,    1,
385         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
386         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
387         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
388         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
389         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
390         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
391         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
392
393         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
395         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
398         1,    1,    1,    1,    1
399     } ;
400
401 static yyconst int yy_meta[72] =
402     {   0,
403         1,    1,    1,    1,    2,    1,    3,    1,    1,    1,
404         4,    5,    6,    7,    1,    1,    2,    1,    1,    1,
405         8,    8,    8,    8,    4,    1,    1,    1,    1,    1,
406         9,    9,    9,   10,   10,   10,   10,    1,    1,    1,
407         1,   10,    9,    9,    9,    9,    9,    9,   10,   10,
408        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
409        10,   10,   10,   10,   10,   10,   10,    1,    1,    1,
410         1
411     } ;
412
413 static yyconst short int yy_base[717] =
414     {   0,
415         0,    0,  286, 2432, 2432, 2432, 2432,  257,   65, 2432,
416      2432,   45,   64,  240, 2432, 2432,  224,   60, 2432,   61,
417        59,   71,   86,  133,   68, 2432,   75,  219,   66, 2432,
418        73,  104, 2432, 2432,  216,  102,   76,  101,  120,  139,
419       136,  148,  147,  160,  109,  164,  117,  156,  187,  189,
420       202,  199,  211, 2432,   68, 2432, 2432, 2432,  107, 2432,
421       239, 2432, 2432, 2432, 2432,  179,  127, 2432, 2432, 2432,
422      2432, 2432, 2432,  213,  241, 2432, 2432, 2432,  245,  281,
423       207,  236,    0,    0,    0, 2432, 2432, 2432,  189, 2432,
424      2432, 2432,  178,  172,  208,  163,  202,  145, 2432,  333,
425
426       210,  235,  259,  215,  232,  271,  272,  234,  290,  296,
427       297,  298,  299,  300,  301,  320,  326,  327,  338,  316,
428       331,  346,  356,  358,  362,  379,  384,  386,  387,  389,
429       390,  391,  395,  402,  396,  399,  411,  407,  415,  422,
430       424,  430,  451,  454,  456,  457,  458,  459, 2432, 2432,
431      2432, 2432,  469, 2432,  499,  478, 2432,  462,  504,  515,
432       505,    0, 2432, 2432,    0,  484,  492,  518,  524,  493,
433       531,  541,  540,  549,  551,  557,  559,  561,  567,  461,
434       568,  569,  570,  572,  574,  578,  579,  585,  589,  594,
435       605,  595,  610,  615,  616,  618,  621,  622,  633,  639,
436
437       640,  641,  642,  649,  659,  661,  664,  666,  667,  669,
438       668,  670,  671,  672,  677,  676,  692,  693,  694,  695,
439       696,  701,  702,  705,  711,  718,  722,  723,  724,  726,
440       729,  728,  730,  734,  733,  750,  741,  770,  750, 2432,
441       774,  778, 2432,  752,    0,  796,  797,  798,  804,  806,
442       805,  809,  808,  814,  816,  817,  824,  825,  826,  832,
443       833,  837,  835,  852,  853,  856,  860,  861,  862,  863,
444       878,  879,  882,  880,  883,  884,  885,  886,  887,  890,
445       888,  891,  906,  907,  908,  909,  914,  916,  918,  924,
446       925,  927,  937,  942,  945,  943,  947,  950,  953,  955,
447
448       966,  968,  971,  970,  976,  974,  978,  981,  991,  997,
449       993, 1000, 1001, 1009, 1018, 1019, 1020, 1021, 1022, 1027,
450      1031, 1045, 1048, 1049, 1050, 1051, 1052, 1057, 1061, 1067,
451      1072, 1073, 1077, 1083, 1085, 1088, 1089, 1094, 1090, 1098,
452      1106, 1107, 1110, 1113, 1114, 1115, 1116, 1125, 1135, 1136,
453      1132, 1138, 1140, 1142, 1148, 1144, 1147, 1153, 1160, 1163,
454      1164, 1169, 1170, 1175, 1181, 1186, 1188, 1192, 1191, 1193,
455      1194, 1199, 1203, 1210, 1204, 1211, 1212, 1221, 1227, 1230,
456      1234, 1238, 1245, 1239, 1247, 1255, 1260, 1262, 1266, 1267,
457      1273, 1268, 1275, 1278, 1277, 1283, 1284, 1288, 1293, 1296,
458
459      1294, 1301, 1314, 1304, 1321, 1324, 1323, 1326, 1332, 1333,
460      1336, 1342, 1348, 1352, 1353, 1357, 1360, 1361, 1363, 1364,
461      1365, 1370, 1376, 1381, 1382, 1385, 1386, 1387, 1388, 1389,
462      1391, 1393, 1408, 1409, 1411, 1413, 1414, 1415, 1417, 1416,
463      1419, 1421, 1424, 1432, 1436, 1437, 1441, 1442, 1447, 1449,
464      1457, 1464, 1466, 1467, 1468, 1469, 1472, 1470, 1473, 1477,
465      1479, 1474, 1492, 1494, 1503, 1507, 1518, 1519, 1520, 1522,
466      1523, 1526, 1527, 1530, 1531, 1535, 1546, 1548, 1551, 1552,
467      1553, 1554, 1555, 1556, 1558, 1559, 1563, 1575, 1578, 1579,
468      1582, 1583, 1584, 1586, 1599, 1605, 1607, 1610, 1611, 1620,
469
470      1616, 1627, 1629, 1631, 1632, 1633, 1637, 1635, 1638, 1653,
471      1644, 1655, 1657, 1659, 1660, 1661, 1663, 1665, 1670, 1681,
472      1682, 1687, 1689, 1691, 1693, 1694, 1697, 1699, 1700, 1702,
473      1706, 1719, 1721, 1712, 1725, 1727, 1715, 1731, 1734, 1740,
474      1743, 1746, 1750, 1755, 1758, 1766, 1759, 1767, 1768, 1774,
475      1771, 1775, 1778, 1783, 1786, 1787, 1790, 1791, 1793, 1794,
476      1796, 1798, 1799, 1811, 1814, 1815, 1822, 1823, 1824, 1841,
477      1830,  164, 1826, 1842, 1832, 1850, 1851, 1852, 1860, 1869,
478      1870, 1871, 1875, 1876, 1877, 1878, 1879,  112,  128, 1882,
479      1887, 2432,  110, 1900, 1880, 1888, 1898, 1906, 1907, 1908,
480
481      1909, 1910, 1926, 1930, 1932, 1496, 1941, 1933, 1936, 1937,
482      1938, 1945, 1949, 1953, 1956, 1972, 1966,  105, 1977, 1979,
483       130,   93, 1977, 1984, 1987, 1988, 1989, 1992, 1993, 2002,
484      2006, 2016, 2017, 2432, 2024, 2034, 2039, 2041, 2052, 2015,
485      1999, 2017, 2036, 2049, 2058, 2063, 2065, 2076, 2078, 2080,
486      2084, 2086, 2097, 2099,   63, 2104, 2110, 2094, 2095, 2101,
487      2111, 2114, 2123, 2124, 2128, 2129, 2130, 2143, 2145, 2432,
488      2150, 2156, 2161, 2171, 2140, 2158, 2161, 2166, 2176, 2182,
489      2184, 2189, 2190, 2195, 2197, 2205, 2202, 2204, 2216, 2218,
490      2220, 2213, 2215, 2217, 2220, 2432, 2283, 2293, 2300, 2303,
491
492      2304, 2307, 2309, 2313, 2322, 2331, 2340, 2349, 2358, 2367,
493      2376, 2385, 2394, 2403, 2412, 2421
494     } ;
495
496 static yyconst short int yy_def[717] =
497     {   0,
498       696,    1,  696,  696,  696,  696,  696,  696,  697,  696,
499       696,  696,  696,  698,  696,  696,  696,  696,  696,  696,
500       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
501       699,  699,  696,  696,  696,  699,  699,  699,  699,  699,
502       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
503       699,  699,  699,  696,  696,  696,  696,  696,  697,  696,
504       697,  696,  696,  696,  696,  698,  698,  696,  696,  696,
505       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
506       696,  696,  700,   24,  701,  696,  696,  696,  696,  696,
507       696,  696,  696,  696,  699,  696,  697,  698,  696,  699,
508
509       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
510       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
511       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
512       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
513       699,  699,  699,  699,  699,  699,  699,  699,  696,  696,
514       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
515       700,  702,  696,  696,  703,  699,  699,  699,  699,  699,
516       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
517       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
518       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
519
520       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
521       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
522       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
523       699,  699,  699,  699,  699,  699,  696,  696,  696,  696,
524       696,  696,  696,  696,  702,  699,  699,  699,  699,  699,
525       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
526       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
527       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
528       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
529       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
530
531       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
532       699,  699,  699,  699,  699,  699,  699,  699,  699,  696,
533       696,  699,  699,  699,  699,  699,  699,  699,  699,  699,
534       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
535       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
536       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
537       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
538       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
539       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
540       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
541
542       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
543       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
544       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
545       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
546       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
547       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
548       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
549       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
550       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
551       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
552
553       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
554       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
555       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
556       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
557       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
558       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
559       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
560       699,  704,  699,  699,  699,  699,  699,  699,  699,  699,
561       699,  699,  699,  699,  699,  699,  699,  696,  696,  699,
562       699,  696,  704,  699,  699,  699,  699,  699,  699,  699,
563
564       699,  699,  699,  699,  699,  705,  699,  699,  699,  699,
565       699,  699,  699,  699,  699,  705,  706,  696,  707,  705,
566       696,  696,  699,  699,  699,  699,  699,  699,  699,  696,
567       706,  696,  708,  696,  707,  709,  707,  696,  710,  699,
568       699,  699,  699,  699,  696,  708,  708,  696,  709,  696,
569       711,  696,  710,  712,  696,  713,  710,  699,  699,  699,
570       699,  699,  696,  711,  711,  696,  712,  696,  714,  696,
571       713,  715,  713,  696,  699,  699,  699,  699,  696,  714,
572       714,  696,  715,  696,  716,  696,  699,  699,  696,  716,
573       716,  699,  699,  699,  699,    0,  696,  696,  696,  696,
574
575       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
576       696,  696,  696,  696,  696,  696
577     } ;
578
579 static yyconst short int yy_nxt[2504] =
580     {   0,
581         4,    5,    6,    7,    7,    8,    9,   10,   11,   12,
582        13,   14,   15,   16,   17,   18,   19,   20,   21,   22,
583        23,   24,   24,   24,   25,   26,   27,   28,   29,   30,
584        31,   31,   31,   31,   32,   31,   31,   33,    4,   34,
585        35,   36,   37,   38,   39,   40,   41,   42,   43,   31,
586        44,   31,   31,   45,   31,   46,   31,   47,   48,   49,
587        50,   51,   52,   53,   31,   31,   31,   54,   55,   56,
588        57,   60,   62,   63,   64,   69,  670,   74,   71,   75,
589        75,   75,   75,   94,   87,   76,   94,   70,   72,   73,
590        77,   65,   85,   92,   93,  149,   86,   96,   78,   88,
591
592        96,   89,   90,   61,   79,  639,   80,   80,   80,   80,
593        97,   94,   94,   60,   94,   98,  588,   81,  634,   94,
594        82,   82,   83,  592,  589,   96,   96,   94,   96,  696,
595        94,  104,   81,   96,  621,  105,  150,  106,   66,   82,
596       606,   96,  622,  100,   96,   61,   94,   82,  101,   94,
597        83,   79,  102,   84,   84,   84,   84,   94,   94,  107,
598        96,  103,  108,   96,   81,  129,   94,   82,   82,  109,
599        94,   96,   96,  110,   94,  132,  111,  592,  133,   81,
600        96,  112,  113,   67,   96,  114,   82,  165,   96,  117,
601       151,  118,  115,  123,   82,  116,   96,   94,  120,   94,
602
603       119,  121,  134,  124,  122,  164,  130,  125,   60,   94,
604       131,   96,   94,   96,  126,  127,  163,   67,   94,  128,
605        94,   94,  159,   96,  159,   94,   96,  160,  160,  160,
606       160,  152,   96,  135,   96,   96,  136,  137,  141,   96,
607        61,  696,   94,   99,   94,   94,   91,  138,  139,  145,
608       140,   68,  143,  147,  142,  146,   96,  144,   96,   96,
609       148,   75,   75,   75,   75,  155,  155,  155,  155,   94,
610        82,   82,  153,  154,  176,  154,  156,  157,   67,  157,
611       179,   94,   94,   96,   58,  696,  180,  153,  154,   82,
612       177,  156,  157,  183,  154,   96,   96,   82,  157,   79,
613
614        94,   80,   80,   80,   80,  696,   94,   94,   94,   94,
615        94,   94,   81,  696,   96,  158,  158,  696,  182,  178,
616        96,   96,   96,   96,   96,   96,   94,   81,  696,  696,
617        94,  181,  184,  696,  158,  696,   94,   94,  185,  696,
618        96,   94,  158,   94,   96,  696,  188,  191,   94,  189,
619        96,   96,  186,  192,  193,   96,   94,   96,  187,  190,
620       696,  696,   96,  696,  696,  696,   94,  696,   94,  696,
621        96,  696,   94,  696,  198,  166,  167,  168,  169,  170,
622        96,  194,   96,  171,  696,  195,   96,  199,  196,   94,
623       696,  172,  173,  174,   94,  175,   94,   94,  197,   94,
624
625        94,   94,  696,   96,  200,   94,   94,  696,   96,   94,
626        96,   96,   94,   96,   96,   96,  201,   94,  202,   96,
627        96,   94,  696,   96,  696,   94,   96,  696,  204,  696,
628       696,   96,   94,  696,   94,   96,  203,  205,  213,   96,
629        94,  211,  208,  209,  206,  207,   96,  212,   96,  221,
630       214,  696,  222,  210,   96,  218,  217,  215,  225,  219,
631       696,   94,  216,  223,   94,  224,   94,   94,   94,   94,
632       696,   94,  226,  696,  227,   96,  696,  220,   96,  696,
633        96,   96,   96,   96,  237,   96,  237,  228,  696,  238,
634       238,  238,  238,  241,   94,  241,  158,  158,  242,  242,
635
636       242,  242,   94,   94,  230,  696,  229,  233,   96,  236,
637       234,  696,  696,  231,  232,  158,   96,   96,  235,  155,
638       155,  155,  155,  158,  160,  160,  160,  160,   94,  696,
639       239,  240,  696,  240,   94,  160,  160,  160,  160,  244,
640       244,   94,   96,  247,  248,  239,  240,  243,   96,  243,
641        94,   94,  240,  249,  696,   96,  696,  253,  244,   94,
642       696,   94,  243,  250,   96,   96,  244,   94,  243,   94,
643       252,   94,  696,   96,  251,   96,  696,   94,   94,   94,
644        94,   96,   94,   96,   94,   96,  254,  255,   94,   94,
645       256,   96,   96,   96,   96,   94,   96,  696,   96,   94,
646
647       257,  696,   96,   96,   94,   94,  262,  259,  263,   96,
648       696,  265,  261,   96,  258,   94,  266,  260,   96,   96,
649        94,  271,  696,  696,  264,   94,   94,  696,   94,   96,
650       267,   94,   94,  268,   96,  272,  274,  269,  270,   96,
651        96,  277,   96,   94,  273,   96,   96,  275,  696,   94,
652        94,   94,   94,  696,  696,  276,  278,   96,  280,   94,
653       279,  696,  281,   96,   96,   96,   96,  283,  284,   94,
654       696,   94,  282,   96,   94,  285,   94,   94,   94,   94,
655        94,   94,   94,   96,  290,   96,   94,   94,   96,  294,
656        96,   96,   96,   96,   96,   96,   96,  286,  287,  696,
657
658        96,   96,   94,   94,   94,   94,   94,  288,  696,  289,
659       291,   94,   94,  293,  292,   94,   96,   96,   96,   96,
660        96,   94,  298,  299,  297,   96,   96,  296,   94,   96,
661       295,  696,   94,   94,   94,   96,   94,  300,   94,   94,
662        94,  303,   96,   94,   94,  305,   96,   96,   96,  302,
663        96,  301,   96,   96,   96,  308,  304,   96,   96,  306,
664        94,  238,  238,  238,  238,  320,  307,  320,  696,  311,
665       321,  321,  321,  321,   96,  316,  317,  318,  309,  314,
666       696,  310,  313,  696,  312,  696,  244,  244,  315,  696,
667       238,  238,  238,  238,  242,  242,  242,  242,  242,  242,
668
669       242,  242,  154,  319,  154,  244,   94,   94,   94,  696,
670       157,  696,  157,  244,   94,   94,   94,  154,   94,   94,
671        96,   96,   96,  154,   94,  157,   94,   94,   96,   96,
672        96,  157,   96,   96,   94,   94,   94,  696,   96,  696,
673        96,   96,   94,   94,  696,   94,  696,   94,   96,   96,
674        96,  322,  325,  327,  324,  696,   96,   96,  323,   96,
675       326,   96,   94,   94,  696,  332,   94,  329,  328,  333,
676        94,   94,   94,   94,  330,  331,   96,   96,  336,  335,
677        96,  338,  334,  337,   96,   96,   96,   96,   94,   94,
678        94,  339,   94,   94,   94,   94,   94,   94,   94,  696,
679
680        94,   94,   96,   96,   96,  340,   96,   96,   96,   96,
681        96,   96,   96,  343,   96,   96,   94,   94,   94,   94,
682       341,  344,  342,  347,   94,  345,   94,  346,   94,  696,
683        96,   96,   96,   96,   94,   94,  696,   94,   96,  349,
684        96,  352,   96,  353,  348,  350,  360,   94,   96,   96,
685       351,   96,   94,   94,  696,   94,  696,   94,  696,  696,
686        94,   96,  358,   94,  354,   94,   96,   96,  356,   96,
687       355,   96,  357,  359,   96,  696,   94,   96,   94,   96,
688        94,   94,  696,  696,   94,  361,   94,  363,   94,  364,
689        96,   94,   96,  696,   96,   96,  362,  365,   96,  696,
690
691        96,   94,   96,   94,  696,   96,  696,   94,  696,  366,
692        94,   94,  696,  368,  370,   96,  367,   96,  373,   94,
693       372,   96,  375,  696,   96,   96,  369,  371,   94,   94,
694        94,   94,   94,   96,  376,  377,  696,  374,  379,  696,
695       696,  378,   96,   96,   96,   96,   96,  321,  321,  321,
696       321,  321,  321,  321,  321,   94,  380,  381,   94,   94,
697        94,   94,   94,  240,  696,  240,  696,   94,  385,   96,
698       384,   94,   96,   96,   96,   96,   96,   94,  240,  382,
699       383,   96,   94,   94,  240,   96,  386,   94,  696,  696,
700       394,   96,  696,   94,  389,   94,   96,   96,   94,   94,
701
702        94,   96,  388,  392,   94,  391,  387,   96,   94,   96,
703       390,  393,   96,   96,   96,  696,   94,   94,   96,  696,
704        94,  397,   96,   94,   94,   94,   94,  399,  396,  398,
705        96,   96,  395,  403,   96,   94,  402,   96,   96,   96,
706        96,  696,   94,  400,  401,   94,   94,  404,   94,   96,
707        94,  696,   94,  696,   94,  406,   96,   94,   94,   96,
708        96,  408,   96,   94,   96,  405,   96,  407,   96,  409,
709        94,   96,   96,   94,   94,  696,  696,   96,  410,   94,
710        94,  411,  412,  696,   96,   94,  415,   96,   96,  413,
711       417,   94,  696,   96,   96,  414,   94,  416,   94,   96,
712
713       419,   94,   94,   94,   94,   96,  420,  418,  426,   94,
714        96,  696,   96,   94,   94,   96,   96,   96,   96,  696,
715        94,   94,   94,   96,  696,  424,  421,   96,   96,  696,
716       422,   94,  696,  423,   96,   96,   96,   94,  428,  696,
717        94,  429,  696,  430,   94,   96,  425,  427,   94,   94,
718       696,   96,  432,  434,   96,   94,  431,   94,   96,  696,
719       696,  435,   96,   96,  433,   94,  696,  696,  437,   96,
720        94,   96,   94,  438,  436,  696,   94,   94,   94,   96,
721       440,  442,  696,   94,   96,   94,   96,   94,   94,  439,
722        96,   96,   96,   94,   94,  441,  443,   96,   94,   96,
723
724       451,   96,   96,   94,   94,  696,   94,   96,   96,  696,
725       444,   94,   96,  696,   94,  696,  696,   96,   96,  446,
726        96,  696,  445,  449,   94,   96,  454,  447,   96,  453,
727       450,   94,  448,   94,   94,  452,   94,  696,   96,  696,
728       458,  696,   94,   94,  455,   96,   94,   96,   96,  461,
729        96,  462,   94,  456,  459,  457,   96,   96,   94,  463,
730        96,  464,   94,   94,  696,  460,   96,   94,  467,  696,
731        94,   94,   96,   94,   94,   94,   96,   96,  469,  696,
732        94,   96,  465,  466,   96,   96,   94,   96,   96,   96,
733       468,   94,   94,  470,   96,   94,   94,   94,   94,   94,
734
735        96,   94,  696,   94,  471,   96,   96,  474,  472,   96,
736        96,   96,   96,   96,  696,   96,  475,   96,   94,   94,
737       473,   94,  696,   94,   94,   94,   94,   94,  477,   94,
738       696,   94,   96,   96,   94,   96,  476,   96,   96,   96,
739        96,   96,   94,   96,  478,   96,   94,   94,   96,  696,
740       696,   94,   94,  479,  696,  481,   96,   94,  696,   94,
741        96,   96,  483,  484,  487,   96,   96,   94,  480,  485,
742       482,   96,  486,   96,   94,  488,   94,   94,   94,   94,
743        94,   96,   94,   94,   94,  696,  489,   94,   96,   94,
744        96,   96,   96,   96,   96,  492,   96,   96,   96,  490,
745
746       616,   96,   94,   96,   94,  696,  491,  696,  617,  618,
747       696,  494,  619,   94,  493,  496,   96,   94,   96,  497,
748       495,  501,  498,  500,  503,  502,  499,   96,   94,   94,
749        94,   96,   94,   94,  696,  696,   94,   94,  696,  696,
750        94,   94,   96,   96,   96,   94,   96,   96,  504,  506,
751        96,   96,  505,  507,   96,   96,   94,  696,   94,   96,
752       696,   94,   94,   94,   94,   94,   94,  696,   94,   94,
753        96,  510,   96,   94,  511,   96,   96,   96,   96,   96,
754        96,  508,   96,   96,  509,   94,  696,   96,   94,   94,
755       696,  696,   94,   94,   94,  514,   94,  517,  696,   96,
756
757       512,  518,   96,   96,  513,  519,   96,   96,   96,   94,
758        96,  515,  516,  696,  696,   94,  520,   94,  696,  696,
759        94,   94,  696,   96,  525,  523,   94,  527,  526,   96,
760        94,   96,  524,  522,   96,   96,  521,   94,  696,   94,
761        96,   94,   94,   94,   96,   94,  696,   94,   94,  696,
762       696,   96,  528,   96,   94,   96,   96,   96,  696,   96,
763       529,   96,   96,   94,  531,   94,  530,   94,   96,   94,
764        94,   94,  536,   94,  533,   94,  532,   96,  538,   96,
765        94,   96,  696,   96,   96,   96,  534,   96,  537,   96,
766       542,   94,   94,  535,   96,  539,  543,   94,  540,   94,
767
768       696,   94,  541,   94,   94,   96,   96,   94,  544,   94,
769        94,   96,   94,   96,  546,   96,   94,   96,   96,  696,
770       545,   96,   94,   96,   96,   94,   96,  547,  549,   94,
771        96,   94,  696,  550,  552,   94,   96,   94,  554,   96,
772       555,   94,  548,   96,   94,   96,  556,  551,  696,   96,
773        94,   96,  696,   94,  553,   96,   94,  557,   96,  696,
774        94,  559,  561,  560,   96,   94,  558,   96,   94,   94,
775        96,  562,  564,  563,   96,  696,   94,   94,   94,   96,
776       696,   94,   96,   96,   94,   94,  572,  565,   94,  566,
777        96,   96,   96,   94,  567,   96,   94,   94,   96,   96,
778
779        94,   94,   96,   94,   94,  568,   94,   96,   94,   94,
780        96,   96,  569,  570,   96,   96,  696,   96,   96,  574,
781        96,   94,   96,   96,   94,   94,  573,  575,  576,  696,
782       571,  577,   94,   94,   94,   96,   94,  696,   96,   96,
783        94,  696,   94,  580,  579,  588,   96,   96,   96,  696,
784        96,   94,   94,  589,   96,  578,   96,  582,  696,  696,
785        94,   94,   94,  581,  585,   96,   96,  594,  587,  696,
786        94,  583,  591,  584,   96,   96,   96,  696,  586,   94,
787        94,   94,  590,  595,   96,   94,   94,   94,   94,   94,
788        94,  596,   94,   96,   96,   96,  696,   94,   94,   96,
789
790        96,   96,   96,   96,   96,  597,   96,  696,   94,  696,
791        94,   96,   96,  696,  696,  598,   94,   94,   94,   94,
792        94,  601,   96,  607,   96,  696,  604,  599,  608,  600,
793        96,   96,   96,   96,   96,  602,   94,  603,  696,  605,
794        94,  609,   94,   94,  696,  621,   94,   94,   94,  612,
795        96,   94,  611,  622,   96,   94,   96,   96,  610,   94,
796        96,   96,   96,   94,  614,   96,   94,  696,  613,   96,
797       630,  696,  615,   96,  696,  623,  616,   96,  625,  632,
798        96,  635,  633,  638,  617,  618,  624,   94,  619,  636,
799       618,  617,  618,  619,   94,  619,  626,   94,   94,   94,
800
801       627,   96,   94,   94,  629,  696,  630,  696,   96,   94,
802       630,   96,   96,   96,  628,  632,   96,   96,  633,  632,
803       645,  646,  633,   96,  696,   94,  696,   94,  635,  618,
804       632,  696,  619,  633,  641,  640,  636,  618,  648,   96,
805       619,   96,  696,  652,  642,  638,   94,  650,  643,  644,
806       651,  636,  618,  617,  618,  619,  653,  619,  659,   94,
807        96,  696,  645,  658,  654,  655,  696,  646,  656,  630,
808       696,  618,  696,   96,  619,  660,  632,  696,  632,  633,
809       648,  633,  648,  696,  663,  696,  661,  696,  664,  650,
810       652,  650,  651,  618,  651,  696,  619,  650,  636,  618,
811
812       651,  653,  619,  666,   94,   94,  696,  662,  671,  654,
813       655,   94,  668,  656,  674,  669,  672,  655,   96,   96,
814       656,   94,  654,  655,   94,   96,  656,  663,  664,  696,
815       696,  696,  648,  666,  666,   96,  618,  650,   96,  619,
816       651,  650,  668,  668,  651,  669,  669,  679,  696,  680,
817        94,  696,  696,  696,  671,  675,  655,  676,  668,  656,
818       682,  669,  672,  655,   96,  686,  656,  677,   94,  684,
819       696,   94,  685,  672,  655,  674,   94,  656,  696,  678,
820       679,  696,   96,  654,  655,   96,  680,  656,  666,  655,
821        96,  696,  656,  682,  682,  668,  696,  668,  669,  689,
822
823       669,  690,  684,  684,  696,  685,  685,  696,  655,  686,
824       684,  656,   94,  685,   94,  687,  688,  672,  655,  696,
825       689,  656,  690,   94,  682,   94,   96,   94,   96,  655,
826        94,  684,  656,  684,  685,  696,  685,   96,  696,   96,
827       696,   96,  696,  696,   96,  696,  696,  696,  692,  696,
828       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
829       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
830       696,  693,  696,  696,  696,  694,  696,  696,  696,  696,
831       696,  696,  695,   59,   59,   59,   59,   59,   59,   59,
832        59,   59,   59,   66,   66,   66,   66,  696,   66,   66,
833
834        66,   66,   66,   95,  696,  696,  696,   95,   95,   95,
835       161,  161,  162,  162,  245,  245,  245,  246,  246,  593,
836       593,  593,  593,  620,  696,  696,  696,  620,  620,  620,
837       620,  620,  631,  631,  696,  696,  696,  631,  631,  631,
838       631,  637,  696,  696,  696,  637,  637,  637,  637,  637,
839       647,  647,  696,  696,  696,  647,  647,  647,  647,  649,
840       649,  696,  696,  696,  649,  649,  649,  649,  657,  696,
841       696,  696,  657,  657,  657,  657,  657,  665,  665,  696,
842       696,  696,  665,  665,  665,  665,  667,  667,  696,  696,
843       696,  667,  667,  667,  667,  673,  696,  696,  696,  673,
844
845       673,  673,  673,  673,  681,  681,  696,  696,  696,  681,
846       681,  681,  681,  683,  683,  696,  696,  696,  683,  683,
847       683,  683,  691,  691,  696,  696,  696,  691,  691,  691,
848       691,    3,  696,  696,  696,  696,  696,  696,  696,  696,
849       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
850       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
851       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
852       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
853       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
854       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
855
856       696,  696,  696
857     } ;
858
859 static yyconst short int yy_chk[2504] =
860     {   0,
861         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
862         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
863         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
864         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
865         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
866         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
867         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
868         1,    9,   12,   12,   13,   18,  655,   21,   20,   21,
869        21,   21,   21,   31,   27,   22,   37,   18,   20,   20,
870        22,   13,   25,   29,   29,   55,   25,   31,   22,   27,
871
872        37,   27,   27,    9,   23,  622,   23,   23,   23,   23,
873        32,   38,   36,   59,   32,   32,  588,   23,  618,   45,
874        23,   23,   23,  593,  588,   38,   36,   47,   32,   67,
875        39,   37,   23,   45,  621,   37,   55,   37,   67,   23,
876       589,   47,  621,   36,   39,   59,   41,   23,   36,   40,
877        23,   24,   36,   24,   24,   24,   24,   43,   42,   38,
878        41,   36,   39,   40,   24,   45,   48,   24,   24,   39,
879        44,   43,   42,   39,   46,   47,   39,  572,   47,   24,
880        48,   40,   40,   98,   44,   40,   24,   96,   46,   41,
881        66,   41,   40,   43,   24,   40,   94,   49,   42,   50,
882
883        41,   42,   48,   43,   42,   93,   46,   44,   97,   52,
884        46,   49,   51,   50,   44,   44,   89,   66,   95,   44,
885       101,   53,   81,   52,   81,  104,   51,   81,   81,   81,
886        81,   74,   95,   49,  101,   53,   49,   49,   50,  104,
887        97,   61,  105,   35,  108,  102,   28,   49,   49,   52,
888        49,   17,   51,   53,   50,   52,  105,   51,  108,  102,
889        53,   75,   75,   75,   75,   79,   79,   79,   79,  103,
890        82,   82,   75,   75,  101,   75,   79,   79,   14,   79,
891       104,  106,  107,  103,    8,    3,  105,   75,   75,   82,
892       102,   79,   79,  108,   75,  106,  107,   82,   79,   80,
893
894       109,   80,   80,   80,   80,    0,  110,  111,  112,  113,
895       114,  115,   80,    0,  109,   80,   80,    0,  107,  103,
896       110,  111,  112,  113,  114,  115,  120,   80,    0,    0,
897       116,  106,  109,    0,   80,    0,  117,  118,  110,    0,
898       120,  121,   80,  100,  116,    0,  113,  114,  119,  113,
899       117,  118,  111,  114,  115,  121,  122,  100,  112,  113,
900         0,    0,  119,    0,    0,    0,  123,    0,  124,    0,
901       122,    0,  125,    0,  120,  100,  100,  100,  100,  100,
902       123,  116,  124,  100,    0,  117,  125,  121,  118,  126,
903         0,  100,  100,  100,  127,  100,  128,  129,  119,  130,
904
905       131,  132,    0,  126,  122,  133,  135,    0,  127,  136,
906       128,  129,  134,  130,  131,  132,  123,  138,  124,  133,
907       135,  137,    0,  136,    0,  139,  134,    0,  127,    0,
908         0,  138,  140,    0,  141,  137,  126,  127,  133,  139,
909       142,  132,  129,  130,  127,  128,  140,  132,  141,  138,
910       134,    0,  138,  131,  142,  136,  135,  134,  139,  137,
911         0,  143,  134,  138,  144,  138,  145,  146,  147,  148,
912         0,  180,  140,    0,  141,  143,    0,  137,  144,    0,
913       145,  146,  147,  148,  153,  180,  153,  142,    0,  153,
914       153,  153,  153,  156,  166,  156,  158,  158,  156,  156,
915
916       156,  156,  167,  170,  144,    0,  143,  146,  166,  148,
917       146,    0,    0,  144,  145,  158,  167,  170,  147,  155,
918       155,  155,  155,  158,  159,  159,  159,  159,  168,    0,
919       155,  155,    0,  155,  169,  160,  160,  160,  160,  161,
920       161,  171,  168,  166,  166,  155,  155,  160,  169,  160,
921       173,  172,  155,  167,    0,  171,    0,  170,  161,  174,
922         0,  175,  160,  168,  173,  172,  161,  176,  160,  177,
923       169,  178,    0,  174,  168,  175,    0,  179,  181,  182,
924       183,  176,  184,  177,  185,  178,  171,  172,  186,  187,
925       173,  179,  181,  182,  183,  188,  184,    0,  185,  189,
926
927       173,    0,  186,  187,  190,  192,  178,  175,  179,  188,
928         0,  182,  177,  189,  174,  191,  183,  176,  190,  192,
929       193,  187,    0,    0,  181,  194,  195,    0,  196,  191,
930       184,  197,  198,  185,  193,  188,  190,  186,  186,  194,
931       195,  192,  196,  199,  189,  197,  198,  191,    0,  200,
932       201,  202,  203,    0,    0,  191,  193,  199,  194,  204,
933       193,    0,  195,  200,  201,  202,  203,  197,  198,  205,
934         0,  206,  196,  204,  207,  199,  208,  209,  211,  210,
935       212,  213,  214,  205,  206,  206,  216,  215,  207,  210,
936       208,  209,  211,  210,  212,  213,  214,  202,  203,    0,
937
938       216,  215,  217,  218,  219,  220,  221,  204,    0,  205,
939       207,  222,  223,  209,  208,  224,  217,  218,  219,  220,
940       221,  225,  214,  215,  213,  222,  223,  212,  226,  224,
941       211,    0,  227,  228,  229,  225,  230,  216,  232,  231,
942       233,  220,  226,  235,  234,  222,  227,  228,  229,  219,
943       230,  218,  232,  231,  233,  225,  221,  235,  234,  223,
944       236,  237,  237,  237,  237,  239,  224,  239,    0,  228,
945       239,  239,  239,  239,  236,  233,  234,  235,  226,  231,
946         0,  227,  230,    0,  229,    0,  244,  244,  232,    0,
947       238,  238,  238,  238,  241,  241,  241,  241,  242,  242,
948
949       242,  242,  238,  236,  238,  244,  246,  247,  248,    0,
950       242,    0,  242,  244,  249,  251,  250,  238,  253,  252,
951       246,  247,  248,  238,  254,  242,  255,  256,  249,  251,
952       250,  242,  253,  252,  257,  258,  259,    0,  254,    0,
953       255,  256,  260,  261,    0,  263,    0,  262,  257,  258,
954       259,  247,  250,  252,  249,    0,  260,  261,  248,  263,
955       251,  262,  264,  265,    0,  256,  266,  254,  253,  257,
956       267,  268,  269,  270,  254,  255,  264,  265,  260,  259,
957       266,  262,  258,  261,  267,  268,  269,  270,  271,  272,
958       274,  263,  273,  275,  276,  277,  278,  279,  281,    0,
959
960       280,  282,  271,  272,  274,  265,  273,  275,  276,  277,
961       278,  279,  281,  270,  280,  282,  283,  284,  285,  286,
962       268,  271,  269,  274,  287,  272,  288,  273,  289,    0,
963       283,  284,  285,  286,  290,  291,    0,  292,  287,  276,
964       288,  279,  289,  280,  275,  277,  290,  293,  290,  291,
965       278,  292,  294,  296,    0,  295,    0,  297,    0,    0,
966       298,  293,  288,  299,  283,  300,  294,  296,  285,  295,
967       284,  297,  287,  289,  298,    0,  301,  299,  302,  300,
968       304,  303,    0,    0,  306,  291,  305,  295,  307,  296,
969       301,  308,  302,    0,  304,  303,  293,  297,  306,    0,
970
971       305,  309,  307,  311,    0,  308,    0,  310,    0,  298,
972       312,  313,    0,  300,  302,  309,  299,  311,  305,  314,
973       304,  310,  307,    0,  312,  313,  301,  303,  315,  316,
974       317,  318,  319,  314,  308,  309,    0,  306,  311,    0,
975         0,  310,  315,  316,  317,  318,  319,  320,  320,  320,
976       320,  321,  321,  321,  321,  322,  313,  314,  323,  324,
977       325,  326,  327,  321,    0,  321,    0,  328,  319,  322,
978       318,  329,  323,  324,  325,  326,  327,  330,  321,  315,
979       317,  328,  331,  332,  321,  329,  322,  333,    0,    0,
980       330,  330,    0,  334,  325,  335,  331,  332,  336,  337,
981
982       339,  333,  324,  328,  338,  327,  323,  334,  340,  335,
983       326,  329,  336,  337,  339,    0,  341,  342,  338,    0,
984       343,  333,  340,  344,  345,  346,  347,  335,  332,  334,
985       341,  342,  331,  339,  343,  348,  338,  344,  345,  346,
986       347,    0,  351,  336,  337,  349,  350,  341,  352,  348,
987       353,    0,  354,    0,  356,  344,  351,  357,  355,  349,
988       350,  346,  352,  358,  353,  343,  354,  345,  356,  347,
989       359,  357,  355,  360,  361,    0,    0,  358,  348,  362,
990       363,  349,  350,    0,  359,  364,  353,  360,  361,  351,
991       355,  365,    0,  362,  363,  352,  366,  354,  367,  364,
992
993       358,  369,  368,  370,  371,  365,  359,  357,  367,  372,
994       366,    0,  367,  373,  375,  369,  368,  370,  371,    0,
995       374,  376,  377,  372,    0,  365,  362,  373,  375,    0,
996       363,  378,    0,  364,  374,  376,  377,  379,  370,    0,
997       380,  371,    0,  372,  381,  378,  366,  368,  382,  384,
998         0,  379,  374,  376,  380,  383,  373,  385,  381,    0,
999         0,  377,  382,  384,  375,  386,    0,    0,  379,  383,
1000       387,  385,  388,  379,  378,    0,  389,  390,  392,  386,
1001       382,  384,    0,  391,  387,  393,  388,  395,  394,  381,
1002       389,  390,  392,  396,  397,  383,  386,  391,  398,  393,
1003
1004       394,  395,  394,  399,  401,    0,  400,  396,  397,    0,
1005       387,  402,  398,    0,  404,    0,    0,  399,  401,  389,
1006       400,    0,  388,  392,  403,  402,  397,  390,  404,  396,
1007       393,  405,  391,  407,  406,  395,  408,    0,  403,    0,
1008       401,    0,  409,  410,  398,  405,  411,  407,  406,  404,
1009       408,  404,  412,  399,  402,  400,  409,  410,  413,  404,
1010       411,  404,  414,  415,    0,  403,  412,  416,  407,    0,
1011       417,  418,  413,  419,  420,  421,  414,  415,  409,    0,
1012       422,  416,  405,  406,  417,  418,  423,  419,  420,  421,
1013       408,  424,  425,  410,  422,  426,  427,  428,  429,  430,
1014
1015       423,  431,    0,  432,  413,  424,  425,  421,  414,  426,
1016       427,  428,  429,  430,    0,  431,  422,  432,  433,  434,
1017       417,  435,    0,  436,  437,  438,  440,  439,  425,  441,
1018         0,  442,  433,  434,  443,  435,  423,  436,  437,  438,
1019       440,  439,  444,  441,  431,  442,  445,  446,  443,    0,
1020         0,  447,  448,  432,    0,  436,  444,  449,    0,  450,
1021       445,  446,  438,  439,  442,  447,  448,  451,  434,  440,
1022       437,  449,  441,  450,  452,  444,  453,  454,  455,  456,
1023       458,  451,  457,  459,  462,    0,  445,  460,  452,  461,
1024       453,  454,  455,  456,  458,  450,  457,  459,  462,  448,
1025
1026       606,  460,  463,  461,  464,    0,  449,    0,  606,  606,
1027         0,  453,  606,  465,  452,  455,  463,  466,  464,  456,
1028       454,  461,  457,  460,  462,  461,  459,  465,  467,  468,
1029       469,  466,  470,  471,    0,    0,  472,  473,    0,    0,
1030       474,  475,  467,  468,  469,  476,  470,  471,  463,  465,
1031       472,  473,  464,  466,  474,  475,  477,    0,  478,  476,
1032         0,  479,  480,  481,  482,  483,  484,    0,  485,  486,
1033       477,  473,  478,  487,  474,  479,  480,  481,  482,  483,
1034       484,  471,  485,  486,  472,  488,    0,  487,  489,  490,
1035         0,    0,  491,  492,  493,  479,  494,  482,    0,  488,
1036
1037       476,  484,  489,  490,  477,  486,  491,  492,  493,  495,
1038       494,  480,  481,    0,    0,  496,  487,  497,    0,    0,
1039       498,  499,    0,  495,  492,  490,  501,  494,  493,  496,
1040       500,  497,  491,  489,  498,  499,  488,  502,    0,  503,
1041       501,  504,  505,  506,  500,  508,    0,  507,  509,    0,
1042         0,  502,  495,  503,  511,  504,  505,  506,    0,  508,
1043       497,  507,  509,  510,  500,  512,  498,  513,  511,  514,
1044       515,  516,  504,  517,  502,  518,  501,  510,  507,  512,
1045       519,  513,    0,  514,  515,  516,  502,  517,  505,  518,
1046       511,  520,  521,  503,  519,  508,  512,  522,  509,  523,
1047
1048         0,  524,  510,  525,  526,  520,  521,  527,  514,  528,
1049       529,  522,  530,  523,  517,  524,  531,  525,  526,    0,
1050       516,  527,  534,  528,  529,  537,  530,  520,  522,  532,
1051       531,  533,    0,  523,  525,  535,  534,  536,  527,  537,
1052       528,  538,  521,  532,  539,  533,  529,  524,    0,  535,
1053       540,  536,    0,  541,  526,  538,  542,  530,  539,    0,
1054       543,  532,  534,  533,  540,  544,  531,  541,  545,  547,
1055       542,  535,  537,  536,  543,    0,  546,  548,  549,  544,
1056         0,  551,  545,  547,  550,  552,  550,  538,  553,  541,
1057       546,  548,  549,  554,  543,  551,  555,  556,  550,  552,
1058
1059       557,  558,  553,  559,  560,  544,  561,  554,  562,  563,
1060       555,  556,  546,  548,  557,  558,    0,  559,  560,  553,
1061       561,  564,  562,  563,  565,  566,  551,  555,  556,    0,
1062       549,  557,  567,  568,  569,  564,  573,    0,  565,  566,
1063       571,    0,  575,  562,  561,  570,  567,  568,  569,    0,
1064       573,  570,  574,  570,  571,  560,  575,  564,    0,    0,
1065       576,  577,  578,  563,  567,  570,  574,  573,  569,    0,
1066       579,  565,  571,  566,  576,  577,  578,    0,  568,  580,
1067       581,  582,  570,  574,  579,  583,  584,  585,  586,  587,
1068       595,  576,  590,  580,  581,  582,    0,  591,  596,  583,
1069
1070       584,  585,  586,  587,  595,  578,  590,    0,  597,    0,
1071       594,  591,  596,    0,    0,  579,  598,  599,  600,  601,
1072       602,  583,  597,  590,  594,    0,  586,  581,  591,  582,
1073       598,  599,  600,  601,  602,  584,  603,  585,    0,  587,
1074       604,  594,  605,  608,    0,  607,  609,  610,  611,  599,
1075       603,  607,  598,  607,  604,  612,  605,  608,  597,  613,
1076       609,  610,  611,  614,  601,  607,  615,    0,  600,  612,
1077       617,    0,  603,  613,    0,  608,  616,  614,  610,  617,
1078       615,  619,  617,  620,  616,  616,  608,  623,  616,  619,
1079       619,  620,  620,  619,  624,  620,  611,  625,  626,  627,
1080
1081       612,  623,  628,  629,  615,    0,  630,    0,  624,  641,
1082       631,  625,  626,  627,  613,  630,  628,  629,  630,  631,
1083       632,  633,  631,  641,    0,  640,    0,  642,  635,  632,
1084       633,    0,  632,  633,  624,  623,  635,  635,  636,  640,
1085       635,  642,    0,  637,  625,  638,  643,  636,  627,  629,
1086       636,  637,  637,  638,  638,  637,  639,  638,  641,  644,
1087       643,    0,  645,  640,  639,  639,    0,  646,  639,  647,
1088         0,  645,    0,  644,  645,  642,  646,    0,  647,  646,
1089       648,  647,  649,    0,  650,    0,  643,    0,  651,  648,
1090       652,  649,  648,  650,  649,    0,  650,  651,  652,  652,
1091
1092       651,  653,  652,  654,  658,  659,    0,  644,  656,  653,
1093       653,  660,  654,  653,  657,  654,  656,  656,  658,  659,
1094       656,  661,  657,  657,  662,  660,  657,  663,  664,    0,
1095         0,    0,  665,  666,  667,  661,  663,  664,  662,  663,
1096       664,  665,  666,  667,  665,  666,  667,  668,    0,  669,
1097       675,    0,    0,    0,  671,  659,  668,  660,  669,  668,
1098       672,  669,  671,  671,  675,  673,  671,  661,  676,  672,
1099         0,  677,  672,  673,  673,  674,  678,  673,    0,  662,
1100       679,    0,  676,  674,  674,  677,  680,  674,  681,  679,
1101       678,    0,  679,  682,  683,  680,    0,  681,  680,  684,
1102
1103       681,  685,  682,  683,    0,  682,  683,    0,  684,  686,
1104       685,  684,  687,  685,  688,  676,  677,  686,  686,    0,
1105       689,  686,  690,  692,  691,  693,  687,  694,  688,  689,
1106       695,  690,  689,  691,  690,    0,  691,  692,    0,  693,
1107         0,  694,    0,    0,  695,    0,    0,    0,  687,    0,
1108         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1109         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1110         0,  692,    0,    0,    0,  693,    0,    0,    0,    0,
1111         0,    0,  694,  697,  697,  697,  697,  697,  697,  697,
1112       697,  697,  697,  698,  698,  698,  698,    0,  698,  698,
1113
1114       698,  698,  698,  699,    0,    0,    0,  699,  699,  699,
1115       700,  700,  701,  701,  702,  702,  702,  703,  703,  704,
1116       704,  704,  704,  705,    0,    0,    0,  705,  705,  705,
1117       705,  705,  706,  706,    0,    0,    0,  706,  706,  706,
1118       706,  707,    0,    0,    0,  707,  707,  707,  707,  707,
1119       708,  708,    0,    0,    0,  708,  708,  708,  708,  709,
1120       709,    0,    0,    0,  709,  709,  709,  709,  710,    0,
1121         0,    0,  710,  710,  710,  710,  710,  711,  711,    0,
1122         0,    0,  711,  711,  711,  711,  712,  712,    0,    0,
1123         0,  712,  712,  712,  712,  713,    0,    0,    0,  713,
1124
1125       713,  713,  713,  713,  714,  714,    0,    0,    0,  714,
1126       714,  714,  714,  715,  715,    0,    0,    0,  715,  715,
1127       715,  715,  716,  716,    0,    0,    0,  716,  716,  716,
1128       716,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1129       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1130       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1131       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1132       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1133       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1134       696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
1135
1136       696,  696,  696
1137     } ;
1138
1139 static yy_state_type yy_last_accepting_state;
1140 static char *yy_last_accepting_cpos;
1141
1142 /* The intent behind this definition is that it'll catch
1143  * any uses of REJECT which flex missed.
1144  */
1145 #define REJECT reject_used_but_not_detected
1146 #define yymore() yymore_used_but_not_detected
1147 #define YY_MORE_ADJ 0
1148 #define YY_RESTORE_YY_MORE_OFFSET
1149 char *yytext;
1150 #line 1 "lexer.l"
1151 #define INITIAL 0
1152 #line 10 "lexer.l"
1153 import "ecdefs"
1154 #define YYLTYPE Location
1155
1156 #include "grammar.eh"
1157
1158 bool echoOn = true;
1159 public void SetEchoOn(bool b) { echoOn = b; }
1160
1161 extern YYLTYPE type_yylloc;
1162 extern YYLTYPE expression_yylloc;
1163
1164 extern File fileInput;
1165 int preprocessor();
1166 int comment();
1167
1168 void TESTTTT()
1169 {
1170    yylloc.end.charPos += yyleng;
1171    yylloc.end.pos += yyleng;
1172    type_yylloc.end.charPos += yyleng;
1173    type_yylloc.end.pos += yyleng;
1174    expression_yylloc.end.charPos += yyleng;
1175    expression_yylloc.end.pos += yyleng;
1176 }
1177
1178 #define YY_USER_ACTION  \
1179    TESTTTT();
1180
1181    /*
1182    yylloc.end.charPos += yyleng;
1183    yylloc.end.pos += yyleng;
1184    */
1185
1186 #define YY_INPUT(buf,result,max_size) \
1187    result = fileInput.Read(buf, 1, max_size) \
1188
1189 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1190 File fileStack[MAX_INCLUDE_DEPTH];
1191 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1192 public void SetSomeSourceFileStack(char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1193 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1194 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1195 int include_stack_ptr = 0;
1196
1197 #define uint _uint
1198 default:
1199
1200 #line 1201 "lexer.ec"
1201
1202 /* Macros after this point can all be overridden by user definitions in
1203  * section 1.
1204  */
1205
1206 #ifndef YY_SKIP_YYWRAP
1207 #ifdef __cplusplus
1208 extern "C" int yywrap YY_PROTO(( void ));
1209 #else
1210 extern int yywrap YY_PROTO(( void ));
1211 #endif
1212 #endif
1213
1214 #ifndef YY_NO_UNPUT
1215 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1216 #endif
1217
1218 #ifndef yytext_ptr
1219 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1220 #endif
1221
1222 #ifdef YY_NEED_STRLEN
1223 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1224 #endif
1225
1226 #ifndef YY_NO_INPUT
1227 #ifdef __cplusplus
1228 static int yyinput YY_PROTO(( void ));
1229 #else
1230 static int input YY_PROTO(( void ));
1231 #endif
1232 #endif
1233
1234 #if YY_STACK_USED
1235 static int yy_start_stack_ptr = 0;
1236 static int yy_start_stack_depth = 0;
1237 static int *yy_start_stack = 0;
1238 #ifndef YY_NO_PUSH_STATE
1239 static void yy_push_state YY_PROTO(( int new_state ));
1240 #endif
1241 #ifndef YY_NO_POP_STATE
1242 static void yy_pop_state YY_PROTO(( void ));
1243 #endif
1244 #ifndef YY_NO_TOP_STATE
1245 static int yy_top_state YY_PROTO(( void ));
1246 #endif
1247
1248 #else
1249 #define YY_NO_PUSH_STATE 1
1250 #define YY_NO_POP_STATE 1
1251 #define YY_NO_TOP_STATE 1
1252 #endif
1253
1254 #ifdef YY_MALLOC_DECL
1255 YY_MALLOC_DECL
1256 #else
1257 #if __STDC__
1258 #ifndef __cplusplus
1259 #include <stdlib.h>
1260 #endif
1261 #else
1262 /* Just try to get by without declaring the routines.  This will fail
1263  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1264  * or sizeof(void*) != sizeof(int).
1265  */
1266 #endif
1267 #endif
1268
1269 /* Amount of stuff to slurp up with each read. */
1270 #ifndef YY_READ_BUF_SIZE
1271 #define YY_READ_BUF_SIZE 8192
1272 #endif
1273
1274 /* Copy whatever the last rule matched to the standard output. */
1275
1276 #ifndef ECHO
1277 /* This used to be an fputs(), but since the string might contain NUL's,
1278  * we now use fwrite().
1279  */
1280 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1281 #endif
1282
1283 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1284  * is returned in "result".
1285  */
1286 #ifndef YY_INPUT
1287 #define YY_INPUT(buf,result,max_size) \
1288         if ( yy_current_buffer->yy_is_interactive ) \
1289                 { \
1290                 int c = '*', n; \
1291                 for ( n = 0; n < max_size && \
1292                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1293                         buf[n] = (char) c; \
1294                 if ( c == '\n' ) \
1295                         buf[n++] = (char) c; \
1296                 if ( c == EOF && ferror( yyin ) ) \
1297                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1298                 result = n; \
1299                 } \
1300         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1301                   && ferror( yyin ) ) \
1302                 YY_FATAL_ERROR( "input in flex scanner failed" );
1303 #endif
1304
1305 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1306  * we don't want an extra ';' after the "return" because that will cause
1307  * some compilers to complain about unreachable statements.
1308  */
1309 #ifndef yyterminate
1310 #define yyterminate() return YY_NULL
1311 #endif
1312
1313 /* Number of entries by which start-condition stack grows. */
1314 #ifndef YY_START_STACK_INCR
1315 #define YY_START_STACK_INCR 25
1316 #endif
1317
1318 /* Report a fatal error. */
1319 #ifndef YY_FATAL_ERROR
1320 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1321 #endif
1322
1323 /* Default declaration of generated scanner - a define so the user can
1324  * easily add parameters.
1325  */
1326 #ifndef YY_DECL
1327 #define YY_DECL int yylex YY_PROTO(( void ))
1328 #endif
1329
1330 /* Code executed at the beginning of each rule, after yytext and yyleng
1331  * have been set up.
1332  */
1333 #ifndef YY_USER_ACTION
1334 #define YY_USER_ACTION
1335 #endif
1336
1337 /* Code executed at the end of each rule. */
1338 #ifndef YY_BREAK
1339 #define YY_BREAK break;
1340 #endif
1341
1342 #define YY_RULE_SETUP \
1343         YY_USER_ACTION
1344
1345 YY_DECL
1346         {
1347         register yy_state_type yy_current_state;
1348         register char *yy_cp, *yy_bp;
1349         register int yy_act;
1350
1351 #line 59 "lexer.l"
1352
1353
1354
1355    yylloc.start = yylloc.end; 
1356    type_yylloc.start = type_yylloc.end; 
1357    expression_yylloc.start = expression_yylloc.end; 
1358
1359
1360 #line 1361 "lexer.ec"
1361
1362         if ( yy_init )
1363                 {
1364                 yy_init = 0;
1365
1366 #ifdef YY_USER_INIT
1367                 YY_USER_INIT;
1368 #endif
1369
1370                 if ( ! yy_start )
1371                         yy_start = 1;   /* first start state */
1372
1373                 if ( ! yyin )
1374                         yyin = stdin;
1375
1376                 if ( ! yyout )
1377                         yyout = stdout;
1378
1379                 if ( ! yy_current_buffer )
1380                         yy_current_buffer =
1381                                 yy_create_buffer( yyin, YY_BUF_SIZE );
1382
1383                 yy_load_buffer_state();
1384                 }
1385
1386         while ( 1 )             /* loops until end-of-file is reached */
1387                 {
1388                 yy_cp = yy_c_buf_p;
1389
1390                 /* Support of yytext. */
1391                 *yy_cp = yy_hold_char;
1392
1393                 /* yy_bp points to the position in yy_ch_buf of the start of
1394                  * the current run.
1395                  */
1396                 yy_bp = yy_cp;
1397
1398                 yy_current_state = yy_start;
1399 yy_match:
1400                 do
1401                         {
1402                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1403                         if ( yy_accept[yy_current_state] )
1404                                 {
1405                                 yy_last_accepting_state = yy_current_state;
1406                                 yy_last_accepting_cpos = yy_cp;
1407                                 }
1408                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1409                                 {
1410                                 yy_current_state = (int) yy_def[yy_current_state];
1411                                 if ( yy_current_state >= 697 )
1412                                         yy_c = yy_meta[(unsigned int) yy_c];
1413                                 }
1414                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1415                         ++yy_cp;
1416                         }
1417                 while ( yy_base[yy_current_state] != 2432 );
1418
1419 yy_find_action:
1420                 yy_act = yy_accept[yy_current_state];
1421                 if ( yy_act == 0 )
1422                         { /* have to back up */
1423                         yy_cp = yy_last_accepting_cpos;
1424                         yy_current_state = yy_last_accepting_state;
1425                         yy_act = yy_accept[yy_current_state];
1426                         }
1427
1428                 YY_DO_BEFORE_ACTION;
1429
1430
1431 do_action:      /* This label is used only to access EOF actions. */
1432
1433
1434                 switch ( yy_act )
1435         { /* beginning of action switch */
1436                         case 0: /* must back up */
1437                         /* undo the effects of YY_DO_BEFORE_ACTION */
1438                         *yy_cp = yy_hold_char;
1439                         yy_cp = yy_last_accepting_cpos;
1440                         yy_current_state = yy_last_accepting_state;
1441                         goto yy_find_action;
1442
1443 case 1:
1444 YY_RULE_SETUP
1445 #line 67 "lexer.l"
1446 { preprocessor(); }
1447         YY_BREAK
1448 case 2:
1449 YY_RULE_SETUP
1450 #line 68 "lexer.l"
1451 { comment(); }
1452         YY_BREAK
1453 case 3:
1454 YY_RULE_SETUP
1455 #line 69 "lexer.l"
1456 { commentCPP(); }
1457         YY_BREAK
1458 case 4:
1459 YY_RULE_SETUP
1460 #line 71 "lexer.l"
1461 { return(AUTO); }
1462         YY_BREAK
1463 case 5:
1464 YY_RULE_SETUP
1465 #line 72 "lexer.l"
1466 { return(BREAK); }
1467         YY_BREAK
1468 case 6:
1469 YY_RULE_SETUP
1470 #line 73 "lexer.l"
1471 { return(CASE); }
1472         YY_BREAK
1473 case 7:
1474 YY_RULE_SETUP
1475 #line 74 "lexer.l"
1476 { return(CHAR); }
1477         YY_BREAK
1478 case 8:
1479 YY_RULE_SETUP
1480 #line 75 "lexer.l"
1481 { return(CONST); }
1482         YY_BREAK
1483 case 9:
1484 YY_RULE_SETUP
1485 #line 76 "lexer.l"
1486 { return(CONTINUE); }
1487         YY_BREAK
1488 case 10:
1489 YY_RULE_SETUP
1490 #line 77 "lexer.l"
1491 { return(DEFAULT); }
1492         YY_BREAK
1493 case 11:
1494 YY_RULE_SETUP
1495 #line 78 "lexer.l"
1496 { return(DO); }
1497         YY_BREAK
1498 case 12:
1499 YY_RULE_SETUP
1500 #line 79 "lexer.l"
1501 { return(DOUBLE); }
1502         YY_BREAK
1503 case 13:
1504 YY_RULE_SETUP
1505 #line 80 "lexer.l"
1506 { return(ELSE); }
1507         YY_BREAK
1508 case 14:
1509 YY_RULE_SETUP
1510 #line 81 "lexer.l"
1511 { return(ENUM); }
1512         YY_BREAK
1513 case 15:
1514 YY_RULE_SETUP
1515 #line 82 "lexer.l"
1516 { return(EXTERN); }
1517         YY_BREAK
1518 case 16:
1519 YY_RULE_SETUP
1520 #line 83 "lexer.l"
1521 { return(FLOAT); }
1522         YY_BREAK
1523 case 17:
1524 YY_RULE_SETUP
1525 #line 84 "lexer.l"
1526 { return(FOR); }
1527         YY_BREAK
1528 case 18:
1529 YY_RULE_SETUP
1530 #line 85 "lexer.l"
1531 { return(GOTO); }
1532         YY_BREAK
1533 case 19:
1534 YY_RULE_SETUP
1535 #line 86 "lexer.l"
1536 { return(IF); }
1537         YY_BREAK
1538 case 20:
1539 YY_RULE_SETUP
1540 #line 87 "lexer.l"
1541 { return(INT); }
1542         YY_BREAK
1543 case 21:
1544 YY_RULE_SETUP
1545 #line 88 "lexer.l"
1546 { return(UINT); }
1547         YY_BREAK
1548 /* "uint16"            { return(UINT16); } */
1549 /* "uint32"            { return(UINT32); } */
1550 /* "bool"              { return(BOOL_TOKEN); } */
1551 case 22:
1552 YY_RULE_SETUP
1553 #line 92 "lexer.l"
1554 { return(LONG); }
1555         YY_BREAK
1556 case 23:
1557 YY_RULE_SETUP
1558 #line 93 "lexer.l"
1559 { return(REGISTER); }
1560         YY_BREAK
1561 case 24:
1562 YY_RULE_SETUP
1563 #line 94 "lexer.l"
1564 { return(RETURN); }
1565         YY_BREAK
1566 case 25:
1567 YY_RULE_SETUP
1568 #line 95 "lexer.l"
1569 { return(SHORT); }
1570         YY_BREAK
1571 case 26:
1572 YY_RULE_SETUP
1573 #line 96 "lexer.l"
1574 { return(SIGNED); }
1575         YY_BREAK
1576 case 27:
1577 YY_RULE_SETUP
1578 #line 97 "lexer.l"
1579 { return(SIGNED); }
1580         YY_BREAK
1581 case 28:
1582 YY_RULE_SETUP
1583 #line 98 "lexer.l"
1584 { return(SIZEOF); }
1585         YY_BREAK
1586 case 29:
1587 YY_RULE_SETUP
1588 #line 99 "lexer.l"
1589 { return(STATIC); }
1590         YY_BREAK
1591 case 30:
1592 YY_RULE_SETUP
1593 #line 100 "lexer.l"
1594 { return(STRUCT); }
1595         YY_BREAK
1596 case 31:
1597 YY_RULE_SETUP
1598 #line 101 "lexer.l"
1599 { return(SWITCH); }
1600         YY_BREAK
1601 case 32:
1602 YY_RULE_SETUP
1603 #line 102 "lexer.l"
1604 { return(TYPEDEF); }
1605         YY_BREAK
1606 case 33:
1607 YY_RULE_SETUP
1608 #line 103 "lexer.l"
1609 { return(UNION); }
1610         YY_BREAK
1611 case 34:
1612 YY_RULE_SETUP
1613 #line 104 "lexer.l"
1614 { return(UNSIGNED); }
1615         YY_BREAK
1616 case 35:
1617 YY_RULE_SETUP
1618 #line 105 "lexer.l"
1619 { return(VOID); }
1620         YY_BREAK
1621 case 36:
1622 YY_RULE_SETUP
1623 #line 106 "lexer.l"
1624 { return(VOLATILE); }
1625         YY_BREAK
1626 case 37:
1627 YY_RULE_SETUP
1628 #line 107 "lexer.l"
1629 { return(VOLATILE); }
1630         YY_BREAK
1631 case 38:
1632 YY_RULE_SETUP
1633 #line 108 "lexer.l"
1634 { return(WHILE); }
1635         YY_BREAK
1636 case 39:
1637 YY_RULE_SETUP
1638 #line 110 "lexer.l"
1639 { return(PROPERTY); }
1640         YY_BREAK
1641 case 40:
1642 YY_RULE_SETUP
1643 #line 111 "lexer.l"
1644 { return(SETPROP); }    // TODO: Don't make this a keyword...
1645         YY_BREAK
1646 case 41:
1647 YY_RULE_SETUP
1648 #line 112 "lexer.l"
1649 { return(GETPROP); }    // TODO: Don't make this a keyword...
1650         YY_BREAK
1651 case 42:
1652 YY_RULE_SETUP
1653 #line 113 "lexer.l"
1654 { return(ISPROPSET); }    // TODO: Don't make this a keyword...
1655         YY_BREAK
1656 case 43:
1657 YY_RULE_SETUP
1658 #line 114 "lexer.l"
1659 { return(CLASS); }
1660         YY_BREAK
1661 case 44:
1662 YY_RULE_SETUP
1663 #line 115 "lexer.l"
1664 { return(THISCLASS); }
1665         YY_BREAK
1666 case 45:
1667 YY_RULE_SETUP
1668 #line 116 "lexer.l"
1669 { return(VIRTUAL); }
1670         YY_BREAK
1671 case 46:
1672 YY_RULE_SETUP
1673 #line 117 "lexer.l"
1674 { return(DELETE); }
1675         YY_BREAK
1676 case 47:
1677 YY_RULE_SETUP
1678 #line 118 "lexer.l"
1679 { return(NEWOP); }
1680         YY_BREAK
1681 case 48:
1682 YY_RULE_SETUP
1683 #line 119 "lexer.l"
1684 { return(NEW0OP); }
1685         YY_BREAK
1686 case 49:
1687 YY_RULE_SETUP
1688 #line 120 "lexer.l"
1689 { return(RENEW); }
1690         YY_BREAK
1691 case 50:
1692 YY_RULE_SETUP
1693 #line 121 "lexer.l"
1694 { return(RENEW0); }
1695         YY_BREAK
1696 case 51:
1697 YY_RULE_SETUP
1698 #line 122 "lexer.l"
1699 { return(IMPORT); }
1700         YY_BREAK
1701 case 52:
1702 YY_RULE_SETUP
1703 #line 123 "lexer.l"
1704 { return(DEFINE); }
1705         YY_BREAK
1706 case 53:
1707 YY_RULE_SETUP
1708 #line 124 "lexer.l"
1709 { return(INT64); }
1710         YY_BREAK
1711 case 54:
1712 YY_RULE_SETUP
1713 #line 125 "lexer.l"
1714 { return(INT64); }
1715         YY_BREAK
1716 case 55:
1717 YY_RULE_SETUP
1718 #line 126 "lexer.l"
1719 { return(VALIST); }
1720         YY_BREAK
1721 case 56:
1722 YY_RULE_SETUP
1723 #line 127 "lexer.l"
1724 { return(VAARG); }
1725         YY_BREAK
1726 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1727 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1728 case 57:
1729 YY_RULE_SETUP
1730 #line 133 "lexer.l"
1731 { return(EXT_ATTRIB); }
1732         YY_BREAK
1733 case 58:
1734 YY_RULE_SETUP
1735 #line 134 "lexer.l"
1736 { return(EXT_ATTRIB); }
1737         YY_BREAK
1738 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1739 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1740 case 59:
1741 YY_RULE_SETUP
1742 #line 139 "lexer.l"
1743 { return(EXT_STORAGE); }
1744         YY_BREAK
1745 case 60:
1746 YY_RULE_SETUP
1747 #line 140 "lexer.l"
1748 { return(EXT_STORAGE); }
1749         YY_BREAK
1750 case 61:
1751 YY_RULE_SETUP
1752 #line 141 "lexer.l"
1753 { return(EXT_STORAGE); }
1754         YY_BREAK
1755 case 62:
1756 YY_RULE_SETUP
1757 #line 142 "lexer.l"
1758 { return(EXT_STORAGE); }
1759         YY_BREAK
1760 case 63:
1761 YY_RULE_SETUP
1762 #line 143 "lexer.l"
1763 { return(EXT_STORAGE); }
1764         YY_BREAK
1765 case 64:
1766 YY_RULE_SETUP
1767 #line 144 "lexer.l"
1768 { return(EXT_STORAGE); }
1769         YY_BREAK
1770 case 65:
1771 YY_RULE_SETUP
1772 #line 145 "lexer.l"
1773 { return(EXT_STORAGE); }
1774         YY_BREAK
1775 case 66:
1776 YY_RULE_SETUP
1777 #line 146 "lexer.l"
1778 { return(EXT_DECL); }
1779         YY_BREAK
1780 case 67:
1781 YY_RULE_SETUP
1782 #line 147 "lexer.l"
1783 { return(EXT_DECL); }
1784         YY_BREAK
1785 case 68:
1786 YY_RULE_SETUP
1787 #line 148 "lexer.l"
1788 { return(EXT_DECL); }
1789         YY_BREAK
1790 case 69:
1791 YY_RULE_SETUP
1792 #line 149 "lexer.l"
1793 { return(EXT_DECL); }
1794         YY_BREAK
1795 case 70:
1796 YY_RULE_SETUP
1797 #line 150 "lexer.l"
1798 { return(EXT_DECL); }
1799         YY_BREAK
1800 case 71:
1801 YY_RULE_SETUP
1802 #line 151 "lexer.l"
1803 { return(EXT_DECL); }
1804         YY_BREAK
1805 case 72:
1806 YY_RULE_SETUP
1807 #line 152 "lexer.l"
1808 { return(EXT_DECL); }
1809         YY_BREAK
1810 case 73:
1811 YY_RULE_SETUP
1812 #line 153 "lexer.l"
1813 { return(EXT_DECL); }
1814         YY_BREAK
1815 case 74:
1816 YY_RULE_SETUP
1817 #line 154 "lexer.l"
1818 { return(PUBLIC); }
1819         YY_BREAK
1820 case 75:
1821 YY_RULE_SETUP
1822 #line 155 "lexer.l"
1823 { return(PRIVATE); }
1824         YY_BREAK
1825 case 76:
1826 YY_RULE_SETUP
1827 #line 156 "lexer.l"
1828 { return(TYPED_OBJECT); }
1829         YY_BREAK
1830 case 77:
1831 YY_RULE_SETUP
1832 #line 157 "lexer.l"
1833 { return(ANY_OBJECT); }
1834         YY_BREAK
1835 case 78:
1836 YY_RULE_SETUP
1837 #line 158 "lexer.l"
1838 { return(_INCREF); }
1839         YY_BREAK
1840 case 79:
1841 YY_RULE_SETUP
1842 #line 159 "lexer.l"
1843 { return(EXTENSION); }
1844         YY_BREAK
1845 case 80:
1846 YY_RULE_SETUP
1847 #line 160 "lexer.l"
1848 { return(EXTENSION); }
1849         YY_BREAK
1850 case 81:
1851 YY_RULE_SETUP
1852 #line 161 "lexer.l"
1853 { return(ASM); }
1854         YY_BREAK
1855 case 82:
1856 YY_RULE_SETUP
1857 #line 162 "lexer.l"
1858 { return(ASM); }
1859         YY_BREAK
1860 case 83:
1861 YY_RULE_SETUP
1862 #line 163 "lexer.l"
1863 { return(ASM); }
1864         YY_BREAK
1865 case 84:
1866 YY_RULE_SETUP
1867 #line 164 "lexer.l"
1868 { return(TYPEOF); }
1869         YY_BREAK
1870 case 85:
1871 YY_RULE_SETUP
1872 #line 165 "lexer.l"
1873 { return(WATCH); }
1874         YY_BREAK
1875 case 86:
1876 YY_RULE_SETUP
1877 #line 166 "lexer.l"
1878 { return(STOPWATCHING); }
1879         YY_BREAK
1880 case 87:
1881 YY_RULE_SETUP
1882 #line 167 "lexer.l"
1883 { return(FIREWATCHERS); }
1884         YY_BREAK
1885 case 88:
1886 YY_RULE_SETUP
1887 #line 168 "lexer.l"
1888 { return(WATCHABLE); }
1889         YY_BREAK
1890 case 89:
1891 YY_RULE_SETUP
1892 #line 169 "lexer.l"
1893 { return(CLASS_DESIGNER); }
1894         YY_BREAK
1895 case 90:
1896 YY_RULE_SETUP
1897 #line 170 "lexer.l"
1898 { return(CLASS_NO_EXPANSION); }
1899         YY_BREAK
1900 case 91:
1901 YY_RULE_SETUP
1902 #line 171 "lexer.l"
1903 { return(CLASS_FIXED); }
1904         YY_BREAK
1905 case 92:
1906 YY_RULE_SETUP
1907 #line 172 "lexer.l"
1908 { return(CLASS_DEFAULT_PROPERTY); }
1909         YY_BREAK
1910 case 93:
1911 YY_RULE_SETUP
1912 #line 173 "lexer.l"
1913 { return(PROPERTY_CATEGORY); }
1914         YY_BREAK
1915 case 94:
1916 YY_RULE_SETUP
1917 #line 174 "lexer.l"
1918 { return(CLASS_DATA); }
1919         YY_BREAK
1920 case 95:
1921 YY_RULE_SETUP
1922 #line 175 "lexer.l"
1923 { return(CLASS_PROPERTY); }
1924         YY_BREAK
1925 case 96:
1926 YY_RULE_SETUP
1927 #line 176 "lexer.l"
1928 { return(SUBCLASS); }
1929         YY_BREAK
1930 case 97:
1931 YY_RULE_SETUP
1932 #line 177 "lexer.l"
1933 { return(NAMESPACE); }
1934         YY_BREAK
1935 case 98:
1936 YY_RULE_SETUP
1937 #line 178 "lexer.l"
1938 { return(DBTABLE); }
1939         YY_BREAK
1940 case 99:
1941 YY_RULE_SETUP
1942 #line 179 "lexer.l"
1943 { return(DBFIELD); }
1944         YY_BREAK
1945 case 100:
1946 YY_RULE_SETUP
1947 #line 180 "lexer.l"
1948 { return(DBINDEX); }
1949         YY_BREAK
1950 case 101:
1951 YY_RULE_SETUP
1952 #line 181 "lexer.l"
1953 { return(DATABASE_OPEN); }
1954         YY_BREAK
1955 case 102:
1956 YY_RULE_SETUP
1957 #line 183 "lexer.l"
1958 { return(check_type()); }     // {L}({L}|{D})*      { return(check_type()); }  // ("::"|(({IDENT}"::")*)){IDENT}  { return(check_type()); }     // {L}({L}|{D})*      { return(check_type()); }
1959         YY_BREAK
1960 case 103:
1961 YY_RULE_SETUP
1962 #line 185 "lexer.l"
1963 { return(CONSTANT); }
1964         YY_BREAK
1965 case 104:
1966 YY_RULE_SETUP
1967 #line 186 "lexer.l"
1968 { return(CONSTANT); }
1969         YY_BREAK
1970 case 105:
1971 YY_RULE_SETUP
1972 #line 187 "lexer.l"
1973 { return(CONSTANT); }
1974         YY_BREAK
1975 case 106:
1976 YY_RULE_SETUP
1977 #line 188 "lexer.l"
1978 { return(CONSTANT); }
1979         YY_BREAK
1980 case 107:
1981 YY_RULE_SETUP
1982 #line 190 "lexer.l"
1983 { return(CONSTANT); }
1984         YY_BREAK
1985 case 108:
1986 YY_RULE_SETUP
1987 #line 191 "lexer.l"
1988 { return(CONSTANT); }
1989         YY_BREAK
1990 case 109:
1991 YY_RULE_SETUP
1992 #line 192 "lexer.l"
1993 { return(CONSTANT); }
1994         YY_BREAK
1995 case 110:
1996 YY_RULE_SETUP
1997 #line 194 "lexer.l"
1998 { return(STRING_LITERAL); }
1999         YY_BREAK
2000 case 111:
2001 YY_RULE_SETUP
2002 #line 196 "lexer.l"
2003 { return(ELLIPSIS); }
2004         YY_BREAK
2005 case 112:
2006 YY_RULE_SETUP
2007 #line 197 "lexer.l"
2008 { return(RIGHT_ASSIGN); }
2009         YY_BREAK
2010 case 113:
2011 YY_RULE_SETUP
2012 #line 198 "lexer.l"
2013 { return(LEFT_ASSIGN); }
2014         YY_BREAK
2015 case 114:
2016 YY_RULE_SETUP
2017 #line 199 "lexer.l"
2018 { return(ADD_ASSIGN); }
2019         YY_BREAK
2020 case 115:
2021 YY_RULE_SETUP
2022 #line 200 "lexer.l"
2023 { return(SUB_ASSIGN); }
2024         YY_BREAK
2025 case 116:
2026 YY_RULE_SETUP
2027 #line 201 "lexer.l"
2028 { return(MUL_ASSIGN); }
2029         YY_BREAK
2030 case 117:
2031 YY_RULE_SETUP
2032 #line 202 "lexer.l"
2033 { return(DIV_ASSIGN); }
2034         YY_BREAK
2035 case 118:
2036 YY_RULE_SETUP
2037 #line 203 "lexer.l"
2038 { return(MOD_ASSIGN); }
2039         YY_BREAK
2040 case 119:
2041 YY_RULE_SETUP
2042 #line 204 "lexer.l"
2043 { return(AND_ASSIGN); }
2044         YY_BREAK
2045 case 120:
2046 YY_RULE_SETUP
2047 #line 205 "lexer.l"
2048 { return(XOR_ASSIGN); }
2049         YY_BREAK
2050 case 121:
2051 YY_RULE_SETUP
2052 #line 206 "lexer.l"
2053 { return(OR_ASSIGN); }
2054         YY_BREAK
2055 case 122:
2056 YY_RULE_SETUP
2057 #line 207 "lexer.l"
2058 { return(RIGHT_OP); }
2059         YY_BREAK
2060 case 123:
2061 YY_RULE_SETUP
2062 #line 208 "lexer.l"
2063 { return(LEFT_OP); }
2064         YY_BREAK
2065 case 124:
2066 YY_RULE_SETUP
2067 #line 209 "lexer.l"
2068 { return(INC_OP); }
2069         YY_BREAK
2070 case 125:
2071 YY_RULE_SETUP
2072 #line 210 "lexer.l"
2073 { return(DEC_OP); }
2074         YY_BREAK
2075 case 126:
2076 YY_RULE_SETUP
2077 #line 211 "lexer.l"
2078 { return(PTR_OP); }
2079         YY_BREAK
2080 case 127:
2081 YY_RULE_SETUP
2082 #line 212 "lexer.l"
2083 { return(AND_OP); }
2084         YY_BREAK
2085 case 128:
2086 YY_RULE_SETUP
2087 #line 213 "lexer.l"
2088 { return(OR_OP); }
2089         YY_BREAK
2090 case 129:
2091 YY_RULE_SETUP
2092 #line 214 "lexer.l"
2093 { return(LE_OP); }
2094         YY_BREAK
2095 case 130:
2096 YY_RULE_SETUP
2097 #line 215 "lexer.l"
2098 { return(GE_OP); }
2099         YY_BREAK
2100 case 131:
2101 YY_RULE_SETUP
2102 #line 216 "lexer.l"
2103 { return(EQ_OP); }
2104         YY_BREAK
2105 case 132:
2106 YY_RULE_SETUP
2107 #line 217 "lexer.l"
2108 { return(NE_OP); }
2109         YY_BREAK
2110 /* "::"        { return(CLASS_OP); } */
2111 case 133:
2112 YY_RULE_SETUP
2113 #line 219 "lexer.l"
2114 { return(';'); }
2115         YY_BREAK
2116 case 134:
2117 YY_RULE_SETUP
2118 #line 220 "lexer.l"
2119 { return('{'); }
2120         YY_BREAK
2121 case 135:
2122 YY_RULE_SETUP
2123 #line 221 "lexer.l"
2124 { return('}'); }
2125         YY_BREAK
2126 case 136:
2127 YY_RULE_SETUP
2128 #line 222 "lexer.l"
2129 { return(','); }
2130         YY_BREAK
2131 case 137:
2132 YY_RULE_SETUP
2133 #line 223 "lexer.l"
2134 { return(':'); }
2135         YY_BREAK
2136 case 138:
2137 YY_RULE_SETUP
2138 #line 224 "lexer.l"
2139 { return('='); }
2140         YY_BREAK
2141 case 139:
2142 YY_RULE_SETUP
2143 #line 225 "lexer.l"
2144 { return('('); }
2145         YY_BREAK
2146 case 140:
2147 YY_RULE_SETUP
2148 #line 226 "lexer.l"
2149 { return(')'); }
2150         YY_BREAK
2151 case 141:
2152 YY_RULE_SETUP
2153 #line 227 "lexer.l"
2154 { return('['); }
2155         YY_BREAK
2156 case 142:
2157 YY_RULE_SETUP
2158 #line 228 "lexer.l"
2159 { return(']'); }
2160         YY_BREAK
2161 case 143:
2162 YY_RULE_SETUP
2163 #line 229 "lexer.l"
2164 { return('.'); }
2165         YY_BREAK
2166 case 144:
2167 YY_RULE_SETUP
2168 #line 230 "lexer.l"
2169 { return('&'); }
2170         YY_BREAK
2171 case 145:
2172 YY_RULE_SETUP
2173 #line 231 "lexer.l"
2174 { return('!'); }
2175         YY_BREAK
2176 case 146:
2177 YY_RULE_SETUP
2178 #line 232 "lexer.l"
2179 { return('~'); }
2180         YY_BREAK
2181 case 147:
2182 YY_RULE_SETUP
2183 #line 233 "lexer.l"
2184 { return('-'); }
2185         YY_BREAK
2186 case 148:
2187 YY_RULE_SETUP
2188 #line 234 "lexer.l"
2189 { return('+'); }
2190         YY_BREAK
2191 case 149:
2192 YY_RULE_SETUP
2193 #line 235 "lexer.l"
2194 { return('*'); }
2195         YY_BREAK
2196 case 150:
2197 YY_RULE_SETUP
2198 #line 236 "lexer.l"
2199 { return('/'); }
2200         YY_BREAK
2201 case 151:
2202 YY_RULE_SETUP
2203 #line 237 "lexer.l"
2204 { return('%'); }
2205         YY_BREAK
2206 case 152:
2207 YY_RULE_SETUP
2208 #line 238 "lexer.l"
2209 { return('<'); }
2210         YY_BREAK
2211 case 153:
2212 YY_RULE_SETUP
2213 #line 239 "lexer.l"
2214 { return('>'); }
2215         YY_BREAK
2216 case 154:
2217 YY_RULE_SETUP
2218 #line 240 "lexer.l"
2219 { return('^'); }
2220         YY_BREAK
2221 case 155:
2222 YY_RULE_SETUP
2223 #line 241 "lexer.l"
2224 { return('|'); }
2225         YY_BREAK
2226 case 156:
2227 YY_RULE_SETUP
2228 #line 242 "lexer.l"
2229 { return('?'); }
2230         YY_BREAK
2231 case 157:
2232 YY_RULE_SETUP
2233 #line 243 "lexer.l"
2234 { return('$'); }
2235         YY_BREAK
2236 case YY_STATE_EOF(INITIAL):
2237 #line 245 "lexer.l"
2238 {
2239       if ( --include_stack_ptr < 0 )
2240       {
2241          yyterminate();
2242       }
2243       else
2244       {
2245          delete fileInput;
2246          yy_delete_buffer( YY_CURRENT_BUFFER );
2247          fileInput = fileStack[include_stack_ptr];
2248          yylloc = locStack[include_stack_ptr];
2249          type_yylloc = locStack[include_stack_ptr];
2250          expression_yylloc = locStack[include_stack_ptr];
2251          yy_switch_to_buffer(include_stack[include_stack_ptr] );
2252          defaultDeclMode = declMode = declModeStack[include_stack_ptr];
2253       }
2254    }
2255         YY_BREAK
2256 case 158:
2257 YY_RULE_SETUP
2258 #line 264 "lexer.l"
2259 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2260         YY_BREAK
2261 case 159:
2262 YY_RULE_SETUP
2263 #line 265 "lexer.l"
2264
2265    yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end; 
2266    type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end; 
2267    expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end; 
2268    }
2269         YY_BREAK
2270 case 160:
2271 YY_RULE_SETUP
2272 #line 270 "lexer.l"
2273
2274    yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos; 
2275    expression_yylloc.start.charPos++ /*= 3 - (expression_yylloc.start.col % 3)*/; expression_yylloc.end.charPos = expression_yylloc.start.charPos; expression_yylloc.start.pos = expression_yylloc.end.pos; 
2276    type_yylloc.start.charPos++ /*= 3 - (type_yylloc.start.col % 3)*/; type_yylloc.end.charPos = type_yylloc.start.charPos; type_yylloc.start.pos = type_yylloc.end.pos; 
2277    }
2278         YY_BREAK
2279 case 161:
2280 YY_RULE_SETUP
2281 #line 276 "lexer.l"
2282 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end;  type_yylloc.start = type_yylloc.end; }
2283         YY_BREAK
2284 case 162:
2285 YY_RULE_SETUP
2286 #line 278 "lexer.l"
2287 ECHO;
2288         YY_BREAK
2289 #line 2290 "lexer.ec"
2290
2291         case YY_END_OF_BUFFER:
2292                 {
2293                 /* Amount of text matched not including the EOB char. */
2294                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2295
2296                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2297                 *yy_cp = yy_hold_char;
2298                 YY_RESTORE_YY_MORE_OFFSET
2299
2300                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2301                         {
2302                         /* We're scanning a new file or input source.  It's
2303                          * possible that this happened because the user
2304                          * just pointed yyin at a new source and called
2305                          * yylex().  If so, then we have to assure
2306                          * consistency between yy_current_buffer and our
2307                          * globals.  Here is the right place to do so, because
2308                          * this is the first action (other than possibly a
2309                          * back-up) that will match for the new input source.
2310                          */
2311                         yy_n_chars = yy_current_buffer->yy_n_chars;
2312                         yy_current_buffer->yy_input_file = yyin;
2313                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2314                         }
2315
2316                 /* Note that here we test for yy_c_buf_p "<=" to the position
2317                  * of the first EOB in the buffer, since yy_c_buf_p will
2318                  * already have been incremented past the NUL character
2319                  * (since all states make transitions on EOB to the
2320                  * end-of-buffer state).  Contrast this with the test
2321                  * in input().
2322                  */
2323                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2324                         { /* This was really a NUL. */
2325                         yy_state_type yy_next_state;
2326
2327                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2328
2329                         yy_current_state = yy_get_previous_state();
2330
2331                         /* Okay, we're now positioned to make the NUL
2332                          * transition.  We couldn't have
2333                          * yy_get_previous_state() go ahead and do it
2334                          * for us because it doesn't know how to deal
2335                          * with the possibility of jamming (and we don't
2336                          * want to build jamming into it because then it
2337                          * will run more slowly).
2338                          */
2339
2340                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2341
2342                         yy_bp = yytext_ptr + YY_MORE_ADJ;
2343
2344                         if ( yy_next_state )
2345                                 {
2346                                 /* Consume the NUL. */
2347                                 yy_cp = ++yy_c_buf_p;
2348                                 yy_current_state = yy_next_state;
2349                                 goto yy_match;
2350                                 }
2351
2352                         else
2353                                 {
2354                                 yy_cp = yy_c_buf_p;
2355                                 goto yy_find_action;
2356                                 }
2357                         }
2358
2359                 else switch ( yy_get_next_buffer() )
2360                         {
2361                         case EOB_ACT_END_OF_FILE:
2362                                 {
2363                                 yy_did_buffer_switch_on_eof = 0;
2364
2365                                 if ( yywrap() )
2366                                         {
2367                                         /* Note: because we've taken care in
2368                                          * yy_get_next_buffer() to have set up
2369                                          * yytext, we can now set up
2370                                          * yy_c_buf_p so that if some total
2371                                          * hoser (like flex itself) wants to
2372                                          * call the scanner after we return the
2373                                          * YY_NULL, it'll still work - another
2374                                          * YY_NULL will get returned.
2375                                          */
2376                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2377
2378                                         yy_act = YY_STATE_EOF(YY_START);
2379                                         goto do_action;
2380                                         }
2381
2382                                 else
2383                                         {
2384                                         if ( ! yy_did_buffer_switch_on_eof )
2385                                                 YY_NEW_FILE;
2386                                         }
2387                                 break;
2388                                 }
2389
2390                         case EOB_ACT_CONTINUE_SCAN:
2391                                 yy_c_buf_p =
2392                                         yytext_ptr + yy_amount_of_matched_text;
2393
2394                                 yy_current_state = yy_get_previous_state();
2395
2396                                 yy_cp = yy_c_buf_p;
2397                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2398                                 goto yy_match;
2399
2400                         case EOB_ACT_LAST_MATCH:
2401                                 yy_c_buf_p =
2402                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2403
2404                                 yy_current_state = yy_get_previous_state();
2405
2406                                 yy_cp = yy_c_buf_p;
2407                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
2408                                 goto yy_find_action;
2409                         }
2410                 break;
2411                 }
2412
2413         default:
2414                 YY_FATAL_ERROR(
2415                         "fatal flex scanner internal error--no action found" );
2416         } /* end of action switch */
2417                 } /* end of scanning one token */
2418         } /* end of yylex */
2419
2420
2421 /* yy_get_next_buffer - try to read in a new buffer
2422  *
2423  * Returns a code representing an action:
2424  *      EOB_ACT_LAST_MATCH -
2425  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2426  *      EOB_ACT_END_OF_FILE - end of file
2427  */
2428
2429 static int yy_get_next_buffer()
2430         {
2431         register char *dest = yy_current_buffer->yy_ch_buf;
2432         register char *source = yytext_ptr;
2433         register int number_to_move, i;
2434         int ret_val;
2435
2436         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2437                 YY_FATAL_ERROR(
2438                 "fatal flex scanner internal error--end of buffer missed" );
2439
2440         if ( yy_current_buffer->yy_fill_buffer == 0 )
2441                 { /* Don't try to fill the buffer, so this is an EOF. */
2442                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2443                         {
2444                         /* We matched a single character, the EOB, so
2445                          * treat this as a final EOF.
2446                          */
2447                         return EOB_ACT_END_OF_FILE;
2448                         }
2449
2450                 else
2451                         {
2452                         /* We matched some text prior to the EOB, first
2453                          * process it.
2454                          */
2455                         return EOB_ACT_LAST_MATCH;
2456                         }
2457                 }
2458
2459         /* Try to read more data. */
2460
2461         /* First move last chars to start of buffer. */
2462         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2463
2464         for ( i = 0; i < number_to_move; ++i )
2465                 *(dest++) = *(source++);
2466
2467         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2468                 /* don't do the read, it's not guaranteed to return an EOF,
2469                  * just force an EOF
2470                  */
2471                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2472
2473         else
2474                 {
2475                 int num_to_read =
2476                         yy_current_buffer->yy_buf_size - number_to_move - 1;
2477
2478                 while ( num_to_read <= 0 )
2479                         { /* Not enough room in the buffer - grow it. */
2480 #ifdef YY_USES_REJECT
2481                         YY_FATAL_ERROR(
2482 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2483 #else
2484
2485                         /* just a shorter name for the current buffer */
2486                         YY_BUFFER_STATE b = yy_current_buffer;
2487
2488                         int yy_c_buf_p_offset =
2489                                 (int) (yy_c_buf_p - b->yy_ch_buf);
2490
2491                         if ( b->yy_is_our_buffer )
2492                                 {
2493                                 int new_size = b->yy_buf_size * 2;
2494
2495                                 if ( new_size <= 0 )
2496                                         b->yy_buf_size += b->yy_buf_size / 8;
2497                                 else
2498                                         b->yy_buf_size *= 2;
2499
2500                                 b->yy_ch_buf = (char *)
2501                                         /* Include room in for 2 EOB chars. */
2502                                         yy_flex_realloc( (void *) b->yy_ch_buf,
2503                                                          b->yy_buf_size + 2 );
2504                                 }
2505                         else
2506                                 /* Can't grow it, we don't own it. */
2507                                 b->yy_ch_buf = 0;
2508
2509                         if ( ! b->yy_ch_buf )
2510                                 YY_FATAL_ERROR(
2511                                 "fatal error - scanner input buffer overflow" );
2512
2513                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2514
2515                         num_to_read = yy_current_buffer->yy_buf_size -
2516                                                 number_to_move - 1;
2517 #endif
2518                         }
2519
2520                 if ( num_to_read > YY_READ_BUF_SIZE )
2521                         num_to_read = YY_READ_BUF_SIZE;
2522
2523                 /* Read in more data. */
2524                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2525                         yy_n_chars, num_to_read );
2526
2527                 yy_current_buffer->yy_n_chars = yy_n_chars;
2528                 }
2529
2530         if ( yy_n_chars == 0 )
2531                 {
2532                 if ( number_to_move == YY_MORE_ADJ )
2533                         {
2534                         ret_val = EOB_ACT_END_OF_FILE;
2535                         yyrestart( yyin );
2536                         }
2537
2538                 else
2539                         {
2540                         ret_val = EOB_ACT_LAST_MATCH;
2541                         yy_current_buffer->yy_buffer_status =
2542                                 YY_BUFFER_EOF_PENDING;
2543                         }
2544                 }
2545
2546         else
2547                 ret_val = EOB_ACT_CONTINUE_SCAN;
2548
2549         yy_n_chars += number_to_move;
2550         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2551         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2552
2553         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2554
2555         return ret_val;
2556         }
2557
2558
2559 /* yy_get_previous_state - get the state just before the EOB char was reached */
2560
2561 static yy_state_type yy_get_previous_state()
2562         {
2563         register yy_state_type yy_current_state;
2564         register char *yy_cp;
2565
2566         yy_current_state = yy_start;
2567
2568         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2569                 {
2570                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2571                 if ( yy_accept[yy_current_state] )
2572                         {
2573                         yy_last_accepting_state = yy_current_state;
2574                         yy_last_accepting_cpos = yy_cp;
2575                         }
2576                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2577                         {
2578                         yy_current_state = (int) yy_def[yy_current_state];
2579                         if ( yy_current_state >= 697 )
2580                                 yy_c = yy_meta[(unsigned int) yy_c];
2581                         }
2582                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2583                 }
2584
2585         return yy_current_state;
2586         }
2587
2588
2589 /* yy_try_NUL_trans - try to make a transition on the NUL character
2590  *
2591  * synopsis
2592  *      next_state = yy_try_NUL_trans( current_state );
2593  */
2594
2595 #ifdef YY_USE_PROTOS
2596 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2597 #else
2598 static yy_state_type yy_try_NUL_trans( yy_current_state )
2599 yy_state_type yy_current_state;
2600 #endif
2601         {
2602         register int yy_is_jam;
2603         register char *yy_cp = yy_c_buf_p;
2604
2605         register YY_CHAR yy_c = 1;
2606         if ( yy_accept[yy_current_state] )
2607                 {
2608                 yy_last_accepting_state = yy_current_state;
2609                 yy_last_accepting_cpos = yy_cp;
2610                 }
2611         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2612                 {
2613                 yy_current_state = (int) yy_def[yy_current_state];
2614                 if ( yy_current_state >= 697 )
2615                         yy_c = yy_meta[(unsigned int) yy_c];
2616                 }
2617         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2618         yy_is_jam = (yy_current_state == 696);
2619
2620         return yy_is_jam ? 0 : yy_current_state;
2621         }
2622
2623
2624 #ifndef YY_NO_UNPUT
2625 #ifdef YY_USE_PROTOS
2626 static void yyunput( int c, register char *yy_bp )
2627 #else
2628 static void yyunput( c, yy_bp )
2629 int c;
2630 register char *yy_bp;
2631 #endif
2632         {
2633         register char *yy_cp = yy_c_buf_p;
2634
2635         /* undo effects of setting up yytext */
2636         *yy_cp = yy_hold_char;
2637
2638         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2639                 { /* need to shift things up to make room */
2640                 /* +2 for EOB chars. */
2641                 register int number_to_move = yy_n_chars + 2;
2642                 register char *dest = &yy_current_buffer->yy_ch_buf[
2643                                         yy_current_buffer->yy_buf_size + 2];
2644                 register char *source =
2645                                 &yy_current_buffer->yy_ch_buf[number_to_move];
2646
2647                 while ( source > yy_current_buffer->yy_ch_buf )
2648                         *--dest = *--source;
2649
2650                 yy_cp += (int) (dest - source);
2651                 yy_bp += (int) (dest - source);
2652                 yy_current_buffer->yy_n_chars =
2653                         yy_n_chars = yy_current_buffer->yy_buf_size;
2654
2655                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2656                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
2657                 }
2658
2659         *--yy_cp = (char) c;
2660
2661
2662         yytext_ptr = yy_bp;
2663         yy_hold_char = *yy_cp;
2664         yy_c_buf_p = yy_cp;
2665         }
2666 #endif  /* ifndef YY_NO_UNPUT */
2667
2668
2669 #ifdef __cplusplus
2670 static int yyinput()
2671 #else
2672 static int input()
2673 #endif
2674         {
2675         int c;
2676
2677         *yy_c_buf_p = yy_hold_char;
2678
2679         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2680                 {
2681                 /* yy_c_buf_p now points to the character we want to return.
2682                  * If this occurs *before* the EOB characters, then it's a
2683                  * valid NUL; if not, then we've hit the end of the buffer.
2684                  */
2685                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2686                         /* This was really a NUL. */
2687                         *yy_c_buf_p = '\0';
2688
2689                 else
2690                         { /* need more input */
2691                         int offset = yy_c_buf_p - yytext_ptr;
2692                         ++yy_c_buf_p;
2693
2694                         switch ( yy_get_next_buffer() )
2695                                 {
2696                                 case EOB_ACT_LAST_MATCH:
2697                                         /* This happens because yy_g_n_b()
2698                                          * sees that we've accumulated a
2699                                          * token and flags that we need to
2700                                          * try matching the token before
2701                                          * proceeding.  But for input(),
2702                                          * there's no matching to consider.
2703                                          * So convert the EOB_ACT_LAST_MATCH
2704                                          * to EOB_ACT_END_OF_FILE.
2705                                          */
2706
2707                                         /* Reset buffer status. */
2708                                         yyrestart( yyin );
2709
2710                                         /* fall through */
2711
2712                                 case EOB_ACT_END_OF_FILE:
2713                                         {
2714                                         if ( yywrap() )
2715                                                 return EOF;
2716
2717                                         if ( ! yy_did_buffer_switch_on_eof )
2718                                                 YY_NEW_FILE;
2719 #ifdef __cplusplus
2720                                         return yyinput();
2721 #else
2722                                         return input();
2723 #endif
2724                                         }
2725
2726                                 case EOB_ACT_CONTINUE_SCAN:
2727                                         yy_c_buf_p = yytext_ptr + offset;
2728                                         break;
2729                                 }
2730                         }
2731                 }
2732
2733         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
2734         *yy_c_buf_p = '\0';     /* preserve yytext */
2735         yy_hold_char = *++yy_c_buf_p;
2736
2737
2738         return c;
2739         }
2740
2741
2742 #ifdef YY_USE_PROTOS
2743 void yyrestart( FILE *input_file )
2744 #else
2745 void yyrestart( input_file )
2746 FILE *input_file;
2747 #endif
2748         {
2749         if ( ! yy_current_buffer )
2750                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2751
2752         yy_init_buffer( yy_current_buffer, input_file );
2753         yy_load_buffer_state();
2754         }
2755
2756
2757 #ifdef YY_USE_PROTOS
2758 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2759 #else
2760 void yy_switch_to_buffer( new_buffer )
2761 YY_BUFFER_STATE new_buffer;
2762 #endif
2763         {
2764         if ( yy_current_buffer == new_buffer )
2765                 return;
2766
2767         if ( yy_current_buffer )
2768                 {
2769                 /* Flush out information for old buffer. */
2770                 *yy_c_buf_p = yy_hold_char;
2771                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2772                 yy_current_buffer->yy_n_chars = yy_n_chars;
2773                 }
2774
2775         yy_current_buffer = new_buffer;
2776         yy_load_buffer_state();
2777
2778         /* We don't actually know whether we did this switch during
2779          * EOF (yywrap()) processing, but the only time this flag
2780          * is looked at is after yywrap() is called, so it's safe
2781          * to go ahead and always set it.
2782          */
2783         yy_did_buffer_switch_on_eof = 1;
2784         }
2785
2786
2787 #ifdef YY_USE_PROTOS
2788 void yy_load_buffer_state( void )
2789 #else
2790 void yy_load_buffer_state()
2791 #endif
2792         {
2793         yy_n_chars = yy_current_buffer->yy_n_chars;
2794         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2795         yyin = yy_current_buffer->yy_input_file;
2796         yy_hold_char = *yy_c_buf_p;
2797         }
2798
2799
2800 #ifdef YY_USE_PROTOS
2801 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2802 #else
2803 YY_BUFFER_STATE yy_create_buffer( file, size )
2804 FILE *file;
2805 int size;
2806 #endif
2807         {
2808         YY_BUFFER_STATE b;
2809
2810         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2811         if ( ! b )
2812                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2813
2814         b->yy_buf_size = size;
2815
2816         /* yy_ch_buf has to be 2 characters longer than the size given because
2817          * we need to put in 2 end-of-buffer characters.
2818          */
2819         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2820         if ( ! b->yy_ch_buf )
2821                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2822
2823         b->yy_is_our_buffer = 1;
2824
2825         yy_init_buffer( b, file );
2826
2827         return b;
2828         }
2829
2830
2831 #ifdef YY_USE_PROTOS
2832 void yy_delete_buffer( YY_BUFFER_STATE b )
2833 #else
2834 void yy_delete_buffer( b )
2835 YY_BUFFER_STATE b;
2836 #endif
2837         {
2838         if ( ! b )
2839                 return;
2840
2841         if ( b == yy_current_buffer )
2842                 yy_current_buffer = (YY_BUFFER_STATE) 0;
2843
2844         if ( b->yy_is_our_buffer )
2845                 yy_flex_free( (void *) b->yy_ch_buf );
2846
2847         yy_flex_free( (void *) b );
2848         }
2849
2850
2851 #ifndef YY_ALWAYS_INTERACTIVE
2852 #ifndef YY_NEVER_INTERACTIVE
2853 extern int isatty YY_PROTO(( int ));
2854 #endif
2855 #endif
2856
2857 #ifdef YY_USE_PROTOS
2858 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2859 #else
2860 void yy_init_buffer( b, file )
2861 YY_BUFFER_STATE b;
2862 FILE *file;
2863 #endif
2864
2865
2866         {
2867         yy_flush_buffer( b );
2868
2869         b->yy_input_file = file;
2870         b->yy_fill_buffer = 1;
2871
2872 #if YY_ALWAYS_INTERACTIVE
2873         b->yy_is_interactive = 1;
2874 #else
2875 #if YY_NEVER_INTERACTIVE
2876         b->yy_is_interactive = 0;
2877 #else
2878         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2879 #endif
2880 #endif
2881         }
2882
2883
2884 #ifdef YY_USE_PROTOS
2885 void yy_flush_buffer( YY_BUFFER_STATE b )
2886 #else
2887 void yy_flush_buffer( b )
2888 YY_BUFFER_STATE b;
2889 #endif
2890
2891         {
2892         if ( ! b )
2893                 return;
2894
2895         b->yy_n_chars = 0;
2896
2897         /* We always need two end-of-buffer characters.  The first causes
2898          * a transition to the end-of-buffer state.  The second causes
2899          * a jam in that state.
2900          */
2901         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2902         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2903
2904         b->yy_buf_pos = &b->yy_ch_buf[0];
2905
2906         b->yy_at_bol = 1;
2907         b->yy_buffer_status = YY_BUFFER_NEW;
2908
2909         if ( b == yy_current_buffer )
2910                 yy_load_buffer_state();
2911         }
2912
2913
2914 #ifndef YY_NO_SCAN_BUFFER
2915 #ifdef YY_USE_PROTOS
2916 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2917 #else
2918 YY_BUFFER_STATE yy_scan_buffer( base, size )
2919 char *base;
2920 yy_size_t size;
2921 #endif
2922         {
2923         YY_BUFFER_STATE b;
2924
2925         if ( size < 2 ||
2926              base[size-2] != YY_END_OF_BUFFER_CHAR ||
2927              base[size-1] != YY_END_OF_BUFFER_CHAR )
2928                 /* They forgot to leave room for the EOB's. */
2929                 return 0;
2930
2931         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2932         if ( ! b )
2933                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2934
2935         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
2936         b->yy_buf_pos = b->yy_ch_buf = base;
2937         b->yy_is_our_buffer = 0;
2938         b->yy_input_file = 0;
2939         b->yy_n_chars = b->yy_buf_size;
2940         b->yy_is_interactive = 0;
2941         b->yy_at_bol = 1;
2942         b->yy_fill_buffer = 0;
2943         b->yy_buffer_status = YY_BUFFER_NEW;
2944
2945         yy_switch_to_buffer( b );
2946
2947         return b;
2948         }
2949 #endif
2950
2951
2952 #ifndef YY_NO_SCAN_STRING
2953 #ifdef YY_USE_PROTOS
2954 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2955 #else
2956 YY_BUFFER_STATE yy_scan_string( yy_str )
2957 yyconst char *yy_str;
2958 #endif
2959         {
2960         int len;
2961         for ( len = 0; yy_str[len]; ++len )
2962                 ;
2963
2964         return yy_scan_bytes( yy_str, len );
2965         }
2966 #endif
2967
2968
2969 #ifndef YY_NO_SCAN_BYTES
2970 #ifdef YY_USE_PROTOS
2971 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2972 #else
2973 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2974 yyconst char *bytes;
2975 int len;
2976 #endif
2977         {
2978         YY_BUFFER_STATE b;
2979         char *buf;
2980         yy_size_t n;
2981         int i;
2982
2983         /* Get memory for full buffer, including space for trailing EOB's. */
2984         n = len + 2;
2985         buf = (char *) yy_flex_alloc( n );
2986         if ( ! buf )
2987                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2988
2989         for ( i = 0; i < len; ++i )
2990                 buf[i] = bytes[i];
2991
2992         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2993
2994         b = yy_scan_buffer( buf, n );
2995         if ( ! b )
2996                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2997
2998         /* It's okay to grow etc. this buffer, and we should throw it
2999          * away when we're done.
3000          */
3001         b->yy_is_our_buffer = 1;
3002
3003         return b;
3004         }
3005 #endif
3006
3007
3008 #ifndef YY_NO_PUSH_STATE
3009 #ifdef YY_USE_PROTOS
3010 static void yy_push_state( int new_state )
3011 #else
3012 static void yy_push_state( new_state )
3013 int new_state;
3014 #endif
3015         {
3016         if ( yy_start_stack_ptr >= yy_start_stack_depth )
3017                 {
3018                 yy_size_t new_size;
3019
3020                 yy_start_stack_depth += YY_START_STACK_INCR;
3021                 new_size = yy_start_stack_depth * sizeof( int );
3022
3023                 if ( ! yy_start_stack )
3024                         yy_start_stack = (int *) yy_flex_alloc( new_size );
3025
3026                 else
3027                         yy_start_stack = (int *) yy_flex_realloc(
3028                                         (void *) yy_start_stack, new_size );
3029
3030                 if ( ! yy_start_stack )
3031                         YY_FATAL_ERROR(
3032                         "out of memory expanding start-condition stack" );
3033                 }
3034
3035         yy_start_stack[yy_start_stack_ptr++] = YY_START;
3036
3037         BEGIN(new_state);
3038         }
3039 #endif
3040
3041
3042 #ifndef YY_NO_POP_STATE
3043 static void yy_pop_state()
3044         {
3045         if ( --yy_start_stack_ptr < 0 )
3046                 YY_FATAL_ERROR( "start-condition stack underflow" );
3047
3048         BEGIN(yy_start_stack[yy_start_stack_ptr]);
3049         }
3050 #endif
3051
3052
3053 #ifndef YY_NO_TOP_STATE
3054 static int yy_top_state()
3055         {
3056         return yy_start_stack[yy_start_stack_ptr - 1];
3057         }
3058 #endif
3059
3060 #ifndef YY_EXIT_FAILURE
3061 #define YY_EXIT_FAILURE 2
3062 #endif
3063
3064 #ifdef YY_USE_PROTOS
3065 static void yy_fatal_error( yyconst char msg[] )
3066 #else
3067 static void yy_fatal_error( msg )
3068 char msg[];
3069 #endif
3070         {
3071         (void) fprintf( stderr, "%s\n", msg );
3072         exit( YY_EXIT_FAILURE );
3073         }
3074
3075
3076
3077 /* Redefine yyless() so it works in section 3 code. */
3078
3079 #undef yyless
3080 #define yyless(n) \
3081         do \
3082                 { \
3083                 /* Undo effects of setting up yytext. */ \
3084                 yytext[yyleng] = yy_hold_char; \
3085                 yy_c_buf_p = yytext + n; \
3086                 yy_hold_char = *yy_c_buf_p; \
3087                 *yy_c_buf_p = '\0'; \
3088                 yyleng = n; \
3089                 } \
3090         while ( 0 )
3091
3092
3093 /* Internal utility routines. */
3094
3095 #ifndef yytext_ptr
3096 #ifdef YY_USE_PROTOS
3097 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3098 #else
3099 static void yy_flex_strncpy( s1, s2, n )
3100 char *s1;
3101 yyconst char *s2;
3102 int n;
3103 #endif
3104         {
3105         register int i;
3106         for ( i = 0; i < n; ++i )
3107                 s1[i] = s2[i];
3108         }
3109 #endif
3110
3111 #ifdef YY_NEED_STRLEN
3112 #ifdef YY_USE_PROTOS
3113 static int yy_flex_strlen( yyconst char *s )
3114 #else
3115 static int yy_flex_strlen( s )
3116 yyconst char *s;
3117 #endif
3118         {
3119         register int n;
3120         for ( n = 0; s[n]; ++n )
3121                 ;
3122
3123         return n;
3124         }
3125 #endif
3126
3127
3128 #ifdef YY_USE_PROTOS
3129 static void *yy_flex_alloc( yy_size_t size )
3130 #else
3131 static void *yy_flex_alloc( size )
3132 yy_size_t size;
3133 #endif
3134         {
3135         return (void *) malloc( size );
3136         }
3137
3138 #ifdef YY_USE_PROTOS
3139 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3140 #else
3141 static void *yy_flex_realloc( ptr, size )
3142 void *ptr;
3143 yy_size_t size;
3144 #endif
3145         {
3146         /* The cast to (char *) in the following accommodates both
3147          * implementations that use char* generic pointers, and those
3148          * that use void* generic pointers.  It works with the latter
3149          * because both ANSI C and C++ allow castless assignment from
3150          * any pointer type to void*, and deal with argument conversions
3151          * as though doing an assignment.
3152          */
3153         return (void *) realloc( (char *) ptr, size );
3154         }
3155
3156 #ifdef YY_USE_PROTOS
3157 static void yy_flex_free( void *ptr )
3158 #else
3159 static void yy_flex_free( ptr )
3160 void *ptr;
3161 #endif
3162         {
3163         free( ptr );
3164         }
3165
3166 #if YY_MAIN
3167 int main()
3168         {
3169         yylex();
3170         return 0;
3171         }
3172 #endif
3173 #line 278 "lexer.l"
3174
3175
3176 yywrap()
3177 {
3178    return(1);
3179 }
3180
3181 int comment()
3182 {
3183    int c, last = 0;
3184    for(;;)
3185    {
3186       c = input();
3187       if(c == EOF) break;
3188
3189       // fputc(c, output);
3190       // putchar(c);
3191       if(c == '\n')
3192       {
3193          yylloc.end.charPos = 1;
3194          yylloc.end.pos++;
3195          yylloc.end.line++;
3196       }
3197       else if (c == '\t')
3198       {
3199          yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3200          yylloc.end.pos++;
3201       }
3202       else
3203       {
3204          yylloc.end.charPos++;
3205          yylloc.end.pos++;
3206       }
3207       if(c == '/' && last == '*')
3208          break;
3209       last = c;
3210    }
3211    yylloc.start = yylloc.end;
3212    return 0;
3213 }
3214
3215 int commentCPP()
3216 {
3217    int c, last = 0;
3218    for(;;)
3219    {
3220       c = input();
3221       if(c == EOF) break;
3222
3223       // fputc(c, output);
3224       // putchar(c);
3225       if(c == '\n')
3226       {
3227          yylloc.end.charPos = 1;
3228          yylloc.end.pos++;
3229          yylloc.end.line++;
3230          break;
3231       }
3232       else if (c == '\t')
3233       {
3234          yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3235          yylloc.end.pos++;
3236       }
3237       else
3238       {
3239          yylloc.end.charPos++;
3240          yylloc.end.pos++;
3241       }
3242       last = c;
3243    }
3244    yylloc.start = yylloc.end;
3245    return 0;
3246 }
3247
3248 int preprocessor()
3249 {
3250    int c, last = 0;
3251    int count = 0;
3252    char line[1024];
3253
3254    line[0] = '\0';
3255
3256    for(;;)
3257    {
3258       c = input();
3259       if(c == EOF) break;
3260
3261       if(c == '\n')
3262       {
3263          yylloc.end.charPos = 1;
3264          yylloc.end.pos++;
3265          yylloc.end.line++;
3266          if(last != '\\')
3267          {
3268             char * pointer = line + 1;
3269             int lineNumber;
3270             line[count] = 0;
3271             lineNumber = GetValue(&pointer);
3272             if(lineNumber)
3273             {
3274                char fileName[MAX_LOCATION];
3275                
3276                int inOut;
3277                GetString(&pointer, fileName, MAX_LOCATION);
3278                inOut = GetValue(&pointer);
3279                               
3280                if(inOut == 1)
3281                {
3282                   char extension[MAX_EXTENSION];
3283
3284                   defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3285
3286                   GetExtension(fileName, extension);
3287                   if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3288                      declMode = defaultDeclMode = defaultAccess;
3289
3290                   include_stack_ptr++;
3291                }
3292                else if(inOut == 2)
3293                {
3294                   include_stack_ptr--;
3295                   defaultDeclMode = declMode = declModeStack[include_stack_ptr];
3296                }
3297
3298                yylloc.end.charPos = 1;
3299                yylloc.end.line = lineNumber;
3300                //yylloc.end.pos -= count;
3301                yylloc.end.included = (include_stack_ptr > 0) ? GetIncludeFileID(fileName) : 0;
3302             }
3303             /*
3304             int lineNumber = strtol(line+1, &endPtr, 0);
3305             if(lineNumber)
3306             {
3307                GetString(&
3308                endPtr
3309
3310                yylloc.end.charPos = 1;
3311                yylloc.end.line = lineNumber;
3312                yylloc.end.pos -= count;
3313             }
3314             */
3315             break;
3316          }
3317          count = 0;
3318       }
3319       else if (c == '\t')
3320       {
3321          yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3322          yylloc.end.pos++;
3323          line[count++] = c;
3324       }
3325       else
3326       {
3327          yylloc.end.pos++;
3328          if(c != '\r')
3329          {
3330             yylloc.end.charPos++;
3331             line[count++] = c;
3332          }
3333       }
3334       last = c;
3335    }   
3336    yylloc.start = yylloc.end;
3337    line[count] = 0;
3338
3339    TrimLSpaces(line, line);
3340    for(c = 0; line[c] && line[c] != ' '; c++);
3341    if(!strncmp(line, "include", c))
3342    {
3343       char includeFile[MAX_LOCATION] = "";
3344
3345       strcpy(line, line+c);
3346       TrimLSpaces(line, line);
3347       if(line[0] == '\"')
3348       {
3349          for(c = 1; line[c]; c++)
3350          {
3351             if(line[c] == '\"')
3352             {
3353                strncpy(includeFile, line+1, c-1);
3354                includeFile[c-1] = '\0';
3355                break;
3356             }
3357          }
3358       }
3359       else if(line[0] == '<')
3360       {
3361          for(c = 1; line[c]; c++)
3362             if(line[c] == '>')
3363             {
3364                strncpy(includeFile, line+1, c-1);
3365                includeFile[c-1] = '\0';
3366                break;
3367             }
3368       }
3369
3370       if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3371       {
3372          fprintf( stderr, "Includes nested too deeply" );
3373          exit( 1 );
3374       }
3375
3376       if(inCompiler || !FindIncludeFileID(includeFile))
3377       {
3378          File file = OpenIncludeFile(includeFile);
3379          if(file)
3380          {
3381             char extension[MAX_EXTENSION];
3382
3383             fileStack[include_stack_ptr] = fileInput;
3384             locStack[include_stack_ptr] = yylloc;
3385             defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3386             include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3387
3388             yylloc.start.charPos = yylloc.end.charPos = 1;
3389             yylloc.start.line = yylloc.end.line = 1;
3390             yylloc.start.pos = yylloc.end.pos = 0;
3391             yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3392
3393             GetExtension(includeFile, extension);
3394             if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3395                declMode = defaultDeclMode = defaultAccess;
3396
3397             fileInput = file;
3398             yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3399             BEGIN(INITIAL);
3400          }
3401          else
3402             printf("");
3403       }
3404    }
3405    return 0;
3406 }
3407
3408 public void resetScanner()
3409 {
3410    YY_FLUSH_BUFFER;
3411    yylloc.start.charPos = yylloc.end.charPos = 1;
3412    yylloc.start.line = yylloc.end.line = 1;
3413    yylloc.start.pos = yylloc.end.pos = 0;
3414    yylloc.start.included = yylloc.end.included = false;
3415
3416    expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3417    expression_yylloc.start.line = expression_yylloc.end.line = 1;
3418    expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3419    expression_yylloc.start.included = expression_yylloc.end.included = false;
3420
3421    type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3422    type_yylloc.start.line = type_yylloc.end.line = 1;
3423    type_yylloc.start.pos = type_yylloc.end.pos = 0;
3424    type_yylloc.start.included = type_yylloc.end.included = false;
3425
3426    include_stack_ptr = 0;
3427 }
3428
3429 void resetScannerPos(CodePosition pos)
3430 {
3431    YY_FLUSH_BUFFER;
3432    yylloc.start = yylloc.end = pos;
3433    type_yylloc.start = type_yylloc.end = pos;
3434    expression_yylloc.start = expression_yylloc.end = pos;
3435 }