~ubuntu-branches/ubuntu/vivid/bc/vivid-proposed

« back to all changes in this revision

Viewing changes to bc/scan.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-12-05 12:24:03 UTC
  • mfrom: (3.1.2 lenny)
  • Revision ID: james.westby@ubuntu.com-20071205122403-rv1a7x90ktu1wl95
Tags: 1.06.94-3ubuntu1
* Merge with Debian; remaining changes:
  - Make bc/dc notice read and write errors on its input and output.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#line 3 "scan.c"
 
3
 
 
4
#define  YY_INT_ALIGNED short int
 
5
 
1
6
/* A lexical scanner generated by flex */
2
7
 
3
 
/* Scanner skeleton version:
4
 
 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
5
 
 */
6
 
 
7
8
#define FLEX_SCANNER
8
9
#define YY_FLEX_MAJOR_VERSION 2
9
10
#define YY_FLEX_MINOR_VERSION 5
10
 
 
 
11
#define YY_FLEX_SUBMINOR_VERSION 33
 
12
#if YY_FLEX_SUBMINOR_VERSION > 0
 
13
#define FLEX_BETA
 
14
#endif
 
15
 
 
16
/* First, we deal with  platform-specific or compiler-specific issues. */
 
17
 
 
18
/* begin standard C headers. */
11
19
#include <stdio.h>
12
 
 
13
 
 
14
 
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
15
 
#ifdef c_plusplus
16
 
#ifndef __cplusplus
17
 
#define __cplusplus
18
 
#endif
19
 
#endif
20
 
 
 
20
#include <string.h>
 
21
#include <errno.h>
 
22
#include <stdlib.h>
 
23
 
 
24
/* end standard C headers. */
 
25
 
 
26
/* flex integer type definitions */
 
27
 
 
28
#ifndef FLEXINT_H
 
29
#define FLEXINT_H
 
30
 
 
31
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
32
 
 
33
#if __STDC_VERSION__ >= 199901L
 
34
 
 
35
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
 
36
 * if you want the limit (max/min) macros for int types. 
 
37
 */
 
38
#ifndef __STDC_LIMIT_MACROS
 
39
#define __STDC_LIMIT_MACROS 1
 
40
#endif
 
41
 
 
42
#include <inttypes.h>
 
43
typedef int8_t flex_int8_t;
 
44
typedef uint8_t flex_uint8_t;
 
45
typedef int16_t flex_int16_t;
 
46
typedef uint16_t flex_uint16_t;
 
47
typedef int32_t flex_int32_t;
 
48
typedef uint32_t flex_uint32_t;
 
49
#else
 
50
typedef signed char flex_int8_t;
 
51
typedef short int flex_int16_t;
 
52
typedef int flex_int32_t;
 
53
typedef unsigned char flex_uint8_t; 
 
54
typedef unsigned short int flex_uint16_t;
 
55
typedef unsigned int flex_uint32_t;
 
56
#endif /* ! C99 */
 
57
 
 
58
/* Limits of integral types. */
 
59
#ifndef INT8_MIN
 
60
#define INT8_MIN               (-128)
 
61
#endif
 
62
#ifndef INT16_MIN
 
63
#define INT16_MIN              (-32767-1)
 
64
#endif
 
65
#ifndef INT32_MIN
 
66
#define INT32_MIN              (-2147483647-1)
 
67
#endif
 
68
#ifndef INT8_MAX
 
69
#define INT8_MAX               (127)
 
70
#endif
 
71
#ifndef INT16_MAX
 
72
#define INT16_MAX              (32767)
 
73
#endif
 
74
#ifndef INT32_MAX
 
75
#define INT32_MAX              (2147483647)
 
76
#endif
 
77
#ifndef UINT8_MAX
 
78
#define UINT8_MAX              (255U)
 
79
#endif
 
80
#ifndef UINT16_MAX
 
81
#define UINT16_MAX             (65535U)
 
82
#endif
 
83
#ifndef UINT32_MAX
 
84
#define UINT32_MAX             (4294967295U)
 
85
#endif
 
86
 
 
87
#endif /* ! FLEXINT_H */
21
88
 
22
89
#ifdef __cplusplus
23
90
 
24
 
#include <stdlib.h>
25
 
#include <unistd.h>
26
 
 
27
 
/* Use prototypes in function declarations. */
28
 
#define YY_USE_PROTOS
29
 
 
30
91
/* The "const" storage-class-modifier is valid. */
31
92
#define YY_USE_CONST
32
93
 
34
95
 
35
96
#if __STDC__
36
97
 
37
 
#define YY_USE_PROTOS
38
98
#define YY_USE_CONST
39
99
 
40
100
#endif  /* __STDC__ */
41
101
#endif  /* ! __cplusplus */
42
102
 
43
 
#ifdef __TURBOC__
44
 
 #pragma warn -rch
45
 
 #pragma warn -use
46
 
#include <io.h>
47
 
#include <stdlib.h>
48
 
#define YY_USE_CONST
49
 
#define YY_USE_PROTOS
50
 
#endif
51
 
 
52
103
#ifdef YY_USE_CONST
53
104
#define yyconst const
54
105
#else
55
106
#define yyconst
56
107
#endif
57
108
 
58
 
 
59
 
#ifdef YY_USE_PROTOS
60
 
#define YY_PROTO(proto) proto
61
 
#else
62
 
#define YY_PROTO(proto) ()
63
 
#endif
64
 
 
65
109
/* Returned upon end-of-file. */
66
110
#define YY_NULL 0
67
111
 
76
120
 * but we do it the disgusting crufty way forced on us by the ()-less
77
121
 * definition of BEGIN.
78
122
 */
79
 
#define BEGIN yy_start = 1 + 2 *
 
123
#define BEGIN (yy_start) = 1 + 2 *
80
124
 
81
125
/* Translate the current start state into a value that can be later handed
82
126
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
83
127
 * compatibility.
84
128
 */
85
 
#define YY_START ((yy_start - 1) / 2)
 
129
#define YY_START (((yy_start) - 1) / 2)
86
130
#define YYSTATE YY_START
87
131
 
88
132
/* Action number for EOF rule of a given start state. */
89
133
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
90
134
 
91
135
/* Special action meaning "start processing a new file". */
92
 
#define YY_NEW_FILE yyrestart( yyin )
 
136
#define YY_NEW_FILE yyrestart(yyin  )
93
137
 
94
138
#define YY_END_OF_BUFFER_CHAR 0
95
139
 
96
140
/* Size of default input buffer. */
 
141
#ifndef YY_BUF_SIZE
97
142
#define YY_BUF_SIZE 16384
98
 
 
 
143
#endif
 
144
 
 
145
/* The state buf must be large enough to hold one state per character in the main buffer.
 
146
 */
 
147
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
148
 
 
149
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
 
150
#define YY_TYPEDEF_YY_BUFFER_STATE
99
151
typedef struct yy_buffer_state *YY_BUFFER_STATE;
 
152
#endif
100
153
 
101
154
extern int yyleng;
 
155
 
102
156
extern FILE *yyin, *yyout;
103
157
 
104
158
#define EOB_ACT_CONTINUE_SCAN 0
105
159
#define EOB_ACT_END_OF_FILE 1
106
160
#define EOB_ACT_LAST_MATCH 2
107
161
 
108
 
/* The funky do-while in the following #define is used to turn the definition
109
 
 * int a single C statement (which needs a semi-colon terminator).  This
110
 
 * avoids problems with code like:
111
 
 *
112
 
 *      if ( condition_holds )
113
 
 *              yyless( 5 );
114
 
 *      else
115
 
 *              do_something_else();
116
 
 *
117
 
 * Prior to using the do-while the compiler would get upset at the
118
 
 * "else" because it interpreted the "if" statement as being all
119
 
 * done when it reached the ';' after the yyless() call.
120
 
 */
121
 
 
122
 
/* Return all but the first 'n' matched characters back to the input stream. */
123
 
 
 
162
    #define YY_LESS_LINENO(n)
 
163
    
 
164
/* Return all but the first "n" matched characters back to the input stream. */
124
165
#define yyless(n) \
125
166
        do \
126
167
                { \
127
168
                /* Undo effects of setting up yytext. */ \
128
 
                *yy_cp = yy_hold_char; \
 
169
        int yyless_macro_arg = (n); \
 
170
        YY_LESS_LINENO(yyless_macro_arg);\
 
171
                *yy_cp = (yy_hold_char); \
129
172
                YY_RESTORE_YY_MORE_OFFSET \
130
 
                yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
 
173
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
131
174
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
132
175
                } \
133
176
        while ( 0 )
134
177
 
135
 
#define unput(c) yyunput( c, yytext_ptr )
 
178
#define unput(c) yyunput( c, (yytext_ptr)  )
136
179
 
137
180
/* The following is because we cannot portably get our hands on size_t
138
181
 * (without autoconf's help, which isn't available because we want
139
182
 * flex-generated scanners to compile on their own).
140
183
 */
 
184
 
 
185
#ifndef YY_TYPEDEF_YY_SIZE_T
 
186
#define YY_TYPEDEF_YY_SIZE_T
141
187
typedef unsigned int yy_size_t;
142
 
 
143
 
 
 
188
#endif
 
189
 
 
190
#ifndef YY_STRUCT_YY_BUFFER_STATE
 
191
#define YY_STRUCT_YY_BUFFER_STATE
144
192
struct yy_buffer_state
145
193
        {
146
194
        FILE *yy_input_file;
177
225
         */
178
226
        int yy_at_bol;
179
227
 
 
228
    int yy_bs_lineno; /**< The line count. */
 
229
    int yy_bs_column; /**< The column count. */
 
230
    
180
231
        /* Whether to try to fill the input buffer when we reach the
181
232
         * end of it.
182
233
         */
183
234
        int yy_fill_buffer;
184
235
 
185
236
        int yy_buffer_status;
 
237
 
186
238
#define YY_BUFFER_NEW 0
187
239
#define YY_BUFFER_NORMAL 1
188
240
        /* When an EOF's been seen but there's still some text to process
196
248
         * just pointing yyin at a new input file.
197
249
         */
198
250
#define YY_BUFFER_EOF_PENDING 2
 
251
 
199
252
        };
 
253
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
200
254
 
201
 
static YY_BUFFER_STATE yy_current_buffer = 0;
 
255
/* Stack of input buffers. */
 
256
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 
257
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
 
258
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
202
259
 
203
260
/* We provide macros for accessing buffer states in case in the
204
261
 * future we want to put the buffer states in a more general
205
262
 * "scanner state".
 
263
 *
 
264
 * Returns the top of the stack, or NULL.
206
265
 */
207
 
#define YY_CURRENT_BUFFER yy_current_buffer
 
266
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
 
267
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
 
268
                          : NULL)
208
269
 
 
270
/* Same as previous macro, but useful when we know that the buffer stack is not
 
271
 * NULL or when we need an lvalue. For internal use only.
 
272
 */
 
273
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
209
274
 
210
275
/* yy_hold_char holds the character lost when yytext is formed. */
211
276
static char yy_hold_char;
212
 
 
213
277
static int yy_n_chars;          /* number of characters read into yy_ch_buf */
214
 
 
215
 
 
216
278
int yyleng;
217
279
 
218
280
/* Points to current character in buffer. */
219
281
static char *yy_c_buf_p = (char *) 0;
220
 
static int yy_init = 1;         /* whether we need to initialize */
 
282
static int yy_init = 0;         /* whether we need to initialize */
221
283
static int yy_start = 0;        /* start state number */
222
284
 
223
285
/* Flag which is used to allow yywrap()'s to do buffer switches
225
287
 */
226
288
static int yy_did_buffer_switch_on_eof;
227
289
 
228
 
void yyrestart YY_PROTO(( FILE *input_file ));
229
 
 
230
 
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
231
 
void yy_load_buffer_state YY_PROTO(( void ));
232
 
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
233
 
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
234
 
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
235
 
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
236
 
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
237
 
 
238
 
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
239
 
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
240
 
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
241
 
 
242
 
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
243
 
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
244
 
static void yy_flex_free YY_PROTO(( void * ));
 
290
void yyrestart (FILE *input_file  );
 
291
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
 
292
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
 
293
void yy_delete_buffer (YY_BUFFER_STATE b  );
 
294
void yy_flush_buffer (YY_BUFFER_STATE b  );
 
295
void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
 
296
void yypop_buffer_state (void );
 
297
 
 
298
static void yyensure_buffer_stack (void );
 
299
static void yy_load_buffer_state (void );
 
300
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
301
 
 
302
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
 
303
 
 
304
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
 
305
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
 
306
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
 
307
 
 
308
void *yyalloc (yy_size_t  );
 
309
void *yyrealloc (void *,yy_size_t  );
 
310
void yyfree (void *  );
245
311
 
246
312
#define yy_new_buffer yy_create_buffer
247
313
 
248
314
#define yy_set_interactive(is_interactive) \
249
315
        { \
250
 
        if ( ! yy_current_buffer ) \
251
 
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
252
 
        yy_current_buffer->yy_is_interactive = is_interactive; \
 
316
        if ( ! YY_CURRENT_BUFFER ){ \
 
317
        yyensure_buffer_stack (); \
 
318
                YY_CURRENT_BUFFER_LVALUE =    \
 
319
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
320
        } \
 
321
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
253
322
        }
254
323
 
255
324
#define yy_set_bol(at_bol) \
256
325
        { \
257
 
        if ( ! yy_current_buffer ) \
258
 
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
259
 
        yy_current_buffer->yy_at_bol = at_bol; \
 
326
        if ( ! YY_CURRENT_BUFFER ){\
 
327
        yyensure_buffer_stack (); \
 
328
                YY_CURRENT_BUFFER_LVALUE =    \
 
329
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
330
        } \
 
331
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
260
332
        }
261
333
 
262
 
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
334
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
335
 
 
336
/* Begin user sect3 */
263
337
 
264
338
typedef unsigned char YY_CHAR;
 
339
 
265
340
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 
341
 
266
342
typedef int yy_state_type;
 
343
 
 
344
extern int yylineno;
 
345
 
 
346
int yylineno = 1;
 
347
 
267
348
extern char *yytext;
268
349
#define yytext_ptr yytext
269
350
 
270
 
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
271
 
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
272
 
static int yy_get_next_buffer YY_PROTO(( void ));
273
 
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
351
static yy_state_type yy_get_previous_state (void );
 
352
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
 
353
static int yy_get_next_buffer (void );
 
354
static void yy_fatal_error (yyconst char msg[]  );
274
355
 
275
356
/* Done after the current pattern has been matched and before the
276
357
 * corresponding action - sets up yytext.
277
358
 */
278
359
#define YY_DO_BEFORE_ACTION \
279
 
        yytext_ptr = yy_bp; \
280
 
        yyleng = (int) (yy_cp - yy_bp); \
281
 
        yy_hold_char = *yy_cp; \
 
360
        (yytext_ptr) = yy_bp; \
 
361
        yyleng = (size_t) (yy_cp - yy_bp); \
 
362
        (yy_hold_char) = *yy_cp; \
282
363
        *yy_cp = '\0'; \
283
 
        yy_c_buf_p = yy_cp;
 
364
        (yy_c_buf_p) = yy_cp;
284
365
 
285
 
#define YY_NUM_RULES 44
286
 
#define YY_END_OF_BUFFER 45
287
 
static yyconst short int yy_accept[298] =
 
366
#define YY_NUM_RULES 46
 
367
#define YY_END_OF_BUFFER 47
 
368
/* This struct is not used in this scanner,
 
369
   but its presence is necessary. */
 
370
struct yy_trans_info
 
