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