~ubuntu-branches/ubuntu/wily/bluez/wily

« back to all changes in this revision

Viewing changes to rfcomm/lexer.c

  • Committer: Bazaar Package Importer
  • Author(s): Mario Limonciello
  • Date: 2008-10-07 12:10:29 UTC
  • Revision ID: james.westby@ubuntu.com-20081007121029-4gup4fmmh2vfo5nh
Tags: upstream-4.12
ImportĀ upstreamĀ versionĀ 4.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
#line 3 "lexer.c"
 
3
 
 
4
#define  YY_INT_ALIGNED short int
 
5
 
 
6
/* A lexical scanner generated by flex */
 
7
 
 
8
#define FLEX_SCANNER
 
9
#define YY_FLEX_MAJOR_VERSION 2
 
10
#define YY_FLEX_MINOR_VERSION 5
 
11
#define YY_FLEX_SUBMINOR_VERSION 35
 
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. */
 
19
#include <stdio.h>
 
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 defined (__STDC_VERSION__) && __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 */
 
88
 
 
89
#ifdef __cplusplus
 
90
 
 
91
/* The "const" storage-class-modifier is valid. */
 
92
#define YY_USE_CONST
 
93
 
 
94
#else   /* ! __cplusplus */
 
95
 
 
96
/* C99 requires __STDC__ to be defined as 1. */
 
97
#if defined (__STDC__)
 
98
 
 
99
#define YY_USE_CONST
 
100
 
 
101
#endif  /* defined (__STDC__) */
 
102
#endif  /* ! __cplusplus */
 
103
 
 
104
#ifdef YY_USE_CONST
 
105
#define yyconst const
 
106
#else
 
107
#define yyconst
 
108
#endif
 
109
 
 
110
/* Returned upon end-of-file. */
 
111
#define YY_NULL 0
 
112
 
 
113
/* Promotes a possibly negative, possibly signed char to an unsigned
 
114
 * integer for use as an array index.  If the signed char is negative,
 
115
 * we want to instead treat it as an 8-bit unsigned char, hence the
 
116
 * double cast.
 
117
 */
 
118
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 
119
 
 
120
/* Enter a start condition.  This macro really ought to take a parameter,
 
121
 * but we do it the disgusting crufty way forced on us by the ()-less
 
122
 * definition of BEGIN.
 
123
 */
 
124
#define BEGIN (yy_start) = 1 + 2 *
 
125
 
 
126
/* Translate the current start state into a value that can be later handed
 
127
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 
128
 * compatibility.
 
129
 */
 
130
#define YY_START (((yy_start) - 1) / 2)
 
131
#define YYSTATE YY_START
 
132
 
 
133
/* Action number for EOF rule of a given start state. */
 
134
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
135
 
 
136
/* Special action meaning "start processing a new file". */
 
137
#define YY_NEW_FILE yyrestart(yyin  )
 
138
 
 
139
#define YY_END_OF_BUFFER_CHAR 0
 
140
 
 
141
/* Size of default input buffer. */
 
142
#ifndef YY_BUF_SIZE
 
143
#define YY_BUF_SIZE 16384
 
144
#endif
 
145
 
 
146
/* The state buf must be large enough to hold one state per character in the main buffer.
 
147
 */
 
148
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
149
 
 
150
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
 
151
#define YY_TYPEDEF_YY_BUFFER_STATE
 
152
typedef struct yy_buffer_state *YY_BUFFER_STATE;
 
153
#endif
 
154
 
 
155
extern int yyleng;
 
156
 
 
157
extern FILE *yyin, *yyout;
 
158
 
 
159
#define EOB_ACT_CONTINUE_SCAN 0
 
160
#define EOB_ACT_END_OF_FILE 1
 
161
#define EOB_ACT_LAST_MATCH 2
 
162
 
 
163
    #define YY_LESS_LINENO(n)
 
164
    
 
165
/* Return all but the first "n" matched characters back to the input stream. */
 
166
#define yyless(n) \
 
167
        do \
 
168
                { \
 
169
                /* Undo effects of setting up yytext. */ \
 
170
        int yyless_macro_arg = (n); \
 
171
        YY_LESS_LINENO(yyless_macro_arg);\
 
172
                *yy_cp = (yy_hold_char); \
 
173
                YY_RESTORE_YY_MORE_OFFSET \
 
174
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
 
175
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 
176
                } \
 
177
        while ( 0 )
 
178
 
 
179
#define unput(c) yyunput( c, (yytext_ptr)  )
 
180
 
 
181
#ifndef YY_TYPEDEF_YY_SIZE_T
 
182
#define YY_TYPEDEF_YY_SIZE_T
 
183
typedef size_t yy_size_t;
 
184
#endif
 
185
 
 
186
#ifndef YY_STRUCT_YY_BUFFER_STATE
 
187
#define YY_STRUCT_YY_BUFFER_STATE
 
188
struct yy_buffer_state
 
189
        {
 
190
        FILE *yy_input_file;
 
191
 
 
192
        char *yy_ch_buf;                /* input buffer */
 
193
        char *yy_buf_pos;               /* current position in input buffer */
 
194
 
 
195
        /* Size of input buffer in bytes, not including room for EOB
 
196
         * characters.
 
197
         */
 
198
        yy_size_t yy_buf_size;
 
199
 
 
200
        /* Number of characters read into yy_ch_buf, not including EOB
 
201
         * characters.
 
202
         */
 
203
        int yy_n_chars;
 
204
 
 
205
        /* Whether we "own" the buffer - i.e., we know we created it,
 
206
         * and can realloc() it to grow it, and should free() it to
 
207
         * delete it.
 
208
         */
 
209
        int yy_is_our_buffer;
 
210
 
 
211
        /* Whether this is an "interactive" input source; if so, and
 
212
         * if we're using stdio for input, then we want to use getc()
 
213
         * instead of fread(), to make sure we stop fetching input after
 
214
         * each newline.
 
215
         */
 
216
        int yy_is_interactive;
 
217
 
 
218
        /* Whether we're considered to be at the beginning of a line.
 
219
         * If so, '^' rules will be active on the next match, otherwise
 
220
         * not.
 
221
         */
 
222
        int yy_at_bol;
 
223
 
 
224
    int yy_bs_lineno; /**< The line count. */
 
225
    int yy_bs_column; /**< The column count. */
 
226
    
 
227
        /* Whether to try to fill the input buffer when we reach the
 
228
         * end of it.
 
229
         */
 
230
        int yy_fill_buffer;
 
231
 
 
232
        int yy_buffer_status;
 
233
 
 
234
#define YY_BUFFER_NEW 0
 
235
#define YY_BUFFER_NORMAL 1
 
236
        /* When an EOF's been seen but there's still some text to process
 
237
         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
 
238
         * shouldn't try reading from the input source any more.  We might
 
239
         * still have a bunch of tokens to match, though, because of
 
240
         * possible backing-up.
 
241
         *
 
242
         * When we actually see the EOF, we change the status to "new"
 
243
         * (via yyrestart()), so that the user can continue scanning by
 
244
         * just pointing yyin at a new input file.
 
245
         */
 
246
#define YY_BUFFER_EOF_PENDING 2
 
247
 
 
248
        };
 
249
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
250
 
 
251
/* Stack of input buffers. */
 
252
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 
253
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
 
254
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
255
 
 
256
/* We provide macros for accessing buffer states in case in the
 
257
 * future we want to put the buffer states in a more general
 
258
 * "scanner state".
 
259
 *
 
260
 * Returns the top of the stack, or NULL.
 
261
 */
 
262
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
 
263
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
 
264
                          : NULL)
 
265
 
 
266
/* Same as previous macro, but useful when we know that the buffer stack is not
 
267
 * NULL or when we need an lvalue. For internal use only.
 
268
 */
 
269
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
270
 
 
271
/* yy_hold_char holds the character lost when yytext is formed. */
 
272
static char yy_hold_char;
 
273
static int yy_n_chars;          /* number of characters read into yy_ch_buf */
 
