OSParseosss.cpp
Go to the documentation of this file.
1 #line 2 "../../../../OS/src/OSParsers/OSParseosss.cpp"
2 
3 #line 4 "../../../../OS/src/OSParsers/OSParseosss.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 35
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 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 #ifdef __cplusplus
92 
93 /* The "const" storage-class-modifier is valid. */
94 #define YY_USE_CONST
95 
96 #else /* ! __cplusplus */
97 
98 /* C99 requires __STDC__ to be defined as 1. */
99 #if defined (__STDC__)
100 
101 #define YY_USE_CONST
102 
103 #endif /* defined (__STDC__) */
104 #endif /* ! __cplusplus */
105 
106 #ifdef YY_USE_CONST
107 #define yyconst const
108 #else
109 #define yyconst
110 #endif
111 
112 /* Returned upon end-of-file. */
113 #define YY_NULL 0
114 
115 /* Promotes a possibly negative, possibly signed char to an unsigned
116  * integer for use as an array index. If the signed char is negative,
117  * we want to instead treat it as an 8-bit unsigned char, hence the
118  * double cast.
119  */
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 
122 /* An opaque pointer. */
123 #ifndef YY_TYPEDEF_YY_SCANNER_T
124 #define YY_TYPEDEF_YY_SCANNER_T
125 typedef void* yyscan_t;
126 #endif
127 
128 /* For convenience, these vars (plus the bison vars far below)
129  are macros in the reentrant scanner. */
130 #define yyin yyg->yyin_r
131 #define yyout yyg->yyout_r
132 #define yyextra yyg->yyextra_r
133 #define yyleng yyg->yyleng_r
134 #define yytext yyg->yytext_r
135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
137 #define yy_flex_debug yyg->yy_flex_debug_r
138 
139 /* Enter a start condition. This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN yyg->yy_start = 1 + 2 *
144 
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state. The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START ((yyg->yy_start - 1) / 2)
150 #define YYSTATE YY_START
151 
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154 
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE osssrestart(yyin ,yyscanner )
157 
158 #define YY_END_OF_BUFFER_CHAR 0
159 
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #ifdef __ia64__
163 /* On IA-64, the buffer size is 16k, not 8k.
164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
165  * Ditto for the __ia64__ case accordingly.
166  */
167 #define YY_BUF_SIZE 32768
168 #else
169 #define YY_BUF_SIZE 16384
170 #endif /* __ia64__ */
171 #endif
172 
173 /* The state buf must be large enough to hold one state per character in the main buffer.
174  */
175 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
176 
177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
178 #define YY_TYPEDEF_YY_BUFFER_STATE
180 #endif
181 
182 #define EOB_ACT_CONTINUE_SCAN 0
183 #define EOB_ACT_END_OF_FILE 1
184 #define EOB_ACT_LAST_MATCH 2
185 
186  /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
187  * access to the local variable yy_act. Since yyless() is a macro, it would break
188  * existing scanners that call yyless() from OUTSIDE ossslex.
189  * One obvious solution it to make yy_act a global. I tried that, and saw
190  * a 5% performance hit in a non-yylineno scanner, because yy_act is
191  * normally declared as a register variable-- so it is not worth it.
192  */
193  #define YY_LESS_LINENO(n) \
194  do { \
195  int yyl;\
196  for ( yyl = n; yyl < yyleng; ++yyl )\
197  if ( yytext[yyl] == '\n' )\
198  --yylineno;\
199  }while(0)
200 
201 /* Return all but the first "n" matched characters back to the input stream. */
202 #define yyless(n) \
203  do \
204  { \
205  /* Undo effects of setting up yytext. */ \
206  int yyless_macro_arg = (n); \
207  YY_LESS_LINENO(yyless_macro_arg);\
208  *yy_cp = yyg->yy_hold_char; \
209  YY_RESTORE_YY_MORE_OFFSET \
210  yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
211  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
212  } \
213  while ( 0 )
214 
215 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
216 
217 #ifndef YY_TYPEDEF_YY_SIZE_T
218 #define YY_TYPEDEF_YY_SIZE_T
219 typedef size_t yy_size_t;
220 #endif
221 
222 #ifndef YY_STRUCT_YY_BUFFER_STATE
223 #define YY_STRUCT_YY_BUFFER_STATE
224 struct yy_buffer_state
225  {
226  FILE *yy_input_file;
227 
228  char *yy_ch_buf; /* input buffer */
229  char *yy_buf_pos; /* current position in input buffer */
230 
231  /* Size of input buffer in bytes, not including room for EOB
232  * characters.
233  */
235 
236  /* Number of characters read into yy_ch_buf, not including EOB
237  * characters.
238  */
239  int yy_n_chars;
240 
241  /* Whether we "own" the buffer - i.e., we know we created it,
242  * and can realloc() it to grow it, and should free() it to
243  * delete it.
244  */
245  int yy_is_our_buffer;
246 
247  /* Whether this is an "interactive" input source; if so, and
248  * if we're using stdio for input, then we want to use getc()
249  * instead of fread(), to make sure we stop fetching input after
250  * each newline.
251  */
252  int yy_is_interactive;
253 
254  /* Whether we're considered to be at the beginning of a line.
255  * If so, '^' rules will be active on the next match, otherwise
256  * not.
257  */
258  int yy_at_bol;
259 
260  int yy_bs_lineno;
261  int yy_bs_column;
263  /* Whether to try to fill the input buffer when we reach the
264  * end of it.
265  */
266  int yy_fill_buffer;
267 
268  int yy_buffer_status;
269 
270 #define YY_BUFFER_NEW 0
271 #define YY_BUFFER_NORMAL 1
272  /* When an EOF's been seen but there's still some text to process
273  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
274  * shouldn't try reading from the input source any more. We might
275  * still have a bunch of tokens to match, though, because of
276  * possible backing-up.
277  *
278  * When we actually see the EOF, we change the status to "new"
279  * (via osssrestart()), so that the user can continue scanning by
280  * just pointing yyin at a new input file.
281  */
282 #define YY_BUFFER_EOF_PENDING 2
283 
284  };
285 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
286 
287 /* We provide macros for accessing buffer states in case in the
288  * future we want to put the buffer states in a more general
289  * "scanner state".
290  *
291  * Returns the top of the stack, or NULL.
292  */
293 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
294  ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
295  : NULL)
296 
297 /* Same as previous macro, but useful when we know that the buffer stack is not
298  * NULL or when we need an lvalue. For internal use only.
299  */
300 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
301 
302 void osssrestart (FILE *input_file ,yyscan_t yyscanner );
303 void osss_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
304 YY_BUFFER_STATE osss_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
305 void osss_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
306 void osss_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
307 void ossspush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
308 void ossspop_buffer_state (yyscan_t yyscanner );
309 
310 static void osssensure_buffer_stack (yyscan_t yyscanner );
311 static void osss_load_buffer_state (yyscan_t yyscanner );
312 static void osss_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
313 
314 #define YY_FLUSH_BUFFER osss_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
315 
316 YY_BUFFER_STATE osss_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
317 YY_BUFFER_STATE osss_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
318 YY_BUFFER_STATE osss_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
319 
320 void *osssalloc (yy_size_t ,yyscan_t yyscanner );
321 void *osssrealloc (void *,yy_size_t ,yyscan_t yyscanner );
322 void osssfree (void * ,yyscan_t yyscanner );
323 
324 #define yy_new_buffer osss_create_buffer
325 
326 #define yy_set_interactive(is_interactive) \
327  { \
328  if ( ! YY_CURRENT_BUFFER ){ \
329  osssensure_buffer_stack (yyscanner); \
330  YY_CURRENT_BUFFER_LVALUE = \
331  osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
332  } \
333  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
334  }
335 
336 #define yy_set_bol(at_bol) \
337  { \
338  if ( ! YY_CURRENT_BUFFER ){\
339  osssensure_buffer_stack (yyscanner); \
340  YY_CURRENT_BUFFER_LVALUE = \
341  osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
342  } \
343  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
344  }
345 
346 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
347 
348 /* Begin user sect3 */
349 
350 #define ossswrap(n) 1
351 #define YY_SKIP_YYWRAP
352 
353 typedef unsigned char YY_CHAR;
354 
355 typedef int yy_state_type;
356 
357 #define yytext_ptr yytext_r
358 
359 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
360 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
361 static int yy_get_next_buffer (yyscan_t yyscanner );
362 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
363 
364 /* Done after the current pattern has been matched and before the
365  * corresponding action - sets up yytext.
366  */
367 #define YY_DO_BEFORE_ACTION \
368  yyg->yytext_ptr = yy_bp; \
369  yyleng = (size_t) (yy_cp - yy_bp); \
370  yyg->yy_hold_char = *yy_cp; \
371  *yy_cp = '\0'; \
372  yyg->yy_c_buf_p = yy_cp;
373 
374 #define YY_NUM_RULES 60
375 #define YY_END_OF_BUFFER 61
376 /* This struct is not used in this scanner,
377  but its presence is necessary. */
378 struct yy_trans_info
379  {
382  };
384  { 0,
385  1, 1, 61, 59, 1, 1, 59, 8, 59, 59,
386  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
387  59, 59, 59, 59, 1, 0, 7, 0, 0, 0,
388  0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
389  16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
391  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
393  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 
396  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397  0, 0, 0, 0, 0, 0, 18, 0, 5, 0,
398  0, 0, 0, 40, 0, 0, 0, 0, 0, 0,
399  17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400  0, 0, 0, 0, 0, 39, 0, 0, 0, 0,
401  0, 0, 0, 0, 0, 0, 42, 0, 0, 0,
402  0, 0, 38, 0, 0, 40, 0, 0, 0, 0,
403  0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
404  0, 0, 41, 0, 0, 0, 0, 0, 37, 0,
405  0, 39, 0, 0, 0, 0, 0, 0, 0, 0,
406 
407  0, 0, 0, 0, 0, 42, 0, 0, 0, 0,
408  0, 38, 20, 0, 0, 25, 0, 0, 0, 0,
409  34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410  0, 0, 0, 41, 0, 0, 0, 0, 0, 37,
411  19, 0, 0, 24, 0, 0, 0, 0, 33, 0,
412  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
413  0, 0, 20, 0, 0, 25, 0, 0, 0, 0,
414  34, 0, 0, 0, 0, 0, 15, 0, 0, 0,
415  0, 0, 0, 57, 0, 0, 0, 19, 0, 0,
416  24, 0, 0, 0, 0, 33, 0, 0, 0, 0,
417 
418  0, 3, 0, 0, 0, 0, 58, 0, 0, 0,
419  0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
420  14, 0, 2, 0, 0, 0, 0, 57, 0, 0,
421  0, 0, 0, 0, 0, 0, 0, 47, 0, 50,
422  0, 0, 3, 0, 36, 0, 54, 0, 0, 0,
423  0, 0, 0, 0, 13, 0, 0, 0, 48, 0,
424  49, 0, 0, 2, 0, 35, 0, 53, 0, 0,
425  0, 0, 0, 0, 0, 0, 0, 0, 47, 0,
426  50, 0, 0, 36, 0, 54, 0, 0, 0, 0,
427  0, 10, 12, 0, 0, 0, 0, 0, 49, 0,
428 
429  0, 35, 0, 53, 0, 0, 0, 0, 0, 11,
430  0, 0, 0, 0, 23, 28, 30, 0, 0, 0,
431  0, 12, 0, 0, 9, 0, 0, 0, 29, 0,
432  0, 0, 0, 11, 0, 0, 0, 22, 0, 27,
433  0, 0, 30, 32, 0, 52, 0, 0, 0, 0,
434  21, 0, 26, 0, 0, 29, 31, 0, 51, 0,
435  0, 0, 0, 0, 22, 0, 27, 0, 32, 0,
436  52, 0, 0, 0, 0, 21, 0, 26, 0, 31,
437  0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
438  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
439 
440  0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
441  0, 55, 0, 0, 0, 0, 0, 0, 0, 0,
442  0, 56, 46, 0, 0, 0, 0, 0, 0, 0,
443  0, 55, 45, 0, 0, 0, 0, 0, 0, 0,
444  0, 46, 0, 44, 0, 0, 0, 0, 45, 0,
445  43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
446  0, 0, 0, 0, 0, 0, 0
447  } ;
448 
450  { 0,
451  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
452  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
453  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
454  1, 2, 4, 5, 4, 4, 1, 4, 1, 4,
455  4, 4, 4, 1, 6, 4, 4, 4, 4, 4,
456  4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
457  1, 1, 7, 4, 4, 4, 4, 8, 4, 9,
458  4, 4, 10, 11, 4, 12, 13, 4, 14, 15,
459  4, 16, 4, 4, 4, 4, 4, 4, 4, 4,
460  1, 4, 1, 1, 4, 1, 17, 18, 19, 20,
461 
462  21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
463  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
464  4, 4, 1, 1, 1, 4, 1, 1, 1, 1,
465  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 
473  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
477  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478  1, 1, 1, 1, 1
479  } ;
480 
482  { 0,
483  1, 2, 3, 2, 2, 2, 2, 2, 2, 2,
484  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
485  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
486  2, 2, 2, 2, 2, 2, 2, 2, 2, 2
487  } ;
488 
490  { 0,
491  0, 0, 964, 965, 39, 41, 39, 965, 929, 931,
492  944, 920, 934, 937, 927, 925, 924, 922, 925, 917,
493  917, 913, 29, 928, 45, 48, 965, 914, 916, 929,
494  920, 965, 914, 912, 911, 909, 912, 904, 904, 31,
495  965, 906, 906, 899, 909, 905, 904, 896, 912, 906,
496  893, 51, 50, 902, 901, 891, 896, 889, 901, 887,
497  899, 888, 888, 881, 888, 880, 896, 890, 877, 53,
498  58, 886, 876, 881, 869, 885, 76, 870, 884, 872,
499  891, 892, 892, 85, 91, 872, 871, 870, 869, 866,
500  859, 856, 855, 857, 863, 865, 855, 849, 865, 95,
501 
502  865, 873, 874, 874, 97, 99, 854, 853, 852, 851,
503  848, 839, 838, 840, 849, 103, 965, 858, 965, 847,
504  863, 845, 107, 111, 864, 115, 117, 81, 119, 832,
505  965, 842, 845, 840, 832, 833, 827, 826, 835, 121,
506  844, 833, 849, 831, 125, 130, 850, 134, 136, 93,
507  138, 818, 828, 831, 830, 827, 140, 844, 814, 812,
508  144, 818, 149, 840, 839, 965, 153, 806, 157, 805,
509  811, 803, 161, 155, 820, 804, 806, 965, 800, 810,
510  813, 810, 167, 827, 797, 795, 171, 801, 173, 823,
511  822, 965, 177, 789, 181, 788, 794, 786, 185, 99,
512 
513  803, 787, 786, 189, 814, 965, 793, 781, 191, 795,
514  810, 965, 195, 809, 777, 199, 807, 775, 778, 773,
515  203, 803, 786, 775, 774, 783, 207, 773, 789, 770,
516  766, 209, 794, 965, 773, 761, 211, 775, 790, 965,
517  215, 789, 757, 219, 787, 755, 758, 753, 223, 783,
518  766, 755, 764, 227, 229, 231, 754, 235, 237, 778,
519  241, 777, 965, 749, 775, 965, 747, 741, 745, 771,
520  965, 737, 754, 734, 233, 245, 965, 741, 741, 249,
521  251, 740, 255, 257, 764, 261, 763, 965, 735, 761,
522  965, 733, 727, 731, 757, 965, 723, 721, 253, 265,
523 
524  269, 273, 754, 722, 277, 752, 965, 281, 719, 718,
525  718, 716, 731, 730, 285, 719, 728, 287, 743, 727,
526  965, 291, 295, 741, 709, 299, 739, 965, 303, 706,
527  705, 705, 703, 718, 307, 707, 716, 309, 731, 313,
528  730, 729, 965, 721, 317, 727, 321, 726, 694, 693,
529  325, 692, 699, 698, 327, 706, 688, 718, 965, 701,
530  331, 716, 715, 965, 707, 335, 713, 339, 712, 680,
531  679, 343, 678, 685, 345, 693, 675, 705, 965, 704,
532  965, 687, 702, 965, 701, 965, 349, 351, 353, 357,
533  359, 965, 361, 700, 687, 679, 674, 696, 965, 679,
534 
535  694, 965, 693, 965, 365, 367, 369, 373, 375, 377,
536  692, 679, 671, 656, 381, 385, 389, 688, 393, 397,
537  687, 965, 655, 659, 965, 651, 401, 405, 409, 683,
538  413, 417, 682, 965, 650, 654, 663, 421, 678, 425,
539  677, 676, 965, 429, 675, 433, 674, 653, 657, 655,
540  437, 509, 441, 505, 501, 965, 445, 497, 449, 492,
541  471, 475, 460, 480, 965, 479, 965, 471, 965, 448,
542  965, 418, 453, 417, 436, 965, 432, 965, 428, 965,
543  424, 965, 394, 455, 457, 391, 459, 461, 387, 464,
544  466, 470, 392, 119, 388, 45, 472, 476, 384, 440,
545 
546  380, 164, 478, 392, 487, 357, 361, 354, 345, 343,
547  337, 498, 352, 502, 313, 315, 308, 299, 301, 297,
548  316, 965, 506, 312, 302, 279, 284, 265, 275, 253,
549  280, 965, 510, 276, 266, 245, 250, 227, 235, 211,
550  236, 965, 204, 965, 200, 198, 198, 210, 965, 176,
551  965, 176, 174, 168, 163, 156, 147, 140, 147, 115,
552  124, 87, 77, 52, 43, 28, 965, 514, 516, 518,
553  520, 523, 524, 526, 529, 531, 533, 534, 536, 538,
554  541, 543, 544, 546, 548, 550, 553, 555, 557, 558,
555  561, 563, 565, 566, 569, 570, 572, 575, 576, 578,
556 
557  581, 582, 584, 587, 588, 591, 592, 594, 597, 599,
558  601, 603, 604, 607, 609, 611, 612, 614, 617, 618,
559  621, 622, 624, 627, 628, 630, 632, 634, 637, 638,
560  640, 643, 645, 647, 649, 651, 653, 655, 657, 658,
561  660, 663, 664, 667, 668, 671, 673
562  } ;
563 
565  { 0,
566  567, 1, 567, 567, 567, 567, 567, 567, 567, 567,
567  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
568  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
569  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
570  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
571  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
572  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
573  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
574  567, 567, 567, 567, 568, 567, 567, 567, 567, 567,
575  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
576 
577  567, 567, 567, 567, 567, 569, 567, 567, 567, 567,
578  567, 567, 567, 567, 567, 570, 567, 567, 567, 567,
579  567, 567, 571, 568, 572, 567, 567, 567, 567, 567,
580  567, 567, 567, 567, 567, 567, 567, 567, 567, 573,
581  567, 567, 567, 567, 574, 569, 575, 567, 567, 567,
582  567, 567, 567, 567, 567, 567, 570, 576, 567, 567,
583  567, 567, 571, 577, 572, 567, 578, 567, 579, 567,
584  567, 567, 580, 567, 567, 567, 567, 567, 567, 567,
585  567, 567, 573, 581, 567, 567, 567, 567, 574, 582,
586  575, 567, 583, 567, 584, 567, 567, 567, 585, 567,
587 
588  567, 567, 567, 567, 576, 567, 567, 567, 586, 567,
589  577, 567, 578, 587, 567, 579, 588, 567, 567, 567,
590  580, 589, 567, 567, 567, 567, 567, 567, 567, 567,
591  567, 567, 581, 567, 567, 567, 590, 567, 582, 567,
592  583, 591, 567, 584, 592, 567, 567, 567, 585, 593,
593  567, 567, 567, 567, 567, 594, 567, 567, 586, 595,
594  567, 587, 567, 567, 588, 567, 567, 567, 567, 589,
595  567, 567, 567, 567, 567, 596, 567, 567, 567, 567,
596  597, 567, 567, 590, 598, 567, 591, 567, 567, 592,
597  567, 567, 567, 567, 593, 567, 567, 567, 567, 599,
598 
599  600, 594, 601, 567, 602, 595, 567, 603, 567, 567,
600  567, 567, 567, 567, 567, 567, 567, 596, 604, 567,
601  567, 605, 597, 606, 567, 607, 598, 567, 608, 567,
602  567, 567, 567, 567, 567, 567, 567, 599, 609, 600,
603  610, 601, 567, 567, 602, 611, 603, 612, 567, 567,
604  567, 567, 567, 567, 613, 567, 567, 604, 567, 567,
605  605, 614, 606, 567, 567, 607, 615, 608, 616, 567,
606  567, 567, 567, 567, 617, 567, 567, 609, 567, 610,
607  567, 567, 611, 567, 612, 567, 567, 567, 618, 567,
608  567, 567, 613, 619, 567, 567, 567, 614, 567, 567,
609 
610  615, 567, 616, 567, 567, 567, 620, 567, 567, 617,
611  621, 567, 567, 567, 622, 623, 618, 624, 625, 626,
612  619, 567, 567, 567, 567, 567, 627, 628, 620, 629,
613  630, 631, 621, 567, 567, 567, 567, 622, 632, 623,
614  633, 624, 567, 625, 634, 626, 635, 567, 567, 567,
615  627, 636, 628, 637, 629, 567, 630, 638, 631, 639,
616  567, 567, 567, 632, 567, 633, 567, 634, 567, 635,
617  567, 567, 567, 567, 636, 567, 637, 567, 638, 567,
618  639, 567, 567, 567, 567, 567, 567, 567, 567, 567,
619  640, 567, 567, 567, 567, 567, 641, 567, 567, 567,
620 
621  567, 567, 640, 642, 643, 567, 567, 567, 567, 567,
622  567, 641, 644, 645, 567, 567, 567, 567, 567, 567,
623  642, 567, 643, 646, 567, 567, 567, 567, 567, 567,
624  644, 567, 645, 647, 567, 567, 567, 567, 567, 567,
625  646, 567, 567, 567, 567, 567, 567, 647, 567, 567,
626  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
627  567, 567, 567, 567, 567, 567, 0, 567, 567, 567,
628  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
629  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
630  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
631 
632  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
633  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
634  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
635  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
636  567, 567, 567, 567, 567, 567, 567
637  } ;
638 
640  { 0,
641  4, 5, 6, 4, 4, 7, 8, 4, 4, 4,
642  4, 4, 4, 4, 4, 4, 4, 9, 10, 11,
643  12, 13, 4, 14, 15, 16, 4, 17, 18, 19,
644  20, 21, 22, 4, 23, 4, 4, 24, 4, 4,
645  25, 25, 25, 25, 26, 27, 25, 25, 551, 56,
646  551, 73, 85, 85, 106, 106, 28, 29, 30, 57,
647  31, 74, 32, 33, 34, 510, 35, 36, 37, 38,
648  39, 59, 544, 40, 86, 511, 41, 116, 116, 60,
649  87, 88, 107, 89, 544, 61, 123, 123, 108, 109,
650  171, 110, 85, 85, 172, 125, 140, 140, 145, 145,
651 
652  106, 106, 197, 147, 116, 116, 198, 158, 123, 123,
653  251, 164, 567, 567, 252, 567, 167, 167, 169, 169,
654  173, 173, 140, 140, 566, 184, 145, 145, 168, 190,
655  170, 567, 567, 565, 567, 193, 193, 195, 195, 199,
656  199, 567, 567, 507, 567, 209, 209, 194, 508, 196,
657  567, 567, 564, 567, 167, 167, 563, 214, 169, 169,
658  562, 217, 173, 173, 561, 222, 223, 224, 567, 567,
659  225, 567, 237, 237, 567, 567, 560, 567, 193, 193,
660  559, 242, 195, 195, 519, 245, 199, 199, 551, 250,
661  256, 256, 209, 209, 520, 260, 567, 567, 558, 567,
662 
663  567, 567, 551, 567, 567, 567, 557, 567, 276, 276,
664  281, 281, 237, 237, 549, 285, 567, 567, 544, 567,
665  567, 567, 556, 567, 567, 567, 544, 567, 300, 300,
666  301, 301, 256, 256, 555, 303, 305, 305, 567, 567,
667  542, 567, 308, 308, 316, 317, 276, 276, 554, 319,
668  322, 322, 281, 281, 551, 324, 326, 326, 567, 567,
669  553, 567, 329, 329, 336, 337, 300, 300, 552, 339,
670  301, 301, 551, 341, 567, 567, 550, 567, 305, 305,
671  549, 346, 308, 308, 532, 348, 355, 355, 567, 567,
672  547, 567, 322, 322, 544, 362, 567, 567, 546, 567,
673 
674  326, 326, 545, 367, 329, 329, 544, 369, 375, 375,
675  567, 567, 543, 567, 567, 567, 542, 567, 567, 567,
676  522, 567, 567, 567, 540, 567, 389, 389, 355, 355,
677  539, 394, 567, 567, 538, 567, 567, 567, 537, 567,
678  567, 567, 536, 567, 407, 407, 375, 375, 535, 411,
679  415, 415, 416, 416, 389, 389, 532, 418, 419, 419,
680  420, 420, 567, 567, 530, 567, 427, 427, 428, 428,
681  407, 407, 529, 430, 431, 431, 432, 432, 567, 567,
682  528, 567, 415, 415, 527, 439, 416, 416, 526, 441,
683  567, 567, 525, 567, 419, 419, 522, 445, 420, 420,
684 
685  518, 447, 427, 427, 515, 452, 428, 428, 509, 454,
686  567, 567, 506, 567, 431, 431, 498, 458, 432, 432,
687  492, 460, 567, 567, 489, 567, 567, 567, 482, 567,
688  567, 567, 480, 567, 567, 567, 478, 567, 567, 567,
689  476, 567, 567, 567, 488, 567, 567, 567, 486, 567,
690  567, 567, 471, 567, 487, 487, 490, 490, 491, 491,
691  487, 487, 497, 497, 516, 490, 490, 491, 491, 517,
692  504, 505, 505, 497, 497, 469, 513, 514, 514, 567,
693  567, 493, 567, 467, 465, 494, 499, 485, 505, 505,
694  500, 524, 495, 496, 484, 483, 482, 501, 502, 567,
695 
696  567, 480, 567, 514, 514, 456, 534, 567, 567, 478,
697  567, 567, 567, 476, 567, 124, 124, 146, 146, 157,
698  157, 163, 163, 165, 165, 183, 183, 189, 189, 191,
699  191, 205, 205, 211, 211, 213, 213, 216, 216, 221,
700  221, 233, 233, 239, 239, 241, 241, 244, 244, 249,
701  249, 259, 259, 262, 262, 265, 265, 270, 270, 284,
702  284, 287, 287, 290, 290, 295, 295, 302, 302, 306,
703  306, 318, 318, 323, 323, 327, 327, 338, 338, 340,
704  340, 342, 342, 345, 345, 347, 347, 358, 358, 361,
705  361, 363, 363, 366, 366, 368, 368, 378, 378, 380,
706 
707  380, 383, 383, 385, 385, 393, 393, 398, 398, 401,
708  401, 403, 403, 410, 410, 417, 417, 421, 421, 429,
709  429, 433, 433, 438, 438, 440, 440, 442, 442, 444,
710  444, 446, 446, 451, 451, 453, 453, 455, 455, 457,
711  457, 459, 459, 464, 464, 466, 466, 468, 468, 470,
712  470, 475, 475, 477, 477, 479, 479, 481, 481, 503,
713  503, 512, 512, 521, 521, 523, 523, 531, 531, 533,
714  533, 541, 541, 548, 548, 474, 473, 472, 471, 469,
715  443, 467, 465, 463, 462, 461, 434, 456, 450, 449,
716  448, 422, 443, 437, 436, 435, 434, 404, 402, 426,
717 
718  399, 425, 424, 423, 422, 386, 384, 414, 381, 379,
719  413, 412, 409, 408, 406, 405, 404, 402, 400, 364,
720  399, 397, 359, 396, 395, 392, 391, 390, 388, 387,
721  386, 384, 382, 343, 381, 379, 377, 376, 374, 373,
722  372, 371, 370, 328, 365, 364, 360, 359, 357, 356,
723  354, 353, 352, 351, 350, 349, 307, 344, 343, 335,
724  334, 296, 333, 332, 331, 291, 330, 288, 328, 325,
725  321, 320, 315, 314, 313, 271, 312, 311, 310, 266,
726  309, 263, 307, 304, 299, 298, 297, 296, 294, 293,
727  292, 291, 289, 288, 240, 286, 283, 282, 234, 280,
728 
729  279, 278, 277, 275, 274, 273, 272, 271, 269, 268,
730  267, 266, 264, 263, 212, 261, 258, 257, 206, 255,
731  254, 253, 248, 247, 246, 243, 192, 240, 238, 236,
732  235, 234, 232, 231, 230, 229, 228, 227, 226, 220,
733  219, 218, 215, 166, 212, 210, 208, 207, 206, 204,
734  203, 202, 201, 200, 192, 188, 187, 186, 185, 182,
735  181, 180, 179, 178, 177, 176, 175, 174, 166, 162,
736  161, 160, 159, 156, 155, 154, 153, 152, 151, 150,
737  149, 148, 144, 143, 142, 141, 139, 138, 137, 136,
738  135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
739 
740  122, 121, 120, 119, 118, 117, 115, 114, 113, 112,
741  111, 105, 104, 103, 102, 101, 100, 99, 98, 97,
742  96, 95, 94, 93, 92, 91, 90, 84, 83, 82,
743  81, 80, 79, 78, 77, 76, 75, 72, 71, 70,
744  69, 68, 67, 66, 65, 64, 63, 62, 58, 55,
745  54, 53, 52, 51, 50, 49, 48, 47, 46, 45,
746  44, 43, 42, 567, 3, 567, 567, 567, 567, 567,
747  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
748  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
749  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
750 
751  567, 567, 567, 567, 567
752  } ;
753 
755  { 0,
756  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
757  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
758  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
759  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
760  5, 5, 6, 6, 7, 7, 25, 25, 566, 23,
761  565, 40, 52, 52, 70, 70, 7, 7, 7, 23,
762  7, 40, 7, 7, 7, 496, 7, 7, 7, 7,
763  7, 26, 564, 7, 53, 496, 7, 77, 77, 26,
764  53, 53, 71, 53, 563, 26, 84, 84, 71, 71,
765  128, 71, 85, 85, 128, 85, 100, 100, 105, 105,
766 
767  106, 106, 150, 106, 116, 116, 150, 116, 123, 123,
768  200, 123, 124, 124, 200, 124, 126, 126, 127, 127,
769  129, 129, 140, 140, 562, 140, 145, 145, 126, 145,
770  127, 146, 146, 561, 146, 148, 148, 149, 149, 151,
771  151, 157, 157, 494, 157, 161, 161, 148, 494, 149,
772  163, 163, 560, 163, 167, 167, 559, 167, 169, 169,
773  558, 169, 173, 173, 557, 173, 174, 174, 183, 183,
774  174, 183, 187, 187, 189, 189, 556, 189, 193, 193,
775  555, 193, 195, 195, 502, 195, 199, 199, 554, 199,
776  204, 204, 209, 209, 502, 209, 213, 213, 553, 213,
777 
778  216, 216, 552, 216, 221, 221, 550, 221, 227, 227,
779  232, 232, 237, 237, 548, 237, 241, 241, 547, 241,
780  244, 244, 546, 244, 249, 249, 545, 249, 254, 254,
781  255, 255, 256, 256, 543, 256, 258, 258, 259, 259,
782  541, 259, 261, 261, 275, 275, 276, 276, 540, 276,
783  280, 280, 281, 281, 539, 281, 283, 283, 284, 284,
784  538, 284, 286, 286, 299, 299, 300, 300, 537, 300,
785  301, 301, 536, 301, 302, 302, 535, 302, 305, 305,
786  534, 305, 308, 308, 531, 308, 315, 315, 318, 318,
787  530, 318, 322, 322, 529, 322, 323, 323, 528, 323,
788 
789  326, 326, 527, 326, 329, 329, 526, 329, 335, 335,
790  338, 338, 525, 338, 340, 340, 524, 340, 345, 345,
791  521, 345, 347, 347, 520, 347, 351, 351, 355, 355,
792  519, 355, 361, 361, 518, 361, 366, 366, 517, 366,
793  368, 368, 516, 368, 372, 372, 375, 375, 515, 375,
794  387, 387, 388, 388, 389, 389, 513, 389, 390, 390,
795  391, 391, 393, 393, 511, 393, 405, 405, 406, 406,
796  407, 407, 510, 407, 408, 408, 409, 409, 410, 410,
797  509, 410, 415, 415, 508, 415, 416, 416, 507, 416,
798  417, 417, 506, 417, 419, 419, 504, 419, 420, 420,
799 
800  501, 420, 427, 427, 499, 427, 428, 428, 495, 428,
801  429, 429, 493, 429, 431, 431, 489, 431, 432, 432,
802  486, 432, 438, 438, 483, 438, 440, 440, 481, 440,
803  444, 444, 479, 444, 446, 446, 477, 446, 451, 451,
804  475, 451, 453, 453, 474, 453, 457, 457, 472, 457,
805  459, 459, 470, 459, 473, 473, 484, 484, 485, 485,
806  487, 487, 488, 488, 500, 490, 490, 491, 491, 500,
807  491, 492, 492, 497, 497, 468, 497, 498, 498, 503,
808  503, 487, 503, 466, 464, 487, 490, 463, 505, 505,
809  490, 505, 487, 487, 462, 461, 460, 490, 490, 512,
810 
811  512, 458, 512, 514, 514, 455, 514, 523, 523, 454,
812  523, 533, 533, 452, 533, 568, 568, 569, 569, 570,
813  570, 571, 571, 572, 572, 573, 573, 574, 574, 575,
814  575, 576, 576, 577, 577, 578, 578, 579, 579, 580,
815  580, 581, 581, 582, 582, 583, 583, 584, 584, 585,
816  585, 586, 586, 587, 587, 588, 588, 589, 589, 590,
817  590, 591, 591, 592, 592, 593, 593, 594, 594, 595,
818  595, 596, 596, 597, 597, 598, 598, 599, 599, 600,
819  600, 601, 601, 602, 602, 603, 603, 604, 604, 605,
820  605, 606, 606, 607, 607, 608, 608, 609, 609, 610,
821 
822  610, 611, 611, 612, 612, 613, 613, 614, 614, 615,
823  615, 616, 616, 617, 617, 618, 618, 619, 619, 620,
824  620, 621, 621, 622, 622, 623, 623, 624, 624, 625,
825  625, 626, 626, 627, 627, 628, 628, 629, 629, 630,
826  630, 631, 631, 632, 632, 633, 633, 634, 634, 635,
827  635, 636, 636, 637, 637, 638, 638, 639, 639, 640,
828  640, 641, 641, 642, 642, 643, 643, 644, 644, 645,
829  645, 646, 646, 647, 647, 450, 449, 448, 447, 445,
830  442, 441, 439, 437, 436, 435, 433, 430, 426, 424,
831  423, 421, 418, 414, 413, 412, 411, 403, 401, 400,
832 
833  398, 397, 396, 395, 394, 385, 383, 382, 380, 378,
834  377, 376, 374, 373, 371, 370, 369, 367, 365, 363,
835  362, 360, 358, 357, 356, 354, 353, 352, 350, 349,
836  348, 346, 344, 342, 341, 339, 337, 336, 334, 333,
837  332, 331, 330, 327, 325, 324, 320, 319, 317, 316,
838  314, 313, 312, 311, 310, 309, 306, 304, 303, 298,
839  297, 295, 294, 293, 292, 290, 289, 287, 285, 282,
840  279, 278, 274, 273, 272, 270, 269, 268, 267, 265,
841  264, 262, 260, 257, 253, 252, 251, 250, 248, 247,
842  246, 245, 243, 242, 239, 238, 236, 235, 233, 231,
843 
844  230, 229, 228, 226, 225, 224, 223, 222, 220, 219,
845  218, 217, 215, 214, 211, 210, 208, 207, 205, 203,
846  202, 201, 198, 197, 196, 194, 191, 190, 188, 186,
847  185, 184, 182, 181, 180, 179, 177, 176, 175, 172,
848  171, 170, 168, 165, 164, 162, 160, 159, 158, 156,
849  155, 154, 153, 152, 147, 144, 143, 142, 141, 139,
850  138, 137, 136, 135, 134, 133, 132, 130, 125, 122,
851  121, 120, 118, 115, 114, 113, 112, 111, 110, 109,
852  108, 107, 104, 103, 102, 101, 99, 98, 97, 96,
853  95, 94, 93, 92, 91, 90, 89, 88, 87, 86,
854 
855  83, 82, 81, 80, 79, 78, 76, 75, 74, 73,
856  72, 69, 68, 67, 66, 65, 64, 63, 62, 61,
857  60, 59, 58, 57, 56, 55, 54, 51, 50, 49,
858  48, 47, 46, 45, 44, 43, 42, 39, 38, 37,
859  36, 35, 34, 33, 31, 30, 29, 28, 24, 22,
860  21, 20, 19, 18, 17, 16, 15, 14, 13, 12,
861  11, 10, 9, 3, 567, 567, 567, 567, 567, 567,
862  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
863  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
864  567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
865 
866  567, 567, 567, 567, 567
867  } ;
868 
869 /* Table of booleans, true if rule could match eol. */
871  { 0,
872 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1,
873  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
874  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
875  0, };
876 
877 /* The intent behind this definition is that it'll catch
878  * any uses of REJECT which flex missed.
879  */
880 #define REJECT reject_used_but_not_detected
881 #define yymore() yymore_used_but_not_detected
882 #define YY_MORE_ADJ 0
883 #define YY_RESTORE_YY_MORE_OFFSET
884 #line 1 "../../../../OS/src/OSParsers/OSParseosss.l"
885 /* $Id: OSParseosss.cpp 5284 2017-12-08 13:52:50Z stefan $ */
898 #line 16 "../../../../OS/src/OSParsers/OSParseosss.l"
899 
900 
901 #include <iostream>
902 #include "OSConfig.h"
903 
904 
905 #ifdef HAVE_CSTRING
906 # include <cstring>
907 #else
908 # ifdef HAVE_STRING_H
909 # include <string.h>
910 # else
911 # error "don't have header file for string"
912 # endif
913 #endif
914 
915 #ifdef HAVE_CSTDIO
916 # include <cstdio>
917 #else
918 # ifdef HAVE_STDIO_H
919 # include <stdio.h>
920 # else
921 # error "don't have header file for stdio"
922 # endif
923 #endif
924 #include "OSErrorClass.h"
925 #include <sstream>
926 #include "OSCommandLine.h"
927 
928 
929 using std::cout;
930 using std::endl;
931 using std::ostringstream;
932 
933 //#define PARSERDEBUG
934 #ifdef PARSERDEBUG
935  #define YY_PRINT printf("Found option: %s\n", yytext)
936 #else
937  #define YY_PRINT
938 #endif
939 
940 
941 #ifdef WIN_
942  #define YY_NO_UNISTD_H
943  #include <io.h>
944  #include <process.h>
945  #ifdef USE_OLD_UNISTD
946  #include<sys/unistd.h>
947  #endif
948 #endif
949 
950 
951 #define YY_EXTRA_TYPE class OSCommandLine*
952 
953 void setyyextra( OSCommandLine* oscommandline, void* scanner);
954 
986 #line 987 "../../../../OS/src/OSParsers/OSParseosss.cpp"
987 
988 #define INITIAL 0
989 
990 #ifndef YY_NO_UNISTD_H
991 /* Special case for "unistd.h", since it is non-ANSI. We include it way
992  * down here because we want the user's section 1 to have been scanned first.
993  * The user has a chance to override it with an option.
994  */
995 #include <unistd.h>
996 #endif
997 
998 #ifndef YY_EXTRA_TYPE
999 #define YY_EXTRA_TYPE void *
1000 #endif
1001 
1002 /* Holds the entire state of the reentrant scanner. */
1003 struct yyguts_t
1004  {
1005 
1006  /* User-defined. Not touched by flex. */
1008 
1009  /* The rest are the same as the globals declared in the non-reentrant scanner. */
1010  FILE *yyin_r, *yyout_r;
1011  size_t yy_buffer_stack_top;
1012  size_t yy_buffer_stack_max;
1013  YY_BUFFER_STATE * yy_buffer_stack;
1014  char yy_hold_char;
1015  int yy_n_chars;
1016  int yyleng_r;
1017  char *yy_c_buf_p;
1018  int yy_init;
1019  int yy_start;
1021  int yy_start_stack_ptr;
1023  int *yy_start_stack;
1025  char* yy_last_accepting_cpos;
1026 
1027  int yylineno_r;
1028  int yy_flex_debug_r;
1029 
1030  char *yytext_r;
1031  int yy_more_flag;
1032  int yy_more_len;
1033 
1034  }; /* end struct yyguts_t */
1035 
1036 static int yy_init_globals (yyscan_t yyscanner );
1037 
1039 
1040 int ossslex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1041 
1042 /* Accessor methods to globals.
1043  These are made visible to non-reentrant scanners for convenience. */
1044 
1045 int ossslex_destroy (yyscan_t yyscanner );
1046 
1047 int osssget_debug (yyscan_t yyscanner );
1048 
1049 void osssset_debug (int debug_flag ,yyscan_t yyscanner );
1050 
1051 YY_EXTRA_TYPE osssget_extra (yyscan_t yyscanner );
1052 
1053 void osssset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1054 
1055 FILE *osssget_in (yyscan_t yyscanner );
1056 
1057 void osssset_in (FILE * in_str ,yyscan_t yyscanner );
1058 
1059 FILE *osssget_out (yyscan_t yyscanner );
1060 
1061 void osssset_out (FILE * out_str ,yyscan_t yyscanner );
1062 
1063 int osssget_leng (yyscan_t yyscanner );
1064 
1065 char *osssget_text (yyscan_t yyscanner );
1066 
1067 int osssget_lineno (yyscan_t yyscanner );
1068 
1069 void osssset_lineno (int line_number ,yyscan_t yyscanner );
1070 
1071 /* Macros after this point can all be overridden by user definitions in
1072  * section 1.
1073  */
1074 
1075 #ifndef YY_SKIP_YYWRAP
1076 #ifdef __cplusplus
1077 extern "C" int ossswrap (yyscan_t yyscanner );
1078 #else
1079 extern int ossswrap (yyscan_t yyscanner );
1080 #endif
1081 #endif
1082 
1083 #ifndef yytext_ptr
1084 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1085 #endif
1086 
1087 #ifdef YY_NEED_STRLEN
1088 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1089 #endif
1090 
1091 #ifndef YY_NO_INPUT
1092 
1093 #ifdef __cplusplus
1094 static int yyinput (yyscan_t yyscanner );
1095 #else
1096 static int input (yyscan_t yyscanner );
1097 #endif
1098 
1099 #endif
1100 
1101 /* Amount of stuff to slurp up with each read. */
1102 #ifndef YY_READ_BUF_SIZE
1103 #ifdef __ia64__
1104 /* On IA-64, the buffer size is 16k, not 8k */
1105 #define YY_READ_BUF_SIZE 16384
1106 #else
1107 #define YY_READ_BUF_SIZE 8192
1108 #endif /* __ia64__ */
1109 #endif
1110 
1111 /* Copy whatever the last rule matched to the standard output. */
1112 #ifndef ECHO
1113 /* This used to be an fputs(), but since the string might contain NUL's,
1114  * we now use fwrite().
1115  */
1116 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1117 #endif
1118 
1119 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1120  * is returned in "result".
1121  */
1122 #ifndef YY_INPUT
1123 #define YY_INPUT(buf,result,max_size) \
1124  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1125  { \
1126  int c = '*'; \
1127  size_t n; \
1128  for ( n = 0; n < max_size && \
1129  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1130  buf[n] = (char) c; \
1131  if ( c == '\n' ) \
1132  buf[n++] = (char) c; \
1133  if ( c == EOF && ferror( yyin ) ) \
1134  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1135  result = n; \
1136  } \
1137  else \
1138  { \
1139  errno=0; \
1140  while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1141  { \
1142  if( errno != EINTR) \
1143  { \
1144  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1145  break; \
1146  } \
1147  errno=0; \
1148  clearerr(yyin); \
1149  } \
1150  }\
1151 \
1152 
1153 #endif
1154 
1155 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1156  * we don't want an extra ';' after the "return" because that will cause
1157  * some compilers to complain about unreachable statements.
1158  */
1159 #ifndef yyterminate
1160 #define yyterminate() return YY_NULL
1161 #endif
1162 
1163 /* Number of entries by which start-condition stack grows. */
1164 #ifndef YY_START_STACK_INCR
1165 #define YY_START_STACK_INCR 25
1166 #endif
1167 
1168 /* Report a fatal error. */
1169 #ifndef YY_FATAL_ERROR
1170 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1171 #endif
1172 
1173 /* end tables serialization structures and prototypes */
1174 
1175 /* Default declaration of generated scanner - a define so the user can
1176  * easily add parameters.
1177  */
1178 #ifndef YY_DECL
1179 #define YY_DECL_IS_OURS 1
1180 
1181 extern int ossslex (yyscan_t yyscanner);
1182 
1183 #define YY_DECL int ossslex (yyscan_t yyscanner)
1184 #endif /* !YY_DECL */
1185 
1186 /* Code executed at the beginning of each rule, after yytext and yyleng
1187  * have been set up.
1188  */
1189 #ifndef YY_USER_ACTION
1190 #define YY_USER_ACTION
1191 #endif
1192 
1193 /* Code executed at the end of each rule. */
1194 #ifndef YY_BREAK
1195 #define YY_BREAK break;
1196 #endif
1197 
1198 #define YY_RULE_SETUP \
1199  YY_USER_ACTION
1200 
1203 YY_DECL
1206  register char *yy_cp, *yy_bp;
1207  register int yy_act;
1208  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1209 
1210 #line 116 "../../../../OS/src/OSParsers/OSParseosss.l"
1211 
1212 
1213 #line 1214 "../../../../OS/src/OSParsers/OSParseosss.cpp"
1214 
1215  if ( !yyg->yy_init )
1216  {
1217  yyg->yy_init = 1;
1218 
1219 #ifdef YY_USER_INIT
1220  YY_USER_INIT;
1221 #endif
1222 
1223  if ( ! yyg->yy_start )
1224  yyg->yy_start = 1; /* first start state */
1225 
1226  if ( ! yyin )
1227  yyin = stdin;
1228 
1229  if ( ! yyout )
1230  yyout = stdout;
1231 
1232  if ( ! YY_CURRENT_BUFFER ) {
1233  osssensure_buffer_stack (yyscanner);
1235  osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1236  }
1237 
1238  osss_load_buffer_state(yyscanner );
1239  }
1240 
1241  while ( 1 ) /* loops until end-of-file is reached */
1242  {
1243  yy_cp = yyg->yy_c_buf_p;
1244 
1245  /* Support of yytext. */
1246  *yy_cp = yyg->yy_hold_char;
1247 
1248  /* yy_bp points to the position in yy_ch_buf of the start of
1249  * the current run.
1250  */
1251  yy_bp = yy_cp;
1252 
1253  yy_current_state = yyg->yy_start;
1254 yy_match:
1255  do
1256  {
1257  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1258  if ( yy_accept[yy_current_state] )
1259  {
1262  }
1263  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1264  {
1265  yy_current_state = (int) yy_def[yy_current_state];
1266  if ( yy_current_state >= 568 )
1267  yy_c = yy_meta[(unsigned int) yy_c];
1268  }
1269  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1270  ++yy_cp;
1271  }
1272  while ( yy_base[yy_current_state] != 965 );
1273 
1274 yy_find_action:
1275  yy_act = yy_accept[yy_current_state];
1276  if ( yy_act == 0 )
1277  { /* have to back up */
1278  yy_cp = yyg->yy_last_accepting_cpos;
1279  yy_current_state = yyg->yy_last_accepting_state;
1280  yy_act = yy_accept[yy_current_state];
1281  }
1282 
1284 
1285  if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1286  {
1287  int yyl;
1288  for ( yyl = 0; yyl < yyleng; ++yyl )
1289  if ( yytext[yyl] == '\n' )
1290 
1291  do{ yylineno++;
1292  yycolumn=0;
1293  }while(0)
1294 ;
1295  }
1296 
1297 do_action: /* This label is used only to access EOF actions. */
1298 
1299  switch ( yy_act )
1300  { /* beginning of action switch */
1301  case 0: /* must back up */
1302  /* undo the effects of YY_DO_BEFORE_ACTION */
1303  *yy_cp = yyg->yy_hold_char;
1304  yy_cp = yyg->yy_last_accepting_cpos;
1305  yy_current_state = yyg->yy_last_accepting_state;
1306  goto yy_find_action;
1307 
1308 case 1:
1309 /* rule 1 can match eol */
1311 #line 118 "../../../../OS/src/OSParsers/OSParseosss.l"
1312 
1313  YY_BREAK
1314 case 2:
1315 /* rule 2 can match eol */
1317 #line 122 "../../../../OS/src/OSParsers/OSParseosss.l"
1318 {
1319  YY_PRINT
1320  //char *ch = strdup(yytext);
1321  char *ch = yytext;
1322  // move past -config
1323  ch+=7;
1324  for(; isspace(*ch); ch++);
1325  std::string str( ch);
1326  if (str[0] == '\"')
1327  yyextra->configFile = str.substr(1,str.length()-2);
1328  else
1329  yyextra->configFile = str;
1330 }
1331  YY_BREAK
1332 case 3:
1333 /* rule 3 can match eol */
1335 #line 136 "../../../../OS/src/OSParsers/OSParseosss.l"
1336 {
1337  YY_PRINT
1338  //char *ch = strdup(yytext);
1339  char *ch = yytext;
1340  // move past -config
1341  ch+=6;
1342  for(; isspace(*ch); ch++);
1343  std::string str( ch);
1344  if (str[0] == '\"')
1345  yyextra->configFile = str.substr(1,str.length()-2);
1346  else
1347  yyextra->configFile = str;
1348 }
1349  YY_BREAK
1350 case 4:
1352 #line 150 "../../../../OS/src/OSParsers/OSParseosss.l"
1353 {
1354  YY_PRINT
1355  yyextra->invokeHelp = true;
1356 }
1357  YY_BREAK
1358 case 5:
1360 #line 155 "../../../../OS/src/OSParsers/OSParseosss.l"
1361 {
1362  YY_PRINT
1363  yyextra->invokeHelp = true;
1364  }
1365  YY_BREAK
1366 case 6:
1368 #line 160 "../../../../OS/src/OSParsers/OSParseosss.l"
1369 {
1370  YY_PRINT
1371  yyextra->invokeHelp = true;
1372 }
1373  YY_BREAK
1374 case 7:
1376 #line 165 "../../../../OS/src/OSParsers/OSParseosss.l"
1377 {
1378  YY_PRINT
1379  yyextra->invokeHelp = true;
1380 }
1381  YY_BREAK
1382 case 8:
1384 #line 170 "../../../../OS/src/OSParsers/OSParseosss.l"
1385 {
1386  YY_PRINT
1387  yyextra->invokeHelp = true;
1388 }
1389  YY_BREAK
1390 case 9:
1392 #line 176 "../../../../OS/src/OSParsers/OSParseosss.l"
1393 {
1394  YY_PRINT
1395  yyextra->printModel = true;
1396  }
1397  YY_BREAK
1398 case 10:
1400 #line 182 "../../../../OS/src/OSParsers/OSParseosss.l"
1401 {
1402  YY_PRINT
1403  yyextra->printModel = true;
1404  }
1405  YY_BREAK
1406 case 11:
1407 /* rule 11 can match eol */
1409 #line 187 "../../../../OS/src/OSParsers/OSParseosss.l"
1410 {
1411  //if(yyextra->printRow == ""){
1412  YY_PRINT
1413  //yyextra->printRowNumberAsString = strdup(yytext);
1414  yyextra->printRowNumberAsString = yytext;
1415  //char *ch = strdup(yytext);
1416  char *ch = yytext;
1417  // move past -printRow
1418  ch+=9;
1419  for(; isspace(*ch); ch++);
1420  std::string str( ch);
1421  yyextra->printRowNumberAsString = str;
1422  //}
1423 }
1424  YY_BREAK
1425 case 12:
1426 /* rule 12 can match eol */
1428 #line 202 "../../../../OS/src/OSParsers/OSParseosss.l"
1429 {
1430  //if(yyextra->printRow == ""){
1431  YY_PRINT
1432  //yyextra->printRowNumberAsString = strdup(yytext);
1433  yyextra->printRowNumberAsString = yytext;
1434  //char *ch = strdup(yytext);
1435  char *ch = yytext;
1436  // move past printRow
1437  ch+=8;
1438  for(; isspace(*ch); ch++);
1439  std::string str( ch);
1440  yyextra->printRowNumberAsString = str;
1441  //}
1442 }
1443  YY_BREAK
1444 case 13:
1445 /* rule 13 can match eol */
1447 #line 217 "../../../../OS/src/OSParsers/OSParseosss.l"
1448 {
1449  //if(yyextra->printRow == ""){
1450  YY_PRINT
1451  //yyextra->printRowNumberAsString = strdup(yytext);
1452  yyextra->printRowNumberAsString = yytext;
1453  //char *ch = strdup(yytext);
1454  char *ch = yytext;
1455  // move past printRow
1456  ch+=8;
1457  for(; isspace(*ch); ch++);
1458  std::string str( ch);
1459  yyextra->printRowNumberAsString = str;
1460  //}
1461 }
1462  YY_BREAK
1463 case 14:
1465 #line 233 "../../../../OS/src/OSParsers/OSParseosss.l"
1466 {
1467  YY_PRINT
1468  yyextra->writeVersion = true;
1469 }
1470  YY_BREAK
1471 case 15:
1473 #line 238 "../../../../OS/src/OSParsers/OSParseosss.l"
1474 {
1475  YY_PRINT
1476  yyextra->writeVersion = true;
1477 }
1478  YY_BREAK
1479 case 16:
1481 #line 243 "../../../../OS/src/OSParsers/OSParseosss.l"
1482 {
1483  YY_PRINT
1484  yyextra->writeVersion = true;
1485 }
1486  YY_BREAK
1487 case 17:
1489 #line 249 "../../../../OS/src/OSParsers/OSParseosss.l"
1490 {
1491  YY_PRINT
1492  yyextra->quit = true;
1493 }
1494  YY_BREAK
1495 case 18:
1497 #line 254 "../../../../OS/src/OSParsers/OSParseosss.l"
1498 {
1499  YY_PRINT
1500  yyextra->quit = true;
1501 }
1502  YY_BREAK
1503 case 19:
1504 /* rule 19 can match eol */
1506 #line 260 "../../../../OS/src/OSParsers/OSParseosss.l"
1507 {
1508  //if(yyextra->osilFile == ""){
1509  YY_PRINT
1510  //char *ch = strdup(yytext);
1511  char *ch = yytext;
1512  // move past -osil
1513  ch+=5;
1514  for(; isspace(*ch); ch++);
1515  std::string str( ch);
1516  if (str[0] == '\"')
1517  yyextra->osilFile = str.substr(1,str.length()-2);
1518  else
1519  yyextra->osilFile = str;
1520  //}
1521 }
1522  YY_BREAK
1523 case 20:
1524 /* rule 20 can match eol */
1526 #line 276 "../../../../OS/src/OSParsers/OSParseosss.l"
1527 {
1528  // if(yyextra->osilFile == ""){
1529  YY_PRINT
1530  //char *ch = strdup(yytext);
1531  char *ch = yytext;
1532  // move past osil
1533  ch+=4;
1534  for(; isspace(*ch); ch++);
1535  std::string str( ch);
1536  if (str[0] == '\"')
1537  yyextra->osilFile = str.substr(1,str.length()-2);
1538  else
1539  yyextra->osilFile = str;
1540  // }
1541  }
1542  YY_BREAK
1543 case 21:
1544 /* rule 21 can match eol */
1546 #line 292 "../../../../OS/src/OSParsers/OSParseosss.l"
1547 {
1548  YY_PRINT
1549  //char *ch = strdup(yytext);
1550  char *ch = yytext;
1551  // move past -osilOutput
1552  ch+=11;
1553  for(; isspace(*ch); ch++);
1554  std::string str( ch);
1555  yyextra->osilOutputFile = str;
1556 }
1557  YY_BREAK
1558 case 22:
1559 /* rule 22 can match eol */
1561 #line 303 "../../../../OS/src/OSParsers/OSParseosss.l"
1562 {
1563  YY_PRINT
1564  //char *ch = strdup(yytext);
1565  char *ch = yytext;
1566  // move past osilOutput
1567  ch+=10;
1568  for(; isspace(*ch); ch++);
1569  std::string str( ch);
1570  yyextra->osilOutputFile = str;
1571 }
1572  YY_BREAK
1573 case 23:
1574 /* rule 23 can match eol */
1576 #line 314 "../../../../OS/src/OSParsers/OSParseosss.l"
1577 {
1578  YY_PRINT
1579  //char *ch = strdup(yytext);
1580  char *ch = yytext;
1581  // move past osilOutput
1582  ch+=10;
1583  for(; isspace(*ch); ch++);
1584  std::string str( ch);
1585  yyextra->osilOutputFile = str;
1586 }
1587  YY_BREAK
1588 case 24:
1589 /* rule 24 can match eol */
1591 #line 325 "../../../../OS/src/OSParsers/OSParseosss.l"
1592 {
1593  //if(yyextra->osolFile == ""){
1594  YY_PRINT
1595  //char *ch = strdup(yytext);
1596  char *ch = yytext;
1597  // move past -osol
1598  ch+=5;
1599  for(; isspace(*ch); ch++);
1600  std::string str( ch);
1601  if (str[0] == '\"')
1602  yyextra->osolFile = str.substr(1,str.length()-2);
1603  else
1604  yyextra->osolFile = str;
1605  //}
1606 }
1607  YY_BREAK
1608 case 25:
1609 /* rule 25 can match eol */
1611 #line 341 "../../../../OS/src/OSParsers/OSParseosss.l"
1612 {
1613  //if(yyextra->osolFile == ""){
1614  YY_PRINT
1615  //char *ch = strdup(yytext);
1616  char *ch = yytext;
1617  // move past osol
1618  ch+=4;
1619  for(; isspace(*ch); ch++);
1620  std::string str( ch);
1621  if (str[0] == '\"')
1622  yyextra->osolFile = str.substr(1,str.length()-2);
1623  else
1624  yyextra->osolFile = str;
1625  //}
1626 }
1627  YY_BREAK
1628 case 26:
1629 /* rule 26 can match eol */
1631 #line 357 "../../../../OS/src/OSParsers/OSParseosss.l"
1632 {
1633  YY_PRINT
1634  //char *ch = strdup(yytext);
1635  char *ch = yytext;
1636  // move past -osolOutput
1637  ch+=11;
1638  for(; isspace(*ch); ch++);
1639  std::string str( ch);
1640  if (str[0] == '\"')
1641  yyextra->osolOutputFile = str.substr(1,str.length()-2);
1642  else
1643  yyextra->osolOutputFile = str;
1644 }
1645  YY_BREAK
1646 case 27:
1647 /* rule 27 can match eol */
1649 #line 371 "../../../../OS/src/OSParsers/OSParseosss.l"
1650 {
1651  YY_PRINT
1652  //char *ch = strdup(yytext);
1653  char *ch = yytext;
1654  // move past osolOutput
1655  ch+=10;
1656  for(; isspace(*ch); ch++);
1657  std::string str( ch);
1658  if (str[0] == '\"')
1659  yyextra->osolOutputFile = str.substr(1,str.length()-2);
1660  else
1661  yyextra->osolOutputFile = str;
1662 }
1663  YY_BREAK
1664 case 28:
1665 /* rule 28 can match eol */
1667 #line 385 "../../../../OS/src/OSParsers/OSParseosss.l"
1668 {
1669  YY_PRINT
1670  //char *ch = strdup(yytext);
1671  char *ch = yytext;
1672  // move past osolOutput
1673  ch+=10;
1674  for(; isspace(*ch); ch++);
1675  std::string str( ch);
1676  yyextra->osolOutputFile = str;
1677 }
1678  YY_BREAK
1679 case 29:
1680 /* rule 29 can match eol */
1682 #line 396 "../../../../OS/src/OSParsers/OSParseosss.l"
1683 {
1684  //if(yyextra->osplInputFile == ""){
1685  YY_PRINT
1686  //char *ch = strdup(yytext);
1687  char *ch = yytext;
1688  // move past -osplInput
1689  ch+=10;
1690  for(; isspace(*ch); ch++);
1691  std::string str( ch);
1692  if (str[0] == '\"')
1693  yyextra->osplInputFile = str.substr(1,str.length()-2);
1694  else
1695  yyextra->osplInputFile = str;
1696  //}
1697 }
1698  YY_BREAK
1699 case 30:
1700 /* rule 30 can match eol */
1702 #line 412 "../../../../OS/src/OSParsers/OSParseosss.l"
1703 {
1704  YY_PRINT
1705  //char *ch = strdup(yytext);
1706  char *ch = yytext;
1707  // move past osplInput
1708  ch+=9;
1709  for(; isspace(*ch); ch++);
1710  std::string str( ch);
1711  if (str[0] == '\"')
1712  yyextra->osplInputFile = str.substr(1,str.length()-2);
1713  else
1714  yyextra->osplInputFile = str;
1715 }
1716  YY_BREAK
1717 case 31:
1718 /* rule 31 can match eol */
1720 #line 426 "../../../../OS/src/OSParsers/OSParseosss.l"
1721 {
1722  YY_PRINT
1723  //char *ch = strdup(yytext);
1724  char *ch = yytext;
1725  // move past -osplOutput
1726  ch+=11;
1727  for(; isspace(*ch); ch++);
1728  std::string str( ch);
1729  if (str[0] == '\"')
1730  yyextra->osplOutputFile = str.substr(1,str.length()-2);
1731  else
1732  yyextra->osplOutputFile = str;
1733 }
1734  YY_BREAK
1735 case 32:
1736 /* rule 32 can match eol */
1738 #line 440 "../../../../OS/src/OSParsers/OSParseosss.l"
1739 {
1740  YY_PRINT
1741  //char *ch = strdup(yytext);
1742  char *ch = yytext;
1743  // move past osplOutput
1744  ch+=10;
1745  for(; isspace(*ch); ch++);
1746  std::string str( ch);
1747  if (str[0] == '\"')
1748  yyextra->osplOutputFile = str.substr(1,str.length()-2);
1749  else
1750  yyextra->osplOutputFile = str;
1751 }
1752  YY_BREAK
1753 case 33:
1754 /* rule 33 can match eol */
1756 #line 454 "../../../../OS/src/OSParsers/OSParseosss.l"
1757 {
1758  //if(yyextra->osrlFile == ""){
1759  YY_PRINT
1760  //char *ch = strdup(yytext);
1761  char *ch = yytext;
1762  // move past -osrl
1763  ch+=5;
1764  for(; isspace(*ch); ch++);
1765  std::string str( ch);
1766  if (str[0] == '\"')
1767  yyextra->osrlFile = str.substr(1,str.length()-2);
1768  else
1769  yyextra->osrlFile = str;
1770  //}
1771 }
1772  YY_BREAK
1773 case 34:
1774 /* rule 34 can match eol */
1776 #line 470 "../../../../OS/src/OSParsers/OSParseosss.l"
1777 {
1778  //if(yyextra->osrlFile == ""){
1779  YY_PRINT
1780  //char *ch = strdup(yytext);
1781  char *ch = yytext;
1782  // move past osrl
1783  ch+=4;
1784  for(; isspace(*ch); ch++);
1785  std::string str( ch);
1786  if (str[0] == '\"')
1787  yyextra->osrlFile = str.substr(1,str.length()-2);
1788  else
1789  yyextra->osrlFile = str;
1790  //}
1791  }
1792  YY_BREAK
1793 case 35:
1794 /* rule 35 can match eol */
1796 #line 486 "../../../../OS/src/OSParsers/OSParseosss.l"
1797 {
1798  YY_PRINT
1799  //char *ch = strdup(yytext);
1800  char *ch = yytext;
1801  // move past -insList
1802  ch+=8;
1803  for(; isspace(*ch); ch++);
1804  std::string str( ch);
1805  if (str[0] == '\"')
1806  yyextra->insListFile = str.substr(1,str.length()-2);
1807  else
1808  yyextra->insListFile = str;
1809 }
1810  YY_BREAK
1811 case 36:
1812 /* rule 36 can match eol */
1814 #line 500 "../../../../OS/src/OSParsers/OSParseosss.l"
1815 {
1816  YY_PRINT
1817  //char *ch = strdup(yytext);
1818  char *ch = yytext;
1819  // move past insList
1820  ch+=7;
1821  for(; isspace(*ch); ch++);
1822  std::string str( ch);
1823  yyextra->insListFile = str;
1824  if (str[0] == '\"')
1825  yyextra->insListFile = str.substr(1,str.length()-2);
1826  else
1827  yyextra->insListFile = str;
1828  }
1829  YY_BREAK
1830 case 37:
1831 /* rule 37 can match eol */
1833 #line 515 "../../../../OS/src/OSParsers/OSParseosss.l"
1834 {
1835  YY_PRINT
1836  //char *ch = strdup(yytext);
1837  char *ch = yytext;
1838  // move past -mps
1839  ch+=4;
1840  for(; isspace(*ch); ch++);
1841  std::string str( ch);
1842  if (str[0] == '\"')
1843  yyextra->mpsFile = str.substr(1,str.length()-2);
1844  else
1845  yyextra->mpsFile = str;
1846 }
1847  YY_BREAK
1848 case 38:
1849 /* rule 38 can match eol */
1851 #line 529 "../../../../OS/src/OSParsers/OSParseosss.l"
1852 {
1853  YY_PRINT
1854  //char *ch = strdup(yytext);
1855  char *ch = yytext;
1856  // move past mps
1857  ch+=3;
1858  for(; isspace(*ch); ch++);
1859  std::string str( ch);
1860  if (str[0] == '\"')
1861  yyextra->mpsFile = str.substr(1,str.length()-2);
1862  else
1863  yyextra->mpsFile = str;
1864 }
1865  YY_BREAK
1866 case 39:
1867 /* rule 39 can match eol */
1869 #line 543 "../../../../OS/src/OSParsers/OSParseosss.l"
1870 {
1871  YY_PRINT
1872  //char *ch = strdup(yytext);
1873  char *ch = yytext;
1874  // move past -nl
1875  ch+=3;
1876  for(; isspace(*ch); ch++);
1877  std::string str( ch);
1878  if (str[0] == '\"')
1879  yyextra->nlFile = str.substr(1,str.length()-2);
1880  else
1881  yyextra->nlFile = str;
1882 }
1883  YY_BREAK
1884 case 40:
1885 /* rule 40 can match eol */
1887 #line 557 "../../../../OS/src/OSParsers/OSParseosss.l"
1888 {
1889  YY_PRINT
1890  //char *ch = strdup(yytext);
1891  char *ch = yytext;
1892  // move past nl
1893  ch+=2;
1894  for(; isspace(*ch); ch++);
1895  std::string str( ch);
1896  if (str[0] == '\"')
1897  yyextra->nlFile = str.substr(1,str.length()-2);
1898  else
1899  yyextra->nlFile = str;
1900 }
1901  YY_BREAK
1902 case 41:
1903 /* rule 41 can match eol */
1905 #line 571 "../../../../OS/src/OSParsers/OSParseosss.l"
1906 {
1907  YY_PRINT
1908  //char *ch = strdup(yytext);
1909  char *ch = yytext;
1910  // move past -dat
1911  ch+=4;
1912  for(; isspace(*ch); ch++);
1913  std::string str( ch);
1914  if (str[0] == '\"')
1915  yyextra->gamsControlFile = str.substr(1,str.length()-2);
1916  else
1917  yyextra->gamsControlFile = str;
1918 }
1919  YY_BREAK
1920 case 42:
1921 /* rule 42 can match eol */
1923 #line 585 "../../../../OS/src/OSParsers/OSParseosss.l"
1924 {
1925  YY_PRINT
1926  //char *ch = strdup(yytext);
1927  char *ch = yytext;
1928  // move past dat
1929  ch+=3;
1930  for(; isspace(*ch); ch++);
1931  std::string str( ch);
1932  if (str[0] == '\"')
1933  yyextra->gamsControlFile = str.substr(1,str.length()-2);
1934  else
1935  yyextra->gamsControlFile = str;
1936 }
1937  YY_BREAK
1938 case 43:
1939 /* rule 43 can match eol */
1941 #line 599 "../../../../OS/src/OSParsers/OSParseosss.l"
1942 {
1943  YY_PRINT
1944  //char *ch = strdup(yytext);
1945  char *ch = yytext;
1946  // move past -serviceMethod
1947  ch+=14;
1948  for(; isspace(*ch); ch++);
1949  std::string str( ch);
1950  if (str[0] == '\"')
1951  yyextra->serviceMethod = str.substr(1,str.length()-2);
1952  else
1953  yyextra->serviceMethod = str;
1954 }
1955  YY_BREAK
1956 case 44:
1957 /* rule 44 can match eol */
1959 #line 613 "../../../../OS/src/OSParsers/OSParseosss.l"
1960 {
1961  YY_PRINT
1962  //char *ch = strdup(yytext);
1963  char *ch = yytext;
1964  // move past serviceMethod
1965  ch+=13;
1966  for(; isspace(*ch); ch++);
1967  std::string str( ch);
1968  yyextra->serviceMethod = str;
1969  if (str[0] == '\"')
1970  yyextra->serviceMethod = str.substr(1,str.length()-2);
1971  else
1972  yyextra->serviceMethod = str;
1973 }
1974  YY_BREAK
1975 case 45:
1976 /* rule 45 can match eol */
1978 #line 628 "../../../../OS/src/OSParsers/OSParseosss.l"
1979 {
1980  YY_PRINT
1981  //yyextra->serviceLocation = strdup(yytext);
1982  yyextra->serviceLocation = yytext;
1983  //char *ch = strdup(yytext);
1984  char *ch = yytext;
1985  // move past -serviceLocation
1986  ch+=16;
1987  for(; isspace(*ch); ch++);
1988  std::string str( ch);
1989  if (str[0] == '\"')
1990  yyextra->serviceLocation = str.substr(1,str.length()-2);
1991  else
1992  yyextra->serviceLocation = str;
1993 }
1994  YY_BREAK
1995 case 46:
1996 /* rule 46 can match eol */
1998 #line 644 "../../../../OS/src/OSParsers/OSParseosss.l"
1999 {
2000  YY_PRINT
2001  //yyextra->serviceLocation = strdup(yytext);
2002  yyextra->serviceLocation = yytext;
2003  //char *ch = strdup(yytext);
2004  char *ch = yytext;
2005  // move past serviceLocation
2006  ch+=15;
2007  for(; isspace(*ch); ch++);
2008  std::string str( ch);
2009  if (str[0] == '\"')
2010  yyextra->serviceLocation = str.substr(1,str.length()-2);
2011  else
2012  yyextra->serviceLocation = str;
2013 }
2014  YY_BREAK
2015 case 47:
2016 /* rule 47 can match eol */
2018 #line 660 "../../../../OS/src/OSParsers/OSParseosss.l"
2019 {
2020  YY_PRINT
2021  //char *ch = strdup(yytext);
2022  char *ch = yytext;
2023  // move past -solver
2024  ch+=7;
2025  for(; isspace(*ch); ch++);
2026  std::string str( ch);
2027  if (str[0] == '\"')
2028  yyextra->solverName = str.substr(1,str.length()-2);
2029  else
2030  yyextra->solverName = str;
2031 }
2032  YY_BREAK
2033 case 48:
2034 /* rule 48 can match eol */
2036 #line 674 "../../../../OS/src/OSParsers/OSParseosss.l"
2037 {
2038  YY_PRINT
2039  //char *ch = strdup(yytext);
2040  char *ch = yytext;
2041  // move past solver
2042  ch+=6;
2043  for(; isspace(*ch); ch++);
2044  std::string str( ch);
2045  if (str[0] == '\"')
2046  yyextra->solverName = str.substr(1,str.length()-2);
2047  else
2048  yyextra->solverName = str;
2049 }
2050  YY_BREAK
2051 case 49:
2052 /* rule 49 can match eol */
2054 #line 688 "../../../../OS/src/OSParsers/OSParseosss.l"
2055 {
2056  YY_PRINT
2057  //char *ch = strdup(yytext);
2058  char *ch = yytext;
2059  // move past -browser
2060  ch+=8;
2061  for(; isspace(*ch); ch++);
2062  std::string str( ch);
2063  if (str[0] == '\"')
2064  yyextra->browser = str.substr(1,str.length()-2);
2065  else
2066  yyextra->browser = str;
2067 }
2068  YY_BREAK
2069 case 50:
2070 /* rule 50 can match eol */
2072 #line 702 "../../../../OS/src/OSParsers/OSParseosss.l"
2073 {
2074  YY_PRINT
2075  //char *ch = strdup(yytext);
2076  char *ch = yytext;
2077  // move past browser
2078  ch+=7;
2079  for(; isspace(*ch); ch++);
2080  std::string str( ch);
2081  if (str[0] == '\"')
2082  yyextra->browser = str.substr(1,str.length()-2);
2083  else
2084  yyextra->browser = str;
2085 }
2086  YY_BREAK
2087 case 51:
2088 /* rule 51 can match eol */
2090 #line 716 "../../../../OS/src/OSParsers/OSParseosss.l"
2091 {
2092  YY_PRINT
2093  //char *ch = strdup(yytext);
2094  char *ch = yytext;
2095  // move past browser
2096  ch+=11;
2097  for(; isspace(*ch); ch++);
2098  std::string str( ch);
2099  std::string temp;
2100  if (str[0] == '\"')
2101  temp = str.substr(1,str.length()-2);
2102  else
2103  temp = str;
2104  yyextra->printLevel = atoi(temp.c_str());
2105 }
2106  YY_BREAK
2107 case 52:
2108 /* rule 52 can match eol */
2110 #line 732 "../../../../OS/src/OSParsers/OSParseosss.l"
2111 {
2112  YY_PRINT
2113  //char *ch = strdup(yytext);
2114  char *ch = yytext;
2115  // move past browser
2116  ch+=10;
2117  for(; isspace(*ch); ch++);
2118  std::string str( ch);
2119  std::string temp;
2120  if (str[0] == '\"')
2121  temp = str.substr(1,str.length()-2);
2122  else
2123  temp = str;
2124  yyextra->printLevel = atoi(temp.c_str());
2125 }
2126  YY_BREAK
2127 case 53:
2128 /* rule 53 can match eol */
2130 #line 748 "../../../../OS/src/OSParsers/OSParseosss.l"
2131 {
2132  YY_PRINT
2133  //char *ch = strdup(yytext);
2134  char *ch = yytext;
2135  // move past browser
2136  ch+=8;
2137  for(; isspace(*ch); ch++);
2138  std::string str( ch);
2139  if (str[0] == '\"')
2140  yyextra->logFile = str.substr(1,str.length()-2);
2141  else
2142  yyextra->logFile = str;
2143 }
2144  YY_BREAK
2145 case 54:
2146 /* rule 54 can match eol */
2148 #line 762 "../../../../OS/src/OSParsers/OSParseosss.l"
2149 {
2150  YY_PRINT
2151  //char *ch = strdup(yytext);
2152  char *ch = yytext;
2153  // move past browser
2154  ch+=7;
2155  for(; isspace(*ch); ch++);
2156  std::string str( ch);
2157  if (str[0] == '\"')
2158  yyextra->logFile = str.substr(1,str.length()-2);
2159  else
2160  yyextra->logFile = str;
2161 }
2162  YY_BREAK
2163 case 55:
2164 /* rule 55 can match eol */
2166 #line 776 "../../../../OS/src/OSParsers/OSParseosss.l"
2167 {
2168  YY_PRINT
2169  //char *ch = strdup(yytext);
2170  char *ch = yytext;
2171  // move past browser
2172  ch+=15;
2173  for(; isspace(*ch); ch++);
2174  std::string str( ch);
2175  std::string temp;
2176  if (str[0] == '\"')
2177  temp = str.substr(1,str.length()-2);
2178  else
2179  temp = str;
2180  yyextra->filePrintLevel = atoi(temp.c_str());
2181 }
2182  YY_BREAK
2183 case 56:
2184 /* rule 56 can match eol */
2186 #line 792 "../../../../OS/src/OSParsers/OSParseosss.l"
2187 {
2188  YY_PRINT
2189  //char *ch = strdup(yytext);
2190  char *ch = yytext;
2191  // move past browser
2192  ch+=14;
2193  for(; isspace(*ch); ch++);
2194  std::string str( ch);
2195  std::string temp;
2196  if (str[0] == '\"')
2197  temp = str.substr(1,str.length()-2);
2198  else
2199  temp = str;
2200  yyextra->filePrintLevel = atoi(temp.c_str());
2201 }
2202  YY_BREAK
2203 case 57:
2204 /* rule 57 can match eol */
2206 #line 808 "../../../../OS/src/OSParsers/OSParseosss.l"
2207 {
2208  YY_PRINT
2209  //char *ch = strdup(yytext);
2210  char *ch = yytext;
2211  // move past -browser
2212  ch+=6;
2213  for(; isspace(*ch); ch++);
2214  std::string str( ch);
2215  yyextra->jobID = str;
2216 }
2217  YY_BREAK
2218 case 58:
2219 /* rule 58 can match eol */
2221 #line 819 "../../../../OS/src/OSParsers/OSParseosss.l"
2222 {
2223  YY_PRINT
2224  //char *ch = strdup(yytext);
2225  char *ch = yytext;
2226  // move past -browser
2227  ch+=5;
2228  for(; isspace(*ch); ch++);
2229  std::string str( ch);
2230  yyextra->jobID = str;
2231 }
2232  YY_BREAK
2233 case 59:
2235 #line 830 "../../../../OS/src/OSParsers/OSParseosss.l"
2236 {
2237  std::string error;
2238  std::ostringstream outStr;
2239  outStr << "encountered a spurious character in the lexer" << endl;
2240  outStr << "Please make sure your options are spelled correctly" << endl;
2241  outStr << "Type OSSolverService -h or OSSolverService --help for valid commands" << endl;
2242  outStr << "The first character is: ";
2243  outStr << yytext;
2244  outStr << endl;
2245  //outStr << "See line number: " << yylineno << endl;
2246  error = outStr.str();
2247  throw ErrorClass( error);
2248 }
2249  YY_BREAK
2250 case 60:
2252 #line 843 "../../../../OS/src/OSParsers/OSParseosss.l"
2253 ECHO;
2254  YY_BREAK
2255 #line 2256 "../../../../OS/src/OSParsers/OSParseosss.cpp"
2256 case YY_STATE_EOF(INITIAL):
2257  yyterminate();
2258 
2259  case YY_END_OF_BUFFER:
2260  {
2261  /* Amount of text matched not including the EOB char. */
2262  int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2263 
2264  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2265  *yy_cp = yyg->yy_hold_char;
2267 
2268  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2269  {
2270  /* We're scanning a new file or input source. It's
2271  * possible that this happened because the user
2272  * just pointed yyin at a new source and called
2273  * ossslex(). If so, then we have to assure
2274  * consistency between YY_CURRENT_BUFFER and our
2275  * globals. Here is the right place to do so, because
2276  * this is the first action (other than possibly a
2277  * back-up) that will match for the new input source.
2278  */
2279  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2280  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2281  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2282  }
2283 
2284  /* Note that here we test for yy_c_buf_p "<=" to the position
2285  * of the first EOB in the buffer, since yy_c_buf_p will
2286  * already have been incremented past the NUL character
2287  * (since all states make transitions on EOB to the
2288  * end-of-buffer state). Contrast this with the test
2289  * in input().
2290  */
2291  if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2292  { /* This was really a NUL. */
2293  yy_state_type yy_next_state;
2294 
2295  yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2296 
2297  yy_current_state = yy_get_previous_state( yyscanner );
2298 
2299  /* Okay, we're now positioned to make the NUL
2300  * transition. We couldn't have
2301  * yy_get_previous_state() go ahead and do it
2302  * for us because it doesn't know how to deal
2303  * with the possibility of jamming (and we don't
2304  * want to build jamming into it because then it
2305  * will run more slowly).
2306  */
2307 
2308  yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2309 
2310  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2311 
2312  if ( yy_next_state )
2313  {
2314  /* Consume the NUL. */
2315  yy_cp = ++yyg->yy_c_buf_p;
2316  yy_current_state = yy_next_state;
2317  goto yy_match;
2318  }
2319 
2320  else
2321  {
2322  yy_cp = yyg->yy_c_buf_p;
2323  goto yy_find_action;
2324  }
2325  }
2326 
2327  else switch ( yy_get_next_buffer( yyscanner ) )
2328  {
2329  case EOB_ACT_END_OF_FILE:
2330  {
2331  yyg->yy_did_buffer_switch_on_eof = 0;
2332 
2333  if ( ossswrap(yyscanner ) )
2334  {
2335  /* Note: because we've taken care in
2336  * yy_get_next_buffer() to have set up
2337  * yytext, we can now set up
2338  * yy_c_buf_p so that if some total
2339  * hoser (like flex itself) wants to
2340  * call the scanner after we return the
2341  * YY_NULL, it'll still work - another
2342  * YY_NULL will get returned.
2343  */
2344  yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2345 
2346  yy_act = YY_STATE_EOF(YY_START);
2347  goto do_action;
2348  }
2349 
2350  else
2351  {
2352  if ( ! yyg->yy_did_buffer_switch_on_eof )
2353  YY_NEW_FILE;
2354  }
2355  break;
2356  }
2357 
2358  case EOB_ACT_CONTINUE_SCAN:
2359  yyg->yy_c_buf_p =
2360  yyg->yytext_ptr + yy_amount_of_matched_text;
2361 
2362  yy_current_state = yy_get_previous_state( yyscanner );
2363 
2364  yy_cp = yyg->yy_c_buf_p;
2365  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2366  goto yy_match;
2367 
2368  case EOB_ACT_LAST_MATCH:
2369  yyg->yy_c_buf_p =
2370  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2371 
2372  yy_current_state = yy_get_previous_state( yyscanner );
2373 
2374  yy_cp = yyg->yy_c_buf_p;
2375  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2376  goto yy_find_action;
2377  }
2378  break;
2379  }
2380 
2381  default:
2383  "fatal flex scanner internal error--no action found" );
2384  } /* end of action switch */
2385  } /* end of scanning one token */
2386 } /* end of ossslex */
2387 
2388 /* yy_get_next_buffer - try to read in a new buffer
2389  *
2390  * Returns a code representing an action:
2391  * EOB_ACT_LAST_MATCH -
2392  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2393  * EOB_ACT_END_OF_FILE - end of file
2394  */
2395 static int yy_get_next_buffer (yyscan_t yyscanner)
2396 {
2397  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2398  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2399  register char *source = yyg->yytext_ptr;
2400  register int number_to_move, i;
2401  int ret_val;
2402 
2403  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2405  "fatal flex scanner internal error--end of buffer missed" );
2406 
2407  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2408  { /* Don't try to fill the buffer, so this is an EOF. */
2409  if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2410  {
2411  /* We matched a single character, the EOB, so
2412  * treat this as a final EOF.
2413  */
2414  return EOB_ACT_END_OF_FILE;
2415  }
2416 
2417  else
2418  {
2419  /* We matched some text prior to the EOB, first
2420  * process it.
2421  */
2422  return EOB_ACT_LAST_MATCH;
2423  }
2424  }
2425 
2426  /* Try to read more data. */
2427 
2428  /* First move last chars to start of buffer. */
2429  number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2430 
2431  for ( i = 0; i < number_to_move; ++i )
2432  *(dest++) = *(source++);
2433 
2434  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2435  /* don't do the read, it's not guaranteed to return an EOF,
2436  * just force an EOF
2437  */
2438  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2439 
2440  else
2441  {
2442  int num_to_read =
2443  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2444 
2445  while ( num_to_read <= 0 )
2446  { /* Not enough room in the buffer - grow it. */
2447 
2448  /* just a shorter name for the current buffer */
2449  YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2450 
2451  int yy_c_buf_p_offset =
2452  (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2453 
2454  if ( b->yy_is_our_buffer )
2455  {
2456  int new_size = b->yy_buf_size * 2;
2457 
2458  if ( new_size <= 0 )
2459  b->yy_buf_size += b->yy_buf_size / 8;
2460  else
2461  b->yy_buf_size *= 2;
2462 
2463  b->yy_ch_buf = (char *)
2464  /* Include room in for 2 EOB chars. */
2465  osssrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2466  }
2467  else
2468  /* Can't grow it, we don't own it. */
2469  b->yy_ch_buf = 0;
2470 
2471  if ( ! b->yy_ch_buf )
2473  "fatal error - scanner input buffer overflow" );
2474 
2475  yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2476 
2477  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2478  number_to_move - 1;
2479 
2480  }
2481 
2482  if ( num_to_read > YY_READ_BUF_SIZE )
2483  num_to_read = YY_READ_BUF_SIZE;
2484 
2485  /* Read in more data. */
2486  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2487  yyg->yy_n_chars, (size_t) num_to_read );
2488 
2489  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2490  }
2491 
2492  if ( yyg->yy_n_chars == 0 )
2493  {
2494  if ( number_to_move == YY_MORE_ADJ )
2495  {
2496  ret_val = EOB_ACT_END_OF_FILE;
2497  osssrestart(yyin ,yyscanner);
2498  }
2499 
2500  else
2501  {
2502  ret_val = EOB_ACT_LAST_MATCH;
2503  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2505  }
2506  }
2507 
2508  else
2509  ret_val = EOB_ACT_CONTINUE_SCAN;
2510 
2511  if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2512  /* Extend the array by 50%, plus the number we really need. */
2513  yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2514  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osssrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2515  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2516  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2517  }
2518 
2519  yyg->yy_n_chars += number_to_move;
2522 
2523  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2524 
2525  return ret_val;
2526 }
2527 
2528 /* yy_get_previous_state - get the state just before the EOB char was reached */
2529 
2531 {
2533  register char *yy_cp;
2534  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2535 
2536  yy_current_state = yyg->yy_start;
2537 
2538  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2539  {
2540  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2541  if ( yy_accept[yy_current_state] )
2542  {
2545  }
2546  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2547  {
2548  yy_current_state = (int) yy_def[yy_current_state];
2549  if ( yy_current_state >= 568 )
2550  yy_c = yy_meta[(unsigned int) yy_c];
2551  }
2552  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2553  }
2554 
2555  return yy_current_state;
2556 }
2557 
2558 /* yy_try_NUL_trans - try to make a transition on the NUL character
2559  *
2560  * synopsis
2561  * next_state = yy_try_NUL_trans( current_state );
2562  */
2563  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2564 {
2565  register int yy_is_jam;
2566  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2567  register char *yy_cp = yyg->yy_c_buf_p;
2568 
2569  register YY_CHAR yy_c = 1;
2570  if ( yy_accept[yy_current_state] )
2571  {
2574  }
2575  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2576  {
2577  yy_current_state = (int) yy_def[yy_current_state];
2578  if ( yy_current_state >= 568 )
2579  yy_c = yy_meta[(unsigned int) yy_c];
2580  }
2581  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2582  yy_is_jam = (yy_current_state == 567);
2583 
2584  return yy_is_jam ? 0 : yy_current_state;
2585 }
2586 
2587 #ifndef YY_NO_INPUT
2588 #ifdef __cplusplus
2589  static int yyinput (yyscan_t yyscanner)
2590 #else
2591  static int input (yyscan_t yyscanner)
2592 #endif
2593 
2594 {
2595  int c;
2596  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2597 
2598  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2599 
2600  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2601  {
2602  /* yy_c_buf_p now points to the character we want to return.
2603  * If this occurs *before* the EOB characters, then it's a
2604  * valid NUL; if not, then we've hit the end of the buffer.
2605  */
2606  if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2607  /* This was really a NUL. */
2608  *yyg->yy_c_buf_p = '\0';
2609 
2610  else
2611  { /* need more input */
2612  int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2613  ++yyg->yy_c_buf_p;
2614 
2615  switch ( yy_get_next_buffer( yyscanner ) )
2616  {
2617  case EOB_ACT_LAST_MATCH:
2618  /* This happens because yy_g_n_b()
2619  * sees that we've accumulated a
2620  * token and flags that we need to
2621  * try matching the token before
2622  * proceeding. But for input(),
2623  * there's no matching to consider.
2624  * So convert the EOB_ACT_LAST_MATCH
2625  * to EOB_ACT_END_OF_FILE.
2626  */
2627 
2628  /* Reset buffer status. */
2629  osssrestart(yyin ,yyscanner);
2630 
2631  /*FALLTHROUGH*/
2632 
2633  case EOB_ACT_END_OF_FILE:
2634  {
2635  if ( ossswrap(yyscanner ) )
2636  return EOF;
2637 
2638  if ( ! yyg->yy_did_buffer_switch_on_eof )
2639  YY_NEW_FILE;
2640 #ifdef __cplusplus
2641  return yyinput(yyscanner);
2642 #else
2643  return input(yyscanner);
2644 #endif
2645  }
2646 
2647  case EOB_ACT_CONTINUE_SCAN:
2648  yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2649  break;
2650  }
2651  }
2652  }
2653 
2654  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2655  *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2656  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2657 
2658  if ( c == '\n' )
2659 
2660  do{ yylineno++;
2661  yycolumn=0;
2662  }while(0)
2663 ;
2664 
2665  return c;
2666 }
2667 #endif /* ifndef YY_NO_INPUT */
2668 
2674  void osssrestart (FILE * input_file , yyscan_t yyscanner)
2675 {
2676  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2677 
2678  if ( ! YY_CURRENT_BUFFER ){
2679  osssensure_buffer_stack (yyscanner);
2681  osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2682  }
2683 
2684  osss_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2685  osss_load_buffer_state(yyscanner );
2686 }
2687 
2692  void osss_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2693 {
2694  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2695 
2696  /* TODO. We should be able to replace this entire function body
2697  * with
2698  * ossspop_buffer_state();
2699  * ossspush_buffer_state(new_buffer);
2700  */
2701  osssensure_buffer_stack (yyscanner);
2702  if ( YY_CURRENT_BUFFER == new_buffer )
2703  return;
2704 
2705  if ( YY_CURRENT_BUFFER )
2706  {
2707  /* Flush out information for old buffer. */
2708  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2709  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2710  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2711  }
2712 
2713  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2714  osss_load_buffer_state(yyscanner );
2715 
2716  /* We don't actually know whether we did this switch during
2717  * EOF (ossswrap()) processing, but the only time this flag
2718  * is looked at is after ossswrap() is called, so it's safe
2719  * to go ahead and always set it.
2720  */
2721  yyg->yy_did_buffer_switch_on_eof = 1;
2722 }
2723 
2724 static void osss_load_buffer_state (yyscan_t yyscanner)
2725 {
2726  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2727  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2728  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2729  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2730  yyg->yy_hold_char = *yyg->yy_c_buf_p;
2731 }
2732 
2739  YY_BUFFER_STATE osss_create_buffer (FILE * file, int size , yyscan_t yyscanner)
2740 {
2741  YY_BUFFER_STATE b;
2742 
2743  b = (YY_BUFFER_STATE) osssalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2744  if ( ! b )
2745  YY_FATAL_ERROR( "out of dynamic memory in osss_create_buffer()" );
2746 
2747  b->yy_buf_size = size;
2748 
2749  /* yy_ch_buf has to be 2 characters longer than the size given because
2750  * we need to put in 2 end-of-buffer characters.
2751  */
2752  b->yy_ch_buf = (char *) osssalloc(b->yy_buf_size + 2 ,yyscanner );
2753  if ( ! b->yy_ch_buf )
2754  YY_FATAL_ERROR( "out of dynamic memory in osss_create_buffer()" );
2755 
2756  b->yy_is_our_buffer = 1;
2757 
2758  osss_init_buffer(b,file ,yyscanner);
2759 
2760  return b;
2761 }
2762 
2767  void osss_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2768 {
2769  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2770 
2771  if ( ! b )
2772  return;
2773 
2774  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2776 
2777  if ( b->yy_is_our_buffer )
2778  osssfree((void *) b->yy_ch_buf ,yyscanner );
2779 
2780  osssfree((void *) b ,yyscanner );
2781 }
2782 
2783 #ifndef __cplusplus
2784 extern int isatty (int );
2785 #endif /* __cplusplus */
2786 
2787 /* Initializes or reinitializes a buffer.
2788  * This function is sometimes called more than once on the same buffer,
2789  * such as during a osssrestart() or at EOF.
2790  */
2791  static void osss_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2792 
2793 {
2794  int oerrno = errno;
2795  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2796 
2797  osss_flush_buffer(b ,yyscanner);
2798 
2799  b->yy_input_file = file;
2800  b->yy_fill_buffer = 1;
2801 
2802  /* If b is the current buffer, then osss_init_buffer was _probably_
2803  * called from osssrestart() or through yy_get_next_buffer.
2804  * In that case, we don't want to reset the lineno or column.
2805  */
2806  if (b != YY_CURRENT_BUFFER){
2807  b->yy_bs_lineno = 1;
2808  b->yy_bs_column = 0;
2809  }
2810 
2811  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2812 
2813  errno = oerrno;
2814 }
2815 
2820  void osss_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2821 {
2822  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2823  if ( ! b )
2824  return;
2825 
2826  b->yy_n_chars = 0;
2827 
2828  /* We always need two end-of-buffer characters. The first causes
2829  * a transition to the end-of-buffer state. The second causes
2830  * a jam in that state.
2831  */
2834 
2835  b->yy_buf_pos = &b->yy_ch_buf[0];
2836 
2837  b->yy_at_bol = 1;
2839 
2840  if ( b == YY_CURRENT_BUFFER )
2841  osss_load_buffer_state(yyscanner );
2842 }
2843 
2850 void ossspush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2851 {
2852  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2853  if (new_buffer == NULL)
2854  return;
2855 
2856  osssensure_buffer_stack(yyscanner);
2857 
2858  /* This block is copied from osss_switch_to_buffer. */
2859  if ( YY_CURRENT_BUFFER )
2860  {
2861  /* Flush out information for old buffer. */
2862  *yyg->yy_c_buf_p = yyg->yy_hold_char;
2863  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2864  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2865  }
2866 
2867  /* Only push if top exists. Otherwise, replace top. */
2868  if (YY_CURRENT_BUFFER)
2869  yyg->yy_buffer_stack_top++;
2870  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2871 
2872  /* copied from osss_switch_to_buffer. */
2873  osss_load_buffer_state(yyscanner );
2874  yyg->yy_did_buffer_switch_on_eof = 1;
2875 }
2876 
2882 {
2883  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2884  if (!YY_CURRENT_BUFFER)
2885  return;
2886 
2888  YY_CURRENT_BUFFER_LVALUE = NULL;
2889  if (yyg->yy_buffer_stack_top > 0)
2890  --yyg->yy_buffer_stack_top;
2891 
2892  if (YY_CURRENT_BUFFER) {
2893  osss_load_buffer_state(yyscanner );
2894  yyg->yy_did_buffer_switch_on_eof = 1;
2895  }
2896 }
2897 
2898 /* Allocates the stack if it does not exist.
2899  * Guarantees space for at least one push.
2900  */
2901 static void osssensure_buffer_stack (yyscan_t yyscanner)
2902 {
2903  int num_to_alloc;
2904  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2905 
2906  if (!yyg->yy_buffer_stack) {
2907 
2908  /* First allocation is just for 2 elements, since we don't know if this
2909  * scanner will even need a stack. We use 2 instead of 1 to avoid an
2910  * immediate realloc on the next call.
2911  */
2912  num_to_alloc = 1;
2913  yyg->yy_buffer_stack = (struct yy_buffer_state**)osssalloc
2914  (num_to_alloc * sizeof(struct yy_buffer_state*)
2915  , yyscanner);
2916  if ( ! yyg->yy_buffer_stack )
2917  YY_FATAL_ERROR( "out of dynamic memory in osssensure_buffer_stack()" );
2918 
2919  memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2920 
2921  yyg->yy_buffer_stack_max = num_to_alloc;
2922  yyg->yy_buffer_stack_top = 0;
2923  return;
2924  }
2925 
2926  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2927 
2928  /* Increase the buffer to prepare for a possible push. */
2929  int grow_size = 8 /* arbitrary grow size */;
2930 
2931  num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2933  (yyg->yy_buffer_stack,
2934  num_to_alloc * sizeof(struct yy_buffer_state*)
2935  , yyscanner);
2936  if ( ! yyg->yy_buffer_stack )
2937  YY_FATAL_ERROR( "out of dynamic memory in osssensure_buffer_stack()" );
2938 
2939  /* zero only the new slots.*/
2940  memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2941  yyg->yy_buffer_stack_max = num_to_alloc;
2942  }
2943 }
2944 
2951 YY_BUFFER_STATE osss_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2952 {
2953  YY_BUFFER_STATE b;
2954 
2955  if ( size < 2 ||
2956  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2957  base[size-1] != YY_END_OF_BUFFER_CHAR )
2958  /* They forgot to leave room for the EOB's. */
2959  return 0;
2960 
2961  b = (YY_BUFFER_STATE) osssalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2962  if ( ! b )
2963  YY_FATAL_ERROR( "out of dynamic memory in osss_scan_buffer()" );
2964 
2965  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2966  b->yy_buf_pos = b->yy_ch_buf = base;
2967  b->yy_is_our_buffer = 0;
2968  b->yy_input_file = 0;
2969  b->yy_n_chars = b->yy_buf_size;
2970  b->yy_is_interactive = 0;
2971  b->yy_at_bol = 1;
2972  b->yy_fill_buffer = 0;
2974 
2975  osss_switch_to_buffer(b ,yyscanner );
2976 
2977  return b;
2978 }
2979 
2988 YY_BUFFER_STATE osss_scan_string (yyconst char * yystr , yyscan_t yyscanner)
2989 {
2990 
2991  return osss_scan_bytes(yystr,strlen(yystr) ,yyscanner);
2992 }
2993 
3001 YY_BUFFER_STATE osss_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
3002 {
3003  YY_BUFFER_STATE b;
3004  char *buf;
3005  yy_size_t n;
3006  int i;
3007 
3008  /* Get memory for full buffer, including space for trailing EOB's. */
3009  n = _yybytes_len + 2;
3010  buf = (char *) osssalloc(n ,yyscanner );
3011  if ( ! buf )
3012  YY_FATAL_ERROR( "out of dynamic memory in osss_scan_bytes()" );
3013 
3014  for ( i = 0; i < _yybytes_len; ++i )
3015  buf[i] = yybytes[i];
3016 
3017  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3018 
3019  b = osss_scan_buffer(buf,n ,yyscanner);
3020  if ( ! b )
3021  YY_FATAL_ERROR( "bad buffer in osss_scan_bytes()" );
3022 
3023  /* It's okay to grow etc. this buffer, and we should throw it
3024  * away when we're done.
3025  */
3026  b->yy_is_our_buffer = 1;
3027 
3028  return b;
3029 }
3030 
3031 #ifndef YY_EXIT_FAILURE
3032 #define YY_EXIT_FAILURE 2
3033 #endif
3034 
3035 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
3036 {
3037  (void) fprintf( stderr, "%s\n", msg );
3038  exit( YY_EXIT_FAILURE );
3039 }
3040 
3041 /* Redefine yyless() so it works in section 3 code. */
3042 
3043 #undef yyless
3044 #define yyless(n) \
3045  do \
3046  { \
3047  /* Undo effects of setting up yytext. */ \
3048  int yyless_macro_arg = (n); \
3049  YY_LESS_LINENO(yyless_macro_arg);\
3050  yytext[yyleng] = yyg->yy_hold_char; \
3051  yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3052  yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3053  *yyg->yy_c_buf_p = '\0'; \
3054  yyleng = yyless_macro_arg; \
3055  } \
3056  while ( 0 )
3057 
3058 /* Accessor methods (get/set functions) to struct members. */
3059 
3064 {
3065  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3066  return yyextra;
3067 }
3068 
3072 int osssget_lineno (yyscan_t yyscanner)
3073 {
3074  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3075 
3076  if (! YY_CURRENT_BUFFER)
3077  return 0;
3078 
3079  return yylineno;
3080 }
3081 
3085 int osssget_column (yyscan_t yyscanner)
3086 {
3087  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3088 
3089  if (! YY_CURRENT_BUFFER)
3090  return 0;
3091 
3092  return yycolumn;
3093 }
3094 
3098 FILE *osssget_in (yyscan_t yyscanner)
3099 {
3100  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3101  return yyin;
3102 }
3103 
3107 FILE *osssget_out (yyscan_t yyscanner)
3108 {
3109  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3110  return yyout;
3111 }
3112 
3116 int osssget_leng (yyscan_t yyscanner)
3117 {
3118  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3119  return yyleng;
3120 }
3121 
3126 char *osssget_text (yyscan_t yyscanner)
3127 {
3128  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3129  return yytext;
3130 }
3131 
3136 void osssset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
3137 {
3138  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3139  yyextra = user_defined ;
3140 }
3141 
3146 void osssset_lineno (int line_number , yyscan_t yyscanner)
3147 {
3148  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3149 
3150  /* lineno is only valid if an input buffer exists. */
3151  if (! YY_CURRENT_BUFFER )
3152  yy_fatal_error( "osssset_lineno called with no buffer" , yyscanner);
3153 
3154  yylineno = line_number;
3155 }
3156 
3161 void osssset_column (int column_no , yyscan_t yyscanner)
3162 {
3163  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3164 
3165  /* column is only valid if an input buffer exists. */
3166  if (! YY_CURRENT_BUFFER )
3167  yy_fatal_error( "osssset_column called with no buffer" , yyscanner);
3168 
3169  yycolumn = column_no;
3170 }
3171 
3178 void osssset_in (FILE * in_str , yyscan_t yyscanner)
3179 {
3180  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3181  yyin = in_str ;
3182 }
3183 
3184 void osssset_out (FILE * out_str , yyscan_t yyscanner)
3185 {
3186  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3187  yyout = out_str ;
3188 }
3189 
3190 int osssget_debug (yyscan_t yyscanner)
3191 {
3192  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3193  return yy_flex_debug;
3194 }
3195 
3196 void osssset_debug (int bdebug , yyscan_t yyscanner)
3197 {
3198  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3199  yy_flex_debug = bdebug ;
3200 }
3201 
3202 /* Accessor methods for yylval and yylloc */
3203 
3204 /* User-visible API */
3205 
3206 /* ossslex_init is special because it creates the scanner itself, so it is
3207  * the ONLY reentrant function that doesn't take the scanner as the last argument.
3208  * That's why we explicitly handle the declaration, instead of using our macros.
3209  */
3210 
3211 int ossslex_init(yyscan_t* ptr_yy_globals)
3212 
3213 {
3214  if (ptr_yy_globals == NULL){
3215  errno = EINVAL;
3216  return 1;
3217  }
3218 
3219  *ptr_yy_globals = (yyscan_t) osssalloc ( sizeof( struct yyguts_t ), NULL );
3220 
3221  if (*ptr_yy_globals == NULL){
3222  errno = ENOMEM;
3223  return 1;
3224  }
3225 
3226  /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3227  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3228 
3229  return yy_init_globals ( *ptr_yy_globals );
3230 }
3231 
3232 /* ossslex_init_extra has the same functionality as ossslex_init, but follows the
3233  * convention of taking the scanner as the last argument. Note however, that
3234  * this is a *pointer* to a scanner, as it will be allocated by this call (and
3235  * is the reason, too, why this function also must handle its own declaration).
3236  * The user defined value in the first argument will be available to osssalloc in
3237  * the yyextra field.
3238  */
3239 
3240 int ossslex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
3241 
3242 {
3243  struct yyguts_t dummy_yyguts;
3244 
3245  osssset_extra (yy_user_defined, &dummy_yyguts);
3246 
3247  if (ptr_yy_globals == NULL){
3248  errno = EINVAL;
3249  return 1;
3250  }
3251 
3252  *ptr_yy_globals = (yyscan_t) osssalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3253 
3254  if (*ptr_yy_globals == NULL){
3255  errno = ENOMEM;
3256  return 1;
3257  }
3258 
3259  /* By setting to 0xAA, we expose bugs in
3260  yy_init_globals. Leave at 0x00 for releases. */
3261  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3262 
3263  osssset_extra (yy_user_defined, *ptr_yy_globals);
3264 
3265  return yy_init_globals ( *ptr_yy_globals );
3266 }
3267 
3268 static int yy_init_globals (yyscan_t yyscanner)
3269 {
3270  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3271  /* Initialization is the same as for the non-reentrant scanner.
3272  * This function is called from ossslex_destroy(), so don't allocate here.
3273  */
3274 
3275  yyg->yy_buffer_stack = 0;
3276  yyg->yy_buffer_stack_top = 0;
3277  yyg->yy_buffer_stack_max = 0;
3278  yyg->yy_c_buf_p = (char *) 0;
3279  yyg->yy_init = 0;
3280  yyg->yy_start = 0;
3281 
3282  yyg->yy_start_stack_ptr = 0;
3283  yyg->yy_start_stack_depth = 0;
3284  yyg->yy_start_stack = NULL;
3285 
3286 /* Defined in main.c */
3287 #ifdef YY_STDINIT
3288  yyin = stdin;
3289  yyout = stdout;
3290 #else
3291  yyin = (FILE *) 0;
3292  yyout = (FILE *) 0;
3293 #endif
3294 
3295  /* For future reference: Set errno on error, since we are called by
3296  * ossslex_init()
3297  */
3298  return 0;
3299 }
3300 
3301 /* ossslex_destroy is for both reentrant and non-reentrant scanners. */
3302 int ossslex_destroy (yyscan_t yyscanner)
3303 {
3304  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3305 
3306  /* Pop the buffer stack, destroying each element. */
3307  while(YY_CURRENT_BUFFER){
3309  YY_CURRENT_BUFFER_LVALUE = NULL;
3310  ossspop_buffer_state(yyscanner);
3311  }
3312 
3313  /* Destroy the stack itself. */
3314  osssfree(yyg->yy_buffer_stack ,yyscanner);
3315  yyg->yy_buffer_stack = NULL;
3316 
3317  /* Destroy the start condition stack. */
3318  osssfree(yyg->yy_start_stack ,yyscanner );
3319  yyg->yy_start_stack = NULL;
3320 
3321  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3322  * ossslex() is called, initialization will occur. */
3323  yy_init_globals( yyscanner);
3324 
3325  /* Destroy the main struct (reentrant only). */
3326  osssfree ( yyscanner , yyscanner );
3327  yyscanner = NULL;
3328  return 0;
3329 }
3330 
3331 /*
3332  * Internal utility routines.
3333  */
3334 
3335 #ifndef yytext_ptr
3336 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3337 {
3338  register int i;
3339  for ( i = 0; i < n; ++i )
3340  s1[i] = s2[i];
3341 }
3342 #endif
3343 
3344 #ifdef YY_NEED_STRLEN
3345 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3346 {
3347  register int n;
3348  for ( n = 0; s[n]; ++n )
3349  ;
3350 
3351  return n;
3352 }
3353 #endif
3354 
3355 void *osssalloc (yy_size_t size , yyscan_t yyscanner)
3356 {
3357  return (void *) malloc( size );
3358 }
3359 
3360 void *osssrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3361 {
3362  /* The cast to (char *) in the following accommodates both
3363  * implementations that use char* generic pointers, and those
3364  * that use void* generic pointers. It works with the latter
3365  * because both ANSI C and C++ allow castless assignment from
3366  * any pointer type to void*, and deal with argument conversions
3367  * as though doing an assignment.
3368  */
3369  return (void *) realloc( (char *) ptr, size );
3370 }
3371 
3372 void osssfree (void * ptr , yyscan_t yyscanner)
3373 {
3374  free( (char *) ptr ); /* see osssrealloc() for (char *) cast */
3375 }
3376 
3377 #define YYTABLES_NAME "yytables"
3378 
3379 #line 843 "../../../../OS/src/OSParsers/OSParseosss.l"
3380 
3381 
3382 
3383 void setyyextra(OSCommandLine *oscommandline, void* scanner){
3384  osssset_extra(oscommandline, scanner);
3385 }
3386 
register char * yy_bp
static yyconst flex_int16_t yy_base[648]
int osssget_column(yyscan_t yyscanner)
Get the current column number.
#define YY_BREAK
void osssset_debug(int debug_flag, yyscan_t yyscanner)
size_t yy_buffer_stack_top
index of top of stack.
#define YY_FATAL_ERROR(msg)
int yy_start_stack_depth
#define YY_READ_BUF_SIZE
#define YY_BUFFER_EOF_PENDING
char * osssget_text(yyscan_t yyscanner)
Get the current token.
unsigned char flex_uint8_t
Definition: OSParseosil.cpp:78
FILE * yyin_r
#define YY_INPUT(buf, result, max_size)
#define scanner
static yyconst flex_int32_t yy_rule_can_match_eol[61]
void osssset_extra(YY_EXTRA_TYPE user_defined, yyscan_t yyscanner)
Set the user-defined data.
#define YY_NEW_FILE
int ossslex_init(void **ptr)
int osssget_lineno(yyscan_t yyscanner)
Get the current line number.
#define yytext
char yy_hold_char
void osss_switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Switch to a different input buffer.
#define YY_END_OF_BUFFER_CHAR
static void yy_fatal_error(yyconst char msg[], yyscan_t yyscanner)
int yy_more_flag
if(!yyg->yy_init)
int yy_bs_lineno
The line count.
void * osssalloc(yy_size_t, yyscan_t yyscanner)
size_t yy_size_t
char * yytext_r
#define INITIAL
INPUTS: -osil xxx.osil (file name on local machine of optimization instance, this is &quot;&quot; by default...
void osssset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
#define YY_CURRENT_BUFFER_LVALUE
FILE * osssget_out(yyscan_t yyscanner)
Get the output stream.
static void osssensure_buffer_stack(yyscan_t yyscanner)
void osss_delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Destroy the buffer.
int isatty(int)
size_t yy_buffer_stack_max
capacity of stack.
void osssfree(void *, yyscan_t yyscanner)
static yyconst flex_int16_t yy_nxt[1006]
int yy_state_type
static yyconst flex_int32_t yy_ec[256]
yy_size_t yy_buf_size
YY_EXTRA_TYPE yyextra_r
#define ossswrap(n)
int ossslex_destroy(void *scanner)
register int yy_act
unsigned int flex_uint32_t
Definition: OSParseosil.cpp:80
void ossspush_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Pushes the new state onto the stack.
char * yy_c_buf_p
struct yy_buffer_state * YY_BUFFER_STATE
#define YY_BUFFER_NORMAL
#define yyout
void * osssrealloc(void *, yy_size_t, yyscan_t yyscanner)
int yy_did_buffer_switch_on_eof
#define YY_PRINT
int yy_bs_column
The column count.
#define yylineno
short int flex_int16_t
Definition: OSParseosil.cpp:76
FILE * osssget_in(yyscan_t yyscanner)
Get the input stream.
void osssset_in(FILE *in_str, yyscan_t yyscanner)
Set the input stream.
CONST unsigned char * s1
Definition: OSdtoa.cpp:1814
int osssget_leng(yyscan_t yyscanner)
Get the length of the current token.
#define YY_RULE_SETUP
int yy_flex_debug_r
#define yyterminate()
YY_DECL register yy_state_type yy_current_state
The main scanner function which does all the work.
#define EOB_ACT_LAST_MATCH
static void osss_load_buffer_state(yyscan_t yyscanner)
int yy_start_stack_ptr
YY_BUFFER_STATE osss_scan_bytes(yyconst char *bytes, int len, yyscan_t yyscanner)
Setup the input buffer state to scan the given bytes.
#define YY_START
int ossslex_init_extra(YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
int * yy_start_stack
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 yyin
void setyyextra(OSCommandLine *oscommandline, void *scanner)
static int
Definition: OSdtoa.cpp:2173
YY_BUFFER_STATE osss_create_buffer(FILE *file, int size, yyscan_t yyscanner)
Allocate and initialize an input buffer state.
yy_state_type yy_last_accepting_state
void ossspop_buffer_state(yyscan_t yyscanner)
Removes and deletes the top of the stack, if present.
int flex_int32_t
Definition: OSParseosil.cpp:77
#define YY_BUFFER_NEW
#define YY_SC_TO_UI(c)
#define EOB_ACT_END_OF_FILE
#define yy_flex_debug
void osssset_out(FILE *out_str, yyscan_t yyscanner)
#define YY_EXTRA_TYPE
static yyconst flex_int16_t yy_accept[568]
YY_EXTRA_TYPE osssget_extra(yyscan_t yyscanner)
Get the user-defined data for this scanner.
static int input(yyscan_t yyscanner)
#define YY_CURRENT_BUFFER
#define YY_MORE_ADJ
#define yyextra
int osssget_debug(yyscan_t yyscanner)
unsigned short int flex_uint16_t
Definition: OSParseosil.cpp:79
flex_int32_t yy_verify
void * yyscan_t
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
#define YY_DECL
static int yy_init_globals(yyscan_t yyscanner)
void osss_flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Discard all buffered characters.
#define yycolumn
static void
Definition: OSdtoa.cpp:1741
unsigned char YY_CHAR
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
#define YY_BUF_SIZE
static yyconst flex_int32_t yy_meta[41]
flex_int32_t yy_nxt
int ossslex(void *scanner)
#define YY_STATE_EOF(state)
This class is used to store command line options for the OSSolverService executable and to provide me...
Definition: OSCommandLine.h:36
FILE * yyout_r
static void osss_init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
static yyconst flex_int16_t yy_def[648]
#define yyconst
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
#define EOB_ACT_CONTINUE_SCAN
char * yy_last_accepting_cpos
#define ECHO
used for throwing exceptions.
Definition: OSErrorClass.h:31
void fint * n
return b
Definition: OSdtoa.cpp:1719
signed char flex_int8_t
Definition: OSParseosil.cpp:75
real c
static yyconst flex_int16_t yy_chk[1006]
#define yyleng
#define YY_RESTORE_YY_MORE_OFFSET
struct yyguts_t * yyg
static int yy_get_next_buffer(yyscan_t yyscanner)
void osssset_column(int column_no, yyscan_t yyscanner)
Set the current column.
#define YY_END_OF_BUFFER
static YYSIZE_T const char * yystr
#define YY_EXIT_FAILURE
#define YY_DO_BEFORE_ACTION
YY_BUFFER_STATE osss_scan_string(const char *osss, void *scanner)
void osssrestart(FILE *input_file, yyscan_t yyscanner)
Immediately switch to a different input stream.
YY_BUFFER_STATE osss_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.