My Project
OSParseosrl.cpp
Go to the documentation of this file.
1#line 2 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
2
3#line 4 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
4
5#define YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9#define FLEX_SCANNER
10#define YY_FLEX_MAJOR_VERSION 2
11#define YY_FLEX_MINOR_VERSION 5
12#define YY_FLEX_SUBMINOR_VERSION 34
13#if YY_FLEX_SUBMINOR_VERSION > 0
14#define FLEX_BETA
15#endif
16
17/* First, we deal with platform-specific or compiler-specific issues. */
18
19/* begin standard C headers. */
20#include <stdio.h>
21#include <string.h>
22#include <errno.h>
23#include <stdlib.h>
24
25/* end standard C headers. */
26
27/* flex integer type definitions */
28
29#ifndef FLEXINT_H
30#define FLEXINT_H
31
32/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
34#if 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
61#define INT8_MIN (-128)
62#endif
63#ifndef INT16_MIN
64#define INT16_MIN (-32767-1)
65#endif
66#ifndef INT32_MIN
67#define INT32_MIN (-2147483647-1)
68#endif
69#ifndef INT8_MAX
70#define INT8_MAX (127)
71#endif
72#ifndef INT16_MAX
73#define INT16_MAX (32767)
74#endif
75#ifndef INT32_MAX
76#define INT32_MAX (2147483647)
77#endif
78#ifndef UINT8_MAX
79#define UINT8_MAX (255U)
80#endif
81#ifndef UINT16_MAX
82#define UINT16_MAX (65535U)
83#endif
84#ifndef UINT32_MAX
85#define UINT32_MAX (4294967295U)
86#endif
87
88#endif /* ! FLEXINT_H */
89
90#ifdef __cplusplus
91
92/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else /* ! __cplusplus */
96
97/* C99 requires __STDC__ to be defined as 1. */
98#if defined (__STDC__)
99
100#define YY_USE_CONST
101
102#endif /* defined (__STDC__) */
103#endif /* ! __cplusplus */
104
105#ifdef YY_USE_CONST
106#define yyconst const
107#else
108#define yyconst
109#endif
110
111/* Returned upon end-of-file. */
112#define YY_NULL 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)
120
121/* An opaque pointer. */
122#ifndef YY_TYPEDEF_YY_SCANNER_T
123#define YY_TYPEDEF_YY_SCANNER_T
124typedef void* yyscan_t;
125#endif
126
127/* For convenience, these vars (plus the bison vars far below)
128 are macros in the reentrant scanner. */
129#define yyin yyg->yyin_r
130#define yyout yyg->yyout_r
131#define yyextra yyg->yyextra_r
132#define yyleng yyg->yyleng_r
133#define yytext yyg->yytext_r
134#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136#define yy_flex_debug yyg->yy_flex_debug_r
137
138/* Enter a start condition. This macro really ought to take a parameter,
139 * but we do it the disgusting crufty way forced on us by the ()-less
140 * definition of BEGIN.
141 */
142#define BEGIN yyg->yy_start = 1 + 2 *
143
144/* Translate the current start state into a value that can be later handed
145 * to BEGIN to return to the state. The YYSTATE alias is for lex
146 * compatibility.
147 */
148#define YY_START ((yyg->yy_start - 1) / 2)
149#define YYSTATE YY_START
150
151/* Action number for EOF rule of a given start state. */
152#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
153
154/* Special action meaning "start processing a new file". */
155#define YY_NEW_FILE osrlrestart(yyin ,yyscanner )
156
157#define YY_END_OF_BUFFER_CHAR 0
158
159/* Size of default input buffer. */
160#ifndef YY_BUF_SIZE
161#define YY_BUF_SIZE 16384
162#endif
163
164/* The state buf must be large enough to hold one state per character in the main buffer.
165 */
166#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
167
168#ifndef YY_TYPEDEF_YY_BUFFER_STATE
169#define YY_TYPEDEF_YY_BUFFER_STATE
171#endif
172
173#define EOB_ACT_CONTINUE_SCAN 0
174#define EOB_ACT_END_OF_FILE 1
175#define EOB_ACT_LAST_MATCH 2
176
177 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
178 * access to the local variable yy_act. Since yyless() is a macro, it would break
179 * existing scanners that call yyless() from OUTSIDE osrllex.
180 * One obvious solution it to make yy_act a global. I tried that, and saw
181 * a 5% performance hit in a non-yylineno scanner, because yy_act is
182 * normally declared as a register variable-- so it is not worth it.
183 */
184 #define YY_LESS_LINENO(n) \
185 do { \
186 int yyl;\
187 for ( yyl = n; yyl < yyleng; ++yyl )\
188 if ( yytext[yyl] == '\n' )\
189 --yylineno;\
190 }while(0)
191
192/* Return all but the first "n" matched characters back to the input stream. */
193#define yyless(n) \
194 do \
195 { \
196 /* Undo effects of setting up yytext. */ \
197 int yyless_macro_arg = (n); \
198 YY_LESS_LINENO(yyless_macro_arg);\
199 *yy_cp = yyg->yy_hold_char; \
200 YY_RESTORE_YY_MORE_OFFSET \
201 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
202 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
203 } \
204 while ( 0 )
205
206#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
207
208/* The following is because we cannot portably get our hands on size_t
209 * (without autoconf's help, which isn't available because we want
210 * flex-generated scanners to compile on their own).
211 * Given that the standard has decreed that size_t exists since 1989,
212 * I guess we can afford to depend on it. Manoj.
213 */
214
215#ifndef YY_TYPEDEF_YY_SIZE_T
216#define YY_TYPEDEF_YY_SIZE_T
217typedef size_t yy_size_t;
218#endif
219
220#ifndef YY_STRUCT_YY_BUFFER_STATE
221#define YY_STRUCT_YY_BUFFER_STATE
222struct yy_buffer_state
223 {
224 FILE *yy_input_file;
225
226 char *yy_ch_buf; /* input buffer */
227 char *yy_buf_pos; /* current position in input buffer */
228
229 /* Size of input buffer in bytes, not including room for EOB
230 * characters.
231 */
233
234 /* Number of characters read into yy_ch_buf, not including EOB
235 * characters.
236 */
237 int yy_n_chars;
238
239 /* Whether we "own" the buffer - i.e., we know we created it,
240 * and can realloc() it to grow it, and should free() it to
241 * delete it.
242 */
244
245 /* Whether this is an "interactive" input source; if so, and
246 * if we're using stdio for input, then we want to use getc()
247 * instead of fread(), to make sure we stop fetching input after
248 * each newline.
249 */
251
252 /* Whether we're considered to be at the beginning of a line.
253 * If so, '^' rules will be active on the next match, otherwise
254 * not.
255 */
256 int yy_at_bol;
257
258 int yy_bs_lineno;
259 int yy_bs_column;
261 /* Whether to try to fill the input buffer when we reach the
262 * end of it.
263 */
264 int yy_fill_buffer;
265
267
268#define YY_BUFFER_NEW 0
269#define YY_BUFFER_NORMAL 1
270 /* When an EOF's been seen but there's still some text to process
271 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272 * shouldn't try reading from the input source any more. We might
273 * still have a bunch of tokens to match, though, because of
274 * possible backing-up.
275 *
276 * When we actually see the EOF, we change the status to "new"
277 * (via osrlrestart()), so that the user can continue scanning by
278 * just pointing yyin at a new input file.
279 */
280#define YY_BUFFER_EOF_PENDING 2
281
282 };
283#endif /* !YY_STRUCT_YY_BUFFER_STATE */
284
285/* We provide macros for accessing buffer states in case in the
286 * future we want to put the buffer states in a more general
287 * "scanner state".
288 *
289 * Returns the top of the stack, or NULL.
290 */
291#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
292 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
293 : NULL)
294
295/* Same as previous macro, but useful when we know that the buffer stack is not
296 * NULL or when we need an lvalue. For internal use only.
297 */
298#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
299
300void osrlrestart (FILE *input_file ,yyscan_t yyscanner );
301void osrl_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
302YY_BUFFER_STATE osrl_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
303void osrl_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
304void osrl_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
305void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
306void osrlpop_buffer_state (yyscan_t yyscanner );
307
308static void osrlensure_buffer_stack (yyscan_t yyscanner );
309static void osrl_load_buffer_state (yyscan_t yyscanner );
310static void osrl_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
311
312#define YY_FLUSH_BUFFER osrl_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
313
314YY_BUFFER_STATE osrl_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
315YY_BUFFER_STATE osrl_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
316YY_BUFFER_STATE osrl_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
317
318void *osrlalloc (yy_size_t ,yyscan_t yyscanner );
319void *osrlrealloc (void *,yy_size_t ,yyscan_t yyscanner );
320void osrlfree (void * ,yyscan_t yyscanner );
321
322#define yy_new_buffer osrl_create_buffer
323
324#define yy_set_interactive(is_interactive) \
325 { \
326 if ( ! YY_CURRENT_BUFFER ){ \
327 osrlensure_buffer_stack (yyscanner); \
328 YY_CURRENT_BUFFER_LVALUE = \
329 osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
330 } \
331 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
332 }
333
334#define yy_set_bol(at_bol) \
335 { \
336 if ( ! YY_CURRENT_BUFFER ){\
337 osrlensure_buffer_stack (yyscanner); \
338 YY_CURRENT_BUFFER_LVALUE = \
339 osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
340 } \
341 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
342 }
343
344#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
345
346/* Begin user sect3 */
347
348#define osrlwrap(n) 1
349#define YY_SKIP_YYWRAP
350
351typedef unsigned char YY_CHAR;
352
353typedef int yy_state_type;
354
355#define yytext_ptr yytext_r
356
358static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
359static int yy_get_next_buffer (yyscan_t yyscanner );
360static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
361
362/* Done after the current pattern has been matched and before the
363 * corresponding action - sets up yytext.
364 */
365#define YY_DO_BEFORE_ACTION \
366 yyg->yytext_ptr = yy_bp; \
367 yyleng = (size_t) (yy_cp - yy_bp); \
368 yyg->yy_hold_char = *yy_cp; \
369 *yy_cp = '\0'; \
370 yyg->yy_c_buf_p = yy_cp;
371
372#define YY_NUM_RULES 120
373#define YY_END_OF_BUFFER 121
374/* This struct is not used in this scanner,
375 but its presence is necessary. */
376struct yy_trans_info
377 {
380 };
382 { 0,
383 1, 1, 118, 118, 116, 116, 117, 117, 0, 0,
384 0, 0, 0, 0, 0, 0, 121, 119, 1, 1,
385 2, 107, 2, 119, 6, 119, 5, 119, 4, 107,
386 118, 120, 116, 117, 109, 110, 109, 113, 114, 113,
387 1, 0, 6, 0, 5, 0, 4, 0, 0, 0,
388 0, 0, 0, 0, 0, 1, 107, 6, 5, 107,
389 107, 107, 107, 107, 107, 107, 107, 3, 6, 107,
390 7, 0, 0, 112, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 4, 107, 118, 116, 117, 0,
392 115, 6, 0, 0, 0, 0, 0, 0, 0, 0,
393
394 0, 0, 0, 0, 0, 0, 0, 0, 107, 107,
395 107, 107, 107, 107, 107, 107, 107, 0, 6, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 6, 111, 6, 0,
399 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 107, 107, 107, 107, 107, 107,
401 107, 107, 107, 108, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403 95, 0, 0, 0, 0, 0, 91, 0, 0, 0,
404
405 0, 0, 0, 0, 0, 0, 87, 0, 0, 0,
406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
407 0, 0, 107, 107, 107, 107, 107, 107, 107, 107,
408 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 0, 0, 54, 0, 0, 0, 0, 0, 0,
411 0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
412 0, 0, 70, 0, 0, 0, 19, 0, 0, 0,
413 0, 0, 0, 0, 0, 0, 107, 107, 107, 107,
414 107, 107, 107, 107, 0, 96, 0, 0, 0, 0,
415
416 0, 55, 0, 0, 0, 92, 0, 0, 0, 0,
417 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
418 0, 0, 0, 0, 54, 0, 0, 0, 0, 46,
419 45, 99, 0, 0, 0, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
421 23, 24, 0, 0, 0, 27, 28, 0, 35, 36,
422 0, 0, 107, 107, 107, 107, 107, 96, 0, 0,
423 0, 0, 55, 0, 0, 92, 0, 0, 0, 47,
424 0, 0, 0, 0, 0, 0, 71, 0, 0, 88,
425 0, 0, 0, 0, 0, 0, 0, 65, 0, 0,
426
427 0, 0, 0, 81, 0, 105, 0, 83, 0, 0,
428 0, 0, 0, 0, 0, 0, 21, 22, 0, 0,
429 0, 25, 26, 0, 33, 34, 0, 39, 40, 107,
430 107, 107, 107, 0, 0, 0, 0, 0, 67, 0,
431 0, 0, 47, 0, 100, 0, 0, 0, 0, 71,
432 0, 0, 0, 0, 0, 0, 0, 104, 65, 66,
433 0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 37, 38, 107,
435 107, 107, 107, 0, 0, 0, 0, 67, 0, 0,
436 0, 100, 0, 0, 0, 82, 0, 51, 0, 0,
437
438 84, 0, 0, 0, 0, 48, 0, 0, 0, 0,
439 72, 0, 0, 0, 52, 0, 0, 79, 50, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 0, 107, 107, 107, 107, 107, 107,
442 107, 107, 0, 0, 0, 49, 0, 0, 0, 74,
443 0, 0, 0, 53, 0, 0, 0, 82, 51, 0,
444 84, 0, 0, 0, 48, 0, 0, 106, 72, 73,
445 0, 0, 52, 0, 0, 0, 89, 0, 0, 0,
446 0, 31, 32, 0, 0, 0, 0, 0, 0, 0,
447 0, 107, 107, 107, 107, 107, 107, 107, 107, 0,
448
449 0, 49, 0, 0, 74, 0, 0, 53, 0, 0,
450 0, 80, 0, 0, 0, 85, 0, 0, 93, 0,
451 0, 0, 0, 0, 0, 0, 0, 29, 30, 0,
452 0, 0, 0, 0, 0, 0, 0, 107, 107, 107,
453 107, 107, 107, 107, 107, 0, 0, 0, 0, 0,
454 0, 0, 0, 80, 0, 0, 90, 97, 0, 0,
455 0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
456 0, 0, 18, 0, 0, 17, 0, 0, 0, 0,
457 0, 16, 0, 0, 107, 107, 107, 107, 107, 107,
458 107, 107, 107, 107, 107, 0, 0, 86, 0, 0,
459
460 0, 94, 0, 0, 0, 58, 0, 90, 0, 0,
461 77, 0, 0, 59, 101, 56, 57, 0, 0, 0,
462 0, 43, 44, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 107, 107, 107, 107, 107, 107, 107,
464 0, 98, 86, 0, 0, 94, 0, 0, 61, 58,
465 0, 75, 0, 0, 62, 102, 59, 60, 0, 0,
466 0, 41, 42, 18, 0, 17, 0, 0, 0, 0,
467 0, 0, 8, 16, 0, 0, 107, 107, 107, 107,
468 107, 107, 107, 107, 107, 98, 0, 0, 64, 0,
469 78, 61, 0, 103, 62, 63, 0, 0, 0, 0,
470
471 0, 0, 0, 0, 0, 0, 107, 107, 107, 107,
472 107, 107, 107, 107, 0, 76, 64, 78, 0, 0,
473 0, 0, 0, 0, 0, 0, 8, 0, 0, 107,
474 107, 107, 107, 107, 107, 107, 107, 76, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 0, 107, 107,
476 107, 107, 107, 107, 107, 107, 0, 68, 0, 0,
477 0, 0, 0, 0, 9, 0, 10, 0, 107, 107,
478 107, 107, 107, 107, 107, 107, 0, 0, 0, 11,
479 0, 0, 0, 0, 0, 0, 20, 107, 107, 107,
480 107, 107, 107, 0, 69, 0, 12, 0, 0, 0,
481
482 0, 9, 10, 0, 107, 107, 107, 107, 69, 0,
483 11, 0, 0, 0, 20, 107, 107, 107, 12, 0,
484 0, 0, 107, 107, 107, 0, 0, 0, 107, 107,
485 107, 0, 0, 0, 107, 107, 107, 0, 0, 0,
486 107, 107, 107, 0, 0, 0, 107, 107, 107, 0,
487 0, 0, 107, 107, 107, 0, 0, 0, 107, 107,
488 107, 0, 0, 0, 13, 107, 107, 107, 0, 0,
489 14, 0, 107, 107, 0, 15, 0, 13, 107, 0,
490 14, 15, 0
491 } ;
492
494 { 0,
495 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
496 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
498 1, 5, 6, 7, 8, 8, 1, 1, 9, 1,
499 1, 8, 10, 1, 11, 12, 13, 14, 14, 14,
500 14, 14, 14, 14, 14, 14, 14, 8, 1, 15,
501 16, 17, 18, 8, 8, 8, 19, 20, 21, 22,
502 8, 8, 23, 8, 8, 8, 8, 24, 25, 8,
503 8, 26, 27, 28, 29, 30, 8, 8, 8, 8,
504 1, 1, 1, 1, 8, 1, 31, 32, 33, 34,
505
506 35, 36, 37, 38, 39, 40, 8, 41, 42, 43,
507 44, 45, 8, 46, 47, 48, 49, 50, 8, 51,
508 52, 53, 1, 1, 1, 1, 1, 1, 1, 1,
509 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
510 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
512 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
513 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
514 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
516
517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
518 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
520 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
521 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
522 1, 1, 1, 1, 1
523 } ;
524
526 { 0,
527 1, 2, 2, 2, 2, 1, 3, 2, 4, 1,
528 2, 2, 2, 2, 2, 1, 5, 1, 2, 2,
529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
532 2, 2, 2
533 } ;
534
536 { 0,
537 0, 23, 2562, 2561, 2570, 2569, 2566, 2565, 0, 0,
538 0, 0, 39, 40, 41, 42, 2564, 2669, 59, 108,
539 2556, 64, 2551, 8, 157, 2542, 7, 187, 50, 64,
540 0, 2669, 0, 0, 2669, 2669, 2547, 2669, 2669, 2539,
541 0, 35, 66, 2538, 82, 225, 124, 2530, 2521, 2512,
542 2503, 34, 17, 2493, 2504, 274, 70, 0, 83, 119,
543 118, 131, 141, 146, 159, 175, 177, 2669, 0, 193,
544 2669, 2522, 292, 2669, 2488, 2482, 2494, 2485, 2469, 2477,
545 137, 171, 2472, 2478, 132, 195, 0, 0, 0, 2491,
546 2669, 211, 104, 2464, 2461, 2469, 201, 2463, 2479, 2452,
547
548 2443, 2437, 2444, 2443, 2438, 2436, 2441, 2437, 226, 236,
549 249, 285, 295, 298, 300, 327, 329, 2463, 280, 2465,
550 2429, 2418, 2431, 2421, 2418, 2426, 154, 204, 2417, 2423,
551 2407, 2405, 2389, 2384, 2389, 2373, 2379, 2368, 2361, 2366,
552 2357, 2354, 2363, 2345, 2349, 142, 332, 2669, 2376, 2332,
553 2343, 2322, 2320, 2323, 2669, 2328, 2320, 239, 2316, 2317,
554 2311, 2302, 2288, 2273, 333, 338, 372, 337, 364, 366,
555 369, 370, 381, 2669, 2278, 2289, 2275, 2270, 2274, 2258,
556 2262, 2253, 2254, 2260, 2251, 2246, 2255, 2237, 2230, 249,
557 2221, 2226, 2228, 2209, 406, 2204, 2213, 2202, 2199, 2204,
558
559 2187, 2187, 2187, 2185, 51, 2183, 2179, 2169, 410, 2168,
560 2164, 65, 2175, 2164, 432, 417, 436, 2174, 2160, 440,
561 455, 2159, 432, 433, 478, 512, 441, 449, 546, 580,
562 451, 485, 2151, 2151, 2119, 501, 2118, 505, 2113, 2105,
563 2110, 2094, 2092, 2090, 2089, 109, 2084, 539, 2079, 2095,
564 2050, 2063, 569, 300, 2073, 2061, 2055, 2038, 585, 2033,
565 2039, 2002, 2000, 2013, 532, 2003, 2010, 2013, 2003, 2012,
566 1998, 1989, 2669, 1980, 1983, 2012, 493, 550, 518, 1968,
567 1964, 595, 556, 601, 605, 616, 595, 556, 638, 610,
568 612, 672, 706, 740, 632, 659, 1963, 1980, 1962, 1971,
569
570 663, 667, 1962, 1936, 679, 687, 1933, 1922, 695, 1916,
571 1906, 1894, 1884, 1897, 699, 1887, 1893, 721, 726, 1896,
572 1876, 1888, 1887, 1874, 730, 745, 1876, 1859, 1866, 761,
573 2669, 2669, 1853, 1846, 1837, 1840, 766, 1863, 1829, 1818,
574 1828, 1798, 778, 1803, 1788, 1774, 1772, 620, 782, 1812,
575 1800, 1779, 1761, 1734, 1754, 1748, 1745, 1747, 1743, 1736,
576 786, 648, 778, 732, 779, 780, 823, 804, 1689, 1703,
577 1702, 1684, 814, 818, 1689, 827, 1677, 1680, 838, 843,
578 847, 1685, 1678, 1652, 1656, 857, 863, 1652, 1632, 867,
579 1646, 1646, 1634, 1632, 1638, 873, 1642, 877, 1623, 1615,
580
581 1598, 1609, 1596, 2669, 891, 2669, 1616, 2669, 1591, 1588,
582 895, 1582, 1581, 1563, 1550, 712, 2669, 2669, 1558, 1557,
583 882, 2669, 2669, 900, 2669, 2669, 1570, 1564, 1561, 890,
584 892, 738, 896, 1538, 1526, 1505, 1512, 916, 932, 1486,
585 1476, 1461, 941, 945, 949, 1476, 1461, 953, 961, 969,
586 1473, 977, 1452, 1448, 1427, 981, 1438, 2669, 985, 2669,
587 997, 1422, 1429, 1001, 1414, 1017, 1024, 1413, 1419, 1415,
588 1033, 1037, 1041, 1410, 1028, 1395, 1060, 2669, 2669, 1068,
589 1060, 1090, 1062, 1395, 1367, 1083, 1380, 1075, 1088, 1361,
590 1375, 1119, 1124, 1357, 1128, 1132, 1147, 1152, 1356, 1156,
591
592 1163, 1363, 1327, 1332, 1167, 1172, 1294, 1317, 1176, 1297,
593 1183, 1278, 1258, 1192, 1197, 1274, 1263, 2669, 1201, 1246,
594 1234, 1250, 1208, 1242, 1246, 1212, 1137, 1213, 1203, 98,
595 1190, 1194, 1196, 1185, 1227, 1205, 1221, 1223, 1224, 1225,
596 1249, 1240, 1175, 1173, 1219, 1248, 1159, 1168, 1274, 1283,
597 1156, 1142, 1290, 1294, 1152, 1156, 1298, 1306, 1314, 1127,
598 1318, 1115, 1099, 1096, 1322, 1107, 1088, 2669, 1326, 2669,
599 1065, 1069, 1330, 1065, 1083, 1057, 2669, 1067, 1054, 1071,
600 1071, 1061, 1055, 1017, 1016, 1012, 995, 991, 989, 978,
601 990, 1269, 1322, 1323, 1324, 1325, 1326, 1334, 1350, 969,
602
603 969, 1347, 980, 978, 1370, 960, 958, 1374, 954, 968,
604 1384, 1388, 933, 1392, 929, 2669, 927, 927, 2669, 924,
605 932, 1400, 915, 918, 924, 1416, 1405, 2669, 2669, 1420,
606 1424, 1439, 887, 867, 880, 1443, 866, 1481, 1515, 1459,
607 1416, 1417, 1418, 1465, 1444, 854, 1486, 840, 841, 1496,
608 829, 828, 1505, 1521, 811, 1530, 1535, 2669, 789, 777,
609 768, 1539, 1555, 793, 1561, 761, 763, 1575, 1579, 1583,
610 1546, 1598, 358, 749, 1602, 395, 763, 730, 724, 713,
611 1606, 472, 726, 716, 1621, 704, 1598, 1625, 1540, 1599,
612 1617, 1622, 1645, 1639, 1641, 1679, 1683, 1699, 691, 683,
613
614 1703, 1707, 670, 1711, 1719, 1727, 664, 1735, 658, 1739,
615 2669, 1744, 678, 1760, 2669, 1764, 2669, 663, 1768, 1774,
616 683, 678, 670, 674, 612, 644, 598, 550, 605, 1778,
617 634, 596, 563, 1621, 1739, 1765, 1775, 1795, 1787, 1788,
618 1801, 1822, 1826, 546, 1830, 1841, 1846, 1850, 1854, 1866,
619 561, 2669, 1870, 562, 1874, 2669, 1888, 2669, 528, 1892,
620 1588, 2669, 2669, 734, 537, 831, 525, 513, 514, 508,
621 494, 1896, 851, 921, 490, 495, 1889, 1867, 1890, 1894,
622 1900, 1902, 1936, 1922, 1930, 1945, 1951, 1956, 1967, 1972,
623 1976, 1982, 481, 2669, 1988, 2669, 480, 473, 461, 458,
624
625 460, 447, 448, 481, 443, 450, 1974, 1980, 1982, 1983,
626 1985, 1984, 1986, 2012, 2034, 2038, 2050, 2054, 427, 420,
627 418, 416, 403, 414, 393, 384, 927, 381, 391, 2046,
628 2047, 2048, 2049, 2051, 2050, 2052, 2077, 2072, 377, 374,
629 358, 347, 344, 356, 351, 2098, 2102, 330, 2094, 2096,
630 2099, 2095, 2105, 2119, 2146, 2118, 336, 2669, 322, 2152,
631 319, 309, 324, 2156, 936, 2171, 990, 2175, 2149, 2195,
632 2167, 2168, 2169, 2203, 2218, 2222, 2226, 2242, 2250, 1010,
633 324, 310, 297, 324, 314, 2257, 1046, 2272, 2276, 2268,
634 2269, 2250, 2291, 2307, 2311, 2323, 1111, 307, 271, 248,
635
636 261, 1264, 1351, 289, 2327, 2319, 2320, 2150, 2342, 288,
637 1379, 239, 246, 254, 1475, 2321, 2235, 2336, 1525, 220,
638 240, 225, 2338, 2346, 2347, 228, 216, 186, 2362, 2363,
639 2364, 187, 166, 148, 2366, 2375, 2379, 140, 130, 124,
640 2388, 2391, 2392, 115, 122, 102, 2394, 2403, 2404, 97,
641 76, 69, 2416, 2420, 2428, 58, 42, 2443, 2439, 2444,
642 2467, 20, 2490, 2494, 1661, 2468, 2514, 2518, 2522, 2537,
643 1688, 53, 2541, 2546, 2564, 1692, 52, 1810, 2568, 4,
644 1834, 1859, 2669, 2615, 2620, 2625, 2630, 2635, 2640, 2645,
645 2649, 2654, 2658, 2663
646
647 } ;
648
650 { 0,
651 984, 984, 985, 985, 986, 986, 987, 987, 988, 988,
652 988, 988, 989, 989, 990, 990, 983, 983, 983, 991,
653 983, 991, 983, 983, 991, 983, 25, 983, 983, 25,
654 992, 983, 993, 994, 983, 983, 983, 983, 983, 983,
655 19, 983, 983, 983, 983, 983, 983, 983, 983, 983,
656 983, 983, 983, 983, 983, 991, 25, 25, 25, 25,
657 25, 25, 25, 25, 25, 25, 25, 983, 25, 25,
658 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
659 983, 983, 983, 983, 983, 25, 992, 993, 994, 983,
660 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
661
662 983, 983, 983, 983, 983, 983, 983, 983, 25, 25,
663 25, 25, 25, 25, 25, 25, 25, 983, 25, 983,
664 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
665 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
666 983, 983, 983, 983, 983, 983, 25, 983, 983, 983,
667 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
668 983, 983, 983, 983, 25, 25, 25, 25, 25, 25,
669 25, 25, 25, 983, 983, 983, 983, 983, 983, 983,
670 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
671 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
672
673 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
674 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
675 983, 983, 25, 25, 25, 25, 25, 25, 25, 25,
676 25, 983, 983, 983, 983, 983, 983, 983, 983, 983,
677 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
678 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
679 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
680 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
681 983, 983, 983, 983, 983, 983, 25, 25, 25, 25,
682 25, 25, 25, 25, 983, 983, 983, 983, 983, 983,
683
684 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
685 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
686 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
687 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
688 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
689 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
690 983, 983, 25, 25, 25, 25, 25, 983, 983, 983,
691 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
692 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
693 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
694
695 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
696 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
697 983, 983, 983, 983, 983, 983, 983, 983, 983, 25,
698 25, 25, 25, 983, 983, 983, 983, 983, 983, 983,
699 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
700 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
701 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
702 983, 983, 983, 983, 983, 983, 983, 983, 983, 25,
703 25, 25, 25, 983, 983, 983, 983, 983, 983, 983,
704 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
705
706 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
707 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
708 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
709 983, 983, 983, 983, 25, 25, 25, 25, 25, 25,
710 25, 25, 983, 983, 983, 983, 983, 983, 983, 983,
711 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
712 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
713 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
714 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
715 983, 25, 25, 25, 25, 25, 25, 25, 25, 983,
716
717 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
718 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
719 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
720 983, 983, 983, 983, 983, 983, 983, 25, 25, 639,
721 25, 25, 25, 639, 25, 983, 983, 983, 983, 983,
722 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
723 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
724 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
725 983, 983, 983, 983, 639, 639, 25, 639, 25, 25,
726 25, 25, 639, 25, 25, 983, 983, 983, 983, 983,
727
728 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
729 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
730 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
731 983, 983, 983, 25, 25, 482, 25, 639, 25, 25,
732 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
733 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
734 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
735 983, 983, 983, 983, 983, 983, 25, 25, 25, 25,
736 25, 25, 639, 25, 25, 983, 983, 983, 983, 983,
737 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
738
739 983, 983, 983, 983, 983, 983, 25, 25, 25, 25,
740 25, 25, 25, 25, 983, 983, 983, 983, 983, 983,
741 983, 983, 983, 983, 983, 983, 983, 983, 983, 25,
742 25, 25, 25, 25, 25, 25, 25, 983, 983, 983,
743 983, 983, 983, 983, 983, 983, 983, 983, 25, 25,
744 25, 25, 25, 639, 639, 25, 983, 983, 983, 983,
745 983, 983, 983, 983, 983, 983, 983, 983, 25, 639,
746 25, 25, 25, 639, 639, 639, 983, 983, 983, 983,
747 983, 983, 983, 983, 983, 983, 983, 639, 639, 25,
748 25, 25, 639, 983, 983, 983, 983, 983, 983, 983,
749
750 983, 983, 983, 983, 639, 25, 25, 25, 983, 983,
751 983, 983, 983, 983, 983, 25, 25, 25, 983, 983,
752 983, 983, 25, 25, 25, 983, 983, 983, 25, 25,
753 25, 983, 983, 983, 25, 25, 25, 983, 983, 983,
754 25, 25, 25, 983, 983, 983, 25, 25, 25, 983,
755 983, 983, 25, 25, 25, 983, 983, 983, 25, 25,
756 639, 983, 983, 983, 983, 25, 639, 639, 983, 983,
757 983, 983, 639, 639, 983, 983, 983, 983, 639, 983,
758 983, 983, 0, 983, 983, 983, 983, 983, 983, 983,
759 983, 983, 983, 983
760
761 } ;
762
764 { 0,
765 18, 19, 20, 19, 20, 18, 21, 982, 23, 18,
766 24, 25, 26, 27, 28, 18, 29, 18, 58, 43,
767 59, 45, 30, 18, 19, 20, 19, 20, 18, 21,
768 48, 23, 18, 24, 25, 26, 27, 28, 18, 29,
769 18, 36, 36, 39, 39, 30, 43, 105, 45, 37,
770 37, 85, 85, 85, 85, 981, 978, 48, 40, 40,
771 41, 41, 41, 41, 103, 983, 969, 983, 106, 42,
772 43, 44, 45, 46, 983, 47, 983, 57, 983, 92,
773 983, 48, 104, 57, 57, 265, 93, 86, 963, 266,
774 57, 49, 50, 43, 58, 45, 59, 51, 57, 273,
775
776 93, 52, 93, 266, 57, 962, 53, 54, 55, 41,
777 56, 41, 56, 118, 118, 958, 93, 149, 42, 58,
778 44, 59, 46, 957, 47, 85, 85, 85, 85, 586,
779 60, 57, 57, 85, 85, 85, 85, 956, 57, 57,
780 61, 62, 86, 315, 57, 587, 63, 316, 109, 952,
781 64, 57, 57, 57, 57, 65, 66, 67, 983, 57,
782 983, 57, 951, 950, 946, 110, 57, 983, 137, 983,
783 69, 983, 57, 983, 111, 57, 112, 70, 945, 57,
784 57, 138, 206, 139, 140, 181, 944, 207, 57, 114,
785 57, 70, 72, 57, 113, 57, 940, 57, 182, 73,
786
787 183, 184, 118, 118, 74, 141, 119, 117, 57, 57,
788 115, 57, 939, 57, 142, 57, 147, 116, 143, 75,
789 76, 938, 144, 77, 92, 78, 79, 57, 80, 57,
790 81, 93, 934, 82, 83, 153, 84, 73, 185, 57,
791 215, 215, 215, 215, 142, 93, 57, 186, 143, 57,
792 933, 187, 144, 932, 216, 188, 57, 75, 76, 928,
793 57, 77, 57, 94, 95, 927, 96, 926, 81, 57,
794 57, 97, 98, 165, 84, 41, 56, 41, 56, 922,
795 921, 920, 166, 57, 42, 58, 44, 59, 46, 247,
796 47, 919, 915, 119, 248, 914, 60, 913, 57, 167,
797
798 57, 325, 325, 325, 325, 57, 61, 62, 57, 912,
799 911, 57, 63, 57, 57, 57, 64, 903, 57, 57,
800 57, 65, 66, 67, 121, 122, 168, 902, 123, 57,
801 124, 125, 57, 126, 57, 127, 169, 901, 128, 129,
802 57, 130, 57, 170, 171, 57, 57, 57, 900, 57,
803 57, 57, 57, 57, 899, 883, 882, 57, 57, 724,
804 724, 57, 724, 57, 881, 172, 57, 223, 878, 173,
805 224, 226, 57, 215, 225, 215, 225, 57, 877, 57,
806 868, 863, 57, 57, 57, 57, 57, 216, 862, 57,
807 57, 861, 57, 860, 57, 227, 726, 726, 57, 726,
808
809 57, 57, 228, 229, 57, 859, 57, 253, 253, 253,
810 253, 253, 253, 253, 253, 57, 858, 230, 276, 276,
811 857, 276, 254, 277, 848, 277, 254, 847, 255, 231,
812 846, 845, 270, 215, 215, 215, 215, 278, 278, 278,
813 278, 282, 282, 282, 282, 57, 57, 216, 844, 843,
814 842, 279, 57, 57, 57, 283, 284, 284, 284, 284,
815 841, 57, 57, 840, 57, 839, 57, 57, 287, 57,
816 285, 57, 829, 731, 731, 290, 731, 828, 288, 215,
817 225, 215, 225, 291, 827, 294, 295, 295, 295, 295,
818 826, 57, 825, 216, 349, 349, 349, 349, 57, 824,
819
820 823, 296, 301, 301, 301, 301, 305, 305, 305, 305,
821 822, 821, 57, 278, 289, 278, 289, 302, 820, 350,
822 350, 306, 350, 303, 351, 57, 352, 279, 819, 806,
823 805, 297, 57, 337, 337, 337, 337, 803, 802, 307,
824 318, 318, 318, 318, 338, 801, 57, 282, 292, 282,
825 292, 278, 278, 278, 278, 319, 800, 355, 355, 57,
826 355, 283, 356, 799, 357, 279, 57, 798, 768, 57,
827 253, 253, 253, 253, 769, 797, 57, 320, 794, 770,
828 57, 284, 293, 284, 293, 254, 330, 330, 330, 330,
829 57, 793, 787, 57, 364, 285, 282, 282, 282, 282,
830
831 57, 331, 284, 284, 284, 284, 358, 358, 57, 358,
832 283, 359, 776, 360, 57, 57, 285, 361, 361, 361,
833 361, 276, 276, 57, 276, 57, 277, 775, 277, 57,
834 57, 362, 57, 295, 295, 295, 295, 774, 363, 278,
835 289, 278, 289, 771, 57, 767, 57, 766, 296, 427,
836 427, 57, 427, 279, 428, 365, 429, 765, 57, 366,
837 368, 368, 368, 368, 301, 301, 301, 301, 373, 373,
838 373, 373, 57, 282, 292, 282, 292, 764, 763, 302,
839 305, 305, 305, 305, 762, 57, 761, 283, 376, 376,
840 376, 376, 57, 759, 756, 306, 379, 379, 379, 379,
841
842 386, 386, 386, 386, 752, 751, 57, 284, 293, 284,
843 293, 380, 747, 350, 350, 387, 350, 745, 351, 57,
844 352, 285, 318, 318, 318, 318, 57, 390, 390, 390,
845 390, 325, 325, 325, 325, 724, 724, 319, 724, 744,
846 57, 361, 367, 361, 367, 57, 396, 396, 396, 396,
847 57, 57, 57, 57, 733, 362, 732, 397, 57, 730,
848 57, 398, 330, 330, 330, 330, 57, 337, 337, 337,
849 337, 729, 57, 482, 57, 728, 431, 331, 338, 411,
850 411, 411, 411, 349, 349, 349, 349, 361, 361, 361,
851 361, 57, 57, 57, 398, 727, 725, 719, 57, 57,
852
853 57, 362, 718, 432, 433, 368, 368, 368, 368, 715,
854 711, 710, 57, 57, 57, 373, 373, 373, 373, 438,
855 438, 438, 438, 430, 361, 367, 361, 367, 376, 376,
856 376, 376, 726, 726, 439, 726, 57, 709, 362, 379,
857 379, 379, 379, 57, 443, 443, 443, 443, 444, 444,
858 444, 444, 804, 804, 380, 804, 707, 57, 386, 386,
859 386, 386, 704, 445, 450, 450, 450, 450, 390, 390,
860 390, 390, 703, 387, 396, 396, 396, 396, 459, 459,
861 459, 459, 700, 355, 355, 397, 355, 699, 356, 398,
862 357, 460, 466, 466, 466, 466, 411, 411, 411, 411,
863
864 696, 358, 358, 57, 358, 57, 359, 467, 360, 57,
865 57, 398, 57, 684, 680, 679, 57, 438, 438, 438,
866 438, 678, 731, 731, 57, 731, 57, 483, 804, 804,
867 57, 804, 439, 488, 488, 488, 488, 884, 884, 481,
868 884, 480, 443, 443, 443, 443, 444, 444, 444, 444,
869 492, 492, 492, 492, 495, 495, 495, 495, 668, 667,
870 666, 445, 497, 497, 497, 497, 662, 661, 660, 496,
871 450, 450, 450, 450, 659, 658, 655, 498, 500, 500,
872 500, 500, 505, 505, 505, 505, 459, 459, 459, 459,
873 653, 885, 885, 501, 885, 652, 651, 506, 509, 509,
874
875 509, 509, 514, 514, 514, 514, 650, 507, 649, 510,
876 648, 898, 898, 511, 898, 647, 646, 515, 466, 466,
877 466, 466, 637, 636, 516, 519, 519, 519, 519, 517,
878 635, 634, 633, 467, 523, 523, 523, 523, 514, 514,
879 514, 514, 526, 526, 526, 526, 529, 904, 904, 511,
880 904, 632, 530, 515, 531, 532, 527, 533, 631, 630,
881 524, 427, 427, 629, 427, 525, 428, 628, 429, 526,
882 535, 526, 535, 57, 627, 57, 488, 488, 488, 488,
883 57, 57, 57, 527, 545, 545, 545, 545, 57, 549,
884 549, 549, 549, 626, 57, 625, 57, 624, 536, 546,
885
886 623, 542, 57, 57, 550, 622, 621, 620, 537, 547,
887 57, 619, 910, 910, 538, 910, 539, 540, 618, 541,
888 492, 492, 492, 492, 57, 553, 553, 553, 553, 495,
889 495, 495, 495, 558, 558, 558, 558, 617, 581, 581,
890 554, 581, 616, 582, 496, 583, 615, 555, 497, 497,
891 497, 497, 556, 559, 559, 559, 559, 500, 500, 500,
892 500, 614, 613, 498, 561, 561, 561, 561, 505, 505,
893 505, 505, 501, 565, 565, 565, 565, 509, 509, 509,
894 509, 610, 609, 506, 569, 569, 569, 569, 510, 607,
895 606, 604, 511, 514, 514, 514, 514, 570, 573, 573,
896
897 573, 573, 519, 519, 519, 519, 603, 601, 515, 523,
898 523, 523, 523, 526, 526, 526, 526, 600, 57, 591,
899 545, 545, 545, 545, 511, 57, 590, 527, 526, 535,
900 526, 535, 589, 588, 57, 546, 57, 57, 57, 57,
901 57, 57, 527, 57, 57, 57, 585, 57, 592, 602,
902 602, 602, 602, 57, 594, 57, 584, 57, 57, 57,
903 57, 57, 57, 597, 593, 884, 884, 596, 884, 57,
904 595, 580, 579, 578, 599, 549, 549, 549, 549, 598,
905 577, 576, 57, 57, 605, 605, 605, 605, 575, 57,
906 550, 553, 553, 553, 553, 608, 608, 608, 608, 611,
907
908 611, 611, 611, 57, 574, 572, 554, 558, 558, 558,
909 558, 638, 571, 568, 612, 559, 559, 559, 559, 561,
910 561, 561, 561, 565, 565, 565, 565, 569, 569, 569,
911 569, 573, 573, 573, 573, 57, 57, 57, 57, 57,
912 567, 566, 57, 57, 57, 57, 57, 57, 602, 602,
913 602, 602, 885, 885, 57, 885, 57, 57, 57, 57,
914 57, 641, 640, 57, 639, 642, 564, 643, 57, 563,
915 57, 605, 605, 605, 605, 608, 608, 608, 608, 644,
916 898, 898, 645, 898, 57, 611, 611, 611, 611, 654,
917 654, 654, 654, 656, 656, 656, 656, 562, 560, 557,
918
919 612, 663, 663, 663, 663, 552, 581, 581, 657, 581,
920 551, 582, 664, 583, 548, 544, 665, 669, 669, 669,
921 669, 670, 670, 670, 670, 672, 672, 672, 672, 57,
922 57, 57, 665, 543, 534, 671, 57, 57, 57, 673,
923 675, 675, 675, 675, 681, 681, 681, 681, 528, 522,
924 690, 57, 692, 521, 676, 520, 518, 57, 682, 513,
925 675, 688, 675, 688, 57, 691, 681, 693, 681, 693,
926 674, 512, 508, 677, 676, 504, 904, 904, 57, 904,
927 682, 683, 670, 685, 670, 685, 503, 697, 697, 697,
928 697, 695, 502, 689, 57, 499, 671, 701, 701, 701,
929
930 701, 57, 698, 694, 494, 57, 705, 705, 705, 705,
931 493, 57, 702, 491, 490, 57, 672, 686, 672, 686,
932 489, 706, 654, 654, 654, 654, 910, 910, 57, 910,
933 673, 656, 656, 656, 656, 57, 708, 708, 708, 708,
934 712, 712, 712, 712, 487, 486, 657, 721, 721, 57,
935 721, 713, 722, 57, 723, 714, 663, 663, 663, 663,
936 57, 687, 716, 716, 716, 716, 485, 664, 484, 479,
937 478, 665, 735, 477, 57, 717, 720, 720, 720, 720,
938 669, 669, 669, 669, 670, 670, 670, 670, 476, 721,
939 721, 714, 721, 475, 722, 665, 723, 474, 671, 672,
940
941 672, 672, 672, 675, 675, 675, 675, 681, 681, 681,
942 681, 57, 57, 673, 473, 472, 471, 676, 57, 57,
943 470, 682, 670, 685, 670, 685, 675, 688, 675, 688,
944 57, 469, 57, 57, 57, 57, 671, 57, 468, 465,
945 676, 57, 57, 464, 736, 734, 681, 693, 681, 693,
946 463, 57, 57, 462, 57, 57, 57, 461, 458, 57,
947 682, 57, 972, 972, 737, 972, 777, 57, 738, 739,
948 457, 57, 456, 57, 455, 57, 454, 453, 452, 740,
949 741, 741, 741, 741, 697, 697, 697, 697, 451, 977,
950 977, 57, 977, 980, 980, 742, 980, 449, 448, 698,
951
952 743, 743, 743, 743, 701, 701, 701, 701, 746, 746,
953 746, 746, 748, 748, 748, 748, 447, 446, 442, 702,
954 705, 705, 705, 705, 441, 440, 437, 749, 750, 750,
955 750, 750, 436, 435, 434, 706, 708, 708, 708, 708,
956 753, 753, 753, 753, 426, 712, 712, 712, 712, 425,
957 424, 754, 57, 423, 422, 755, 713, 421, 420, 57,
958 714, 757, 757, 757, 757, 716, 716, 716, 716, 760,
959 760, 760, 760, 57, 758, 720, 720, 720, 720, 772,
960 772, 772, 772, 779, 755, 419, 778, 418, 57, 780,
961 714, 57, 57, 773, 781, 57, 772, 783, 772, 783,
962
963 57, 57, 741, 741, 741, 741, 417, 57, 57, 57,
964 773, 972, 972, 782, 972, 416, 415, 742, 784, 414,
965 413, 57, 57, 786, 786, 786, 786, 743, 743, 743,
966 743, 788, 788, 788, 788, 977, 977, 785, 977, 412,
967 410, 57, 746, 746, 746, 746, 789, 790, 790, 790,
968 790, 748, 748, 748, 748, 792, 792, 792, 792, 409,
969 980, 980, 791, 980, 408, 407, 749, 750, 750, 750,
970 750, 753, 753, 753, 753, 795, 795, 795, 795, 406,
971 57, 405, 754, 404, 403, 402, 755, 57, 796, 757,
972 757, 757, 757, 760, 760, 760, 760, 772, 772, 772,
973
974 772, 57, 57, 57, 401, 808, 400, 57, 755, 57,
975 57, 773, 399, 57, 57, 57, 395, 394, 393, 807,
976 57, 392, 57, 57, 57, 810, 391, 389, 57, 388,
977 811, 385, 384, 809, 57, 57, 57, 772, 783, 772,
978 783, 383, 57, 57, 382, 812, 786, 786, 786, 786,
979 57, 773, 815, 815, 815, 815, 57, 788, 788, 788,
980 788, 381, 813, 378, 814, 377, 375, 816, 817, 817,
981 817, 817, 789, 790, 790, 790, 790, 818, 818, 818,
982 818, 374, 57, 792, 792, 792, 792, 57, 791, 795,
983 795, 795, 795, 57, 57, 57, 57, 57, 57, 57,
984
985 57, 372, 57, 57, 57, 57, 57, 371, 57, 370,
986 369, 354, 830, 353, 57, 348, 57, 57, 57, 57,
987 836, 347, 833, 346, 832, 57, 835, 345, 344, 831,
988 834, 343, 57, 342, 837, 815, 815, 815, 815, 838,
989 838, 838, 838, 341, 340, 339, 57, 336, 335, 334,
990 816, 817, 817, 817, 817, 818, 818, 818, 818, 57,
991 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
992 57, 57, 57, 838, 838, 838, 838, 333, 332, 329,
993 57, 850, 57, 852, 57, 57, 57, 328, 849, 853,
994 57, 327, 326, 324, 851, 323, 854, 57, 855, 864,
995
996 864, 864, 864, 866, 866, 866, 866, 57, 57, 57,
997 856, 57, 57, 865, 57, 57, 57, 867, 57, 57,
998 864, 874, 864, 874, 322, 57, 321, 872, 57, 57,
999 57, 57, 317, 57, 865, 873, 314, 313, 57, 57,
1000 312, 869, 870, 311, 310, 309, 871, 866, 875, 866,
1001 875, 308, 57, 879, 879, 879, 879, 864, 864, 864,
1002 864, 867, 57, 57, 304, 57, 300, 880, 876, 57,
1003 57, 865, 866, 866, 866, 866, 886, 886, 886, 886,
1004 57, 57, 57, 57, 918, 299, 867, 57, 57, 57,
1005 887, 298, 57, 286, 281, 888, 879, 889, 879, 889,
1006
1007 892, 57, 57, 57, 864, 874, 864, 874, 280, 275,
1008 880, 274, 890, 272, 271, 891, 269, 268, 865, 866,
1009 875, 866, 875, 886, 893, 886, 893, 894, 894, 894,
1010 894, 267, 264, 867, 263, 262, 261, 887, 260, 259,
1011 258, 57, 895, 896, 896, 896, 896, 257, 57, 57,
1012 256, 879, 879, 879, 879, 57, 252, 897, 886, 886,
1013 886, 886, 251, 57, 57, 880, 250, 249, 57, 924,
1014 57, 246, 887, 896, 905, 896, 905, 879, 889, 879,
1015 889, 57, 57, 245, 57, 244, 243, 897, 57, 57,
1016 908, 880, 886, 893, 886, 893, 242, 241, 906, 240,
1017
1018 239, 238, 57, 57, 237, 236, 887, 907, 894, 894,
1019 894, 894, 909, 909, 909, 909, 235, 234, 57, 233,
1020 232, 222, 57, 895, 896, 896, 896, 896, 896, 905,
1021 896, 905, 57, 57, 57, 221, 220, 57, 897, 57,
1022 57, 57, 897, 909, 909, 909, 909, 219, 218, 57,
1023 217, 57, 214, 57, 57, 57, 57, 916, 57, 57,
1024 57, 925, 213, 923, 212, 211, 57, 57, 210, 917,
1025 57, 930, 57, 57, 209, 57, 57, 57, 208, 57,
1026 57, 931, 57, 57, 57, 929, 57, 935, 57, 149,
1027 205, 204, 57, 203, 202, 57, 57, 936, 57, 57,
1028
1029 941, 57, 201, 200, 57, 57, 199, 57, 57, 57,
1030 937, 57, 57, 57, 57, 198, 57, 57, 197, 196,
1031 195, 942, 57, 57, 57, 57, 57, 943, 57, 57,
1032 194, 193, 949, 57, 947, 192, 57, 57, 57, 948,
1033 57, 57, 953, 954, 964, 964, 964, 964, 57, 191,
1034 57, 955, 57, 190, 57, 189, 959, 57, 965, 57,
1035 180, 179, 57, 178, 57, 177, 176, 960, 964, 968,
1036 964, 968, 175, 57, 961, 174, 149, 164, 57, 163,
1037 162, 57, 965, 161, 160, 159, 966, 158, 57, 157,
1038 967, 970, 970, 970, 970, 964, 964, 964, 964, 156,
1039
1040 155, 154, 57, 152, 151, 971, 150, 148, 146, 965,
1041 145, 136, 135, 57, 973, 970, 974, 970, 974, 964,
1042 968, 964, 968, 975, 975, 975, 975, 134, 133, 971,
1043 132, 131, 120, 965, 108, 107, 102, 976, 970, 970,
1044 970, 970, 975, 979, 975, 979, 101, 970, 974, 970,
1045 974, 100, 971, 99, 71, 91, 976, 90, 71, 68,
1046 57, 971, 68, 983, 57, 975, 975, 975, 975, 975,
1047 979, 975, 979, 32, 32, 32, 32, 32, 32, 976,
1048 983, 983, 983, 976, 983, 983, 983, 57, 983, 983,
1049 983, 983, 57, 983, 983, 983, 983, 983, 983, 983,
1050
1051 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1052 983, 983, 983, 983, 57, 22, 22, 22, 22, 22,
1053 31, 31, 31, 31, 31, 33, 33, 33, 33, 33,
1054 34, 34, 34, 34, 34, 32, 32, 32, 32, 32,
1055 35, 35, 35, 35, 35, 38, 38, 38, 38, 38,
1056 57, 983, 983, 57, 87, 87, 87, 87, 88, 88,
1057 983, 88, 88, 89, 89, 89, 983, 89, 17, 983,
1058 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1059 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1060 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1061
1062 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1063 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1064 983, 983
1065 } ;
1066
1068 { 0,
1069 1, 1, 1, 1, 1, 1, 1, 980, 1, 1,
1070 1, 1, 1, 1, 1, 1, 1, 1, 27, 24,
1071 27, 24, 1, 2, 2, 2, 2, 2, 2, 2,
1072 24, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1073 2, 13, 14, 15, 16, 2, 42, 53, 42, 13,
1074 14, 29, 29, 29, 29, 977, 972, 42, 15, 16,
1075 19, 19, 19, 19, 52, 22, 962, 22, 53, 19,
1076 19, 19, 19, 19, 22, 19, 22, 30, 22, 43,
1077 22, 19, 52, 57, 30, 205, 43, 30, 957, 205,
1078 57, 19, 19, 45, 59, 45, 59, 19, 30, 212,
1079
1080 43, 19, 45, 212, 57, 956, 19, 19, 19, 20,
1081 20, 20, 20, 93, 93, 952, 45, 93, 20, 20,
1082 20, 20, 20, 951, 20, 47, 47, 47, 47, 530,
1083 20, 61, 60, 85, 85, 85, 85, 950, 61, 60,
1084 20, 20, 60, 246, 62, 530, 20, 246, 61, 946,
1085 20, 62, 61, 60, 63, 20, 20, 20, 25, 64,
1086 25, 63, 945, 944, 940, 62, 64, 25, 81, 25,
1087 25, 25, 65, 25, 63, 63, 64, 25, 939, 65,
1088 64, 81, 146, 81, 81, 127, 938, 146, 66, 65,
1089 67, 25, 28, 65, 64, 66, 934, 67, 127, 28,
1090
1091 127, 127, 70, 70, 28, 82, 70, 67, 86, 66,
1092 65, 67, 933, 70, 82, 86, 86, 66, 82, 28,
1093 28, 932, 82, 28, 92, 28, 28, 70, 28, 86,
1094 28, 92, 928, 28, 28, 97, 28, 46, 128, 109,
1095 158, 158, 158, 158, 97, 92, 109, 128, 97, 110,
1096 927, 128, 97, 926, 158, 128, 110, 46, 46, 922,
1097 109, 46, 111, 46, 46, 921, 46, 920, 46, 111,
1098 110, 46, 46, 109, 46, 56, 56, 56, 56, 914,
1099 913, 912, 110, 111, 56, 56, 56, 56, 56, 190,
1100 56, 910, 904, 119, 190, 901, 56, 900, 112, 111,
1101
1102 119, 254, 254, 254, 254, 112, 56, 56, 113, 899,
1103 898, 114, 56, 115, 119, 113, 56, 885, 114, 112,
1104 115, 56, 56, 56, 73, 73, 112, 884, 73, 113,
1105 73, 73, 114, 73, 115, 73, 113, 883, 73, 73,
1106 116, 73, 117, 114, 115, 147, 165, 116, 882, 117,
1107 168, 166, 147, 165, 881, 863, 862, 168, 166, 673,
1108 673, 116, 673, 117, 861, 116, 147, 165, 859, 117,
1109 166, 168, 166, 167, 167, 167, 167, 169, 857, 170,
1110 848, 845, 171, 172, 169, 167, 170, 167, 844, 171,
1111 172, 843, 167, 842, 173, 169, 676, 676, 169, 676,
1112
1113 170, 173, 170, 171, 172, 841, 167, 195, 195, 195,
1114 195, 209, 209, 209, 209, 173, 840, 172, 216, 216,
1115 839, 216, 195, 216, 829, 216, 209, 828, 195, 173,
1116 826, 825, 209, 215, 215, 215, 215, 217, 217, 217,
1117 217, 220, 220, 220, 220, 223, 224, 215, 824, 823,
1118 822, 217, 223, 224, 227, 220, 221, 221, 221, 221,
1119 821, 227, 228, 820, 231, 819, 223, 224, 223, 228,
1120 221, 231, 806, 682, 682, 227, 682, 805, 224, 225,
1121 225, 225, 225, 228, 804, 231, 232, 232, 232, 232,
1122 803, 225, 802, 225, 277, 277, 277, 277, 225, 801,
1123
1124 800, 232, 236, 236, 236, 236, 238, 238, 238, 238,
1125 799, 798, 225, 226, 226, 226, 226, 236, 797, 279,
1126 279, 238, 279, 236, 279, 226, 279, 226, 793, 776,
1127 775, 232, 226, 265, 265, 265, 265, 771, 770, 238,
1128 248, 248, 248, 248, 265, 769, 226, 229, 229, 229,
1129 229, 278, 278, 278, 278, 248, 768, 283, 283, 229,
1130 283, 229, 283, 767, 283, 278, 229, 765, 728, 288,
1131 253, 253, 253, 253, 728, 759, 288, 248, 754, 728,
1132 229, 230, 230, 230, 230, 253, 259, 259, 259, 259,
1133 288, 751, 744, 230, 288, 230, 282, 282, 282, 282,
1134
1135 230, 259, 284, 284, 284, 284, 285, 285, 287, 285,
1136 282, 285, 733, 285, 230, 287, 284, 286, 286, 286,
1137 286, 348, 348, 290, 348, 291, 348, 732, 348, 287,
1138 290, 286, 291, 295, 295, 295, 295, 731, 287, 289,
1139 289, 289, 289, 729, 290, 727, 291, 726, 295, 362,
1140 362, 289, 362, 289, 362, 290, 362, 725, 289, 291,
1141 296, 296, 296, 296, 301, 301, 301, 301, 302, 302,
1142 302, 302, 289, 292, 292, 292, 292, 724, 723, 301,
1143 305, 305, 305, 305, 722, 292, 721, 292, 306, 306,
1144 306, 306, 292, 718, 713, 305, 309, 309, 309, 309,
1145
1146 315, 315, 315, 315, 709, 707, 292, 293, 293, 293,
1147 293, 309, 703, 416, 416, 315, 416, 700, 416, 293,
1148 416, 293, 318, 318, 318, 318, 293, 319, 319, 319,
1149 319, 325, 325, 325, 325, 764, 764, 318, 764, 699,
1150 293, 294, 294, 294, 294, 364, 326, 326, 326, 326,
1151 686, 432, 364, 294, 684, 294, 683, 326, 432, 680,
1152 294, 326, 330, 330, 330, 330, 364, 337, 337, 337,
1153 337, 679, 432, 432, 294, 678, 364, 330, 337, 343,
1154 343, 343, 343, 349, 349, 349, 349, 361, 361, 361,
1155 361, 363, 365, 366, 343, 677, 674, 667, 363, 365,
1156
1157 366, 361, 666, 365, 366, 368, 368, 368, 368, 664,
1158 661, 660, 363, 365, 366, 373, 373, 373, 373, 374,
1159 374, 374, 374, 363, 367, 367, 367, 367, 376, 376,
1160 376, 376, 766, 766, 374, 766, 367, 659, 367, 379,
1161 379, 379, 379, 367, 380, 380, 380, 380, 381, 381,
1162 381, 381, 773, 773, 379, 773, 655, 367, 386, 386,
1163 386, 386, 652, 381, 387, 387, 387, 387, 390, 390,
1164 390, 390, 651, 386, 396, 396, 396, 396, 398, 398,
1165 398, 398, 649, 421, 421, 396, 421, 648, 421, 396,
1166 421, 398, 405, 405, 405, 405, 411, 411, 411, 411,
1167
1168 646, 424, 424, 430, 424, 431, 424, 405, 424, 433,
1169 430, 411, 431, 637, 635, 634, 433, 438, 438, 438,
1170 438, 633, 774, 774, 430, 774, 431, 433, 827, 827,
1171 433, 827, 438, 439, 439, 439, 439, 865, 865, 431,
1172 865, 430, 443, 443, 443, 443, 444, 444, 444, 444,
1173 445, 445, 445, 445, 448, 448, 448, 448, 625, 624,
1174 623, 444, 449, 449, 449, 449, 621, 620, 618, 448,
1175 450, 450, 450, 450, 617, 615, 613, 449, 452, 452,
1176 452, 452, 456, 456, 456, 456, 459, 459, 459, 459,
1177 610, 867, 867, 452, 867, 609, 607, 456, 461, 461,
1178
1179 461, 461, 464, 464, 464, 464, 606, 456, 604, 461,
1180 603, 880, 880, 461, 880, 601, 600, 464, 466, 466,
1181 466, 466, 591, 590, 464, 467, 467, 467, 467, 464,
1182 589, 588, 587, 466, 471, 471, 471, 471, 472, 472,
1183 472, 472, 473, 473, 473, 473, 475, 887, 887, 471,
1184 887, 586, 475, 472, 475, 475, 473, 475, 585, 584,
1185 472, 477, 477, 583, 477, 472, 477, 582, 477, 480,
1186 480, 480, 480, 481, 581, 483, 488, 488, 488, 488,
1187 481, 480, 483, 480, 486, 486, 486, 486, 480, 489,
1188 489, 489, 489, 580, 481, 579, 483, 578, 481, 486,
1189
1190 576, 483, 480, 482, 489, 575, 574, 572, 482, 486,
1191 482, 571, 897, 897, 482, 897, 482, 482, 567, 482,
1192 492, 492, 492, 492, 482, 493, 493, 493, 493, 495,
1193 495, 495, 495, 496, 496, 496, 496, 566, 527, 527,
1194 493, 527, 564, 527, 495, 527, 563, 493, 497, 497,
1195 497, 497, 493, 498, 498, 498, 498, 500, 500, 500,
1196 500, 562, 560, 497, 501, 501, 501, 501, 505, 505,
1197 505, 505, 500, 506, 506, 506, 506, 509, 509, 509,
1198 509, 556, 555, 505, 511, 511, 511, 511, 509, 552,
1199 551, 548, 509, 514, 514, 514, 514, 511, 515, 515,
1200
1201 515, 515, 519, 519, 519, 519, 547, 544, 514, 523,
1202 523, 523, 523, 526, 526, 526, 526, 543, 536, 534,
1203 545, 545, 545, 545, 523, 536, 533, 526, 535, 535,
1204 535, 535, 532, 531, 537, 545, 538, 539, 540, 536,
1205 535, 537, 535, 538, 539, 540, 529, 535, 536, 546,
1206 546, 546, 546, 542, 538, 537, 528, 538, 539, 540,
1207 542, 535, 541, 540, 537, 902, 902, 539, 902, 541,
1208 538, 525, 524, 522, 542, 549, 549, 549, 549, 541,
1209 521, 520, 592, 541, 550, 550, 550, 550, 517, 592,
1210 549, 553, 553, 553, 553, 554, 554, 554, 554, 557,
1211
1212 557, 557, 557, 592, 516, 513, 553, 558, 558, 558,
1213 558, 592, 512, 510, 557, 559, 559, 559, 559, 561,
1214 561, 561, 561, 565, 565, 565, 565, 569, 569, 569,
1215 569, 573, 573, 573, 573, 593, 594, 595, 596, 597,
1216 508, 507, 593, 594, 595, 596, 597, 598, 602, 602,
1217 602, 602, 903, 903, 598, 903, 593, 594, 595, 596,
1218 597, 595, 594, 599, 593, 596, 504, 597, 598, 503,
1219 599, 605, 605, 605, 605, 608, 608, 608, 608, 598,
1220 911, 911, 599, 911, 599, 611, 611, 611, 611, 612,
1221 612, 612, 612, 614, 614, 614, 614, 502, 499, 494,
1222
1223 611, 622, 622, 622, 622, 491, 627, 627, 614, 627,
1224 490, 627, 622, 627, 487, 485, 622, 626, 626, 626,
1225 626, 630, 630, 630, 630, 631, 631, 631, 631, 641,
1226 642, 643, 626, 484, 476, 630, 641, 642, 643, 631,
1227 632, 632, 632, 632, 636, 636, 636, 636, 474, 470,
1228 641, 642, 643, 469, 632, 468, 465, 645, 636, 463,
1229 640, 640, 640, 640, 645, 642, 644, 644, 644, 644,
1230 631, 462, 457, 632, 640, 455, 915, 915, 645, 915,
1231 644, 636, 638, 638, 638, 638, 454, 647, 647, 647,
1232 647, 645, 453, 640, 638, 451, 638, 650, 650, 650,
1233
1234 650, 638, 647, 644, 447, 640, 653, 653, 653, 653,
1235 446, 644, 650, 442, 441, 638, 639, 639, 639, 639,
1236 440, 653, 654, 654, 654, 654, 919, 919, 639, 919,
1237 639, 656, 656, 656, 656, 639, 657, 657, 657, 657,
1238 662, 662, 662, 662, 437, 436, 656, 671, 671, 639,
1239 671, 662, 671, 689, 671, 662, 663, 663, 663, 663,
1240 689, 639, 665, 665, 665, 665, 435, 663, 434, 429,
1241 428, 663, 689, 427, 689, 665, 668, 668, 668, 668,
1242 669, 669, 669, 669, 670, 670, 670, 670, 420, 761,
1243 761, 668, 761, 419, 761, 669, 761, 415, 670, 672,
1244
1245 672, 672, 672, 675, 675, 675, 675, 681, 681, 681,
1246 681, 687, 690, 672, 414, 413, 412, 675, 687, 690,
1247 410, 681, 685, 685, 685, 685, 688, 688, 688, 688,
1248 691, 409, 687, 690, 734, 692, 685, 691, 407, 403,
1249 688, 734, 692, 402, 690, 687, 693, 693, 693, 693,
1250 401, 691, 694, 400, 695, 734, 692, 399, 397, 694,
1251 693, 695, 965, 965, 691, 965, 734, 685, 692, 694,
1252 395, 688, 394, 694, 393, 695, 392, 391, 389, 695,
1253 696, 696, 696, 696, 697, 697, 697, 697, 388, 971,
1254 971, 693, 971, 976, 976, 696, 976, 385, 384, 697,
1255
1256 698, 698, 698, 698, 701, 701, 701, 701, 702, 702,
1257 702, 702, 704, 704, 704, 704, 383, 382, 378, 701,
1258 705, 705, 705, 705, 377, 375, 372, 704, 706, 706,
1259 706, 706, 371, 370, 369, 705, 708, 708, 708, 708,
1260 710, 710, 710, 710, 360, 712, 712, 712, 712, 359,
1261 358, 710, 735, 357, 356, 710, 712, 355, 354, 735,
1262 712, 714, 714, 714, 714, 716, 716, 716, 716, 719,
1263 719, 719, 719, 735, 714, 720, 720, 720, 720, 730,
1264 730, 730, 730, 736, 719, 353, 735, 352, 737, 736,
1265 720, 736, 736, 730, 736, 737, 738, 738, 738, 738,
1266
1267 739, 740, 741, 741, 741, 741, 351, 739, 740, 737,
1268 738, 978, 978, 737, 978, 350, 347, 741, 739, 346,
1269 345, 739, 740, 742, 742, 742, 742, 743, 743, 743,
1270 743, 745, 745, 745, 745, 981, 981, 740, 981, 344,
1271 342, 738, 746, 746, 746, 746, 745, 747, 747, 747,
1272 747, 748, 748, 748, 748, 749, 749, 749, 749, 341,
1273 982, 982, 747, 982, 340, 339, 748, 750, 750, 750,
1274 750, 753, 753, 753, 753, 755, 755, 755, 755, 338,
1275 778, 336, 753, 335, 334, 333, 753, 778, 755, 757,
1276 757, 757, 757, 760, 760, 760, 760, 772, 772, 772,
1277
1278 772, 778, 777, 779, 329, 778, 328, 780, 760, 777,
1279 779, 772, 327, 781, 780, 782, 324, 323, 322, 777,
1280 781, 321, 782, 777, 779, 780, 320, 317, 780, 316,
1281 781, 314, 313, 779, 781, 784, 782, 783, 783, 783,
1282 783, 312, 784, 785, 311, 782, 786, 786, 786, 786,
1283 785, 783, 787, 787, 787, 787, 784, 788, 788, 788,
1284 788, 310, 784, 308, 785, 307, 304, 787, 789, 789,
1285 789, 789, 788, 790, 790, 790, 790, 791, 791, 791,
1286 791, 303, 783, 792, 792, 792, 792, 807, 790, 795,
1287 795, 795, 795, 808, 807, 809, 810, 812, 811, 813,
1288
1289 808, 300, 809, 810, 812, 811, 813, 299, 807, 298,
1290 297, 281, 807, 280, 808, 276, 809, 810, 812, 811,
1291 813, 275, 810, 274, 809, 814, 812, 272, 271, 808,
1292 811, 270, 814, 269, 814, 815, 815, 815, 815, 816,
1293 816, 816, 816, 268, 267, 266, 814, 264, 263, 262,
1294 815, 817, 817, 817, 817, 818, 818, 818, 818, 830,
1295 831, 832, 833, 835, 834, 836, 830, 831, 832, 833,
1296 835, 834, 836, 838, 838, 838, 838, 261, 260, 258,
1297 830, 831, 832, 833, 835, 834, 836, 257, 830, 834,
1298 837, 256, 255, 252, 832, 251, 835, 837, 836, 846,
1299
1300 846, 846, 846, 847, 847, 847, 847, 849, 852, 850,
1301 837, 837, 851, 846, 849, 852, 850, 847, 853, 851,
1302 854, 854, 854, 854, 250, 853, 249, 852, 849, 852,
1303 850, 856, 247, 851, 854, 853, 245, 244, 856, 853,
1304 243, 849, 850, 242, 241, 240, 851, 855, 855, 855,
1305 855, 239, 856, 860, 860, 860, 860, 864, 864, 864,
1306 864, 855, 869, 908, 237, 854, 235, 860, 856, 869,
1307 908, 864, 866, 866, 866, 866, 868, 868, 868, 868,
1308 871, 872, 873, 869, 908, 234, 866, 871, 872, 873,
1309 868, 233, 855, 222, 219, 869, 870, 870, 870, 870,
1310
1311 873, 871, 872, 873, 874, 874, 874, 874, 218, 214,
1312 870, 213, 871, 211, 210, 872, 208, 207, 874, 875,
1313 875, 875, 875, 876, 876, 876, 876, 877, 877, 877,
1314 877, 206, 204, 875, 203, 202, 201, 876, 200, 199,
1315 198, 870, 877, 878, 878, 878, 878, 197, 917, 874,
1316 196, 879, 879, 879, 879, 917, 194, 878, 886, 886,
1317 886, 886, 193, 892, 875, 879, 192, 191, 876, 917,
1318 892, 189, 886, 888, 888, 888, 888, 889, 889, 889,
1319 889, 890, 891, 188, 892, 187, 186, 888, 890, 891,
1320 892, 889, 893, 893, 893, 893, 185, 184, 890, 183,
1321
1322 182, 181, 890, 891, 180, 179, 893, 891, 894, 894,
1323 894, 894, 895, 895, 895, 895, 178, 177, 888, 176,
1324 175, 164, 889, 894, 896, 896, 896, 896, 905, 905,
1325 905, 905, 906, 907, 916, 163, 162, 893, 896, 906,
1326 907, 916, 905, 909, 909, 909, 909, 161, 160, 918,
1327 159, 923, 157, 906, 907, 916, 918, 906, 923, 924,
1328 925, 918, 156, 916, 154, 153, 924, 925, 152, 907,
1329 918, 924, 923, 905, 151, 929, 930, 931, 150, 935,
1330 924, 925, 929, 930, 931, 923, 935, 929, 936, 149,
1331 145, 144, 937, 143, 142, 936, 929, 930, 931, 937,
1332
1333 935, 941, 141, 140, 942, 943, 139, 947, 941, 936,
1334 931, 942, 943, 937, 947, 138, 948, 949, 137, 136,
1335 135, 936, 941, 948, 949, 942, 943, 937, 947, 953,
1336 134, 133, 943, 954, 941, 132, 953, 948, 949, 942,
1337 954, 955, 947, 948, 958, 958, 958, 958, 955, 131,
1338 953, 949, 959, 130, 954, 129, 953, 960, 958, 959,
1339 126, 125, 955, 124, 960, 123, 122, 954, 961, 961,
1340 961, 961, 121, 959, 955, 120, 118, 108, 960, 107,
1341 106, 966, 961, 105, 104, 103, 959, 102, 966, 101,
1342 960, 963, 963, 963, 963, 964, 964, 964, 964, 100,
1343
1344 99, 98, 966, 96, 95, 963, 94, 90, 84, 964,
1345 83, 80, 79, 961, 966, 967, 967, 967, 967, 968,
1346 968, 968, 968, 969, 969, 969, 969, 78, 77, 967,
1347 76, 75, 72, 968, 55, 54, 51, 969, 970, 970,
1348 970, 970, 973, 973, 973, 973, 50, 974, 974, 974,
1349 974, 49, 970, 48, 44, 40, 973, 37, 26, 23,
1350 967, 974, 21, 17, 968, 975, 975, 975, 975, 979,
1351 979, 979, 979, 8, 7, 6, 5, 4, 3, 975,
1352 0, 0, 0, 979, 0, 0, 0, 973, 0, 0,
1353 0, 0, 974, 0, 0, 0, 0, 0, 0, 0,
1354
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 979, 984, 984, 984, 984, 984,
1357 985, 985, 985, 985, 985, 986, 986, 986, 986, 986,
1358 987, 987, 987, 987, 987, 988, 988, 988, 988, 988,
1359 989, 989, 989, 989, 989, 990, 990, 990, 990, 990,
1360 991, 0, 0, 991, 992, 992, 992, 992, 993, 993,
1361 0, 993, 993, 994, 994, 994, 0, 994, 983, 983,
1362 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1363 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1364 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1365
1366 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1367 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
1368 983, 983
1369 } ;
1370
1371/* Table of booleans, true if rule could match eol. */
1373 { 0,
13741, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1375 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1376 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1379 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1,
1380 0, };
1381
1382/* The intent behind this definition is that it'll catch
1383 * any uses of REJECT which flex missed.
1384 */
1385#define REJECT reject_used_but_not_detected
1386#define yymore() yymore_used_but_not_detected
1387#define YY_MORE_ADJ 0
1388#define YY_RESTORE_YY_MORE_OFFSET
1389#line 1 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1404#line 16 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1405
1406#include <iostream>
1407#include "OSDataStructures.h"
1408#include "OSMathUtil.h"
1409#include "OSConfig.h"
1410
1411#ifdef HAVE_CSTDIO
1412# include <cstdio>
1413#else
1414# ifdef HAVE_STDIO_H
1415# include <stdio.h>
1416# else
1417# error "don't have header file for stdio"
1418# endif
1419#endif
1420
1421#ifdef HAVE_CSTRING
1422# include <cstring>
1423#else
1424# ifdef HAVE_STRING_H
1425# include <string.h>
1426# else
1427# error "don't have header file for string"
1428# endif
1429#endif
1430
1431#ifdef HAVE_CMATH
1432# include <cmath>
1433#else
1434# ifdef HAVE_MATH_H
1435# include <math.h>
1436# else
1437# error "don't have header file for math"
1438# endif
1439#endif
1440
1441#include <sstream>
1442#include "OSrLParserData.h"
1443#include "OSErrorClass.h"
1444#include "OSParseosrl.tab.hpp"
1445#include "OSResult.h"
1446
1447
1448#define PARSERDEBUG
1449#ifdef PARSERDEBUG
1450 #define YY_PRINT printf("%s", yytext);
1451#else
1452 #define YY_PRINT ;
1453#endif
1454
1455
1456#ifdef WIN_
1457 #define YY_NO_UNISTD_H
1458 #include <io.h>
1459 #include <process.h>
1460 #ifdef USE_OLD_UNISTD
1461 #include<sys/unistd.h>
1462 #endif
1463#endif
1464
1465using std::cout;
1466using std::endl;
1467using std::ostringstream;
1468
1469
1470
1471
1472
1473
1474
1475
1476#line 100 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1477#define YY_EXTRA_TYPE OSrLParserData*
1478#line 1479 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
1479
1480#define INITIAL 0
1481#define osrlattributetext 1
1482#define doublequoteattributetext 2
1483#define singlequoteattributetext 3
1484#define startelement 4
1485#define elementtext 5
1486#define comment 6
1487#define xmldeclaration 7
1488
1489#ifndef YY_NO_UNISTD_H
1490/* Special case for "unistd.h", since it is non-ANSI. We include it way
1491 * down here because we want the user's section 1 to have been scanned first.
1492 * The user has a chance to override it with an option.
1493 */
1494#include <unistd.h>
1495#endif
1496
1497#ifndef YY_EXTRA_TYPE
1498#define YY_EXTRA_TYPE void *
1499#endif
1500
1501/* Holds the entire state of the reentrant scanner. */
1502struct yyguts_t
1503 {
1504
1505 /* User-defined. Not touched by flex. */
1507
1508 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1509 FILE *yyin_r, *yyout_r;
1510 size_t yy_buffer_stack_top;
1511 size_t yy_buffer_stack_max;
1513 char yy_hold_char;
1514 int yy_n_chars;
1515 int yyleng_r;
1516 char *yy_c_buf_p;
1517 int yy_init;
1518 int yy_start;
1522 int *yy_start_stack;
1525
1526 int yylineno_r;
1527 int yy_flex_debug_r;
1528
1529 char *yytext_r;
1530 int yy_more_flag;
1531 int yy_more_len;
1532
1533 YYSTYPE * yylval_r;
1534
1535 YYLTYPE * yylloc_r;
1536
1537 }; /* end struct yyguts_t */
1538
1539static int yy_init_globals (yyscan_t yyscanner );
1540
1541 /* This must go here because YYSTYPE and YYLTYPE are included
1542 * from bison output in section 1.*/
1543 # define yylval yyg->yylval_r
1544
1545 # define yylloc yyg->yylloc_r
1546
1548
1550
1551/* Accessor methods to globals.
1552 These are made visible to non-reentrant scanners for convenience. */
1553
1554int osrllex_destroy (yyscan_t yyscanner );
1555
1556int osrlget_debug (yyscan_t yyscanner );
1557
1558void osrlset_debug (int debug_flag ,yyscan_t yyscanner );
1559
1561
1562void osrlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1563
1564FILE *osrlget_in (yyscan_t yyscanner );
1565
1566void osrlset_in (FILE * in_str ,yyscan_t yyscanner );
1567
1568FILE *osrlget_out (yyscan_t yyscanner );
1569
1570void osrlset_out (FILE * out_str ,yyscan_t yyscanner );
1571
1572int osrlget_leng (yyscan_t yyscanner );
1573
1574char *osrlget_text (yyscan_t yyscanner );
1575
1576int osrlget_lineno (yyscan_t yyscanner );
1577
1578void osrlset_lineno (int line_number ,yyscan_t yyscanner );
1579
1580YYSTYPE * osrlget_lval (yyscan_t yyscanner );
1581
1582void osrlset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1583
1584 YYLTYPE *osrlget_lloc (yyscan_t yyscanner );
1585
1586 void osrlset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
1587
1588/* Macros after this point can all be overridden by user definitions in
1589 * section 1.
1590 */
1591
1592#ifndef YY_SKIP_YYWRAP
1593#ifdef __cplusplus
1594extern "C" int osrlwrap (yyscan_t yyscanner );
1595#else
1596extern int osrlwrap (yyscan_t yyscanner );
1597#endif
1598#endif
1599
1600 static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
1601
1602#ifndef yytext_ptr
1603static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1604#endif
1605
1606#ifdef YY_NEED_STRLEN
1607static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1608#endif
1609
1610#ifndef YY_NO_INPUT
1611
1612#ifdef __cplusplus
1613static int yyinput (yyscan_t yyscanner );
1614#else
1615static int input (yyscan_t yyscanner );
1616#endif
1617
1618#endif
1619
1620/* Amount of stuff to slurp up with each read. */
1621#ifndef YY_READ_BUF_SIZE
1622#define YY_READ_BUF_SIZE 8192
1623#endif
1624
1625/* Copy whatever the last rule matched to the standard output. */
1626#ifndef ECHO
1627/* This used to be an fputs(), but since the string might contain NUL's,
1628 * we now use fwrite().
1629 */
1630#define ECHO fwrite( yytext, yyleng, 1, yyout )
1631#endif
1632
1633/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1634 * is returned in "result".
1635 */
1636#ifndef YY_INPUT
1637#define YY_INPUT(buf,result,max_size) \
1638 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1639 { \
1640 int c = '*'; \
1641 int n; \
1642 for ( n = 0; n < max_size && \
1643 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1644 buf[n] = (char) c; \
1645 if ( c == '\n' ) \
1646 buf[n++] = (char) c; \
1647 if ( c == EOF && ferror( yyin ) ) \
1648 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1649 result = n; \
1650 } \
1651 else \
1652 { \
1653 errno=0; \
1654 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1655 { \
1656 if( errno != EINTR) \
1657 { \
1658 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1659 break; \
1660 } \
1661 errno=0; \
1662 clearerr(yyin); \
1663 } \
1664 }\
1665\
1666
1667#endif
1668
1669/* No semi-colon after return; correct usage is to write "yyterminate();" -
1670 * we don't want an extra ';' after the "return" because that will cause
1671 * some compilers to complain about unreachable statements.
1672 */
1673#ifndef yyterminate
1674#define yyterminate() return YY_NULL
1675#endif
1676
1677/* Number of entries by which start-condition stack grows. */
1678#ifndef YY_START_STACK_INCR
1679#define YY_START_STACK_INCR 25
1680#endif
1681
1682/* Report a fatal error. */
1683#ifndef YY_FATAL_ERROR
1684#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1685#endif
1686
1687/* end tables serialization structures and prototypes */
1688
1689/* Default declaration of generated scanner - a define so the user can
1690 * easily add parameters.
1691 */
1692#ifndef YY_DECL
1693#define YY_DECL_IS_OURS 1
1694
1695extern int osrllex \
1696 (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
1697
1698#define YY_DECL int osrllex \
1699 (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
1700#endif /* !YY_DECL */
1701
1702/* Code executed at the beginning of each rule, after yytext and yyleng
1703 * have been set up.
1704 */
1705#ifndef YY_USER_ACTION
1706#define YY_USER_ACTION
1707#endif
1708
1709/* Code executed at the end of each rule. */
1710#ifndef YY_BREAK
1711#define YY_BREAK break;
1712#endif
1713
1714#define YY_RULE_SETUP \
1715 YY_USER_ACTION
1716
1720{
1721 register yy_state_type yy_current_state;
1722 register char *yy_cp, *yy_bp;
1723 register int yy_act;
1724 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1725
1726#line 110 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1727
1728
1729
1730#line 1731 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
1731
1732 yylval = yylval_param;
1733
1734 yylloc = yylloc_param;
1735
1736 if ( !yyg->yy_init )
1737 {
1738 yyg->yy_init = 1;
1739
1740#ifdef YY_USER_INIT
1741 YY_USER_INIT;
1742#endif
1743
1744 if ( ! yyg->yy_start )
1745 yyg->yy_start = 1; /* first start state */
1746
1747 if ( ! yyin )
1748 yyin = stdin;
1749
1750 if ( ! yyout )
1751 yyout = stdout;
1752
1753 if ( ! YY_CURRENT_BUFFER ) {
1754 osrlensure_buffer_stack (yyscanner);
1757 }
1758
1759 osrl_load_buffer_state(yyscanner );
1760 }
1761
1762 while ( 1 ) /* loops until end-of-file is reached */
1763 {
1764 yy_cp = yyg->yy_c_buf_p;
1765
1766 /* Support of yytext. */
1768
1769 /* yy_bp points to the position in yy_ch_buf of the start of
1770 * the current run.
1771 */
1772 yy_bp = yy_cp;
1773
1774 yy_current_state = yyg->yy_start;
1775yy_match:
1776 do
1777 {
1778 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1779 if ( yy_accept[yy_current_state] )
1780 {
1781 yyg->yy_last_accepting_state = yy_current_state;
1783 }
1784 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1785 {
1786 yy_current_state = (int) yy_def[yy_current_state];
1787 if ( yy_current_state >= 984 )
1788 yy_c = yy_meta[(unsigned int) yy_c];
1789 }
1790 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1791 ++yy_cp;
1792 }
1793 while ( yy_base[yy_current_state] != 2669 );
1794
1795yy_find_action:
1796 yy_act = yy_accept[yy_current_state];
1797 if ( yy_act == 0 )
1798 { /* have to back up */
1800 yy_current_state = yyg->yy_last_accepting_state;
1801 yy_act = yy_accept[yy_current_state];
1802 }
1803
1805
1807 {
1808 int yyl;
1809 for ( yyl = 0; yyl < yyleng; ++yyl )
1810 if ( yytext[yyl] == '\n' )
1811
1812 do{ yylineno++;
1813 yycolumn=0;
1814 }while(0)
1815;
1816 }
1817
1818do_action: /* This label is used only to access EOF actions. */
1819
1820 switch ( yy_act )
1821 { /* beginning of action switch */
1822 case 0: /* must back up */
1823 /* undo the effects of YY_DO_BEFORE_ACTION */
1826 yy_current_state = yyg->yy_last_accepting_state;
1827 goto yy_find_action;
1828
1829case 1:
1830/* rule 1 can match eol */
1832#line 113 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1833
1834 YY_BREAK
1835/* General patterns matched in more than one element */
1836case 2:
1838#line 117 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1839{YY_PRINT; yylval->sval = yytext; return(QUOTE);}
1840 YY_BREAK
1841case 3:
1843#line 118 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1844{YY_PRINT; yylval->sval = yytext; return(TWOQUOTES);}
1845 YY_BREAK
1846case 4:
1847/* rule 4 can match eol */
1849#line 119 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1850{YY_PRINT; return(GREATERTHAN);}
1851 YY_BREAK
1852case 5:
1853/* rule 5 can match eol */
1855#line 120 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1856{YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
1857 YY_BREAK
1858case 6:
1859/* rule 6 can match eol */
1861#line 122 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1862{YY_PRINT;
1863char *yytextEnd;
1864yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
1865 if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
1866 std::ostringstream outStr;
1867 outStr << "encountered a spurious character in the lexer" << endl;
1868 outStr << "The first character is: ";
1869 outStr << yytext;
1870 outStr << endl;
1871 outStr << "See line number: " << yylineno << endl;
1872 throw ErrorClass( outStr.str());
1873 }
1874return(DOUBLE);}
1875 YY_BREAK
1876case 7:
1877/* rule 7 can match eol */
1879#line 136 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1880{YY_PRINT; return(ENDOFELEMENT);}
1881 YY_BREAK
1882case 8:
1883/* rule 8 can match eol */
1885#line 138 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1886{YY_PRINT; return(NUMBEROFTIMESATT);}
1887 YY_BREAK
1888case 9:
1889/* rule 9 can match eol */
1891#line 139 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1893 YY_BREAK
1894case 10:
1895/* rule 10 can match eol */
1897#line 140 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1899 YY_BREAK
1900case 11:
1901/* rule 11 can match eol */
1903#line 141 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1905 YY_BREAK
1906case 12:
1907/* rule 12 can match eol */
1909#line 142 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1911 YY_BREAK
1912case 13:
1913/* rule 13 can match eol */
1915#line 143 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1917 YY_BREAK
1918case 14:
1919/* rule 14 can match eol */
1921#line 144 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1923 YY_BREAK
1924case 15:
1925/* rule 15 can match eol */
1927#line 145 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1929 YY_BREAK
1930case 16:
1931/* rule 16 can match eol */
1933#line 146 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1934{YY_PRINT; return(NUMBEROFVARATT);}
1935 YY_BREAK
1936case 17:
1937/* rule 17 can match eol */
1939#line 147 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1940{YY_PRINT; return(NUMBEROFOBJATT);}
1941 YY_BREAK
1942case 18:
1943/* rule 18 can match eol */
1945#line 148 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1946{YY_PRINT; return(NUMBEROFCONATT);}
1947 YY_BREAK
1948case 19:
1949/* rule 19 can match eol */
1951#line 149 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1952{YY_PRINT; return(IDXATT);}
1953 YY_BREAK
1954case 20:
1955/* rule 20 can match eol */
1957#line 150 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1959 YY_BREAK
1960case 21:
1961/* rule 21 can match eol */
1963#line 152 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1964{YY_PRINT; return(EMPTYNAMEATT);}
1965 YY_BREAK
1966case 22:
1967/* rule 22 can match eol */
1969#line 153 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1970{YY_PRINT; return(EMPTYNAMEATT);}
1971 YY_BREAK
1972case 23:
1973/* rule 23 can match eol */
1975#line 154 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1977 YY_BREAK
1978case 24:
1979/* rule 24 can match eol */
1981#line 155 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1983 YY_BREAK
1984case 25:
1985/* rule 25 can match eol */
1987#line 156 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1988{YY_PRINT; return(EMPTYTYPEATT);}
1989 YY_BREAK
1990case 26:
1991/* rule 26 can match eol */
1993#line 157 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1994{YY_PRINT; return(EMPTYTYPEATT);}
1995 YY_BREAK
1996case 27:
1997/* rule 27 can match eol */
1999#line 158 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2001 YY_BREAK
2002case 28:
2003/* rule 28 can match eol */
2005#line 159 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2007 YY_BREAK
2008case 29:
2009/* rule 29 can match eol */
2011#line 160 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2012{YY_PRINT; return(EMPTYCATEGORYATT);}
2013 YY_BREAK
2014case 30:
2015/* rule 30 can match eol */
2017#line 161 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2018{YY_PRINT; return(EMPTYCATEGORYATT);}
2019 YY_BREAK
2020case 31:
2021/* rule 31 can match eol */
2023#line 162 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2025 YY_BREAK
2026case 32:
2027/* rule 32 can match eol */
2029#line 163 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2031 YY_BREAK
2032case 33:
2033/* rule 33 can match eol */
2035#line 164 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2036{YY_PRINT; return(EMPTYUNITATT);}
2037 YY_BREAK
2038case 34:
2039/* rule 34 can match eol */
2041#line 165 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2042{YY_PRINT; return(EMPTYUNITATT);}
2043 YY_BREAK
2044case 35:
2045/* rule 35 can match eol */
2047#line 166 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2049 YY_BREAK
2050case 36:
2051/* rule 36 can match eol */
2053#line 167 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2055 YY_BREAK
2056case 37:
2057/* rule 37 can match eol */
2059#line 168 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2060{YY_PRINT; return(EMPTYVALUEATT);}
2061 YY_BREAK
2062case 38:
2063/* rule 38 can match eol */
2065#line 169 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2066{YY_PRINT; return(EMPTYVALUEATT);}
2067 YY_BREAK
2068case 39:
2069/* rule 39 can match eol */
2071#line 170 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2073 YY_BREAK
2074case 40:
2075/* rule 40 can match eol */
2077#line 171 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2079 YY_BREAK
2080case 41:
2081/* rule 41 can match eol */
2083#line 172 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2084{YY_PRINT; return(EMPTYDESCRIPTIONATT);}
2085 YY_BREAK
2086case 42:
2087/* rule 42 can match eol */
2089#line 173 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2090{YY_PRINT; return(EMPTYDESCRIPTIONATT);}
2091 YY_BREAK
2092case 43:
2093/* rule 43 can match eol */
2095#line 174 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2097 YY_BREAK
2098case 44:
2099/* rule 44 can match eol */
2101#line 175 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2103 YY_BREAK
2104case 45:
2105/* rule 45 can match eol */
2107#line 178 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2108{return(OSRLSTARTEMPTY);}
2109 YY_BREAK
2110case 46:
2111/* rule 46 can match eol */
2113#line 179 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2115 YY_BREAK
2116case 47:
2117/* rule 47 can match eol */
2119#line 180 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2120{YY_PRINT; return(OSRLEND);}
2121 YY_BREAK
2122case 48:
2123/* rule 48 can match eol */
2125#line 181 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2126{YY_PRINT; return(GENERALSTART);}
2127 YY_BREAK
2128case 49:
2129/* rule 49 can match eol */
2131#line 182 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2132{YY_PRINT; return(GENERALEND);}
2133 YY_BREAK
2134case 50:
2135/* rule 50 can match eol */
2137#line 183 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2138{YY_PRINT; return(SYSTEMSTART);}
2139 YY_BREAK
2140case 51:
2141/* rule 51 can match eol */
2143#line 184 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2144{YY_PRINT; return(SYSTEMEND);}
2145 YY_BREAK
2146case 52:
2147/* rule 52 can match eol */
2149#line 185 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2150{YY_PRINT; return(SERVICESTART);}
2151 YY_BREAK
2152case 53:
2153/* rule 53 can match eol */
2155#line 186 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2156{YY_PRINT; return(SERVICEEND);}
2157 YY_BREAK
2158case 54:
2159/* rule 54 can match eol */
2161#line 187 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2162{YY_PRINT; return(JOBSTART);}
2163 YY_BREAK
2164case 55:
2165/* rule 55 can match eol */
2167#line 188 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2168{YY_PRINT; return(JOBEND);}
2169 YY_BREAK
2170case 56:
2171/* rule 56 can match eol */
2173#line 190 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2174{YY_PRINT; return(SERVICEURISTART);}
2175 YY_BREAK
2176case 57:
2177/* rule 57 can match eol */
2179#line 191 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2180{YY_PRINT; unput('<'); return(SERVICEURISTART);}
2181 YY_BREAK
2182case 58:
2183/* rule 58 can match eol */
2185#line 192 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2186{YY_PRINT; return(SERVICEURIEND);}
2187 YY_BREAK
2188case 59:
2189/* rule 59 can match eol */
2191#line 193 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2192{YY_PRINT; return(SERVICENAMESTART);}
2193 YY_BREAK
2194case 60:
2195/* rule 60 can match eol */
2197#line 194 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2198{YY_PRINT; unput('<'); return(SERVICENAMESTART);}
2199 YY_BREAK
2200case 61:
2201/* rule 61 can match eol */
2203#line 195 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2204{YY_PRINT; return(SERVICENAMEEND);}
2205 YY_BREAK
2206case 62:
2207/* rule 62 can match eol */
2209#line 196 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2210{YY_PRINT; return(INSTANCENAMESTART);}
2211 YY_BREAK
2212case 63:
2213/* rule 63 can match eol */
2215#line 197 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2216{YY_PRINT; unput('<'); return(INSTANCENAMESTART);}
2217 YY_BREAK
2218case 64:
2219/* rule 64 can match eol */
2221#line 198 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2222{YY_PRINT; return(INSTANCENAMEEND);}
2223 YY_BREAK
2224case 65:
2225/* rule 65 can match eol */
2227#line 199 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2228{YY_PRINT; return(JOBIDSTART);}
2229 YY_BREAK
2230case 66:
2231/* rule 66 can match eol */
2233#line 200 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2234{YY_PRINT; unput('<'); return(JOBIDSTART);}
2235 YY_BREAK
2236case 67:
2237/* rule 67 can match eol */
2239#line 201 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2240{YY_PRINT; return(JOBIDEND);}
2241 YY_BREAK
2242case 68:
2243/* rule 68 can match eol */
2245#line 203 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2247 YY_BREAK
2248case 69:
2249/* rule 69 can match eol */
2251#line 204 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2253 YY_BREAK
2254case 70:
2255/* rule 70 can match eol */
2257#line 206 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2258{YY_PRINT; return(TIMESTART);}
2259 YY_BREAK
2260case 71:
2261/* rule 71 can match eol */
2263#line 207 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2264{YY_PRINT; return(TIMEEND);}
2265 YY_BREAK
2266case 72:
2267/* rule 72 can match eol */
2269#line 209 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2270{YY_PRINT; return(MESSAGESTART);}
2271 YY_BREAK
2272case 73:
2273/* rule 73 can match eol */
2275#line 210 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2276{YY_PRINT; unput('<'); return(MESSAGESTART);}
2277 YY_BREAK
2278case 74:
2279/* rule 74 can match eol */
2281#line 211 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2282{YY_PRINT; return(MESSAGEEND);}
2283 YY_BREAK
2284case 75:
2285/* rule 75 can match eol */
2287#line 213 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2288{YY_PRINT; return(GENERALSTATUSSTART);}
2289 YY_BREAK
2290case 76:
2291/* rule 76 can match eol */
2293#line 214 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2294{YY_PRINT; return(GENERALSTATUSEND);}
2295 YY_BREAK
2296case 77:
2297/* rule 77 can match eol */
2299#line 216 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2300{YY_PRINT; return(OPTIMIZATIONSTART);}
2301 YY_BREAK
2302case 78:
2303/* rule 78 can match eol */
2305#line 217 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2306{YY_PRINT; return(OPTIMIZATIONEND);}
2307 YY_BREAK
2308case 79:
2309/* rule 79 can match eol */
2311#line 219 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2312{YY_PRINT; return(SOLUTIONSTART);}
2313 YY_BREAK
2314case 80:
2315/* rule 80 can match eol */
2317#line 220 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2318{YY_PRINT; return(SOLUTIONEND);}
2319 YY_BREAK
2320case 81:
2321/* rule 81 can match eol */
2323#line 222 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2324{YY_PRINT; return(STATUSSTART);}
2325 YY_BREAK
2326case 82:
2327/* rule 82 can match eol */
2329#line 223 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2330{YY_PRINT; return(STATUSEND);}
2331 YY_BREAK
2332case 83:
2333/* rule 83 can match eol */
2335#line 225 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2336{YY_PRINT; return(VALUESSTART);}
2337 YY_BREAK
2338case 84:
2339/* rule 84 can match eol */
2341#line 226 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2342{YY_PRINT; return(VALUESEND);}
2343 YY_BREAK
2344case 85:
2345/* rule 85 can match eol */
2347#line 228 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2348{YY_PRINT; return(DUALVALUESSTART);}
2349 YY_BREAK
2350case 86:
2351/* rule 86 can match eol */
2353#line 229 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2354{YY_PRINT; return(DUALVALUESEND);}
2355 YY_BREAK
2356case 87:
2357/* rule 87 can match eol */
2359#line 231 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2360{YY_PRINT; return(VARSTART);}
2361 YY_BREAK
2362case 88:
2363/* rule 88 can match eol */
2365#line 232 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2366{YY_PRINT; return(VAREND);}
2367 YY_BREAK
2368case 89:
2369/* rule 89 can match eol */
2371#line 233 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2372{YY_PRINT; return(VARIABLESSTART);}
2373 YY_BREAK
2374case 90:
2375/* rule 90 can match eol */
2377#line 234 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2378{YY_PRINT; return(VARIABLESEND);}
2379 YY_BREAK
2380case 91:
2381/* rule 91 can match eol */
2383#line 236 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2384{YY_PRINT; return(OBJSTART);}
2385 YY_BREAK
2386case 92:
2387/* rule 92 can match eol */
2389#line 237 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2390{YY_PRINT; return(OBJEND);}
2391 YY_BREAK
2392case 93:
2393/* rule 93 can match eol */
2395#line 238 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2396{YY_PRINT; return(OBJECTIVESSTART);}
2397 YY_BREAK
2398case 94:
2399/* rule 94 can match eol */
2401#line 239 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2402{YY_PRINT; return(OBJECTIVESEND);}
2403 YY_BREAK
2404case 95:
2405/* rule 95 can match eol */
2407#line 241 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2408{YY_PRINT; return(CONSTART);}
2409 YY_BREAK
2410case 96:
2411/* rule 96 can match eol */
2413#line 242 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2414{YY_PRINT; return(CONEND);}
2415 YY_BREAK
2416case 97:
2417/* rule 97 can match eol */
2419#line 243 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2420{YY_PRINT; return(CONSTRAINTSSTART);}
2421 YY_BREAK
2422case 98:
2423/* rule 98 can match eol */
2425#line 244 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2426{YY_PRINT; return(CONSTRAINTSEND);}
2427 YY_BREAK
2428case 99:
2429/* rule 99 can match eol */
2431#line 247 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2432{YY_PRINT; return(OTHERSTART);}
2433 YY_BREAK
2434case 100:
2435/* rule 100 can match eol */
2437#line 248 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2438{YY_PRINT; return(OTHEREND);}
2439 YY_BREAK
2440case 101:
2441/* rule 101 can match eol */
2443#line 250 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2445 YY_BREAK
2446case 102:
2447/* rule 102 can match eol */
2449#line 251 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2451 YY_BREAK
2452case 103:
2453/* rule 103 can match eol */
2455#line 252 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2457 YY_BREAK
2458case 104:
2459/* rule 104 can match eol */
2461#line 253 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2462{YY_PRINT; return(JOBIDSTARTANDEND);}
2463 YY_BREAK
2464case 105:
2465/* rule 105 can match eol */
2467#line 254 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2468{YY_PRINT; return(TIMESTARTANDEND);}
2469 YY_BREAK
2470case 106:
2471/* rule 106 can match eol */
2473#line 255 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2474{YY_PRINT; return(MESSAGESTARTANDEND);}
2475 YY_BREAK
2476case 107:
2477/* rule 107 can match eol */
2479#line 260 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2480{ YY_PRINT; yylval->sval = strdup( yytext); yyextra->errorText = yylval->sval; /*yylval->sval = yytext;*/ return (ELEMENTTEXT); }
2481 YY_BREAK
2482case 108:
2484#line 262 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2486 YY_BREAK
2487case 109:
2488#line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2489case 110:
2490/* rule 110 can match eol */
2492#line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2493;
2494 YY_BREAK
2495case 111:
2497#line 265 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2498BEGIN 0;
2499 YY_BREAK
2500case 112:
2502#line 267 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2504 YY_BREAK
2505case 113:
2506#line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2507case 114:
2508/* rule 114 can match eol */
2510#line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2511;
2512 YY_BREAK
2513case 115:
2515#line 270 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2516BEGIN 0;
2517 YY_BREAK
2518case 116:
2519/* rule 116 can match eol */
2521#line 273 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2522{YY_PRINT; BEGIN 0; yylval->sval = strdup(yytext); /* yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
2523 YY_BREAK
2524case 117:
2525/* rule 117 can match eol */
2527#line 274 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2528{YY_PRINT; BEGIN 0; yylval->sval = strdup(yytext); /*yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
2529 YY_BREAK
2530case 118:
2531/* rule 118 can match eol */
2533#line 275 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2534{YY_PRINT; BEGIN 0; /*yylval->sval = strdup(yytext);*/ yylval->sval = yytext; return(OSRLATTRIBUTETEXT);}
2535 YY_BREAK
2536case 119:
2537/* rule 119 can match eol */
2539#line 278 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2540{
2541 std::string error;
2542 std::ostringstream outStr;
2543 outStr << "encountered a spurious character in the lexer" << std::endl;
2544 outStr << "The first character is: ";
2545 outStr << yytext;
2546 outStr << std::endl;
2547 outStr << "See line number: " << yylineno << std::endl;
2548 error = outStr.str();
2549 throw ErrorClass( error);
2550}
2551 YY_BREAK
2552case 120:
2554#line 290 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2555ECHO;
2556 YY_BREAK
2557#line 2558 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
2558case YY_STATE_EOF(INITIAL):
2564case YY_STATE_EOF(comment):
2566 yyterminate();
2567
2568 case YY_END_OF_BUFFER:
2569 {
2570 /* Amount of text matched not including the EOB char. */
2571 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2572
2573 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2576
2577 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2578 {
2579 /* We're scanning a new file or input source. It's
2580 * possible that this happened because the user
2581 * just pointed yyin at a new source and called
2582 * osrllex(). If so, then we have to assure
2583 * consistency between YY_CURRENT_BUFFER and our
2584 * globals. Here is the right place to do so, because
2585 * this is the first action (other than possibly a
2586 * back-up) that will match for the new input source.
2587 */
2589 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2590 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2591 }
2592
2593 /* Note that here we test for yy_c_buf_p "<=" to the position
2594 * of the first EOB in the buffer, since yy_c_buf_p will
2595 * already have been incremented past the NUL character
2596 * (since all states make transitions on EOB to the
2597 * end-of-buffer state). Contrast this with the test
2598 * in input().
2599 */
2600 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2601 { /* This was really a NUL. */
2602 yy_state_type yy_next_state;
2603
2604 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2605
2606 yy_current_state = yy_get_previous_state( yyscanner );
2607
2608 /* Okay, we're now positioned to make the NUL
2609 * transition. We couldn't have
2610 * yy_get_previous_state() go ahead and do it
2611 * for us because it doesn't know how to deal
2612 * with the possibility of jamming (and we don't
2613 * want to build jamming into it because then it
2614 * will run more slowly).
2615 */
2616
2617 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2618
2619 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2620
2621 if ( yy_next_state )
2622 {
2623 /* Consume the NUL. */
2624 yy_cp = ++yyg->yy_c_buf_p;
2625 yy_current_state = yy_next_state;
2626 goto yy_match;
2627 }
2628
2629 else
2630 {
2631 yy_cp = yyg->yy_c_buf_p;
2632 goto yy_find_action;
2633 }
2634 }
2635
2636 else switch ( yy_get_next_buffer( yyscanner ) )
2637 {
2639 {
2641
2642 if ( osrlwrap(yyscanner ) )
2643 {
2644 /* Note: because we've taken care in
2645 * yy_get_next_buffer() to have set up
2646 * yytext, we can now set up
2647 * yy_c_buf_p so that if some total
2648 * hoser (like flex itself) wants to
2649 * call the scanner after we return the
2650 * YY_NULL, it'll still work - another
2651 * YY_NULL will get returned.
2652 */
2653 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2654
2656 goto do_action;
2657 }
2658
2659 else
2660 {
2663 }
2664 break;
2665 }
2666
2668 yyg->yy_c_buf_p =
2669 yyg->yytext_ptr + yy_amount_of_matched_text;
2670
2671 yy_current_state = yy_get_previous_state( yyscanner );
2672
2673 yy_cp = yyg->yy_c_buf_p;
2674 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2675 goto yy_match;
2676
2677 case EOB_ACT_LAST_MATCH:
2678 yyg->yy_c_buf_p =
2680
2681 yy_current_state = yy_get_previous_state( yyscanner );
2682
2683 yy_cp = yyg->yy_c_buf_p;
2684 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2685 goto yy_find_action;
2686 }
2687 break;
2688 }
2689
2690 default:
2692 "fatal flex scanner internal error--no action found" );
2693 } /* end of action switch */
2694 } /* end of scanning one token */
2695} /* end of osrllex */
2696
2697/* yy_get_next_buffer - try to read in a new buffer
2698 *
2699 * Returns a code representing an action:
2700 * EOB_ACT_LAST_MATCH -
2701 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2702 * EOB_ACT_END_OF_FILE - end of file
2703 */
2704static int yy_get_next_buffer (yyscan_t yyscanner)
2705{
2706 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2707 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2708 register char *source = yyg->yytext_ptr;
2709 register int number_to_move, i;
2710 int ret_val;
2711
2712 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2714 "fatal flex scanner internal error--end of buffer missed" );
2715
2716 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2717 { /* Don't try to fill the buffer, so this is an EOF. */
2718 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2719 {
2720 /* We matched a single character, the EOB, so
2721 * treat this as a final EOF.
2722 */
2723 return EOB_ACT_END_OF_FILE;
2724 }
2725
2726 else
2727 {
2728 /* We matched some text prior to the EOB, first
2729 * process it.
2730 */
2731 return EOB_ACT_LAST_MATCH;
2732 }
2733 }
2734
2735 /* Try to read more data. */
2736
2737 /* First move last chars to start of buffer. */
2738 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2739
2740 for ( i = 0; i < number_to_move; ++i )
2741 *(dest++) = *(source++);
2742
2743 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2744 /* don't do the read, it's not guaranteed to return an EOF,
2745 * just force an EOF
2746 */
2747 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2748
2749 else
2750 {
2751 int num_to_read =
2752 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2753
2754 while ( num_to_read <= 0 )
2755 { /* Not enough room in the buffer - grow it. */
2756
2757 /* just a shorter name for the current buffer */
2759
2760 int yy_c_buf_p_offset =
2761 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2762
2763 if ( b->yy_is_our_buffer )
2764 {
2765 int new_size = b->yy_buf_size * 2;
2766
2767 if ( new_size <= 0 )
2768 b->yy_buf_size += b->yy_buf_size / 8;
2769 else
2770 b->yy_buf_size *= 2;
2771
2772 b->yy_ch_buf = (char *)
2773 /* Include room in for 2 EOB chars. */
2774 osrlrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2775 }
2776 else
2777 /* Can't grow it, we don't own it. */
2778 b->yy_ch_buf = 0;
2779
2780 if ( ! b->yy_ch_buf )
2782 "fatal error - scanner input buffer overflow" );
2783
2784 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2785
2786 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2787 number_to_move - 1;
2788
2789 }
2790
2791 if ( num_to_read > YY_READ_BUF_SIZE )
2792 num_to_read = YY_READ_BUF_SIZE;
2793
2794 /* Read in more data. */
2795 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2796 yyg->yy_n_chars, (size_t) num_to_read );
2797
2799 }
2800
2801 if ( yyg->yy_n_chars == 0 )
2802 {
2803 if ( number_to_move == YY_MORE_ADJ )
2804 {
2805 ret_val = EOB_ACT_END_OF_FILE;
2806 osrlrestart(yyin ,yyscanner);
2807 }
2808
2809 else
2810 {
2811 ret_val = EOB_ACT_LAST_MATCH;
2812 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2814 }
2815 }
2816
2817 else
2818 ret_val = EOB_ACT_CONTINUE_SCAN;
2819
2820 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2821 /* Extend the array by 50%, plus the number we really need. */
2822 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2823 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osrlrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2824 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2825 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2826 }
2827
2828 yyg->yy_n_chars += number_to_move;
2831
2832 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2833
2834 return ret_val;
2835}
2836
2837/* yy_get_previous_state - get the state just before the EOB char was reached */
2838
2840{
2841 register yy_state_type yy_current_state;
2842 register char *yy_cp;
2843 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2844
2845 yy_current_state = yyg->yy_start;
2846
2847 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2848 {
2849 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2850 if ( yy_accept[yy_current_state] )
2851 {
2852 yyg->yy_last_accepting_state = yy_current_state;
2854 }
2855 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2856 {
2857 yy_current_state = (int) yy_def[yy_current_state];
2858 if ( yy_current_state >= 984 )
2859 yy_c = yy_meta[(unsigned int) yy_c];
2860 }
2861 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2862 }
2863
2864 return yy_current_state;
2865}
2866
2867/* yy_try_NUL_trans - try to make a transition on the NUL character
2868 *
2869 * synopsis
2870 * next_state = yy_try_NUL_trans( current_state );
2871 */
2872 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2873{
2874 register int yy_is_jam;
2875 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2876 register char *yy_cp = yyg->yy_c_buf_p;
2877
2878 register YY_CHAR yy_c = 1;
2879 if ( yy_accept[yy_current_state] )
2880 {
2881 yyg->yy_last_accepting_state = yy_current_state;
2883 }
2884 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2885 {
2886 yy_current_state = (int) yy_def[yy_current_state];
2887 if ( yy_current_state >= 984 )
2888 yy_c = yy_meta[(unsigned int) yy_c];
2889 }
2890 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2891 yy_is_jam = (yy_current_state == 983);
2892
2893 return yy_is_jam ? 0 : yy_current_state;
2894}
2895
2896 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
2897{
2898 register char *yy_cp;
2899 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2900
2901 yy_cp = yyg->yy_c_buf_p;
2902
2903 /* undo effects of setting up yytext */
2905
2906 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2907 { /* need to shift things up to make room */
2908 /* +2 for EOB chars. */
2909 register int number_to_move = yyg->yy_n_chars + 2;
2910 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2911 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2912 register char *source =
2913 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2914
2915 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2916 *--dest = *--source;
2917
2918 yy_cp += (int) (dest - source);
2919 yy_bp += (int) (dest - source);
2920 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2921 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2922
2923 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2924 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2925 }
2926
2927 *--yy_cp = (char) c;
2928
2929 if ( c == '\n' ){
2930 --yylineno;
2931 }
2932
2933 yyg->yytext_ptr = yy_bp;
2935 yyg->yy_c_buf_p = yy_cp;
2936}
2937
2938#ifndef YY_NO_INPUT
2939#ifdef __cplusplus
2940 static int yyinput (yyscan_t yyscanner)
2941#else
2942 static int input (yyscan_t yyscanner)
2943#endif
2944
2945{
2946 int c;
2947 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2948
2950
2952 {
2953 /* yy_c_buf_p now points to the character we want to return.
2954 * If this occurs *before* the EOB characters, then it's a
2955 * valid NUL; if not, then we've hit the end of the buffer.
2956 */
2957 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2958 /* This was really a NUL. */
2959 *yyg->yy_c_buf_p = '\0';
2960
2961 else
2962 { /* need more input */
2963 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2964 ++yyg->yy_c_buf_p;
2965
2966 switch ( yy_get_next_buffer( yyscanner ) )
2967 {
2968 case EOB_ACT_LAST_MATCH:
2969 /* This happens because yy_g_n_b()
2970 * sees that we've accumulated a
2971 * token and flags that we need to
2972 * try matching the token before
2973 * proceeding. But for input(),
2974 * there's no matching to consider.
2975 * So convert the EOB_ACT_LAST_MATCH
2976 * to EOB_ACT_END_OF_FILE.
2977 */
2978
2979 /* Reset buffer status. */
2980 osrlrestart(yyin ,yyscanner);
2981
2982 /*FALLTHROUGH*/
2983
2985 {
2986 if ( osrlwrap(yyscanner ) )
2987 return EOF;
2988
2991#ifdef __cplusplus
2992 return yyinput(yyscanner);
2993#else
2994 return input(yyscanner);
2995#endif
2996 }
2997
2999 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
3000 break;
3001 }
3002 }
3003 }
3004
3005 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
3006 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
3008
3009 if ( c == '\n' )
3010
3011 do{ yylineno++;
3012 yycolumn=0;
3013 }while(0)
3014;
3015
3016 return c;
3017}
3018#endif /* ifndef YY_NO_INPUT */
3019
3025 void osrlrestart (FILE * input_file , yyscan_t yyscanner)
3026{
3027 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3028
3029 if ( ! YY_CURRENT_BUFFER ){
3030 osrlensure_buffer_stack (yyscanner);
3033 }
3034
3035 osrl_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
3036 osrl_load_buffer_state(yyscanner );
3037}
3038
3043 void osrl_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
3044{
3045 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3046
3047 /* TODO. We should be able to replace this entire function body
3048 * with
3049 * osrlpop_buffer_state();
3050 * osrlpush_buffer_state(new_buffer);
3051 */
3052 osrlensure_buffer_stack (yyscanner);
3053 if ( YY_CURRENT_BUFFER == new_buffer )
3054 return;
3055
3056 if ( YY_CURRENT_BUFFER )
3057 {
3058 /* Flush out information for old buffer. */
3062 }
3063
3064 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3065 osrl_load_buffer_state(yyscanner );
3066
3067 /* We don't actually know whether we did this switch during
3068 * EOF (osrlwrap()) processing, but the only time this flag
3069 * is looked at is after osrlwrap() is called, so it's safe
3070 * to go ahead and always set it.
3071 */
3073}
3074
3075static void osrl_load_buffer_state (yyscan_t yyscanner)
3076{
3077 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3079 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3080 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3082}
3083
3090 YY_BUFFER_STATE osrl_create_buffer (FILE * file, int size , yyscan_t yyscanner)
3091{
3093
3094 b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3095 if ( ! b )
3096 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
3097
3098 b->yy_buf_size = size;
3099
3100 /* yy_ch_buf has to be 2 characters longer than the size given because
3101 * we need to put in 2 end-of-buffer characters.
3102 */
3103 b->yy_ch_buf = (char *) osrlalloc(b->yy_buf_size + 2 ,yyscanner );
3104 if ( ! b->yy_ch_buf )
3105 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
3106
3107 b->yy_is_our_buffer = 1;
3108
3109 osrl_init_buffer(b,file ,yyscanner);
3110
3111 return b;
3112}
3113
3119{
3120 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3121
3122 if ( ! b )
3123 return;
3124
3125 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3127
3128 if ( b->yy_is_our_buffer )
3129 osrlfree((void *) b->yy_ch_buf ,yyscanner );
3130
3131 osrlfree((void *) b ,yyscanner );
3132}
3133
3134#ifndef __cplusplus
3135extern int isatty (int );
3136#endif /* __cplusplus */
3137
3138/* Initializes or reinitializes a buffer.
3139 * This function is sometimes called more than once on the same buffer,
3140 * such as during a osrlrestart() or at EOF.
3141 */
3142 static void osrl_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
3143
3144{
3145 int oerrno = errno;
3146 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3147
3148 osrl_flush_buffer(b ,yyscanner);
3149
3150 b->yy_input_file = file;
3151 b->yy_fill_buffer = 1;
3152
3153 /* If b is the current buffer, then osrl_init_buffer was _probably_
3154 * called from osrlrestart() or through yy_get_next_buffer.
3155 * In that case, we don't want to reset the lineno or column.
3156 */
3157 if (b != YY_CURRENT_BUFFER){
3158 b->yy_bs_lineno = 1;
3159 b->yy_bs_column = 0;
3160 }
3161
3162 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3163
3164 errno = oerrno;
3165}
3166
3172{
3173 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3174 if ( ! b )
3175 return;
3176
3177 b->yy_n_chars = 0;
3178
3179 /* We always need two end-of-buffer characters. The first causes
3180 * a transition to the end-of-buffer state. The second causes
3181 * a jam in that state.
3182 */
3185
3186 b->yy_buf_pos = &b->yy_ch_buf[0];
3187
3188 b->yy_at_bol = 1;
3190
3191 if ( b == YY_CURRENT_BUFFER )
3192 osrl_load_buffer_state(yyscanner );
3193}
3194
3202{
3203 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3204 if (new_buffer == NULL)
3205 return;
3206
3207 osrlensure_buffer_stack(yyscanner);
3208
3209 /* This block is copied from osrl_switch_to_buffer. */
3210 if ( YY_CURRENT_BUFFER )
3211 {
3212 /* Flush out information for old buffer. */
3216 }
3217
3218 /* Only push if top exists. Otherwise, replace top. */
3221 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3222
3223 /* copied from osrl_switch_to_buffer. */
3224 osrl_load_buffer_state(yyscanner );
3226}
3227
3233{
3234 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3235 if (!YY_CURRENT_BUFFER)
3236 return;
3237
3240 if (yyg->yy_buffer_stack_top > 0)
3242
3243 if (YY_CURRENT_BUFFER) {
3244 osrl_load_buffer_state(yyscanner );
3246 }
3247}
3248
3249/* Allocates the stack if it does not exist.
3250 * Guarantees space for at least one push.
3251 */
3252static void osrlensure_buffer_stack (yyscan_t yyscanner)
3253{
3254 int num_to_alloc;
3255 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3256
3257 if (!yyg->yy_buffer_stack) {
3258
3259 /* First allocation is just for 2 elements, since we don't know if this
3260 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3261 * immediate realloc on the next call.
3262 */
3263 num_to_alloc = 1;
3265 (num_to_alloc * sizeof(struct yy_buffer_state*)
3266 , yyscanner);
3267 if ( ! yyg->yy_buffer_stack )
3268 YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
3269
3270 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3271
3272 yyg->yy_buffer_stack_max = num_to_alloc;
3274 return;
3275 }
3276
3278
3279 /* Increase the buffer to prepare for a possible push. */
3280 int grow_size = 8 /* arbitrary grow size */;
3281
3282 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
3285 num_to_alloc * sizeof(struct yy_buffer_state*)
3286 , yyscanner);
3287 if ( ! yyg->yy_buffer_stack )
3288 YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
3289
3290 /* zero only the new slots.*/
3291 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
3292 yyg->yy_buffer_stack_max = num_to_alloc;
3293 }
3294}
3295
3303{
3305
3306 if ( size < 2 ||
3307 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3308 base[size-1] != YY_END_OF_BUFFER_CHAR )
3309 /* They forgot to leave room for the EOB's. */
3310 return 0;
3311
3312 b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3313 if ( ! b )
3314 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_buffer()" );
3315
3316 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3317 b->yy_buf_pos = b->yy_ch_buf = base;
3318 b->yy_is_our_buffer = 0;
3319 b->yy_input_file = 0;
3320 b->yy_n_chars = b->yy_buf_size;
3321 b->yy_is_interactive = 0;
3322 b->yy_at_bol = 1;
3323 b->yy_fill_buffer = 0;
3325
3326 osrl_switch_to_buffer(b ,yyscanner );
3327
3328 return b;
3329}
3330
3340{
3341
3342 return osrl_scan_bytes(yystr,strlen(yystr) ,yyscanner);
3343}
3344
3352YY_BUFFER_STATE osrl_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
3353{
3355 char *buf;
3356 yy_size_t n;
3357 int i;
3358
3359 /* Get memory for full buffer, including space for trailing EOB's. */
3360 n = _yybytes_len + 2;
3361 buf = (char *) osrlalloc(n ,yyscanner );
3362 if ( ! buf )
3363 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_bytes()" );
3364
3365 for ( i = 0; i < _yybytes_len; ++i )
3366 buf[i] = yybytes[i];
3367
3368 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3369
3370 b = osrl_scan_buffer(buf,n ,yyscanner);
3371 if ( ! b )
3372 YY_FATAL_ERROR( "bad buffer in osrl_scan_bytes()" );
3373
3374 /* It's okay to grow etc. this buffer, and we should throw it
3375 * away when we're done.
3376 */
3377 b->yy_is_our_buffer = 1;
3378
3379 return b;
3380}
3381
3382#ifndef YY_EXIT_FAILURE
3383#define YY_EXIT_FAILURE 2
3384#endif
3385
3386static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
3387{
3388 (void) fprintf( stderr, "%s\n", msg );
3389 exit( YY_EXIT_FAILURE );
3390}
3391
3392/* Redefine yyless() so it works in section 3 code. */
3393
3394#undef yyless
3395#define yyless(n) \
3396 do \
3397 { \
3398 /* Undo effects of setting up yytext. */ \
3399 int yyless_macro_arg = (n); \
3400 YY_LESS_LINENO(yyless_macro_arg);\
3401 yytext[yyleng] = yyg->yy_hold_char; \
3402 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3403 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3404 *yyg->yy_c_buf_p = '\0'; \
3405 yyleng = yyless_macro_arg; \
3406 } \
3407 while ( 0 )
3408
3409/* Accessor methods (get/set functions) to struct members. */
3410
3415{
3416 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3417 return yyextra;
3418}
3419
3424{
3425 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3426
3427 if (! YY_CURRENT_BUFFER)
3428 return 0;
3429
3430 return yylineno;
3431}
3432
3437{
3438 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3439
3440 if (! YY_CURRENT_BUFFER)
3441 return 0;
3442
3443 return yycolumn;
3444}
3445
3449FILE *osrlget_in (yyscan_t yyscanner)
3450{
3451 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3452 return yyin;
3453}
3454
3458FILE *osrlget_out (yyscan_t yyscanner)
3459{
3460 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3461 return yyout;
3462}
3463
3467int osrlget_leng (yyscan_t yyscanner)
3468{
3469 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3470 return yyleng;
3471}
3472
3477char *osrlget_text (yyscan_t yyscanner)
3478{
3479 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3480 return yytext;
3481}
3482
3487void osrlset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
3488{
3489 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3490 yyextra = user_defined ;
3491}
3492
3497void osrlset_lineno (int line_number , yyscan_t yyscanner)
3498{
3499 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3500
3501 /* lineno is only valid if an input buffer exists. */
3502 if (! YY_CURRENT_BUFFER )
3503 yy_fatal_error( "osrlset_lineno called with no buffer" , yyscanner);
3504
3505 yylineno = line_number;
3506}
3507
3512void osrlset_column (int column_no , yyscan_t yyscanner)
3513{
3514 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3515
3516 /* column is only valid if an input buffer exists. */
3517 if (! YY_CURRENT_BUFFER )
3518 yy_fatal_error( "osrlset_column called with no buffer" , yyscanner);
3519
3520 yycolumn = column_no;
3521}
3522
3529void osrlset_in (FILE * in_str , yyscan_t yyscanner)
3530{
3531 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3532 yyin = in_str ;
3533}
3534
3535void osrlset_out (FILE * out_str , yyscan_t yyscanner)
3536{
3537 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3538 yyout = out_str ;
3539}
3540
3542{
3543 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3544 return yy_flex_debug;
3545}
3546
3547void osrlset_debug (int bdebug , yyscan_t yyscanner)
3548{
3549 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3550 yy_flex_debug = bdebug ;
3551}
3552
3553/* Accessor methods for yylval and yylloc */
3554
3556{
3557 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3558 return yylval;
3559}
3560
3561void osrlset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3562{
3563 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3564 yylval = yylval_param;
3565}
3566
3568{
3569 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3570 return yylloc;
3571}
3572
3573void osrlset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
3574{
3575 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3576 yylloc = yylloc_param;
3577}
3578
3579/* User-visible API */
3580
3581/* osrllex_init is special because it creates the scanner itself, so it is
3582 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3583 * That's why we explicitly handle the declaration, instead of using our macros.
3584 */
3585
3586int osrllex_init(yyscan_t* ptr_yy_globals)
3587
3588{
3589 if (ptr_yy_globals == NULL){
3590 errno = EINVAL;
3591 return 1;
3592 }
3593
3594 *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), NULL );
3595
3596 if (*ptr_yy_globals == NULL){
3597 errno = ENOMEM;
3598 return 1;
3599 }
3600
3601 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3602 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3603
3604 return yy_init_globals ( *ptr_yy_globals );
3605}
3606
3607/* osrllex_init_extra has the same functionality as osrllex_init, but follows the
3608 * convention of taking the scanner as the last argument. Note however, that
3609 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3610 * is the reason, too, why this function also must handle its own declaration).
3611 * The user defined value in the first argument will be available to osrlalloc in
3612 * the yyextra field.
3613 */
3614
3615int osrllex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
3616
3617{
3618 struct yyguts_t dummy_yyguts;
3619
3620 osrlset_extra (yy_user_defined, &dummy_yyguts);
3621
3622 if (ptr_yy_globals == NULL){
3623 errno = EINVAL;
3624 return 1;
3625 }
3626
3627 *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3628
3629 if (*ptr_yy_globals == NULL){
3630 errno = ENOMEM;
3631 return 1;
3632 }
3633
3634 /* By setting to 0xAA, we expose bugs in
3635 yy_init_globals. Leave at 0x00 for releases. */
3636 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3637
3638 osrlset_extra (yy_user_defined, *ptr_yy_globals);
3639
3640 return yy_init_globals ( *ptr_yy_globals );
3641}
3642
3643static int yy_init_globals (yyscan_t yyscanner)
3644{
3645 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3646 /* Initialization is the same as for the non-reentrant scanner.
3647 * This function is called from osrllex_destroy(), so don't allocate here.
3648 */
3649
3650 yyg->yy_buffer_stack = 0;
3653 yyg->yy_c_buf_p = (char *) 0;
3654 yyg->yy_init = 0;
3655 yyg->yy_start = 0;
3656
3659 yyg->yy_start_stack = NULL;
3660
3661/* Defined in main.c */
3662#ifdef YY_STDINIT
3663 yyin = stdin;
3664 yyout = stdout;
3665#else
3666 yyin = (FILE *) 0;
3667 yyout = (FILE *) 0;
3668#endif
3669
3670 /* For future reference: Set errno on error, since we are called by
3671 * osrllex_init()
3672 */
3673 return 0;
3674}
3675
3676/* osrllex_destroy is for both reentrant and non-reentrant scanners. */
3678{
3679 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3680
3681 /* Pop the buffer stack, destroying each element. */
3682 while(YY_CURRENT_BUFFER){
3685 osrlpop_buffer_state(yyscanner);
3686 }
3687
3688 /* Destroy the stack itself. */
3689 osrlfree(yyg->yy_buffer_stack ,yyscanner);
3690 yyg->yy_buffer_stack = NULL;
3691
3692 /* Destroy the start condition stack. */
3693 osrlfree(yyg->yy_start_stack ,yyscanner );
3694 yyg->yy_start_stack = NULL;
3695
3696 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3697 * osrllex() is called, initialization will occur. */
3698 yy_init_globals( yyscanner);
3699
3700 /* Destroy the main struct (reentrant only). */
3701 osrlfree ( yyscanner , yyscanner );
3702 yyscanner = NULL;
3703 return 0;
3704}
3705
3706/*
3707 * Internal utility routines.
3708 */
3709
3710#ifndef yytext_ptr
3711static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3712{
3713 register int i;
3714 for ( i = 0; i < n; ++i )
3715 s1[i] = s2[i];
3716}
3717#endif
3718
3719#ifdef YY_NEED_STRLEN
3720static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3721{
3722 register int n;
3723 for ( n = 0; s[n]; ++n )
3724 ;
3725
3726 return n;
3727}
3728#endif
3729
3730void *osrlalloc (yy_size_t size , yyscan_t yyscanner)
3731{
3732 return (void *) malloc( size );
3733}
3734
3735void *osrlrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3736{
3737 /* The cast to (char *) in the following accommodates both
3738 * implementations that use char* generic pointers, and those
3739 * that use void* generic pointers. It works with the latter
3740 * because both ANSI C and C++ allow castless assignment from
3741 * any pointer type to void*, and deal with argument conversions
3742 * as though doing an assignment.
3743 */
3744 return (void *) realloc( (char *) ptr, size );
3745}
3746
3747void osrlfree (void * ptr , yyscan_t yyscanner)
3748{
3749 free( (char *) ptr ); /* see osrlrealloc() for (char *) cast */
3750}
3751
3752#define YYTABLES_NAME "yytables"
3753
3754#line 290 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
3755
3756
3757
3758
3759
double os_strtod_wrap(const char *str, char **strEnd)
void * yyscan_t
short int flex_int16_t
int flex_int32_t
int yy_state_type
flex_uint8_t YY_CHAR
size_t yy_size_t
void * malloc(YYSIZE_T)
#define scanner
void free(void *)
#define UNITATT
#define NUMBEROFVARATT
#define EMPTYVALUEATT
#define TWOQUOTES
#define EMPTYUNITATT
#define GREATERTHAN
#define NAMEATT
#define TYPEATT
#define VALUESSTART
#define EMPTYCATEGORYATT
#define IDXATT
#define SERVICENAMEEND
#define SERVICEURISTART
#define VALUEATT
#define VARSTART
#define NUMBEROFCONSTRAINTSATT
#define JOBIDEND
#define OBJEND
#define EMPTYDESCRIPTIONATT
#define GENERALSTART
#define CATEGORYATT
#define SYSTEMEND
#define OBJECTIVESEND
#define OPTIMIZATIONSTART
#define CONSTRAINTSEND
#define DESCRIPTIONATT
#define OBJSTART
#define VARIABLESSTART
#define CONSTRAINTSSTART
#define VARIABLESEND
#define SERVICEURIEND
#define GENERALEND
#define OTHERSTART
#define JOBSTART
#define SYSTEMSTART
#define SERVICENAMESTART
#define INSTANCENAMEEND
#define NUMBEROFVARIABLESATT
#define NUMBEROFOBJECTIVESATT
#define DOUBLE
#define QUOTE
#define VALUESEND
#define INTEGER
#define EMPTYNAMEATT
#define INSTANCENAMESTART
#define OPTIMIZATIONEND
#define OTHEREND
#define CONEND
#define NUMBEROFCONATT
#define EMPTYTYPEATT
#define SERVICESTART
#define NUMBEROFOBJATT
#define OBJECTIVESSTART
#define ATTRIBUTETEXT
#define ENDOFELEMENT
#define ELEMENTTEXT
#define VAREND
#define CONSTART
#define SERVICEEND
#define JOBIDSTART
#define JOBEND
used for throwing exceptions.
#define SOLUTIONEND
#define GENERALSTATUSSTART
#define NUMBEROFSOLUTIONSATT
#define SOLUTIONSTART
#define NUMBEROFOTHERCONSTRAINTRESULTSATT
#define TIMINGINFORMATIONSTART
#define NUMBEROFOTHEROBJECTIVERESULTSATT
#define MESSAGESTART
#define MESSAGEEND
#define DUALVALUESEND
#define DUALVALUESSTART
#define GENERALSTATUSEND
#define OSRLSTARTEMPTY
#define OSRLATTRIBUTETEXT
#define OSRLEND
#define TIMESTART
#define OSRLSTART
#define TARGETOBJECTIVEIDXATT
#define STATUSEND
#define NUMBEROFOTHERVARIABLERESULTSATT
#define NUMBEROFTIMESATT
#define STATUSSTART
#define TIMINGINFORMATIONEND
#define TIMEEND
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.
flex_int32_t yy_verify
flex_int32_t yy_nxt
char * yy_c_buf_p
int yy_did_buffer_switch_on_eof
int yy_start_stack_depth
FILE * yyout_r
FILE * yyin_r
size_t yy_buffer_stack_max
capacity of stack.
int yy_flex_debug_r
char * yy_last_accepting_cpos
YYSTYPE * yylval_r
yy_state_type yy_last_accepting_state
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
int * yy_start_stack
int yy_start_stack_ptr
char yy_hold_char
char * yytext_r
YY_EXTRA_TYPE yyextra_r
size_t yy_buffer_stack_top
index of top of stack.
YYLTYPE * yylloc_r
void osrlset_out(FILE *out_str, yyscan_t yyscanner)
#define osrlattributetext
#define YY_NEW_FILE
int osrllex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
static yyconst flex_int16_t yy_accept[984]
void osrlset_in(FILE *in_str, yyscan_t yyscanner)
Set the input stream.
#define yytext
static void osrlensure_buffer_stack(yyscan_t yyscanner)
#define yylloc
unsigned char flex_uint8_t
static yyconst flex_int32_t yy_meta[54]
void * yyscan_t
void * osrlalloc(yy_size_t, yyscan_t yyscanner)
YY_EXTRA_TYPE osrlget_extra(yyscan_t yyscanner)
Get the user-defined data for this scanner.
void osrlset_lval(YYSTYPE *yylval_param, yyscan_t yyscanner)
static yyconst flex_int16_t yy_base[995]
unsigned char YY_CHAR
static int yy_init_globals(yyscan_t yyscanner)
int osrlget_lineno(yyscan_t yyscanner)
Get the current line number.
static void osrl_init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
static yyconst flex_int32_t yy_rule_can_match_eol[121]
#define YY_EXTRA_TYPE
#define doublequoteattributetext
static int yy_get_next_buffer(yyscan_t yyscanner)
short int flex_int16_t
void osrl_flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Discard all buffered characters.
int osrlget_column(yyscan_t yyscanner)
Get the current column number.
#define yy_flex_debug
#define singlequoteattributetext
int osrllex_init_extra(YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
static yyconst flex_int16_t yy_nxt[2723]
unsigned int flex_uint32_t
void osrlpush_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Pushes the new state onto the stack.
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
#define YY_BREAK
YY_BUFFER_STATE osrl_scan_bytes(yyconst char *bytes, int len, yyscan_t yyscanner)
Setup the input buffer state to scan the given bytes.
#define comment
#define unput(c)
void osrlfree(void *, yyscan_t yyscanner)
static yyconst flex_int16_t yy_chk[2723]
struct yy_buffer_state * YY_BUFFER_STATE
#define yyout
static yyconst flex_int16_t yy_def[995]
#define YY_BUFFER_NEW
#define elementtext
#define YY_RESTORE_YY_MORE_OFFSET
static int input(yyscan_t yyscanner)
YYSTYPE * osrlget_lval(yyscan_t yyscanner)
#define xmldeclaration
#define YY_BUFFER_NORMAL
#define YY_MORE_ADJ
void osrlset_lloc(YYLTYPE *yylloc_param, yyscan_t yyscanner)
#define YY_RULE_SETUP
void osrl_switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Switch to a different input buffer.
static void osrl_load_buffer_state(yyscan_t yyscanner)
#define osrlwrap(n)
#define yyextra
int osrllex_init(yyscan_t *scanner)
void osrlrestart(FILE *input_file, yyscan_t yyscanner)
Immediately switch to a different input stream.
register char * yy_bp
YY_BUFFER_STATE osrl_scan_string(yyconst char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
struct yyguts_t * yyg
#define yylval
int osrlget_debug(yyscan_t yyscanner)
signed char flex_int8_t
#define EOB_ACT_END_OF_FILE
register int yy_act
static void yyunput(int c, char *buf_ptr, yyscan_t yyscanner)
#define YY_CURRENT_BUFFER_LVALUE
int flex_int32_t
FILE * osrlget_out(yyscan_t yyscanner)
Get the output stream.
void * osrlrealloc(void *, yy_size_t, yyscan_t yyscanner)
#define YY_START
void osrlset_extra(YY_EXTRA_TYPE user_defined, yyscan_t yyscanner)
Set the user-defined data.
void osrlset_debug(int debug_flag, yyscan_t yyscanner)
int yy_state_type
int osrlget_leng(yyscan_t yyscanner)
Get the length of the current token.
#define YY_CURRENT_BUFFER
#define yyconst
#define INITIAL
FILE * osrlget_in(yyscan_t yyscanner)
Get the input stream.
#define yyin
void osrl_delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Destroy the buffer.
static void yy_fatal_error(yyconst char msg[], yyscan_t yyscanner)
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define YY_END_OF_BUFFER
#define YY_STATE_EOF(state)
void osrlset_column(int column_no, yyscan_t yyscanner)
Set the current column.
int isatty(int)
#define BEGIN
#define YY_END_OF_BUFFER_CHAR
register char * yy_cp
void osrlpop_buffer_state(yyscan_t yyscanner)
Removes and deletes the top of the stack, if present.
YY_BUFFER_STATE osrl_create_buffer(FILE *file, int size, yyscan_t yyscanner)
Allocate and initialize an input buffer state.
#define YY_FATAL_ERROR(msg)
#define yyterminate()
unsigned short int flex_uint16_t
static yyconst flex_int32_t yy_ec[256]
#define YY_DO_BEFORE_ACTION
YYLTYPE * osrlget_lloc(yyscan_t yyscanner)
#define EOB_ACT_LAST_MATCH
size_t yy_size_t
#define YY_BUFFER_EOF_PENDING
#define yylineno
char * osrlget_text(yyscan_t yyscanner)
Get the current token.
#define yycolumn
#define EOB_ACT_CONTINUE_SCAN
YY_BUFFER_STATE osrl_scan_buffer(char *base, yy_size_t size, yyscan_t yyscanner)
Setup the input buffer state to scan directly from a user-specified character buffer.
#define YY_PRINT
#define YY_DECL
#define YY_BUF_SIZE
#define YY_EXIT_FAILURE
int osrllex_destroy(yyscan_t yyscanner)
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
#define YY_SC_TO_UI(c)
#define startelement
void osrlset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
#define yyleng
#define SERVICEURISTARTANDEND
#define JOBIDSTARTANDEND
#define INSTANCENAMESTARTANDEND
#define TIMESTARTANDEND
#define SERVICENAMESTARTANDEND
#define MESSAGESTARTANDEND