274
int yyleng;
 
275
 
 
276
/* Points to current character in buffer. */
 
277
static char *yy_c_buf_p = (char *) 0;
 
278
static int yy_init = 0;         /* whether we need to initialize */
 
279
static int yy_start = 0;        /* start state number */
 
280
 
 
281
/* Flag which is used to allow yywrap()'s to do buffer switches
 
282
 * instead of setting up a fresh yyin.  A bit of a hack ...
 
283
 */
 
284
static int yy_did_buffer_switch_on_eof;
 
285
 
 
286
void yyrestart (FILE *input_file  );
 
287
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
 
288
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
 
289
void yy_delete_buffer (YY_BUFFER_STATE b  );
 
290
void yy_flush_buffer (YY_BUFFER_STATE b  );
 
291
void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
 
292
void yypop_buffer_state (void );
 
293
 
 
294
static void yyensure_buffer_stack (void );
 
295
static void yy_load_buffer_state (void );
 
296
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
297
 
 
298
#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
 
299
 
 
300
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
 
301
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
 
302
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
 
303
 
 
304
void *yyalloc (yy_size_t  );
 
305
void *yyrealloc (void *,yy_size_t  );
 
306
void yyfree (void *  );
 
307
 
 
308
#define yy_new_buffer yy_create_buffer
 
309
 
 
310
#define yy_set_interactive(is_interactive) \
 
311
        { \
 
312
        if ( ! YY_CURRENT_BUFFER ){ \
 
313
        yyensure_buffer_stack (); \
 
314
                YY_CURRENT_BUFFER_LVALUE =    \
 
315
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
316
        } \
 
317
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 
318
        }
 
319
 
 
320
#define yy_set_bol(at_bol) \
 
321
        { \
 
322
        if ( ! YY_CURRENT_BUFFER ){\
 
323
        yyensure_buffer_stack (); \
 
324
                YY_CURRENT_BUFFER_LVALUE =    \
 
325
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
 
326
        } \
 
327
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 
328
        }
 
329
 
 
330
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
331
 
 
332
/* Begin user sect3 */
 
333
 
 
334
typedef unsigned char YY_CHAR;
 
335
 
 
336
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 
337
 
 
338
typedef int yy_state_type;
 
339
 
 
340
extern int yylineno;
 
341
 
 
342
int yylineno = 1;
 
343
 
 
344
extern char *yytext;
 
345
#define yytext_ptr yytext
 
346
 
 
347
static yy_state_type yy_get_previous_state (void );
 
348
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
 
349
static int yy_get_next_buffer (void );
 
350
static void yy_fatal_error (yyconst char msg[]  );
 
351
 
 
352
/* Done after the current pattern has been matched and before the
 
353
 * corresponding action - sets up yytext.
 
354
 */
 
355
#define YY_DO_BEFORE_ACTION \
 
356
        (yytext_ptr) = yy_bp; \
 
357
        yyleng = (size_t) (yy_cp - yy_bp); \
 
358
        (yy_hold_char) = *yy_cp; \
 
359
        *yy_cp = '\0'; \
 
360
        (yy_c_buf_p) = yy_cp;
 
361
 
 
362
#define YY_NUM_RULES 9
 
363
#define YY_END_OF_BUFFER 10
 
364
/* This struct is not used in this scanner,
 
365
   but its presence is necessary. */
 
366
struct yy_trans_info
 
367
        {
 
368
        flex_int32_t yy_verify;
 
369
        flex_int32_t yy_nxt;
 
370
        };
 
371
static yyconst flex_int16_t yy_accept[36] =
 
372
    {   0,
 
373
        0,    0,   10,    8,    1,    7,    8,    8,    6,    3,
 
374
        6,    0,    4,    0,    2,    6,    3,    6,    3,    0,
 
375
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
376
        0,    0,    0,    5,    0
 
377
    } ;
 
378
 
 
379
static yyconst flex_int32_t yy_ec[256] =
 
380
    {   0,
 
381
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
 
382
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
383
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
384
        1,    2,    1,    4,    5,    1,    1,    1,    1,    1,
 
385
        1,    1,    1,    1,    6,    1,    1,    7,    7,    7,
 
386
        7,    7,    7,    7,    7,    7,    7,    8,    1,    1,
 
387
        1,    1,    1,    1,    9,    9,    9,    9,    9,    9,
 
388
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
 
389
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
 
390
        1,    1,    1,    1,    6,    1,    9,    9,    9,    9,
 
391
 
 
392
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
 
393
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
 
394
        9,    9,    1,    1,    1,    1,    1,    1,    1,    1,
 
395
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
396
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
397
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
398
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
399
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
400
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
401
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
402
 
 
403
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
404
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
405
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
406
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
407
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
408
        1,    1,    1,    1,    1
 
409
    } ;
 
410
 
 
411
static yyconst flex_int32_t yy_meta[10] =
 
412
    {   0,
 
413
        1,    1,    2,    1,    1,    3,    4,    1,    4
 
414
    } ;
 
415
 
 
416
static yyconst flex_int16_t yy_base[49] =
 
417
    {   0,
 
418
        0,    0,   46,   47,   47,   47,   41,   41,    0,    4,
 
419
       36,   38,   37,   37,   47,    0,    7,   31,   31,    0,
 
420
        0,   29,    0,    0,   28,    0,    0,   27,    0,    0,
 
421
       26,    0,    0,   47,   47,   15,   19,   21,   29,   28,
 
422
       27,   26,   25,   24,   23,   22,   13,    8
 
423
    } ;
 
424
 
 
425
static yyconst flex_int16_t yy_def[49] =
 
426
    {   0,
 
427
       35,    1,   35,   35,   35,   35,   36,   37,   38,   35,
 
428
       10,   36,   36,   37,   35,   38,   38,   38,   38,   39,
 
429
       40,   35,   41,   42,   35,   43,   44,   35,   45,   46,
 
430
       35,   47,   48,   35,    0,   35,   35,   35,   35,   35,
 
431
       35,   35,   35,   35,   35,   35,   35,   35
 
432
    } ;
 
433
 
 
434
static yyconst flex_int16_t yy_nxt[57] =
 
435
    {   0,
 
436
        4,    5,    6,    7,    8,    9,   10,    4,   11,   16,
 
437
       17,   34,   18,   19,   20,   12,   33,   12,   12,   14,
 
438
       14,   14,   14,   16,   16,   31,   30,   28,   27,   25,
 
439
       24,   22,   21,   32,   29,   26,   23,   19,   20,   15,
 
440
       13,   13,   18,   15,   13,   35,    3,   35,   35,   35,
 
441
       35,   35,   35,   35,   35,   35
 
442
    } ;
 
443
 
 
444
static yyconst flex_int16_t yy_chk[57] =
 
445
    {   0,
 
446
        1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
 
447
       10,   48,   10,   17,   17,   36,   47,   36,   36,   37,
 
448
       37,   37,   37,   38,   38,   46,   45,   44,   43,   42,
 
449
       41,   40,   39,   31,   28,   25,   22,   19,   18,   14,
 
450
       13,   12,   11,    8,    7,    3,   35,   35,   35,   35,
 
451
       35,   35,   35,   35,   35,   35
 
452
    } ;
 
453
 
 
454
static yy_state_type yy_last_accepting_state;
 
455
static char *yy_last_accepting_cpos;
 
456
 
 
457
extern int yy_flex_debug;
 
458
int yy_flex_debug = 0;
 
459
 
 
460
/* The intent behind this definition is that it'll catch
 
461
 * any uses of REJECT which flex missed.
 
462
 */
 
463
#define REJECT reject_used_but_not_detected
 
464
#define yymore() yymore_used_but_not_detected
 
465
#define YY_MORE_ADJ 0
 
466
#define YY_RESTORE_YY_MORE_OFFSET
 
467
char *yytext;
 
468
#line 1 "lexer.l"
 
469
#line 2 "lexer.l"
 