371
        {
 
372
        flex_int32_t yy_verify;
 
373
        flex_int32_t yy_nxt;
 
374
        };
 
375
static yyconst flex_int16_t yy_accept[316] =
288
376
    {   0,
289
 
        0,    0,    2,    2,   45,   43,   38,   36,   30,   43,
290
 
        1,   31,   43,   27,   31,   27,   27,   26,   31,   42,
291
 
       34,   32,   34,   43,   27,   40,   40,   40,   40,   40,
292
 
       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
293
 
       40,   43,    2,    2,    3,    2,    2,    1,    2,    2,
294
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
295
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
296
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,   38,
297
 
       34,    0,   41,   32,   28,   35,   42,    0,   39,   42,
298
 
       42,    0,   33,   37,   40,   40,   40,   40,   40,   40,
299
 
 
300
 
       40,   40,   40,   40,   10,   40,   40,   40,   40,   40,
301
 
       40,   40,   40,   40,   40,   40,   29,    2,    2,    2,
302
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
303
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
304
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
305
 
        2,    2,    2,    2,    2,   42,    0,    0,   42,    0,
306
 
       40,   40,   40,   40,   40,    9,   40,   40,   40,   40,
307
 
       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
308
 
       40,    2,    2,    2,    2,    2,    2,    2,    2,    2,
309
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
310
 
 
311
 
        2,    2,    2,    2,    2,    2,   16,   40,   40,   40,
312
 
       17,   19,   40,   40,   20,   40,   40,   40,   40,    6,
313
 
       18,   40,   40,   12,   40,   40,    2,    2,    2,    2,
314
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
315
 
        2,    2,    2,    2,    2,    2,    5,   40,   40,   40,
316
 
       14,   40,   40,   15,   24,   40,   13,   40,   11,    2,
317
 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
318
 
        2,    2,   40,    4,   40,    7,   25,    8,   40,    2,
319
 
        2,    2,    2,    2,    2,    2,   40,   21,   40,    2,
320
 
        2,    2,   23,   22,    2,    2,    0
321
 
 
 
377
        0,    0,    2,    2,   47,   45,   40,   38,   32,   45,
 
378
        1,   33,   33,   29,   33,   29,   29,   28,   33,   44,
 
379
       36,   34,   36,   45,   29,   42,   42,   42,   42,   42,
 
380
       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
 
381
       42,   42,   45,    2,    2,    3,    2,    2,    1,    2,
 
382
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
383
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
384
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
385
        2,   40,   36,    0,   43,   34,   30,   37,   44,    0,
 
386
       41,   44,   44,    0,   35,   39,   42,   42,   42,   42,
 
387
 
 
388
       42,   42,   42,   42,   42,   42,   10,   42,   42,   42,
 
389
       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
 
390
       31,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
391
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
392
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
393
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
394
        2,   44,    0,    0,   44,    0,   42,   42,   42,   42,
 
395
       42,    9,   42,   42,   42,   42,   42,   42,   42,   42,
 
396
       42,   42,   42,   42,   42,   42,   42,   42,   42,    2,
 
397
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
398
 
 
399
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
400
        2,    2,    2,    2,    2,    2,   16,   42,   42,   42,
 
401
       17,   20,   42,   42,   21,   42,   42,   42,   42,    6,
 
402
       42,   18,   42,   42,   12,   22,   42,   42,    2,    2,
 
403
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
404
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
 
405
        5,   42,   42,   42,   14,   42,   42,   15,   26,   42,
 
406
       42,   13,   42,   11,    2,    2,    2,    2,    2,    2,
 
407
        2,    2,    2,    2,    2,    2,    2,    2,   42,    4,
 
408
       42,    7,   27,   19,    8,   42,    2,    2,    2,    2,
 
409
 
 
410
        2,    2,    2,    2,   42,   23,   42,    2,    2,    2,
 
411
       25,   24,    2,    2,    0
322
412
    } ;
323
413
 
324
 
static yyconst int yy_ec[256] =
 
414
static yyconst flex_int32_t yy_ec[256] =
325
415
    {   0,
326
416
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
327
417
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
335
425
       23,   24,   25,   26,   27,    1,   28,   29,   30,   31,
336
426
 
337
427
       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
338
 
       42,   43,   44,   45,   46,   47,   48,   37,   49,   37,
339
 
       50,   37,   51,   52,   53,    1,    1,    1,    1,    1,
 
428
       42,   43,   44,   45,   46,   47,   48,   49,   50,   37,
 
429
       51,   37,   52,   53,   54,    1,    1,    1,    1,    1,
340
430
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
341
431
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
342
432
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
353
443
        1,    1,    1,    1,    1
354
444
    } ;
355
445
 
356
 
static yyconst int yy_meta[54] =
 
446
static yyconst flex_int32_t yy_meta[55] =
357
447
    {   0,
358
448
        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
359
449
        1,    1,    1,    1,    1,    1,    3,    1,    1,    1,
360
450
        1,    1,    1,    1,    1,    1,    3,    3,    3,    3,
361
451
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
362
452
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
363
 
        1,    1,    1
364
 
    } ;
365
 
 
366
 
static yyconst short int yy_base[302] =
367
 
    {   0,
368
 
        0,    0,   53,    0,  525,  526,  522,  526,  503,  517,
369
 
      526,  501,  512,  526,  499,   95,   94,   94,   99,  105,
370
 
      498,  114,  497,  513,  495,  466,  468,  470,  479,  471,
371
 
      467,    0,   81,  102,  105,  479,  462,  458,  473,   94,
372
 
      104,  452,    0,  501,  526,  482,  139,    0,  481,  492,
373
 
        0,  479,  131,  132,  131,  125,  132,  478,  150,  477,
374
 
      493,  475,  160,  115,  117,  126,  130,  125,  446,  183,
375
 
      184,  186,  187,  123,  445,  180,  185,  192,  440,  489,
376
 
      526,  485,  526,  526,  526,  526,  158,  486,  526,  162,
377
 
      221,  485,  526,  526,    0,  440,  454,  444,  451,  437,
378
 
 
379
 
      437,  442,  434,  451,    0,  432,  436,  436,  447,  438,
380
 
      437,  195,  444,  426,  425,  433,  526,    0,  466,    0,
381
 
      178,    0,    0,    0,    0,  222,  464,    0,  230,  233,
382
 
      463,    0,  417,   65,  189,  208,  193,  205,  213,  220,
383
 
      214,  235,  416,  218,  224,  227,  241,  234,  237,  243,
384
 
      246,  231,  232,  245,    0,  275,  460,  278,  279,  459,
385
 
      419,  432,  412,  422,  425,    0,  409,  408,  408,  406,
386
 
      418,  415,  404,  408,  401,  416,  398,  406,  397,  398,
387
 
      403,  287,  438,  288,  437,  182,  250,  239,  270,  275,
388
 
      391,  266,  268,  271,  273,  274,  288,  279,  285,  281,
389
 
 
390
 
      299,  390,  292,  287,  293,  298,    0,  399,  400,  394,
391
 
        0,    0,  392,  401,    0,  385,  384,  398,  382,    0,
392
 
        0,  383,  395,    0,  398,  393,  376,  294,  303,  302,
393
 
      375,  374,  306,  312,  373,  305,  308,  313,  310,  372,
394
 
      371,  314,  317,  370,  335,  332,    0,  376,  384,  370,
395
 
        0,  379,  367,    0,    0,  371,    0,  370,    0,  362,
396
 
      325,  336,  322,  361,  137,  323,  360,  359,  331,  358,
397
 
      333,  357,  356,    0,  353,    0,    0,    0,  355,  349,
398
 
      343,  327,  342,  340,  334,  338,  346,    0,  238,  344,
399
 
      236,  339,    0,    0,  177,  102,  526,  392,  120,  395,
400
 
 
401
 
      398
402
 
    } ;
403
 
 
404
 
static yyconst short int yy_def[302] =
405
 
    {   0,
406
 
      297,    1,  297,    3,  297,  297,  297,  297,  297,  298,
407
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
408
 
      297,  297,  297,  297,  297,  299,  299,  299,  299,  299,
409
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
410
 
      299,  297,  300,  300,  297,  300,  301,  300,  300,  300,
411
 
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
412
 
      300,  300,  300,   63,   63,   63,   63,   63,   63,   63,
413
 
       63,   63,   63,   63,   63,   63,   63,   63,  300,  297,
414
 
      297,  298,  297,  297,  297,  297,  297,  297,  297,  297,
415
 
      297,  297,  297,  297,  299,  299,  299,  299,  299,  299,
416
 
 
417
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
418
 
      299,  299,  299,  299,  299,  299,  297,  300,  300,  300,
419
 
      301,  300,  300,  300,  300,  300,  300,  300,  300,  300,
420
 
      300,  300,   63,   63,   63,   63,   63,   63,   63,   63,
421
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
422
 
       63,   63,   63,   63,  300,  297,  297,  297,  297,  297,
423
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
424
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
425
 
      299,  300,  300,  300,  300,   63,   63,   63,   63,   63,
426
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
427
 
 
428
 
       63,   63,   63,   63,   63,   63,  299,  299,  299,  299,
429
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
430
 
      299,  299,  299,  299,  299,  299,   63,   63,   63,   63,
431
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
432
 
       63,   63,   63,   63,   63,   63,  299,  299,  299,  299,
433
 
      299,  299,  299,  299,  299,  299,  299,  299,  299,   63,
434
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
435
 
       63,   63,  299,  299,  299,  299,  299,  299,  299,   63,
436
 
       63,   63,   63,   63,   63,   63,  299,  299,  299,   63,
437
 
       63,   63,  299,  299,   63,   63,    0,  297,  297,  297,
438
 
 
439
 
      297
440
 
    } ;
441
 
 
442
 
static yyconst short int yy_nxt[580] =
 
453
        3,    1,    1,    1
 
454
    } ;
 
455
 
 
456
static yyconst flex_int16_t yy_base[320] =
 
457
    {   0,
 
458
        0,    0,   54,    0,  553,  554,  550,  554,  531,  545,
 
459
      554,  529,  540,  554,  527,   97,   96,   96,  101,  107,
 
460
      526,  116,  525,  541,  523,  494,  496,  498,  507,  499,
 
461
      495,    0,   83,  104,  107,  507,  490,  486,  106,   96,
 
462
      491,  113,  479,    0,  529,  554,  510,  141,    0,  509,
 
463
      520,    0,  507,  133,  135,  130,  139,  141,  506,  150,
 
464
      505,  521,  503,  160,  123,  125,  137,  112,  130,  474,
 
465
      184,  185,  187,  188,  134,  473,  193,  183,  132,  194,
 
466
      467,  517,  554,  513,  554,  554,  554,  554,  221,  514,
 
467
      554,  222,  232,  513,  554,  554,    0,  468,  482,  472,
 
468
 
 
469
      479,  465,  465,  470,  462,  479,    0,  460,  464,  464,
 
470
      475,  466,  465,  459,  206,  471,  453,  461,  451,  459,
 
471
      554,    0,  492,    0,  178,    0,    0,    0,    0,  233,
 
472
      490,    0,  241,  244,  489,    0,  443,   67,  192,  189,
 
473
      219,  138,  203,  221,  180,  234,  442,  224,  223,  233,
 
474
      246,  239,  240,  236,  250,  251,  235,  253,  245,  255,
 
475
        0,  278,  486,  287,  288,  485,  445,  458,  438,  448,
 
476
      451,    0,  435,  434,  434,  432,  444,  441,  430,  434,
 
477
      427,  442,  441,  423,  431,  422,  437,  422,  427,  291,
 
478
      462,  297,  461,  244,  268,  259,  281,  286,  415,  275,
 
479
 
 
480
      277,  280,  283,  293,  284,  287,  295,  290,  308,  309,
 
481
      414,  303,  297,  315,  302,  310,    0,  423,  424,  418,
 
482
        0,    0,  416,  425,    0,  409,  408,  422,  406,    0,
 
483
      410,    0,  406,  418,    0,    0,  421,  416,  399,  314,
 
484
      312,  313,  398,  397,  311,  323,  396,  317,  319,  336,
 
485
      322,  395,  330,  394,  328,  342,  393,  392,  347,  345,
 
486
        0,  398,  406,  392,    0,  401,  389,    0,    0,  394,
 
487
      392,    0,  391,    0,  383,  338,  348,  337,  382,  346,
 
488
      341,  381,  380,  343,  351,  379,  356,  378,  373,    0,
 
489
      364,    0,    0,    0,    0,  367,  365,  364,  350,  363,
 
490
 
 
491
      362,  361,  359,  355,  374,    0,  337,  368,  237,  357,
 
492
        0,    0,  168,  127,  554,  416,  122,  419,  422
 
493
    } ;
 
494
 
 
495
static yyconst flex_int16_t yy_def[320] =
 
496
    {   0,
 
497
      315,    1,  315,    3,  315,  315,  315,  315,  315,  316,
 
498
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
499
      315,  315,  315,  315,  315,  317,  317,  317,  317,  317,
 
500
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
501
      317,  317,  315,  318,  318,  315,  318,  319,  318,  318,
 
502
      318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
 
503
      318,  318,  318,  318,   64,   64,   64,   64,   64,   64,
 
504
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
505
      318,  315,  315,  316,  315,  315,  315,  315,  315,  315,
 
506
      315,  315,  315,  315,  315,  315,  317,  317,  317,  317,
 
507
 
 
508
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
509
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
510
      315,  318,  318,  318,  319,  318,  318,  318,  318,  318,
 
511
      318,  318,  318,  318,  318,  318,   64,   64,   64,   64,
 
512
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
513
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
514
      318,  315,  315,  315,  315,  315,  317,  317,  317,  317,
 
515
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
516
      317,  317,  317,  317,  317,  317,  317,  317,  317,  318,
 
517
      318,  318,  318,   64,   64,   64,   64,   64,   64,   64,
 
518
 
 
519
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
520
       64,   64,   64,   64,   64,   64,  317,  317,  317,  317,
 
521
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
522
      317,  317,  317,  317,  317,  317,  317,  317,   64,   64,
 
523
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
524
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
525
      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
526
      317,  317,  317,  317,   64,   64,   64,   64,   64,   64,
 
527
       64,   64,   64,   64,   64,   64,   64,   64,  317,  317,
 
528
      317,  317,  317,  317,  317,  317,   64,   64,   64,   64,
 
529
 
 
530
       64,   64,   64,   64,  317,  317,  317,   64,   64,   64,
 
531
      317,  317,   64,   64,    0,  315,  315,  315,  315
 
532
    } ;
 
