Bug Summary

File:workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx
Location:line 2618, column 2
Description:Access to field 'yy_input_file' results in a dereference of a null pointer (loaded from variable 'b')

Annotated Source Code

1#line 2 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
2
3#line 4 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
4
5#define YY_INT_ALIGNEDshort int short int
6
7/* A lexical scanner generated by flex */
8
9#define FLEX_SCANNER
10#define YY_FLEX_MAJOR_VERSION2 2
11#define YY_FLEX_MINOR_VERSION5 5
12#define YY_FLEX_SUBMINOR_VERSION35 35
13#if YY_FLEX_SUBMINOR_VERSION35 > 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(*__errno_location ()).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 defined (__STDC_VERSION__) && __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>
44typedef int8_t flex_int8_t;
45typedef uint8_t flex_uint8_t;
46typedef int16_t flex_int16_t;
47typedef uint16_t flex_uint16_t;
48typedef int32_t flex_int32_t;
49typedef uint32_t flex_uint32_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t;
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57#endif /* ! C99 */
58
59/* Limits of integral types. */
60#ifndef INT8_MIN(-128)
61#define INT8_MIN(-128) (-128)
62#endif
63#ifndef INT16_MIN(-32767 -1)
64#define INT16_MIN(-32767 -1) (-32767-1)
65#endif
66#ifndef INT32_MIN(-2147483647 -1)
67#define INT32_MIN(-2147483647 -1) (-2147483647-1)
68#endif
69#ifndef INT8_MAX(127)
70#define INT8_MAX(127) (127)
71#endif
72#ifndef INT16_MAX(32767)
73#define INT16_MAX(32767) (32767)
74#endif
75#ifndef INT32_MAX(2147483647)
76#define INT32_MAX(2147483647) (2147483647)
77#endif
78#ifndef UINT8_MAX(255U)
79#define UINT8_MAX(255U) (255U)
80#endif
81#ifndef UINT16_MAX(65535U)
82#define UINT16_MAX(65535U) (65535U)
83#endif
84#ifndef UINT32_MAX(4294967295U)
85#define UINT32_MAX(4294967295U) (4294967295U)
86#endif
87
88#endif /* ! FLEXINT_H */
89
90#ifdef __cplusplus199711L
91
92/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else /* ! __cplusplus */
96
97/* C99 requires __STDC__ to be defined as 1. */
98#if defined (__STDC__1)
99
100#define YY_USE_CONST
101
102#endif /* defined (__STDC__) */
103#endif /* ! __cplusplus */
104
105#ifdef YY_USE_CONST
106#define yyconstconst const
107#else
108#define yyconstconst
109#endif
110
111/* Returned upon end-of-file. */
112#define YY_NULL0 0
113
114/* Promotes a possibly negative, possibly signed char to an unsigned
115 * integer for use as an array index. If the signed char is negative,
116 * we want to instead treat it as an 8-bit unsigned char, hence the
117 * double cast.
118 */
119#define YY_SC_TO_UI(c)((unsigned int) (unsigned char) c) ((unsigned int) (unsigned char) c)
120
121/* Enter a start condition. This macro really ought to take a parameter,
122 * but we do it the disgusting crufty way forced on us by the ()-less
123 * definition of BEGIN.
124 */
125#define BEGIN(yy_start) = 1 + 2 * (yy_start) = 1 + 2 *
126
127/* Translate the current start state into a value that can be later handed
128 * to BEGIN to return to the state. The YYSTATE alias is for lex
129 * compatibility.
130 */
131#define YY_START(((yy_start) - 1) / 2) (((yy_start) - 1) / 2)
132#define YYSTATE(((yy_start) - 1) / 2) YY_START(((yy_start) - 1) / 2)
133
134/* Action number for EOF rule of a given start state. */
135#define YY_STATE_EOF(state)(90 + state + 1) (YY_END_OF_BUFFER90 + state + 1)
136
137/* Special action meaning "start processing a new file". */
138#define YY_NEW_FILEyyrestart(yyin ) yyrestart(yyin )
139
140#define YY_END_OF_BUFFER_CHAR0 0
141
142/* Size of default input buffer. */
143#ifndef YY_BUF_SIZE16384
144#define YY_BUF_SIZE16384 16384
145#endif
146
147/* The state buf must be large enough to hold one state per character in the main buffer.
148 */
149#define YY_STATE_BUF_SIZE((16384 + 2) * sizeof(yy_state_type)) ((YY_BUF_SIZE16384 + 2) * sizeof(yy_state_type))
150
151#ifndef YY_TYPEDEF_YY_BUFFER_STATE
152#define YY_TYPEDEF_YY_BUFFER_STATE
153typedef struct yy_buffer_state *YY_BUFFER_STATE;
154#endif
155
156extern int yyleng;
157
158extern FILE *yyin, *yyout;
159
160#define EOB_ACT_CONTINUE_SCAN0 0
161#define EOB_ACT_END_OF_FILE1 1
162#define EOB_ACT_LAST_MATCH2 2
163
164 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
165 * access to the local variable yy_act. Since yyless() is a macro, it would break
166 * existing scanners that call yyless() from OUTSIDE yylex.
167 * One obvious solution it to make yy_act a global. I tried that, and saw
168 * a 5% performance hit in a non-yylineno scanner, because yy_act is
169 * normally declared as a register variable-- so it is not worth it.
170 */
171 #define YY_LESS_LINENO(n)do { int yyl; for ( yyl = n; yyl < yyleng; ++yyl ) if ( yytext
[yyl] == '\n' ) --yylineno; }while(0)
\
172 do { \
173 int yyl;\
174 for ( yyl = n; yyl < yyleng; ++yyl )\
175 if ( yytext[yyl] == '\n' )\
176 --yylineno;\
177 }while(0)
178
179/* Return all but the first "n" matched characters back to the input stream. */
180#define yyless(n)do { int yyless_macro_arg = (n); do { int yyl; for ( yyl = yyless_macro_arg
; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) --yylineno
; }while(0); yytext[yyleng] = (yy_hold_char); (yy_c_buf_p) = yytext
+ yyless_macro_arg; (yy_hold_char) = *(yy_c_buf_p); *(yy_c_buf_p
) = '\0'; yyleng = yyless_macro_arg; } while ( 0 )
\
181 do \
182 { \
183 /* Undo effects of setting up yytext. */ \
184 int yyless_macro_arg = (n); \
185 YY_LESS_LINENO(yyless_macro_arg)do { int yyl; for ( yyl = yyless_macro_arg; yyl < yyleng; ++
yyl ) if ( yytext[yyl] == '\n' ) --yylineno; }while(0)
;\
186 *yy_cp = (yy_hold_char); \
187 YY_RESTORE_YY_MORE_OFFSET \
188 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ0; \
189 YY_DO_BEFORE_ACTION(yytext) = yy_bp; yyleng = (size_t) (yy_cp - yy_bp); (yy_hold_char
) = *yy_cp; *yy_cp = '\0'; (yy_c_buf_p) = yy_cp;
; /* set up yytext again */ \
190 } \
191 while ( 0 )
192
193#define unput(c)yyunput( c, (yytext) ) yyunput( c, (yytext_ptryytext) )
194
195#ifndef YY_TYPEDEF_YY_SIZE_T
196#define YY_TYPEDEF_YY_SIZE_T
197typedef size_t yy_size_t;
198#endif
199
200#ifndef YY_STRUCT_YY_BUFFER_STATE
201#define YY_STRUCT_YY_BUFFER_STATE
202struct yy_buffer_state
203 {
204 FILE *yy_input_file;
205
206 char *yy_ch_buf; /* input buffer */
207 char *yy_buf_pos; /* current position in input buffer */
208
209 /* Size of input buffer in bytes, not including room for EOB
210 * characters.
211 */
212 yy_size_t yy_buf_size;
213
214 /* Number of characters read into yy_ch_buf, not including EOB
215 * characters.
216 */
217 int yy_n_chars;
218
219 /* Whether we "own" the buffer - i.e., we know we created it,
220 * and can realloc() it to grow it, and should free() it to
221 * delete it.
222 */
223 int yy_is_our_buffer;
224
225 /* Whether this is an "interactive" input source; if so, and
226 * if we're using stdio for input, then we want to use getc()
227 * instead of fread(), to make sure we stop fetching input after
228 * each newline.
229 */
230 int yy_is_interactive;
231
232 /* Whether we're considered to be at the beginning of a line.
233 * If so, '^' rules will be active on the next match, otherwise
234 * not.
235 */
236 int yy_at_bol;
237
238 int yy_bs_lineno; /**< The line count. */
239 int yy_bs_column; /**< The column count. */
240
241 /* Whether to try to fill the input buffer when we reach the
242 * end of it.
243 */
244 int yy_fill_buffer;
245
246 int yy_buffer_status;
247
248#define YY_BUFFER_NEW0 0
249#define YY_BUFFER_NORMAL1 1
250 /* When an EOF's been seen but there's still some text to process
251 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
252 * shouldn't try reading from the input source any more. We might
253 * still have a bunch of tokens to match, though, because of
254 * possible backing-up.
255 *
256 * When we actually see the EOF, we change the status to "new"
257 * (via yyrestart()), so that the user can continue scanning by
258 * just pointing yyin at a new input file.
259 */
260#define YY_BUFFER_EOF_PENDING2 2
261
262 };
263#endif /* !YY_STRUCT_YY_BUFFER_STATE */
264
265/* Stack of input buffers. */
266static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
267static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
268static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
269
270/* We provide macros for accessing buffer states in case in the
271 * future we want to put the buffer states in a more general
272 * "scanner state".
273 *
274 * Returns the top of the stack, or NULL.
275 */
276#define YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
( (yy_buffer_stack) \
277 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
278 : NULL__null)
279
280/* Same as previous macro, but useful when we know that the buffer stack is not
281 * NULL or when we need an lvalue. For internal use only.
282 */
283#define YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] (yy_buffer_stack)[(yy_buffer_stack_top)]
284
285/* yy_hold_char holds the character lost when yytext is formed. */
286static char yy_hold_char;
287static int yy_n_chars; /* number of characters read into yy_ch_buf */
288int yyleng;
289
290/* Points to current character in buffer. */
291static char *yy_c_buf_p = (char *) 0;
292static int yy_init = 0; /* whether we need to initialize */
293static int yy_start = 0; /* start state number */
294
295/* Flag which is used to allow yywrap()'s to do buffer switches
296 * instead of setting up a fresh yyin. A bit of a hack ...
297 */
298static int yy_did_buffer_switch_on_eof;
299
300void yyrestart (FILE *input_file );
301void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
302YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
303void yy_delete_buffer (YY_BUFFER_STATE b );
304void yy_flush_buffer (YY_BUFFER_STATE b );
305void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
306void yypop_buffer_state (void );
307
308static void yyensure_buffer_stack (void );
309static void yy_load_buffer_state (void );
310static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
311
312#define YY_FLUSH_BUFFERyy_flush_buffer(( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : __null) )
yy_flush_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
313
314YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
315YY_BUFFER_STATE yy_scan_string (yyconstconst char *yy_str );
316YY_BUFFER_STATE yy_scan_bytes (yyconstconst char *bytes,int len );
317
318void *yyalloc (yy_size_t );
319void *yyrealloc (void *,yy_size_t );
320void yyfree (void * );
321
322#define yy_new_bufferyy_create_buffer yy_create_buffer
323
324#define yy_set_interactive(is_interactive){ if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : __null) ){ yyensure_buffer_stack (); (yy_buffer_stack)[(
yy_buffer_stack_top)] = yy_create_buffer(yyin,16384 ); } (yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_is_interactive = is_interactive
; }
\
325 { \
326 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
){ \
327 yyensure_buffer_stack (); \
328 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = \
329 yy_create_buffer(yyin,YY_BUF_SIZE16384 ); \
330 } \
331 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive = is_interactive; \
332 }
333
334#define yy_set_bol(at_bol){ if ( ! ( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top
)] : __null) ){ yyensure_buffer_stack (); (yy_buffer_stack)[(
yy_buffer_stack_top)] = yy_create_buffer(yyin,16384 ); } (yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_at_bol = at_bol; }
\
335 { \
336 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
){\
337 yyensure_buffer_stack (); \
338 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = \
339 yy_create_buffer(yyin,YY_BUF_SIZE16384 ); \
340 } \
341 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol = at_bol; \
342 }
343
344#define YY_AT_BOL()((yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol) (YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol)
345
346/* Begin user sect3 */
347
348#define yywrap(n)1 1
349#define YY_SKIP_YYWRAP
350
351typedef unsigned char YY_CHAR;
352
353FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
354
355typedef int yy_state_type;
356
357extern int yylineno;
358
359int yylineno = 1;
360
361extern char *yytext;
362#define yytext_ptryytext yytext
363
364static yy_state_type yy_get_previous_state (void );
365static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
366static int yy_get_next_buffer (void );
367static void yy_fatal_error (yyconstconst char msg[] );
368
369/* Done after the current pattern has been matched and before the
370 * corresponding action - sets up yytext.
371 */
372#define YY_DO_BEFORE_ACTION(yytext) = yy_bp; yyleng = (size_t) (yy_cp - yy_bp); (yy_hold_char
) = *yy_cp; *yy_cp = '\0'; (yy_c_buf_p) = yy_cp;
\
373 (yytext_ptryytext) = yy_bp; \
374 yyleng = (size_t) (yy_cp - yy_bp); \
375 (yy_hold_char) = *yy_cp; \
376 *yy_cp = '\0'; \
377 (yy_c_buf_p) = yy_cp;
378
379#define YY_NUM_RULES89 89
380#define YY_END_OF_BUFFER90 90
381/* This struct is not used in this scanner,
382 but its presence is necessary. */
383struct yy_trans_info
384 {
385 flex_int32_t yy_verify;
386 flex_int32_t yy_nxt;
387 };
388static yyconstconst flex_int16_t yy_accept[416] =
389 { 0,
390 63, 63, 0, 0, 0, 0, 90, 82, 1, 2,
391 82, 82, 82, 58, 57, 82, 82, 82, 63, 63,
392 63, 82, 63, 63, 63, 63, 63, 63, 63, 63,
393 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
394 63, 82, 74, 76, 77, 69, 89, 1, 0, 58,
395 57, 0, 61, 67, 0, 0, 58, 58, 63, 63,
396 63, 58, 59, 0, 57, 57, 57, 66, 64, 65,
397 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
398 63, 63, 63, 63, 63, 63, 63, 63, 49, 63,
399 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
400
401 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
402 0, 86, 0, 0, 0, 0, 0, 74, 0, 75,
403 77, 79, 69, 70, 71, 72, 58, 58, 0, 0,
404 58, 59, 57, 57, 57, 56, 0, 61, 73, 0,
405 0, 62, 0, 60, 59, 59, 59, 63, 63, 63,
406 63, 32, 63, 63, 63, 63, 63, 63, 63, 63,
407 63, 63, 63, 63, 53, 63, 63, 63, 63, 63,
408 63, 63, 63, 63, 63, 50, 63, 63, 63, 63,
409 63, 63, 63, 54, 63, 63, 63, 63, 63, 63,
410 63, 63, 63, 0, 0, 0, 0, 0, 78, 0,
411
412 60, 59, 59, 59, 0, 61, 68, 0, 80, 0,
413 81, 0, 62, 60, 63, 63, 45, 46, 63, 63,
414 63, 34, 5, 35, 63, 63, 63, 10, 63, 63,
415 63, 63, 63, 39, 63, 63, 63, 63, 63, 63,
416 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
417 63, 63, 63, 42, 63, 63, 44, 0, 0, 0,
418 0, 0, 60, 0, 62, 47, 48, 63, 63, 4,
419 6, 63, 63, 63, 37, 38, 51, 63, 63, 63,
420 17, 63, 63, 63, 63, 63, 63, 63, 63, 63,
421 63, 40, 63, 63, 63, 63, 63, 63, 31, 63,
422
423 85, 0, 0, 0, 0, 63, 63, 63, 63, 63,
424 36, 63, 63, 63, 63, 63, 16, 63, 52, 63,
425 63, 63, 21, 63, 63, 63, 63, 63, 41, 27,
426 28, 63, 63, 63, 84, 0, 0, 0, 0, 0,
427 0, 63, 33, 63, 63, 9, 63, 63, 63, 63,
428 63, 63, 63, 63, 63, 63, 63, 63, 24, 63,
429 63, 30, 63, 0, 87, 0, 0, 0, 63, 63,
430 63, 63, 63, 63, 63, 63, 18, 19, 20, 63,
431 22, 63, 25, 63, 63, 43, 0, 0, 0, 3,
432 7, 63, 11, 12, 63, 63, 15, 55, 23, 26,
433
434 29, 83, 0, 88, 63, 63, 63, 8, 63, 63,
435 63, 14, 63, 13, 0
436 } ;
437
438static yyconstconst flex_int32_t yy_ec[256] =
439 { 0,
440 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
441 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
443 1, 5, 1, 6, 7, 1, 1, 1, 1, 1,
444 1, 8, 9, 1, 10, 11, 12, 13, 14, 14,
445 14, 14, 14, 14, 14, 15, 15, 16, 1, 17,
446 1, 18, 1, 1, 19, 20, 20, 20, 21, 22,
447 23, 23, 23, 23, 23, 24, 23, 23, 23, 23,
448 23, 25, 26, 27, 28, 23, 23, 29, 23, 23,
449 1, 1, 1, 30, 31, 1, 32, 33, 34, 35,
450
451 36, 37, 38, 39, 40, 23, 23, 41, 42, 43,
452 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
453 54, 23, 1, 1, 1, 1, 1, 1, 1, 1,
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467 1, 1, 1, 1, 1
468 } ;
469
470static yyconstconst flex_int32_t yy_meta[55] =
471 { 0,
472 1, 1, 2, 1, 1, 1, 1, 3, 1, 1,
473 4, 1, 5, 5, 5, 1, 1, 1, 5, 5,
474 5, 5, 4, 5, 4, 4, 4, 5, 4, 6,
475 4, 5, 5, 5, 5, 5, 5, 4, 4, 4,
476 5, 4, 4, 4, 4, 4, 4, 4, 4, 5,
477 4, 4, 4, 4
478 } ;
479
480static yyconstconst flex_int16_t yy_base[431] =
481 { 0,
482 0, 533, 52, 53, 526, 524, 530, 1370, 60, 1370,
483 55, 60, 51, 65, 108, 507, 505, 500, 46, 71,
484 73, 56, 81, 94, 96, 106, 100, 115, 77, 103,
485 130, 134, 136, 140, 141, 148, 151, 166, 170, 177,
486 159, 223, 0, 158, 489, 0, 73, 95, 179, 258,
487 301, 481, 208, 468, 455, 196, 226, 233, 276, 144,
488 292, 158, 341, 185, 0, 0, 188, 1370, 1370, 1370,
489 203, 201, 224, 220, 202, 247, 299, 249, 302, 307,
490 254, 309, 316, 317, 310, 348, 353, 264, 357, 369,
491 359, 372, 374, 378, 383, 384, 385, 386, 387, 397,
492
493 393, 400, 410, 412, 411, 421, 425, 428, 429, 434,
494 0, 1370, 447, 465, 415, 408, 391, 0, 479, 387,
495 381, 1370, 0, 83, 192, 1370, 80, 0, 475, 484,
496 1370, 478, 0, 0, 1370, 1370, 494, 1370, 379, 383,
497 369, 499, 321, 528, 224, 0, 433, 440, 452, 451,
498 474, 464, 513, 514, 515, 516, 518, 520, 522, 537,
499 545, 546, 550, 551, 553, 560, 561, 562, 563, 564,
500 568, 569, 574, 576, 591, 578, 592, 595, 601, 603,
501 602, 604, 608, 609, 610, 613, 616, 614, 619, 637,
502 641, 644, 647, 365, 352, 317, 302, 300, 1370, 254,
503
504 677, 652, 328, 1370, 502, 681, 1370, 328, 1370, 321,
505 1370, 697, 1370, 658, 677, 686, 689, 690, 693, 698,
506 704, 705, 712, 714, 715, 716, 717, 719, 720, 721,
507 726, 729, 730, 731, 738, 744, 745, 748, 752, 756,
508 760, 757, 770, 761, 771, 778, 779, 787, 792, 796,
509 797, 801, 793, 809, 806, 814, 815, 313, 424, 250,
510 256, 250, 1370, 840, 843, 819, 831, 836, 832, 837,
511 840, 848, 850, 859, 862, 863, 864, 865, 866, 873,
512 872, 874, 880, 881, 888, 889, 895, 896, 899, 902,
513 907, 905, 911, 917, 918, 921, 933, 935, 939, 943,
514
515 1370, 948, 210, 963, 207, 948, 958, 961, 964, 969,
516 971, 972, 974, 977, 979, 976, 980, 986, 982, 998,
517 983, 1005, 1010, 1012, 1014, 1015, 1020, 1017, 1023, 1024,
518 1026, 1027, 1028, 1031, 1370, 1057, 240, 1071, 1075, 1078,
519 175, 1063, 1064, 1067, 1068, 1071, 1076, 1090, 1086, 1092,
520 1094, 1095, 1099, 1100, 1102, 1104, 1111, 1117, 1116, 1125,
521 1128, 1126, 1130, 182, 1370, 158, 148, 279, 1139, 1133,
522 1135, 1149, 1151, 1157, 1152, 1163, 1162, 1165, 1168, 1174,
523 1175, 1179, 1180, 1189, 1190, 1191, 110, 107, 80, 1192,
524 1193, 1197, 1196, 1203, 1205, 1206, 1207, 1214, 1215, 1218,
525
526 1219, 1370, 69, 1370, 1220, 1229, 1230, 1231, 1233, 1236,
527 1237, 1241, 1242, 1243, 1370, 1290, 1296, 1299, 1304, 1310,
528 1315, 1321, 1327, 53, 1333, 1339, 1345, 1351, 1357, 1363
529 } ;
530
531static yyconstconst flex_int16_t yy_def[431] =
532 { 0,
533 415, 1, 416, 416, 417, 417, 415, 415, 415, 415,
534 415, 415, 415, 418, 418, 415, 415, 415, 418, 418,
535 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
536 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
537 418, 415, 419, 415, 420, 421, 422, 415, 415, 415,
538 415, 415, 415, 415, 423, 415, 15, 15, 15, 418,
539 418, 418, 15, 418, 15, 15, 418, 415, 415, 415,
540 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
541 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
542 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
543
544 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
545 42, 415, 42, 415, 415, 415, 415, 419, 415, 415,
546 420, 415, 421, 422, 415, 415, 50, 127, 415, 415,
547 415, 424, 51, 51, 415, 415, 415, 415, 415, 425,
548 426, 415, 415, 418, 63, 63, 418, 418, 418, 418,
549 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
550 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
551 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
552 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
553 418, 418, 418, 427, 415, 415, 415, 415, 415, 415,
554
555 415, 424, 202, 415, 415, 415, 415, 425, 415, 426,
556 415, 415, 415, 418, 418, 418, 418, 418, 418, 418,
557 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
558 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
559 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
560 418, 418, 418, 418, 418, 418, 418, 427, 415, 415,
561 415, 415, 415, 415, 415, 418, 418, 418, 418, 418,
562 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
563 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
564 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
565
566 415, 415, 415, 415, 415, 418, 418, 418, 418, 418,
567 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
568 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
569 418, 418, 418, 418, 415, 415, 428, 415, 415, 415,
570 415, 418, 418, 418, 418, 418, 418, 418, 418, 418,
571 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
572 418, 418, 418, 428, 415, 429, 415, 415, 418, 418,
573 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
574 418, 418, 418, 418, 418, 418, 429, 415, 430, 418,
575 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
576
577 418, 415, 430, 415, 418, 418, 418, 418, 418, 418,
578 418, 418, 418, 418, 0, 415, 415, 415, 415, 415,
579 415, 415, 415, 415, 415, 415, 415, 415, 415, 415
580 } ;
581
582static yyconstconst flex_int16_t yy_nxt[1425] =
583 { 0,
584 8, 9, 10, 9, 9, 8, 8, 8, 8, 11,
585 12, 13, 14, 15, 15, 16, 17, 18, 19, 19,
586 19, 20, 19, 19, 19, 19, 21, 19, 19, 8,
587 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
588 32, 33, 34, 35, 36, 19, 37, 38, 39, 40,
589 41, 19, 19, 19, 44, 44, 415, 203, 54, 45,
590 45, 48, 55, 48, 48, 49, 415, 50, 51, 51,
591 52, 404, 53, 53, 53, 56, 64, 57, 58, 59,
592 125, 415, 404, 415, 126, 61, 415, 415, 62, 71,
593 415, 415, 62, 63, 415, 64, 48, 73, 48, 48,
594
595 61, 64, 72, 64, 415, 62, 415, 64, 415, 402,
596 415, 64, 87, 415, 62, 388, 415, 63, 56, 74,
597 65, 66, 66, 75, 64, 415, 64, 79, 61, 76,
598 64, 67, 415, 64, 80, 67, 64, 77, 64, 81,
599 415, 82, 84, 61, 415, 64, 415, 78, 67, 83,
600 415, 415, 85, 366, 415, 86, 88, 67, 415, 119,
601 64, 415, 119, 388, 64, 120, 64, 91, 415, 415,
602 64, 64, 89, 94, 64, 93, 415, 90, 64, 92,
603 415, 64, 100, 95, 365, 96, 101, 415, 64, 64,
604 97, 53, 53, 53, 98, 415, 64, 99, 415, 200,
605
606 64, 102, 110, 126, 103, 104, 368, 64, 142, 142,
607 142, 415, 415, 415, 105, 415, 107, 106, 64, 109,
608 53, 53, 53, 108, 111, 112, 148, 113, 137, 138,
609 415, 64, 64, 64, 415, 114, 114, 114, 57, 58,
610 59, 149, 365, 137, 138, 57, 58, 59, 341, 62,
611 64, 150, 63, 62, 64, 152, 62, 415, 337, 415,
612 62, 200, 115, 116, 415, 126, 62, 117, 56, 151,
613 127, 128, 129, 62, 415, 62, 63, 64, 130, 64,
614 389, 131, 62, 389, 64, 131, 132, 305, 59, 59,
615 59, 304, 303, 130, 64, 153, 159, 156, 131, 60,
616
617 143, 143, 415, 60, 144, 144, 144, 131, 166, 415,
618 132, 56, 415, 133, 134, 134, 60, 415, 259, 415,
619 415, 130, 64, 211, 135, 60, 415, 415, 135, 64,
620 209, 262, 64, 201, 201, 201, 130, 64, 158, 64,
621 64, 135, 154, 163, 261, 160, 64, 64, 155, 157,
622 135, 415, 260, 145, 146, 146, 415, 194, 415, 146,
623 146, 146, 146, 415, 147, 161, 162, 415, 147, 415,
624 259, 211, 146, 146, 146, 146, 146, 146, 64, 415,
625 415, 147, 415, 64, 415, 209, 207, 64, 415, 64,
626 147, 164, 415, 415, 415, 415, 415, 415, 199, 64,
627
628 167, 165, 64, 415, 64, 168, 171, 415, 64, 172,
629 415, 169, 170, 64, 64, 64, 64, 64, 174, 178,
630 415, 415, 415, 64, 180, 173, 301, 64, 302, 177,
631 64, 415, 175, 176, 181, 415, 179, 198, 415, 415,
632 64, 64, 64, 415, 415, 182, 183, 197, 184, 196,
633 415, 64, 194, 185, 186, 64, 189, 187, 64, 64,
634 188, 415, 415, 64, 64, 215, 141, 112, 191, 195,
635 64, 217, 190, 193, 415, 139, 192, 114, 114, 114,
636 119, 64, 64, 119, 415, 56, 120, 129, 129, 129,
637 202, 136, 143, 143, 64, 130, 201, 201, 201, 216,
638
639 122, 204, 205, 205, 64, 204, 206, 206, 206, 218,
640 130, 142, 142, 142, 206, 206, 206, 70, 204, 212,
641 213, 69, 68, 415, 415, 415, 415, 204, 415, 415,
642 415, 47, 415, 47, 212, 213, 143, 143, 415, 42,
643 144, 144, 144, 64, 64, 64, 64, 415, 64, 214,
644 64, 222, 64, 223, 220, 415, 415, 221, 64, 219,
645 415, 415, 415, 415, 214, 415, 224, 64, 226, 225,
646 415, 415, 415, 415, 415, 64, 64, 227, 415, 415,
647 64, 64, 230, 64, 415, 229, 415, 228, 415, 415,
648 64, 64, 64, 64, 64, 231, 235, 233, 64, 64,
649
650 234, 415, 415, 237, 64, 415, 64, 415, 64, 238,
651 232, 415, 415, 415, 415, 415, 415, 236, 415, 415,
652 415, 64, 64, 415, 415, 64, 415, 239, 415, 415,
653 240, 64, 64, 64, 64, 242, 241, 244, 64, 64,
654 64, 415, 415, 64, 64, 245, 64, 415, 243, 64,
655 249, 415, 415, 246, 415, 250, 248, 415, 247, 415,
656 415, 253, 252, 415, 202, 251, 415, 64, 415, 415,
657 415, 64, 254, 415, 64, 204, 415, 64, 415, 204,
658 132, 257, 415, 256, 255, 143, 143, 415, 64, 201,
659 201, 201, 204, 206, 206, 206, 415, 266, 263, 415,
660
661 415, 204, 138, 415, 132, 264, 264, 64, 415, 265,
662 265, 265, 415, 263, 415, 415, 64, 138, 415, 64,
663 64, 267, 415, 64, 415, 415, 415, 415, 64, 415,
664 415, 415, 268, 269, 64, 64, 415, 415, 270, 415,
665 415, 415, 64, 415, 64, 64, 64, 64, 415, 64,
666 64, 64, 415, 415, 415, 415, 64, 273, 415, 64,
667 64, 64, 415, 271, 274, 272, 415, 415, 64, 275,
668 415, 415, 276, 279, 64, 64, 278, 277, 64, 415,
669 415, 415, 64, 283, 280, 415, 64, 64, 415, 415,
670 64, 64, 281, 415, 282, 285, 286, 415, 415, 284,
671
672 64, 64, 415, 415, 288, 287, 415, 415, 64, 64,
673 415, 415, 415, 290, 415, 415, 415, 64, 291, 415,
674 415, 289, 64, 64, 415, 415, 64, 64, 415, 415,
675 295, 64, 293, 415, 296, 292, 64, 415, 294, 64,
676 297, 415, 415, 298, 64, 64, 415, 415, 299, 64,
677 415, 300, 265, 265, 265, 265, 265, 265, 415, 415,
678 415, 64, 64, 307, 213, 415, 64, 64, 306, 415,
679 64, 308, 415, 415, 415, 415, 415, 415, 64, 213,
680 64, 415, 415, 415, 415, 311, 309, 415, 310, 64,
681 415, 415, 64, 64, 64, 64, 64, 314, 415, 415,
682
683 315, 313, 64, 64, 64, 415, 415, 312, 317, 415,
684 64, 64, 415, 415, 415, 415, 316, 415, 64, 64,
685 415, 415, 415, 320, 318, 64, 64, 415, 415, 64,
686 325, 415, 64, 319, 321, 64, 322, 64, 324, 415,
687 327, 64, 323, 415, 326, 415, 328, 64, 64, 415,
688 335, 64, 415, 415, 329, 415, 415, 415, 415, 331,
689 336, 336, 336, 64, 338, 64, 330, 339, 415, 64,
690 333, 415, 332, 64, 415, 340, 340, 340, 64, 415,
691 415, 415, 415, 415, 415, 334, 415, 415, 64, 415,
692 415, 64, 415, 415, 64, 345, 415, 342, 415, 64,
693
694 343, 64, 64, 344, 64, 348, 64, 64, 415, 64,
695 64, 347, 64, 64, 350, 415, 64, 346, 349, 351,
696 415, 352, 415, 415, 415, 415, 415, 415, 64, 353,
697 415, 354, 415, 415, 415, 64, 415, 415, 415, 415,
698 64, 415, 64, 355, 64, 64, 357, 64, 358, 415,
699 64, 415, 356, 64, 64, 359, 64, 64, 64, 335,
700 415, 64, 361, 415, 362, 360, 363, 415, 415, 336,
701 336, 336, 338, 415, 415, 339, 338, 415, 415, 339,
702 366, 415, 367, 340, 340, 340, 415, 340, 340, 340,
703 340, 340, 340, 64, 64, 415, 415, 64, 64, 415,
704
705 415, 64, 415, 415, 415, 415, 64, 371, 415, 415,
706 415, 369, 415, 415, 415, 370, 64, 415, 374, 372,
707 64, 415, 64, 373, 64, 64, 415, 415, 375, 64,
708 64, 415, 64, 376, 64, 415, 415, 380, 415, 378,
709 415, 64, 377, 415, 415, 415, 64, 64, 415, 415,
710 415, 382, 383, 379, 415, 64, 64, 381, 64, 415,
711 64, 415, 415, 64, 386, 64, 415, 415, 384, 64,
712 385, 415, 415, 415, 390, 415, 415, 392, 415, 64,
713 391, 64, 64, 396, 415, 415, 394, 64, 415, 415,
714 415, 393, 64, 64, 415, 64, 395, 397, 64, 415,
715
716 415, 415, 415, 415, 64, 64, 415, 415, 398, 64,
717 64, 415, 415, 415, 399, 415, 415, 415, 415, 64,
718 64, 64, 64, 64, 415, 415, 64, 64, 415, 415,
719 415, 400, 405, 64, 415, 64, 64, 64, 401, 415,
720 415, 415, 406, 415, 64, 64, 415, 415, 64, 64,
721 64, 415, 415, 415, 408, 407, 415, 415, 415, 64,
722 64, 64, 415, 64, 415, 415, 64, 64, 415, 415,
723 410, 64, 64, 64, 415, 415, 411, 415, 409, 415,
724 415, 415, 415, 415, 412, 415, 413, 415, 415, 414,
725 43, 43, 43, 43, 43, 43, 46, 46, 46, 46,
726
727 46, 46, 60, 60, 118, 415, 415, 118, 118, 118,
728 121, 415, 415, 121, 121, 123, 123, 415, 123, 123,
729 123, 124, 124, 124, 124, 124, 124, 140, 140, 140,
730 140, 140, 140, 208, 208, 208, 208, 208, 208, 210,
731 210, 210, 210, 210, 210, 258, 258, 258, 258, 258,
732 258, 364, 364, 364, 364, 364, 364, 387, 387, 387,
733 387, 387, 387, 403, 403, 403, 403, 403, 403, 7,
734 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
735 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
736 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
737
738 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
739 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
740 415, 415, 415, 415
741 } ;
742
743static yyconstconst flex_int16_t yy_chk[1425] =
744 { 0,
745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
748 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
749 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
750 1, 1, 1, 1, 3, 4, 19, 424, 13, 3,
751 4, 9, 13, 9, 9, 11, 22, 11, 11, 11,
752 12, 403, 12, 12, 12, 14, 19, 14, 14, 14,
753 47, 20, 389, 21, 47, 14, 22, 29, 14, 20,
754 124, 23, 14, 14, 124, 14, 48, 21, 48, 48,
755
756 14, 20, 20, 21, 24, 14, 25, 29, 127, 388,
757 27, 23, 29, 30, 14, 387, 26, 14, 15, 21,
758 15, 15, 15, 23, 24, 28, 25, 25, 15, 23,
759 27, 15, 127, 30, 25, 15, 26, 24, 15, 25,
760 31, 26, 27, 15, 32, 28, 33, 24, 15, 26,
761 34, 35, 27, 367, 60, 28, 30, 15, 36, 44,
762 31, 37, 44, 366, 32, 44, 33, 33, 62, 41,
763 34, 35, 31, 35, 60, 34, 38, 32, 36, 33,
764 39, 37, 37, 35, 364, 35, 37, 40, 62, 41,
765 35, 49, 49, 49, 36, 64, 38, 36, 67, 125,
766
767 39, 38, 41, 125, 38, 38, 341, 40, 56, 56,
768 56, 72, 75, 71, 38, 64, 39, 38, 67, 40,
769 53, 53, 53, 39, 42, 42, 71, 42, 53, 53,
770 74, 72, 75, 71, 73, 42, 42, 42, 57, 57,
771 57, 72, 337, 53, 53, 58, 58, 58, 305, 57,
772 74, 73, 145, 57, 73, 75, 58, 76, 303, 78,
773 58, 200, 42, 42, 81, 200, 57, 42, 50, 74,
774 50, 50, 50, 58, 88, 57, 145, 76, 50, 78,
775 368, 50, 58, 368, 81, 50, 50, 262, 59, 59,
776 59, 261, 260, 50, 88, 76, 81, 78, 50, 59,
777
778 61, 61, 61, 59, 61, 61, 61, 50, 88, 77,
779 50, 51, 79, 51, 51, 51, 59, 80, 258, 82,
780 85, 51, 61, 210, 51, 59, 83, 84, 51, 77,
781 208, 198, 79, 143, 143, 143, 51, 80, 80, 82,
782 85, 51, 77, 85, 197, 82, 83, 84, 77, 79,
783 51, 63, 196, 63, 63, 63, 203, 195, 86, 63,
784 63, 63, 63, 87, 63, 83, 84, 89, 63, 91,
785 194, 141, 63, 63, 63, 63, 63, 63, 86, 90,
786 203, 63, 92, 87, 93, 140, 139, 89, 94, 91,
787 63, 86, 121, 95, 96, 97, 98, 99, 120, 90,
788
789 89, 87, 92, 101, 93, 89, 92, 100, 94, 93,
790 102, 90, 91, 95, 96, 97, 98, 99, 95, 99,
791 103, 105, 104, 101, 101, 94, 259, 100, 259, 98,
792 102, 106, 96, 97, 101, 107, 100, 117, 108, 109,
793 103, 105, 104, 147, 110, 102, 102, 116, 102, 115,
794 148, 106, 113, 103, 104, 107, 107, 105, 108, 109,
795 106, 150, 149, 147, 110, 148, 55, 114, 109, 114,
796 148, 150, 108, 110, 152, 54, 109, 114, 114, 114,
797 119, 150, 149, 119, 151, 129, 119, 129, 129, 129,
798 132, 52, 130, 130, 152, 129, 130, 130, 130, 149,
799
800 45, 132, 137, 137, 151, 132, 137, 137, 137, 151,
801 129, 142, 142, 142, 205, 205, 205, 18, 132, 142,
802 142, 17, 16, 153, 154, 155, 156, 132, 157, 7,
803 158, 6, 159, 5, 142, 142, 144, 144, 144, 2,
804 144, 144, 144, 153, 154, 155, 156, 160, 157, 144,
805 158, 156, 159, 157, 154, 161, 162, 155, 144, 153,
806 163, 164, 0, 165, 144, 0, 158, 160, 160, 159,
807 166, 167, 168, 169, 170, 161, 162, 161, 171, 172,
808 163, 164, 164, 165, 173, 163, 174, 162, 176, 0,
809 166, 167, 168, 169, 170, 166, 170, 168, 171, 172,
810
811 169, 175, 177, 172, 173, 178, 174, 0, 176, 173,
812 167, 179, 181, 180, 182, 0, 0, 171, 183, 184,
813 185, 175, 177, 186, 188, 178, 187, 174, 0, 189,
814 175, 179, 181, 180, 182, 178, 177, 180, 183, 184,
815 185, 0, 0, 186, 188, 181, 187, 190, 179, 189,
816 186, 191, 0, 182, 192, 187, 185, 193, 183, 0,
817 0, 189, 188, 0, 202, 187, 0, 190, 214, 0,
818 0, 191, 190, 0, 192, 202, 0, 193, 0, 202,
819 202, 193, 0, 192, 191, 201, 201, 215, 214, 201,
820 201, 201, 202, 206, 206, 206, 216, 215, 201, 217,
821
822 218, 202, 206, 219, 202, 212, 212, 215, 220, 212,
823 212, 212, 0, 201, 221, 222, 216, 206, 0, 217,
824 218, 216, 223, 219, 224, 225, 226, 227, 220, 228,
825 229, 230, 219, 220, 221, 222, 231, 0, 221, 232,
826 233, 234, 223, 0, 224, 225, 226, 227, 235, 228,
827 229, 230, 0, 0, 236, 237, 231, 227, 238, 232,
828 233, 234, 239, 225, 229, 226, 240, 242, 235, 230,
829 241, 244, 231, 235, 236, 237, 233, 232, 238, 0,
830 243, 245, 239, 239, 236, 0, 240, 242, 246, 247,
831 241, 244, 237, 0, 238, 241, 242, 248, 0, 240,
832
833 243, 245, 249, 253, 244, 243, 250, 251, 246, 247,
834 0, 252, 0, 246, 0, 0, 255, 248, 247, 254,
835 0, 245, 249, 253, 256, 257, 250, 251, 0, 266,
836 251, 252, 249, 0, 252, 248, 255, 0, 250, 254,
837 253, 267, 269, 254, 256, 257, 268, 270, 255, 266,
838 271, 256, 264, 264, 264, 265, 265, 265, 272, 0,
839 273, 267, 269, 269, 265, 0, 268, 270, 268, 274,
840 271, 271, 275, 276, 277, 278, 279, 0, 272, 265,
841 273, 0, 281, 280, 282, 273, 271, 0, 272, 274,
842 283, 284, 275, 276, 277, 278, 279, 279, 285, 286,
843
844 279, 278, 281, 280, 282, 287, 288, 274, 280, 289,
845 283, 284, 290, 0, 0, 292, 279, 291, 285, 286,
846 0, 293, 0, 284, 282, 287, 288, 294, 295, 289,
847 289, 296, 290, 283, 285, 292, 286, 291, 288, 0,
848 291, 293, 287, 297, 290, 298, 293, 294, 295, 299,
849 302, 296, 0, 300, 294, 0, 0, 0, 306, 296,
850 302, 302, 302, 297, 304, 298, 295, 304, 307, 299,
851 298, 308, 297, 300, 309, 304, 304, 304, 306, 310,
852 0, 311, 312, 0, 313, 300, 316, 314, 307, 315,
853 317, 308, 319, 321, 309, 309, 318, 306, 0, 310,
854
855 307, 311, 312, 308, 313, 313, 316, 314, 320, 315,
856 317, 312, 319, 321, 315, 322, 318, 310, 314, 316,
857 323, 318, 324, 0, 325, 326, 0, 328, 320, 320,
858 327, 321, 0, 329, 330, 322, 331, 332, 333, 0,
859 323, 334, 324, 322, 325, 326, 325, 328, 326, 0,
860 327, 0, 324, 329, 330, 327, 331, 332, 333, 336,
861 0, 334, 332, 0, 333, 328, 334, 0, 0, 336,
862 336, 336, 338, 342, 343, 338, 339, 344, 345, 339,
863 339, 346, 340, 338, 338, 338, 347, 339, 339, 339,
864 340, 340, 340, 342, 343, 0, 349, 344, 345, 0,
865
866 348, 346, 350, 0, 351, 352, 347, 345, 0, 353,
867 354, 342, 355, 0, 356, 344, 349, 0, 349, 347,
868 348, 357, 350, 348, 351, 352, 359, 358, 350, 353,
869 354, 0, 355, 351, 356, 360, 362, 355, 361, 353,
870 363, 357, 352, 370, 0, 371, 359, 358, 0, 369,
871 0, 357, 358, 354, 0, 360, 362, 356, 361, 372,
872 363, 373, 375, 370, 363, 371, 0, 374, 360, 369,
873 361, 0, 377, 376, 369, 378, 0, 371, 379, 372,
874 370, 373, 375, 375, 380, 381, 373, 374, 0, 382,
875 383, 372, 377, 376, 0, 378, 374, 376, 379, 384,
876
877 385, 386, 390, 391, 380, 381, 393, 392, 380, 382,
878 383, 0, 0, 394, 382, 395, 396, 397, 0, 384,
879 385, 386, 390, 391, 398, 399, 393, 392, 400, 401,
880 405, 384, 392, 394, 0, 395, 396, 397, 385, 406,
881 407, 408, 395, 409, 398, 399, 410, 411, 400, 401,
882 405, 412, 413, 414, 405, 396, 0, 0, 0, 406,
883 407, 408, 0, 409, 0, 0, 410, 411, 0, 0,
884 407, 412, 413, 414, 0, 0, 409, 0, 406, 0,
885 0, 0, 0, 0, 410, 0, 411, 0, 0, 413,
886 416, 416, 416, 416, 416, 416, 417, 417, 417, 417,
887
888 417, 417, 418, 418, 419, 0, 0, 419, 419, 419,
889 420, 0, 0, 420, 420, 421, 421, 0, 421, 421,
890 421, 422, 422, 422, 422, 422, 422, 423, 423, 423,
891 423, 423, 423, 425, 425, 425, 425, 425, 425, 426,
892 426, 426, 426, 426, 426, 427, 427, 427, 427, 427,
893 427, 428, 428, 428, 428, 428, 428, 429, 429, 429,
894 429, 429, 429, 430, 430, 430, 430, 430, 430, 415,
895 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
896 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
897 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
898
899 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
900 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
901 415, 415, 415, 415
902 } ;
903
904/* Table of booleans, true if rule could match eol. */
905static yyconstconst flex_int32_t yy_rule_can_match_eol[90] =
906 { 0,
9070, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0,
911 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, };
912
913static yy_state_type yy_last_accepting_state;
914static char *yy_last_accepting_cpos;
915
916extern int yy_flex_debug;
917int yy_flex_debug = 0;
918
919/* The intent behind this definition is that it'll catch
920 * any uses of REJECT which flex missed.
921 */
922#define REJECTreject_used_but_not_detected reject_used_but_not_detected
923#define yymore()yymore_used_but_not_detected yymore_used_but_not_detected
924#define YY_MORE_ADJ0 0
925#define YY_RESTORE_YY_MORE_OFFSET
926char *yytext;
927#line 1 "/usr/local/src/libreoffice/idlc/source/scanner.l"
928/*
929 * This file is part of the LibreOffice project.
930 *
931 * This Source Code Form is subject to the terms of the Mozilla Public
932 * License, v. 2.0. If a copy of the MPL was not distributed with this
933 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
934 *
935 * This file incorporates work covered by the following license notice:
936 *
937 * Licensed to the Apache Software Foundation (ASF) under one or more
938 * contributor license agreements. See the NOTICE file distributed
939 * with this work for additional information regarding copyright
940 * ownership. The ASF licenses this file to you under the Apache
941 * License, Version 2.0 (the "License"); you may not use this file
942 * except in compliance with the License. You may obtain a copy of
943 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
944 */
945#line 22 "/usr/local/src/libreoffice/idlc/source/scanner.l"
946/*
947 * scanner.ll - Lexical scanner for IDLC 1.0
948 */
949
950#include <ctype.h>
951#include <stdlib.h>
952#include <string.h>
953
954#ifndef _IDLC_IDLC_HXX_
955#include <idlc/idlc.hxx>
956#endif
957#ifndef _IDLC_ERRORHANDLER_HXX_
958#include <idlc/errorhandler.hxx>
959#endif
960#ifndef _IDLC_FEHELPER_HXX_
961#include <idlc/fehelper.hxx>
962#endif
963
964#include "attributeexceptions.hxx"
965
966
967class AstExpression;
968class AstArray;
969class AstMember;
970
971#include <parser.hxx>
972
973/* handle locations */
974int yycolumn = 1;
975
976#define YY_USER_ACTIONidlc()->setOffset(yycolumn, yycolumn+yyleng-1); yycolumn +=
yyleng;
idlc()->setOffset(yycolumn, yycolumn+yyleng-1); \
977 yycolumn += yyleng;
978
979sal_Int32 beginLine = 0;
980::rtl::OString docu;
981
982static int asciiToInteger(char const * s, sal_Int64 * sval, sal_uInt64 * uval) {
983 bool neg = false;
984 if (*s == '-') {
985 neg = true;
986 ++s;
987 }
988 unsigned int base = 10;
989 if (*s == '0') {
990 base = 8;
991 ++s;
992 if (*s == 'X' || *s == 'x') {
993 base = 16;
994 ++s;
995 }
996 }
997 sal_uInt64 val = 0;
998 for (; *s != 0; ++s) {
999 unsigned int n;
1000 if (*s >= '0' && *s <= '9') {
1001 n = *s - '0';
1002 } else {
1003 switch (*s) {
1004 case 'A':
1005 case 'a':
1006 n = 10;
1007 break;
1008 case 'B':
1009 case 'b':
1010 n = 11;
1011 break;
1012 case 'C':
1013 case 'c':
1014 n = 12;
1015 break;
1016 case 'D':
1017 case 'd':
1018 n = 13;
1019 break;
1020 case 'E':
1021 case 'e':
1022 n = 14;
1023 break;
1024 case 'F':
1025 case 'f':
1026 n = 15;
1027 break;
1028 default:
1029 goto done;
1030 }
1031 }
1032 // The following guarantees the invariant val <= SAL_MAX_UINT64 (because
1033 // base and n are sufficiently small), *if*
1034 // std::numeric_limits<sal_uInt64>::max() == SAL_MAX_UINT64:
1035 sal_uInt64 nval = val * base + n;
1036 if (nval < val) {
1037 idlc()->error()->syntaxError(
1038 PS_NoState, idlc()->getLineNumber(),
1039 "integral constant too large");
1040 val = 0;
1041 break;
1042 }
1043 val = nval;
1044 }
1045 done:
1046 if (neg) {
1047 if (val < SAL_CONST_UINT64(0x8000000000000000)0x8000000000000000ull) {
1048 *sval = -static_cast< sal_Int64 >(val);
1049 } else if (val == SAL_CONST_UINT64(0x8000000000000000)0x8000000000000000ull) {
1050 *sval = SAL_MIN_INT64((sal_Int64) (-0x7FFFFFFFFFFFFFFFll - 1));
1051 } else {
1052 idlc()->error()->syntaxError(
1053 PS_NoState, idlc()->getLineNumber(),
1054 "negative integral constant too large");
1055 *sval = 0;
1056 }
1057 return IDL_INTEGER_LITERAL;
1058 } else if (val <= static_cast< sal_uInt64 >(SAL_MAX_INT64((sal_Int64) 0x7FFFFFFFFFFFFFFFll))) {
1059 *sval = static_cast< sal_Int64 >(val);
1060 return IDL_INTEGER_LITERAL;
1061 } else {
1062 *uval = val;
1063 return IDL_INTEGER_ULITERAL;
1064 }
1065}
1066
1067static double asciiToFloat(const sal_Char *s)
1068{
1069 double d = 0.0;
1070 double e, k;
1071 sal_Int32 neg = 0, negexp = 0;
1072
1073 if (*s == '-')
1074 {
1075 neg = 1;
1076 s++;
1077 }
1078 while (*s >= '0' && *s <= '9')
1079 {
1080 d = (d * 10) + *s - '0';
1081 s++;
1082 }
1083 if (*s == '.')
1084 {
1085 s++;
1086 e = 10;
1087 while (*s >= '0' && *s <= '9')
1088 {
1089 d += (*s - '0') / (e * 1.0);
1090 e *= 10;
1091 s++;
1092 }
1093 }
1094 if (*s == 'e' || *s == 'E')
1095 {
1096 s++;
1097 if (*s == '-')
1098 {
1099 negexp = 1;
1100 s++;
1101 } else
1102 {
1103 if (*s == '+')
1104 s++;
1105 e = 0;
1106 while (*s >= '0' && *s <= '9')
1107 {
1108 e = (e * 10) + *s - '0';
1109 s++;
1110 }
1111 if (e > 0)
1112 {
1113 for (k = 1; e > 0; k *= 10, e--)
1114 ;
1115 if (negexp)
1116 d /= k;
1117 else
1118 d *= k;
1119 }
1120 }
1121 }
1122 if (neg) d *= -1.0;
1123 return d;
1124}
1125
1126static void idlParsePragma(sal_Char* pPragma)
1127{
1128 ::rtl::OString pragma(pPragma);
1129 sal_Int32 index = pragma.indexOf("include");
1130 sal_Char* begin = pPragma + index + 8;
1131 sal_Char* offset = begin;
1132 while (*offset != ',') offset++;
1133 //::rtl::OString include = pragma.copy(index + 8, offset - begin);
1134 //unused// idlc()->insertInclude(pragma.copy(index + 8, (sal_Int32)(offset - begin)));
1135}
1136
1137static void parseLineAndFile(sal_Char* pBuf)
1138{
1139 sal_Char *r = pBuf;
1140 sal_Char *h;
1141 sal_Bool bIsInMain = sal_False((sal_Bool)0);
1142
1143 /* Skip initial '#' */
1144 if (*r != '#')
1145 return;
1146
1147 /* Find line number */
1148 for (r++; *r == ' ' || *r == '\t' || isalpha(*r); r++) ;
1149 h = r;
1150 for (; *r != '\0' && *r != ' ' && *r != '\t'; r++) ;
1151 *r++ = 0;
1152 idlc()->setLineNumber((sal_uInt32)atol(h));
1153 yylineno = atol(h);
1154
1155 /* Find file name, if present */
1156 for (; *r != '"'; r++)
1157 {
1158 if (*r == '\n' || *r == '\0')
1159 return;
1160 }
1161 h = ++r;
1162 for (; *r != '"'; r++) ;
1163 *r = 0;
1164 if (*h == '\0')
1165 idlc()->setFileName(::rtl::OString("standard input"));
1166 else
1167 idlc()->setFileName(::rtl::OString(h));
1168
1169 bIsInMain = (idlc()->getFileName() == idlc()->getRealFileName()) ? sal_True((sal_Bool)1) : sal_False((sal_Bool)0);
1170 idlc()->setInMainfile(bIsInMain);
1171}
1172
1173// Suppress any warnings from generated code:
1174#if defined __GNUC__4
1175#if (__GNUC__4 > 4 || (__GNUC__4 == 4 && __GNUC_MINOR__2 >= 2))
1176#pragma GCC1 diagnostic ignored "-Wunused-function"
1177#pragma GCC1 diagnostic ignored "-Wunused-label"
1178#endif
1179#elif defined __SUNPRO_CC
1180#pragma disable_warn
1181#elif defined _MSC_VER
1182#pragma warning(push, 1)
1183/**/
1184#ifdef yywrap
1185#undef yywrap
1186#define yywrap()1 1
1187#endif
1188/**/
1189#endif
1190
1191
1192#line 1193 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
1193
1194#define INITIAL0 0
1195#define DOCU1 1
1196#define COMMENT2 2
1197
1198#ifndef YY_NO_UNISTD_H
1199/* Special case for "unistd.h", since it is non-ANSI. We include it way
1200 * down here because we want the user's section 1 to have been scanned first.
1201 * The user has a chance to override it with an option.
1202 */
1203#include <unistd.h>
1204#endif
1205
1206#ifndef YY_EXTRA_TYPEvoid *
1207#define YY_EXTRA_TYPEvoid * void *
1208#endif
1209
1210static int yy_init_globals (void );
1211
1212/* Accessor methods to globals.
1213 These are made visible to non-reentrant scanners for convenience. */
1214
1215int yylex_destroy (void );
1216
1217int yyget_debug (void );
1218
1219void yyset_debug (int debug_flag );
1220
1221YY_EXTRA_TYPEvoid * yyget_extra (void );
1222
1223void yyset_extra (YY_EXTRA_TYPEvoid * user_defined );
1224
1225FILE *yyget_in (void );
1226
1227void yyset_in (FILE * in_str );
1228
1229FILE *yyget_out (void );
1230
1231void yyset_out (FILE * out_str );
1232
1233int yyget_leng (void );
1234
1235char *yyget_text (void );
1236
1237int yyget_lineno (void );
1238
1239void yyset_lineno (int line_number );
1240
1241/* Macros after this point can all be overridden by user definitions in
1242 * section 1.
1243 */
1244
1245#ifndef YY_SKIP_YYWRAP
1246#ifdef __cplusplus199711L
1247extern "C" int yywrap (void )1;
1248#else
1249extern int yywrap (void )1;
1250#endif
1251#endif
1252
1253 static void yyunput (int c,char *buf_ptr );
1254
1255#ifndef yytext_ptryytext
1256static void yy_flex_strncpy (char *,yyconstconst char *,int );
1257#endif
1258
1259#ifdef YY_NEED_STRLEN
1260static int yy_flex_strlen (yyconstconst char * );
1261#endif
1262
1263#ifndef YY_NO_INPUT
1264
1265#ifdef __cplusplus199711L
1266static int yyinput (void );
1267#else
1268static int input (void );
1269#endif
1270
1271#endif
1272
1273/* Amount of stuff to slurp up with each read. */
1274#ifndef YY_READ_BUF_SIZE8192
1275#define YY_READ_BUF_SIZE8192 8192
1276#endif
1277
1278/* Copy whatever the last rule matched to the standard output. */
1279#ifndef ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1280/* This used to be an fputs(), but since the string might contain NUL's,
1281 * we now use fwrite().
1282 */
1283#define ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1284#endif
1285
1286/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1287 * is returned in "result".
1288 */
1289#ifndef YY_INPUT
1290#define YY_INPUT(buf,result,max_size)if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; unsigned n; for ( n = 0; n < max_size &&
(c = _IO_getc (yyin)) != (-1) && c != '\n'; ++n ) buf
[n] = (char) c; if ( c == '\n' ) buf[n++] = (char) c; if ( c ==
(-1) && ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
); result = n; } else { (*__errno_location ())=0; while ( (result
= fread(buf, 1, max_size, yyin))==0 && ferror(yyin))
{ if( (*__errno_location ()) != 4) { yy_fatal_error( "input in flex scanner failed"
); break; } (*__errno_location ())=0; clearerr(yyin); } }
\
1291 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive ) \
1292 { \
1293 int c = '*'; \
1294 unsigned n; \
1295 for ( n = 0; n < max_size && \
1296 (c = getc( yyin )_IO_getc (yyin)) != EOF(-1) && c != '\n'; ++n ) \
1297 buf[n] = (char) c; \
1298 if ( c == '\n' ) \
1299 buf[n++] = (char) c; \
1300 if ( c == EOF(-1) && ferror( yyin ) ) \
1301 YY_FATAL_ERROR( "input in flex scanner failed" )yy_fatal_error( "input in flex scanner failed" ); \
1302 result = n; \
1303 } \
1304 else \
1305 { \
1306 errno(*__errno_location ())=0; \
1307 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1308 { \
1309 if( errno(*__errno_location ()) != EINTR4) \
1310 { \
1311 YY_FATAL_ERROR( "input in flex scanner failed" )yy_fatal_error( "input in flex scanner failed" ); \
1312 break; \
1313 } \
1314 errno(*__errno_location ())=0; \
1315 clearerr(yyin); \
1316 } \
1317 }\
1318\
1319
1320#endif
1321
1322/* No semi-colon after return; correct usage is to write "yyterminate();" -
1323 * we don't want an extra ';' after the "return" because that will cause
1324 * some compilers to complain about unreachable statements.
1325 */
1326#ifndef yyterminate
1327#define yyterminate()return 0 return YY_NULL0
1328#endif
1329
1330/* Number of entries by which start-condition stack grows. */
1331#ifndef YY_START_STACK_INCR25
1332#define YY_START_STACK_INCR25 25
1333#endif
1334
1335/* Report a fatal error. */
1336#ifndef YY_FATAL_ERROR
1337#define YY_FATAL_ERROR(msg)yy_fatal_error( msg ) yy_fatal_error( msg )
1338#endif
1339
1340/* end tables serialization structures and prototypes */
1341
1342/* Default declaration of generated scanner - a define so the user can
1343 * easily add parameters.
1344 */
1345#ifndef YY_DECLint yylex (void)
1346#define YY_DECL_IS_OURS1 1
1347
1348extern int yylex (void);
1349
1350#define YY_DECLint yylex (void) int yylex (void)
1351#endif /* !YY_DECL */
1352
1353/* Code executed at the beginning of each rule, after yytext and yyleng
1354 * have been set up.
1355 */
1356#ifndef YY_USER_ACTIONidlc()->setOffset(yycolumn, yycolumn+yyleng-1); yycolumn +=
yyleng;
1357#define YY_USER_ACTIONidlc()->setOffset(yycolumn, yycolumn+yyleng-1); yycolumn +=
yyleng;
1358#endif
1359
1360/* Code executed at the end of each rule. */
1361#ifndef YY_BREAKbreak;
1362#define YY_BREAKbreak; break;
1363#endif
1364
1365#define YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
\
1366 if ( yyleng > 0 ) \
1367 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol = \
1368 (yytext[yyleng - 1] == '\n'); \
1369 YY_USER_ACTIONidlc()->setOffset(yycolumn, yycolumn+yyleng-1); yycolumn +=
yyleng;
1370
1371/** The main scanner function which does all the work.
1372 */
1373YY_DECLint yylex (void)
1374{
1375 register yy_state_type yy_current_state;
1376 register char *yy_cp, *yy_bp;
1377 register int yy_act;
1378
1379#line 286 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1380
1381
1382#line 1383 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
1383
1384 if ( !(yy_init) )
1385 {
1386 (yy_init) = 1;
1387
1388#ifdef YY_USER_INIT
1389 YY_USER_INIT;
1390#endif
1391
1392 if ( ! (yy_start) )
1393 (yy_start) = 1; /* first start state */
1394
1395 if ( ! yyin )
1396 yyin = stdinstdin;
1397
1398 if ( ! yyout )
1399 yyout = stdoutstdout;
1400
1401 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
) {
1402 yyensure_buffer_stack ();
1403 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] =
1404 yy_create_buffer(yyin,YY_BUF_SIZE16384 );
1405 }
1406
1407 yy_load_buffer_state( );
1408 }
1409
1410 while ( 1 ) /* loops until end-of-file is reached */
1411 {
1412 yy_cp = (yy_c_buf_p);
1413
1414 /* Support of yytext. */
1415 *yy_cp = (yy_hold_char);
1416
1417 /* yy_bp points to the position in yy_ch_buf of the start of
1418 * the current run.
1419 */
1420 yy_bp = yy_cp;
1421
1422 yy_current_state = (yy_start);
1423 yy_current_state += YY_AT_BOL()((yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol);
1424yy_match:
1425 do
1426 {
1427 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)((unsigned int) (unsigned char) *yy_cp)];
1428 if ( yy_accept[yy_current_state] )
1429 {
1430 (yy_last_accepting_state) = yy_current_state;
1431 (yy_last_accepting_cpos) = yy_cp;
1432 }
1433 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1434 {
1435 yy_current_state = (int) yy_def[yy_current_state];
1436 if ( yy_current_state >= 416 )
1437 yy_c = yy_meta[(unsigned int) yy_c];
1438 }
1439 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1440 ++yy_cp;
1441 }
1442 while ( yy_current_state != 415 );
1443 yy_cp = (yy_last_accepting_cpos);
1444 yy_current_state = (yy_last_accepting_state);
1445
1446yy_find_action:
1447 yy_act = yy_accept[yy_current_state];
1448
1449 YY_DO_BEFORE_ACTION(yytext) = yy_bp; yyleng = (size_t) (yy_cp - yy_bp); (yy_hold_char
) = *yy_cp; *yy_cp = '\0'; (yy_c_buf_p) = yy_cp;
;
1450
1451 if ( yy_act != YY_END_OF_BUFFER90 && yy_rule_can_match_eol[yy_act] )
1452 {
1453 int yyl;
1454 for ( yyl = 0; yyl < yyleng; ++yyl )
1455 if ( yytext[yyl] == '\n' )
1456
1457 yylineno++;
1458;
1459 }
1460
1461do_action: /* This label is used only to access EOF actions. */
1462
1463 switch ( yy_act )
1464 { /* beginning of action switch */
1465 case 0: /* must back up */
1466 /* undo the effects of YY_DO_BEFORE_ACTION */
1467 *yy_cp = (yy_hold_char);
1468 yy_cp = (yy_last_accepting_cpos);
1469 yy_current_state = (yy_last_accepting_state);
1470 goto yy_find_action;
1471
1472case 1:
1473YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1474#line 288 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1475; /* eat up whitespace */
1476 YY_BREAKbreak;
1477case 2:
1478/* rule 2 can match eol */
1479YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1480#line 289 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1481{
1482 idlc()->incLineNumber();
1483 yycolumn = 1;
1484 yylineno++;
1485}
1486 YY_BREAKbreak;
1487case 3:
1488YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1489#line 295 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1490return IDL_ATTRIBUTE;
1491 YY_BREAKbreak;
1492case 4:
1493YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1494#line 296 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1495return IDL_BOUND;
1496 YY_BREAKbreak;
1497case 5:
1498YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1499#line 297 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1500return IDL_CASE;
1501 YY_BREAKbreak;
1502case 6:
1503YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1504#line 298 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1505return IDL_CONST;
1506 YY_BREAKbreak;
1507case 7:
1508YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1509#line 299 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1510return IDL_CONSTANTS;
1511 YY_BREAKbreak;
1512case 8:
1513YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1514#line 300 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1515return IDL_CONSTRAINED;
1516 YY_BREAKbreak;
1517case 9:
1518YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1519#line 301 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1520return IDL_DEFAULT;
1521 YY_BREAKbreak;
1522case 10:
1523YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1524#line 302 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1525return IDL_ENUM;
1526 YY_BREAKbreak;
1527case 11:
1528YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1529#line 303 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1530return IDL_EXCEPTION;
1531 YY_BREAKbreak;
1532case 12:
1533YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1534#line 304 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1535return IDL_INTERFACE;
1536 YY_BREAKbreak;
1537case 13:
1538YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1539#line 305 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1540return IDL_MAYBEAMBIGUOUS;
1541 YY_BREAKbreak;
1542case 14:
1543YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1544#line 306 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1545return IDL_MAYBEDEFAULT;
1546 YY_BREAKbreak;
1547case 15:
1548YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1549#line 307 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1550return IDL_MAYBEVOID;
1551 YY_BREAKbreak;
1552case 16:
1553YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1554#line 308 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1555return IDL_MODULE;
1556 YY_BREAKbreak;
1557case 17:
1558YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1559#line 309 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1560return IDL_NEEDS;
1561 YY_BREAKbreak;
1562case 18:
1563YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1564#line 310 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1565return IDL_OBSERVES;
1566 YY_BREAKbreak;
1567case 19:
1568YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1569#line 311 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1570return IDL_OPTIONAL;
1571 YY_BREAKbreak;
1572case 20:
1573YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1574#line 312 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1575return IDL_PROPERTY;
1576 YY_BREAKbreak;
1577case 21:
1578YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1579#line 313 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1580return IDL_RAISES;
1581 YY_BREAKbreak;
1582case 22:
1583YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1584#line 314 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1585return IDL_READONLY;
1586 YY_BREAKbreak;
1587case 23:
1588YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1589#line 315 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1590return IDL_REMOVEABLE;
1591 YY_BREAKbreak;
1592case 24:
1593YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1594#line 316 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1595return IDL_SERVICE;
1596 YY_BREAKbreak;
1597case 25:
1598YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1599#line 317 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1600return IDL_SEQUENCE;
1601 YY_BREAKbreak;
1602case 26:
1603YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1604#line 318 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1605return IDL_SINGLETON;
1606 YY_BREAKbreak;
1607case 27:
1608YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1609#line 319 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1610return IDL_STRUCT;
1611 YY_BREAKbreak;
1612case 28:
1613YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1614#line 320 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1615return IDL_SWITCH;
1616 YY_BREAKbreak;
1617case 29:
1618YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1619#line 321 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1620return IDL_TRANSIENT;
1621 YY_BREAKbreak;
1622case 30:
1623YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1624#line 322 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1625return IDL_TYPEDEF;
1626 YY_BREAKbreak;
1627case 31:
1628YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1629#line 323 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1630return IDL_UNION;
1631 YY_BREAKbreak;
1632case 32:
1633YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1634#line 325 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1635return IDL_ANY;
1636 YY_BREAKbreak;
1637case 33:
1638YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1639#line 326 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1640return IDL_BOOLEAN;
1641 YY_BREAKbreak;
1642case 34:
1643YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1644#line 327 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1645return IDL_BYTE;
1646 YY_BREAKbreak;
1647case 35:
1648YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1649#line 328 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1650return IDL_CHAR;
1651 YY_BREAKbreak;
1652case 36:
1653YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1654#line 329 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1655return IDL_DOUBLE;
1656 YY_BREAKbreak;
1657case 37:
1658YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1659#line 330 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1660return IDL_FLOAT;
1661 YY_BREAKbreak;
1662case 38:
1663YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1664#line 331 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1665return IDL_HYPER;
1666 YY_BREAKbreak;
1667case 39:
1668YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1669#line 332 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1670return IDL_LONG;
1671 YY_BREAKbreak;
1672case 40:
1673YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1674#line 333 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1675return IDL_SHORT;
1676 YY_BREAKbreak;
1677case 41:
1678YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1679#line 334 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1680return IDL_STRING;
1681 YY_BREAKbreak;
1682case 42:
1683YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1684#line 335 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1685return IDL_TYPE;
1686 YY_BREAKbreak;
1687case 43:
1688YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1689#line 336 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1690return IDL_UNSIGNED;
1691 YY_BREAKbreak;
1692case 44:
1693YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1694#line 337 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1695return IDL_VOID;
1696 YY_BREAKbreak;
1697case 45:
1698YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1699#line 339 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1700return IDL_TRUE;
1701 YY_BREAKbreak;
1702case 46:
1703YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1704#line 340 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1705return IDL_TRUE;
1706 YY_BREAKbreak;
1707case 47:
1708YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1709#line 341 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1710return IDL_FALSE;
1711 YY_BREAKbreak;
1712case 48:
1713YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1714#line 342 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1715return IDL_FALSE;
1716 YY_BREAKbreak;
1717case 49:
1718YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1719#line 344 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1720return IDL_IN;
1721 YY_BREAKbreak;
1722case 50:
1723YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1724#line 345 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1725return IDL_OUT;
1726 YY_BREAKbreak;
1727case 51:
1728YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1729#line 346 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1730return IDL_INOUT;
1731 YY_BREAKbreak;
1732case 52:
1733YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1734#line 347 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1735return IDL_ONEWAY;
1736 YY_BREAKbreak;
1737case 53:
1738YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1739#line 349 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1740return IDL_GET;
1741 YY_BREAKbreak;
1742case 54:
1743YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1744#line 350 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1745return IDL_SET;
1746 YY_BREAKbreak;
1747case 55:
1748YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1749#line 352 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1750return IDL_PUBLISHED;
1751 YY_BREAKbreak;
1752case 56:
1753YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1754#line 354 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1755return IDL_ELLIPSIS;
1756 YY_BREAKbreak;
1757case 57:
1758YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1759#line 356 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1760{
1761 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
1762 }
1763 YY_BREAKbreak;
1764case 58:
1765YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1766#line 360 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1767{
1768 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
1769 }
1770 YY_BREAKbreak;
1771case 59:
1772YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1773#line 364 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1774{
1775 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
1776 }
1777 YY_BREAKbreak;
1778case 60:
1779#line 369 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1780case 61:
1781#line 370 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1782case 62:
1783YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1784#line 370 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1785{
1786 yylval.dval = asciiToFloat( yytext );
1787 return IDL_FLOATING_PT_LITERAL;
1788 }
1789 YY_BREAKbreak;
1790case 63:
1791YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1792#line 375 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1793{
1794 yylval.sval = new ::rtl::OString(yytext);
1795 return IDL_IDENTIFIER;
1796 }
1797 YY_BREAKbreak;
1798case 64:
1799YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1800#line 380 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1801{
1802 yylval.strval = yytext;
1803 return IDL_LEFTSHIFT;
1804 }
1805 YY_BREAKbreak;
1806case 65:
1807YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1808#line 384 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1809{
1810 yylval.strval = yytext;
1811 return IDL_RIGHTSHIFT;
1812 }
1813 YY_BREAKbreak;
1814case 66:
1815YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1816#line 388 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1817{
1818 yylval.strval = yytext;
1819 return IDL_SCOPESEPARATOR;
1820 }
1821 YY_BREAKbreak;
1822case 67:
1823YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1824#line 393 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1825{
1826 BEGIN(yy_start) = 1 + 2 *( COMMENT2 );
1827 docu = ::rtl::OString();
1828 beginLine = idlc()->getLineNumber();
1829 }
1830 YY_BREAKbreak;
1831case 68:
1832YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1833#line 399 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1834{
1835 BEGIN(yy_start) = 1 + 2 *( COMMENT2 );
1836 docu = ::rtl::OString();
1837 beginLine = idlc()->getLineNumber();
1838 }
1839 YY_BREAKbreak;
1840case 69:
1841/* rule 69 can match eol */
1842YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1843#line 405 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1844{
1845 docu += ::rtl::OString(yytext);
1846 }
1847 YY_BREAKbreak;
1848case 70:
1849/* rule 70 can match eol */
1850YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1851#line 409 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1852{
1853 docu += ::rtl::OString(yytext);
1854 }
1855 YY_BREAKbreak;
1856case 71:
1857YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1858#line 413 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1859{
1860 docu += ::rtl::OString(yytext);
1861 }
1862 YY_BREAKbreak;
1863case 72:
1864YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1865#line 417 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1866{
1867 docu = docu.trim();
1868 sal_Int32 nIndex = 0;
1869 int count = 0;
1870 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
1871 idlc()->setLineNumber( beginLine + count - 1);
1872 BEGIN(yy_start) = 1 + 2 *( INITIAL0 );
1873 }
1874 YY_BREAKbreak;
1875case 73:
1876YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1877#line 426 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1878{
1879 BEGIN(yy_start) = 1 + 2 *( DOCU1 );
1880 docu = ::rtl::OString();
1881 beginLine = idlc()->getLineNumber();
1882 }
1883 YY_BREAKbreak;
1884case 74:
1885YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1886#line 432 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1887{
1888 docu += ::rtl::OString(yytext);
1889 }
1890 YY_BREAKbreak;
1891case 75:
1892/* rule 75 can match eol */
1893YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1894#line 436 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1895{
1896 idlc()->setLineNumber( idlc()->getLineNumber() + 1);
1897 docu += ::rtl::OString("\n");
1898 }
1899 YY_BREAKbreak;
1900case 76:
1901/* rule 76 can match eol */
1902YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1903#line 441 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1904{
1905 idlc()->setLineNumber( idlc()->getLineNumber() + 1);
1906 docu += ::rtl::OString(yytext);
1907 }
1908 YY_BREAKbreak;
1909case 77:
1910YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1911#line 446 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1912{
1913 docu += ::rtl::OString(yytext);
1914 }
1915 YY_BREAKbreak;
1916case 78:
1917/* rule 78 can match eol */
1918YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1919#line 450 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1920{
1921 docu = docu.trim();
1922 sal_Int32 nIndex = 0;
1923 int count = 0;
1924 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
1925 idlc()->setLineNumber( beginLine + count - 1);
1926 if ( (nIndex = docu.indexOf("/*")) >= 0 || (nIndex = docu.indexOf("///")) >= 0 )
1927 {
1928 if ( 0 != nIndex &&
1929 (docu.getStr()[nIndex - 1] != '"' && docu.getStr()[nIndex - 1] != ':') )
1930 idlc()->error()->syntaxError(PS_NoState, idlc()->getLineNumber(),
1931 "nested documentation strings are not allowed!");
1932 }
1933 idlc()->setDocumentation(docu);
1934 BEGIN(yy_start) = 1 + 2 *( INITIAL0 );
1935 }
1936 YY_BREAKbreak;
1937case 79:
1938YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1939#line 467 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1940{
1941 docu = docu.trim();
1942 sal_Int32 nIndex = 0;
1943 int count = 0;
1944 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
1945 idlc()->setLineNumber( beginLine + count - 1);
1946 if ( docu.indexOf("/*") >= 0 || docu.indexOf("//") >= 0 )
1947 {
1948 if ( 0 != nIndex &&
1949 (docu.getStr()[nIndex - 1] != '"' && docu.getStr()[nIndex - 1] != ':') )
1950 idlc()->error()->syntaxError(PS_NoState, idlc()->getLineNumber(),
1951 "nested documentation strings are not allowed!");
1952 }
1953 idlc()->setDocumentation(docu);
1954 BEGIN(yy_start) = 1 + 2 *( INITIAL0 );
1955 }
1956 YY_BREAKbreak;
1957case 80:
1958/* rule 80 can match eol */
1959YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1960#line 484 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1961{
1962 /* only a comment */
1963 ::rtl::OString docStr(yytext);
1964 docStr = docStr.copy( 0, docStr.lastIndexOf('\n') );
1965 docStr = docStr.copy( docStr.lastIndexOf('/')+1 );
1966 docStr = docStr.trim();
1967 idlc()->incLineNumber();
1968 }
1969 YY_BREAKbreak;
1970case 81:
1971/* rule 81 can match eol */
1972YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1973#line 493 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1974{
1975 ::rtl::OString docStr(yytext);
1976 docStr = docStr.copy( 0, docStr.lastIndexOf('\n') );
1977 docStr = docStr.copy( docStr.lastIndexOf('/')+1 );
1978 docStr = docStr.trim();
1979 idlc()->incLineNumber();
1980 idlc()->setDocumentation(docStr);
1981 }
1982 YY_BREAKbreak;
1983case 82:
1984YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1985#line 502 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1986return yytext[0];
1987 YY_BREAKbreak;
1988case 83:
1989/* rule 83 can match eol */
1990YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1991#line 504 "/usr/local/src/libreoffice/idlc/source/scanner.l"
1992{
1993 parseLineAndFile(yytext);
1994}
1995 YY_BREAKbreak;
1996case 84:
1997/* rule 84 can match eol */
1998YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
1999#line 508 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2000{
2001 parseLineAndFile(yytext);
2002}
2003 YY_BREAKbreak;
2004case 85:
2005/* rule 85 can match eol */
2006YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
2007#line 512 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2008{
2009 parseLineAndFile(yytext);
2010}
2011 YY_BREAKbreak;
2012case 86:
2013/* rule 86 can match eol */
2014YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
2015#line 516 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2016{
2017 parseLineAndFile(yytext);
2018}
2019 YY_BREAKbreak;
2020case 87:
2021/* rule 87 can match eol */
2022YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
2023#line 520 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2024{
2025 /* ignore cpp ident */
2026 idlc()->incLineNumber();
2027}
2028 YY_BREAKbreak;
2029case 88:
2030/* rule 88 can match eol */
2031YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
2032#line 525 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2033{ /* remember pragma */
2034 idlParsePragma(yytext);
2035 idlc()->incLineNumber();
2036}
2037 YY_BREAKbreak;
2038case 89:
2039YY_RULE_SETUPif ( yyleng > 0 ) (yy_buffer_stack)[(yy_buffer_stack_top)]
->yy_at_bol = (yytext[yyleng - 1] == '\n'); idlc()->setOffset
(yycolumn, yycolumn+yyleng-1); yycolumn += yyleng;
2040#line 530 "/usr/local/src/libreoffice/idlc/source/scanner.l"
2041ECHOdo { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0);
2042 YY_BREAKbreak;
2043#line 2044 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
2044case YY_STATE_EOF(INITIAL)(90 + 0 + 1):
2045case YY_STATE_EOF(DOCU)(90 + 1 + 1):
2046case YY_STATE_EOF(COMMENT)(90 + 2 + 1):
2047 yyterminate()return 0;
2048
2049 case YY_END_OF_BUFFER90:
2050 {
2051 /* Amount of text matched not including the EOB char. */
2052 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptryytext)) - 1;
2053
2054 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2055 *yy_cp = (yy_hold_char);
2056 YY_RESTORE_YY_MORE_OFFSET
2057
2058 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status == YY_BUFFER_NEW0 )
2059 {
2060 /* We're scanning a new file or input source. It's
2061 * possible that this happened because the user
2062 * just pointed yyin at a new source and called
2063 * yylex(). If so, then we have to assure
2064 * consistency between YY_CURRENT_BUFFER and our
2065 * globals. Here is the right place to do so, because
2066 * this is the first action (other than possibly a
2067 * back-up) that will match for the new input source.
2068 */
2069 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars;
2070 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_input_file = yyin;
2071 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status = YY_BUFFER_NORMAL1;
2072 }
2073
2074 /* Note that here we test for yy_c_buf_p "<=" to the position
2075 * of the first EOB in the buffer, since yy_c_buf_p will
2076 * already have been incremented past the NUL character
2077 * (since all states make transitions on EOB to the
2078 * end-of-buffer state). Contrast this with the test
2079 * in input().
2080 */
2081 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] )
2082 { /* This was really a NUL. */
2083 yy_state_type yy_next_state;
2084
2085 (yy_c_buf_p) = (yytext_ptryytext) + yy_amount_of_matched_text;
2086
2087 yy_current_state = yy_get_previous_state( );
2088
2089 /* Okay, we're now positioned to make the NUL
2090 * transition. We couldn't have
2091 * yy_get_previous_state() go ahead and do it
2092 * for us because it doesn't know how to deal
2093 * with the possibility of jamming (and we don't
2094 * want to build jamming into it because then it
2095 * will run more slowly).
2096 */
2097
2098 yy_next_state = yy_try_NUL_trans( yy_current_state );
2099
2100 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ0;
2101
2102 if ( yy_next_state )
2103 {
2104 /* Consume the NUL. */
2105 yy_cp = ++(yy_c_buf_p);
2106 yy_current_state = yy_next_state;
2107 goto yy_match;
2108 }
2109
2110 else
2111 {
2112 yy_cp = (yy_last_accepting_cpos);
2113 yy_current_state = (yy_last_accepting_state);
2114 goto yy_find_action;
2115 }
2116 }
2117
2118 else switch ( yy_get_next_buffer( ) )
2119 {
2120 case EOB_ACT_END_OF_FILE1:
2121 {
2122 (yy_did_buffer_switch_on_eof) = 0;
2123
2124 if ( yywrap( )1 )
2125 {
2126 /* Note: because we've taken care in
2127 * yy_get_next_buffer() to have set up
2128 * yytext, we can now set up
2129 * yy_c_buf_p so that if some total
2130 * hoser (like flex itself) wants to
2131 * call the scanner after we return the
2132 * YY_NULL, it'll still work - another
2133 * YY_NULL will get returned.
2134 */
2135 (yy_c_buf_p) = (yytext_ptryytext) + YY_MORE_ADJ0;
2136
2137 yy_act = YY_STATE_EOF(YY_START)(90 + (((yy_start) - 1) / 2) + 1);
2138 goto do_action;
2139 }
2140
2141 else
2142 {
2143 if ( ! (yy_did_buffer_switch_on_eof) )
2144 YY_NEW_FILEyyrestart(yyin );
2145 }
2146 break;
2147 }
2148
2149 case EOB_ACT_CONTINUE_SCAN0:
2150 (yy_c_buf_p) =
2151 (yytext_ptryytext) + yy_amount_of_matched_text;
2152
2153 yy_current_state = yy_get_previous_state( );
2154
2155 yy_cp = (yy_c_buf_p);
2156 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ0;
2157 goto yy_match;
2158
2159 case EOB_ACT_LAST_MATCH2:
2160 (yy_c_buf_p) =
2161 &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)];
2162
2163 yy_current_state = yy_get_previous_state( );
2164
2165 yy_cp = (yy_c_buf_p);
2166 yy_bp = (yytext_ptryytext) + YY_MORE_ADJ0;
2167 goto yy_find_action;
2168 }
2169 break;
2170 }
2171
2172 default:
2173 YY_FATAL_ERROR(yy_fatal_error( "fatal flex scanner internal error--no action found"
)
2174 "fatal flex scanner internal error--no action found" )yy_fatal_error( "fatal flex scanner internal error--no action found"
)
;
2175 } /* end of action switch */
2176 } /* end of scanning one token */
2177} /* end of yylex */
2178
2179/* yy_get_next_buffer - try to read in a new buffer
2180 *
2181 * Returns a code representing an action:
2182 * EOB_ACT_LAST_MATCH -
2183 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2184 * EOB_ACT_END_OF_FILE - end of file
2185 */
2186static int yy_get_next_buffer (void)
2187{
2188 register char *dest = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf;
2189 register char *source = (yytext_ptryytext);
2190 register int number_to_move, i;
2191 int ret_val;
2192
2193 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars) + 1] )
2194 YY_FATAL_ERROR(yy_fatal_error( "fatal flex scanner internal error--end of buffer missed"
)
2195 "fatal flex scanner internal error--end of buffer missed" )yy_fatal_error( "fatal flex scanner internal error--end of buffer missed"
)
;
2196
2197 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_fill_buffer == 0 )
2198 { /* Don't try to fill the buffer, so this is an EOF. */
2199 if ( (yy_c_buf_p) - (yytext_ptryytext) - YY_MORE_ADJ0 == 1 )
2200 {
2201 /* We matched a single character, the EOB, so
2202 * treat this as a final EOF.
2203 */
2204 return EOB_ACT_END_OF_FILE1;
2205 }
2206
2207 else
2208 {
2209 /* We matched some text prior to the EOB, first
2210 * process it.
2211 */
2212 return EOB_ACT_LAST_MATCH2;
2213 }
2214 }
2215
2216 /* Try to read more data. */
2217
2218 /* First move last chars to start of buffer. */
2219 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptryytext)) - 1;
2220
2221 for ( i = 0; i < number_to_move; ++i )
2222 *(dest++) = *(source++);
2223
2224 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status == YY_BUFFER_EOF_PENDING2 )
2225 /* don't do the read, it's not guaranteed to return an EOF,
2226 * just force an EOF
2227 */
2228 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars) = 0;
2229
2230 else
2231 {
2232 int num_to_read =
2233 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size - number_to_move - 1;
2234
2235 while ( num_to_read <= 0 )
2236 { /* Not enough room in the buffer - grow it. */
2237
2238 /* just a shorter name for the current buffer */
2239 YY_BUFFER_STATE b = YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
;
2240
2241 int yy_c_buf_p_offset =
2242 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2243
2244 if ( b->yy_is_our_buffer )
2245 {
2246 int new_size = b->yy_buf_size * 2;
2247
2248 if ( new_size <= 0 )
2249 b->yy_buf_size += b->yy_buf_size / 8;
2250 else
2251 b->yy_buf_size *= 2;
2252
2253 b->yy_ch_buf = (char *)
2254 /* Include room in for 2 EOB chars. */
2255 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2256 }
2257 else
2258 /* Can't grow it, we don't own it. */
2259 b->yy_ch_buf = 0;
2260
2261 if ( ! b->yy_ch_buf )
2262 YY_FATAL_ERROR(yy_fatal_error( "fatal error - scanner input buffer overflow"
)
2263 "fatal error - scanner input buffer overflow" )yy_fatal_error( "fatal error - scanner input buffer overflow"
)
;
2264
2265 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2266
2267 num_to_read = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size -
2268 number_to_move - 1;
2269
2270 }
2271
2272 if ( num_to_read > YY_READ_BUF_SIZE8192 )
2273 num_to_read = YY_READ_BUF_SIZE8192;
2274
2275 /* Read in more data. */
2276 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; unsigned n; for ( n = 0; n < (size_t) num_to_read
&& (c = _IO_getc (yyin)) != (-1) && c != '\n'
; ++n ) (&(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf
[number_to_move])[n] = (char) c; if ( c == '\n' ) (&(yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move])[n++] =
(char) c; if ( c == (-1) && ferror( yyin ) ) yy_fatal_error
( "input in flex scanner failed" ); (yy_n_chars) = n; } else {
(*__errno_location ())=0; while ( ((yy_n_chars) = fread((&
(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move
]), 1, (size_t) num_to_read, yyin))==0 && ferror(yyin
)) { if( (*__errno_location ()) != 4) { yy_fatal_error( "input in flex scanner failed"
); break; } (*__errno_location ())=0; clearerr(yyin); } }
2277 (yy_n_chars), (size_t) num_to_read )if ( (yy_buffer_stack)[(yy_buffer_stack_top)]->yy_is_interactive
) { int c = '*'; unsigned n; for ( n = 0; n < (size_t) num_to_read
&& (c = _IO_getc (yyin)) != (-1) && c != '\n'
; ++n ) (&(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf
[number_to_move])[n] = (char) c; if ( c == '\n' ) (&(yy_buffer_stack
)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move])[n++] =
(char) c; if ( c == (-1) && ferror( yyin ) ) yy_fatal_error
( "input in flex scanner failed" ); (yy_n_chars) = n; } else {
(*__errno_location ())=0; while ( ((yy_n_chars) = fread((&
(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move
]), 1, (size_t) num_to_read, yyin))==0 && ferror(yyin
)) { if( (*__errno_location ()) != 4) { yy_fatal_error( "input in flex scanner failed"
); break; } (*__errno_location ())=0; clearerr(yyin); } }
;
2278
2279 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
2280 }
2281
2282 if ( (yy_n_chars) == 0 )
2283 {
2284 if ( number_to_move == YY_MORE_ADJ0 )
2285 {
2286 ret_val = EOB_ACT_END_OF_FILE1;
2287 yyrestart(yyin );
2288 }
2289
2290 else
2291 {
2292 ret_val = EOB_ACT_LAST_MATCH2;
2293 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buffer_status =
2294 YY_BUFFER_EOF_PENDING2;
2295 }
2296 }
2297
2298 else
2299 ret_val = EOB_ACT_CONTINUE_SCAN0;
2300
2301 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size) {
2302 /* Extend the array by 50%, plus the number we really need. */
2303 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2304 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf,new_size );
2305 if ( ! YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf )
2306 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" )yy_fatal_error( "out of dynamic memory in yy_get_next_buffer()"
)
;
2307 }
2308
2309 (yy_n_chars) += number_to_move;
2310 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR0;
2311 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR0;
2312
2313 (yytext_ptryytext) = &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[0];
2314
2315 return ret_val;
2316}
2317
2318/* yy_get_previous_state - get the state just before the EOB char was reached */
2319
2320 static yy_state_type yy_get_previous_state (void)
2321{
2322 register yy_state_type yy_current_state;
2323 register char *yy_cp;
2324
2325 yy_current_state = (yy_start);
2326 yy_current_state += YY_AT_BOL()((yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol);
2327
2328 for ( yy_cp = (yytext_ptryytext) + YY_MORE_ADJ0; yy_cp < (yy_c_buf_p); ++yy_cp )
2329 {
2330 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)((unsigned int) (unsigned char) *yy_cp)] : 1);
2331 if ( yy_accept[yy_current_state] )
2332 {
2333 (yy_last_accepting_state) = yy_current_state;
2334 (yy_last_accepting_cpos) = yy_cp;
2335 }
2336 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2337 {
2338 yy_current_state = (int) yy_def[yy_current_state];
2339 if ( yy_current_state >= 416 )
2340 yy_c = yy_meta[(unsigned int) yy_c];
2341 }
2342 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2343 }
2344
2345 return yy_current_state;
2346}
2347
2348/* yy_try_NUL_trans - try to make a transition on the NUL character
2349 *
2350 * synopsis
2351 * next_state = yy_try_NUL_trans( current_state );
2352 */
2353 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2354{
2355 register int yy_is_jam;
2356 register char *yy_cp = (yy_c_buf_p);
2357
2358 register YY_CHAR yy_c = 1;
2359 if ( yy_accept[yy_current_state] )
2360 {
2361 (yy_last_accepting_state) = yy_current_state;
2362 (yy_last_accepting_cpos) = yy_cp;
2363 }
2364 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2365 {
2366 yy_current_state = (int) yy_def[yy_current_state];
2367 if ( yy_current_state >= 416 )
2368 yy_c = yy_meta[(unsigned int) yy_c];
2369 }
2370 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2371 yy_is_jam = (yy_current_state == 415);
2372
2373 return yy_is_jam ? 0 : yy_current_state;
2374}
2375
2376 static void yyunput (int c, register char * yy_bp )
2377{
2378 register char *yy_cp;
2379
2380 yy_cp = (yy_c_buf_p);
2381
2382 /* undo effects of setting up yytext */
2383 *yy_cp = (yy_hold_char);
2384
2385 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf + 2 )
2386 { /* need to shift things up to make room */
2387 /* +2 for EOB chars. */
2388 register int number_to_move = (yy_n_chars) + 2;
2389 register char *dest = &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[
2390 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size + 2];
2391 register char *source =
2392 &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[number_to_move];
2393
2394 while ( source > YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf )
2395 *--dest = *--source;
2396
2397 yy_cp += (int) (dest - source);
2398 yy_bp += (int) (dest - source);
2399 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars =
2400 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_size;
2401
2402 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf + 2 )
2403 YY_FATAL_ERROR( "flex scanner push-back overflow" )yy_fatal_error( "flex scanner push-back overflow" );
2404 }
2405
2406 *--yy_cp = (char) c;
2407
2408 if ( c == '\n' ){
2409 --yylineno;
2410 }
2411
2412 (yytext_ptryytext) = yy_bp;
2413 (yy_hold_char) = *yy_cp;
2414 (yy_c_buf_p) = yy_cp;
2415}
2416
2417#ifndef YY_NO_INPUT
2418#ifdef __cplusplus199711L
2419 static int yyinput (void)
2420#else
2421 static int input (void)
2422#endif
2423
2424{
2425 int c;
2426
2427 *(yy_c_buf_p) = (yy_hold_char);
2428
2429 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR0 )
2430 {
2431 /* yy_c_buf_p now points to the character we want to return.
2432 * If this occurs *before* the EOB characters, then it's a
2433 * valid NUL; if not, then we've hit the end of the buffer.
2434 */
2435 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_ch_buf[(yy_n_chars)] )
2436 /* This was really a NUL. */
2437 *(yy_c_buf_p) = '\0';
2438
2439 else
2440 { /* need more input */
2441 int offset = (yy_c_buf_p) - (yytext_ptryytext);
2442 ++(yy_c_buf_p);
2443
2444 switch ( yy_get_next_buffer( ) )
2445 {
2446 case EOB_ACT_LAST_MATCH2:
2447 /* This happens because yy_g_n_b()
2448 * sees that we've accumulated a
2449 * token and flags that we need to
2450 * try matching the token before
2451 * proceeding. But for input(),
2452 * there's no matching to consider.
2453 * So convert the EOB_ACT_LAST_MATCH
2454 * to EOB_ACT_END_OF_FILE.
2455 */
2456
2457 /* Reset buffer status. */
2458 yyrestart(yyin );
2459
2460 /*FALLTHROUGH*/
2461
2462 case EOB_ACT_END_OF_FILE1:
2463 {
2464 if ( yywrap( )1 )
2465 return EOF(-1);
2466
2467 if ( ! (yy_did_buffer_switch_on_eof) )
2468 YY_NEW_FILEyyrestart(yyin );
2469#ifdef __cplusplus199711L
2470 return yyinput();
2471#else
2472 return input();
2473#endif
2474 }
2475
2476 case EOB_ACT_CONTINUE_SCAN0:
2477 (yy_c_buf_p) = (yytext_ptryytext) + offset;
2478 break;
2479 }
2480 }
2481 }
2482
2483 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2484 *(yy_c_buf_p) = '\0'; /* preserve yytext */
2485 (yy_hold_char) = *++(yy_c_buf_p);
2486
2487 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol = (c == '\n');
2488 if ( YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_at_bol )
2489
2490 yylineno++;
2491;
2492
2493 return c;
2494}
2495#endif /* ifndef YY_NO_INPUT */
2496
2497/** Immediately switch to a different input stream.
2498 * @param input_file A readable stream.
2499 *
2500 * @note This function does not reset the start condition to @c INITIAL .
2501 */
2502 void yyrestart (FILE * input_file )
2503{
2504
2505 if ( ! YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
){
2506 yyensure_buffer_stack ();
2507 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] =
2508 yy_create_buffer(yyin,YY_BUF_SIZE16384 );
2509 }
2510
2511 yy_init_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
,input_file );
2512 yy_load_buffer_state( );
2513}
2514
2515/** Switch to a different input buffer.
2516 * @param new_buffer The new input buffer.
2517 *
2518 */
2519 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2520{
2521
2522 /* TODO. We should be able to replace this entire function body
2523 * with
2524 * yypop_buffer_state();
2525 * yypush_buffer_state(new_buffer);
2526 */
2527 yyensure_buffer_stack ();
2528 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
== new_buffer )
2529 return;
2530
2531 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
2532 {
2533 /* Flush out information for old buffer. */
2534 *(yy_c_buf_p) = (yy_hold_char);
2535 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos = (yy_c_buf_p);
2536 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
2537 }
2538
2539 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = new_buffer;
2540 yy_load_buffer_state( );
2541
2542 /* We don't actually know whether we did this switch during
2543 * EOF (yywrap()) processing, but the only time this flag
2544 * is looked at is after yywrap() is called, so it's safe
2545 * to go ahead and always set it.
2546 */
2547 (yy_did_buffer_switch_on_eof) = 1;
2548}
2549
2550static void yy_load_buffer_state (void)
2551{
2552 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars;
2553 (yytext_ptryytext) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos;
2554 yyin = YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_input_file;
2555 (yy_hold_char) = *(yy_c_buf_p);
2556}
2557
2558/** Allocate and initialize an input buffer state.
2559 * @param file A readable stream.
2560 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2561 *
2562 * @return the allocated buffer state.
2563 */
2564 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2565{
2566 YY_BUFFER_STATE b;
2567
2568 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2569 if ( ! b )
2570 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" )yy_fatal_error( "out of dynamic memory in yy_create_buffer()"
)
;
2571
2572 b->yy_buf_size = size;
2573
2574 /* yy_ch_buf has to be 2 characters longer than the size given because
2575 * we need to put in 2 end-of-buffer characters.
2576 */
2577 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2578 if ( ! b->yy_ch_buf )
2579 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" )yy_fatal_error( "out of dynamic memory in yy_create_buffer()"
)
;
2580
2581 b->yy_is_our_buffer = 1;
2582
2583 yy_init_buffer(b,file );
2584
2585 return b;
2586}
2587
2588/** Destroy the buffer.
2589 * @param b a buffer created with yy_create_buffer()
2590 *
2591 */
2592 void yy_delete_buffer (YY_BUFFER_STATE b )
2593{
2594
2595 if ( ! b )
2596 return;
2597
2598 if ( b == YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
) /* Not sure if we should pop here. */
2599 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = (YY_BUFFER_STATE) 0;
2600
2601 if ( b->yy_is_our_buffer )
2602 yyfree((void *) b->yy_ch_buf );
2603
2604 yyfree((void *) b );
2605}
2606
2607/* Initializes or reinitializes a buffer.
2608 * This function is sometimes called more than once on the same buffer,
2609 * such as during a yyrestart() or at EOF.
2610 */
2611 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2612
2613{
2614 int oerrno = errno(*__errno_location ());
2615
2616 yy_flush_buffer(b );
1
Calling 'yy_flush_buffer'
4
Returning from 'yy_flush_buffer'
2617
2618 b->yy_input_file = file;
5
Access to field 'yy_input_file' results in a dereference of a null pointer (loaded from variable 'b')
2619 b->yy_fill_buffer = 1;
2620
2621 /* If b is the current buffer, then yy_init_buffer was _probably_
2622 * called from yyrestart() or through yy_get_next_buffer.
2623 * In that case, we don't want to reset the lineno or column.
2624 */
2625 if (b != YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
){
2626 b->yy_bs_lineno = 1;
2627 b->yy_bs_column = 0;
2628 }
2629
2630 b->yy_is_interactive = 0;
2631
2632 errno(*__errno_location ()) = oerrno;
2633}
2634
2635/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2636 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2637 *
2638 */
2639 void yy_flush_buffer (YY_BUFFER_STATE b )
2640{
2641 if ( ! b )
2
Assuming pointer value is null
3
Taking true branch
2642 return;
2643
2644 b->yy_n_chars = 0;
2645
2646 /* We always need two end-of-buffer characters. The first causes
2647 * a transition to the end-of-buffer state. The second causes
2648 * a jam in that state.
2649 */
2650 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR0;
2651 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR0;
2652
2653 b->yy_buf_pos = &b->yy_ch_buf[0];
2654
2655 b->yy_at_bol = 1;
2656 b->yy_buffer_status = YY_BUFFER_NEW0;
2657
2658 if ( b == YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
2659 yy_load_buffer_state( );
2660}
2661
2662/** Pushes the new state onto the stack. The new state becomes
2663 * the current state. This function will allocate the stack
2664 * if necessary.
2665 * @param new_buffer The new state.
2666 *
2667 */
2668void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2669{
2670 if (new_buffer == NULL__null)
2671 return;
2672
2673 yyensure_buffer_stack();
2674
2675 /* This block is copied from yy_switch_to_buffer. */
2676 if ( YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
2677 {
2678 /* Flush out information for old buffer. */
2679 *(yy_c_buf_p) = (yy_hold_char);
2680 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_buf_pos = (yy_c_buf_p);
2681 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)]->yy_n_chars = (yy_n_chars);
2682 }
2683
2684 /* Only push if top exists. Otherwise, replace top. */
2685 if (YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
2686 (yy_buffer_stack_top)++;
2687 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = new_buffer;
2688
2689 /* copied from yy_switch_to_buffer. */
2690 yy_load_buffer_state( );
2691 (yy_did_buffer_switch_on_eof) = 1;
2692}
2693
2694/** Removes and deletes the top of the stack, if present.
2695 * The next element becomes the new top.
2696 *
2697 */
2698void yypop_buffer_state (void)
2699{
2700 if (!YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
)
2701 return;
2702
2703 yy_delete_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
);
2704 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = NULL__null;
2705 if ((yy_buffer_stack_top) > 0)
2706 --(yy_buffer_stack_top);
2707
2708 if (YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
) {
2709 yy_load_buffer_state( );
2710 (yy_did_buffer_switch_on_eof) = 1;
2711 }
2712}
2713
2714/* Allocates the stack if it does not exist.
2715 * Guarantees space for at least one push.
2716 */
2717static void yyensure_buffer_stack (void)
2718{
2719 int num_to_alloc;
2720
2721 if (!(yy_buffer_stack)) {
2722
2723 /* First allocation is just for 2 elements, since we don't know if this
2724 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2725 * immediate realloc on the next call.
2726 */
2727 num_to_alloc = 1;
2728 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2729 (num_to_alloc * sizeof(struct yy_buffer_state*)
2730 );
2731 if ( ! (yy_buffer_stack) )
2732 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" )yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()"
)
;
2733
2734 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2735
2736 (yy_buffer_stack_max) = num_to_alloc;
2737 (yy_buffer_stack_top) = 0;
2738 return;
2739 }
2740
2741 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2742
2743 /* Increase the buffer to prepare for a possible push. */
2744 int grow_size = 8 /* arbitrary grow size */;
2745
2746 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2747 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2748 ((yy_buffer_stack),
2749 num_to_alloc * sizeof(struct yy_buffer_state*)
2750 );
2751 if ( ! (yy_buffer_stack) )
2752 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" )yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()"
)
;
2753
2754 /* zero only the new slots.*/
2755 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2756 (yy_buffer_stack_max) = num_to_alloc;
2757 }
2758}
2759
2760/** Setup the input buffer state to scan directly from a user-specified character buffer.
2761 * @param base the character buffer
2762 * @param size the size in bytes of the character buffer
2763 *
2764 * @return the newly allocated buffer state object.
2765 */
2766YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
2767{
2768 YY_BUFFER_STATE b;
2769
2770 if ( size < 2 ||
2771 base[size-2] != YY_END_OF_BUFFER_CHAR0 ||
2772 base[size-1] != YY_END_OF_BUFFER_CHAR0 )
2773 /* They forgot to leave room for the EOB's. */
2774 return 0;
2775
2776 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2777 if ( ! b )
2778 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" )yy_fatal_error( "out of dynamic memory in yy_scan_buffer()" );
2779
2780 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2781 b->yy_buf_pos = b->yy_ch_buf = base;
2782 b->yy_is_our_buffer = 0;
2783 b->yy_input_file = 0;
2784 b->yy_n_chars = b->yy_buf_size;
2785 b->yy_is_interactive = 0;
2786 b->yy_at_bol = 1;
2787 b->yy_fill_buffer = 0;
2788 b->yy_buffer_status = YY_BUFFER_NEW0;
2789
2790 yy_switch_to_buffer(b );
2791
2792 return b;
2793}
2794
2795/** Setup the input buffer state to scan a string. The next call to yylex() will
2796 * scan from a @e copy of @a str.
2797 * @param yystr a NUL-terminated string to scan
2798 *
2799 * @return the newly allocated buffer state object.
2800 * @note If you want to scan bytes that may contain NUL values, then use
2801 * yy_scan_bytes() instead.
2802 */
2803YY_BUFFER_STATE yy_scan_string (yyconstconst char * yystr )
2804{
2805
2806 return yy_scan_bytes(yystr,strlen(yystr) );
2807}
2808
2809/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2810 * scan from a @e copy of @a bytes.
2811 * @param bytes the byte buffer to scan
2812 * @param len the number of bytes in the buffer pointed to by @a bytes.
2813 *
2814 * @return the newly allocated buffer state object.
2815 */
2816YY_BUFFER_STATE yy_scan_bytes (yyconstconst char * yybytes, int _yybytes_len )
2817{
2818 YY_BUFFER_STATE b;
2819 char *buf;
2820 yy_size_t n;
2821 int i;
2822
2823 /* Get memory for full buffer, including space for trailing EOB's. */
2824 n = _yybytes_len + 2;
2825 buf = (char *) yyalloc(n );
2826 if ( ! buf )
2827 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" )yy_fatal_error( "out of dynamic memory in yy_scan_bytes()" );
2828
2829 for ( i = 0; i < _yybytes_len; ++i )
2830 buf[i] = yybytes[i];
2831
2832 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR0;
2833
2834 b = yy_scan_buffer(buf,n );
2835 if ( ! b )
2836 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" )yy_fatal_error( "bad buffer in yy_scan_bytes()" );
2837
2838 /* It's okay to grow etc. this buffer, and we should throw it
2839 * away when we're done.
2840 */
2841 b->yy_is_our_buffer = 1;
2842
2843 return b;
2844}
2845
2846#ifndef YY_EXIT_FAILURE2
2847#define YY_EXIT_FAILURE2 2
2848#endif
2849
2850static void yy_fatal_error (yyconstconst char* msg )
2851{
2852 (void) fprintf( stderrstderr, "%s\n", msg );
2853 exit( YY_EXIT_FAILURE2 );
2854}
2855
2856/* Redefine yyless() so it works in section 3 code. */
2857
2858#undef yyless
2859#define yyless(n)do { int yyless_macro_arg = (n); do { int yyl; for ( yyl = yyless_macro_arg
; yyl < yyleng; ++yyl ) if ( yytext[yyl] == '\n' ) --yylineno
; }while(0); yytext[yyleng] = (yy_hold_char); (yy_c_buf_p) = yytext
+ yyless_macro_arg; (yy_hold_char) = *(yy_c_buf_p); *(yy_c_buf_p
) = '\0'; yyleng = yyless_macro_arg; } while ( 0 )
\
2860 do \
2861 { \
2862 /* Undo effects of setting up yytext. */ \
2863 int yyless_macro_arg = (n); \
2864 YY_LESS_LINENO(yyless_macro_arg)do { int yyl; for ( yyl = yyless_macro_arg; yyl < yyleng; ++
yyl ) if ( yytext[yyl] == '\n' ) --yylineno; }while(0)
;\
2865 yytext[yyleng] = (yy_hold_char); \
2866 (yy_c_buf_p) = yytext + yyless_macro_arg; \
2867 (yy_hold_char) = *(yy_c_buf_p); \
2868 *(yy_c_buf_p) = '\0'; \
2869 yyleng = yyless_macro_arg; \
2870 } \
2871 while ( 0 )
2872
2873/* Accessor methods (get/set functions) to struct members. */
2874
2875/** Get the current line number.
2876 *
2877 */
2878int yyget_lineno (void)
2879{
2880
2881 return yylineno;
2882}
2883
2884/** Get the input stream.
2885 *
2886 */
2887FILE *yyget_in (void)
2888{
2889 return yyin;
2890}
2891
2892/** Get the output stream.
2893 *
2894 */
2895FILE *yyget_out (void)
2896{
2897 return yyout;
2898}
2899
2900/** Get the length of the current token.
2901 *
2902 */
2903int yyget_leng (void)
2904{
2905 return yyleng;
2906}
2907
2908/** Get the current token.
2909 *
2910 */
2911
2912char *yyget_text (void)
2913{
2914 return yytext;
2915}
2916
2917/** Set the current line number.
2918 * @param line_number
2919 *
2920 */
2921void yyset_lineno (int line_number )
2922{
2923
2924 yylineno = line_number;
2925}
2926
2927/** Set the input stream. This does not discard the current
2928 * input buffer.
2929 * @param in_str A readable stream.
2930 *
2931 * @see yy_switch_to_buffer
2932 */
2933void yyset_in (FILE * in_str )
2934{
2935 yyin = in_str ;
2936}
2937
2938void yyset_out (FILE * out_str )
2939{
2940 yyout = out_str ;
2941}
2942
2943int yyget_debug (void)
2944{
2945 return yy_flex_debug;
2946}
2947
2948void yyset_debug (int bdebug )
2949{
2950 yy_flex_debug = bdebug ;
2951}
2952
2953static int yy_init_globals (void)
2954{
2955 /* Initialization is the same as for the non-reentrant scanner.
2956 * This function is called from yylex_destroy(), so don't allocate here.
2957 */
2958
2959 /* We do not touch yylineno unless the option is enabled. */
2960 yylineno = 1;
2961
2962 (yy_buffer_stack) = 0;
2963 (yy_buffer_stack_top) = 0;
2964 (yy_buffer_stack_max) = 0;
2965 (yy_c_buf_p) = (char *) 0;
2966 (yy_init) = 0;
2967 (yy_start) = 0;
2968
2969/* Defined in main.c */
2970#ifdef YY_STDINIT
2971 yyin = stdinstdin;
2972 yyout = stdoutstdout;
2973#else
2974 yyin = (FILE *) 0;
2975 yyout = (FILE *) 0;
2976#endif
2977
2978 /* For future reference: Set errno on error, since we are called by
2979 * yylex_init()
2980 */
2981 return 0;
2982}
2983
2984/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2985int yylex_destroy (void)
2986{
2987
2988 /* Pop the buffer stack, destroying each element. */
2989 while(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
){
2990 yy_delete_buffer(YY_CURRENT_BUFFER( (yy_buffer_stack) ? (yy_buffer_stack)[(yy_buffer_stack_top)
] : __null)
);
2991 YY_CURRENT_BUFFER_LVALUE(yy_buffer_stack)[(yy_buffer_stack_top)] = NULL__null;
2992 yypop_buffer_state();
2993 }
2994
2995 /* Destroy the stack itself. */
2996 yyfree((yy_buffer_stack) );
2997 (yy_buffer_stack) = NULL__null;
2998
2999 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3000 * yylex() is called, initialization will occur. */
3001 yy_init_globals( );
3002
3003 return 0;
3004}
3005
3006/*
3007 * Internal utility routines.
3008 */
3009
3010#ifndef yytext_ptryytext
3011static void yy_flex_strncpy (char* s1, yyconstconst char * s2, int n )
3012{
3013 register int i;
3014 for ( i = 0; i < n; ++i )
3015 s1[i] = s2[i];
3016}
3017#endif
3018
3019#ifdef YY_NEED_STRLEN
3020static int yy_flex_strlen (yyconstconst char * s )
3021{
3022 register int n;
3023 for ( n = 0; s[n]; ++n )
3024 ;
3025
3026 return n;
3027}
3028#endif
3029
3030void *yyalloc (yy_size_t size )
3031{
3032 return (void *) malloc( size );
3033}
3034
3035void *yyrealloc (void * ptr, yy_size_t size )
3036{
3037 /* The cast to (char *) in the following accommodates both
3038 * implementations that use char* generic pointers, and those
3039 * that use void* generic pointers. It works with the latter
3040 * because both ANSI C and C++ allow castless assignment from
3041 * any pointer type to void*, and deal with argument conversions
3042 * as though doing an assignment.
3043 */
3044 return (void *) realloc( (char *) ptr, size );
3045}
3046
3047void yyfree (void * ptr )
3048{
3049 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3050}
3051
3052#define YYTABLES_NAME"yytables" "yytables"
3053
3054#line 530 "/usr/local/src/libreoffice/idlc/source/scanner.l"
3055
3056
3057