470
/*
 
471
 *
 
472
 *  BlueZ - Bluetooth protocol stack for Linux
 
473
 *
 
474
 *  Copyright (C) 2002-2008  Marcel Holtmann <marcel@holtmann.org>
 
475
 *
 
476
 *
 
477
 *  This program is free software; you can redistribute it and/or modify
 
478
 *  it under the terms of the GNU General Public License as published by
 
479
 *  the Free Software Foundation; either version 2 of the License, or
 
480
 *  (at your option) any later version.
 
481
 *
 
482
 *  This program is distributed in the hope that it will be useful,
 
483
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
484
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
485
 *  GNU General Public License for more details.
 
486
 *
 
487
 *  You should have received a copy of the GNU General Public License
 
488
 *  along with this program; if not, write to the Free Software
 
489
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
490
 *
 
491
 */
 
492
 
 
493
#ifdef HAVE_CONFIG_H
 
494
#include <config.h>
 
495
#endif
 
496
 
 
497
#include <stdio.h>
 
498
#include <errno.h>
 
499
#include <sys/socket.h>
 
500
 
 
501
#include <bluetooth/bluetooth.h>
 
502
#include <bluetooth/rfcomm.h>
 
503
 
 
504
#include "kword.h"
 
505
#include "parser.h"
 
506
 
 
507
 
 
508
#define ECHO {;}
 
509
#define YY_DECL int yylex(void)
 
510
 
 
511
int yyerror(char *str);
 
512
 
 
513
#line 514 "lexer.c"
 
514
 
 
515
#define INITIAL 0
 
516
 
 
517
#ifndef YY_NO_UNISTD_H
 
518
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 
519
 * down here because we want the user's section 1 to have been scanned first.
 
520
 * The user has a chance to override it with an option.
 
521
 */
 
522
#include <unistd.h>
 
523
#endif
 
524
 
 
525
#ifndef YY_EXTRA_TYPE
 
526
#define YY_EXTRA_TYPE void *
 
527
#endif
 
528
 
 
529
static int yy_init_globals (void );
 
530
 
 
531
/* Accessor methods to globals.
 
532
   These are made visible to non-reentrant scanners for convenience. */
 
533
 
 
534
int yylex_destroy (void );
 
535
 
 
536
int yyget_debug (void );
 
537
 
 
538
void yyset_debug (int debug_flag  );
 
539
 
 
540
YY_EXTRA_TYPE yyget_extra (void );
 
541
 
 
542
void yyset_extra (YY_EXTRA_TYPE user_defined  );
 
543
 
 
544
FILE *yyget_in (void );
 
545
 
 
546
void yyset_in  (FILE * in_str  );
 
547
 
 
548
FILE *yyget_out (void );
 
549
 
 
550
void yyset_out  (FILE * out_str  );
 
551
 
 
552
int yyget_leng (void );
 
553
 
 
554
char *yyget_text (void );
 
555
 
 
556
int yyget_lineno (void );
 
557
 
 
558
void yyset_lineno (int line_number  );
 
559
 
 
560
/* Macros after this point can all be overridden by user definitions in
 
561
 * section 1.
 
562
 */
 
563
 
 
564
#ifndef YY_SKIP_YYWRAP
 
565
#ifdef __cplusplus
 
566
extern "C" int yywrap (void );
 
567
#else
 
568
extern int yywrap (void );
 
569
#endif
 
570
#endif
 
571
 
 
572
#ifndef yytext_ptr
 
573
static void yy_flex_strncpy (char *,yyconst char *,int );
 
574
#endif
 
575
 
 
576
#ifdef YY_NEED_STRLEN
 
577
static int yy_flex_strlen (yyconst char * );
 
578
#endif
 
579
 
 
580
#ifndef YY_NO_INPUT
 
581
 
 
582
#ifdef __cplusplus
 
583
static int yyinput (void );
 
584
#else
 
585
static int input (void );
 
586
#endif
 
587
 
 
588
#endif
 
589
 
 
590
/* Amount of stuff to slurp up with each read. */
 
591
#ifndef YY_READ_BUF_SIZE
 
592
#define YY_READ_BUF_SIZE 8192
 
593
#endif
 
594
 
 
595
/* Copy whatever the last rule matched to the standard output. */
 
596
#ifndef ECHO
 
597
/* This used to be an fputs(), but since the string might contain NUL's,
 
598
 * we now use fwrite().
 
599
 */
 
600
#define ECHO fwrite( yytext, yyleng, 1, yyout )
 
601
#endif
 
602
 
 
603
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 
604
 * is returned in "result".
 
605
 */
 
606
#ifndef YY_INPUT
 
607
#define YY_INPUT(buf,result,max_size) \
 