533
 
 
534
static yyconst flex_int16_t yy_nxt[609] =
443
535
    {   0,
444
536
        6,    7,    8,    9,   10,   11,   12,   13,   14,   14,
445
537
       15,   16,   14,   17,   18,   19,   20,   14,   21,   22,
446
538
       23,   20,   14,   24,   14,   25,    6,   26,   27,   28,
447
539
       29,   30,   31,   32,   33,   34,   32,   32,   35,   32,
448
 
       32,   36,   37,   38,   39,   40,   32,   32,   41,   32,
449
 
       14,   42,   14,   43,   44,   45,   46,   47,   48,   49,
450
 
       50,   51,   51,   52,   53,   51,   54,   55,   56,   57,
451
 
       51,   58,   59,   60,   57,   51,   61,   51,   62,   43,
452
 
       63,   64,   65,   66,   67,   68,   69,   70,   71,   69,
453
 
       69,   72,   69,   69,   73,   74,   75,   76,   77,   69,
454
 
 
455
 
       69,   78,   69,   51,   79,   51,   86,   86,  102,   89,
456
 
       87,  186,  133,   84,   84,   87,  103,   88,   84,   90,
457
 
       93,   91,   95,  113,   93,   93,   91,   93,   92,   93,
458
 
      104,  115,  106,   81,  105,  128,  107,  114,  116,   93,
459
 
      108,   82,  125,  122,  123,  125,  129,  126,  130,  133,
460
 
      123,  123,  126,  130,  127,  131,  132,  137,  136,  135,
461
 
      132,  132,  133,  132,  133,  132,  139,  148,  138,  120,
462
 
      133,  283,  133,  133,  156,  132,  133,  133,  159,  156,
463
 
       82,  157,  122,  159,  133,  160,  133,  133,  133,  133,
464
 
      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
465
 
 
466
 
      133,  133,  133,  133,  133,  133,  133,  134,  133,  133,
467
 
      140,  150,  142,  144,  151,  147,  143,  145,  141,  153,
468
 
      187,  146,  176,  227,  133,  189,  154,  133,  152,  133,
469
 
      133,  133,  133,  133,  133,   90,  133,   91,  182,  133,
470
 
      133,  177,   91,  182,   92,  183,  184,  129,  188,  130,
471
 
      190,  184,  133,  185,  130,  133,  131,  191,  192,  193,
472
 
      133,  133,  194,  195,  196,  133,  197,  133,  198,  199,
473
 
      201,  133,  200,  203,  133,  204,  205,  228,  133,  133,
474
 
      206,  133,  133,  133,  133,  229,  133,  294,  133,  202,
475
 
      133,  156,  133,  133,   87,  159,  156,  133,  157,   87,
476
 
 
477
 
      159,   88,  160,  182,  184,  230,  231,  236,  182,  184,
478
 
      183,  185,  232,  133,  233,  133,  234,  133,  133,  235,
479
 
      133,  133,  133,  237,  238,  239,  133,  240,  133,  241,
480
 
      243,  260,  133,  244,  133,  133,  246,  245,  261,  133,
481
 
      133,  133,  262,  264,  267,  133,  133,  263,  270,  133,
482
 
      133,  265,  133,  133,  266,  133,  268,  133,  269,  133,
483
 
      133,  133,  271,  272,  133,  280,  282,  281,  284,  133,
484
 
      133,  285,  133,  286,  133,  295,  291,  293,  133,  133,
485
 
      133,  133,  133,  133,  292,  133,  133,  133,  296,  133,
486
 
      133,  133,   82,   82,   82,  118,  290,  118,  121,  121,
487
 
 
488
 
      121,  289,  288,  287,  133,  133,  133,  133,  133,  133,
489
 
      279,  278,  277,  276,  275,  274,  273,  133,  133,  133,
490
 
      133,  133,  133,  133,  259,  258,  257,  256,  255,  254,
491
 
      253,  252,  251,  250,  249,  248,  247,  242,  133,  159,
492
 
      156,  226,  225,  224,  223,  222,  221,  220,  219,  218,
493
 
      217,  216,  215,  214,  213,  212,  211,  210,  209,  208,
494
 
      207,  159,  156,  133,  133,   91,  158,  119,  181,  180,
495
 
      179,  178,  175,  174,  173,  172,  171,  170,  169,  168,
496
 
      167,  166,  165,  164,  163,  162,  161,   91,  158,   83,
497
 
       80,  155,  149,  133,  123,   94,  120,  120,  123,  124,
498
 
 
499
 
      123,  120,  119,  117,  112,  111,  110,  109,  101,  100,
500
 
       99,   98,   97,   96,   84,   94,   81,   81,   84,   85,
501
 
       84,   83,   81,   80,  297,    5,  297,  297,  297,  297,
502
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
503
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
504
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
505
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
506
 
      297,  297,  297,  297,  297,  297,  297,  297,  297
 
540
       32,   36,   37,   38,   39,   40,   32,   32,   41,   42,
 
541
       32,   14,   43,   14,   44,   45,   46,   47,   48,   49,
 
542
       50,   51,   52,   52,   53,   54,   52,   55,   56,   57,
 
543
       58,   52,   59,   60,   61,   58,   52,   62,   52,   63,
 
544
       44,   64,   65,   66,   67,   68,   69,   70,   71,   72,
 
545
       70,   70,   73,   70,   70,   74,   75,   76,   77,   78,
 
546
 
 
547
       70,   70,   79,   80,   70,   52,   81,   52,   88,   88,
 
548
      104,   91,   89,  194,  137,   86,   86,   89,  105,   90,
 
549
       86,   92,   95,   93,   97,  116,   95,   95,   93,   95,
 
550
       94,   95,  106,  114,  108,   83,  107,  115,  109,  117,
 
551
      119,   95,  110,   84,  129,  126,  130,  120,  129,  132,
 
552
      142,  130,  127,  131,  127,  133,  136,  134,  127,  137,
 
553
      136,  136,  134,  136,  135,  136,  140,  139,  141,  124,
 
554
      137,  143,  137,  158,  137,  136,  137,  137,  152,  137,
 
555
       84,  137,  126,  198,  137,  137,  137,  137,  137,  137,
 
556
      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
 
557
 
 
558
      137,  137,  137,  137,  137,  137,  137,  138,  137,  137,
 
559
      137,  144,  156,  146,  148,  137,  151,  147,  149,  145,
 
560
      154,  159,  150,  195,  155,  201,  157,  137,  160,  196,
 
561
      137,  137,  137,  183,  137,  137,  137,  162,  165,  137,
 
562
      137,  137,  162,  165,  163,  166,   92,  199,   93,  190,
 
563
      137,  197,  184,   93,  190,   94,  191,  192,  133,  200,
 
564
      134,  202,  192,  204,  193,  134,  137,  135,  137,  203,
 
565
      137,  137,  205,  206,  207,  208,  209,  210,  212,  213,
 
566
      137,  137,  137,  137,  137,  239,  137,  137,  214,  215,
 
567
      216,  137,  137,  137,  162,  240,  211,  137,  137,  162,
 
568
 
 
569
      137,  163,  137,   89,  165,  241,  137,  190,   89,  165,
 
570
       90,  166,  190,  192,  191,  137,  242,  243,  192,  249,
 
571
      193,  244,  137,  245,  137,  246,  248,  137,  137,  247,
 
572
      137,  137,  250,  137,  137,  251,  252,  137,  253,  254,
 
573
      137,  256,  137,  257,  137,  258,  259,  276,  260,  137,
 
574
      137,  275,  278,  277,  279,  137,  137,  137,  137,  137,
 
575
      137,  137,  137,  280,  137,  281,  137,  282,  283,  137,
 
576
      137,  284,  285,  286,  287,  137,  288,  137,  297,  298,
 
577
      300,  299,  302,  137,  137,  137,  301,  312,  137,  137,
 
578
      137,  303,  137,  137,  137,  137,  304,  137,  137,  313,
 
579
 
 
580
      309,  310,  137,  137,  137,  311,  137,  314,  137,  137,
 
581
      137,  137,  308,  307,  306,  137,   84,   84,   84,  122,
 
582
      305,  122,  125,  125,  125,  137,  137,  137,  137,  137,
 
583
      137,  296,  295,  294,  293,  292,  291,  290,  289,  137,
 
584
      137,  137,  137,  137,  137,  137,  137,  274,  273,  272,
 
585
      271,  270,  269,  268,  267,  266,  265,  264,  263,  262,
 
586
      261,  255,  137,  165,  162,  238,  237,  236,  235,  234,
 
587
      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
 
588
      223,  222,  221,  220,  219,  218,  217,  165,  162,  137,
 
589
      137,   93,  164,  123,  189,  188,  187,  186,  185,  182,
 
590
 
 
591
      181,  180,  179,  178,  177,  176,  175,  174,  173,  172,
 
592
      171,  170,  169,  168,  167,   93,  164,   85,   82,  161,
 
593
      153,  137,  127,   96,  124,  124,  127,  128,  127,  124,
 
594
      123,  121,  118,  113,  112,  111,  103,  102,  101,  100,
 
595
       99,   98,   86,   96,   83,   83,   86,   87,   86,   85,
 
596
       83,   82,  315,    5,  315,  315,  315,  315,  315,  315,
 
597
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
598
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
599
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
600
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
601
 
 
602
      315,  315,  315,  315,  315,  315,  315,  315
507
603
    } ;
508
604
 
509
 
static yyconst short int yy_chk[580] =
 
605
static yyconst flex_int16_t yy_chk[609] =
510
606
    {   0,
511
607
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
512
608
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
513
609
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
514
610
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
515
611
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
516
 
        1,    1,    1,    3,    3,    3,    3,    3,    3,    3,
517
 
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
518
 
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
519
 
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
520
 
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
521
 
 
522
 
        3,    3,    3,    3,    3,    3,   16,   17,   33,   19,
523
 
       18,  134,  134,   17,   16,   18,   33,   18,   19,   20,
524
 
       22,   20,  299,   40,   22,   22,   20,   22,   20,   22,
525
 
       34,   41,   35,   22,   34,   56,   35,   40,   41,   22,
526
 
       35,   47,   53,   47,   56,   54,   57,   55,   57,  296,
527
 
       53,   54,   55,   57,   55,   57,   59,   66,   65,   64,
528
 
       59,   59,   64,   59,   65,   59,   68,   74,   67,   59,
529
 
       74,  265,   68,   66,   87,   59,   63,   67,   90,   87,
530
 
      121,   87,  121,   90,  265,   90,   63,   63,   63,   63,
531
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
532
 
 
533
 
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
534
 
       70,   76,   71,   72,   77,   73,   71,   72,   70,   78,
535
 
      135,   72,  112,  186,  295,  137,   78,   76,   77,  186,
536
 
       70,   71,   77,   72,   73,   91,  135,   91,  126,   78,
537
 
      137,  112,   91,  126,   91,  126,  129,  130,  136,  130,
538
 
      138,  129,  138,  129,  130,  136,  130,  139,  140,  141,
539
 
      139,  141,  142,  144,  145,  144,  146,  140,  147,  148,
540
 
      150,  145,  149,  151,  146,  152,  153,  187,  152,  153,
541
 
      154,  148,  142,  291,  149,  188,  188,  289,  147,  150,
542
 
      150,  156,  154,  151,  158,  159,  156,  187,  156,  158,
543
 
 
544
 
      159,  158,  159,  182,  184,  189,  190,  196,  182,  184,
545
 
      182,  184,  192,  192,  193,  193,  194,  189,  194,  195,
546
 
      195,  196,  190,  197,  198,  199,  198,  200,  200,  201,
547
 
      203,  228,  199,  204,  204,  197,  206,  205,  229,  203,
548
 
      205,  228,  230,  234,  238,  206,  201,  233,  243,  230,
549
 
      229,  236,  236,  233,  237,  237,  239,  239,  242,  234,
550
 
      238,  242,  245,  246,  243,  261,  263,  262,  266,  263,
551
 
      266,  269,  261,  271,  282,  290,  282,  287,  269,  246,
552
 
      271,  285,  245,  262,  286,  286,  292,  284,  292,  283,
553
 
      281,  290,  298,  298,  298,  300,  280,  300,  301,  301,
554
 
 
555
 
      301,  279,  275,  273,  272,  270,  268,  267,  264,  260,
556
 
      258,  256,  253,  252,  250,  249,  248,  244,  241,  240,
557
 
      235,  232,  231,  227,  226,  225,  223,  222,  219,  218,
558
 
      217,  216,  214,  213,  210,  209,  208,  202,  191,  185,
559
 
      183,  181,  180,  179,  178,  177,  176,  175,  174,  173,
560
 
      172,  171,  170,  169,  168,  167,  165,  164,  163,  162,
561
 
      161,  160,  157,  143,  133,  131,  127,  119,  116,  115,
562
 
      114,  113,  111,  110,  109,  108,  107,  106,  104,  103,
563
 
      102,  101,  100,   99,   98,   97,   96,   92,   88,   82,
564
 
       80,   79,   75,   69,   62,   61,   60,   58,   52,   50,
565
 
 
566
 
       49,   46,   44,   42,   39,   38,   37,   36,   31,   30,
567
 
       29,   28,   27,   26,   25,   24,   23,   21,   15,   13,
568
 
       12,   10,    9,    7,    5,  297,  297,  297,  297,  297,
569
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
570
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
571
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
572
 
      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
573
 
      297,  297,  297,  297,  297,  297,  297,  297,  297
 
612
        1,    1,    1,    1,    3,    3,    3,    3,    3,    3,
 
613
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
614
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
615
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
616
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
617
 
 
618
        3,    3,    3,    3,    3,    3,    3,    3,   16,   17,
 
619
       33,   19,   18,  138,  138,   17,   16,   18,   33,   18,
 
620
       19,   20,   22,   20,  317,   40,   22,   22,   20,   22,
 
621
       20,   22,   34,   39,   35,   22,   34,   39,   35,   40,
 
622
       42,   22,   35,   48,   54,   48,   56,   42,   55,   57,
 
623
       68,   56,   54,   56,   55,   58,   60,   58,   57,   68,
 
624
       60,   60,   58,   60,   58,   60,   66,   65,   67,   60,
 
625
       65,   69,   66,   79,  314,   60,   64,   69,   75,   79,
 
626
      125,   75,  125,  142,   67,  142,   64,   64,   64,   64,
 
627
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
628
 
 
629
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
630
       64,   71,   78,   72,   73,  313,   74,   72,   73,   71,
 
631
       77,   80,   73,  139,   77,  145,   78,  145,   80,  140,
 
632
       78,   71,   72,  115,   73,   74,  140,   89,   92,  139,
 
633
       77,   80,   89,   92,   89,   92,   93,  143,   93,  130,
 
634
      143,  141,  115,   93,  130,   93,  130,  133,  134,  144,
 
635
      134,  146,  133,  149,  133,  134,  141,  134,  144,  148,
 
636
      149,  148,  150,  151,  152,  153,  154,  155,  156,  157,
 
637
      150,  146,  157,  154,  309,  194,  152,  153,  158,  159,
 
638
      160,  194,  159,  151,  162,  195,  155,  155,  156,  162,
 
639
 
 
640
      158,  162,  160,  164,  165,  196,  196,  190,  164,  165,
 
641
      164,  165,  190,  192,  190,  195,  197,  198,  192,  205,
 
642
      192,  200,  200,  201,  201,  202,  204,  202,  197,  203,
 
643
      203,  205,  206,  198,  206,  207,  208,  208,  209,  210,
 
644
      204,  212,  207,  213,  213,  214,  215,  241,  216,  215,
 
645
      212,  240,  245,  242,  246,  209,  210,  216,  245,  241,
 
646
      242,  240,  214,  248,  248,  249,  249,  250,  251,  251,
 
647
      246,  253,  255,  256,  259,  255,  260,  253,  276,  277,
 
648
      280,  278,  284,  250,  278,  276,  281,  307,  281,  256,
 
649
      284,  285,  260,  280,  259,  277,  287,  299,  285,  308,
 
650
 
 
651
      299,  304,  304,  287,  310,  305,  303,  310,  302,  301,
 
652
      300,  298,  297,  296,  291,  308,  316,  316,  316,  318,
 
653
      289,  318,  319,  319,  319,  288,  286,  283,  282,  279,
 
654
      275,  273,  271,  270,  267,  266,  264,  263,  262,  258,
 
655
      257,  254,  252,  247,  244,  243,  239,  238,  237,  234,
 
656
      233,  231,  229,  228,  227,  226,  224,  223,  220,  219,
 
657
      218,  211,  199,  193,  191,  189,  188,  187,  186,  185,
 
658
      184,  183,  182,  181,  180,  179,  178,  177,  176,  175,
 
659
      174,  173,  171,  170,  169,  168,  167,  166,  163,  147,
 
660
      137,  135,  131,  123,  120,  119,  118,  117,  116,  114,
 
661
 
 
662
      113,  112,  111,  110,  109,  108,  106,  105,  104,  103,
 
663
      102,  101,  100,   99,   98,   94,   90,   84,   82,   81,
 
664
       76,   70,   63,   62,   61,   59,   53,   51,   50,   47,
 
665
       45,   43,   41,   38,   37,   36,   31,   30,   29,   28,
 
666
       27,   26,   25,   24,   23,   21,   15,   13,   12,   10,
 
667
        9,    7,    5,  315,  315,  315,  315,  315,  315,  315,
 
668
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
669
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
670
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
671
      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
 
672
 
 
673
      315,  315,  315,  315,  315,  315,  315,  315
574
674
    } ;
