Scanner.cpp
Go to the documentation of this file.
1 #include <IceUtil/ScannerConfig.h>
2 #line 2 "src/IceStorm/Scanner.cpp"
3 
4 #line 4 "src/IceStorm/Scanner.cpp"
5 
6 #define YY_INT_ALIGNED short int
7 
8 /* A lexical scanner generated by flex */
9 
10 #define FLEX_SCANNER
11 #define YY_FLEX_MAJOR_VERSION 2
12 #define YY_FLEX_MINOR_VERSION 5
13 #define YY_FLEX_SUBMINOR_VERSION 37
14 #if YY_FLEX_SUBMINOR_VERSION > 0
15 #define FLEX_BETA
16 #endif
17 
18 /* First, we deal with platform-specific or compiler-specific issues. */
19 
20 /* begin standard C headers. */
21 #include <stdio.h>
22 #include <string.h>
23 #include <errno.h>
24 #include <stdlib.h>
25 
26 /* end standard C headers. */
27 
28 /* flex integer type definitions */
29 
30 #ifndef FLEXINT_H
31 #define FLEXINT_H
32 
33 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 
35 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
36 
37 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
38  * if you want the limit (max/min) macros for int types.
39  */
40 #ifndef __STDC_LIMIT_MACROS
41 #define __STDC_LIMIT_MACROS 1
42 #endif
43 
44 #include <inttypes.h>
45 typedef int8_t flex_int8_t;
46 typedef uint8_t flex_uint8_t;
47 typedef int16_t flex_int16_t;
48 typedef uint16_t flex_uint16_t;
49 typedef int32_t flex_int32_t;
50 typedef uint32_t flex_uint32_t;
51 #else
52 typedef signed char flex_int8_t;
53 typedef short int flex_int16_t;
54 typedef int flex_int32_t;
55 typedef unsigned char flex_uint8_t;
56 typedef unsigned short int flex_uint16_t;
57 typedef unsigned int flex_uint32_t;
58 
59 /* Limits of integral types. */
60 #ifndef INT8_MIN
61 #define INT8_MIN (-128)
62 #endif
63 #ifndef INT16_MIN
64 #define INT16_MIN (-32767-1)
65 #endif
66 #ifndef INT32_MIN
67 #define INT32_MIN (-2147483647-1)
68 #endif
69 #ifndef INT8_MAX
70 #define INT8_MAX (127)
71 #endif
72 #ifndef INT16_MAX
73 #define INT16_MAX (32767)
74 #endif
75 #ifndef INT32_MAX
76 #define INT32_MAX (2147483647)
77 #endif
78 #ifndef UINT8_MAX
79 #define UINT8_MAX (255U)
80 #endif
81 #ifndef UINT16_MAX
82 #define UINT16_MAX (65535U)
83 #endif
84 #ifndef UINT32_MAX
85 #define UINT32_MAX (4294967295U)
86 #endif
87 
88 #endif /* ! C99 */
89 
90 #endif /* ! FLEXINT_H */
91 
92 #ifdef __cplusplus
93 
94 /* The "const" storage-class-modifier is valid. */
95 #define YY_USE_CONST
96 
97 #else /* ! __cplusplus */
98 
99 /* C99 requires __STDC__ to be defined as 1. */
100 #if defined (__STDC__)
101 
102 #define YY_USE_CONST
103 
104 #endif /* defined (__STDC__) */
105 #endif /* ! __cplusplus */
106 
107 #ifdef YY_USE_CONST
108 #define yyconst const
109 #else
110 #define yyconst
111 #endif
112 
113 /* Returned upon end-of-file. */
114 #define YY_NULL 0
115 
116 /* Promotes a possibly negative, possibly signed char to an unsigned
117  * integer for use as an array index. If the signed char is negative,
118  * we want to instead treat it as an 8-bit unsigned char, hence the
119  * double cast.
120  */
121 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
122 
123 /* Enter a start condition. This macro really ought to take a parameter,
124  * but we do it the disgusting crufty way forced on us by the ()-less
125  * definition of BEGIN.
126  */
127 #define BEGIN (yy_start) = 1 + 2 *
128 
129 /* Translate the current start state into a value that can be later handed
130  * to BEGIN to return to the state. The YYSTATE alias is for lex
131  * compatibility.
132  */
133 #define YY_START (((yy_start) - 1) / 2)
134 #define YYSTATE YY_START
135 
136 /* Action number for EOF rule of a given start state. */
137 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
138 
139 /* Special action meaning "start processing a new file". */
140 #define YY_NEW_FILE yyrestart(yyin )
141 
142 #define YY_END_OF_BUFFER_CHAR 0
143 
144 /* Size of default input buffer. */
145 #ifndef YY_BUF_SIZE
146 #define YY_BUF_SIZE 16384
147 #endif
148 
149 /* The state buf must be large enough to hold one state per character in the main buffer.
150  */
151 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
152 
153 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
154 #define YY_TYPEDEF_YY_BUFFER_STATE
156 #endif
157 
158 #ifndef YY_TYPEDEF_YY_SIZE_T
159 #define YY_TYPEDEF_YY_SIZE_T
160 typedef size_t yy_size_t;
161 #endif
162 
163 extern yy_size_t yyleng;
164 
165 extern FILE* yyin, *yyout;
166 
167 #define EOB_ACT_CONTINUE_SCAN 0
168 #define EOB_ACT_END_OF_FILE 1
169 #define EOB_ACT_LAST_MATCH 2
170 
171 #define YY_LESS_LINENO(n)
172 
173 /* Return all but the first "n" matched characters back to the input stream. */
174 #define yyless(n) \
175  do \
176  { \
177  /* Undo effects of setting up yytext. */ \
178  int yyless_macro_arg = (n); \
179  YY_LESS_LINENO(yyless_macro_arg);\
180  *yy_cp = (yy_hold_char); \
181  YY_RESTORE_YY_MORE_OFFSET \
182  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
183  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
184  } \
185  while ( 0 )
186 
187 #define unput(c) yyunput( c, (yytext_ptr) )
188 
189 #ifndef YY_STRUCT_YY_BUFFER_STATE
190 #define YY_STRUCT_YY_BUFFER_STATE
192 {
194 
195  char* yy_ch_buf; /* input buffer */
196  char* yy_buf_pos; /* current position in input buffer */
197 
198  /* Size of input buffer in bytes, not including room for EOB
199  * characters.
200  */
202 
203  /* Number of characters read into yy_ch_buf, not including EOB
204  * characters.
205  */
207 
208  /* Whether we "own" the buffer - i.e., we know we created it,
209  * and can realloc() it to grow it, and should free() it to
210  * delete it.
211  */
213 
214  /* Whether this is an "interactive" input source; if so, and
215  * if we're using stdio for input, then we want to use getc()
216  * instead of fread(), to make sure we stop fetching input after
217  * each newline.
218  */
220 
221  /* Whether we're considered to be at the beginning of a line.
222  * If so, '^' rules will be active on the next match, otherwise
223  * not.
224  */
226 
227  int yy_bs_lineno; /**< The line count. */
228  int yy_bs_column; /**< The column count. */
229 
230  /* Whether to try to fill the input buffer when we reach the
231  * end of it.
232  */
234 
236 
237 #define YY_BUFFER_NEW 0
238 #define YY_BUFFER_NORMAL 1
239  /* When an EOF's been seen but there's still some text to process
240  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
241  * shouldn't try reading from the input source any more. We might
242  * still have a bunch of tokens to match, though, because of
243  * possible backing-up.
244  *
245  * When we actually see the EOF, we change the status to "new"
246  * (via yyrestart()), so that the user can continue scanning by
247  * just pointing yyin at a new input file.
248  */
249 #define YY_BUFFER_EOF_PENDING 2
250 
251 };
252 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
253 
254 /* Stack of input buffers. */
255 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
256 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
257 static YY_BUFFER_STATE* yy_buffer_stack = 0; /**< Stack as an array. */
258 
259 /* We provide macros for accessing buffer states in case in the
260  * future we want to put the buffer states in a more general
261  * "scanner state".
262  *
263  * Returns the top of the stack, or NULL.
264  */
265 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
266  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
267  : NULL)
268 
269 /* Same as previous macro, but useful when we know that the buffer stack is not
270  * NULL or when we need an lvalue. For internal use only.
271  */
272 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
273 
274 /* yy_hold_char holds the character lost when yytext is formed. */
275 static char yy_hold_char;
276 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
278 
279 /* Points to current character in buffer. */
280 static char* yy_c_buf_p = (char*) 0;
281 static int yy_init = 0; /* whether we need to initialize */
282 static int yy_start = 0; /* start state number */
283 
284 /* Flag which is used to allow yywrap()'s to do buffer switches
285  * instead of setting up a fresh yyin. A bit of a hack ...
286  */
287 static int yy_did_buffer_switch_on_eof;
288 
289 void yyrestart(FILE* input_file);
290 void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer);
291 YY_BUFFER_STATE yy_create_buffer(FILE* file, int size);
294 void yypush_buffer_state(YY_BUFFER_STATE new_buffer);
295 void yypop_buffer_state(void);
296 
297 static void yyensure_buffer_stack(void);
298 static void yy_load_buffer_state(void);
299 static void yy_init_buffer(YY_BUFFER_STATE b, FILE* file);
300 
301 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
302 
303 YY_BUFFER_STATE yy_scan_buffer(char* base, yy_size_t size);
306 
307 void* yyalloc(yy_size_t);
308 void* yyrealloc(void*, yy_size_t);
309 void yyfree(void*);
310 
311 #define yy_new_buffer yy_create_buffer
312 
313 #define yy_set_interactive(is_interactive) \
314  { \
315  if ( ! YY_CURRENT_BUFFER ){ \
316  yyensure_buffer_stack (); \
317  YY_CURRENT_BUFFER_LVALUE = \
318  yy_create_buffer(yyin,YY_BUF_SIZE ); \
319  } \
320  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
321  }
322 
323 #define yy_set_bol(at_bol) \
324  { \
325  if ( ! YY_CURRENT_BUFFER ){\
326  yyensure_buffer_stack (); \
327  YY_CURRENT_BUFFER_LVALUE = \
328  yy_create_buffer(yyin,YY_BUF_SIZE ); \
329  } \
330  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
331  }
332 
333 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
334 
335 /* Begin user sect3 */
336 
337 #define yywrap() 1
338 #define YY_SKIP_YYWRAP
339 
340 typedef unsigned char YY_CHAR;
341 
342 FILE* yyin = (FILE*) 0, *yyout = (FILE*) 0;
343 
344 typedef int yy_state_type;
345 
346 extern int yylineno;
347 
348 int yylineno = 1;
349 
350 extern char* yytext;
351 #define yytext_ptr yytext
352 
353 static yy_state_type yy_get_previous_state(void);
354 static yy_state_type yy_try_NUL_trans(yy_state_type current_state);
355 static int yy_get_next_buffer(void);
356 static void yy_fatal_error(yyconst char msg[]);
357 
358 /* Done after the current pattern has been matched and before the
359  * corresponding action - sets up yytext.
360  */
361 #define YY_DO_BEFORE_ACTION \
362  (yytext_ptr) = yy_bp; \
363  yyleng = (size_t) (yy_cp - yy_bp); \
364  (yy_hold_char) = *yy_cp; \
365  *yy_cp = '\0'; \
366  (yy_c_buf_p) = yy_cp;
367 
368 #define YY_NUM_RULES 8
369 #define YY_END_OF_BUFFER 9
370 /* This struct is not used in this scanner,
371  but its presence is necessary. */
373 {
376 };
377 static yyconst flex_int16_t yy_accept[19] =
378 {
379  0,
380  3, 3, 9, 7, 3, 4, 5, 6, 7, 4,
381  7, 3, 0, 2, 1, 0, 3, 0
382 } ;
383 
384 static yyconst flex_int32_t yy_ec[256] =
385 {
386  0,
387  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
388  2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
389  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390  1, 2, 1, 4, 1, 1, 1, 1, 5, 1,
391  1, 6, 1, 1, 1, 1, 7, 1, 1, 1,
392  1, 1, 1, 1, 1, 1, 1, 1, 8, 1,
393  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
394  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
395  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396  1, 9, 1, 1, 1, 1, 1, 1, 1, 1,
397 
398  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
400  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
401  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
402  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
403  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
404  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
406  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
407  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
408 
409  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
410  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
411  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
412  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
414  1, 1, 1, 1, 1
415 } ;
416 
417 static yyconst flex_int32_t yy_meta[10] =
418 {
419  0,
420  1, 1, 1, 1, 1, 1, 1, 1, 1
421 } ;
422 
423 static yyconst flex_int16_t yy_base[19] =
424 {
425  0,
426  0, 0, 11, 22, 8, 22, 22, 22, 12, 22,
427  18, 0, 0, 22, 22, 0, 22, 22
428 } ;
429 
430 static yyconst flex_int16_t yy_def[19] =
431 {
432  0,
433  18, 1, 18, 18, 18, 18, 18, 18, 18, 18,
434  18, 5, 11, 18, 18, 11, 18, 0
435 } ;
436 
437 static yyconst flex_int16_t yy_nxt[32] =
438 {
439  0,
440  4, 5, 6, 7, 8, 4, 9, 10, 11, 12,
441  18, 18, 18, 18, 18, 18, 13, 14, 15, 16,
442  17, 3, 18, 18, 18, 18, 18, 18, 18, 18,
443  18
444 } ;
445 
446 static yyconst flex_int16_t yy_chk[32] =
447 {
448  0,
449  1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
450  3, 0, 0, 0, 0, 0, 5, 9, 9, 11,
451  11, 18, 18, 18, 18, 18, 18, 18, 18, 18,
452  18
453 } ;
454 
455 static yy_state_type yy_last_accepting_state;
456 static char* yy_last_accepting_cpos;
457 
458 extern int yy_flex_debug;
460 
461 /* The intent behind this definition is that it'll catch
462  * any uses of REJECT which flex missed.
463  */
464 #define REJECT reject_used_but_not_detected
465 #define yymore() yymore_used_but_not_detected
466 #define YY_MORE_ADJ 0
467 #define YY_RESTORE_YY_MORE_OFFSET
468 char* yytext;
469 #line 1 "src/IceStorm/Scanner.l"
470 #line 2 "src/IceStorm/Scanner.l"
471 
472 // **********************************************************************
473 //
474 // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
475 //
476 // This copy of Ice is licensed to you under the terms described in the
477 // ICE_LICENSE file included in this distribution.
478 //
479 // **********************************************************************
480 
481 #include <Ice/Ice.h>
482 #include <IceStorm/Parser.h>
483 #include <IceStorm/Grammar.h>
484 
485 #if defined(_MSC_VER) && defined(ICE_64)
486 //
487 // '=' : conversion from 'size_t' to 'int', possible loss of data
488 // The result of fread() is a size_t and gets inserted into an int
489 //
490 # pragma warning( 4 : 4267 )
491 //
492 // 'initializing' : conversion from '__int64' to 'int', possible loss of data
493 // Puts a pointer-difference into an int
494 //
495 # pragma warning( 4 : 4244 )
496 #endif
497 
498 #if defined(_MSC_VER) && defined(ICE_32)
499 //
500 // '<' : signed/unsigned mismatch
501 //
502 # pragma warning( 4 : 4018 )
503 #endif
504 
505 #if defined(__GNUC__)
506 # pragma GCC diagnostic ignored "-Wsign-compare"
507 #endif
508 
509 using namespace std;
510 using namespace Ice;
511 using namespace IceStorm;
512 
513 #ifdef _MSC_VER
514 # ifdef yywrap
515 # undef yywrap
516 # define yywrap() 1
517 # endif
518 # define YY_NO_UNISTD_H
519 #endif
520 
521 #ifdef __SUNPRO_CC
522 # ifdef yywrap
523 # undef yywrap
524 # define yywrap() 1
525 # endif
526 # ifdef ICE_64
527 # pragma error_messages(off,truncwarn)
528 # endif
529 #endif
530 
531 #define YY_INPUT(buf, result, maxSize) parser->getInput(buf, result, maxSize)
532 
533 namespace IceStorm
534 {
535 
536  typedef std::map<std::string, int> StringTokenMap;
537  static StringTokenMap keywordMap;
538 
539  void initScanner();
540 
541 }
542 #define YY_USER_INIT initScanner();
543 
544 #line 537 "src/IceStorm/Scanner.cpp"
545 
546 #define INITIAL 0
547 
548 #ifndef YY_NO_UNISTD_H
549 /* Special case for "unistd.h", since it is non-ANSI. We include it way
550  * down here because we want the user's section 1 to have been scanned first.
551  * The user has a chance to override it with an option.
552  */
553 #include <unistd.h>
554 #endif
555 
556 #ifndef YY_EXTRA_TYPE
557 #define YY_EXTRA_TYPE void *
558 #endif
559 
560 static int yy_init_globals(void);
561 
562 /* Accessor methods to globals.
563  These are made visible to non-reentrant scanners for convenience. */
564 
565 int yylex_destroy(void);
566 
567 int yyget_debug(void);
568 
569 void yyset_debug(int debug_flag);
570 
572 
573 void yyset_extra(YY_EXTRA_TYPE user_defined);
574 
575 FILE* yyget_in(void);
576 
577 void yyset_in(FILE* in_str);
578 
579 FILE* yyget_out(void);
580 
581 void yyset_out(FILE* out_str);
582 
583 yy_size_t yyget_leng(void);
584 
585 char* yyget_text(void);
586 
587 int yyget_lineno(void);
588 
589 void yyset_lineno(int line_number);
590 
591 /* Macros after this point can all be overridden by user definitions in
592  * section 1.
593  */
594 
595 #ifndef YY_SKIP_YYWRAP
596 #ifdef __cplusplus
597 extern "C" int yywrap(void);
598 #else
599 extern int yywrap(void);
600 #endif
601 #endif
602 
603 static void yyunput(int c, char* buf_ptr);
604 
605 #ifndef yytext_ptr
606 static void yy_flex_strncpy(char*, yyconst char*, int);
607 #endif
608 
609 #ifdef YY_NEED_STRLEN
610 static int yy_flex_strlen(yyconst char*);
611 #endif
612 
613 #ifndef YY_NO_INPUT
614 
615 #ifdef __cplusplus
616 static int yyinput(void);
617 #else
618 static int input(void);
619 #endif
620 
621 #endif
622 
623 /* Amount of stuff to slurp up with each read. */
624 #ifndef YY_READ_BUF_SIZE
625 #define YY_READ_BUF_SIZE 8192
626 #endif
627 
628 /* Copy whatever the last rule matched to the standard output. */
629 #ifndef ECHO
630 /* This used to be an fputs(), but since the string might contain NUL's,
631  * we now use fwrite().
632  */
633 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
634 #endif
635 
636 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
637  * is returned in "result".
638  */
639 #ifndef YY_INPUT
640 #define YY_INPUT(buf,result,max_size) \
641  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
642  { \
643  int c = '*'; \
644  size_t n; \
645  for ( n = 0; n < max_size && \
646  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
647  buf[n] = (char) c; \
648  if ( c == '\n' ) \
649  buf[n++] = (char) c; \
650  if ( c == EOF && ferror( yyin ) ) \
651  YY_FATAL_ERROR( "input in flex scanner failed" ); \
652  result = n; \
653  } \
654  else \
655  { \
656  errno=0; \
657  while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
658  { \
659  if( errno != EINTR) \
660  { \
661  YY_FATAL_ERROR( "input in flex scanner failed" ); \
662  break; \
663  } \
664  errno=0; \
665  clearerr(yyin); \
666  } \
667  }\
668  \
669 
670 #endif
671 
672 /* No semi-colon after return; correct usage is to write "yyterminate();" -
673  * we don't want an extra ';' after the "return" because that will cause
674  * some compilers to complain about unreachable statements.
675  */
676 #ifndef yyterminate
677 #define yyterminate() return YY_NULL
678 #endif
679 
680 /* Number of entries by which start-condition stack grows. */
681 #ifndef YY_START_STACK_INCR
682 #define YY_START_STACK_INCR 25
683 #endif
684 
685 /* Report a fatal error. */
686 #ifndef YY_FATAL_ERROR
687 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
688 #endif
689 
690 /* end tables serialization structures and prototypes */
691 
692 /* Default declaration of generated scanner - a define so the user can
693  * easily add parameters.
694  */
695 #ifndef YY_DECL
696 #define YY_DECL_IS_OURS 1
697 
698 extern int yylex(void);
699 
700 #define YY_DECL int yylex (void)
701 #endif /* !YY_DECL */
702 
703 /* Code executed at the beginning of each rule, after yytext and yyleng
704  * have been set up.
705  */
706 #ifndef YY_USER_ACTION
707 #define YY_USER_ACTION
708 #endif
709 
710 /* Code executed at the end of each rule. */
711 #ifndef YY_BREAK
712 #define YY_BREAK break;
713 #endif
714 
715 #define YY_RULE_SETUP \
716  YY_USER_ACTION
717 
718 /** The main scanner function which does all the work.
719  */
720 YY_DECL
721 {
722  /*register*/ yy_state_type yy_current_state;
723  /*register*/ char* yy_cp, *yy_bp;
724  /*register*/ int yy_act;
725 
726 #line 84 "src/IceStorm/Scanner.l"
727 
728 
729 #line 722 "src/IceStorm/Scanner.cpp"
730 
731  if (!(yy_init))
732  {
733  (yy_init) = 1;
734 
735 #ifdef YY_USER_INIT
736  YY_USER_INIT;
737 #endif
738 
739  if (!(yy_start))
740  {
741  (yy_start) = 1; /* first start state */
742  }
743 
744  if (! yyin)
745  {
746  yyin = stdin;
747  }
748 
749  if (! yyout)
750  {
751  yyout = stdout;
752  }
753 
754  if (! YY_CURRENT_BUFFER)
755  {
756  yyensure_buffer_stack();
759  }
760 
761  yy_load_buffer_state();
762  }
763 
764  while (1) /* loops until end-of-file is reached */
765  {
766  yy_cp = (yy_c_buf_p);
767 
768  /* Support of yytext. */
769  *yy_cp = (yy_hold_char);
770 
771  /* yy_bp points to the position in yy_ch_buf of the start of
772  * the current run.
773  */
774  yy_bp = yy_cp;
775 
776  yy_current_state = (yy_start);
777 yy_match:
778  do
779  {
780  /*register*/ YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
781  if (yy_accept[yy_current_state])
782  {
783  (yy_last_accepting_state) = yy_current_state;
784  (yy_last_accepting_cpos) = yy_cp;
785  }
786  while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
787  {
788  yy_current_state = (int) yy_def[yy_current_state];
789  if (yy_current_state >= 19)
790  {
791  yy_c = yy_meta[(unsigned int) yy_c];
792  }
793  }
794  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
795  ++yy_cp;
796  }
797  while (yy_base[yy_current_state] != 22);
798 
799 yy_find_action:
800  yy_act = yy_accept[yy_current_state];
801  if (yy_act == 0)
802  {
803  /* have to back up */
804  yy_cp = (yy_last_accepting_cpos);
805  yy_current_state = (yy_last_accepting_state);
806  yy_act = yy_accept[yy_current_state];
807  }
808 
810 
811 do_action: /* This label is used only to access EOF actions. */
812 
813  switch (yy_act)
814  {
815  /* beginning of action switch */
816  case 0: /* must back up */
817  /* undo the effects of YY_DO_BEFORE_ACTION */
818  *yy_cp = (yy_hold_char);
819  yy_cp = (yy_last_accepting_cpos);
820  yy_current_state = (yy_last_accepting_state);
821  goto yy_find_action;
822 
823  case 1:
825 #line 86 "src/IceStorm/Scanner.l"
826  {
827  // C++-style comment
828  int c;
829  do
830  {
831  c = yyinput();
832  }
833  while (c != '\n' && c != EOF);
834  }
835  YY_BREAK
836  case 2:
838 #line 96 "src/IceStorm/Scanner.l"
839  {
840  // C-style comment
841  while (true)
842  {
843  int c = yyinput();
844  if (c == '*')
845  {
846  int next = yyinput();
847  if (next == '/')
848  {
849  break;
850  }
851  else
852  {
853  unput(next);
854  }
855  }
856  else if (c == EOF)
857  {
858  parser->warning("EOF in comment");
859  break;
860  }
861  }
862  }
863  YY_BREAK
864  case 3:
865  /* rule 3 can match eol */
867 #line 121 "src/IceStorm/Scanner.l"
868  {
869  size_t len = strlen(yytext);
870  for (size_t i = 0; i < len; ++i)
871  {
872  if (yytext[i] == '\\')
873  {
874  parser->continueLine();
875  }
876  }
877  }
878  YY_BREAK
879  case 4:
880  /* rule 4 can match eol */
882 #line 132 "src/IceStorm/Scanner.l"
883  {
884  return ';';
885  }
886  YY_BREAK
887  case 5:
889 #line 136 "src/IceStorm/Scanner.l"
890  {
891  // "..."-type strings
892  string s;
893  while (true)
894  {
895  char c = static_cast<char>(yyinput());
896  if (c == '"')
897  {
898  break;
899  }
900  else if (c == static_cast<char>(EOF))
901  {
902  parser->warning("EOF in string");
903  break;
904  }
905  else if (c == '\\')
906  {
907  char next = static_cast<char>(yyinput());
908  switch (next)
909  {
910  case '\\':
911  case '"':
912  {
913  s += next;
914  break;
915  }
916 
917  default:
918  {
919  s += c;
920  unput(next);
921  }
922  }
923  }
924  else
925  {
926  s += c;
927  }
928  }
929  yylvalp->clear();
930  yylvalp->push_back(s);
931  return ICE_STORM_STRING;
932  }
933  YY_BREAK
934  case 6:
936 #line 180 "src/IceStorm/Scanner.l"
937  {
938  // '...'-type strings
939  string s;
940  while (true)
941  {
942  char c = static_cast<char>(yyinput());
943  if (c == '\'')
944  {
945  break;
946  }
947  else if (c == static_cast<char>(EOF))
948  {
949  parser->warning("EOF in string");
950  break;
951  }
952  else
953  {
954  s += c;
955  }
956  }
957  yylvalp->clear();
958  yylvalp->push_back(s);
959  return ICE_STORM_STRING;
960  }
961  YY_BREAK
962  case 7:
964 #line 205 "src/IceStorm/Scanner.l"
965  {
966  // Simple strings
967  string s;
968  s += yytext[0];
969  while (true)
970  {
971  char c = static_cast<char>(yyinput());
972  if (c == static_cast<char>(EOF))
973  {
974  break;
975  }
976  else if (isspace(static_cast<unsigned char>(c)) || c == ';')
977  {
978  unput(c);
979  break;
980  }
981 
982  s += c;
983  }
984 
985  yylvalp->clear();
986  yylvalp->push_back(s);
987 
988  StringTokenMap::const_iterator pos = keywordMap.find(s);
989  return pos != keywordMap.end() ? pos->second : ICE_STORM_STRING;
990  }
991  YY_BREAK
992  case 8:
994 #line 232 "src/IceStorm/Scanner.l"
995  ECHO;
996  YY_BREAK
997 #line 979 "src/IceStorm/Scanner.cpp"
998  case YY_STATE_EOF(INITIAL):
999  yyterminate();
1000 
1001  case YY_END_OF_BUFFER:
1002  {
1003  /* Amount of text matched not including the EOB char. */
1004  int yy_amount_of_matched_text = (int)(yy_cp - (yytext_ptr)) - 1;
1005 
1006  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1007  *yy_cp = (yy_hold_char);
1009 
1010  if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW)
1011  {
1012  /* We're scanning a new file or input source. It's
1013  * possible that this happened because the user
1014  * just pointed yyin at a new source and called
1015  * yylex(). If so, then we have to assure
1016  * consistency between YY_CURRENT_BUFFER and our
1017  * globals. Here is the right place to do so, because
1018  * this is the first action (other than possibly a
1019  * back-up) that will match for the new input source.
1020  */
1021  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1022  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1023  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1024  }
1025 
1026  /* Note that here we test for yy_c_buf_p "<=" to the position
1027  * of the first EOB in the buffer, since yy_c_buf_p will
1028  * already have been incremented past the NUL character
1029  * (since all states make transitions on EOB to the
1030  * end-of-buffer state). Contrast this with the test
1031  * in input().
1032  */
1033  if ((yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)])
1034  {
1035  /* This was really a NUL. */
1036  yy_state_type yy_next_state;
1037 
1038  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1039 
1040  yy_current_state = yy_get_previous_state();
1041 
1042  /* Okay, we're now positioned to make the NUL
1043  * transition. We couldn't have
1044  * yy_get_previous_state() go ahead and do it
1045  * for us because it doesn't know how to deal
1046  * with the possibility of jamming (and we don't
1047  * want to build jamming into it because then it
1048  * will run more slowly).
1049  */
1050 
1051  yy_next_state = yy_try_NUL_trans(yy_current_state);
1052 
1054 
1055  if (yy_next_state)
1056  {
1057  /* Consume the NUL. */
1058  yy_cp = ++(yy_c_buf_p);
1059  yy_current_state = yy_next_state;
1060  goto yy_match;
1061  }
1062 
1063  else
1064  {
1065  yy_cp = (yy_c_buf_p);
1066  goto yy_find_action;
1067  }
1068  }
1069 
1070  else switch (yy_get_next_buffer())
1071  {
1072  case EOB_ACT_END_OF_FILE:
1073  {
1074  (yy_did_buffer_switch_on_eof) = 0;
1075 
1076  if (yywrap())
1077  {
1078  /* Note: because we've taken care in
1079  * yy_get_next_buffer() to have set up
1080  * yytext, we can now set up
1081  * yy_c_buf_p so that if some total
1082  * hoser (like flex itself) wants to
1083  * call the scanner after we return the
1084  * YY_NULL, it'll still work - another
1085  * YY_NULL will get returned.
1086  */
1087  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1088 
1090  goto do_action;
1091  }
1092 
1093  else
1094  {
1095  if (!(yy_did_buffer_switch_on_eof))
1096  {
1097  YY_NEW_FILE;
1098  }
1099  }
1100  break;
1101  }
1102 
1103  case EOB_ACT_CONTINUE_SCAN:
1104  (yy_c_buf_p) =
1105  (yytext_ptr) + yy_amount_of_matched_text;
1106 
1107  yy_current_state = yy_get_previous_state();
1108 
1109  yy_cp = (yy_c_buf_p);
1111  goto yy_match;
1112 
1113  case EOB_ACT_LAST_MATCH:
1114  (yy_c_buf_p) =
1115  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1116 
1117  yy_current_state = yy_get_previous_state();
1118 
1119  yy_cp = (yy_c_buf_p);
1121  goto yy_find_action;
1122  }
1123  break;
1124  }
1125 
1126  default:
1128  "fatal flex scanner internal error--no action found");
1129  } /* end of action switch */
1130  } /* end of scanning one token */
1131 } /* end of yylex */
1132 
1133 /* yy_get_next_buffer - try to read in a new buffer
1134  *
1135  * Returns a code representing an action:
1136  * EOB_ACT_LAST_MATCH -
1137  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1138  * EOB_ACT_END_OF_FILE - end of file
1139  */
1140 static int yy_get_next_buffer(void)
1141 {
1142  /*register*/ char* dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1143  /*register*/ char* source = (yytext_ptr);
1144  /*register*/ int number_to_move, i;
1145  int ret_val;
1146 
1147  if ((yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1])
1149  "fatal flex scanner internal error--end of buffer missed");
1150 
1151  if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0)
1152  {
1153  /* Don't try to fill the buffer, so this is an EOF. */
1154  if ((yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1)
1155  {
1156  /* We matched a single character, the EOB, so
1157  * treat this as a final EOF.
1158  */
1159  return EOB_ACT_END_OF_FILE;
1160  }
1161 
1162  else
1163  {
1164  /* We matched some text prior to the EOB, first
1165  * process it.
1166  */
1167  return EOB_ACT_LAST_MATCH;
1168  }
1169  }
1170 
1171  /* Try to read more data. */
1172 
1173  /* First move last chars to start of buffer. */
1174  number_to_move = (int)((yy_c_buf_p) - (yytext_ptr)) - 1;
1175 
1176  for (i = 0; i < number_to_move; ++i)
1177  {
1178  *(dest++) = *(source++);
1179  }
1180 
1181  if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING)
1182  /* don't do the read, it's not guaranteed to return an EOF,
1183  * just force an EOF
1184  */
1185  {
1186  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1187  }
1188 
1189  else
1190  {
1191  yy_size_t num_to_read =
1192  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1193 
1194  while (num_to_read <= 0)
1195  {
1196  /* Not enough room in the buffer - grow it. */
1197 
1198  /* just a shorter name for the current buffer */
1200 
1201  int yy_c_buf_p_offset =
1202  (int)((yy_c_buf_p) - b->yy_ch_buf);
1203 
1204  if (b->yy_is_our_buffer)
1205  {
1206  yy_size_t new_size = b->yy_buf_size * 2;
1207 
1208  if (new_size <= 0)
1209  {
1210  b->yy_buf_size += b->yy_buf_size / 8;
1211  }
1212  else
1213  {
1214  b->yy_buf_size *= 2;
1215  }
1216 
1217  b->yy_ch_buf = (char*)
1218  /* Include room in for 2 EOB chars. */
1219  yyrealloc((void*) b->yy_ch_buf, b->yy_buf_size + 2);
1220  }
1221  else
1222  /* Can't grow it, we don't own it. */
1223  {
1224  b->yy_ch_buf = 0;
1225  }
1226 
1227  if (! b->yy_ch_buf)
1229  "fatal error - scanner input buffer overflow");
1230 
1231  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1232 
1233  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1234  number_to_move - 1;
1235 
1236  }
1237 
1238  if (num_to_read > YY_READ_BUF_SIZE)
1239  {
1240  num_to_read = YY_READ_BUF_SIZE;
1241  }
1242 
1243  /* Read in more data. */
1244  YY_INPUT((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1245  (yy_n_chars), num_to_read);
1246 
1247  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1248  }
1249 
1250  if ((yy_n_chars) == 0)
1251  {
1252  if (number_to_move == YY_MORE_ADJ)
1253  {
1254  ret_val = EOB_ACT_END_OF_FILE;
1255  yyrestart(yyin);
1256  }
1257 
1258  else
1259  {
1260  ret_val = EOB_ACT_LAST_MATCH;
1261  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1263  }
1264  }
1265 
1266  else
1267  {
1268  ret_val = EOB_ACT_CONTINUE_SCAN;
1269  }
1270 
1271  if ((yy_size_t)((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size)
1272  {
1273  /* Extend the array by 50%, plus the number we really need. */
1274  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1275  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char*) yyrealloc((void*) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size);
1276  if (! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
1277  {
1278  YY_FATAL_ERROR("out of dynamic memory in yy_get_next_buffer()");
1279  }
1280  }
1281 
1282  (yy_n_chars) += number_to_move;
1283  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1284  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1285 
1286  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1287 
1288  return ret_val;
1289 }
1290 
1291 /* yy_get_previous_state - get the state just before the EOB char was reached */
1292 
1293 static yy_state_type yy_get_previous_state(void)
1294 {
1295  /*register*/ yy_state_type yy_current_state;
1296  /*register*/ char* yy_cp;
1297 
1298  yy_current_state = (yy_start);
1299 
1300  for (yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp)
1301  {
1302  /*register*/ YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1303  if (yy_accept[yy_current_state])
1304  {
1305  (yy_last_accepting_state) = yy_current_state;
1306  (yy_last_accepting_cpos) = yy_cp;
1307  }
1308  while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
1309  {
1310  yy_current_state = (int) yy_def[yy_current_state];
1311  if (yy_current_state >= 19)
1312  {
1313  yy_c = yy_meta[(unsigned int) yy_c];
1314  }
1315  }
1316  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1317  }
1318 
1319  return yy_current_state;
1320 }
1321 
1322 /* yy_try_NUL_trans - try to make a transition on the NUL character
1323  *
1324  * synopsis
1325  * next_state = yy_try_NUL_trans( current_state );
1326  */
1327 static yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state)
1328 {
1329  /*register*/ int yy_is_jam;
1330  /*register*/ char* yy_cp = (yy_c_buf_p);
1331 
1332  /*register*/ YY_CHAR yy_c = 1;
1333  if (yy_accept[yy_current_state])
1334  {
1335  (yy_last_accepting_state) = yy_current_state;
1336  (yy_last_accepting_cpos) = yy_cp;
1337  }
1338  while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
1339  {
1340  yy_current_state = (int) yy_def[yy_current_state];
1341  if (yy_current_state >= 19)
1342  {
1343  yy_c = yy_meta[(unsigned int) yy_c];
1344  }
1345  }
1346  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1347  yy_is_jam = (yy_current_state == 18);
1348 
1349  return yy_is_jam ? 0 : yy_current_state;
1350 }
1351 
1352 static void yyunput(int c, /*register*/ char* yy_bp)
1353 {
1354  /*register*/ char* yy_cp;
1355 
1356  yy_cp = (yy_c_buf_p);
1357 
1358  /* undo effects of setting up yytext */
1359  *yy_cp = (yy_hold_char);
1360 
1361  if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2)
1362  {
1363  /* need to shift things up to make room */
1364  /* +2 for EOB chars. */
1365  /*register*/ yy_size_t number_to_move = (yy_n_chars) + 2;
1366  /*register*/ char* dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1367  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1368  /*register*/ char* source =
1369  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1370 
1371  while (source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
1372  {
1373  *--dest = *--source;
1374  }
1375 
1376  yy_cp += (int)(dest - source);
1377  yy_bp += (int)(dest - source);
1378  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1379  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1380 
1381  if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2)
1382  {
1383  YY_FATAL_ERROR("flex scanner push-back overflow");
1384  }
1385  }
1386 
1387  *--yy_cp = (char) c;
1388 
1389  (yytext_ptr) = yy_bp;
1390  (yy_hold_char) = *yy_cp;
1391  (yy_c_buf_p) = yy_cp;
1392 }
1393 
1394 #ifndef YY_NO_INPUT
1395 #ifdef __cplusplus
1396 static int yyinput(void)
1397 #else
1398 static int input(void)
1399 #endif
1400 
1401 {
1402  int c;
1403 
1404  *(yy_c_buf_p) = (yy_hold_char);
1405 
1406  if (*(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR)
1407  {
1408  /* yy_c_buf_p now points to the character we want to return.
1409  * If this occurs *before* the EOB characters, then it's a
1410  * valid NUL; if not, then we've hit the end of the buffer.
1411  */
1412  if ((yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)])
1413  /* This was really a NUL. */
1414  {
1415  *(yy_c_buf_p) = '\0';
1416  }
1417 
1418  else
1419  {
1420  /* need more input */
1421  yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
1422  ++(yy_c_buf_p);
1423 
1424  switch (yy_get_next_buffer())
1425  {
1426  case EOB_ACT_LAST_MATCH:
1427  /* This happens because yy_g_n_b()
1428  * sees that we've accumulated a
1429  * token and flags that we need to
1430  * try matching the token before
1431  * proceeding. But for input(),
1432  * there's no matching to consider.
1433  * So convert the EOB_ACT_LAST_MATCH
1434  * to EOB_ACT_END_OF_FILE.
1435  */
1436 
1437  /* Reset buffer status. */
1438  yyrestart(yyin);
1439 
1440  /*FALLTHROUGH*/
1441 
1442  case EOB_ACT_END_OF_FILE:
1443  {
1444  if (yywrap())
1445  {
1446  return EOF;
1447  }
1448 
1449  if (!(yy_did_buffer_switch_on_eof))
1450  {
1451  YY_NEW_FILE;
1452  }
1453 #ifdef __cplusplus
1454  return yyinput();
1455 #else
1456  return input();
1457 #endif
1458  }
1459 
1460  case EOB_ACT_CONTINUE_SCAN:
1461  (yy_c_buf_p) = (yytext_ptr) + offset;
1462  break;
1463  }
1464  }
1465  }
1466 
1467  c = *(unsigned char*)(yy_c_buf_p); /* cast for 8-bit char's */
1468  *(yy_c_buf_p) = '\0'; /* preserve yytext */
1469  (yy_hold_char) = *++(yy_c_buf_p);
1470 
1471  return c;
1472 }
1473 #endif /* ifndef YY_NO_INPUT */
1474 
1475 /** Immediately switch to a different input stream.
1476  * @param input_file A readable stream.
1477  *
1478  * @note This function does not reset the start condition to @c INITIAL .
1479  */
1480 void yyrestart(FILE* input_file)
1481 {
1482 
1483  if (! YY_CURRENT_BUFFER)
1484  {
1485  yyensure_buffer_stack();
1488  }
1489 
1490  yy_init_buffer(YY_CURRENT_BUFFER, input_file);
1491  yy_load_buffer_state();
1492 }
1493 
1494 /** Switch to a different input buffer.
1495  * @param new_buffer The new input buffer.
1496  *
1497  */
1499 {
1500 
1501  /* TODO. We should be able to replace this entire function body
1502  * with
1503  * yypop_buffer_state();
1504  * yypush_buffer_state(new_buffer);
1505  */
1506  yyensure_buffer_stack();
1507  if (YY_CURRENT_BUFFER == new_buffer)
1508  {
1509  return;
1510  }
1511 
1512  if (YY_CURRENT_BUFFER)
1513  {
1514  /* Flush out information for old buffer. */
1515  *(yy_c_buf_p) = (yy_hold_char);
1516  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1517  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1518  }
1519 
1520  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1521  yy_load_buffer_state();
1522 
1523  /* We don't actually know whether we did this switch during
1524  * EOF (yywrap()) processing, but the only time this flag
1525  * is looked at is after yywrap() is called, so it's safe
1526  * to go ahead and always set it.
1527  */
1528  (yy_did_buffer_switch_on_eof) = 1;
1529 }
1530 
1531 static void yy_load_buffer_state(void)
1532 {
1533  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1534  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1535  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1536  (yy_hold_char) = *(yy_c_buf_p);
1537 }
1538 
1539 /** Allocate and initialize an input buffer state.
1540  * @param file A readable stream.
1541  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1542  *
1543  * @return the allocated buffer state.
1544  */
1545 YY_BUFFER_STATE yy_create_buffer(FILE* file, int size)
1546 {
1547  YY_BUFFER_STATE b;
1548 
1549  b = (YY_BUFFER_STATE) yyalloc(sizeof(struct yy_buffer_state));
1550  if (! b)
1551  {
1552  YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()");
1553  }
1554 
1555  b->yy_buf_size = size;
1556 
1557  /* yy_ch_buf has to be 2 characters longer than the size given because
1558  * we need to put in 2 end-of-buffer characters.
1559  */
1560  b->yy_ch_buf = (char*) yyalloc(b->yy_buf_size + 2);
1561  if (! b->yy_ch_buf)
1562  {
1563  YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()");
1564  }
1565 
1566  b->yy_is_our_buffer = 1;
1567 
1568  yy_init_buffer(b, file);
1569 
1570  return b;
1571 }
1572 
1573 /** Destroy the buffer.
1574  * @param b a buffer created with yy_create_buffer()
1575  *
1576  */
1578 {
1579 
1580  if (! b)
1581  {
1582  return;
1583  }
1584 
1585  if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */
1586  {
1588  }
1589 
1590  if (b->yy_is_our_buffer)
1591  {
1592  yyfree((void*) b->yy_ch_buf);
1593  }
1594 
1595  yyfree((void*) b);
1596 }
1597 
1598 /* Initializes or reinitializes a buffer.
1599  * This function is sometimes called more than once on the same buffer,
1600  * such as during a yyrestart() or at EOF.
1601  */
1602 static void yy_init_buffer(YY_BUFFER_STATE b, FILE* file)
1603 
1604 {
1605  int oerrno = errno;
1606 
1607  yy_flush_buffer(b);
1608 
1609  b->yy_input_file = file;
1610  b->yy_fill_buffer = 1;
1611 
1612  /* If b is the current buffer, then yy_init_buffer was _probably_
1613  * called from yyrestart() or through yy_get_next_buffer.
1614  * In that case, we don't want to reset the lineno or column.
1615  */
1616  if (b != YY_CURRENT_BUFFER)
1617  {
1618  b->yy_bs_lineno = 1;
1619  b->yy_bs_column = 0;
1620  }
1621 
1622  b->yy_is_interactive = 1;
1623 
1624  errno = oerrno;
1625 }
1626 
1627 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1628  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1629  *
1630  */
1632 {
1633  if (! b)
1634  {
1635  return;
1636  }
1637 
1638  b->yy_n_chars = 0;
1639 
1640  /* We always need two end-of-buffer characters. The first causes
1641  * a transition to the end-of-buffer state. The second causes
1642  * a jam in that state.
1643  */
1646 
1647  b->yy_buf_pos = &b->yy_ch_buf[0];
1648 
1649  b->yy_at_bol = 1;
1651 
1652  if (b == YY_CURRENT_BUFFER)
1653  {
1654  yy_load_buffer_state();
1655  }
1656 }
1657 
1658 /** Pushes the new state onto the stack. The new state becomes
1659  * the current state. This function will allocate the stack
1660  * if necessary.
1661  * @param new_buffer The new state.
1662  *
1663  */
1665 {
1666  if (new_buffer == NULL)
1667  {
1668  return;
1669  }
1670 
1671  yyensure_buffer_stack();
1672 
1673  /* This block is copied from yy_switch_to_buffer. */
1674  if (YY_CURRENT_BUFFER)
1675  {
1676  /* Flush out information for old buffer. */
1677  *(yy_c_buf_p) = (yy_hold_char);
1678  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1679  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1680  }
1681 
1682  /* Only push if top exists. Otherwise, replace top. */
1683  if (YY_CURRENT_BUFFER)
1684  {
1685  (yy_buffer_stack_top)++;
1686  }
1687  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1688 
1689  /* copied from yy_switch_to_buffer. */
1690  yy_load_buffer_state();
1691  (yy_did_buffer_switch_on_eof) = 1;
1692 }
1693 
1694 /** Removes and deletes the top of the stack, if present.
1695  * The next element becomes the new top.
1696  *
1697  */
1699 {
1700  if (!YY_CURRENT_BUFFER)
1701  {
1702  return;
1703  }
1704 
1706  YY_CURRENT_BUFFER_LVALUE = NULL;
1707  if ((yy_buffer_stack_top) > 0)
1708  {
1709  --(yy_buffer_stack_top);
1710  }
1711 
1712  if (YY_CURRENT_BUFFER)
1713  {
1714  yy_load_buffer_state();
1715  (yy_did_buffer_switch_on_eof) = 1;
1716  }
1717 }
1718 
1719 /* Allocates the stack if it does not exist.
1720  * Guarantees space for at least one push.
1721  */
1722 static void yyensure_buffer_stack(void)
1723 {
1724  yy_size_t num_to_alloc;
1725 
1726  if (!(yy_buffer_stack))
1727  {
1728 
1729  /* First allocation is just for 2 elements, since we don't know if this
1730  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1731  * immediate realloc on the next call.
1732  */
1733  num_to_alloc = 1;
1734  (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1735  (num_to_alloc * sizeof(struct yy_buffer_state*)
1736  );
1737  if (!(yy_buffer_stack))
1738  {
1739  YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()");
1740  }
1741 
1742  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1743 
1744  (yy_buffer_stack_max) = num_to_alloc;
1745  (yy_buffer_stack_top) = 0;
1746  return;
1747  }
1748 
1749  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1)
1750  {
1751 
1752  /* Increase the buffer to prepare for a possible push. */
1753  int grow_size = 8 /* arbitrary grow size */;
1754 
1755  num_to_alloc = (yy_buffer_stack_max) + grow_size;
1756  (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1757  ((yy_buffer_stack),
1758  num_to_alloc * sizeof(struct yy_buffer_state*)
1759  );
1760  if (!(yy_buffer_stack))
1761  {
1762  YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()");
1763  }
1764 
1765  /* zero only the new slots.*/
1766  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1767  (yy_buffer_stack_max) = num_to_alloc;
1768  }
1769 }
1770 
1771 /** Setup the input buffer state to scan directly from a user-specified character buffer.
1772  * @param base the character buffer
1773  * @param size the size in bytes of the character buffer
1774  *
1775  * @return the newly allocated buffer state object.
1776  */
1778 {
1779  YY_BUFFER_STATE b;
1780 
1781  if (size < 2 ||
1782  base[size - 2] != YY_END_OF_BUFFER_CHAR ||
1783  base[size - 1] != YY_END_OF_BUFFER_CHAR)
1784  /* They forgot to leave room for the EOB's. */
1785  {
1786  return 0;
1787  }
1788 
1789  b = (YY_BUFFER_STATE) yyalloc(sizeof(struct yy_buffer_state));
1790  if (! b)
1791  {
1792  YY_FATAL_ERROR("out of dynamic memory in yy_scan_buffer()");
1793  }
1794 
1795  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
1796  b->yy_buf_pos = b->yy_ch_buf = base;
1797  b->yy_is_our_buffer = 0;
1798  b->yy_input_file = 0;
1799  b->yy_n_chars = b->yy_buf_size;
1800  b->yy_is_interactive = 0;
1801  b->yy_at_bol = 1;
1802  b->yy_fill_buffer = 0;
1804 
1806 
1807  return b;
1808 }
1809 
1810 /** Setup the input buffer state to scan a string. The next call to yylex() will
1811  * scan from a @e copy of @a str.
1812  * @param yystr a NUL-terminated string to scan
1813  *
1814  * @return the newly allocated buffer state object.
1815  * @note If you want to scan bytes that may contain NUL values, then use
1816  * yy_scan_bytes() instead.
1817  */
1819 {
1820 
1821  return yy_scan_bytes(yystr, strlen(yystr));
1822 }
1823 
1824 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1825  * scan from a @e copy of @a bytes.
1826  * @param yybytes the byte buffer to scan
1827  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1828  *
1829  * @return the newly allocated buffer state object.
1830  */
1831 YY_BUFFER_STATE yy_scan_bytes(yyconst char* yybytes, yy_size_t _yybytes_len)
1832 {
1833  YY_BUFFER_STATE b;
1834  char* buf;
1835  yy_size_t n;
1836  int i;
1837 
1838  /* Get memory for full buffer, including space for trailing EOB's. */
1839  n = _yybytes_len + 2;
1840  buf = (char*) yyalloc(n);
1841  if (! buf)
1842  {
1843  YY_FATAL_ERROR("out of dynamic memory in yy_scan_bytes()");
1844  }
1845 
1846  for (i = 0; i < _yybytes_len; ++i)
1847  {
1848  buf[i] = yybytes[i];
1849  }
1850 
1851  buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
1852 
1853  b = yy_scan_buffer(buf, n);
1854  if (! b)
1855  {
1856  YY_FATAL_ERROR("bad buffer in yy_scan_bytes()");
1857  }
1858 
1859  /* It's okay to grow etc. this buffer, and we should throw it
1860  * away when we're done.
1861  */
1862  b->yy_is_our_buffer = 1;
1863 
1864  return b;
1865 }
1866 
1867 #ifndef YY_EXIT_FAILURE
1868 #define YY_EXIT_FAILURE 2
1869 #endif
1870 
1871 static void yy_fatal_error(yyconst char* msg)
1872 {
1873  (void) fprintf(stderr, "%s\n", msg);
1874  exit(YY_EXIT_FAILURE);
1875 }
1876 
1877 /* Redefine yyless() so it works in section 3 code. */
1878 
1879 #undef yyless
1880 #define yyless(n) \
1881  do \
1882  { \
1883  /* Undo effects of setting up yytext. */ \
1884  int yyless_macro_arg = (n); \
1885  YY_LESS_LINENO(yyless_macro_arg);\
1886  yytext[yyleng] = (yy_hold_char); \
1887  (yy_c_buf_p) = yytext + yyless_macro_arg; \
1888  (yy_hold_char) = *(yy_c_buf_p); \
1889  *(yy_c_buf_p) = '\0'; \
1890  yyleng = yyless_macro_arg; \
1891  } \
1892  while ( 0 )
1893 
1894 /* Accessor methods (get/set functions) to struct members. */
1895 
1896 /** Get the current line number.
1897  *
1898  */
1899 int yyget_lineno(void)
1900 {
1901 
1902  return yylineno;
1903 }
1904 
1905 /** Get the input stream.
1906  *
1907  */
1908 FILE* yyget_in(void)
1909 {
1910  return yyin;
1911 }
1912 
1913 /** Get the output stream.
1914  *
1915  */
1916 FILE* yyget_out(void)
1917 {
1918  return yyout;
1919 }
1920 
1921 /** Get the length of the current token.
1922  *
1923  */
1925 {
1926  return yyleng;
1927 }
1928 
1929 /** Get the current token.
1930  *
1931  */
1932 
1933 char* yyget_text(void)
1934 {
1935  return yytext;
1936 }
1937 
1938 /** Set the current line number.
1939  * @param line_number
1940  *
1941  */
1942 void yyset_lineno(int line_number)
1943 {
1944 
1945  yylineno = line_number;
1946 }
1947 
1948 /** Set the input stream. This does not discard the current
1949  * input buffer.
1950  * @param in_str A readable stream.
1951  *
1952  * @see yy_switch_to_buffer
1953  */
1954 void yyset_in(FILE* in_str)
1955 {
1956  yyin = in_str ;
1957 }
1958 
1959 void yyset_out(FILE* out_str)
1960 {
1961  yyout = out_str ;
1962 }
1963 
1964 int yyget_debug(void)
1965 {
1966  return yy_flex_debug;
1967 }
1968 
1969 void yyset_debug(int bdebug)
1970 {
1971  yy_flex_debug = bdebug ;
1972 }
1973 
1974 static int yy_init_globals(void)
1975 {
1976  /* Initialization is the same as for the non-reentrant scanner.
1977  * This function is called from yylex_destroy(), so don't allocate here.
1978  */
1979 
1980  (yy_buffer_stack) = 0;
1981  (yy_buffer_stack_top) = 0;
1982  (yy_buffer_stack_max) = 0;
1983  (yy_c_buf_p) = (char*) 0;
1984  (yy_init) = 0;
1985  (yy_start) = 0;
1986 
1987  /* Defined in main.c */
1988 #ifdef YY_STDINIT
1989  yyin = stdin;
1990  yyout = stdout;
1991 #else
1992  yyin = (FILE*) 0;
1993  yyout = (FILE*) 0;
1994 #endif
1995 
1996  /* For future reference: Set errno on error, since we are called by
1997  * yylex_init()
1998  */
1999  return 0;
2000 }
2001 
2002 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2003 int yylex_destroy(void)
2004 {
2005 
2006  /* Pop the buffer stack, destroying each element. */
2007  while (YY_CURRENT_BUFFER)
2008  {
2010  YY_CURRENT_BUFFER_LVALUE = NULL;
2012  }
2013 
2014  /* Destroy the stack itself. */
2015  yyfree((yy_buffer_stack));
2016  (yy_buffer_stack) = NULL;
2017 
2018  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2019  * yylex() is called, initialization will occur. */
2020  yy_init_globals();
2021 
2022  return 0;
2023 }
2024 
2025 /*
2026  * Internal utility routines.
2027  */
2028 
2029 #ifndef yytext_ptr
2030 static void yy_flex_strncpy(char* s1, yyconst char* s2, int n)
2031 {
2032  /*register*/ int i;
2033  for (i = 0; i < n; ++i)
2034  {
2035  s1[i] = s2[i];
2036  }
2037 }
2038 #endif
2039 
2040 #ifdef YY_NEED_STRLEN
2041 static int yy_flex_strlen(yyconst char* s)
2042 {
2043  /*register*/ int n;
2044  for (n = 0; s[n]; ++n)
2045  ;
2046 
2047  return n;
2048 }
2049 #endif
2050 
2051 void* yyalloc(yy_size_t size)
2052 {
2053  return (void*) malloc(size);
2054 }
2055 
2056 void* yyrealloc(void* ptr, yy_size_t size)
2057 {
2058  /* The cast to (char *) in the following accommodates both
2059  * implementations that use char* generic pointers, and those
2060  * that use void* generic pointers. It works with the latter
2061  * because both ANSI C and C++ allow castless assignment from
2062  * any pointer type to void*, and deal with argument conversions
2063  * as though doing an assignment.
2064  */
2065  return (void*) realloc((char*) ptr, size);
2066 }
2067 
2068 void yyfree(void* ptr)
2069 {
2070  free((char*) ptr); /* see yyrealloc() for (char *) cast */
2071 }
2072 
2073 #define YYTABLES_NAME "yytables"
2074 
2075 #line 232 "src/IceStorm/Scanner.l"
2076 
2077 
2078 
2079 namespace IceStorm
2080 {
2081 
2082  //
2083  // initScanner() fills the keyword map with all keyword-token pairs.
2084  //
2085 
2086  void
2088  {
2089  keywordMap["help"] = ICE_STORM_HELP;
2090  keywordMap["quit"] = ICE_STORM_EXIT;
2091  keywordMap["exit"] = ICE_STORM_EXIT;
2092  keywordMap["current"] = ICE_STORM_CURRENT;
2093  keywordMap["create"] = ICE_STORM_CREATE;
2094  keywordMap["destroy"] = ICE_STORM_DESTROY;
2095  keywordMap["link"] = ICE_STORM_LINK;
2096  keywordMap["unlink"] = ICE_STORM_UNLINK;
2097  keywordMap["links"] = ICE_STORM_LINKS;
2098  keywordMap["topics"] = ICE_STORM_TOPICS;
2099  keywordMap["replica"] = ICE_STORM_REPLICA;
2100  keywordMap["subscribers"] = ICE_STORM_SUBSCRIBERS;
2101  }
2102 
2103 }
2104 
YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE
Definition: Scanner.cpp:625
yy_delete_buffer
void yy_delete_buffer(YY_BUFFER_STATE b)
Destroy the buffer.
Definition: Scanner.cpp:1577
YY_BUFFER_EOF_PENDING
#define YY_BUFFER_EOF_PENDING
Definition: Scanner.cpp:249
yyalloc
void * yyalloc(yy_size_t)
Definition: Scanner.cpp:2051
IceStorm
Definition: DBTypes.ice:22
yyget_leng
yy_size_t yyget_leng(void)
Get the length of the current token.
Definition: Scanner.cpp:1924
flex_int16_t
short int flex_int16_t
Definition: Scanner.cpp:53
yy_cp
char * yy_cp
Definition: Scanner.cpp:723
ICE_STORM_HELP
@ ICE_STORM_HELP
Definition: Grammar.cpp:145
Parser.h
yy_trans_info
Definition: Scanner.cpp:372
yy_scan_string
YY_BUFFER_STATE yy_scan_string(yyconst char *yy_str)
Setup the input buffer state to scan a string.
Definition: Scanner.cpp:1818
yyget_extra
YY_EXTRA_TYPE yyget_extra(void)
yy_buffer_state::yy_bs_lineno
int yy_bs_lineno
The line count.
Definition: Scanner.cpp:227
string.h
yy_buffer_state::yy_buffer_status
int yy_buffer_status
Definition: Scanner.cpp:235
unput
#define unput(c)
Definition: Scanner.cpp:187
yy_flush_buffer
void yy_flush_buffer(YY_BUFFER_STATE b)
Discard all buffered characters.
Definition: Scanner.cpp:1631
yy_buffer_state
Definition: Scanner.cpp:191
yy_buffer_state::yy_buf_size
yy_size_t yy_buf_size
Definition: Scanner.cpp:201
yyterminate
#define yyterminate()
Definition: Scanner.cpp:677
yyget_out
FILE * yyget_out(void)
Get the output stream.
Definition: Scanner.cpp:1916
flex_uint32_t
unsigned int flex_uint32_t
Definition: Scanner.cpp:57
YY_EXIT_FAILURE
#define YY_EXIT_FAILURE
Definition: Scanner.cpp:1868
YY_STATE_EOF
#define YY_STATE_EOF(state)
Definition: Scanner.cpp:137
IceStorm::initScanner
void initScanner()
Definition: Scanner.cpp:2087
yy_trans_info::yy_nxt
flex_int32_t yy_nxt
Definition: Scanner.cpp:375
yyget_lineno
int yyget_lineno(void)
Get the current line number.
Definition: Scanner.cpp:1899
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
INITIAL
#define INITIAL
Definition: Scanner.cpp:546
YY_DO_BEFORE_ACTION
#define YY_DO_BEFORE_ACTION
Definition: Scanner.cpp:361
EOB_ACT_CONTINUE_SCAN
#define EOB_ACT_CONTINUE_SCAN
Definition: Scanner.cpp:167
yy_buffer_state::yy_buf_pos
char * yy_buf_pos
Definition: Scanner.cpp:196
yypop_buffer_state
void yypop_buffer_state(void)
Removes and deletes the top of the stack, if present.
Definition: Scanner.cpp:1698
ICE_STORM_LINKS
@ ICE_STORM_LINKS
Definition: Grammar.cpp:152
YY_BUFFER_NEW
#define YY_BUFFER_NEW
Definition: Scanner.cpp:237
flex_int8_t
signed char flex_int8_t
Definition: Scanner.cpp:52
yy_scan_buffer
YY_BUFFER_STATE yy_scan_buffer(char *base, yy_size_t size)
Setup the input buffer state to scan directly from a user-specified character buffer.
Definition: Scanner.cpp:1777
yyout
FILE * yyout
Definition: Scanner.cpp:165
YY_INPUT
#define YY_INPUT(buf, result, maxSize)
Definition: Scanner.cpp:531
yy_switch_to_buffer
void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)
Switch to a different input buffer.
Definition: Scanner.cpp:1498
IceStorm::Parser::warning
void warning(const char *)
ICE_STORM_STRING
@ ICE_STORM_STRING
Definition: Grammar.cpp:156
yyset_extra
void yyset_extra(YY_EXTRA_TYPE user_defined)
ICE_STORM_SUBSCRIBERS
@ ICE_STORM_SUBSCRIBERS
Definition: Grammar.cpp:155
ICE_STORM_REPLICA
@ ICE_STORM_REPLICA
Definition: Grammar.cpp:154
ICE_STORM_UNLINK
@ ICE_STORM_UNLINK
Definition: Grammar.cpp:151
yy_create_buffer
YY_BUFFER_STATE yy_create_buffer(FILE *file, int size)
Allocate and initialize an input buffer state.
Definition: Scanner.cpp:1545
yy_buffer_state::yy_is_our_buffer
int yy_is_our_buffer
Definition: Scanner.cpp:212
yy_size_t
size_t yy_size_t
Definition: Scanner.cpp:160
flex_uint8_t
unsigned char flex_uint8_t
Definition: Scanner.cpp:55
yyset_lineno
void yyset_lineno(int line_number)
Set the current line number.
Definition: Scanner.cpp:1942
yy_buffer_state::yy_fill_buffer
int yy_fill_buffer
Definition: Scanner.cpp:233
YY_START
#define YY_START
Definition: Scanner.cpp:133
YY_CURRENT_BUFFER_LVALUE
#define YY_CURRENT_BUFFER_LVALUE
Definition: Scanner.cpp:272
yypush_buffer_state
void yypush_buffer_state(YY_BUFFER_STATE new_buffer)
Pushes the new state onto the stack.
Definition: Scanner.cpp:1664
YY_DECL
#define YY_DECL
Definition: Scanner.cpp:700
yyget_in
FILE * yyget_in(void)
Get the input stream.
Definition: Scanner.cpp:1908
YY_USER_INIT
#define YY_USER_INIT
Definition: Scanner.cpp:542
yy_buffer_state::yy_bs_column
int yy_bs_column
The column count.
Definition: Scanner.cpp:228
if
if(!(yy_init))
Definition: Scanner.cpp:731
yy_buffer_state::yy_ch_buf
char * yy_ch_buf
Definition: Scanner.cpp:195
armarx::aron::input
ReaderT::InputType & input
Definition: rw.h:19
yy_buffer_state::yy_n_chars
yy_size_t yy_n_chars
Definition: Scanner.cpp:206
yy_trans_info::yy_verify
flex_int32_t yy_verify
Definition: Scanner.cpp:374
yy_scan_bytes
YY_BUFFER_STATE yy_scan_bytes(yyconst char *bytes, yy_size_t len)
Setup the input buffer state to scan the given bytes.
Definition: Scanner.cpp:1831
YY_END_OF_BUFFER_CHAR
#define YY_END_OF_BUFFER_CHAR
Definition: Scanner.cpp:142
ECHO
#define ECHO
Definition: Scanner.cpp:633
IceStorm::Parser::continueLine
void continueLine()
YY_CURRENT_BUFFER
#define YY_CURRENT_BUFFER
Definition: Scanner.cpp:265
yy_flex_debug
int yy_flex_debug
Definition: Scanner.cpp:459
boost::source
Vertex source(const detail::edge_base< Directed, Vertex > &e, const PCG &)
Definition: point_cloud_graph.h:681
yyget_text
char * yyget_text(void)
Get the current token.
Definition: Scanner.cpp:1933
YY_END_OF_BUFFER
#define YY_END_OF_BUFFER
Definition: Scanner.cpp:369
flex_int32_t
int flex_int32_t
Definition: Scanner.cpp:54
yyfree
void yyfree(void *)
Definition: Scanner.cpp:2068
yyrealloc
void * yyrealloc(void *, yy_size_t)
Definition: Scanner.cpp:2056
yyset_debug
void yyset_debug(int debug_flag)
Definition: Scanner.cpp:1969
yy_bp
char * yy_bp
Definition: Scanner.cpp:723
yy_buffer_state::yy_at_bol
int yy_at_bol
Definition: Scanner.cpp:225
YY_RULE_SETUP
#define YY_RULE_SETUP
Definition: Scanner.cpp:715
yylex
int yylex(void)
Ice
Definition: DBTypes.cpp:64
IceStorm::parser
Parser * parser
Definition: Parser.cpp:33
YY_BUF_SIZE
#define YY_BUF_SIZE
Definition: Scanner.cpp:146
YY_SC_TO_UI
#define YY_SC_TO_UI(c)
Definition: Scanner.cpp:121
std
Definition: Application.h:66
ICE_STORM_LINK
@ ICE_STORM_LINK
Definition: Grammar.cpp:150
YY_MORE_ADJ
#define YY_MORE_ADJ
Definition: Scanner.cpp:466
yyset_in
void yyset_in(FILE *in_str)
Set the input stream.
Definition: Scanner.cpp:1954
yy_state_type
int yy_state_type
Definition: Scanner.cpp:344
YY_BREAK
#define YY_BREAK
Definition: Scanner.cpp:712
ICE_STORM_TOPICS
@ ICE_STORM_TOPICS
Definition: Grammar.cpp:153
YY_BUFFER_NORMAL
#define YY_BUFFER_NORMAL
Definition: Scanner.cpp:238
yy_buffer_state::yy_is_interactive
int yy_is_interactive
Definition: Scanner.cpp:219
yylineno
int yylineno
Definition: Scanner.cpp:348
yyleng
yy_size_t yyleng
Definition: Scanner.cpp:277
EOB_ACT_LAST_MATCH
#define EOB_ACT_LAST_MATCH
Definition: Scanner.cpp:169
yytext_ptr
#define yytext_ptr
Definition: Scanner.cpp:351
YY_BUFFER_STATE
struct yy_buffer_state * YY_BUFFER_STATE
Definition: Scanner.cpp:155
IceStorm::StringTokenMap
std::map< std::string, int > StringTokenMap
Definition: Scanner.cpp:536
yyrestart
void yyrestart(FILE *input_file)
Immediately switch to a different input stream.
Definition: Scanner.cpp:1480
YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg)
Definition: Scanner.cpp:687
yywrap
#define yywrap()
Definition: Scanner.cpp:337
YY_EXTRA_TYPE
#define YY_EXTRA_TYPE
Definition: Scanner.cpp:557
yy_act
int yy_act
Definition: Scanner.cpp:724
yy_buffer_state::yy_input_file
FILE * yy_input_file
Definition: Scanner.cpp:193
yyin
FILE * yyin
Definition: Scanner.cpp:342
YY_RESTORE_YY_MORE_OFFSET
#define YY_RESTORE_YY_MORE_OFFSET
Definition: Scanner.cpp:467
flex_uint16_t
unsigned short int flex_uint16_t
Definition: Scanner.cpp:56
yyconst
#define yyconst
Definition: Scanner.cpp:110
yylex_destroy
int yylex_destroy(void)
Definition: Scanner.cpp:2003
EOB_ACT_END_OF_FILE
#define EOB_ACT_END_OF_FILE
Definition: Scanner.cpp:168
ICE_STORM_EXIT
@ ICE_STORM_EXIT
Definition: Grammar.cpp:146
ICE_STORM_DESTROY
@ ICE_STORM_DESTROY
Definition: Grammar.cpp:149
armarx::ctrlutil::s
double s(double t, double s0, double v0, double a0, double j)
Definition: CtrlUtil.h:33
yyset_out
void yyset_out(FILE *out_str)
Definition: Scanner.cpp:1959
ICE_STORM_CREATE
@ ICE_STORM_CREATE
Definition: Grammar.cpp:148
ICE_STORM_CURRENT
@ ICE_STORM_CURRENT
Definition: Grammar.cpp:147
YY_CHAR
unsigned char YY_CHAR
Definition: Scanner.cpp:340
YY_NEW_FILE
#define YY_NEW_FILE
Definition: Scanner.cpp:140
Grammar.h
yyget_debug
int yyget_debug(void)
Definition: Scanner.cpp:1964
yytext
char * yytext
Definition: Scanner.cpp:468