608
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 
609
                { \
 
610
                int c = '*'; \
 
611
                unsigned n; \
 
612
                for ( n = 0; n < max_size && \
 
613
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 
614
                        buf[n] = (char) c; \
 
615
                if ( c == '\n' ) \
 
616
                        buf[n++] = (char) c; \
 
617
                if ( c == EOF && ferror( yyin ) ) \
 
618
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
619
                result = n; \
 
620
                } \
 
621
        else \
 
622
                { \
 
623
                errno=0; \
 
624
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
 
625
                        { \
 
626
                        if( errno != EINTR) \
 
627
                                { \
 
628
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
629
                                break; \
 
630
                                } \
 
631
                        errno=0; \
 
632
                        clearerr(yyin); \
 
633
                        } \
 
634
                }\
 
635
\
 
636
 
 
637
#endif
 
638
 
 
639
/* No semi-colon after return; correct usage is to write "yyterminate();" -
 
640
 * we don't want an extra ';' after the "return" because that will cause
 
641
 * some compilers to complain about unreachable statements.
 
642
 */
 
643
#ifndef yyterminate
 
644
#define yyterminate() return YY_NULL
 
645
#endif
 
646
 
 
647
/* Number of entries by which start-condition stack grows. */
 
648
#ifndef YY_START_STACK_INCR
 
649
#define YY_START_STACK_INCR 25
 
650
#endif
 
651
 
 
652
/* Report a fatal error. */
 
653
#ifndef YY_FATAL_ERROR
 
654
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 
655
#endif
 
656
 
 
657
/* end tables serialization structures and prototypes */
 
658
 
 
659
/* Default declaration of generated scanner - a define so the user can
 
660
 * easily add parameters.
 
661
 */
 
662
#ifndef YY_DECL
 
663
#define YY_DECL_IS_OURS 1
 
664
 
 
665
extern int yylex (void);
 
666
 
 
667
#define YY_DECL int yylex (void)
 
668
#endif /* !YY_DECL */
 
669
 
 
670
/* Code executed at the beginning of each rule, after yytext and yyleng
 
671
 * have been set up.
 
672
 */
 
673
#ifndef YY_USER_ACTION
 
674
#define YY_USER_ACTION
 
675
#endif
 
676
 
 
677
/* Code executed at the end of each rule. */
 
678
#ifndef YY_BREAK
 
679
#define YY_BREAK break;
 
680
#endif
 
681
 
 
682
#define YY_RULE_SETUP \
 
683
        YY_USER_ACTION
 
684
 
 
685
/** The main scanner function which does all the work.
 
686
 */
 
687
YY_DECL
 
688
{
 
689
        register yy_state_type yy_current_state;
 
690
        register char *yy_cp, *yy_bp;
 
691
        register int yy_act;
 
692
    
 
693
#line 58 "lexer.l"
 
694
 
 
695
 
 
696
#line 697 "lexer.c"
 
697
 
 
698
        if ( !(yy_init) )
 
699
                {
 
700
                (yy_init) = 1;
 
701
 
 
702
#ifdef YY_USER_INIT
 
703
                YY_USER_INIT;
 
704
#endif
 
705
 
 
706
                if ( ! (yy_start) )
 
707
                        (yy_start) = 1; /* first start state */
 
708
 
 
709
                if ( ! yyin )
 
710
                        yyin = stdin;
 
711
 
 
712
                if ( ! yyout )
 
713
                        yyout = stdout;
 
714
 
 
715
                if ( ! YY_CURRENT_BUFFER ) {
 
716
                        yyensure_buffer_stack ();
 
717
                        YY_CURRENT_BUFFER_LVALUE =
 
718
                                yy_create_buffer(yyin,YY_BUF_SIZE );
 
719
                }
 
720
 
 
721
                yy_load_buffer_state( );
 
722
                }
 
723
 
 
724
        while ( 1 )             /* loops until end-of-file is reached */
 
725
                {
 
726
                yy_cp = (yy_c_buf_p);
 
727
 
 
728
                /* Support of yytext. */
 
729
                *yy_cp = (yy_hold_char);
 
730
 
 
731
                /* yy_bp points to the position in yy_ch_buf of the start of
 
732
                 * the current run.
 
733
                 */
 
734
                yy_bp = yy_cp;
 
735
 
 
736
                yy_current_state = (yy_start);
 
737
yy_match:
 
738
                do
 
739
                        {
 
740
                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
 
741
                        if ( yy_accept[yy_current_state] )
 
742
                                {
 
743
                                (yy_last_accepting_state) = yy_current_state;
 
744
                                (yy_last_accepting_cpos) = yy_cp;
 
745
                                }
 
746
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
747
                                {
 
748
                                yy_current_state = (int) yy_def[yy_current_state];
 
749
                                if ( yy_current_state >= 36 )
 
750
                                        yy_c = yy_meta[(unsigned int) yy_c];
 
751
                                }
 
752
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
753
                        ++yy_cp;
 
754
                        }
 
755
                while ( yy_base[yy_current_state] != 47 );
 
756
 
 
757
yy_find_action:
 
758
                yy_act = yy_accept[yy_current_state];
 
759
                if ( yy_act == 0 )
 
760
                        { /* have to back up */
 
761
                        yy_cp = (yy_last_accepting_cpos);
 
762
                        yy_current_state = (yy_last_accepting_state);
 
763
                        yy_act = yy_accept[yy_current_state];
 
764
                        }
 
765
 
 
766
                YY_DO_BEFORE_ACTION;
 
767
 
 
768
do_action:      /* This label is used only to access EOF actions. */
 
769
 
 
770
                switch ( yy_act )
 
771
        { /* beginning of action switch */
 
772
                        case 0: /* must back up */
 
773
                        /* undo the effects of YY_DO_BEFORE_ACTION */
 
774
                        *yy_cp = (yy_hold_char);
 
775
                        yy_cp = (yy_last_accepting_cpos);
 
776
                        yy_current_state = (yy_last_accepting_state);
 
777
                        goto yy_find_action;
 
778
 
 
779
case 1:
 
780
YY_RULE_SETUP
 
781
#line 60 "lexer.l"
 
782
{
 
783
                        /* Skip spaces and tabs */
 
784
                        ;
 
785
                }
 
786
        YY_BREAK
 
787
case 2:
 
788
/* rule 2 can match eol */
 
789
YY_RULE_SETUP
 
790
#line 65 "lexer.l"
 
791
{
 
792
                        /* Skip comments */
 
793
                        lineno++; 
 
794
                }
 
795
        YY_BREAK
 
796
case 3:
 
797
YY_RULE_SETUP
 
798
#line 70 "lexer.l"
 
799
{
 
800
                        yylval.number = atoi(yytext);
 
801
                        return NUMBER;
 
802
                }
 
803
        YY_BREAK
 
804
case 4:
 
805
YY_RULE_SETUP
 
806
#line 75 "lexer.l"
 
807
{
 
808
                        yylval.string = yytext;
 
809
                        return STRING;
 
810
                }
 
811
        YY_BREAK
 
812
case 5:
 
813
YY_RULE_SETUP
 
814
#line 80 "lexer.l"
 
815
{
 
816
                        bdaddr_t *ba = malloc(sizeof(bdaddr_t));
 
817
                        str2ba(yytext, ba);
 
818
                        yylval.bdaddr = ba;
 
819
                        return BDADDR;
 
820
                }
 
821
        YY_BREAK
 
822
case 6:
 
823
YY_RULE_SETUP
 
824
#line 87 "lexer.l"
 
825
{
 
826
                        int keyword = rfcomm_find_keyword(rfcomm_keyword, yytext);
 
827
                        if (keyword != -1)
 
828
                                return keyword;
 
829
 
 
830
                        if (strncmp(yytext, "rfcomm", 6) == 0) {
 
831
                                yylval.number = atoi(yytext + 6);
 
832
                                return RFCOMM;
 
833
                        }
 
834
 
 
835
                        yylval.string = yytext;
 
836
                        return WORD;
 
837
                }
 
838
        YY_BREAK
 
839
case 7:
 
840
/* rule 7 can match eol */
 
841
YY_RULE_SETUP
 
842
#line 101 "lexer.l"
 
843
{
 
844
                        lineno++;
 
845
                }
 
846
        YY_BREAK
 
847
case 8:
 
848
YY_RULE_SETUP
 
849
#line 105 "lexer.l"
 
850
{
 
851
                        return *yytext;
 
852
                }
 
853
        YY_BREAK
 
854
case 9:
 
855
YY_RULE_SETUP
 
856
#line 109 "lexer.l"
 
857
ECHO;
 
858
        YY_BREAK
 
859
#line 860 "lexer.c"
 
860
case YY_STATE_EOF(INITIAL):
 
861
        yyterminate();
 
862
 
 
863
        case YY_END_OF_BUFFER:
 
864
                {
 
865
                /* Amount of text matched not including the EOB char. */
 
866
                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
 
867
 
 
868
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
 
869
                *yy_cp = (yy_hold_char);
 
870
                YY_RESTORE_YY_MORE_OFFSET
 
871
 
 
872
                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
 
873
                        {
 
874
                        /* We're scanning a new file or input source.  It's
 
875
                         * possible that this happened because the user
 
876
                         * just pointed yyin at a new source and called
 
877
                         * yylex().  If so, then we have to assure
 
878
                         * consistency between YY_CURRENT_BUFFER and our
 
879
                         * globals.  Here is the right place to do so, because
 
880
                         * this is the first action (other than possibly a
 
881
                         * back-up) that will match for the new input source.
 
882
                         */
 
883
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
884
                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
 
885
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
 
886
                        }
 
887
 
 
888
                /* Note that here we test for yy_c_buf_p "<=" to the position
 
889
                 * of the first EOB in the buffer, since yy_c_buf_p will
 
890
                 * already have been incremented past the NUL character
 
891
                 * (since all states make transitions on EOB to the
 
892
                 * end-of-buffer state).  Contrast this with the test
 
893
                 * in input().
 
894
                 */
 
895
                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 
896
                        { /* This was really a NUL. */
 
897
                        yy_state_type yy_next_state;
 
898
 
 
899
                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
 
900
 
 
901
                        yy_current_state = yy_get_previous_state(  );
 
902
 
 
903
                        /* Okay, we're now positioned to make the NUL
 
904
                         * transition.  We couldn't have
 
905
                         * yy_get_previous_state() go ahead and do it
 
906
                         * for us because it doesn't know how to deal
 
907
                         * with the possibility of jamming (and we don't
 
908
                         * want to build jamming into it because then it
 
909
                         * will run more slowly).
 
910
                         */
 
911
 
 
912
                        yy_next_state = yy_try_NUL_trans( yy_current_state );
 
913
 
 
914
                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
915
 
 
916
                        if ( yy_next_state )
 
917
                                {
 
918
                                /* Consume the NUL. */
 
919
                                yy_cp = ++(yy_c_buf_p);
 
920
                                yy_current_state = yy_next_state;
 
921
                                goto yy_match;
 
922
                                }
 
923
 
 
924
                        else
 
925
                                {
 
926
                                yy_cp = (yy_c_buf_p);
 
927
                                goto yy_find_action;
 
928
                                }
 
929
                        }
 
930
 
 
931
                else switch ( yy_get_next_buffer(  ) )
 
932
                        {
 
933
                        case EOB_ACT_END_OF_FILE:
 
934
                                {
 
935
                                (yy_did_buffer_switch_on_eof) = 0;
 
936
 
 
937
                                if ( yywrap( ) )
 
938
                                        {
 
939
                                        /* Note: because we've taken care in
 
940
                                         * yy_get_next_buffer() to have set up
 
941
                                         * yytext, we can now set up
 
942
                                         * yy_c_buf_p so that if some total
 
943
                                         * hoser (like flex itself) wants to
 
944
                                         * call the scanner after we return the
 
945
                                         * YY_NULL, it'll still work - another
 
946
                                         * YY_NULL will get returned.
 
947
                                         */
 
948
                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
 
949
 
 
950
                                        yy_act = YY_STATE_EOF(YY_START);
 
951
                                        goto do_action;
 
952
                                        }
 
953
 
 
954
                                else
 
955
                                        {
 
956
                                        if ( ! (yy_did_buffer_switch_on_eof) )
 
957
                                                YY_NEW_FILE;
 
958
                                        }
 
959
                                break;
 
960
                                }
 
961
 
 
962
                        case EOB_ACT_CONTINUE_SCAN:
 
963
                                (yy_c_buf_p) =
 
964
                                        (yytext_ptr) + yy_amount_of_matched_text;
 
965
 
 
966
                                yy_current_state = yy_get_previous_state(  );
 
967
 
 
968
                                yy_cp = (yy_c_buf_p);
 
969
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
970
                                goto yy_match;
 
971
 
 
972
                        case EOB_ACT_LAST_MATCH:
 
973
                                (yy_c_buf_p) =
 
974
                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
 
975
 
 
976
                                yy_current_state = yy_get_previous_state(  );
 
977
 
 
978
                                yy_cp = (yy_c_buf_p);
 
979
                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
980
                                goto yy_find_action;
 
981
                        }
 
982
                break;
 
983
                }
 
984
 
 
985
        default:
 
986
                YY_FATAL_ERROR(
 
987
                        "fatal flex scanner internal error--no action found" );
 
988
        } /* end of action switch */
 
989
                } /* end of scanning one token */
 
990
} /* end of yylex */
 
991
 
 
992
/* yy_get_next_buffer - try to read in a new buffer
 
993
 *
 
994
 * Returns a code representing an action:
 
995
 *      EOB_ACT_LAST_MATCH -
 
996
 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 
997
 *      EOB_ACT_END_OF_FILE - end of file
 
998
 */
 
999
static int yy_get_next_buffer (void)
 
1000
{
 
1001
        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
 
1002
        register char *source = (yytext_ptr);
 
1003
        register int number_to_move, i;
 
1004
        int ret_val;
 
1005
 
 
1006
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
 
1007
                YY_FATAL_ERROR(
 
1008
                "fatal flex scanner internal error--end of buffer missed" );
 
1009
 
 
1010
        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
 
1011
                { /* Don't try to fill the buffer, so this is an EOF. */
 
1012
                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
 
1013
                        {
 
1014
                        /* We matched a single character, the EOB, so
 
1015
                         * treat this as a final EOF.
 
1016
                         */
 
1017
                        return EOB_ACT_END_OF_FILE;
 
1018
                        }
 
1019
 
 
1020
                else
 
1021
                        {
 
1022
                        /* We matched some text prior to the EOB, first
 
1023
                         * process it.
 
1024
                         */
 
1025
                        return EOB_ACT_LAST_MATCH;
 
1026
                        }
 
1027
                }
 
1028
 
 
1029
        /* Try to read more data. */
 
1030
 
 
1031
        /* First move last chars to start of buffer. */
 
1032
        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
 
1033
 
 
1034
        for ( i = 0; i < number_to_move; ++i )
 
1035
                *(dest++) = *(source++);
 
1036
 
 
1037
        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 
1038
                /* don't do the read, it's not guaranteed to return an EOF,
 
1039
                 * just force an EOF
 
1040
                 */
 
1041
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
 
1042
 
 
1043
        else
 
1044
                {
 
1045
                        int num_to_read =
 
1046
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
1047
 
 
1048
                while ( num_to_read <= 0 )
 
1049
                        { /* Not enough room in the buffer - grow it. */
 
1050
 
 
1051
                        /* just a shorter name for the current buffer */
 
1052
                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
 
1053
 
 
1054
                        int yy_c_buf_p_offset =
 
1055
                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
 
1056
 
 
1057
                        if ( b->yy_is_our_buffer )
 
1058
                                {
 
1059
                                int new_size = b->yy_buf_size * 2;
 
1060
 
 
1061
                                if ( new_size <= 0 )
 
1062
                                        b->yy_buf_size += b->yy_buf_size / 8;
 
1063
                                else
 
1064
                                        b->yy_buf_size *= 2;
 
1065
 
 
1066
                                b->yy_ch_buf = (char *)
 
1067
                                        /* Include room in for 2 EOB chars. */
 
1068
                                        yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
 
1069
                                }
 
1070
                        else
 
1071
                                /* Can't grow it, we don't own it. */
 
1072
                                b->yy_ch_buf = 0;
 
1073
 
 
1074
                        if ( ! b->yy_ch_buf )
 
1075
                                YY_FATAL_ERROR(
 
1076
                                "fatal error - scanner input buffer overflow" );
 
1077
 
 
1078
                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
 
1079
 
 
1080
                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
 
1081
                                                number_to_move - 1;
 
1082
 
 
1083
                        }
 
1084
 
 
1085
                if ( num_to_read > YY_READ_BUF_SIZE )
 
1086
                        num_to_read = YY_READ_BUF_SIZE;
 
1087
 
 
1088
                /* Read in more data. */
 
1089
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
 
1090
                        (yy_n_chars), (size_t) num_to_read );
 
1091
 
 
1092
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
1093
                }
 
1094
 
 
1095
        if ( (yy_n_chars) == 0 )
 
1096
                {
 
1097
                if ( number_to_move == YY_MORE_ADJ )
 
1098
                        {
 
1099
                        ret_val = EOB_ACT_END_OF_FILE;
 
1100
                        yyrestart(yyin  );
 
1101
                        }
 
1102
 
 
1103
                else
 
1104
                        {
 
1105
                        ret_val = EOB_ACT_LAST_MATCH;
 
1106
                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
 
1107
                                YY_BUFFER_EOF_PENDING;
 
1108
                        }
 
1109
                }
 
1110
 
 
1111
        else
 
1112
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
1113
 
 
1114
        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 
1115
                /* Extend the array by 50%, plus the number we really need. */
 
1116
                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
 
1117
                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
 
1118
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 
1119
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
 
1120
        }
 