575
675
 
576
676
static yy_state_type yy_last_accepting_state;
577
677
static char *yy_last_accepting_cpos;
578
678
 
 
679
extern int yy_flex_debug;
 
680
int yy_flex_debug = 0;
 
681
 
579
682
/* The intent behind this definition is that it'll catch
580
683
 * any uses of REJECT which flex missed.
581
684
 */
585
688
#define YY_RESTORE_YY_MORE_OFFSET
586
689
char *yytext;
587
690
#line 1 "scan.l"
588
 
#define INITIAL 0
589
 
#line 2 "scan.l"
590
 
/* scan.l: the (f)lex description file for the scanner. */
591
 
 
592
691
/*  This file is part of GNU bc.
593
 
    Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
 
692
 
 
693
    Copyright (C) 1991-1994, 1997, 2006 Free Software Foundation, Inc.
594
694
 
595
695
    This program is free software; you can redistribute it and/or modify
596
696
    it under the terms of the GNU General Public License as published by
603
703
    GNU General Public License for more details.
604
704
 
605
705
    You should have received a copy of the GNU General Public License
606
 
    along with this program; see the file COPYING.  If not, write to
 
706
    along with this program; see the file COPYING.  If not, write to:
607
707
      The Free Software Foundation, Inc.
608
 
      59 Temple Place, Suite 330
609
 
      Boston, MA 02111 USA
 
708
      Foundation, Inc.  51 Franklin Street, Fifth Floor,
 
709
      Boston, MA 02110-1301  USA
610
710
 
611
711
    You may contact the author by:
612
712
       e-mail:  philnelson@acm.org
616
716
                Bellingham, WA 98226-9062
617
717
       
618
718
*************************************************************************/
 
719
/* scan.l: the (f)lex description file for the scanner. */
 
720
#line 33 "scan.l"
619
721
 
620
722
#include "bcdefs.h"
621
723
#include "bc.h"
632
734
#endif
633
735
 
634
736
/* Force . as last for now. */
635
 
/* edd 9 June 2001 commented out for GNU readline-4.2
636
 
   #define DOT_IS_LAST
637
 
*/
 
737
#define DOT_IS_LAST
638
738
 
639
739
/* We want to define our own yywrap. */
640
740
#undef yywrap
734
834
 
735
835
/* Definitions for readline access. */
736
836
extern FILE *rl_instream;
737
 
/* edd 9 June 2001 commented out for GNU readline-4.2
738
 
   _PROTOTYPE(char *readline, (char *)); 
739
 
*/
740
837
 
741
838
/* rl_input puts upto MAX characters into BUF with the number put in
742
839
   BUF placed in *RESULT.  If the yy input file is the same as
809
906
                YY_FATAL_ERROR( "read() in flex scanner failed" );
810
907
#endif
811
908
 
 
909
 
 
910
#line 909 "scan.c"
 
911
 
 
912
#define INITIAL 0
812
913
#define slcomment 1
813
914
 
814
 
#line 813 "lex.yy.c"
 
915
#ifndef YY_NO_UNISTD_H
 
916
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 
917
 * down here because we want the user's section 1 to have been scanned first.
 
918
 * The user has a chance to override it with an option.
 
919
 */
 
920
#include <unistd.h>
 
921
#endif
 
922
 
 
923
#ifndef YY_EXTRA_TYPE
 
924
#define YY_EXTRA_TYPE void *
 
925
#endif
 
926
 
 
927
static int yy_init_globals (void );
815
928
 
816
929
/* Macros after this point can all be overridden by user definitions in
817
930
 * section 1.
819
932
 
820
933
#ifndef YY_SKIP_YYWRAP
821
934
#ifdef __cplusplus
822
 
extern "C" int yywrap YY_PROTO(( void ));
 
935
extern "C" int yywrap (void );
823
936
#else
824
 
extern int yywrap YY_PROTO(( void ));
825
 
#endif
826
 
#endif
827
 
 
828
 
#ifndef YY_NO_UNPUT
829
 
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
830
 
#endif
831
 
 
 
937
extern int yywrap (void );
 
938
#endif
 
939
#endif
 
940
 
 
941
    static void yyunput (int c,char *buf_ptr  );
 
942
    
832
943
#ifndef yytext_ptr
833
 
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 
944
static void yy_flex_strncpy (char *,yyconst char *,int );
834
945
#endif
835
946
 
836
947
#ifdef YY_NEED_STRLEN
837
 
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
 
948
static int yy_flex_strlen (yyconst char * );
838
949
#endif
839
950
 
840
951
#ifndef YY_NO_INPUT
 
952
 
841
953
#ifdef __cplusplus
842
 
static int yyinput YY_PROTO(( void ));
843
 
#else
844
 
static int input YY_PROTO(( void ));
845
 
#endif
846
 
#endif
847
 
 
848
 
#if YY_STACK_USED
849
 
static int yy_start_stack_ptr = 0;
850
 
static int yy_start_stack_depth = 0;
851
 
static int *yy_start_stack = 0;
852
 
#ifndef YY_NO_PUSH_STATE
853
 
static void yy_push_state YY_PROTO(( int new_state ));
854
 
#endif
855
 
#ifndef YY_NO_POP_STATE
856
 
static void yy_pop_state YY_PROTO(( void ));
857
 
#endif
858
 
#ifndef YY_NO_TOP_STATE
859
 
static int yy_top_state YY_PROTO(( void ));
860
 
#endif
861
 
 
862
 
#else
863
 
#define YY_NO_PUSH_STATE 1
864
 
#define YY_NO_POP_STATE 1
865
 
#define YY_NO_TOP_STATE 1
866
 
#endif
867
 
 
868
 
#ifdef YY_MALLOC_DECL
869
 
YY_MALLOC_DECL
870
 
#else
871
 
#if __STDC__
872
 
#ifndef __cplusplus
873
 
#include <stdlib.h>
874
 
#endif
875
 
#else
876
 
/* Just try to get by without declaring the routines.  This will fail
877
 
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
878
 
 * or sizeof(void*) != sizeof(int).
879
 
 */
880
 
#endif
 
954
static int yyinput (void );
 
955
#else
 
956
static int input (void );
 
957
#endif
 
958
 
881
959
#endif
882
960
 
883
961
/* Amount of stuff to slurp up with each read. */
886
964
#endif
887
965
 
888
966
/* Copy whatever the last rule matched to the standard output. */
889
 
 
890
967
#ifndef ECHO
891
968
/* This used to be an fputs(), but since the string might contain NUL's,
892
969
 * we now use fwrite().
899
976
 */
900
977
#ifndef YY_INPUT
901
978
#define YY_INPUT(buf,result,max_size) \
902
 
        if ( yy_current_buffer->yy_is_interactive ) \
 
979
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
903
980
                { \
904
 
                int c = '*', n; \
 
981
                int c = '*'; \
 
982
                size_t n; \
905
983
                for ( n = 0; n < max_size && \
906
984
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
907
985
                        buf[n] = (char) c; \
911
989
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
912
990
                result = n; \
913
991
                } \
914
 
        else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
915
 
                  && ferror( yyin ) ) \
916
 
                YY_FATAL_ERROR( "input in flex scanner failed" );
 
992
        else \
 
993
                { \
 
994
                errno=0; \
 
995
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
 
996
                        { \
 
997
                        if( errno != EINTR) \
 
998
                                { \
 
999
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
1000
                                break; \
 
1001
                                } \
 
1002
                        errno=0; \
 
1003
                        clearerr(yyin); \
 
1004
                        } \
 
1005
                }\
 
1006
\
 
1007
 
917
1008
#endif
918
1009
 
919
1010
/* No semi-colon after return; correct usage is to write "yyterminate();" -
934
1025
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
935
1026
#endif
936
1027
 
 
1028
/* end tables serialization structures and prototypes */
 
1029
 
937
1030
/* Default declaration of generated scanner - a define so the user can
938
1031
 * easily add parameters.
939
1032
 */
940
1033
#ifndef YY_DECL
941
 
#define YY_DECL int yylex YY_PROTO(( void ))
942
 
#endif
 
1034
#define YY_DECL_IS_OURS 1
 
1035
 
 
1036
extern int yylex (void);
 
1037
 
 
1038
#define YY_DECL int yylex (void)
 
1039
#endif /* !YY_DECL */
943
1040
 
944
1041
/* Code executed at the beginning of each rule, after yytext and yyleng
945
1042
 * have been set up.
956
1053
#define YY_RULE_SETUP \
957
1054
        YY_USER_ACTION
958
1055
 
 
1056
/** The main scanner function which does all the work.
 
1057
 */
