OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimEquTokenizer.cpp
Go to the documentation of this file.
1 //#define yyFlexLexer ossimEquTokenizerFlexLexer
2 //#define yywrap ossimEquTokenizerwrap
4 /* A lexical scanner generated by flex */
5 
6 /* Scanner skeleton version:
7  * $Header$
8  */
9 
10 #define FLEX_SCANNER
11 #define YY_FLEX_MAJOR_VERSION 2
12 #define YY_FLEX_MINOR_VERSION 5
13 
14 
15 
16 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
17 #ifdef c_plusplus
18 #ifndef __cplusplus
19 #define __cplusplus
20 #endif
21 #endif
22 
23 
24 #ifdef __cplusplus
25 
26 #include <cstdio> /* for EOF */
27 #include <cstdlib>
28 #include <iostream>
29 #include <fstream>
30 using namespace std;
31 
32 /* Use prototypes in function declarations. */
33 #define YY_USE_PROTOS
34 
35 /* The "const" storage-class-modifier is valid. */
36 #define YY_USE_CONST
37 
38 #else /* ! __cplusplus */
39 
40 #if __STDC__
41 
42 #define YY_USE_PROTOS
43 #define YY_USE_CONST
44 
45 #endif /* __STDC__ */
46 #endif /* ! __cplusplus */
47 
48 #ifdef __TURBOC__
49  #pragma warn -rch
50  #pragma warn -use
51 #include <io.h>
52 #include <stdlib.h>
53 #define YY_USE_CONST
54 #define YY_USE_PROTOS
55 #endif
56 
57 #ifdef YY_USE_CONST
58 #define yyconst const
59 #else
60 #define yyconst
61 #endif
62 
63 
64 #ifdef YY_USE_PROTOS
65 #define YY_PROTO(proto) proto
66 #else
67 #define YY_PROTO(proto) ()
68 #endif
69 
70 /* Returned upon end-of-file. */
71 #define YY_NULL 0
72 
73 /* Promotes a possibly negative, possibly signed char to an unsigned
74  * integer for use as an array index. If the signed char is negative,
75  * we want to instead treat it as an 8-bit unsigned char, hence the
76  * double cast.
77  */
78 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
79 
80 /* Enter a start condition. This macro really ought to take a parameter,
81  * but we do it the disgusting crufty way forced on us by the ()-less
82  * definition of BEGIN.
83  */
84 #define BEGIN yy_start = 1 + 2 *
85 
86 /* Translate the current start state into a value that can be later handed
87  * to BEGIN to return to the state. The YYSTATE alias is for lex
88  * compatibility.
89  */
90 #define YY_START ((yy_start - 1) / 2)
91 #define YYSTATE YY_START
92 
93 /* Action number for EOF rule of a given start state. */
94 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
95 
96 /* Special action meaning "start processing a new file". */
97 #define YY_NEW_FILE yyrestart( yyin )
98 
99 #define YY_END_OF_BUFFER_CHAR 0
100 
101 /* Size of default input buffer. */
102 #define YY_BUF_SIZE 16384
103 
105 
106 extern int yyleng;
107 
108 #define EOB_ACT_CONTINUE_SCAN 0
109 #define EOB_ACT_END_OF_FILE 1
110 #define EOB_ACT_LAST_MATCH 2
111 
112 /* The funky do-while in the following #define is used to turn the definition
113  * int a single C statement (which needs a semi-colon terminator). This
114  * avoids problems with code like:
115  *
116  * if ( condition_holds )
117  * yyless( 5 );
118  * else
119  * do_something_else();
120  *
121  * Prior to using the do-while the compiler would get upset at the
122  * "else" because it interpreted the "if" statement as being all
123  * done when it reached the ';' after the yyless() call.
124  */
125 
126 /* Return all but the first 'n' matched characters back to the input stream. */
127 
128 #define yyless(n) \
129  do \
130  { \
131  /* Undo effects of setting up yytext. */ \
132  *yy_cp = yy_hold_char; \
133  YY_RESTORE_YY_MORE_OFFSET \
134  yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
135  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
136  } \
137  while ( 0 )
138 
139 #define unput(c) yyunput( c, yytext_ptr )
140 
141 /* The following is because we cannot portably get our hands on size_t
142  * (without autoconf's help, which isn't available because we want
143  * flex-generated scanners to compile on their own).
144  */
145 typedef unsigned int yy_size_t;
146 
147 
149  {
151 
152  char *yy_ch_buf; /* input buffer */
153  char *yy_buf_pos; /* current position in input buffer */
154 
155  /* Size of input buffer in bytes, not including room for EOB
156  * characters.
157  */
159 
160  /* Number of characters read into yy_ch_buf, not including EOB
161  * characters.
162  */
164 
165  /* Whether we "own" the buffer - i.e., we know we created it,
166  * and can realloc() it to grow it, and should free() it to
167  * delete it.
168  */
170 
171  /* Whether this is an "interactive" input source; if so, and
172  * if we're using stdio for input, then we want to use getc()
173  * instead of fread(), to make sure we stop fetching input after
174  * each newline.
175  */
177 
178  /* Whether we're considered to be at the beginning of a line.
179  * If so, '^' rules will be active on the next match, otherwise
180  * not.
181  */
183 
184  /* Whether to try to fill the input buffer when we reach the
185  * end of it.
186  */
188 
190 #define YY_BUFFER_NEW 0
191 #define YY_BUFFER_NORMAL 1
192  /* When an EOF's been seen but there's still some text to process
193  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
194  * shouldn't try reading from the input source any more. We might
195  * still have a bunch of tokens to match, though, because of
196  * possible backing-up.
197  *
198  * When we actually see the EOF, we change the status to "new"
199  * (via yyrestart()), so that the user can continue scanning by
200  * just pointing yyin at a new input file.
201  */
202 #define YY_BUFFER_EOF_PENDING 2
203  };
204 
205 
206 /* We provide macros for accessing buffer states in case in the
207  * future we want to put the buffer states in a more general
208  * "scanner state".
209  */
210 #define YY_CURRENT_BUFFER yy_current_buffer
211 
212 
213 
214 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
215 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
216 static void yy_flex_free YY_PROTO(( void * ));
217 
218 #define yy_new_buffer yy_create_buffer
219 
220 #define yy_set_interactive(is_interactive) \
221  { \
222  if ( ! yy_current_buffer ) \
223  yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
224  yy_current_buffer->yy_is_interactive = is_interactive; \
225  }
226 
227 #define yy_set_bol(at_bol) \
228  { \
229  if ( ! yy_current_buffer ) \
230  yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
231  yy_current_buffer->yy_at_bol = at_bol; \
232  }
233 
234 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
235 
236 typedef unsigned char YY_CHAR;
237 #define yytext_ptr yytext
238 #define YY_INTERACTIVE
239 
240 //#include <ossim/base/ossimFlexLexer.h>
241 
242 /* Done after the current pattern has been matched and before the
243  * corresponding action - sets up yytext.
244  */
245 #define YY_DO_BEFORE_ACTION \
246  yytext_ptr = yy_bp; \
247  yyleng = (int) (yy_cp - yy_bp); \
248  yy_hold_char = *yy_cp; \
249  *yy_cp = '\0'; \
250  yy_c_buf_p = yy_cp;
251 
252 #define YY_NUM_RULES 52
253 #define YY_END_OF_BUFFER 53
254 static yyconst short int yy_accept[119] =
255  { 0,
256  0, 0, 53, 52, 1, 11, 7, 14, 15, 5,
257  9, 3, 10, 52, 4, 2, 49, 52, 47, 52,
258  12, 13, 16, 52, 52, 52, 52, 52, 52, 52,
259  52, 52, 52, 6, 8, 1, 2, 2, 2, 0,
260  50, 51, 46, 48, 19, 0, 0, 0, 0, 0,
261  0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
262  0, 0, 0, 0, 0, 2, 35, 0, 0, 0,
263  0, 0, 0, 0, 0, 0, 27, 22, 20, 38,
264  37, 0, 23, 0, 31, 17, 0, 2, 29, 25,
265  0, 33, 42, 0, 0, 44, 39, 28, 0, 0,
266 
267  24, 36, 32, 30, 26, 0, 34, 41, 45, 21,
268  40, 0, 0, 0, 0, 0, 43, 0
269  } ;
270 
271 static yyconst int yy_ec[256] =
272  { 0,
273  1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
274  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
275  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
276  1, 2, 1, 1, 1, 1, 3, 4, 1, 5,
277  6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
278  15, 15, 15, 15, 15, 15, 15, 1, 1, 16,
279  17, 18, 1, 1, 1, 1, 1, 1, 19, 1,
280  1, 1, 20, 1, 1, 1, 1, 1, 1, 21,
281  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
282  22, 1, 23, 24, 25, 1, 26, 27, 28, 29,
283 
284  30, 31, 32, 33, 34, 1, 1, 35, 36, 37,
285  38, 39, 40, 41, 42, 43, 44, 45, 1, 46,
286  1, 1, 1, 47, 1, 48, 1, 1, 1, 1,
287  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
288  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
289  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
290  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
291  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
292  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
293  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
294 
295  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
296  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
297  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
298  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
299  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
300  1, 1, 1, 1, 1
301  } ;
302 
303 static yyconst int yy_meta[49] =
304  { 0,
305  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
306  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
307  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
308  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
309  1, 1, 1, 1, 1, 1, 1, 1
310  } ;
311 
312 static yyconst short int yy_base[119] =
313  { 0,
314  0, 0, 170, 171, 167, 171, 171, 171, 171, 171,
315  171, 171, 171, 36, 171, 41, 40, 151, 150, 146,
316  171, 171, 171, 34, 33, 28, 119, 127, 125, 38,
317  40, 136, 123, 171, 171, 158, 68, 71, 78, 92,
318  171, 171, 171, 171, 171, 117, 120, 33, 131, 119,
319  111, 44, 57, 115, 171, 121, 106, 114, 116, 112,
320  107, 110, 105, 101, 104, 107, 171, 103, 107, 109,
321  105, 112, 99, 103, 99, 92, 107, 171, 121, 171,
322  171, 103, 104, 89, 102, 171, 110, 113, 101, 100,
323  81, 83, 171, 69, 65, 171, 171, 171, 90, 53,
324 
325  171, 171, 171, 171, 171, 58, 171, 171, 171, 171,
326  171, 63, 52, 43, 28, 24, 171, 171
327  } ;
328 
329 static yyconst short int yy_def[119] =
330  { 0,
331  118, 1, 118, 118, 118, 118, 118, 118, 118, 118,
332  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
333  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
334  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
335  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
336  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
337  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
338  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
339  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
340  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
341 
342  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
343  118, 118, 118, 118, 118, 118, 118, 0
344  } ;
345 
346 static yyconst short int yy_nxt[220] =
347  { 0,
348  4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
349  14, 15, 16, 16, 16, 17, 18, 19, 4, 4,
350  20, 21, 22, 23, 4, 24, 25, 26, 4, 27,
351  4, 4, 4, 28, 29, 30, 4, 4, 4, 4,
352  4, 31, 32, 4, 4, 33, 34, 35, 37, 37,
353  37, 38, 117, 39, 39, 39, 41, 42, 50, 40,
354  46, 47, 52, 57, 116, 53, 69, 51, 115, 74,
355  40, 58, 59, 60, 70, 48, 49, 75, 114, 61,
356  37, 37, 37, 37, 37, 37, 64, 113, 38, 40,
357  39, 39, 39, 76, 112, 111, 40, 64, 77, 65,
358 
359  40, 65, 110, 109, 66, 66, 66, 40, 87, 108,
360  87, 107, 106, 88, 88, 88, 66, 66, 66, 66,
361  66, 66, 88, 88, 88, 88, 88, 88, 105, 104,
362  103, 102, 101, 100, 99, 98, 97, 96, 95, 94,
363  93, 92, 91, 90, 89, 86, 85, 84, 83, 82,
364  81, 80, 79, 78, 73, 72, 71, 68, 67, 36,
365  63, 62, 56, 55, 54, 45, 44, 43, 36, 118,
366  3, 118, 118, 118, 118, 118, 118, 118, 118, 118,
367  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
368  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
369 
370  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
371  118, 118, 118, 118, 118, 118, 118, 118, 118
372  } ;
373 
374 static yyconst short int yy_chk[220] =
375  { 0,
376  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
377  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
379  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
380  1, 1, 1, 1, 1, 1, 1, 1, 14, 14,
381  14, 16, 116, 16, 16, 16, 17, 17, 25, 16,
382  24, 24, 26, 30, 115, 26, 48, 25, 114, 52,
383  16, 30, 31, 31, 48, 24, 24, 52, 113, 31,
384  37, 37, 37, 38, 38, 38, 37, 112, 39, 38,
385  39, 39, 39, 53, 106, 100, 39, 37, 53, 40,
386 
387  38, 40, 99, 95, 40, 40, 40, 39, 64, 94,
388  64, 92, 91, 64, 64, 64, 65, 65, 65, 66,
389  66, 66, 87, 87, 87, 88, 88, 88, 90, 89,
390  85, 84, 83, 82, 79, 77, 76, 75, 74, 73,
391  72, 71, 70, 69, 68, 63, 62, 61, 60, 59,
392  58, 57, 56, 54, 51, 50, 49, 47, 46, 36,
393  33, 32, 29, 28, 27, 20, 19, 18, 5, 3,
394  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
395  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
396  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
397 
398  118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
399  118, 118, 118, 118, 118, 118, 118, 118, 118
400  } ;
401 
402 /* The intent behind this definition is that it'll catch
403  * any uses of REJECT which flex missed.
404  */
405 #define REJECT reject_used_but_not_detected
406 #define yymore() yymore_used_but_not_detected
407 #define YY_MORE_ADJ 0
408 #define YY_RESTORE_YY_MORE_OFFSET
409 //#line 1 "ossimEquTokenizer.l"
410 #define INITIAL 0
411 //#line 2 "ossimEquTokenizer.l"
413 //#line 413 "lex.ossimEquTokenizer.cc"
414 
415 /* Macros after this point can all be overridden by user definitions in
416  * section 1.
417  */
418 
419 #ifndef YY_SKIP_YYWRAP
420 #ifdef __cplusplus
421 extern "C" int yywrap YY_PROTO(( void ));
422 #else
423 extern int yywrap YY_PROTO(( void ));
424 #endif
425 #endif
426 
427 
428 #ifndef yytext_ptr
429 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
430 #endif
431 
432 #ifdef YY_NEED_STRLEN
433 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
434 #endif
435 
436 #ifndef YY_NO_INPUT
437 #endif
438 
439 #if YY_STACK_USED
440 static int yy_start_stack_ptr = 0;
441 static int yy_start_stack_depth = 0;
442 static int *yy_start_stack = 0;
443 #ifndef YY_NO_PUSH_STATE
444 static void yy_push_state YY_PROTO(( int new_state ));
445 #endif
446 #ifndef YY_NO_POP_STATE
447 static void yy_pop_state YY_PROTO(( void ));
448 #endif
449 #ifndef YY_NO_TOP_STATE
450 static int yy_top_state YY_PROTO(( void ));
451 #endif
452 
453 #else
454 #define YY_NO_PUSH_STATE 1
455 #define YY_NO_POP_STATE 1
456 #define YY_NO_TOP_STATE 1
457 #endif
458 
459 #ifdef YY_MALLOC_DECL
460 YY_MALLOC_DECL
461 #else
462 #if __STDC__
463 #ifndef __cplusplus
464 #include <stdlib.h>
465 #endif
466 #else
467 /* Just try to get by without declaring the routines. This will fail
468  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
469  * or sizeof(void*) != sizeof(int).
470  */
471 #endif
472 #endif
473 
474 /* Amount of stuff to slurp up with each read. */
475 #ifndef YY_READ_BUF_SIZE
476 #define YY_READ_BUF_SIZE 8192
477 #endif
478 
479 /* Copy whatever the last rule matched to the standard output. */
480 
481 #ifndef ECHO
482 #define ECHO LexerOutput( yytext, yyleng )
483 #endif
484 
485 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
486  * is returned in "result".
487  */
488 #ifndef YY_INPUT
489 #define YY_INPUT(buf,result,max_size) \
490  if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
491  YY_FATAL_ERROR( "input in flex scanner failed" );
492 #endif
493 
494 /* No semi-colon after return; correct usage is to write "yyterminate();" -
495  * we don't want an extra ';' after the "return" because that will cause
496  * some compilers to complain about unreachable statements.
497  */
498 #ifndef yyterminate
499 #define yyterminate() return YY_NULL
500 #endif
501 
502 /* Number of entries by which start-condition stack grows. */
503 #ifndef YY_START_STACK_INCR
504 #define YY_START_STACK_INCR 25
505 #endif
506 
507 /* Report a fatal error. */
508 #ifndef YY_FATAL_ERROR
509 #define YY_FATAL_ERROR(msg) LexerError( msg )
510 #endif
511 
512 /* Default declaration of generated scanner - a define so the user can
513  * easily add parameters.
514  */
515 #ifndef YY_DECL
516 #define YY_DECL int yyFlexLexer::yylex()
517 #endif
518 
519 /* Code executed at the beginning of each rule, after yytext and yyleng
520  * have been set up.
521  */
522 #ifndef YY_USER_ACTION
523 #define YY_USER_ACTION
524 #endif
525 
526 /* Code executed at the end of each rule. */
527 #ifndef YY_BREAK
528 #define YY_BREAK break;
529 #endif
530 
531 #define YY_RULE_SETUP \
532  YY_USER_ACTION
533 
534 YY_DECL
535  {
536  yy_state_type yy_current_state;
537  char *yy_cp = NULL, *yy_bp = NULL;
538  int yy_act;
539 
540 //#line 15 "ossimEquTokenizer.l"
541 
542 
543 //#line 543 "lex.ossimEquTokenizer.cc"
544 
545  if ( yy_init )
546  {
547  yy_init = 0;
548 
549 #ifdef YY_USER_INIT
550  YY_USER_INIT;
551 #endif
552 
553  if ( ! yy_start )
554  yy_start = 1; /* first start state */
555 
556  if ( ! yyin )
557  yyin = &cin;
558 
559  if ( ! yyout )
560  yyout = &cout;
561 
562  if ( ! yy_current_buffer )
563  yy_current_buffer =
564  yy_create_buffer( yyin, YY_BUF_SIZE );
565 
566  yy_load_buffer_state();
567  }
568 
569  while ( 1 ) /* loops until end-of-file is reached */
570  {
571  yy_cp = yy_c_buf_p;
572 
573  /* Support of yytext. */
574  *yy_cp = yy_hold_char;
575 
576  /* yy_bp points to the position in yy_ch_buf of the start of
577  * the current run.
578  */
579  yy_bp = yy_cp;
580 
581  yy_current_state = yy_start;
582 yy_match:
583  do
584  {
585  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
586  if ( yy_accept[yy_current_state] )
587  {
588  yy_last_accepting_state = yy_current_state;
589  yy_last_accepting_cpos = yy_cp;
590  }
591 
592  // yy_chk size == 119
593  // yy_base size == 119
594 
595  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
596  {
597  yy_current_state = (int) yy_def[yy_current_state];
598  if ( yy_current_state >= 119 )
599  {
600  yy_c = yy_meta[(unsigned int) yy_c];
601  }
602 
603  //---
604  // NOTE:
605  // Need to test this!
606  // Above condition yy_current_state >= 119 flaged by coverity scan
607  // as an array out of bounds read. Both yy_chk and yy_base have
608  // size of 119. Added break to fix.
609  // drb - 20150529
610  //---
611  if ( (yy_current_state >= 119) ||
612  ( (yy_base[yy_current_state] + yy_c) >= 119 ) )
613  {
614  break;
615  }
616  }
617 
618  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
619  ++yy_cp;
620  }
621  while ( yy_base[yy_current_state] != 171 );
622 
623 yy_find_action:
624  yy_act = yy_accept[yy_current_state];
625  if ( yy_act == 0 )
626  { /* have to back up */
627  yy_cp = yy_last_accepting_cpos;
628  yy_current_state = yy_last_accepting_state;
629  yy_act = yy_accept[yy_current_state];
630  }
631 
633 
634 
635 do_action: /* This label is used only to access EOF actions. */
636 
637 
638  switch ( yy_act )
639  { /* beginning of action switch */
640  case 0: /* must back up */
641  /* undo the effects of YY_DO_BEFORE_ACTION */
642  *yy_cp = yy_hold_char;
643  yy_cp = yy_last_accepting_cpos;
644  yy_current_state = yy_last_accepting_state;
645  goto yy_find_action;
646 
647 case 1:
649 //#line 17 "ossimEquTokenizer.l"
650 /* skip blanks and tabs */
651  YY_BREAK
652 case 2:
654 //#line 19 "ossimEquTokenizer.l"
655 {
657  }
658  YY_BREAK
659 case 3:
661 //#line 22 "ossimEquTokenizer.l"
662 {
663  return OSSIM_EQU_TOKEN_COMMA;
664  }
665  YY_BREAK
666 case 4:
668 //#line 25 "ossimEquTokenizer.l"
669 {
670  return OSSIM_EQU_TOKEN_DIV;
671  }
672  YY_BREAK
673 case 5:
675 //#line 29 "ossimEquTokenizer.l"
676 {
677  return OSSIM_EQU_TOKEN_MULT;
678  }
679  YY_BREAK
680 case 6:
682 #line 33 "ossimEquTokenizer.l"
683 {
684  return OSSIM_EQU_TOKEN_OR_BAR;
685  }
686  YY_BREAK
687 case 7:
689 #line 37 "ossimEquTokenizer.l"
690 {
692  }
693  YY_BREAK
694 case 8:
696 #line 40 "ossimEquTokenizer.l"
697 {
698  return OSSIM_EQU_TOKEN_TILDE;
699  }
700  YY_BREAK
701 case 9:
703 #line 44 "ossimEquTokenizer.l"
704 {
705  return OSSIM_EQU_TOKEN_PLUS;
706  }
707  YY_BREAK
708 case 10:
710 #line 47 "ossimEquTokenizer.l"
711 {
712  return OSSIM_EQU_TOKEN_MINUS;
713  }
714  YY_BREAK
715 case 11:
717 #line 50 "ossimEquTokenizer.l"
718 {
719  return OSSIM_EQU_TOKEN_MOD;
720  }
721  YY_BREAK
722 case 12:
724 #line 53 "ossimEquTokenizer.l"
725 {
727  }
728  YY_BREAK
729 case 13:
731 #line 56 "ossimEquTokenizer.l"
732 {
734  }
735  YY_BREAK
736 case 14:
738 #line 59 "ossimEquTokenizer.l"
739 {
741  }
742  YY_BREAK
743 case 15:
745 #line 62 "ossimEquTokenizer.l"
746 {
748  }
749  YY_BREAK
750 case 16:
752 #line 65 "ossimEquTokenizer.l"
753 {
754  return OSSIM_EQU_TOKEN_POWER;
755  }
756  YY_BREAK
757 case 17:
759 #line 68 "ossimEquTokenizer.l"
760 {
761  return OSSIM_EQU_TOKEN_XOR;
762  }
763  YY_BREAK
764 case 18:
766 #line 72 "ossimEquTokenizer.l"
767 {
769  }
770  YY_BREAK
771 case 19:
773 #line 75 "ossimEquTokenizer.l"
774 {
775  return OSSIM_EQU_TOKEN_PI;
776  }
777  YY_BREAK
778 case 20:
780 #line 78 "ossimEquTokenizer.l"
781 {
782  return OSSIM_EQU_TOKEN_LOG;
783  }
784  YY_BREAK
785 case 21:
787 #line 81 "ossimEquTokenizer.l"
788 {
789  return OSSIM_EQU_TOKEN_LOG10;
790  }
791  YY_BREAK
792 case 22:
794 #line 84 "ossimEquTokenizer.l"
795 {
796  return OSSIM_EQU_TOKEN_EXP;
797  }
798  YY_BREAK
799 case 23:
801 #line 87 "ossimEquTokenizer.l"
802 {
803  return OSSIM_EQU_TOKEN_SIN;
804  }
805  YY_BREAK
806 case 24:
808 #line 90 "ossimEquTokenizer.l"
809 {
810  return OSSIM_EQU_TOKEN_SIND;
811  }
812  YY_BREAK
813 case 25:
815 #line 93 "ossimEquTokenizer.l"
816 {
817  return OSSIM_EQU_TOKEN_ASIN;
818  }
819  YY_BREAK
820 case 26:
822 #line 96 "ossimEquTokenizer.l"
823 {
824  return OSSIM_EQU_TOKEN_ASIND;
825  }
826  YY_BREAK
827 case 27:
829 #line 99 "ossimEquTokenizer.l"
830 {
831  return OSSIM_EQU_TOKEN_COS;
832  }
833  YY_BREAK
834 case 28:
836 #line 102 "ossimEquTokenizer.l"
837 {
838  return OSSIM_EQU_TOKEN_COSD;
839  }
840  YY_BREAK
841 case 29:
843 #line 105 "ossimEquTokenizer.l"
844 {
845  return OSSIM_EQU_TOKEN_ACOS;
846  }
847  YY_BREAK
848 case 30:
850 #line 108 "ossimEquTokenizer.l"
851 {
852  return OSSIM_EQU_TOKEN_ACOSD;
853  }
854  YY_BREAK
855 case 31:
857 #line 111 "ossimEquTokenizer.l"
858 {
859  return OSSIM_EQU_TOKEN_TAN;
860  }
861  YY_BREAK
862 case 32:
864 #line 114 "ossimEquTokenizer.l"
865 {
866  return OSSIM_EQU_TOKEN_TAND;
867  }
868  YY_BREAK
869 case 33:
871 #line 117 "ossimEquTokenizer.l"
872 {
873  return OSSIM_EQU_TOKEN_ATAN;
874  }
875  YY_BREAK
876 case 34:
878 #line 120 "ossimEquTokenizer.l"
879 {
880  return OSSIM_EQU_TOKEN_ATAND;
881  }
882  YY_BREAK
883 case 35:
885 #line 123 "ossimEquTokenizer.l"
886 {
887  return OSSIM_EQU_TOKEN_ABS;
888  }
889  YY_BREAK
890 case 36:
892 #line 126 "ossimEquTokenizer.l"
893 {
894  return OSSIM_EQU_TOKEN_SQRT;
895  }
896  YY_BREAK
897 case 37:
899 #line 129 "ossimEquTokenizer.l"
900 {
901  return OSSIM_EQU_TOKEN_MIN;
902  }
903  YY_BREAK
904 case 38:
906 #line 132 "ossimEquTokenizer.l"
907 {
908  return OSSIM_EQU_TOKEN_MAX;
909  }
910  YY_BREAK
911 case 39:
913 #line 135 "ossimEquTokenizer.l"
914 {
915  return OSSIM_EQU_TOKEN_CONV;
916  }
917  YY_BREAK
918 case 40:
920 #line 138 "ossimEquTokenizer.l"
921 {
922  return OSSIM_EQU_TOKEN_SHIFT;
923  }
924  YY_BREAK
925 case 41:
927 #line 141 "ossimEquTokenizer.l"
928 {
929  return OSSIM_EQU_TOKEN_BLURR;
930  }
931  YY_BREAK
932 case 42:
934 #line 144 "ossimEquTokenizer.l"
935 {
936  return OSSIM_EQU_TOKEN_BAND;
937  }
938  YY_BREAK
939 case 43:
941 #line 147 "ossimEquTokenizer.l"
942 {
944  }
945  YY_BREAK
946 case 44:
948 #line 150 "ossimEquTokenizer.l"
949 {
950  return OSSIM_EQU_TOKEN_CLIP;
951  }
952  YY_BREAK
953 case 45:
955 #line 153 "ossimEquTokenizer.l"
956 {
957  return OSSIM_EQU_TOKEN_CLAMP;
958  }
959  YY_BREAK
960 case 46:
962 #line 156 "ossimEquTokenizer.l"
963 {
964  return OSSIM_EQU_TOKEN_BEQUAL;
965 }
966  YY_BREAK
967 case 47:
969 #line 159 "ossimEquTokenizer.l"
970 {
972 }
973  YY_BREAK
974 case 48:
976 #line 162 "ossimEquTokenizer.l"
977 {
979 }
980  YY_BREAK
981 case 49:
983 #line 165 "ossimEquTokenizer.l"
984 {
985  return OSSIM_EQU_TOKEN_BLESS;
986 }
987  YY_BREAK
988 case 50:
990 #line 168 "ossimEquTokenizer.l"
991 {
993 }
994  YY_BREAK
995 case 51:
997 #line 171 "ossimEquTokenizer.l"
998 {
1000 }
1001  YY_BREAK
1002 case 52:
1004 #line 175 "ossimEquTokenizer.l"
1005 ECHO;
1006  YY_BREAK
1007 #line 986 "lex.ossimEquTokenizer.cc"
1008 case YY_STATE_EOF(INITIAL):
1009  yyterminate();
1010 
1011  case YY_END_OF_BUFFER:
1012  {
1013  /* Amount of text matched not including the EOB char. */
1014  int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1015 
1016  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1017  *yy_cp = yy_hold_char;
1019 
1020  if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1021  {
1022  /* We're scanning a new file or input source. It's
1023  * possible that this happened because the user
1024  * just pointed yyin at a new source and called
1025  * yylex(). If so, then we have to assure
1026  * consistency between yy_current_buffer and our
1027  * globals. Here is the right place to do so, because
1028  * this is the first action (other than possibly a
1029  * back-up) that will match for the new input source.
1030  */
1031  yy_n_chars = yy_current_buffer->yy_n_chars;
1032  yy_current_buffer->yy_input_file = yyin;
1033  yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1034  }
1035 
1036  /* Note that here we test for yy_c_buf_p "<=" to the position
1037  * of the first EOB in the buffer, since yy_c_buf_p will
1038  * already have been incremented past the NUL character
1039  * (since all states make transitions on EOB to the
1040  * end-of-buffer state). Contrast this with the test
1041  * in input().
1042  */
1043  if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1044  { /* This was really a NUL. */
1045  yy_state_type yy_next_state;
1046 
1047  yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1048 
1049  yy_current_state = yy_get_previous_state();
1050 
1051  /* Okay, we're now positioned to make the NUL
1052  * transition. We couldn't have
1053  * yy_get_previous_state() go ahead and do it
1054  * for us because it doesn't know how to deal
1055  * with the possibility of jamming (and we don't
1056  * want to build jamming into it because then it
1057  * will run more slowly).
1058  */
1059 
1060  yy_next_state = yy_try_NUL_trans( yy_current_state );
1061 
1063 
1064  if ( yy_next_state )
1065  {
1066  /* Consume the NUL. */
1067  yy_cp = ++yy_c_buf_p;
1068  yy_current_state = yy_next_state;
1069  goto yy_match;
1070  }
1071 
1072  else
1073  {
1074  yy_cp = yy_c_buf_p;
1075  goto yy_find_action;
1076  }
1077  }
1078 
1079  else switch ( yy_get_next_buffer() )
1080  {
1081  case EOB_ACT_END_OF_FILE:
1082  {
1083  yy_did_buffer_switch_on_eof = 0;
1084 
1085  if ( yywrap() )
1086  {
1087  /* Note: because we've taken care in
1088  * yy_get_next_buffer() to have set up
1089  * yytext, we can now set up
1090  * yy_c_buf_p so that if some total
1091  * hoser (like flex itself) wants to
1092  * call the scanner after we return the
1093  * YY_NULL, it'll still work - another
1094  * YY_NULL will get returned.
1095  */
1096  yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1097 
1099  goto do_action;
1100  }
1101 
1102  else
1103  {
1104  if ( ! yy_did_buffer_switch_on_eof )
1105  YY_NEW_FILE;
1106  }
1107  break;
1108  }
1109 
1110  case EOB_ACT_CONTINUE_SCAN:
1111  yy_c_buf_p =
1112  yytext_ptr + yy_amount_of_matched_text;
1113 
1114  yy_current_state = yy_get_previous_state();
1115 
1116  yy_cp = yy_c_buf_p;
1118  goto yy_match;
1119 
1120  case EOB_ACT_LAST_MATCH:
1121  yy_c_buf_p =
1122  &yy_current_buffer->yy_ch_buf[yy_n_chars];
1123 
1124  yy_current_state = yy_get_previous_state();
1125 
1126  yy_cp = yy_c_buf_p;
1128  goto yy_find_action;
1129  }
1130  break;
1131  }
1132 
1133  default:
1135  "fatal flex scanner internal error--no action found" );
1136  } /* end of action switch */
1137  } /* end of scanning one token */
1138  } /* end of yylex */
1139 
1140 yyFlexLexer::yyFlexLexer( istream* arg_yyin, ostream* arg_yyout )
1141  {
1142  yyin = arg_yyin;
1143  yyout = arg_yyout;
1144  yy_c_buf_p = 0;
1145  yy_init = 1;
1146  yy_start = 0;
1147  yy_flex_debug = 0;
1148  yylineno = 1; // this will only get updated if %option yylineno
1149 
1150  yy_did_buffer_switch_on_eof = 0;
1151 
1152  yy_looking_for_trail_begin = 0;
1153  yy_more_flag = 0;
1154  yy_more_len = 0;
1155  yy_more_offset = yy_prev_more_offset = 0;
1156 
1157  yy_start_stack_ptr = yy_start_stack_depth = 0;
1158  yy_start_stack = 0;
1159 
1160  yy_current_buffer = 0;
1161 
1162 #ifdef YY_USES_REJECT
1163  yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];
1164 #else
1165  yy_state_buf = 0;
1166 #endif
1167  }
1168 
1170  {
1171  delete yy_state_buf;
1172  yy_delete_buffer( yy_current_buffer );
1173  }
1174 
1176  {
1177  if ( new_in )
1178  {
1179  yy_delete_buffer( yy_current_buffer );
1180  yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
1181  }
1182 
1183  if ( new_out )
1184  yyout = new_out;
1185  }
1186 
1187 #ifdef YY_INTERACTIVE
1188 int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
1189 #else
1190 int yyFlexLexer::LexerInput( char* buf, int max_size )
1191 #endif
1192  {
1193  if ( yyin->eof() || yyin->fail() )
1194  return 0;
1195 
1196 #ifdef YY_INTERACTIVE
1197  yyin->get( buf[0] );
1198 
1199  if ( yyin->eof() )
1200  return 0;
1201 
1202  if ( yyin->bad() )
1203  return -1;
1204 
1205  return 1;
1206 
1207 #else
1208  (void) yyin->read( buf, max_size );
1209 
1210  if ( yyin->bad() )
1211  return -1;
1212  else
1213  return yyin->gcount();
1214 #endif
1215  }
1216 
1217 void yyFlexLexer::LexerOutput( const char* buf, int size )
1218  {
1219  (void) yyout->write( buf, size );
1220  }
1221 
1222 /* yy_get_next_buffer - try to read in a new buffer
1223  *
1224  * Returns a code representing an action:
1225  * EOB_ACT_LAST_MATCH -
1226  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1227  * EOB_ACT_END_OF_FILE - end of file
1228  */
1229 
1231  {
1232  char *dest = yy_current_buffer->yy_ch_buf;
1233  char *source = yytext_ptr;
1234  int number_to_move, i;
1235  int ret_val;
1236 
1237  if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1239  "fatal flex scanner internal error--end of buffer missed" );
1240 
1241  if ( yy_current_buffer->yy_fill_buffer == 0 )
1242  { /* Don't try to fill the buffer, so this is an EOF. */
1243  if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1244  {
1245  /* We matched a single character, the EOB, so
1246  * treat this as a final EOF.
1247  */
1248  return EOB_ACT_END_OF_FILE;
1249  }
1250 
1251  else
1252  {
1253  /* We matched some text prior to the EOB, first
1254  * process it.
1255  */
1256  return EOB_ACT_LAST_MATCH;
1257  }
1258  }
1259 
1260  /* Try to read more data. */
1261 
1262  /* First move last chars to start of buffer. */
1263  number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1264 
1265  for ( i = 0; i < number_to_move; ++i )
1266  *(dest++) = *(source++);
1267 
1268  if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1269  /* don't do the read, it's not guaranteed to return an EOF,
1270  * just force an EOF
1271  */
1272  yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1273 
1274  else
1275  {
1276  int num_to_read =
1277  yy_current_buffer->yy_buf_size - number_to_move - 1;
1278 
1279  while ( num_to_read <= 0 )
1280  { /* Not enough room in the buffer - grow it. */
1281 #ifdef YY_USES_REJECT
1283 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1284 #else
1285 
1286  /* just a shorter name for the current buffer */
1287  YY_BUFFER_STATE b = yy_current_buffer;
1288 
1289  int yy_c_buf_p_offset =
1290  (int) (yy_c_buf_p - b->yy_ch_buf);
1291 
1292  if ( b->yy_is_our_buffer )
1293  {
1294  int new_size = b->yy_buf_size * 2;
1295 
1296  if ( new_size <= 0 )
1297  b->yy_buf_size += b->yy_buf_size / 8;
1298  else
1299  b->yy_buf_size *= 2;
1300 
1301  b->yy_ch_buf = (char *)
1302  /* Include room in for 2 EOB chars. */
1303  yy_flex_realloc( (void *) b->yy_ch_buf,
1304  b->yy_buf_size + 2 );
1305  }
1306  else
1307  /* Can't grow it, we don't own it. */
1308  b->yy_ch_buf = 0;
1309 
1310  if ( ! b->yy_ch_buf )
1312  "fatal error - scanner input buffer overflow" );
1313 
1314  yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1315 
1316  num_to_read = yy_current_buffer->yy_buf_size -
1317  number_to_move - 1;
1318 #endif
1319  }
1320 
1321  if ( num_to_read > YY_READ_BUF_SIZE )
1322  num_to_read = YY_READ_BUF_SIZE;
1323 
1324  /* Read in more data. */
1325  YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1326  yy_n_chars, num_to_read );
1327 
1328  yy_current_buffer->yy_n_chars = yy_n_chars;
1329  }
1330 
1331  if ( yy_n_chars == 0 )
1332  {
1333  if ( number_to_move == YY_MORE_ADJ )
1334  {
1335  ret_val = EOB_ACT_END_OF_FILE;
1336  yyrestart( yyin );
1337  }
1338 
1339  else
1340  {
1341  ret_val = EOB_ACT_LAST_MATCH;
1342  yy_current_buffer->yy_buffer_status =
1344  }
1345  }
1346 
1347  else
1348  ret_val = EOB_ACT_CONTINUE_SCAN;
1349 
1350  yy_n_chars += number_to_move;
1351  yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1352  yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1353 
1354  yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1355 
1356  return ret_val;
1357  }
1358 
1359 
1360 /* yy_get_previous_state - get the state just before the EOB char was reached */
1361 
1363  {
1364  yy_state_type yy_current_state;
1365  char *yy_cp;
1366 
1367  yy_current_state = yy_start;
1368 
1369  for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1370  {
1371  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1372  if ( yy_accept[yy_current_state] )
1373  {
1374  yy_last_accepting_state = yy_current_state;
1375  yy_last_accepting_cpos = yy_cp;
1376  }
1377  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1378  {
1379  yy_current_state = (int) yy_def[yy_current_state];
1380  if ( yy_current_state >= 119 )
1381  yy_c = yy_meta[(unsigned int) yy_c];
1382  }
1383  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1384  }
1385 
1386  return yy_current_state;
1387  }
1388 
1389 
1390 /* yy_try_NUL_trans - try to make a transition on the NUL character
1391  *
1392  * synopsis
1393  * next_state = yy_try_NUL_trans( current_state );
1394  */
1395 
1397  {
1398  int yy_is_jam;
1399  char *yy_cp = yy_c_buf_p;
1400 
1401  YY_CHAR yy_c = 1;
1402  if ( yy_accept[yy_current_state] )
1403  {
1404  yy_last_accepting_state = yy_current_state;
1405  yy_last_accepting_cpos = yy_cp;
1406  }
1407  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1408  {
1409  yy_current_state = (int) yy_def[yy_current_state];
1410  if ( yy_current_state >= 119 )
1411  yy_c = yy_meta[(unsigned int) yy_c];
1412  }
1413  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1414  yy_is_jam = (yy_current_state == 118);
1415 
1416  return yy_is_jam ? 0 : yy_current_state;
1417  }
1418 
1419 
1420 void yyFlexLexer::yyunput( int c, char* yy_bp )
1421  {
1422  char *yy_cp = yy_c_buf_p;
1423 
1424  /* undo effects of setting up yytext */
1425  *yy_cp = yy_hold_char;
1426 
1427  if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1428  { /* need to shift things up to make room */
1429  /* +2 for EOB chars. */
1430  int number_to_move = yy_n_chars + 2;
1431  char *dest = &yy_current_buffer->yy_ch_buf[
1432  yy_current_buffer->yy_buf_size + 2];
1433  char *source =
1434  &yy_current_buffer->yy_ch_buf[number_to_move];
1435 
1436  while ( source > yy_current_buffer->yy_ch_buf )
1437  *--dest = *--source;
1438 
1439  yy_cp += (int) (dest - source);
1440  yy_bp += (int) (dest - source);
1441  yy_current_buffer->yy_n_chars =
1442  yy_n_chars = yy_current_buffer->yy_buf_size;
1443 
1444  if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1445  YY_FATAL_ERROR( "flex scanner push-back overflow" );
1446  }
1447 
1448  *--yy_cp = (char) c;
1449 
1450 
1451  yytext_ptr = yy_bp;
1452  yy_hold_char = *yy_cp;
1453  yy_c_buf_p = yy_cp;
1454  }
1455 
1456 
1458  {
1459  int c;
1460 
1461  *yy_c_buf_p = yy_hold_char;
1462 
1463  if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1464  {
1465  /* yy_c_buf_p now points to the character we want to return.
1466  * If this occurs *before* the EOB characters, then it's a
1467  * valid NUL; if not, then we've hit the end of the buffer.
1468  */
1469  if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1470  /* This was really a NUL. */
1471  *yy_c_buf_p = '\0';
1472 
1473  else
1474  { /* need more input */
1475  int offset = yy_c_buf_p - yytext_ptr;
1476  ++yy_c_buf_p;
1477 
1478  switch ( yy_get_next_buffer() )
1479  {
1480  case EOB_ACT_LAST_MATCH:
1481  /* This happens because yy_g_n_b()
1482  * sees that we've accumulated a
1483  * token and flags that we need to
1484  * try matching the token before
1485  * proceeding. But for input(),
1486  * there's no matching to consider.
1487  * So convert the EOB_ACT_LAST_MATCH
1488  * to EOB_ACT_END_OF_FILE.
1489  */
1490 
1491  /* Reset buffer status. */
1492  yyrestart( yyin );
1493 
1494  /* fall through */
1495 
1496  case EOB_ACT_END_OF_FILE:
1497  {
1498  if ( yywrap() )
1499  return EOF;
1500 
1501  if ( ! yy_did_buffer_switch_on_eof )
1502  YY_NEW_FILE;
1503 #ifdef __cplusplus
1504  return yyinput();
1505 #else
1506  return input();
1507 #endif
1508  }
1509 
1510  case EOB_ACT_CONTINUE_SCAN:
1511  yy_c_buf_p = yytext_ptr + offset;
1512  break;
1513  }
1514  }
1515  }
1516 
1517  c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
1518  *yy_c_buf_p = '\0'; /* preserve yytext */
1519  yy_hold_char = *++yy_c_buf_p;
1520 
1521 
1522  return c;
1523  }
1524 
1525 void yyFlexLexer::yyrestart( istream* input_file )
1526  {
1527  if ( ! yy_current_buffer )
1528  yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1529 
1530  yy_init_buffer( yy_current_buffer, input_file );
1531  yy_load_buffer_state();
1532  }
1533 
1534 
1536  {
1537  if ( yy_current_buffer == new_buffer )
1538  return;
1539 
1540  if ( yy_current_buffer )
1541  {
1542  /* Flush out information for old buffer. */
1543  *yy_c_buf_p = yy_hold_char;
1544  yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1545  yy_current_buffer->yy_n_chars = yy_n_chars;
1546  }
1547 
1548  yy_current_buffer = new_buffer;
1549  yy_load_buffer_state();
1550 
1551  /* We don't actually know whether we did this switch during
1552  * EOF (yywrap()) processing, but the only time this flag
1553  * is looked at is after yywrap() is called, so it's safe
1554  * to go ahead and always set it.
1555  */
1556  yy_did_buffer_switch_on_eof = 1;
1557  }
1558 
1559 
1561  {
1562  yy_n_chars = yy_current_buffer->yy_n_chars;
1563  yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1564  yyin = yy_current_buffer->yy_input_file;
1565  yy_hold_char = *yy_c_buf_p;
1566  }
1567 
1568 
1570  {
1571  YY_BUFFER_STATE b;
1572 
1573  b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1574  if ( ! b )
1575  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1576 
1577  b->yy_buf_size = size;
1578 
1579  /* yy_ch_buf has to be 2 characters longer than the size given because
1580  * we need to put in 2 end-of-buffer characters.
1581  */
1582  b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
1583  if ( ! b->yy_ch_buf )
1584  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1585 
1586  b->yy_is_our_buffer = 1;
1587 
1588  yy_init_buffer( b, file );
1589 
1590  return b;
1591  }
1592 
1593 
1595  {
1596  if ( ! b )
1597  return;
1598 
1599  if ( b == yy_current_buffer )
1600  yy_current_buffer = (YY_BUFFER_STATE) 0;
1601 
1602  if ( b->yy_is_our_buffer )
1603  yy_flex_free( (void *) b->yy_ch_buf );
1604 
1605  yy_flex_free( (void *) b );
1606  }
1607 
1608 
1610 
1611  {
1612  yy_flush_buffer( b );
1613 
1614  b->yy_input_file = file;
1615  b->yy_fill_buffer = 1;
1616 
1617  b->yy_is_interactive = 0;
1618  }
1619 
1620 
1622  {
1623  if ( ! b )
1624  return;
1625 
1626  b->yy_n_chars = 0;
1627 
1628  /* We always need two end-of-buffer characters. The first causes
1629  * a transition to the end-of-buffer state. The second causes
1630  * a jam in that state.
1631  */
1634 
1635  b->yy_buf_pos = &b->yy_ch_buf[0];
1636 
1637  b->yy_at_bol = 1;
1639 
1640  if ( b == yy_current_buffer )
1641  yy_load_buffer_state();
1642  }
1643 
1644 
1645 #ifndef YY_NO_SCAN_BUFFER
1646 #endif
1647 
1648 
1649 #ifndef YY_NO_SCAN_STRING
1650 #endif
1651 
1652 
1653 #ifndef YY_NO_SCAN_BYTES
1654 #endif
1655 
1656 
1657 #ifndef YY_NO_PUSH_STATE
1658 void yyFlexLexer::yy_push_state( int new_state )
1659  {
1660  if ( yy_start_stack_ptr >= yy_start_stack_depth )
1661  {
1662  yy_size_t new_size;
1663 
1664  yy_start_stack_depth += YY_START_STACK_INCR;
1665  new_size = yy_start_stack_depth * sizeof( int );
1666 
1667  if ( ! yy_start_stack )
1668  yy_start_stack = (int *) yy_flex_alloc( new_size );
1669 
1670  else
1671  yy_start_stack = (int *) yy_flex_realloc(
1672  (void *) yy_start_stack, new_size );
1673 
1674  if ( ! yy_start_stack )
1676  "out of memory expanding start-condition stack" );
1677  }
1678 
1679  yy_start_stack[yy_start_stack_ptr++] = YY_START;
1680 
1681  BEGIN(new_state);
1682  }
1683 #endif
1684 
1685 
1686 #ifndef YY_NO_POP_STATE
1688  {
1689  if ( --yy_start_stack_ptr < 0 )
1690  YY_FATAL_ERROR( "start-condition stack underflow" );
1691 
1692  BEGIN(yy_start_stack[yy_start_stack_ptr]);
1693  }
1694 #endif
1695 
1696 
1697 #ifndef YY_NO_TOP_STATE
1699  {
1700  return yy_start_stack[yy_start_stack_ptr - 1];
1701  }
1702 #endif
1703 
1704 #ifndef YY_EXIT_FAILURE
1705 #define YY_EXIT_FAILURE 2
1706 #endif
1707 
1708 
1710  {
1711  cerr << msg << '\n';
1712  exit( YY_EXIT_FAILURE );
1713  }
1714 
1715 
1716 /* Redefine yyless() so it works in section 3 code. */
1717 
1718 #undef yyless
1719 #define yyless(n) \
1720  do \
1721  { \
1722  /* Undo effects of setting up yytext. */ \
1723  yytext[yyleng] = yy_hold_char; \
1724  yy_c_buf_p = yytext + n; \
1725  yy_hold_char = *yy_c_buf_p; \
1726  *yy_c_buf_p = '\0'; \
1727  yyleng = n; \
1728  } \
1729  while ( 0 )
1730 
1731 
1732 /* Internal utility routines. */
1733 
1734 #ifndef yytext_ptr
1735 #ifdef YY_USE_PROTOS
1736 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
1737 #else
1738 static void yy_flex_strncpy( s1, s2, n )
1739 char *s1;
1740 yyconst char *s2;
1741 int n;
1742 #endif
1743  {
1744  int i;
1745  for ( i = 0; i < n; ++i )
1746  s1[i] = s2[i];
1747  }
1748 #endif
1749 
1750 #ifdef YY_NEED_STRLEN
1751 #ifdef YY_USE_PROTOS
1752 static int yy_flex_strlen( yyconst char *s )
1753 #else
1754 static int yy_flex_strlen( s )
1755 yyconst char *s;
1756 #endif
1757  {
1758  int n;
1759  for ( n = 0; s[n]; ++n )
1760  ;
1761 
1762  return n;
1763  }
1764 #endif
1765 
1766 
1767 #ifdef YY_USE_PROTOS
1768 static void *yy_flex_alloc( yy_size_t size )
1769 #else
1770 static void *yy_flex_alloc( size )
1771 yy_size_t size;
1772 #endif
1773  {
1774  return (void *) malloc( size );
1775  }
1776 
1777 #ifdef YY_USE_PROTOS
1778 static void *yy_flex_realloc( void *ptr, yy_size_t size )
1779 #else
1780 static void *yy_flex_realloc( ptr, size )
1781 void *ptr;
1783 #endif
1784  {
1785  /* The cast to (char *) in the following accommodates both
1786  * implementations that use char* generic pointers, and those
1787  * that use void* generic pointers. It works with the latter
1788  * because both ANSI C and C++ allow castless assignment from
1789  * any pointer type to void*, and deal with argument conversions
1790  * as though doing an assignment.
1791  */
1792  return (void *) realloc( (char *) ptr, size );
1793  }
1794 
1795 #ifdef YY_USE_PROTOS
1796 static void yy_flex_free( void *ptr )
1797 #else
1798 static void yy_flex_free( ptr )
1799 void *ptr;
1800 #endif
1801  {
1802  free( ptr );
1803  }
1804 
1805 #if YY_MAIN
1806 int main()
1807  {
1808  yylex();
1809  return 0;
1810  }
1811 #endif
1812 #line 175 "ossimEquTokenizer.l"
1813 
1814 int yywrap()
1815 {
1816  return 1;
1817 }
#define YY_END_OF_BUFFER
void yy_switch_to_buffer(struct yy_buffer_state *new_buffer)
int yy_state_type
#define OSSIM_EQU_TOKEN_ACOS
#define OSSIM_EQU_TOKEN_COS
#define YY_DECL
#define OSSIM_EQU_TOKEN_SQRT
#define OSSIM_EQU_TOKEN_BDIFFERENT
#define ECHO
void yy_push_state(int new_state)
#define OSSIM_EQU_TOKEN_BGREATER
yy_state_type yy_try_NUL_trans(yy_state_type current_state)
#define OSSIM_EQU_TOKEN_BLURR
#define OSSIM_EQU_TOKEN_MINUS
#define OSSIM_EQU_TOKEN_PI
#define OSSIM_EQU_TOKEN_IMAGE_VARIABLE
void yyrestart(istream *s)
#define YY_SC_TO_UI(c)
void yy_init_buffer(struct yy_buffer_state *b, istream *s)
unsigned char YY_CHAR
void yy_flush_buffer(struct yy_buffer_state *b)
#define YY_BUFFER_NEW
virtual void switch_streams(istream *new_in, ostream *new_out)
#define OSSIM_EQU_TOKEN_BLESSOREQUAL
struct yy_buffer_state * yy_create_buffer(istream *s, int size)
#define OSSIM_EQU_TOKEN_MAX
struct yy_buffer_state * YY_BUFFER_STATE
#define INITIAL
#define OSSIM_EQU_TOKEN_MIN
#define OSSIM_EQU_TOKEN_CONV
#define YY_BUFFER_NORMAL
#define OSSIM_EQU_TOKEN_ASSIGN_BAND
#define OSSIM_EQU_TOKEN_LOG10
#define YY_END_OF_BUFFER_CHAR
#define OSSIM_EQU_TOKEN_ASIN
#define OSSIM_EQU_TOKEN_CLAMP
#define OSSIM_EQU_TOKEN_LEFT_ARRAY_BRACKET
#define OSSIM_EQU_TOKEN_OR_BAR
#define EOB_ACT_END_OF_FILE
void yyunput(int c, char *buf_ptr)
#define OSSIM_EQU_TOKEN_COMMA
#define YY_INPUT(buf, result, max_size)
#define OSSIM_EQU_TOKEN_BLESS
#define OSSIM_EQU_TOKEN_XOR
#define OSSIM_EQU_TOKEN_RIGHT_ARRAY_BRACKET
#define OSSIM_EQU_TOKEN_COSD
#define YY_START
#define OSSIM_EQU_TOKEN_ASIND
unsigned int yy_size_t
#define OSSIM_EQU_TOKEN_AMPERSAND
yy_size_t size
#define yyterminate()
#define OSSIM_EQU_TOKEN_ABS
virtual void LexerError(const char *msg)
os2<< "> n<< " > nendobj n
virtual int LexerInput(char *buf, int max_size)
#define yyconst
#define OSSIM_EQU_TOKEN_SHIFT
#define OSSIM_EQU_TOKEN_SIND
#define OSSIM_EQU_TOKEN_CONSTANT
int yy_act
#define YY_RESTORE_YY_MORE_OFFSET
int yywrap()
#define OSSIM_EQU_TOKEN_BEQUAL
yyFlexLexer(istream *arg_yyin=0, ostream *arg_yyout=0)
#define OSSIM_EQU_TOKEN_PLUS
#define OSSIM_EQU_TOKEN_ACOSD
virtual void LexerOutput(const char *buf, int size)
#define YY_MORE_ADJ
#define YY_FATAL_ERROR(msg)
#define OSSIM_EQU_TOKEN_TAND
#define YY_READ_BUF_SIZE
#define OSSIM_EQU_TOKEN_CLIP
#define YY_BREAK
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
#define YY_BUFFER_EOF_PENDING
void yy_delete_buffer(struct yy_buffer_state *b)
#define EOB_ACT_LAST_MATCH
#define OSSIM_EQU_TOKEN_MOD
int yy_top_state()
char * yy_bp
#define OSSIM_EQU_TOKEN_MULT
char * yy_cp
#define OSSIM_EQU_TOKEN_EXP
#define OSSIM_EQU_TOKEN_RIGHT_PAREN
int main(int argc, char *argv[])
int yyleng
void yy_pop_state()
#define YY_STATE_EOF(state)
#define OSSIM_EQU_TOKEN_ATAND
#define YY_EXIT_FAILURE
#define OSSIM_EQU_TOKEN_SIN
#define YY_PROTO(proto)
#define YY_BUF_SIZE
#define YY_RULE_SETUP
#define BEGIN
#define YY_START_STACK_INCR
#define OSSIM_EQU_TOKEN_LEFT_PAREN
yy_state_type yy_get_previous_state()
#define yytext_ptr
#define OSSIM_EQU_TOKEN_LOG
#define OSSIM_EQU_TOKEN_DIV
#define EOB_ACT_CONTINUE_SCAN
#define OSSIM_EQU_TOKEN_BGREATEROREQUAL
#define YY_DO_BEFORE_ACTION
#define OSSIM_EQU_TOKEN_TILDE
#define OSSIM_EQU_TOKEN_POWER
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
#define OSSIM_EQU_TOKEN_TAN
#define OSSIM_EQU_TOKEN_ATAN
virtual ~yyFlexLexer()
#define YY_NEW_FILE
#define OSSIM_EQU_TOKEN_BAND