1121
 
 
1122
        (yy_n_chars) += number_to_move;
 
1123
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 
1124
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
 
1125
 
 
1126
        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
 
1127
 
 
1128
        return ret_val;
 
1129
}
 
1130
 
 
1131
/* yy_get_previous_state - get the state just before the EOB char was reached */
 
1132
 
 
1133
    static yy_state_type yy_get_previous_state (void)
 
1134
{
 
1135
        register yy_state_type yy_current_state;
 
1136
        register char *yy_cp;
 
1137
    
 
1138
        yy_current_state = (yy_start);
 
1139
 
 
1140
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 
1141
                {
 
1142
                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 
1143
                if ( yy_accept[yy_current_state] )
 
1144
                        {
 
1145
                        (yy_last_accepting_state) = yy_current_state;
 
1146
                        (yy_last_accepting_cpos) = yy_cp;
 
1147
                        }
 
1148
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1149
                        {
 
1150
                        yy_current_state = (int) yy_def[yy_current_state];
 
1151
                        if ( yy_current_state >= 36 )
 
1152
                                yy_c = yy_meta[(unsigned int) yy_c];
 
1153
                        }
 
1154
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1155
                }
 
1156
 
 
1157
        return yy_current_state;
 
1158
}
 
1159
 
 
1160
/* yy_try_NUL_trans - try to make a transition on the NUL character
 
1161
 *
 
1162
 * synopsis
 
1163
 *      next_state = yy_try_NUL_trans( current_state );
 
1164
 */
 