959
1058
YY_DECL
960
 
        {
 
1059
{
961
1060
        register yy_state_type yy_current_state;
962
1061
        register char *yy_cp, *yy_bp;
963
1062
        register int yy_act;
964
 
 
965
 
#line 226 "scan.l"
966
 
 
967
 
#line 966 "lex.yy.c"
968
 
 
969
 
        if ( yy_init )
 
1063
    
 
1064
#line 223 "scan.l"
 
1065
 
 
1066
#line 1065 "scan.c"
 
1067
 
 
1068
        if ( !(yy_init) )
970
1069
                {
971
 
                yy_init = 0;
 
1070
                (yy_init) = 1;
972
1071
 
973
1072
#ifdef YY_USER_INIT
974
1073
                YY_USER_INIT;
975
1074
#endif
976
1075
 
977
 
                if ( ! yy_start )
978
 
                        yy_start = 1;   /* first start state */
 
1076
                if ( ! (yy_start) )
 
1077
                        (yy_start) = 1; /* first start state */
979
1078
 
980
1079
                if ( ! yyin )
981
1080
                        yyin = stdin;
983
1082
                if ( ! yyout )
984
1083
                        yyout = stdout;
985
1084
 
986
 
                if ( ! yy_current_buffer )
987
 
                        yy_current_buffer =
988
 
                                yy_create_buffer( yyin, YY_BUF_SIZE );
 
1085
                if ( ! YY_CURRENT_BUFFER ) {
 
1086
                        yyensure_buffer_stack ();
 
1087
                        YY_CURRENT_BUFFER_LVALUE =
 
1088
                                yy_create_buffer(yyin,YY_BUF_SIZE );
 
1089
                }
989
1090
 
990
 
                yy_load_buffer_state();
 
1091
                yy_load_buffer_state( );
991
1092
                }
992
1093
 
993
1094
        while ( 1 )             /* loops until end-of-file is reached */
994
1095
                {
995
 
                yy_cp = yy_c_buf_p;
 
1096
                yy_cp = (yy_c_buf_p);
996
1097
 
997
1098
                /* Support of yytext. */
998
 
                *yy_cp = yy_hold_char;
 
1099
                *yy_cp = (yy_hold_char);
999
1100
 
1000
1101
                /* yy_bp points to the position in yy_ch_buf of the start of
1001
1102
                 * the current run.
1002
1103
                 */
1003
1104
                yy_bp = yy_cp;
1004
1105
 
1005
 
                yy_current_state = yy_start;
 
1106
                yy_current_state = (yy_start);
1006
1107
yy_match:
1007
1108
                do
1008
1109
                        {
1009
1110
                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1010
1111
                        if ( yy_accept[yy_current_state] )
1011
1112
                                {
1012
 
                                yy_last_accepting_state = yy_current_state;
1013
 
                                yy_last_accepting_cpos = yy_cp;
 
1113
                                (yy_last_accepting_state) = yy_current_state;
 
1114
                                (yy_last_accepting_cpos) = yy_cp;
1014
1115
                                }
1015
1116
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1016
1117
                                {
1017
1118
                                yy_current_state = (int) yy_def[yy_current_state];
1018
 
                                if ( yy_current_state >= 298 )
 
1119
                                if ( yy_current_state >= 316 )
1019
1120
                                        yy_c = yy_meta[(unsigned int) yy_c];
1020
1121
                                }
1021
1122
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1022
1123
                        ++yy_cp;
1023
1124
                        }
1024
 
                while ( yy_base[yy_current_state] != 526 );
 
1125
                while ( yy_base[yy_current_state] != 554 );
1025
1126
 
1026
1127
yy_find_action:
1027
1128
                yy_act = yy_accept[yy_current_state];
1028
1129
                if ( yy_act == 0 )
1029
1130
                        { /* have to back up */
1030
 
                        yy_cp = yy_last_accepting_cpos;
1031
 
                        yy_current_state = yy_last_accepting_state;
 
1131
                        yy_cp = (yy_last_accepting_cpos);
 
1132
                        yy_current_state = (yy_last_accepting_state);
1032
1133
                        yy_act = yy_accept[yy_current_state];
1033
1134
                        }
1034
1135
 
1035
1136
                YY_DO_BEFORE_ACTION;
1036
1137
 
1037
 
 
1038
1138
do_action:      /* This label is used only to access EOF actions. */
1039
1139
 
1040
 
 
1041
1140
                switch ( yy_act )
1042
1141
        { /* beginning of action switch */
1043
1142
                        case 0: /* must back up */
1044
1143
                        /* undo the effects of YY_DO_BEFORE_ACTION */
1045
 
                        *yy_cp = yy_hold_char;
1046
 
                        yy_cp = yy_last_accepting_cpos;
1047
 
                        yy_current_state = yy_last_accepting_state;
 
1144
                        *yy_cp = (yy_hold_char);
 
1145
                        yy_cp = (yy_last_accepting_cpos);
 
1146
                        yy_current_state = (yy_last_accepting_state);
1048
1147
                        goto yy_find_action;
1049
1148
 
1050
1149
case 1:
1051
1150
YY_RULE_SETUP
1052
 
#line 227 "scan.l"
 
1151
#line 224 "scan.l"
1053
1152
{
1054
1153
                  if (!std_only)
1055
1154
                    BEGIN(slcomment);
1059
1158
        YY_BREAK
1060
1159
case 2:
1061
1160
YY_RULE_SETUP
1062
 
#line 233 "scan.l"
 
1161
#line 230 "scan.l"
1063
1162
{ BEGIN(INITIAL); }
1064
1163
        YY_BREAK
1065
1164
case 3:
 
1165
/* rule 3 can match eol */
1066
1166
YY_RULE_SETUP
1067
 
#line 234 "scan.l"
 
1167
#line 231 "scan.l"
1068
1168
{ line_no++; BEGIN(INITIAL); return(ENDOFLINE); }
1069
1169
        YY_BREAK
1070
1170
case 4:
1071
1171
YY_RULE_SETUP
1072
 
#line 235 "scan.l"
 
1172
#line 232 "scan.l"
1073
1173
return(Define);
1074
1174
        YY_BREAK
1075
1175
case 5:
1076
1176
YY_RULE_SETUP
1077
 
#line 236 "scan.l"
 
1177
#line 233 "scan.l"
1078
1178
return(Break);
1079
1179
        YY_BREAK
1080
1180
case 6:
1081
1181
YY_RULE_SETUP
1082
 
#line 237 "scan.l"
 
1182
#line 234 "scan.l"
1083
1183
return(Quit);
1084
1184
        YY_BREAK
1085
1185
case 7:
1086
1186
YY_RULE_SETUP
1087
 
#line 238 "scan.l"
 
1187
#line 235 "scan.l"
1088
1188
return(Length);
1089
1189
        YY_BREAK
1090
1190
case 8:
1091
1191
YY_RULE_SETUP
1092
 
#line 239 "scan.l"
 
1192
#line 236 "scan.l"
1093
1193
return(Return);
1094
1194
        YY_BREAK
1095
1195
case 9:
1096
1196
YY_RULE_SETUP
1097
 
#line 240 "scan.l"
 
1197
#line 237 "scan.l"
1098
1198
return(For);
1099
1199
        YY_BREAK
1100
1200
case 10:
1101
1201
YY_RULE_SETUP
1102
 
#line 241 "scan.l"
 
1202
#line 238 "scan.l"
1103
1203
return(If);
1104
1204
        YY_BREAK
1105
1205
case 11:
1106
1206
YY_RULE_SETUP
1107
 
#line 242 "scan.l"
 
1207
#line 239 "scan.l"
1108
1208
return(While);
1109
1209
        YY_BREAK
1110
1210
case 12:
1111
1211
YY_RULE_SETUP
1112
 
#line 243 "scan.l"
 
1212
#line 240 "scan.l"
1113
1213
return(Sqrt);
1114
1214
        YY_BREAK
1115
1215
case 13:
1116
1216
YY_RULE_SETUP
1117
 
#line 244 "scan.l"
 
1217
#line 241 "scan.l"
1118
1218
return(Scale);
1119
1219
        YY_BREAK
1120
1220
case 14:
1121
1221
YY_RULE_SETUP
1122
 
#line 245 "scan.l"
 
1222
#line 242 "scan.l"
1123
1223
return(Ibase);
1124
1224
        YY_BREAK
1125
1225
case 15:
1126
1226
YY_RULE_SETUP
1127
 
#line 246 "scan.l"
 
1227
#line 243 "scan.l"
1128
1228
return(Obase);
1129
1229
        YY_BREAK
1130
1230
case 16:
1131
1231
YY_RULE_SETUP
1132
 
#line 247 "scan.l"
 
1232
#line 244 "scan.l"
1133
1233
return(Auto);
1134
1234
        YY_BREAK
1135
1235
case 17:
1136
1236
YY_RULE_SETUP
1137
 
#line 248 "scan.l"
 
1237
#line 245 "scan.l"
1138
1238
return(Else);
1139
1239
        YY_BREAK
1140
1240
case 18:
1141
1241
YY_RULE_SETUP
1142
 
#line 249 "scan.l"
 
1242
#line 246 "scan.l"
1143
1243
return(Read);
1144
1244
        YY_BREAK
1145
1245
case 19:
1146
1246
YY_RULE_SETUP
 
1247
#line 247 "scan.l"
 
1248
return(Random);
 
1249
        YY_BREAK
 
1250
case 20:
 
1251
YY_RULE_SETUP
 
1252
#line 248 "scan.l"
 
1253
return(Halt);
 
1254
        YY_BREAK
 
1255
case 21:
 
1256
YY_RULE_SETUP
 
1257
#line 249 "scan.l"
 
1258
return(Last);
 
1259
        YY_BREAK
 
1260
case 22:
 
1261
YY_RULE_SETUP
1147
1262
#line 250 "scan.l"
1148
 
return(Halt);
 
1263
return(Void); 
1149
1264
        YY_BREAK
1150
 
case 20:
 
1265
case 23:
1151
1266
YY_RULE_SETUP
1152
1267
#line 251 "scan.l"
1153
 
return(Last);
1154
 
        YY_BREAK
1155
 
case 21:
1156
 
YY_RULE_SETUP
1157
 
#line 252 "scan.l"
1158
1268
{
1159
1269
#if defined(READLINE) || defined(LIBEDIT)
1160
1270
          return(HistoryVar);
1163
1273
#endif
1164
1274
        }
1165
1275
        YY_BREAK
1166
 
case 22:
 
1276
case 24:
 
1277
YY_RULE_SETUP
 
1278
#line 259 "scan.l"
 
1279
return(Warranty);
 
1280
        YY_BREAK
 
1281
case 25:
1167
1282
YY_RULE_SETUP
1168
1283
#line 260 "scan.l"
1169
 
return(Warranty);
 
1284
return(Continue);
1170
1285
        YY_BREAK
1171
 
case 23:
 
1286
case 26:
1172
1287
YY_RULE_SETUP
1173
1288
#line 261 "scan.l"
1174
 
return(Continue);
 
1289
return(Print);
1175
1290
        YY_BREAK
1176
 
case 24:
 
1291
case 27:
1177
1292
YY_RULE_SETUP
1178
1293
#line 262 "scan.l"
1179
 
return(Print);
 
1294
return(Limits);
1180
1295
        YY_BREAK
1181
 
case 25:
 
1296
case 28:
1182
1297
YY_RULE_SETUP
1183
1298
#line 263 "scan.l"
1184
 
return(Limits);
1185
 
        YY_BREAK
1186
 
case 26:
1187
 
YY_RULE_SETUP
1188
 
#line 264 "scan.l"
1189
1299
{
1190
1300
#ifdef DOT_IS_LAST
1191
1301
       return(Last);
1194
1304
#endif
1195
1305
    }
1196
1306
        YY_BREAK
1197
 
case 27:
 
1307
case 29:
1198
1308
YY_RULE_SETUP
1199
 
#line 271 "scan.l"
 
1309
#line 270 "scan.l"
1200
1310
{ yylval.c_value = yytext[0]; 
1201
1311
                                              return((int)yytext[0]); }
1202
1312
        YY_BREAK
1203
 
case 28:
 
1313
case 30:
 
1314
YY_RULE_SETUP
 
1315
#line 272 "scan.l"
 
1316
{ return(AND); }
 
1317
        YY_BREAK
 
1318
case 31:
1204
1319
YY_RULE_SETUP
1205
1320
#line 273 "scan.l"
1206
 
{ return(AND); }
 
1321
{ return(OR); }
1207
1322
        YY_BREAK
1208
 
case 29:
 
1323
case 32:
1209
1324
YY_RULE_SETUP
1210
1325
#line 274 "scan.l"
1211
 
{ return(OR); }
 
1326
{ return(NOT); }
1212
1327
        YY_BREAK
1213
 
case 30:
 
1328
case 33:
1214
1329
YY_RULE_SETUP
1215
1330
#line 275 "scan.l"
1216
 
{ return(NOT); }
 
1331
{ yylval.c_value = yytext[0]; return((int)yytext[0]); }
1217
1332
        YY_BREAK
1218
 
case 31:
 
1333
case 34:
1219
1334
YY_RULE_SETUP
1220
1335
#line 276 "scan.l"
1221
 
{ yylval.c_value = yytext[0]; return((int)yytext[0]); }
 
1336
{ yylval.c_value = yytext[0]; return(ASSIGN_OP); }
1222
1337
        YY_BREAK
1223
 
case 32:
 
1338
case 35:
1224
1339
YY_RULE_SETUP
1225
1340
#line 277 "scan.l"
1226
 
{ yylval.c_value = yytext[0]; return(ASSIGN_OP); }
1227
 
        YY_BREAK
1228
 
case 33:
1229
 
YY_RULE_SETUP
1230
 
#line 278 "scan.l"
1231
1341
1232
1342
#ifdef OLD_EQ_OP
1233
1343
                         char warn_save;
1243
1353
                         return(ASSIGN_OP);
1244
1354
                       }
1245
1355
        YY_BREAK
1246
 
case 34:
 
1356
case 36:
 
1357
YY_RULE_SETUP
 
1358
#line 291 "scan.l"
 
1359
{ yylval.s_value = strcopyof(yytext); return(REL_OP); }
 
1360
        YY_BREAK
 
1361
case 37:
1247
1362
YY_RULE_SETUP
1248
1363
#line 292 "scan.l"
1249
 
{ yylval.s_value = strcopyof(yytext); return(REL_OP); }
 
1364
{ yylval.c_value = yytext[0]; return(INCR_DECR); }
1250
1365
        YY_BREAK
1251
 
case 35:
 
1366
case 38:
 
1367
/* rule 38 can match eol */
1252
1368
YY_RULE_SETUP
1253
1369
#line 293 "scan.l"
1254
 
{ yylval.c_value = yytext[0]; return(INCR_DECR); }
 
1370
{ line_no++; return(ENDOFLINE); }
1255
1371
        YY_BREAK
1256
 
case 36:
 
1372
case 39:
 
1373
/* rule 39 can match eol */
1257
1374
YY_RULE_SETUP
1258
1375
#line 294 "scan.l"
1259
 
{ line_no++; return(ENDOFLINE); }
 
1376
{  line_no++;  /* ignore a "quoted" newline */ }
1260
1377
        YY_BREAK
1261
 
case 37:
 
1378
case 40:
1262
1379
YY_RULE_SETUP
1263
1380
#line 295 "scan.l"
1264
 
{  line_no++;  /* ignore a "quoted" newline */ }
 
1381
{ /* ignore spaces and tabs */ }
1265
1382
        YY_BREAK
1266
 
case 38:
 
1383
case 41:
1267
1384
YY_RULE_SETUP
1268
1385
#line 296 "scan.l"
1269
 
{ /* ignore spaces and tabs */ }
1270
 
        YY_BREAK
1271
 
case 39:
1272
 
YY_RULE_SETUP
1273
 
#line 297 "scan.l"
1274
1386
{
1275
1387
        int c;
1276
1388
 
1293
1405
          }
1294
1406
      }
1295
1407
        YY_BREAK
1296
 
case 40:
 
1408
case 42:
 
1409
YY_RULE_SETUP
 
1410
#line 317 "scan.l"
 
1411
{ yylval.s_value = strcopyof(yytext); return(NAME); }
 
1412
        YY_BREAK
 
1413
case 43:
 
1414
/* rule 43 can match eol */
1297
1415
YY_RULE_SETUP
1298
1416
#line 318 "scan.l"
1299
 
{ yylval.s_value = strcopyof(yytext); return(NAME); }
1300
 
        YY_BREAK
1301
 
case 41:
1302
 
YY_RULE_SETUP
1303
 
#line 319 "scan.l"
1304
1417
{
1305
1418
              unsigned char *look;
1306
1419
              int count = 0;
1314
1427
              return(STRING);
1315
1428
            }
1316
1429
        YY_BREAK
1317
 
case 42:
 
1430
case 44:
 
1431
/* rule 44 can match eol */
1318
1432
YY_RULE_SETUP
1319
 
#line 331 "scan.l"
 
1433
#line 330 "scan.l"
1320
1434
{
1321
1435
              unsigned char *src, *dst;
1322
1436
              int len;
1345
1459
              return(NUMBER);
1346
1460
            }
1347
1461
        YY_BREAK
1348
 
case 43:
 
1462
case 45:
1349
1463
YY_RULE_SETUP
1350
 
#line 358 "scan.l"
 
1464
#line 357 "scan.l"
1351
1465
{
1352
1466
          if (yytext[0] < ' ')
1353
1467
            yyerror ("illegal character: ^%c",yytext[0] + '@');
1358
1472
              yyerror ("illegal character: %s",yytext);
1359
1473
        }
1360
1474
        YY_BREAK
1361
 
case 44:
 
1475
case 46:
1362
1476
YY_RULE_SETUP
1363
 
#line 367 "scan.l"
 
1477
#line 366 "scan.l"
1364
1478
ECHO;
1365
1479
        YY_BREAK
1366
 
#line 1365 "lex.yy.c"
 
1480
#line 1479 "scan.c"
1367
1481
case YY_STATE_EOF(INITIAL):
1368
1482
case YY_STATE_EOF(slcomment):
1369
1483
        yyterminate();
1371
1485
        case YY_END_OF_BUFFER:
1372
1486
                {
1373
1487
                /* Amount of text matched not including the EOB char. */
1374
 
                int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
 
1488
                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1375
1489
 
1376
1490
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
1377
 
                *yy_cp = yy_hold_char;
 
1491
                *yy_cp = (yy_hold_char);
1378
1492
                YY_RESTORE_YY_MORE_OFFSET
1379
1493
 
1380
 
                if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
 
1494
                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1381
1495
                        {
1382
1496
                        /* We're scanning a new file or input source.  It's
1383
1497
                         * possible that this happened because the user
1384
1498
                         * just pointed yyin at a new source and called
1385
1499
                         * yylex().  If so, then we have to assure
1386
 
                         * consistency between yy_current_buffer and our
 
1500
                         * consistency between YY_CURRENT_BUFFER and our
1387
1501
                         * globals.  Here is the right place to do so, because
1388
1502
                         * this is the first action (other than possibly a
1389
1503
                         * back-up) that will match for the new input source.
1390
1504
                         */
1391
 
                        yy_n_chars = yy_current_buffer->yy_n_chars;
1392
 
                        yy_current_buffer->yy_input_file = yyin;
1393
 
                        yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
 
1505
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
1506
                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
 
1507
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1394
1508
                        }
1395
1509
 
1396
1510
                /* Note that here we test for yy_c_buf_p "<=" to the position
1400
1514
                 * end-of-buffer state).  Contrast this with the test
1401
1515
                 * in input().
1402
1516
                 */
1403
 
                if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 
1517
                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1404
1518
                        { /* This was really a NUL. */
1405
1519
                        yy_state_type yy_next_state;
1406
1520
 
1407
 
                        yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
 
1521
                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1408
1522
 
1409
 
                        yy_current_state = yy_get_previous_state();
 
1523
                        yy_current_state = yy_get_previous_state(  );
1410
1524
 
1411
1525
                        /* Okay, we're now positioned to make the NUL
1412
1526
                         * transition.  We couldn't have
1419
1533
 
1420
1534
                        yy_next_state = yy_try_NUL_trans( yy_current_state );
1421
1535
 
1422
 
                        yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1536
                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1423
1537
 
1424
1538
                        if ( yy_next_state )
1425
1539
                                {
1426
1540
                                /* Consume the NUL. */
1427
 
                                yy_cp = ++yy_c_buf_p;
 
1541
                                yy_cp = ++(yy_c_buf_p);
1428
1542
                                yy_current_state = yy_next_state;
1429
1543
                                goto yy_match;
1430
1544
                                }
1431
1545
 
1432
1546
                        else
1433
1547
                                {
1434
 
                                yy_cp = yy_c_buf_p;
 
1548
                                yy_cp = (yy_c_buf_p);
1435
1549
                                goto yy_find_action;
1436
1550
                                }
1437
1551
                        }
1438
1552
 
1439
 
                else switch ( yy_get_next_buffer() )
 
1553
                else switch ( yy_get_next_buffer(  ) )
1440
1554
                        {
1441
1555
                        case EOB_ACT_END_OF_FILE:
1442
1556
                                {
1443
 
                                yy_did_buffer_switch_on_eof = 0;
 
1557
                                (yy_did_buffer_switch_on_eof) = 0;
1444
1558
 
1445
 
                                if ( yywrap() )
 
1559
                                if ( yywrap( ) )
1446
1560
                                        {
1447
1561
                                        /* Note: because we've taken care in
1448
1562
                                         * yy_get_next_buffer() to have set up
1453
1567
                                         * YY_NULL, it'll still work - another
1454
1568
                                         * YY_NULL will get returned.
1455
1569
                                         */
1456
 
                                        yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
 
1570
                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1457
1571
 
1458
1572
                                        yy_act = YY_STATE_EOF(YY_START);
1459
1573
                                        goto do_action;
1461
1575
 
1462
1576
                                else
1463
1577
                                        {
1464
 
                                        if ( ! yy_did_buffer_switch_on_eof )
 
1578
                                        if ( ! (yy_did_buffer_switch_on_eof) )
1465
1579
                                                YY_NEW_FILE;
1466
1580
                                        }
1467
1581
                                break;
1468
1582
                                }
1469
1583
 
1470
1584
                        case EOB_ACT_CONTINUE_SCAN:
1471
 
                                yy_c_buf_p =
1472
 
                                        yytext_ptr + yy_amount_of_matched_text;
1473
 
 
1474
 
                                yy_current_state = yy_get_previous_state();
1475
 
 
1476
 
                                yy_cp = yy_c_buf_p;
1477
 
                                yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1585
                                (yy_c_buf_p) =
 
1586
                                        (yytext_ptr) + yy_amount_of_matched_text;
 
1587
 
 
1588
                                yy_current_state = yy_get_previous_state(  );
 
1589
 
 
1590
                                yy_cp = (yy_c_buf_p);
 
1591
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1478
1592
                                goto yy_match;
1479
1593
 
1480
1594
                        case EOB_ACT_LAST_MATCH:
1481
 
                                yy_c_buf_p =
1482
 
                                &yy_current_buffer->yy_ch_buf[yy_n_chars];
1483
 
 
1484
 
                                yy_current_state = yy_get_previous_state();
1485
 
 
1486
 
                                yy_cp = yy_c_buf_p;
1487
 
                                yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1595
                                (yy_c_buf_p) =
 
1596
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
 
1597
 
 
1598
                                yy_current_state = yy_get_previous_state(  );
 
1599
 
 
1600
                                yy_cp = (yy_c_buf_p);
 
1601
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1488
1602
                                goto yy_find_action;
1489
1603
                        }
1490
1604
                break;
1495
1609
                        "fatal flex scanner internal error--no action found" );
1496
1610
        } /* end of action switch */
1497
1611
                } /* end of scanning one token */
1498
 
        } /* end of yylex */
