New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
fortran.yy.c in trunk/NEMOGCM/EXTERNAL/AGRIF/LIB – NEMO

source: trunk/NEMOGCM/EXTERNAL/AGRIF/LIB/fortran.yy.c @ 2528

Last change on this file since 2528 was 2528, checked in by rblod, 13 years ago

Update NEMOGCM from branch nemo_v3_3_beta

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