1165
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 
1166
{
 
1167
        register int yy_is_jam;
 
1168
        register char *yy_cp = (yy_c_buf_p);
 
1169
 
 
1170
        register YY_CHAR yy_c = 1;
 
1171
        if ( yy_accept[yy_current_state] )
 
1172
                {
 
1173
                (yy_last_accepting_state) = yy_current_state;
 
1174
                (yy_last_accepting_cpos) = yy_cp;
 
1175
                }
 
1176
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1177
                {
 
1178
                yy_current_state = (int) yy_def[yy_current_state];
 
1179
                if ( yy_current_state >= 36 )
 
1180
                        yy_c = yy_meta[(unsigned int) yy_c];
 
1181
                }
 
1182
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1183
        yy_is_jam = (yy_current_state == 35);
 
1184
 
 
1185
        return yy_is_jam ? 0 : yy_current_state;
 
1186
}
 
1187
 
 
1188
#ifndef YY_NO_INPUT
 
1189
#ifdef __cplusplus
 
1190
    static int yyinput (void)
 
1191
#else
 
1192
    static int input  (void)
 
1193
#endif
 
1194
 
 
1195
{
 
1196
        int c;
 
1197
    
 
1198
        *(yy_c_buf_p) = (yy_hold_char);
 
1199
 
 
1200
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
 
1201
                {
 
1202
                /* yy_c_buf_p now points to the character we want to return.
 
1203
                 * If this occurs *before* the EOB characters, then it's a
 
1204
                 * valid NUL; if not, then we've hit the end of the buffer.
 
1205
                 */
 
1206
                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 
1207
                        /* This was really a NUL. */
 
1208
                        *(yy_c_buf_p) = '\0';
 
1209
 
 
1210
                else
 
1211
                        { /* need more input */
 
1212
                        int offset = (yy_c_buf_p) - (yytext_ptr);
 
1213
                        ++(yy_c_buf_p);
 
1214
 
 
1215
                        switch ( yy_get_next_buffer(  ) )
 
1216
                                {
 
1217
                                case EOB_ACT_LAST_MATCH:
 
1218
                                        /* This happens because yy_g_n_b()
 
1219
                                         * sees that we've accumulated a
 
1220
                                         * token and flags that we need to
 
1221
                                         * try matching the token before
 
1222
                                         * proceeding.  But for input(),
 
1223
                                         * there's no matching to consider.
 
1224
                                         * So convert the EOB_ACT_LAST_MATCH
 
1225
                                         * to EOB_ACT_END_OF_FILE.
 
1226
                                         */
 
1227
 
 
1228
                                        /* Reset buffer status. */
 
1229
                                        yyrestart(yyin );
 
1230
 
 
1231
                                        /*FALLTHROUGH*/
 
1232
 
 
1233
                                case EOB_ACT_END_OF_FILE:
 
1234
                                        {
 
1235
                                        if ( yywrap( ) )
 
1236
                                                return EOF;
 
1237
 
 
1238
                                        if ( ! (yy_did_buffer_switch_on_eof) )
 
1239
                                                YY_NEW_FILE;
 
1240
#ifdef __cplusplus
 
1241
                                        return yyinput();
 
1242
#else
 
1243
                                        return input();
 
1244
#endif
 
1245
                                        }
 
1246
 
 
1247
                                case EOB_ACT_CONTINUE_SCAN:
 
1248
                                        (yy_c_buf_p) = (yytext_ptr) + offset;
 
1249
                                        break;
 
1250
                                }
 
1251
                        }
 
1252
                }
 
1253
 
 
1254
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
 
1255
        *(yy_c_buf_p) = '\0';   /* preserve yytext */
 
1256
        (yy_hold_char) = *++(yy_c_buf_p);
 
1257
 
 
1258
        return c;
 
1259
}
 
1260
#endif  /* ifndef YY_NO_INPUT */
 
1261
 
 
1262
/** Immediately switch to a different input stream.
 
1263
 * @param input_file A readable stream.
 
1264
 * 
 
1265
 * @note This function does not reset the start condition to @c INITIAL .
 
1266
 */
 
1267
    void yyrestart  (FILE * input_file )
 
1268
{
 
1269
    
 
1270
        if ( ! YY_CURRENT_BUFFER ){
 
1271
        yyensure_buffer_stack ();
 
1272
                YY_CURRENT_BUFFER_LVALUE =
 
1273
            yy_create_buffer(yyin,YY_BUF_SIZE );
 
1274
        }
 
1275
 
 
1276
        yy_init_buffer(YY_CURRENT_BUFFER,input_file );
 
1277
        yy_load_buffer_state( );
 
1278
}
 
1279
 
 
1280
/** Switch to a different input buffer.
 
1281
 * @param new_buffer The new input buffer.
 
1282
 * 
 
1283
 */
 
1284
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 
1285
{
 
1286
    
 
1287
        /* TODO. We should be able to replace this entire function body
 
1288
         * with
 
1289
         *              yypop_buffer_state();
 
1290
         *              yypush_buffer_state(new_buffer);
 
1291
     */
 
1292
        yyensure_buffer_stack ();
 
1293
        if ( YY_CURRENT_BUFFER == new_buffer )
 
1294
                return;
 
1295
 
 
1296
        if ( YY_CURRENT_BUFFER )
 
1297
                {
 
1298
                /* Flush out information for old buffer. */
 
1299
                *(yy_c_buf_p) = (yy_hold_char);
 
1300
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
1301
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
1302
                }
 
1303
 
 
1304
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
1305
        yy_load_buffer_state( );
 
1306
 
 
1307
        /* We don't actually know whether we did this switch during
 
1308
         * EOF (yywrap()) processing, but the only time this flag
 
1309
         * is looked at is after yywrap() is called, so it's safe
 
1310
         * to go ahead and always set it.
 
1311
         */
 
1312
        (yy_did_buffer_switch_on_eof) = 1;
 
1313
}
 
1314
 
 
1315
static void yy_load_buffer_state  (void)
 
1316
{
 
1317
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 
1318
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
 
1319
        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
 
1320
        (yy_hold_char) = *(yy_c_buf_p);
 
1321
}
 
1322
 
 
1323
/** Allocate and initialize an input buffer state.
 
1324
 * @param file A readable stream.
 
1325
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 
1326
 * 
 
1327
 * @return the allocated buffer state.
 
1328
 */
 
1329
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
 
1330
{
 
1331
        YY_BUFFER_STATE b;
 
1332
    
 
1333
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
 
1334
        if ( ! b )
 
1335
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1336
 
 
1337
        b->yy_buf_size = size;
 
1338
 
 
1339
        /* yy_ch_buf has to be 2 characters longer than the size given because
 
1340
         * we need to put in 2 end-of-buffer characters.
 
1341
         */
 
1342
        b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
 
1343
        if ( ! b->yy_ch_buf )
 
1344
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1345
 
 
1346
        b->yy_is_our_buffer = 1;
 
1347
 
 
1348
        yy_init_buffer(b,file );
 
1349
 
 
1350
        return b;
 
1351
}
 
1352
 
 
1353
/** Destroy the buffer.
 
1354
 * @param b a buffer created with yy_create_buffer()
 
1355
 * 
 
1356
 */
 
1357
    void yy_delete_buffer (YY_BUFFER_STATE  b )
 
1358
{
 
1359
    
 
1360
        if ( ! b )
 
1361
                return;
 
1362
 
 
1363
        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
 
1364
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
1365
 
 
1366
        if ( b->yy_is_our_buffer )
 
1367
                yyfree((void *) b->yy_ch_buf  );
 
1368
 
 
1369
        yyfree((void *) b  );
 
1370
}
 
1371
 
 
1372
#ifndef __cplusplus
 
1373
extern int isatty (int );
 
1374
#endif /* __cplusplus */
 