1499
 
 
 
1612
} /* end of yylex */
1500
1613
 
1501
1614
/* yy_get_next_buffer - try to read in a new buffer
1502
1615
 *
1505
1618
 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1506
1619
 *      EOB_ACT_END_OF_FILE - end of file
1507
1620
 */
1508
 
 
1509
 
static int yy_get_next_buffer()
1510
 
        {
1511
 
        register char *dest = yy_current_buffer->yy_ch_buf;
1512
 
        register char *source = yytext_ptr;
 
1621
static int yy_get_next_buffer (void)
 
1622
{
 
1623
        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
 
1624
        register char *source = (yytext_ptr);
1513
1625
        register int number_to_move, i;
1514
1626
        int ret_val;
1515
1627
 
1516
 
        if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
 
1628
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1517
1629
                YY_FATAL_ERROR(
1518
1630
                "fatal flex scanner internal error--end of buffer missed" );
1519
1631
 
1520
 
        if ( yy_current_buffer->yy_fill_buffer == 0 )
 
1632
        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1521
1633
                { /* Don't try to fill the buffer, so this is an EOF. */
1522
 
                if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
 
1634
                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1523
1635
                        {
1524
1636
                        /* We matched a single character, the EOB, so
1525
1637
                         * treat this as a final EOF.
1539
1651
        /* Try to read more data. */
1540
1652
 
1541
1653
        /* First move last chars to start of buffer. */
1542
 
        number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
 
1654
        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1543
1655
 
1544
1656
        for ( i = 0; i < number_to_move; ++i )
1545
1657
                *(dest++) = *(source++);
1546
1658
 
1547
 
        if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 
1659
        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1548
1660
                /* don't do the read, it's not guaranteed to return an EOF,
1549
1661
                 * just force an EOF
1550
1662
                 */
1551
 
                yy_current_buffer->yy_n_chars = yy_n_chars = 0;
 
1663
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1552
1664
 
1553
1665
        else
1554
1666
                {
1555
 
                int num_to_read =
1556
 
                        yy_current_buffer->yy_buf_size - number_to_move - 1;
 
1667
                        int num_to_read =
 
1668
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1557
1669
 
1558
1670
                while ( num_to_read <= 0 )
1559
1671
                        { /* Not enough room in the buffer - grow it. */
1560
 
#ifdef YY_USES_REJECT
1561
 
                        YY_FATAL_ERROR(
1562
 
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1563
 
#else
1564
1672
 
1565
1673
                        /* just a shorter name for the current buffer */
1566
 
                        YY_BUFFER_STATE b = yy_current_buffer;
 
1674
                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1567
1675
 
1568
1676
                        int yy_c_buf_p_offset =
1569
 
                                (int) (yy_c_buf_p - b->yy_ch_buf);
 
1677
                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
1570
1678
 
1571
1679
                        if ( b->yy_is_our_buffer )
1572
1680
                                {
1579
1687
 
1580
1688
                                b->yy_ch_buf = (char *)
1581
1689
                                        /* Include room in for 2 EOB chars. */
1582
 
                                        yy_flex_realloc( (void *) b->yy_ch_buf,
1583
 
                                                         b->yy_buf_size + 2 );
 
1690
                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1584
1691
                                }
1585
1692
                        else
1586
1693
                                /* Can't grow it, we don't own it. */
1590
1697
                                YY_FATAL_ERROR(
1591
1698
                                "fatal error - scanner input buffer overflow" );
1592
1699
 
1593
 
                        yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
1700
                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1594
1701
 
1595
 
                        num_to_read = yy_current_buffer->yy_buf_size -
 
1702
                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1596
1703
                                                number_to_move - 1;
1597
 
#endif
 
1704
 
1598
1705
                        }
1599
1706
 
1600
1707
                if ( num_to_read > YY_READ_BUF_SIZE )
1601
1708
                        num_to_read = YY_READ_BUF_SIZE;
1602
1709
 
1603
1710
                /* Read in more data. */
1604
 
                YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1605
 
                        yy_n_chars, num_to_read );
 
1711
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
 
1712
                        (yy_n_chars), num_to_read );
1606
1713
 
1607
 
                yy_current_buffer->yy_n_chars = yy_n_chars;
 
1714
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1608
1715
                }
1609
1716
 
1610
 
        if ( yy_n_chars == 0 )
 
1717
        if ( (yy_n_chars) == 0 )
1611
1718
                {
1612
1719
                if ( number_to_move == YY_MORE_ADJ )
1613
1720
                        {
1614
1721
                        ret_val = EOB_ACT_END_OF_FILE;
1615
 
                        yyrestart( yyin );
 
1722
                        yyrestart(yyin  );
1616
1723
                        }
1617
1724
 
1618
1725
                else
1619
1726
                        {
1620
1727
                        ret_val = EOB_ACT_LAST_MATCH;
1621
 
                        yy_current_buffer->yy_buffer_status =
 
1728
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1622
1729
                                YY_BUFFER_EOF_PENDING;
1623
1730
                        }
1624
1731
                }
1626
1733
        else
1627
1734
                ret_val = EOB_ACT_CONTINUE_SCAN;
1628
1735
 
1629
 
        yy_n_chars += number_to_move;
1630
 
        yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1631
 
        yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
 
1736
        (yy_n_chars) += number_to_move;
 
1737
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 
1738
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1632
1739
 
1633
 
        yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
 
1740
        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1634
1741
 
1635
1742
        return ret_val;
1636
 
        }
1637
 
 
 
1743
}
1638
1744
 
1639
1745
/* yy_get_previous_state - get the state just before the EOB char was reached */
1640
1746
 
1641
 
static yy_state_type yy_get_previous_state()
1642
 
        {
 
1747
    static yy_state_type yy_get_previous_state (void)
 
1748
{
1643
1749
        register yy_state_type yy_current_state;
1644
1750
        register char *yy_cp;
1645
 
 
1646
 
        yy_current_state = yy_start;
1647
 
 
1648
 
        for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 
1751
    
 
1752
        yy_current_state = (yy_start);
 
1753
 
 
1754
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1649
1755
                {
1650
1756
                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1651
1757
                if ( yy_accept[yy_current_state] )
1652
1758
                        {
1653
 
                        yy_last_accepting_state = yy_current_state;
1654
 
                        yy_last_accepting_cpos = yy_cp;
 
1759
                        (yy_last_accepting_state) = yy_current_state;
 
1760
                        (yy_last_accepting_cpos) = yy_cp;
1655
1761
                        }
1656
1762
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1657
1763
                        {
1658
1764
                        yy_current_state = (int) yy_def[yy_current_state];
1659
 
                        if ( yy_current_state >= 298 )
 
1765
                        if ( yy_current_state >= 316 )
1660
1766
                                yy_c = yy_meta[(unsigned int) yy_c];
1661
1767
                        }
1662
1768
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1663
1769
                }
1664
1770
 
1665
1771
        return yy_current_state;
1666
 
        }
1667
 
 
 
1772
}
1668
1773
 
1669
1774
/* yy_try_NUL_trans - try to make a transition on the NUL character
1670
1775
 *
1671
1776
 * synopsis
1672
1777
 *      next_state = yy_try_NUL_trans( current_state );
1673
1778
 */
1674
 
 
1675
 
#ifdef YY_USE_PROTOS
1676
 
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1677
 
#else
1678
 
static yy_state_type yy_try_NUL_trans( yy_current_state )
1679
 
yy_state_type yy_current_state;
1680
 
#endif
1681
 
        {
 
1779
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 
1780
{
1682
1781
        register int yy_is_jam;
1683
 
        register char *yy_cp = yy_c_buf_p;
 
1782
        register char *yy_cp = (yy_c_buf_p);
1684
1783
 
1685
1784
        register YY_CHAR yy_c = 1;
1686
1785
        if ( yy_accept[yy_current_state] )
1687
1786
                {
1688
 
                yy_last_accepting_state = yy_current_state;
1689
 
                yy_last_accepting_cpos = yy_cp;
 
1787
                (yy_last_accepting_state) = yy_current_state;
 
1788
                (yy_last_accepting_cpos) = yy_cp;
1690
1789
                }
1691
1790
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1692
1791
                {
1693
1792
                yy_current_state = (int) yy_def[yy_current_state];
1694
 
                if ( yy_current_state >= 298 )
 
1793
                if ( yy_current_state >= 316 )
1695
1794
                        yy_c = yy_meta[(unsigned int) yy_c];
1696
1795
                }
1697
1796
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1698
 
        yy_is_jam = (yy_current_state == 297);
 
1797
        yy_is_jam = (yy_current_state == 315);
1699
1798
 
1700
1799
        return yy_is_jam ? 0 : yy_current_state;
1701
 
        }
1702
 
 
1703
 
 
1704
 
#ifndef YY_NO_UNPUT
1705
 
#ifdef YY_USE_PROTOS
1706
 
static void yyunput( int c, register char *yy_bp )
1707
 
#else
1708
 
static void yyunput( c, yy_bp )
1709
 
int c;
1710
 
register char *yy_bp;
1711
 
#endif
1712
 
        {
1713
 
        register char *yy_cp = yy_c_buf_p;
 
1800
}
 
1801
 
 
1802
    static void yyunput (int c, register char * yy_bp )
 
1803
{
 
1804
        register char *yy_cp;
 
1805
    
 
1806
    yy_cp = (yy_c_buf_p);
1714
1807
 
1715
1808
        /* undo effects of setting up yytext */
1716
 
        *yy_cp = yy_hold_char;
 
1809
        *yy_cp = (yy_hold_char);
1717
1810
 
1718
 
        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 
1811
        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1719
1812
                { /* need to shift things up to make room */
1720
1813
                /* +2 for EOB chars. */
1721
 
                register int number_to_move = yy_n_chars + 2;
1722
 
                register char *dest = &yy_current_buffer->yy_ch_buf[
1723
 
                                        yy_current_buffer->yy_buf_size + 2];
 
1814
                register int number_to_move = (yy_n_chars) + 2;
 
1815
                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 
1816
                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1724
1817
                register char *source =
1725
 
                                &yy_current_buffer->yy_ch_buf[number_to_move];
 
1818
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1726
1819
 
1727
 
                while ( source > yy_current_buffer->yy_ch_buf )
 
1820
                while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1728
1821
                        *--dest = *--source;
1729
1822
 
1730
1823
                yy_cp += (int) (dest - source);
1731
1824
                yy_bp += (int) (dest - source);
1732
 
                yy_current_buffer->yy_n_chars =
1733
 
                        yy_n_chars = yy_current_buffer->yy_buf_size;
 
1825
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
 
1826
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1734
1827
 
1735
 
                if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 
1828
                if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1736
1829
                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
1737
1830
                }
1738
1831
 
1739
1832
        *--yy_cp = (char) c;
1740
1833
 
1741
 
 
1742
 
        yytext_ptr = yy_bp;
1743
 
        yy_hold_char = *yy_cp;
1744
 
        yy_c_buf_p = yy_cp;
1745
 
        }
1746
 
#endif  /* ifndef YY_NO_UNPUT */
1747
 
 
1748
 
 
 
1834
        (yytext_ptr) = yy_bp;
 
1835
        (yy_hold_char) = *yy_cp;
 
1836
        (yy_c_buf_p) = yy_cp;
 
1837
}
 
1838
 
 
1839
#ifndef YY_NO_INPUT
1749
1840
#ifdef __cplusplus
1750
 
static int yyinput()
 
1841
    static int yyinput (void)
1751
1842
#else
1752
 
static int input()
 
1843
    static int input  (void)
1753
1844
#endif
1754
 
        {
 
1845
 
 
1846
{
1755
1847
        int c;
1756
 
 
1757
 
        *yy_c_buf_p = yy_hold_char;
1758
 
 
1759
 
        if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
 
1848
    
 
1849
        *(yy_c_buf_p) = (yy_hold_char);
 
1850
 
 
1851
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1760
1852
                {
1761
1853
                /* yy_c_buf_p now points to the character we want to return.
1762
1854
                 * If this occurs *before* the EOB characters, then it's a
1763
1855
                 * valid NUL; if not, then we've hit the end of the buffer.
1764
1856
                 */
1765
 
                if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 
1857
                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1766
1858
                        /* This was really a NUL. */
1767
 
                        *yy_c_buf_p = '\0';
 
1859
                        *(yy_c_buf_p) = '\0';
1768
1860
 
1769
1861
                else
1770
1862
                        { /* need more input */
1771
 
                        int offset = yy_c_buf_p - yytext_ptr;
1772
 
                        ++yy_c_buf_p;
 
1863
                        int offset = (yy_c_buf_p) - (yytext_ptr);
 
1864
                        ++(yy_c_buf_p);
1773
1865
 
1774
 
                        switch ( yy_get_next_buffer() )
 
1866
                        switch ( yy_get_next_buffer(  ) )
1775
1867
                                {
1776
1868
                                case EOB_ACT_LAST_MATCH:
1777
1869
                                        /* This happens because yy_g_n_b()
1785
1877
                                         */
1786
1878
 
1787
1879
                                        /* Reset buffer status. */
1788
 
                                        yyrestart( yyin );
 
1880
                                        yyrestart(yyin );
1789
1881
 
1790
 
                                        /* fall through */
 
1882
                                        /*FALLTHROUGH*/
1791
1883
 
1792
1884
                                case EOB_ACT_END_OF_FILE:
1793
1885
                                        {
1794
 
                                        if ( yywrap() )
 
1886
                                        if ( yywrap( ) )
1795
1887
                                                return EOF;
1796
1888
 
1797
 
                                        if ( ! yy_did_buffer_switch_on_eof )
 
1889
                                        if ( ! (yy_did_buffer_switch_on_eof) )
1798
1890
                                                YY_NEW_FILE;
1799
1891
#ifdef __cplusplus
1800
1892
                                        return yyinput();
1804
1896
                                        }
1805
1897
 
1806
1898
                                case EOB_ACT_CONTINUE_SCAN:
1807
 
                                        yy_c_buf_p = yytext_ptr + offset;
 
1899
                                        (yy_c_buf_p) = (yytext_ptr) + offset;
1808
1900
                                        break;
1809
1901
                                }
1810
1902
                        }
1811
1903
                }
1812
1904
 
1813
 
        c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
1814
 
        *yy_c_buf_p = '\0';     /* preserve yytext */
1815
 
        yy_hold_char = *++yy_c_buf_p;
1816
 
 
 
1905
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
 
1906
        *(yy_c_buf_p) = '\0';   /* preserve yytext */
 
1907
        (yy_hold_char) = *++(yy_c_buf_p);
1817
1908
 
1818
1909
        return c;
1819
 
        }
1820
 
 
1821
 
 
1822
 
#ifdef YY_USE_PROTOS
1823
 
void yyrestart( FILE *input_file )
1824
 
#else
1825
 
void yyrestart( input_file )
1826
 
FILE *input_file;
1827
 
#endif
1828
 
        {
1829
 
        if ( ! yy_current_buffer )
1830
 
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1831
 
 
1832
 
        yy_init_buffer( yy_current_buffer, input_file );
1833
 
        yy_load_buffer_state();
1834
 
        }
1835
 
 
1836
 
 
1837
 
#ifdef YY_USE_PROTOS
1838
 
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1839
 
#else
1840
 
void yy_switch_to_buffer( new_buffer )
1841
 
YY_BUFFER_STATE new_buffer;
1842
 
#endif
1843
 
        {
1844
 
        if ( yy_current_buffer == new_buffer )
 
1910
}
 
1911
#endif  /* ifndef YY_NO_INPUT */
 
1912
 
 
1913
/** Immediately switch to a different input stream.
 
1914
 * @param input_file A readable stream.
 
1915
 * 
 
1916
 * @note This function does not reset the start condition to @c INITIAL .
 
1917
 */
 
1918
    void yyrestart  (FILE * input_file )
 
1919
{
 
1920
    
 
1921
        if ( ! YY_CURRENT_BUFFER ){
 
1922
        yyensure_buffer_stack ();
 
1923
                YY_CURRENT_BUFFER_LVALUE =
 
1924
            yy_create_buffer(yyin,YY_BUF_SIZE );
 
1925
        }
 
1926
 
 
1927
        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
 
1928
        yy_load_buffer_state( );
 
1929
}
 
1930
 
 
1931
/** Switch to a different input buffer.
 
1932
 * @param new_buffer The new input buffer.
 
1933
 * 
 
1934
 */
 
1935
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 
1936
{
 
1937
    
 
1938
        /* TODO. We should be able to replace this entire function body
 
1939
         * with
 
1940
         *              yypop_buffer_state();
 
1941
         *              yypush_buffer_state(new_buffer);
 
1942
     */
 
1943
        yyensure_buffer_stack ();
 
1944
        if ( YY_CURRENT_BUFFER == new_buffer )
1845
1945
                return;
1846
1946
 
1847
 
        if ( yy_current_buffer )
 
1947
        if ( YY_CURRENT_BUFFER )
1848
1948
                {
1849
1949
                /* Flush out information for old buffer. */
1850
 
                *yy_c_buf_p = yy_hold_char;
1851
 
                yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1852
 
                yy_current_buffer->yy_n_chars = yy_n_chars;
 
1950
                *(yy_c_buf_p) = (yy_hold_char);
 
1951
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
1952
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1853
1953
                }
1854
1954
 
1855
 
        yy_current_buffer = new_buffer;
1856
 
        yy_load_buffer_state();
 
1955
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
1956
        yy_load_buffer_state( );
1857
1957
 
1858
1958
        /* We don't actually know whether we did this switch during
1859
1959
         * EOF (yywrap()) processing, but the only time this flag
1860
1960
         * is looked at is after yywrap() is called, so it's safe
1861
1961
         * to go ahead and always set it.
1862
1962
         */
1863
 
        yy_did_buffer_switch_on_eof = 1;
1864
 
        }
1865
 
 
1866
 
 
1867
 
#ifdef YY_USE_PROTOS
1868
 
void yy_load_buffer_state( void )
1869
 
#else
1870
 
void yy_load_buffer_state()
1871
 
#endif
1872
 
        {
1873
 
        yy_n_chars = yy_current_buffer->yy_n_chars;
1874
 
        yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1875
 
        yyin = yy_current_buffer->yy_input_file;
1876
 
        yy_hold_char = *yy_c_buf_p;
1877
 
        }
1878
 
 
1879
 
 
1880
 
#ifdef YY_USE_PROTOS
1881
 
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1882
 
#else
1883
 
YY_BUFFER_STATE yy_create_buffer( file, size )
1884
 
FILE *file;
1885
 
int size;
1886
 
#endif
1887
 
        {
 
1963
        (yy_did_buffer_switch_on_eof) = 1;
 
1964
}
 
1965
 
 
1966
static void yy_load_buffer_state  (void)
 
1967
{
 
1968
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
1969
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
 
1970
        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
 
1971
        (yy_hold_char) = *(yy_c_buf_p);
 
1972
}
 
1973
 
 
1974
/** Allocate and initialize an input buffer state.
 
1975
 * @param file A readable stream.
 
1976
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 
1977
 * 
 
1978
 * @return the allocated buffer state.
 
1979
 */
 
1980
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
 
1981
{
1888
1982
        YY_BUFFER_STATE b;
1889
 
 
1890
 
        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 
1983
    
 
1984
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1891
1985
        if ( ! b )
1892
1986
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1893
1987
 
1896
1990
        /* yy_ch_buf has to be 2 characters longer than the size given because
1897
1991
         * we need to put in 2 end-of-buffer characters.
1898
1992
         */
1899
 
        b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
 
1993
        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1900
1994
        if ( ! b->yy_ch_buf )
1901
1995
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1902
1996
 
1903
1997
        b->yy_is_our_buffer = 1;
1904
1998
 
1905
 
        yy_init_buffer( b, file );
 
1999
        yy_init_buffer(b,file );
1906
2000
 
1907
2001
        return b;
1908
 
        }
1909
 
 
1910
 
 
1911
 
#ifdef YY_USE_PROTOS
1912
 
void yy_delete_buffer( YY_BUFFER_STATE b )
1913
 
#else
1914
 
void yy_delete_buffer( b )
1915
 
YY_BUFFER_STATE b;
1916
 
#endif
1917
 
        {
 
2002
}
 
2003
 
 
2004
/** Destroy the buffer.
 
2005
 * @param b a buffer created with yy_create_buffer()
 
2006
 * 
 
2007
 */
 
2008
    void yy_delete_buffer (YY_BUFFER_STATE  b )
 
2009
{
 
2010
    
1918
2011
        if ( ! b )
1919
2012
                return;
1920
2013
 
1921
 
        if ( b == yy_current_buffer )
1922
 
                yy_current_buffer = (YY_BUFFER_STATE) 0;
 
2014
        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
 
2015
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1923
2016
 
1924
2017
        if ( b->yy_is_our_buffer )
1925
 
                yy_flex_free( (void *) b->yy_ch_buf );
1926
 
 
1927
 
        yy_flex_free( (void *) b );
1928
 
        }
1929
 
 
1930
 
 
1931
 
#ifndef YY_ALWAYS_INTERACTIVE
1932
 
#ifndef YY_NEVER_INTERACTIVE
1933
 
extern int isatty YY_PROTO(( int ));
1934
 
#endif
1935
 
#endif
1936
 
 
1937
 
#ifdef YY_USE_PROTOS
1938
 
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
 
2018
                yyfree((void *) b->yy_ch_buf  );
 
2019
 
 
2020
        yyfree((void *) b  );
 
2021
}
 
2022
 
 
2023
#ifndef _UNISTD_H /* assume unistd.h has isatty() for us */
 
2024
#ifdef __cplusplus
 
2025
extern "C" {
 
2026
#endif
 
2027
#ifdef __THROW /* this is a gnuism */
 
2028
extern int isatty (int ) __THROW;
1939
2029
#else
1940
 
void yy_init_buffer( b, file )
1941
 
YY_BUFFER_STATE b;
1942
 
FILE *file;
1943
 
#endif
1944
 
 
1945
 
 
1946
 
        {
1947
 
        yy_flush_buffer( b );
 
2030
extern int isatty (int );
 
2031
#endif
 
2032
#ifdef __cplusplus
 
2033
}
 
2034
#endif
 
2035
#endif
 
2036
    
 
2037
/* Initializes or reinitializes a buffer.
 
2038
 * This function is sometimes called more than once on the same buffer,
 
2039
 * such as during a yyrestart() or at EOF.
 
2040
 */
 
2041
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
2042
 
 
2043
{
 
2044
        int oerrno = errno;
 
2045
    
 
2046
        yy_flush_buffer(b );
1948
2047
 
1949
2048
        b->yy_input_file = file;
1950
2049
        b->yy_fill_buffer = 1;
1951
2050
 
1952
 
#if YY_ALWAYS_INTERACTIVE
1953
 
        b->yy_is_interactive = 1;
1954
 
#else
1955
 
#if YY_NEVER_INTERACTIVE
1956
 
        b->yy_is_interactive = 0;
1957
 
#else
1958
 
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1959
 
#endif
1960
 
#endif
1961
 
        }
1962
 
 
1963
 
 
1964
 
#ifdef YY_USE_PROTOS
1965
 
void yy_flush_buffer( YY_BUFFER_STATE b )
1966
 
#else
1967
 
void yy_flush_buffer( b )
1968
 
YY_BUFFER_STATE b;
1969
 
#endif
1970
 
 
1971
 
        {
1972
 
        if ( ! b )
 
2051
    /* If b is the current buffer, then yy_init_buffer was _probably_
 
2052
     * called from yyrestart() or through yy_get_next_buffer.
 
2053
     * In that case, we don't want to reset the lineno or column.
 
2054
     */
 
2055
    if (b != YY_CURRENT_BUFFER){
 
2056
        b->yy_bs_lineno = 1;
 
2057
        b->yy_bs_column = 0;
 
2058
    }
 
2059
 
 
2060
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
 
2061
    
 
2062
        errno = oerrno;
 
2063
}
 
2064
 
 
2065
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 
2066
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 
2067
 * 
 
2068
 */
 
2069
    void yy_flush_buffer (YY_BUFFER_STATE  b )
 
2070
{
 
2071
        if ( ! b )
1973
2072
                return;
1974
2073
 
1975
2074
        b->yy_n_chars = 0;
1986
2085
        b->yy_at_bol = 1;
1987
2086
        b->yy_buffer_status = YY_BUFFER_NEW;
1988
2087
 
1989
 
        if ( b == yy_current_buffer )
1990
 
                yy_load_buffer_state();
1991
 
        }
1992
 
 
1993
 
 
1994
 
#ifndef YY_NO_SCAN_BUFFER
1995
 
#ifdef YY_USE_PROTOS
1996
 
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1997
 
#else
1998
 
YY_BUFFER_STATE yy_scan_buffer( base, size )
1999
 
char *base;
2000
 
yy_size_t size;
2001
 
#endif
2002
 
        {
 
2088
        if ( b == YY_CURRENT_BUFFER )
 
2089
                yy_load_buffer_state( );
 
2090
}
 
2091
 
 
2092
/** Pushes the new state onto the stack. The new state becomes
 
2093
 *  the current state. This function will allocate the stack
 
2094
 *  if necessary.
 
2095
 *  @param new_buffer The new state.
 
2096
 *  
 
2097
 */
 
2098
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
 
2099
{
 
2100
        if (new_buffer == NULL)
 
2101
                return;
 
2102
 
 
2103
        yyensure_buffer_stack();
 
2104
 
 
2105
        /* This block is copied from yy_switch_to_buffer. */
 
2106
        if ( YY_CURRENT_BUFFER )
 
2107
                {
 
2108
                /* Flush out information for old buffer. */
 
2109
                *(yy_c_buf_p) = (yy_hold_char);
 
2110
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
2111
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
2112
                }
 
2113
 
 
2114
        /* Only push if top exists. Otherwise, replace top. */
 
2115
        if (YY_CURRENT_BUFFER)
 
2116
                (yy_buffer_stack_top)++;
 
2117
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
2118
 
 
2119
        /* copied from yy_switch_to_buffer. */
 
2120
        yy_load_buffer_state( );
 
2121
        (yy_did_buffer_switch_on_eof) = 1;
 
2122
}
 
2123
 
 
2124
/** Removes and deletes the top of the stack, if present.
 
2125
 *  The next element becomes the new top.
 
2126
 *  
 
2127
 */
 
2128
void yypop_buffer_state (void)
 
2129
{
 
2130
        if (!YY_CURRENT_BUFFER)
 
2131
                return;
 
2132
 
 
2133
        yy_delete_buffer(YY_CURRENT_BUFFER );
 
2134
        YY_CURRENT_BUFFER_LVALUE = NULL;
 
2135
        if ((yy_buffer_stack_top) > 0)
 
2136
                --(yy_buffer_stack_top);
 
2137
 
 
2138
        if (YY_CURRENT_BUFFER) {
 
2139
                yy_load_buffer_state( );
 
2140
                (yy_did_buffer_switch_on_eof) = 1;
 
2141
        }
 
2142
}
 
2143
 
 
2144
/* Allocates the stack if it does not exist.
 
2145
 *  Guarantees space for at least one push.
 
2146
 */
 
2147
static void yyensure_buffer_stack (void)
 
2148
{
 
2149
        int num_to_alloc;
 
2150
    
 
2151
        if (!(yy_buffer_stack)) {
 
2152
 
 
2153
                /* First allocation is just for 2 elements, since we don't know if this
 
2154
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 
2155
                 * immediate realloc on the next call.
 
2156
         */
 
2157
                num_to_alloc = 1;
 
2158
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 
2159
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
 
2160
                                                                );
 
2161
                
 
2162
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 
2163
                                
 
2164
                (yy_buffer_stack_max) = num_to_alloc;
 
2165
                (yy_buffer_stack_top) = 0;
 
2166
                return;
 
2167
        }
 
2168
 
 
2169
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
2170
 
 
2171
                /* Increase the buffer to prepare for a possible push. */
 
2172
                int grow_size = 8 /* arbitrary grow size */;
 
2173
 
 
2174
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
 
2175
                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
 
2176
                                                                ((yy_buffer_stack),
 
2177
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
 
2178
                                                                );
 
2179
 
 
2180
                /* zero only the new slots.*/
 
2181
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
 
2182
                (yy_buffer_stack_max) = num_to_alloc;
 
2183
        }
 
2184
}
 
