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>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 #endif /* ! C99 */
58 
59 /* Limits of integral types. */
60 #ifndef INT8_MIN
61 #define INT8_MIN (-128)
62 #endif
63 #ifndef INT16_MIN
64 #define INT16_MIN (-32767-1)
65 #endif
66 #ifndef INT32_MIN
67 #define INT32_MIN (-2147483647-1)
68 #endif
69 #ifndef INT8_MAX
70 #define INT8_MAX (127)
71 #endif
72 #ifndef INT16_MAX
73 #define INT16_MAX (32767)
74 #endif
75 #ifndef INT32_MAX
76 #define INT32_MAX (2147483647)
77 #endif
78 #ifndef UINT8_MAX
79 #define UINT8_MAX (255U)
80 #endif
81 #ifndef UINT16_MAX
82 #define UINT16_MAX (65535U)
83 #endif
84 #ifndef UINT32_MAX
85 #define UINT32_MAX (4294967295U)
86 #endif
87 
88 #endif /* ! FLEXINT_H */
89 
90 #ifdef __cplusplus
91 
92 /* The "const" storage-class-modifier is valid. */
93 #define YY_USE_CONST
94 
95 #else /* ! __cplusplus */
96 
97 /* 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
124 typedef 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
217 typedef size_t yy_size_t;
218 #endif
219 
220 #ifndef YY_STRUCT_YY_BUFFER_STATE
221 #define YY_STRUCT_YY_BUFFER_STATE
222 struct 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  */
243  int yy_is_our_buffer;
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  */
250  int yy_is_interactive;
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 
266  int yy_buffer_status;
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 
300 void osrlrestart (FILE *input_file ,yyscan_t yyscanner );
301 void osrl_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
302 YY_BUFFER_STATE osrl_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
303 void osrl_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
304 void osrl_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
305 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
306 void osrlpop_buffer_state (yyscan_t yyscanner );
307 
308 static void osrlensure_buffer_stack (yyscan_t yyscanner );
309 static void osrl_load_buffer_state (yyscan_t yyscanner );
310 static 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 
314 YY_BUFFER_STATE osrl_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
315 YY_BUFFER_STATE osrl_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
316 YY_BUFFER_STATE osrl_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
317 
318 void *osrlalloc (yy_size_t ,yyscan_t yyscanner );
319 void *osrlrealloc (void *,yy_size_t ,yyscan_t yyscanner );
320 void 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 
351 typedef unsigned char YY_CHAR;
352 
353 typedef int yy_state_type;
354 
355 #define yytext_ptr yytext_r
356 
357 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
358 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
359 static int yy_get_next_buffer (yyscan_t yyscanner );
360 static 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. */
376 struct 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,
1374 1, 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"
1390 
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 
1465 using std::cout;
1466 using std::endl;
1467 using 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. */
1502 struct 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;
1512  YY_BUFFER_STATE * yy_buffer_stack;
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;
1520  int yy_start_stack_ptr;
1522  int *yy_start_stack;
1524  char* yy_last_accepting_cpos;
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 
1539 static 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 
1549 int osrllex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1550 
1551 /* Accessor methods to globals.
1552  These are made visible to non-reentrant scanners for convenience. */
1553 
1554 int osrllex_destroy (yyscan_t yyscanner );
1555 
1556 int osrlget_debug (yyscan_t yyscanner );
1557 
1558 void osrlset_debug (int debug_flag ,yyscan_t yyscanner );
1559 
1560 YY_EXTRA_TYPE osrlget_extra (yyscan_t yyscanner );
1561 
1562 void osrlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1563 
1564 FILE *osrlget_in (yyscan_t yyscanner );
1565 
1566 void osrlset_in (FILE * in_str ,yyscan_t yyscanner );
1567 
1568 FILE *osrlget_out (yyscan_t yyscanner );
1569 
1570 void osrlset_out (FILE * out_str ,yyscan_t yyscanner );
1571 
1572 int osrlget_leng (yyscan_t yyscanner );
1573 
1574 char *osrlget_text (yyscan_t yyscanner );
1575 
1576 int osrlget_lineno (yyscan_t yyscanner );
1577 
1578 void osrlset_lineno (int line_number ,yyscan_t yyscanner );
1579 
1580 YYSTYPE * osrlget_lval (yyscan_t yyscanner );
1581 
1582 void 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
1594 extern "C" int osrlwrap (yyscan_t yyscanner );
1595 #else
1596 extern 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
1603 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1604 #endif
1605 
1606 #ifdef YY_NEED_STRLEN
1607 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1608 #endif
1609 
1610 #ifndef YY_NO_INPUT
1611 
1612 #ifdef __cplusplus
1613 static int yyinput (yyscan_t yyscanner );
1614 #else
1615 static 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 
1695 extern 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 
1719 YY_DECL
1720 {
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);
1756  osrl_create_buffer(yyin,YY_BUF_SIZE ,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. */
1767  *yy_cp = yyg->yy_hold_char;
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;
1775 yy_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  {
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 
1795 yy_find_action:
1796  yy_act = yy_accept[yy_current_state];
1797  if ( yy_act == 0 )
1798  { /* have to back up */
1799  yy_cp = yyg->yy_last_accepting_cpos;
1800  yy_current_state = yyg->yy_last_accepting_state;
1801  yy_act = yy_accept[yy_current_state];
1802  }
1803 
1805 
1806  if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
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 
1818 do_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 */
1824  *yy_cp = yyg->yy_hold_char;
1825  yy_cp = yyg->yy_last_accepting_cpos;
1826  yy_current_state = yyg->yy_last_accepting_state;
1827  goto yy_find_action;
1828 
1829 case 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 */
1836 case 2:
1838 #line 117 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1839 {YY_PRINT; yylval->sval = yytext; return(QUOTE);}
1840  YY_BREAK
1841 case 3:
1843 #line 118 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1844 {YY_PRINT; yylval->sval = yytext; return(TWOQUOTES);}
1845  YY_BREAK
1846 case 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
1852 case 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
1858 case 6:
1859 /* rule 6 can match eol */
1861 #line 122 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1862 {YY_PRINT;
1863 char *yytextEnd;
1864 yylval->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  }
1874 return(DOUBLE);}
1875  YY_BREAK
1876 case 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
1882 case 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
1888 case 9:
1889 /* rule 9 can match eol */
1891 #line 139 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1892 {YY_PRINT; return(NUMBEROFSOLUTIONSATT);}
1893  YY_BREAK
1894 case 10:
1895 /* rule 10 can match eol */
1897 #line 140 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1898 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
1899  YY_BREAK
1900 case 11:
1901 /* rule 11 can match eol */
1903 #line 141 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1904 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
1905  YY_BREAK
1906 case 12:
1907 /* rule 12 can match eol */
1909 #line 142 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1910 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
1911  YY_BREAK
1912 case 13:
1913 /* rule 13 can match eol */
1915 #line 143 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1917  YY_BREAK
1918 case 14:
1919 /* rule 14 can match eol */
1921 #line 144 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1923  YY_BREAK
1924 case 15:
1925 /* rule 15 can match eol */
1927 #line 145 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1929  YY_BREAK
1930 case 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
1936 case 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
1942 case 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
1948 case 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
1954 case 20:
1955 /* rule 20 can match eol */
1957 #line 150 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1958 {YY_PRINT; return(TARGETOBJECTIVEIDXATT);}
1959  YY_BREAK
1960 case 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
1966 case 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
1972 case 23:
1973 /* rule 23 can match eol */
1975 #line 154 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1977  YY_BREAK
1978 case 24:
1979 /* rule 24 can match eol */
1981 #line 155 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
1983  YY_BREAK
1984 case 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
1990 case 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
1996 case 27:
1997 /* rule 27 can match eol */
1999 #line 158 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2001  YY_BREAK
2002 case 28:
2003 /* rule 28 can match eol */
2005 #line 159 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2007  YY_BREAK
2008 case 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
2014 case 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
2020 case 31:
2021 /* rule 31 can match eol */
2023 #line 162 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2025  YY_BREAK
2026 case 32:
2027 /* rule 32 can match eol */
2029 #line 163 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2031  YY_BREAK
2032 case 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
2038 case 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
2044 case 35:
2045 /* rule 35 can match eol */
2047 #line 166 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2049  YY_BREAK
2050 case 36:
2051 /* rule 36 can match eol */
2053 #line 167 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2055  YY_BREAK
2056 case 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
2062 case 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
2068 case 39:
2069 /* rule 39 can match eol */
2071 #line 170 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2073  YY_BREAK
2074 case 40:
2075 /* rule 40 can match eol */
2077 #line 171 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2079  YY_BREAK
2080 case 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
2086 case 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
2092 case 43:
2093 /* rule 43 can match eol */
2095 #line 174 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2097  YY_BREAK
2098 case 44:
2099 /* rule 44 can match eol */
2101 #line 175 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2103  YY_BREAK
2104 case 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
2110 case 46:
2111 /* rule 46 can match eol */
2113 #line 179 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2115  YY_BREAK
2116 case 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
2122 case 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
2128 case 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
2134 case 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
2140 case 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
2146 case 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
2152 case 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
2158 case 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
2164 case 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
2170 case 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
2176 case 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
2182 case 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
2188 case 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
2194 case 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
2200 case 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
2206 case 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
2212 case 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
2218 case 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
2224 case 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
2230 case 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
2236 case 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
2242 case 68:
2243 /* rule 68 can match eol */
2245 #line 203 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2246 {YY_PRINT; return(TIMINGINFORMATIONSTART);}
2247  YY_BREAK
2248 case 69:
2249 /* rule 69 can match eol */
2251 #line 204 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2252 {YY_PRINT; return(TIMINGINFORMATIONEND);}
2253  YY_BREAK
2254 case 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
2260 case 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
2266 case 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
2272 case 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
2278 case 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
2284 case 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
2290 case 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
2296 case 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
2302 case 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
2308 case 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
2314 case 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
2320 case 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
2326 case 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
2332 case 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
2338 case 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
2344 case 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
2350 case 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
2356 case 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
2362 case 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
2368 case 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
2374 case 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
2380 case 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
2386 case 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
2392 case 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
2398 case 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
2404 case 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
2410 case 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
2416 case 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
2422 case 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
2428 case 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
2434 case 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
2440 case 101:
2441 /* rule 101 can match eol */
2443 #line 250 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2444 {YY_PRINT; return(SERVICEURISTARTANDEND);}
2445  YY_BREAK
2446 case 102:
2447 /* rule 102 can match eol */
2449 #line 251 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2450 {YY_PRINT; return(SERVICENAMESTARTANDEND);}
2451  YY_BREAK
2452 case 103:
2453 /* rule 103 can match eol */
2455 #line 252 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2457  YY_BREAK
2458 case 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
2464 case 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
2470 case 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
2476 case 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
2482 case 108:
2484 #line 262 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2485 BEGIN comment;
2486  YY_BREAK
2487 case 109:
2488 #line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2489 case 110:
2490 /* rule 110 can match eol */
2492 #line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2493 ;
2494  YY_BREAK
2495 case 111:
2497 #line 265 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2498 BEGIN 0;
2499  YY_BREAK
2500 case 112:
2502 #line 267 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2503 BEGIN xmldeclaration;
2504  YY_BREAK
2505 case 113:
2506 #line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2507 case 114:
2508 /* rule 114 can match eol */
2510 #line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2511 ;
2512  YY_BREAK
2513 case 115:
2515 #line 270 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2516 BEGIN 0;
2517  YY_BREAK
2518 case 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
2524 case 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
2530 case 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
2536 case 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
2552 case 120:
2554 #line 290 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
2555 ECHO;
2556  YY_BREAK
2557 #line 2558 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
2558 case YY_STATE_EOF(INITIAL):
2564 case YY_STATE_EOF(comment):
2565 case YY_STATE_EOF(xmldeclaration):
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. */
2574  *yy_cp = yyg->yy_hold_char;
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  */
2588  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
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  {
2638  case EOB_ACT_END_OF_FILE:
2639  {
2640  yyg->yy_did_buffer_switch_on_eof = 0;
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 
2655  yy_act = YY_STATE_EOF(YY_START);
2656  goto do_action;
2657  }
2658 
2659  else
2660  {
2661  if ( ! yyg->yy_did_buffer_switch_on_eof )
2662  YY_NEW_FILE;
2663  }
2664  break;
2665  }
2666 
2667  case EOB_ACT_CONTINUE_SCAN:
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 =
2679  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
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  */
2704 static 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 */
2758  YY_BUFFER_STATE b = YY_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 
2798  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
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 {
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  {
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  {
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 */
2904  *yy_cp = yyg->yy_hold_char;
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;
2934  yyg->yy_hold_char = *yy_cp;
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 
2949  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2950 
2951  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
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 
2984  case EOB_ACT_END_OF_FILE:
2985  {
2986  if ( osrlwrap(yyscanner ) )
2987  return EOF;
2988 
2989  if ( ! yyg->yy_did_buffer_switch_on_eof )
2990  YY_NEW_FILE;
2991 #ifdef __cplusplus
2992  return yyinput(yyscanner);
2993 #else
2994  return input(yyscanner);
2995 #endif
2996  }
2997 
2998  case EOB_ACT_CONTINUE_SCAN:
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 */
3007  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
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);
3032  osrl_create_buffer(yyin,YY_BUF_SIZE ,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. */
3059  *yyg->yy_c_buf_p = yyg->yy_hold_char;
3060  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
3061  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
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  */
3072  yyg->yy_did_buffer_switch_on_eof = 1;
3073 }
3074 
3075 static void osrl_load_buffer_state (yyscan_t yyscanner)
3076 {
3077  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3078  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
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;
3081  yyg->yy_hold_char = *yyg->yy_c_buf_p;
3082 }
3083 
3090  YY_BUFFER_STATE osrl_create_buffer (FILE * file, int size , yyscan_t yyscanner)
3091 {
3092  YY_BUFFER_STATE b;
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 
3118  void osrl_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
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
3135 extern 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 
3171  void osrl_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
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 
3201 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
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. */
3213  *yyg->yy_c_buf_p = yyg->yy_hold_char;
3214  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
3215  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3216  }
3217 
3218  /* Only push if top exists. Otherwise, replace top. */
3219  if (YY_CURRENT_BUFFER)
3220  yyg->yy_buffer_stack_top++;
3221  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3222 
3223  /* copied from osrl_switch_to_buffer. */
3224  osrl_load_buffer_state(yyscanner );
3225  yyg->yy_did_buffer_switch_on_eof = 1;
3226 }
3227 
3232 void osrlpop_buffer_state (yyscan_t yyscanner)
3233 {
3234  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3235  if (!YY_CURRENT_BUFFER)
3236  return;
3237 
3239  YY_CURRENT_BUFFER_LVALUE = NULL;
3240  if (yyg->yy_buffer_stack_top > 0)
3241  --yyg->yy_buffer_stack_top;
3242 
3243  if (YY_CURRENT_BUFFER) {
3244  osrl_load_buffer_state(yyscanner );
3245  yyg->yy_did_buffer_switch_on_eof = 1;
3246  }
3247 }
3248 
3249 /* Allocates the stack if it does not exist.
3250  * Guarantees space for at least one push.
3251  */
3252 static 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;
3264  yyg->yy_buffer_stack = (struct yy_buffer_state**)osrlalloc
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;
3273  yyg->yy_buffer_stack_top = 0;
3274  return;
3275  }
3276 
3277  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
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;
3284  (yyg->yy_buffer_stack,
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 
3302 YY_BUFFER_STATE osrl_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
3303 {
3304  YY_BUFFER_STATE b;
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 
3339 YY_BUFFER_STATE osrl_scan_string (yyconst char * yystr , yyscan_t yyscanner)
3340 {
3341 
3342  return osrl_scan_bytes(yystr,strlen(yystr) ,yyscanner);
3343 }
3344 
3352 YY_BUFFER_STATE osrl_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
3353 {
3354  YY_BUFFER_STATE b;
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 
3386 static 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 
3423 int osrlget_lineno (yyscan_t yyscanner)
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 
3436 int osrlget_column (yyscan_t yyscanner)
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 
3449 FILE *osrlget_in (yyscan_t yyscanner)
3450 {
3451  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3452  return yyin;
3453 }
3454 
3458 FILE *osrlget_out (yyscan_t yyscanner)
3459 {
3460  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3461  return yyout;
3462 }
3463 
3467 int osrlget_leng (yyscan_t yyscanner)
3468 {
3469  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3470  return yyleng;
3471 }
3472 
3477 char *osrlget_text (yyscan_t yyscanner)
3478 {
3479  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3480  return yytext;
3481 }
3482 
3487 void 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 
3497 void 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 
3512 void 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 
3529 void osrlset_in (FILE * in_str , yyscan_t yyscanner)
3530 {
3531  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3532  yyin = in_str ;
3533 }
3534 
3535 void osrlset_out (FILE * out_str , yyscan_t yyscanner)
3536 {
3537  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3538  yyout = out_str ;
3539 }
3540 
3541 int osrlget_debug (yyscan_t yyscanner)
3542 {
3543  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3544  return yy_flex_debug;
3545 }
3546 
3547 void 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 
3555 YYSTYPE * osrlget_lval (yyscan_t yyscanner)
3556 {
3557  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3558  return yylval;
3559 }
3560 
3561 void osrlset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3562 {
3563  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3564  yylval = yylval_param;
3565 }
3566 
3567 YYLTYPE *osrlget_lloc (yyscan_t yyscanner)
3568 {
3569  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3570  return yylloc;
3571 }
3572 
3573 void 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 
3586 int 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 
3615 int 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 
3643 static 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;
3651  yyg->yy_buffer_stack_top = 0;
3652  yyg->yy_buffer_stack_max = 0;
3653  yyg->yy_c_buf_p = (char *) 0;
3654  yyg->yy_init = 0;
3655  yyg->yy_start = 0;
3656 
3657  yyg->yy_start_stack_ptr = 0;
3658  yyg->yy_start_stack_depth = 0;
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. */
3677 int osrllex_destroy (yyscan_t yyscanner)
3678 {
3679  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3680 
3681  /* Pop the buffer stack, destroying each element. */
3682  while(YY_CURRENT_BUFFER){
3684  YY_CURRENT_BUFFER_LVALUE = NULL;
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
3711 static 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
3720 static 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 
3730 void *osrlalloc (yy_size_t size , yyscan_t yyscanner)
3731 {
3732  return (void *) malloc( size );
3733 }
3734 
3735 void *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 
3747 void 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 
register char * yy_bp
#define GENERALEND
#define JOBIDSTARTANDEND
#define SYSTEMEND
#define yylineno
#define yyterminate()
#define NUMBEROFTIMESATT
#define unput(c)
#define yylval
#define INSTANCENAMEEND
static int yy_init_globals(yyscan_t yyscanner)
#define SOLUTIONEND
#define INSTANCENAMESTART
size_t yy_buffer_stack_top
index of top of stack.
void osrlset_lval(YYSTYPE *yylval_param, yyscan_t yyscanner)
#define TIMINGINFORMATIONSTART
#define CONSTRAINTSEND
#define INITIAL
#define EMPTYCATEGORYATT
int yy_start_stack_depth
void osrl_flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Discard all buffered characters.
static int yy_get_next_buffer(yyscan_t yyscanner)
#define YY_END_OF_BUFFER
int osrlget_column(yyscan_t yyscanner)
Get the current column number.
FILE * osrlget_out(yyscan_t yyscanner)
Get the output stream.
#define DESCRIPTIONATT
#define EMPTYVALUEATT
#define YY_BUFFER_NORMAL
#define NUMBEROFSOLUTIONSATT
static yyconst flex_int16_t yy_def[995]
unsigned char flex_uint8_t
Definition: OSParseosil.cpp:78
void osrlset_lloc(YYLTYPE *yylloc_param, yyscan_t yyscanner)
void osrl_switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Switch to a different input buffer.
#define JOBEND
FILE * yyin_r
#define YY_STATE_EOF(state)
#define YY_BUFFER_EOF_PENDING
#define scanner
void osrlpush_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Pushes the new state onto the stack.
static yyconst flex_int32_t yy_rule_can_match_eol[121]
#define NUMBEROFCONATT
static yyconst flex_int16_t yy_nxt[2723]
#define YY_CURRENT_BUFFER_LVALUE
char yy_hold_char
#define ECHO
static void yy_fatal_error(yyconst char msg[], yyscan_t yyscanner)
int yy_more_flag
void osrlrestart(FILE *input_file, yyscan_t yyscanner)
Immediately switch to a different input stream.
#define NUMBEROFOTHERCONSTRAINTRESULTSATT
if(!yyg->yy_init)
void osrlset_debug(int debug_flag, yyscan_t yyscanner)
int yy_bs_lineno
The line count.
#define OSRLEND
#define SERVICENAMESTARTANDEND
#define OTHEREND
size_t yy_size_t
char * yytext_r
static yyconst flex_int32_t yy_ec[256]
void osrlset_extra(OSrLParserData *parserData, void *yyscanner)
YY_BUFFER_STATE osrl_create_buffer(FILE *file, int size, yyscan_t yyscanner)
Allocate and initialize an input buffer state.
#define YY_EXIT_FAILURE
#define QUOTE
int osrllex_destroy(void *scanner)
YYLTYPE * osrlget_lloc(yyscan_t yyscanner)
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.
int isatty(int)
#define YY_BREAK
size_t yy_buffer_stack_max
capacity of stack.
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 OSRLATTRIBUTETEXT
#define EMPTYNAMEATT
#define SYSTEMSTART
#define EOB_ACT_END_OF_FILE
int yy_state_type
static yyconst flex_int32_t yy_meta[54]
yy_size_t yy_buf_size
#define MESSAGEEND
YY_EXTRA_TYPE yyextra_r
#define TIMESTART
#define VARIABLESEND
#define NAMEATT
#define STATUSSTART
#define YY_FATAL_ERROR(msg)
#define EMPTYTYPEATT
static yyconst flex_int16_t yy_accept[984]
register int yy_act
#define NUMBEROFOTHEROBJECTIVERESULTSATT
unsigned int flex_uint32_t
Definition: OSParseosil.cpp:80
#define BEGIN
#define YY_DO_BEFORE_ACTION
double os_strtod_wrap(const char *str, char **strEnd)
Definition: OSMathUtil.cpp:125
#define VALUESEND
char * yy_c_buf_p
#define elementtext
struct yy_buffer_state * YY_BUFFER_STATE
static int input(yyscan_t yyscanner)
#define YY_NEW_FILE
#define CONSTART
#define xmldeclaration
#define OPTIMIZATIONEND
#define GREATERTHAN
void osrlset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
#define TIMEEND
#define OBJEND
#define CONSTRAINTSSTART
#define yyextra
#define YY_RESTORE_YY_MORE_OFFSET
#define SERVICEURISTARTANDEND
#define doublequoteattributetext
#define YY_PRINT
int yy_did_buffer_switch_on_eof
#define NUMBEROFVARIABLESATT
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
char * osrlget_text(yyscan_t yyscanner)
Get the current token.
int yy_bs_column
The column count.
#define VAREND
#define SERVICEURISTART
#define GENERALSTATUSEND
static void osrl_load_buffer_state(yyscan_t yyscanner)
short int flex_int16_t
Definition: OSParseosil.cpp:76
#define DUALVALUESSTART
#define CATEGORYATT
#define SERVICENAMEEND
#define CONEND
void osrlset_in(FILE *in_str, yyscan_t yyscanner)
Set the input stream.
#define yyout
#define yyleng
#define VARSTART
#define IDXATT
int osrlget_lineno(yyscan_t yyscanner)
Get the current line number.
#define yy_flex_debug
#define YY_EXTRA_TYPE
#define YY_READ_BUF_SIZE
#define JOBIDEND
void * osrlrealloc(void *, yy_size_t, yyscan_t yyscanner)
#define DUALVALUESEND
CONST unsigned char * s1
Definition: OSdtoa.cpp:1814
int yy_flex_debug_r
YY_BUFFER_STATE osrl_scan_string(yyconst char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
YY_DECL register yy_state_type yy_current_state
The main scanner function which does all the work.
#define SERVICEEND
#define OBJECTIVESSTART
void osrlset_column(int column_no, yyscan_t yyscanner)
Set the current column.
int yy_start_stack_ptr
#define TARGETOBJECTIVEIDXATT
#define YY_INPUT(buf, result, max_size)
int osrllex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
int * yy_start_stack
#define osrlwrap(n)
#define OPTIMIZATIONSTART
#define comment
#define OBJSTART
static yyconst flex_int16_t yy_base[995]
register char * yy_cp
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
#define SERVICEURIEND
#define VARIABLESSTART
#define yyconst
#define OTHERSTART
#define SERVICESTART
#define YY_START
#define YY_BUFFER_NEW
#define VALUEATT
static int
Definition: OSdtoa.cpp:2173
#define OBJECTIVESEND
void osrlpop_buffer_state(yyscan_t yyscanner)
Removes and deletes the top of the stack, if present.
#define INTEGER
#define ELEMENTTEXT
yy_state_type yy_last_accepting_state
#define EOB_ACT_CONTINUE_SCAN
#define TIMINGINFORMATIONEND
int flex_int32_t
Definition: OSParseosil.cpp:77
#define EOB_ACT_LAST_MATCH
#define startelement
#define ENDOFELEMENT
void * osrlalloc(yy_size_t, yyscan_t yyscanner)
static void yyunput(int c, char *buf_ptr, yyscan_t yyscanner)
int osrllex_init(void **ptr_yy_globals)
#define MESSAGESTARTANDEND
#define yylloc
int osrlget_leng(yyscan_t yyscanner)
Get the length of the current token.
#define NUMBEROFOBJECTIVESATT
#define NUMBEROFVARATT
YYSTYPE * osrlget_lval(yyscan_t yyscanner)
#define TIMESTARTANDEND
YYLTYPE * yylloc_r
unsigned short int flex_uint16_t
Definition: OSParseosil.cpp:79
flex_int32_t yy_verify
static yyconst flex_int16_t yy_chk[2723]
void * yyscan_t
#define DOUBLE
#define YY_DECL
#define YY_END_OF_BUFFER_CHAR
#define GENERALSTART
#define osrlattributetext
#define YY_BUF_SIZE
void osrlfree(void *, yyscan_t yyscanner)
#define JOBIDSTART
#define OSRLSTART
YY_EXTRA_TYPE osrlget_extra(yyscan_t yyscanner)
Get the user-defined data for this scanner.
static void
Definition: OSdtoa.cpp:1741
unsigned char YY_CHAR
#define TWOQUOTES
void osrlset_out(FILE *out_str, yyscan_t yyscanner)
#define VALUESSTART
static void osrl_init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
int osrllex_init_extra(YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
static void osrlensure_buffer_stack(yyscan_t yyscanner)
flex_int32_t yy_nxt
#define yycolumn
#define MESSAGESTART
#define NUMBEROFCONSTRAINTSATT
#define GENERALSTATUSSTART
#define INSTANCENAMESTARTANDEND
YYSTYPE * yylval_r
FILE * yyout_r
#define SERVICENAMESTART
#define YY_MORE_ADJ
#define UNITATT
#define singlequoteattributetext
#define YY_SC_TO_UI(c)
#define yyin
#define EMPTYUNITATT
#define ATTRIBUTETEXT
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
#define SOLUTIONSTART
#define STATUSEND
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
char * yy_last_accepting_cpos
#define YY_CURRENT_BUFFER
used for throwing exceptions.
Definition: OSErrorClass.h:31
#define YY_RULE_SETUP
void fint * n
#define JOBSTART
return b
Definition: OSdtoa.cpp:1719
signed char flex_int8_t
Definition: OSParseosil.cpp:75
real c
#define OSRLSTARTEMPTY
FILE * osrlget_in(yyscan_t yyscanner)
Get the input stream.
struct yyguts_t * yyg
#define TYPEATT
#define NUMBEROFOBJATT
int osrlget_debug(yyscan_t yyscanner)
static YYSIZE_T const char * yystr
#define yytext
void osrl_delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Destroy the buffer.
#define EMPTYDESCRIPTIONATT
#define NUMBEROFOTHERVARIABLERESULTSATT