1375
    
 
1376
/* Initializes or reinitializes a buffer.
 
1377
 * This function is sometimes called more than once on the same buffer,
 
1378
 * such as during a yyrestart() or at EOF.
 
1379
 */
 
1380
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
1381
 
 
1382
{
 
1383
        int oerrno = errno;
 
1384
    
 
1385
        yy_flush_buffer(b );
 
1386
 
 
1387
        b->yy_input_file = file;
 
1388
        b->yy_fill_buffer = 1;
 
1389
 
 
1390
    /* If b is the current buffer, then yy_init_buffer was _probably_
 
1391
     * called from yyrestart() or through yy_get_next_buffer.
 
1392
     * In that case, we don't want to reset the lineno or column.
 
1393
     */
 
1394
    if (b != YY_CURRENT_BUFFER){
 
1395
        b->yy_bs_lineno = 1;
 
1396
        b->yy_bs_column = 0;
 
1397
    }
 
1398
 
 
1399
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
 
1400
    
 
1401
        errno = oerrno;
 
1402
}
 
1403
 
 
1404
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 
1405
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 
1406
 * 
 
1407
 */
 
1408
    void yy_flush_buffer (YY_BUFFER_STATE  b )
 
1409
{
 
1410
        if ( ! b )
 
1411
                return;
 
1412
 
 
1413
        b->yy_n_chars = 0;
 
1414
 
 
1415
        /* We always need two end-of-buffer characters.  The first causes
 
1416
         * a transition to the end-of-buffer state.  The second causes
 
1417
         * a jam in that state.
 
1418
         */
 
1419
        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
 
1420
        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
 
1421
 
 
1422
        b->yy_buf_pos = &b->yy_ch_buf[0];
 
1423
 
 
1424
        b->yy_at_bol = 1;
 
1425
        b->yy_buffer_status = YY_BUFFER_NEW;
 
1426
 
 
1427
        if ( b == YY_CURRENT_BUFFER )
 
1428
                yy_load_buffer_state( );
 
1429
}
 
1430
 
 
1431
/** Pushes the new state onto the stack. The new state becomes
 
1432
 *  the current state. This function will allocate the stack
 
1433
 *  if necessary.
 
1434
 *  @param new_buffer The new state.
 
1435
 *  
 
1436
 */
 
1437
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
 
1438
{
 
1439
        if (new_buffer == NULL)
 
1440
                return;
 
1441
 
 
1442
        yyensure_buffer_stack();
 
1443
 
 
1444
        /* This block is copied from yy_switch_to_buffer. */
 
1445
        if ( YY_CURRENT_BUFFER )
 
1446
                {
 
1447
                /* Flush out information for old buffer. */
 
1448
                *(yy_c_buf_p) = (yy_hold_char);
 
1449
                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
 
1450
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 
1451
                }
 
1452
 
 
1453
        /* Only push if top exists. Otherwise, replace top. */
 
1454
        if (YY_CURRENT_BUFFER)
 
1455
                (yy_buffer_stack_top)++;
 
1456
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
1457
 
 
1458
        /* copied from yy_switch_to_buffer. */
 
1459
        yy_load_buffer_state( );
 
1460
        (yy_did_buffer_switch_on_eof) = 1;
 
1461
}
 
1462
 
 
1463
/** Removes and deletes the top of the stack, if present.
 
1464
 *  The next element becomes the new top.
 
1465
 *  
 
1466
 */
 
1467
void yypop_buffer_state (void)
 
1468
{
 
1469
        if (!YY_CURRENT_BUFFER)
 
1470
                return;
 
1471
 
 
1472
        yy_delete_buffer(YY_CURRENT_BUFFER );
 
1473
        YY_CURRENT_BUFFER_LVALUE = NULL;
 
1474
        if ((yy_buffer_stack_top) > 0)
 
1475
                --(yy_buffer_stack_top);
 
1476
 
 
1477
        if (YY_CURRENT_BUFFER) {
 
1478
                yy_load_buffer_state( );
 
1479
                (yy_did_buffer_switch_on_eof) = 1;
 
1480
        }
 
1481
}
 
1482
 
 
1483
/* Allocates the stack if it does not exist.
 
1484
 *  Guarantees space for at least one push.
 
1485
 */
 
1486
static void yyensure_buffer_stack (void)
 
1487
{
 
1488
        int num_to_alloc;
 
1489
    
 
1490
        if (!(yy_buffer_stack)) {
 
1491
 
 
1492
                /* First allocation is just for 2 elements, since we don't know if this
 
1493
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 
1494
                 * immediate realloc on the next call.
 
1495
         */
 
1496
                num_to_alloc = 1;
 
1497
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 
1498
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
 
1499
                                                                );
 
1500
                if ( ! (yy_buffer_stack) )
 
1501
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
1502
                                                                  
 
1503
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 
1504
                                
 
1505
                (yy_buffer_stack_max) = num_to_alloc;
 
1506
                (yy_buffer_stack_top) = 0;
 
1507
                return;
 
1508
        }
 
1509
 
 
1510
        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
1511
 
 
1512
                /* Increase the buffer to prepare for a possible push. */
 
1513
                int grow_size = 8 /* arbitrary grow size */;
 
1514
 
 
1515
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
 
1516
                (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
 
1517
                                                                ((yy_buffer_stack),
 
1518
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
 
1519
                                                                );
 
1520
                if ( ! (yy_buffer_stack) )
 
1521
                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
1522
 
 
1523
                /* zero only the new slots.*/
 
1524
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
 
1525
                (yy_buffer_stack_max) = num_to_alloc;
 
1526
        }
 
1527
}
 
1528
 
 
1529
/** Setup the input buffer state to scan directly from a user-specified character buffer.
 
1530
 * @param base the character buffer
 
1531
 * @param size the size in bytes of the character buffer
 
1532
 * 
 
1533
 * @return the newly allocated buffer state object. 
 
1534
 */
 
1535
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 
1536
{
 
1537
        YY_BUFFER_STATE b;
 
1538
    
 
1539
        if ( size < 2 ||
 
1540
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
 
1541
             base[size-1] != YY_END_OF_BUFFER_CHAR )
 
1542
                /* They forgot to leave room for the EOB's. */
 
1543
                return 0;
 
1544
 
 
1545
        b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
 
1546
        if ( ! b )
 
1547
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
1548
 
 
1549
        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
 
1550
        b->yy_buf_pos = b->yy_ch_buf = base;
 
1551
        b->yy_is_our_buffer = 0;
 
1552
        b->yy_input_file = 0;
 
1553
        b->yy_n_chars = b->yy_buf_size;
 
1554
        b->yy_is_interactive = 0;
 
1555
        b->yy_at_bol = 1;
 
1556
        b->yy_fill_buffer = 0;
 
1557
        b->yy_buffer_status = YY_BUFFER_NEW;
 
1558
 
 
1559
        yy_switch_to_buffer(b  );
 
1560
 
 
1561
        return b;
 
1562
}
 
1563
 
 
1564
/** Setup the input buffer state to scan a string. The next call to yylex() will
 
1565
 * scan from a @e copy of @a str.
 
1566
 * @param yystr a NUL-terminated string to scan
 
1567
 * 
 
1568
 * @return the newly allocated buffer state object.
 
1569
 * @note If you want to scan bytes that may contain NUL values, then use
 
1570
 *       yy_scan_bytes() instead.
 
1571
 */
 
1572
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
 
1573
{
 
1574
    
 
1575
        return yy_scan_bytes(yystr,strlen(yystr) );
 
1576
}
 
1577
 
 
1578
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
 
1579
 * scan from a @e copy of @a bytes.
 
1580
 * @param bytes the byte buffer to scan
 
1581
 * @param len the number of bytes in the buffer pointed to by @a bytes.
 
1582
 * 
 
1583
 * @return the newly allocated buffer state object.
 
1584
 */
 