2185
 
 
2186
/** Setup the input buffer state to scan directly from a user-specified character buffer.
 
2187
 * @param base the character buffer
 
2188
 * @param size the size in bytes of the character buffer
 
2189
 * 
 
2190
 * @return the newly allocated buffer state object. 
 
2191
 */
 
2192
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 
2193
{
2003
2194
        YY_BUFFER_STATE b;
2004
 
 
 
2195
    
2005
2196
        if ( size < 2 ||
2006
2197
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
2007
2198
             base[size-1] != YY_END_OF_BUFFER_CHAR )
2008
2199
                /* They forgot to leave room for the EOB's. */
2009
2200
                return 0;
2010
2201
 
2011
 
        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 
2202
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2012
2203
        if ( ! b )
2013
2204
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2014
2205
 
2022
2213
        b->yy_fill_buffer = 0;
2023
2214
        b->yy_buffer_status = YY_BUFFER_NEW;
2024
2215
 
2025
 
        yy_switch_to_buffer( b );
 
2216
        yy_switch_to_buffer(b  );
2026
2217
 
2027
2218
        return b;
2028
 
        }
2029
 
#endif
2030
 
 
2031
 
 
2032
 
#ifndef YY_NO_SCAN_STRING
2033
 
#ifdef YY_USE_PROTOS
2034
 
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2035
 