1585
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 
1586
{
 
1587
        YY_BUFFER_STATE b;
 
1588
        char *buf;
 
1589
        yy_size_t n;
 
1590
        int i;
 
1591
    
 
1592
        /* Get memory for full buffer, including space for trailing EOB's. */
 
1593
        n = _yybytes_len + 2;
 
1594
        buf = (char *) yyalloc(n  );
 
1595
        if ( ! buf )
 
1596
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
1597
 
 
1598
        for ( i = 0; i < _yybytes_len; ++i )
 
1599
                buf[i] = yybytes[i];
 
1600
 
 
1601
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
1602
 
 
1603
        b = yy_scan_buffer(buf,n );
 
1604
        if ( ! b )
 
1605
                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
1606
 
 
1607
        /* It's okay to grow etc. this buffer, and we should throw it
 
1608
         * away when we're done.
 
1609
         */
 
1610
        b->yy_is_our_buffer = 1;
 
1611
 
 
1612
        return b;
 
1613
}
 
1614
 
 
1615
#ifndef YY_EXIT_FAILURE
 
1616
#define YY_EXIT_FAILURE 2
 
1617
#endif
 
1618
 
 
1619
static void yy_fatal_error (yyconst char* msg )
 
1620
{
 
1621
        (void) fprintf( stderr, "%s\n", msg );
 
1622
        exit( YY_EXIT_FAILURE );
 
1623
}
 
1624
 
 
1625
/* Redefine yyless() so it works in section 3 code. */
 
1626
 
 
1627
#undef yyless
 
1628
#define yyless(n) \
 
1629
        do \
 
1630
                { \
 
1631
                /* Undo effects of setting up yytext. */ \
 
1632
        int yyless_macro_arg = (n); \
 
1633
        YY_LESS_LINENO(yyless_macro_arg);\
 
1634
                yytext[yyleng] = (yy_hold_char); \
 
1635
                (yy_c_buf_p) = yytext + yyless_macro_arg; \
 
1636
                (yy_hold_char) = *(yy_c_buf_p); \
 
1637
                *(yy_c_buf_p) = '\0'; \
 
1638
                yyleng = yyless_macro_arg; \
 
1639
                } \
 
1640
        while ( 0 )
 
1641
 
 
1642
/* Accessor  methods (get/set functions) to struct members. */
 
1643
 
 
1644
/** Get the current line number.
 
1645
 * 
 
1646
 */
 
1647
int yyget_lineno  (void)
 
1648
{
 
1649
        
 
1650
    return yylineno;
 
1651
}
 
1652
 
 
1653
/** Get the input stream.
 
1654
 * 
 
1655
 */
 
1656
FILE *yyget_in  (void)
 
1657
{
 
1658
        return yyin;
 
1659
}
 
1660
 
 
1661
/** Get the output stream.
 
1662
 * 
 
1663
 */
 
1664
FILE *yyget_out  (void)
 
1665
{
 
1666
        return yyout;
 
1667
}
 
1668
 
 
1669
/** Get the length of the current token.
 
1670
 * 
 
1671
 */
 
1672
int yyget_leng  (void)
 
1673
{
 
1674
        return yyleng;
 
1675
}
 
1676
 
 
1677
/** Get the current token.
 
1678
 * 
 
1679
 */
 
1680
 
 
1681
char *yyget_text  (void)
 
1682
{
 
1683
        return yytext;
 
1684
}
 
1685
 
 
1686
/** Set the current line number.
 
1687
 * @param line_number
 
1688
 * 
 
1689
 */
 
1690
void yyset_lineno (int  line_number )
 
1691
{
 
1692
    
 
1693
    yylineno = line_number;
 
1694
}
 
1695
 
 
1696
/** Set the input stream. This does not discard the current
 
1697
 * input buffer.
 
1698
 * @param in_str A readable stream.
 
1699
 * 
 
1700
 * @see yy_switch_to_buffer
 
1701
 */
 
1702
void yyset_in (FILE *  in_str )
 
1703
{
 
1704
        yyin = in_str ;
 
1705
}
 
1706
 
 
1707
void yyset_out (FILE *  out_str )
 
1708
{
 
1709
        yyout = out_str ;
 
1710
}
 
1711
 
 
1712
int yyget_debug  (void)
 
1713
{
 
1714
        return yy_flex_debug;
 
1715
}
 
1716
 
 
1717
void yyset_debug (int  bdebug )
 
1718
{
 
1719
        yy_flex_debug = bdebug ;
 
1720
}
 
1721
 
 
1722
static int yy_init_globals (void)
 
1723
{
 
1724
        /* Initialization is the same as for the non-reentrant scanner.
 
1725
     * This function is called from yylex_destroy(), so don't allocate here.
 
1726
     */
 
1727
 
 
1728
    (yy_buffer_stack) = 0;
 
1729
    (yy_buffer_stack_top) = 0;
 
1730
    (yy_buffer_stack_max) = 0;
 
1731
    (yy_c_buf_p) = (char *) 0;
 
1732
    (yy_init) = 0;
 
1733
    (yy_start) = 0;
 
1734
 
 
1735
/* Defined in main.c */
 
1736
#ifdef YY_STDINIT
 
1737
    yyin = stdin;
 
1738
    yyout = stdout;
 
1739
#else
 
1740
    yyin = (FILE *) 0;
 
1741
    yyout = (FILE *) 0;
 
1742
#endif
 
1743
 
 
1744
    /* For future reference: Set errno on error, since we are called by
 
1745
     * yylex_init()
 
1746
     */
 
1747
    return 0;
 
1748
}
 
1749
 
 
1750
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
 
1751
int yylex_destroy  (void)
 
1752
{
 
1753
    
 
1754
    /* Pop the buffer stack, destroying each element. */
 
1755
        while(YY_CURRENT_BUFFER){
 
1756
                yy_delete_buffer(YY_CURRENT_BUFFER  );
 
1757
                YY_CURRENT_BUFFER_LVALUE = NULL;
 
1758
                yypop_buffer_state();
 
1759
        }
 
1760
 
 
1761
        /* Destroy the stack itself. */
 
1762
        yyfree((yy_buffer_stack) );
 
1763
        (yy_buffer_stack) = NULL;
 
1764
 
 
1765
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 
1766
     * yylex() is called, initialization will occur. */
 
1767
    yy_init_globals( );
 
1768
 
 
1769
    return 0;
 
1770
}
 
1771
 
 
1772
/*
 
1773
 * Internal utility routines.
 
1774
 */
 
1775
 
 
1776
#ifndef yytext_ptr
 
1777
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 
1778
{
 
1779
        register int i;
 
1780
        for ( i = 0; i < n; ++i )
 
1781
                s1[i] = s2[i];
 
1782
}
 
1783
#endif
 
1784
 
 
1785
#ifdef YY_NEED_STRLEN
 
1786
static int yy_flex_strlen (yyconst char * s )
 
1787
{
 
1788
        register int n;
 
1789
        for ( n = 0; s[n]; ++n )
 
1790
                ;
 
1791
 
 
1792
        return n;
 
1793
}
 
1794
#endif
 
1795
 
 
1796
void *yyalloc (yy_size_t  size )
 
1797
{
 
1798
        return (void *) malloc( size );
 
1799
}
 
1800
 
 
1801
void *yyrealloc  (void * ptr, yy_size_t  size )
 
1802
{
 
1803
        /* The cast to (char *) in the following accommodates both
 
1804
         * implementations that use char* generic pointers, and those
 
1805
         * that use void* generic pointers.  It works with the latter
 
1806
         * because both ANSI C and C++ allow castless assignment from
 
1807
         * any pointer type to void*, and deal with argument conversions
 
1808
         * as though doing an assignment.
 
1809
         */
 
1810
        return (void *) realloc( (char *) ptr, size );
 
1811
}
 
1812
 
 
1813
void yyfree (void * ptr )
 
1814
{
 
1815
        free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
 
1816
}
 
1817
 
 
1818
#define YYTABLES_NAME "yytables"
 
1819
 
 
1820
#line 109 "lexer.l"
 
1821
 
 
1822
 
 
1823
 
 
1824
int yywrap(void) 
 
1825
{
 
1826
        return 1;
 
1827
}
 
1828