#else
2036
 
YY_BUFFER_STATE yy_scan_string( yy_str )
2037
 
yyconst char *yy_str;
2038
 
#endif
2039
 
        {
2040
 
        int len;
2041
 
        for ( len = 0; yy_str[len]; ++len )
2042
 
                ;
2043
 
 
2044
 
        return yy_scan_bytes( yy_str, len );
2045
 
        }
2046
 
#endif
2047
 
 
2048
 
 
2049
 
#ifndef YY_NO_SCAN_BYTES
2050
 
#ifdef YY_USE_PROTOS
2051
 
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2052
 
#else
2053
 
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2054
 
yyconst char *bytes;
2055
 
int len;
2056
 
#endif
2057
 
        {
 
2219
}
 
2220
 
 
2221
/** Setup the input buffer state to scan a string. The next call to yylex() will
 
2222
 * scan from a @e copy of @a str.
 
2223
 * @param str a NUL-terminated string to scan
 
2224
 * 
 
2225
 * @return the newly allocated buffer state object.
 
2226
 * @note If you want to scan bytes that may contain NUL values, then use
 
2227
 *       yy_scan_bytes() instead.
 
2228
 */
 
2229
YY_BUFFER_STATE yy_scan_string (yyconst char * __yystr )
 
2230
{
 
2231
    
 
2232
        return yy_scan_bytes(__yystr,strlen(__yystr) );
 
2233
}
 
2234
 
 
2235
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
 
2236
 * scan from a @e copy of @a bytes.
 
2237
 * @param bytes the byte buffer to scan
 
2238
 * @param len the number of bytes in the buffer pointed to by @a bytes.
 
2239
 * 
 
2240
 * @return the newly allocated buffer state object.
 
2241
 */
 
2242
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 
2243
{
2058
2244
        YY_BUFFER_STATE b;
2059
2245
        char *buf;
2060
2246
        yy_size_t n;
2061
2247
        int i;
2062
 
 
 
2248
    
2063
2249
        /* Get memory for full buffer, including space for trailing EOB's. */
2064
 
        n = len + 2;
2065
 
        buf = (char *) yy_flex_alloc( n );
 
2250
        n = _yybytes_len + 2;
 
2251
        buf = (char *) yyalloc(n  );
2066
2252
        if ( ! buf )
2067
2253
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2068
2254
 
2069
 
        for ( i = 0; i < len; ++i )
2070
 
                buf[i] = bytes[i];
2071
 
 
2072
 
        buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2073
 
 
2074
 
        b = yy_scan_buffer( buf, n );
 
2255
        for ( i = 0; i < _yybytes_len; ++i )
 
2256
                buf[i] = yybytes[i];
 
2257
 
 
2258
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
2259
 
 
2260
        b = yy_scan_buffer(buf,n );
2075
2261
        if ( ! b )
2076
2262
                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2077
2263
 
2081
2267
        b->yy_is_our_buffer = 1;
2082
2268
 
2083
2269
        return b;
2084
 
        }
2085
 
#endif
2086
 
 
2087
 
 
2088
 
#ifndef YY_NO_PUSH_STATE
2089
 
#ifdef YY_USE_PROTOS
2090
 
static void yy_push_state( int new_state )
2091
 
#else
2092
 
static void yy_push_state( new_state )
2093
 
int new_state;
2094
 
#endif
2095
 
        {
2096
 
        if ( yy_start_stack_ptr >= yy_start_stack_depth )
2097
 
                {
2098
 
                yy_size_t new_size;
2099
 
 
2100
 
                yy_start_stack_depth += YY_START_STACK_INCR;
2101
 
                new_size = yy_start_stack_depth * sizeof( int );
2102
 
 
2103
 
                if ( ! yy_start_stack )
2104
 
                        yy_start_stack = (int *) yy_flex_alloc( new_size );
2105
 
 
2106
 
                else
2107
 
                        yy_start_stack = (int *) yy_flex_realloc(
2108
 
                                        (void *) yy_start_stack, new_size );
2109
 
 
2110
 
                if ( ! yy_start_stack )
2111
 
                        YY_FATAL_ERROR(
2112
 
                        "out of memory expanding start-condition stack" );
2113
 
                }
2114
 
 
2115
 
        yy_start_stack[yy_start_stack_ptr++] = YY_START;
2116
 
 
2117
 
        BEGIN(new_state);
2118
 
        }
2119
 
#endif
2120
 
 
2121
 
 
2122
 
#ifndef YY_NO_POP_STATE
2123
 
static void yy_pop_state()
2124
 
        {
2125
 
        if ( --yy_start_stack_ptr < 0 )
2126
 
                YY_FATAL_ERROR( "start-condition stack underflow" );
2127
 
 
2128
 
        BEGIN(yy_start_stack[yy_start_stack_ptr]);
2129
 
        }
2130
 
#endif
2131
 
 
2132
 
 
2133
 
#ifndef YY_NO_TOP_STATE
2134
 
static int yy_top_state()
2135
 
        {
2136
 
        return yy_start_stack[yy_start_stack_ptr - 1];
2137
 
        }
2138
 
#endif
 
2270
}
2139
2271
 
2140
2272
#ifndef YY_EXIT_FAILURE
2141
2273
#define YY_EXIT_FAILURE 2
2142
2274
#endif
2143
2275
 
2144
 
#ifdef YY_USE_PROTOS
2145
 
static void yy_fatal_error( yyconst char msg[] )
2146
 
#else
2147
 
static void yy_fatal_error( msg )
2148
 
char msg[];
2149
 
#endif
2150
 
        {
2151
 
        (void) fprintf( stderr, "%s\n", msg );
 
2276
static void yy_fatal_error (yyconst char* msg )
 
2277
{
 
2278
        (void) fprintf( stderr, "%s\n", msg );
2152
2279
        exit( YY_EXIT_FAILURE );
2153
 
        }
2154
 
 
2155
 
 
 
2280
}
2156
2281
 
2157
2282
/* Redefine yyless() so it works in section 3 code. */
2158
2283
 
2161
2286
        do \
2162
2287
                { \
2163
2288
                /* Undo effects of setting up yytext. */ \
2164
 
                yytext[yyleng] = yy_hold_char; \
2165
 
                yy_c_buf_p = yytext + n; \
2166
 
                yy_hold_char = *yy_c_buf_p; \
2167
 
                *yy_c_buf_p = '\0'; \
2168
 
                yyleng = n; \
 
2289
        int yyless_macro_arg = (n); \
 
2290
        YY_LESS_LINENO(yyless_macro_arg);\
 
2291
                yytext[yyleng] = (yy_hold_char); \
 
2292
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
 
2293
                (yy_hold_char) = *(yy_c_buf_p); \
 
2294
                *(yy_c_buf_p) = '\0'; \
 
2295
                yyleng = yyless_macro_arg; \
2169
2296
                } \
2170
2297
        while ( 0 )
2171
2298
 
2172
 
 
2173
 
/* Internal utility routines. */
2174
 
 
2175
 
#ifndef yytext_ptr
2176
 
#ifdef YY_USE_PROTOS
2177
 
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
 
2299
/* Accessor  methods (get/set functions) to struct members. */
 
2300
 
 
2301
/** Get the current line number.
 
2302
 * 
 
2303
 */
 
2304
int yyget_lineno  (void)
 
2305
{
 
2306
        
 
2307
    return yylineno;
 
2308
}
 
2309
 
 
2310
/** Get the input stream.
 
2311
 * 
 
2312
 */
 
2313
FILE *yyget_in  (void)
 
2314
{
 
2315
        return yyin;
 
2316
}
 
2317
 
 
2318
/** Get the output stream.
 
2319
 * 
 
2320
 */
 
2321
FILE *yyget_out  (void)
 
2322
{
 
2323
        return yyout;
 
2324
}
 
2325
 
 
2326
/** Get the length of the current token.
 
2327
 * 
 
2328
 */
 
2329
int yyget_leng  (void)
 
2330
{
 
2331
        return yyleng;
 
2332
}
 
2333
 
 
2334
/** Get the current token.
 
2335
 * 
 
2336
 */
 
2337
 
 
2338
char *yyget_text  (void)
 
2339
{
 
2340
        return yytext;
 
2341
}
 
2342
 
 
2343
/** Set the current line number.
 
2344
 * @param line_number
 
2345
 * 
 
2346
 */
 
2347
void yyset_lineno (int  line_number )
 
2348
{
 
2349
    
 
2350
    yylineno = line_number;
 
2351
}
 
2352
 
 
2353
/** Set the input stream. This does not discard the current
 
2354
 * input buffer.
 
2355
 * @param in_str A readable stream.
 
2356
 * 
 
2357
 * @see yy_switch_to_buffer
 
2358
 */
 
2359
void yyset_in (FILE *  in_str )
 
2360
{
 
2361
        yyin = in_str ;
 
2362
}
 
2363
 
 
2364
void yyset_out (FILE *  out_str )
 
2365
{
 
2366
        yyout = out_str ;
 
2367
}
 
2368
 
 
2369
int yyget_debug  (void)
 
2370
{
 
2371
        return yy_flex_debug;
 
2372
}
 
2373
 
 
2374
void yyset_debug (int  bdebug )
 
2375
{
 
2376
        yy_flex_debug = bdebug ;
 
2377
}
 
2378
 
 
2379
static int yy_init_globals (void)
 
2380
{
 
2381
        /* Initialization is the same as for the non-reentrant scanner.
 
2382
     * This function is called from yylex_destroy(), so don't allocate here.
 
2383
     */
 
2384
 
 
2385
    (yy_buffer_stack) = 0;
 
2386
    (yy_buffer_stack_top) = 0;
 
2387
    (yy_buffer_stack_max) = 0;
 
2388
    (yy_c_buf_p) = (char *) 0;
 
2389
    (yy_init) = 0;
 
2390
    (yy_start) = 0;
 
2391
 
 
2392
/* Defined in main.c */
 
2393
#ifdef YY_STDINIT
 
2394
    yyin = stdin;
 
2395
    yyout = stdout;
2178
2396
#else
2179
 
static void yy_flex_strncpy( s1, s2, n )
2180
 
char *s1;
2181
 
yyconst char *s2;
2182
 
int n;
 
2397
    yyin = (FILE *) 0;
 
2398
    yyout = (FILE *) 0;
2183
2399
#endif
2184
 
        {
 
2400
 
 
2401
    /* For future reference: Set errno on error, since we are called by
 
2402
     * yylex_init()
 
2403
     */
 
2404
    return 0;
 
2405
}
 
2406
 
 
2407
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
 
2408
int yylex_destroy  (void)
 
2409
{
 
2410
    
 
2411
    /* Pop the buffer stack, destroying each element. */
 
2412
        while(YY_CURRENT_BUFFER){
 
2413
                yy_delete_buffer(YY_CURRENT_BUFFER  );
 
2414
                YY_CURRENT_BUFFER_LVALUE = NULL;
 
2415
                yypop_buffer_state();
 
2416
        }
 
2417
 
 
2418
        /* Destroy the stack itself. */
 
2419
        yyfree((yy_buffer_stack) );
 
2420
        (yy_buffer_stack) = NULL;
 
2421
 
 
2422
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 
2423
     * yylex() is called, initialization will occur. */
 
2424
    yy_init_globals( );
 
2425
 
 
2426
    return 0;
 
2427
}
 
2428
 
 
2429
/*
 
2430
 * Internal utility routines.
 
2431
 */
 
2432
 
 
2433
#ifndef yytext_ptr
 
2434
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 
2435
{
2185
2436
        register int i;
2186
2437
        for ( i = 0; i < n; ++i )
2187
2438
                s1[i] = s2[i];
2188
 
        }
 
2439
}
2189
2440
#endif
2190
2441
 
2191
2442
#ifdef YY_NEED_STRLEN
2192
 
#ifdef YY_USE_PROTOS
2193
 
static int yy_flex_strlen( yyconst char *s )
2194
 
#else
2195
 
static int yy_flex_strlen( s )
2196
 
yyconst char *s;
2197
 
#endif
2198
 
        {
 
2443
static int yy_flex_strlen (yyconst char * s )
 
2444
{
2199
2445
        register int n;
2200
2446
        for ( n = 0; s[n]; ++n )
2201
2447
                ;
2202
2448
 
2203
2449
        return n;
2204
 
        }
2205
 
#endif
2206
 
 
2207
 
 
2208
 
#ifdef YY_USE_PROTOS
2209
 
static void *yy_flex_alloc( yy_size_t size )
2210
 
#else
2211
 
static void *yy_flex_alloc( size )
2212
 
yy_size_t size;
2213
 
#endif
2214
 
        {
 
2450
}
 
2451
#endif
 
2452
 
 
2453
void *yyalloc (yy_size_t  size )
 
2454
{
2215
2455
        return (void *) malloc( size );
2216
 
        }
 
2456
}
2217
2457
 
2218
 
#ifdef YY_USE_PROTOS
2219
 
static void *yy_flex_realloc( void *ptr, yy_size_t size )
2220
 
#else
2221
 
static void *yy_flex_realloc( ptr, size )
2222
 
void *ptr;
2223
 
yy_size_t size;
2224
 
#endif
2225
 
        {
 
2458
void *yyrealloc  (void * ptr, yy_size_t  size )
 
2459
{
2226
2460
        /* The cast to (char *) in the following accommodates both
2227
2461
         * implementations that use char* generic pointers, and those
2228
2462
         * that use void* generic pointers.  It works with the latter
2231
2465
         * as though doing an assignment.
2232
2466
         */
2233
2467
        return (void *) realloc( (char *) ptr, size );
2234
 
        }
2235
 
 
2236
 
#ifdef YY_USE_PROTOS
2237
 
static void yy_flex_free( void *ptr )
2238
 
#else
2239
 
static void yy_flex_free( ptr )
2240
 
void *ptr;
2241
 
#endif
2242
 
        {
2243
 
        free( ptr );
2244
 
        }
2245
 
 
2246
 
#if YY_MAIN
2247
 
int main()
2248
 
        {
2249
 
        yylex();
2250
 
        return 0;
2251
 
        }
2252
 
#endif
2253
 
#line 367 "scan.l"
 
2468
}
 
2469
 
 
2470
void yyfree (void * ptr )
 
2471
{
 
2472
        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
 
2473
}
 
2474
 
 
2475
#define YYTABLES_NAME "yytables"
 
2476
 
 
2477
#line 366 "scan.l"
 
2478
 
2254
2479
 
2255
2480
 
2256
2481
 
2263
2488
  if (!open_new_file ()) return (1);    /* EOF on standard in. */
2264
2489
  return (0);                           /* We have more input. */
2265
2490
}
 
2491