cprover
statement_list_lex.yy.cpp
Go to the documentation of this file.
1 #line 1 "statement_list_lex.yy.cpp"
2 
3 #line 3 "statement_list_lex.yy.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer yystatement_list_create_buffer
10 #define yy_delete_buffer yystatement_list_delete_buffer
11 #define yy_scan_buffer yystatement_list_scan_buffer
12 #define yy_scan_string yystatement_list_scan_string
13 #define yy_scan_bytes yystatement_list_scan_bytes
14 #define yy_init_buffer yystatement_list_init_buffer
15 #define yy_flush_buffer yystatement_list_flush_buffer
16 #define yy_load_buffer_state yystatement_list_load_buffer_state
17 #define yy_switch_to_buffer yystatement_list_switch_to_buffer
18 #define yypush_buffer_state yystatement_listpush_buffer_state
19 #define yypop_buffer_state yystatement_listpop_buffer_state
20 #define yyensure_buffer_stack yystatement_listensure_buffer_stack
21 #define yy_flex_debug yystatement_list_flex_debug
22 #define yyin yystatement_listin
23 #define yyleng yystatement_listleng
24 #define yylex yystatement_listlex
25 #define yylineno yystatement_listlineno
26 #define yyout yystatement_listout
27 #define yyrestart yystatement_listrestart
28 #define yytext yystatement_listtext
29 #define yywrap yystatement_listwrap
30 #define yyalloc yystatement_listalloc
31 #define yyrealloc yystatement_listrealloc
32 #define yyfree yystatement_listfree
33 
34 #define FLEX_SCANNER
35 #define YY_FLEX_MAJOR_VERSION 2
36 #define YY_FLEX_MINOR_VERSION 6
37 #define YY_FLEX_SUBMINOR_VERSION 4
38 #if YY_FLEX_SUBMINOR_VERSION > 0
39 #define FLEX_BETA
40 #endif
41 
42 #ifdef yy_create_buffer
43 #define yystatement_list_create_buffer_ALREADY_DEFINED
44 #else
45 #define yy_create_buffer yystatement_list_create_buffer
46 #endif
47 
48 #ifdef yy_delete_buffer
49 #define yystatement_list_delete_buffer_ALREADY_DEFINED
50 #else
51 #define yy_delete_buffer yystatement_list_delete_buffer
52 #endif
53 
54 #ifdef yy_scan_buffer
55 #define yystatement_list_scan_buffer_ALREADY_DEFINED
56 #else
57 #define yy_scan_buffer yystatement_list_scan_buffer
58 #endif
59 
60 #ifdef yy_scan_string
61 #define yystatement_list_scan_string_ALREADY_DEFINED
62 #else
63 #define yy_scan_string yystatement_list_scan_string
64 #endif
65 
66 #ifdef yy_scan_bytes
67 #define yystatement_list_scan_bytes_ALREADY_DEFINED
68 #else
69 #define yy_scan_bytes yystatement_list_scan_bytes
70 #endif
71 
72 #ifdef yy_init_buffer
73 #define yystatement_list_init_buffer_ALREADY_DEFINED
74 #else
75 #define yy_init_buffer yystatement_list_init_buffer
76 #endif
77 
78 #ifdef yy_flush_buffer
79 #define yystatement_list_flush_buffer_ALREADY_DEFINED
80 #else
81 #define yy_flush_buffer yystatement_list_flush_buffer
82 #endif
83 
84 #ifdef yy_load_buffer_state
85 #define yystatement_list_load_buffer_state_ALREADY_DEFINED
86 #else
87 #define yy_load_buffer_state yystatement_list_load_buffer_state
88 #endif
89 
90 #ifdef yy_switch_to_buffer
91 #define yystatement_list_switch_to_buffer_ALREADY_DEFINED
92 #else
93 #define yy_switch_to_buffer yystatement_list_switch_to_buffer
94 #endif
95 
96 #ifdef yypush_buffer_state
97 #define yystatement_listpush_buffer_state_ALREADY_DEFINED
98 #else
99 #define yypush_buffer_state yystatement_listpush_buffer_state
100 #endif
101 
102 #ifdef yypop_buffer_state
103 #define yystatement_listpop_buffer_state_ALREADY_DEFINED
104 #else
105 #define yypop_buffer_state yystatement_listpop_buffer_state
106 #endif
107 
108 #ifdef yyensure_buffer_stack
109 #define yystatement_listensure_buffer_stack_ALREADY_DEFINED
110 #else
111 #define yyensure_buffer_stack yystatement_listensure_buffer_stack
112 #endif
113 
114 #ifdef yylex
115 #define yystatement_listlex_ALREADY_DEFINED
116 #else
117 #define yylex yystatement_listlex
118 #endif
119 
120 #ifdef yyrestart
121 #define yystatement_listrestart_ALREADY_DEFINED
122 #else
123 #define yyrestart yystatement_listrestart
124 #endif
125 
126 #ifdef yylex_init
127 #define yystatement_listlex_init_ALREADY_DEFINED
128 #else
129 #define yylex_init yystatement_listlex_init
130 #endif
131 
132 #ifdef yylex_init_extra
133 #define yystatement_listlex_init_extra_ALREADY_DEFINED
134 #else
135 #define yylex_init_extra yystatement_listlex_init_extra
136 #endif
137 
138 #ifdef yylex_destroy
139 #define yystatement_listlex_destroy_ALREADY_DEFINED
140 #else
141 #define yylex_destroy yystatement_listlex_destroy
142 #endif
143 
144 #ifdef yyget_debug
145 #define yystatement_listget_debug_ALREADY_DEFINED
146 #else
147 #define yyget_debug yystatement_listget_debug
148 #endif
149 
150 #ifdef yyset_debug
151 #define yystatement_listset_debug_ALREADY_DEFINED
152 #else
153 #define yyset_debug yystatement_listset_debug
154 #endif
155 
156 #ifdef yyget_extra
157 #define yystatement_listget_extra_ALREADY_DEFINED
158 #else
159 #define yyget_extra yystatement_listget_extra
160 #endif
161 
162 #ifdef yyset_extra
163 #define yystatement_listset_extra_ALREADY_DEFINED
164 #else
165 #define yyset_extra yystatement_listset_extra
166 #endif
167 
168 #ifdef yyget_in
169 #define yystatement_listget_in_ALREADY_DEFINED
170 #else
171 #define yyget_in yystatement_listget_in
172 #endif
173 
174 #ifdef yyset_in
175 #define yystatement_listset_in_ALREADY_DEFINED
176 #else
177 #define yyset_in yystatement_listset_in
178 #endif
179 
180 #ifdef yyget_out
181 #define yystatement_listget_out_ALREADY_DEFINED
182 #else
183 #define yyget_out yystatement_listget_out
184 #endif
185 
186 #ifdef yyset_out
187 #define yystatement_listset_out_ALREADY_DEFINED
188 #else
189 #define yyset_out yystatement_listset_out
190 #endif
191 
192 #ifdef yyget_leng
193 #define yystatement_listget_leng_ALREADY_DEFINED
194 #else
195 #define yyget_leng yystatement_listget_leng
196 #endif
197 
198 #ifdef yyget_text
199 #define yystatement_listget_text_ALREADY_DEFINED
200 #else
201 #define yyget_text yystatement_listget_text
202 #endif
203 
204 #ifdef yyget_lineno
205 #define yystatement_listget_lineno_ALREADY_DEFINED
206 #else
207 #define yyget_lineno yystatement_listget_lineno
208 #endif
209 
210 #ifdef yyset_lineno
211 #define yystatement_listset_lineno_ALREADY_DEFINED
212 #else
213 #define yyset_lineno yystatement_listset_lineno
214 #endif
215 
216 #ifdef yywrap
217 #define yystatement_listwrap_ALREADY_DEFINED
218 #else
219 #define yywrap yystatement_listwrap
220 #endif
221 
222 #ifdef yyalloc
223 #define yystatement_listalloc_ALREADY_DEFINED
224 #else
225 #define yyalloc yystatement_listalloc
226 #endif
227 
228 #ifdef yyrealloc
229 #define yystatement_listrealloc_ALREADY_DEFINED
230 #else
231 #define yyrealloc yystatement_listrealloc
232 #endif
233 
234 #ifdef yyfree
235 #define yystatement_listfree_ALREADY_DEFINED
236 #else
237 #define yyfree yystatement_listfree
238 #endif
239 
240 #ifdef yytext
241 #define yystatement_listtext_ALREADY_DEFINED
242 #else
243 #define yytext yystatement_listtext
244 #endif
245 
246 #ifdef yyleng
247 #define yystatement_listleng_ALREADY_DEFINED
248 #else
249 #define yyleng yystatement_listleng
250 #endif
251 
252 #ifdef yyin
253 #define yystatement_listin_ALREADY_DEFINED
254 #else
255 #define yyin yystatement_listin
256 #endif
257 
258 #ifdef yyout
259 #define yystatement_listout_ALREADY_DEFINED
260 #else
261 #define yyout yystatement_listout
262 #endif
263 
264 #ifdef yy_flex_debug
265 #define yystatement_list_flex_debug_ALREADY_DEFINED
266 #else
267 #define yy_flex_debug yystatement_list_flex_debug
268 #endif
269 
270 #ifdef yylineno
271 #define yystatement_listlineno_ALREADY_DEFINED
272 #else
273 #define yylineno yystatement_listlineno
274 #endif
275 
276 /* First, we deal with platform-specific or compiler-specific issues. */
277 
278 /* begin standard C headers. */
279 #include <stdio.h>
280 #include <string.h>
281 #include <errno.h>
282 #include <stdlib.h>
283 
284 /* end standard C headers. */
285 
286 /* flex integer type definitions */
287 
288 #ifndef FLEXINT_H
289 #define FLEXINT_H
290 
291 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
292 
293 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
294 
295 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
296  * if you want the limit (max/min) macros for int types.
297  */
298 #ifndef __STDC_LIMIT_MACROS
299 #define __STDC_LIMIT_MACROS 1
300 #endif
301 
302 #include <inttypes.h>
303 typedef int8_t flex_int8_t;
304 typedef uint8_t flex_uint8_t;
305 typedef int16_t flex_int16_t;
306 typedef uint16_t flex_uint16_t;
307 typedef int32_t flex_int32_t;
308 typedef uint32_t flex_uint32_t;
309 #else
310 typedef signed char flex_int8_t;
311 typedef short int flex_int16_t;
312 typedef int flex_int32_t;
313 typedef unsigned char flex_uint8_t;
314 typedef unsigned short int flex_uint16_t;
315 typedef unsigned int flex_uint32_t;
316 
317 /* Limits of integral types. */
318 #ifndef INT8_MIN
319 #define INT8_MIN (-128)
320 #endif
321 #ifndef INT16_MIN
322 #define INT16_MIN (-32767-1)
323 #endif
324 #ifndef INT32_MIN
325 #define INT32_MIN (-2147483647-1)
326 #endif
327 #ifndef INT8_MAX
328 #define INT8_MAX (127)
329 #endif
330 #ifndef INT16_MAX
331 #define INT16_MAX (32767)
332 #endif
333 #ifndef INT32_MAX
334 #define INT32_MAX (2147483647)
335 #endif
336 #ifndef UINT8_MAX
337 #define UINT8_MAX (255U)
338 #endif
339 #ifndef UINT16_MAX
340 #define UINT16_MAX (65535U)
341 #endif
342 #ifndef UINT32_MAX
343 #define UINT32_MAX (4294967295U)
344 #endif
345 
346 #ifndef SIZE_MAX
347 #define SIZE_MAX (~(size_t)0)
348 #endif
349 
350 #endif /* ! C99 */
351 
352 #endif /* ! FLEXINT_H */
353 
354 /* begin standard C++ headers. */
355 
356 /* TODO: this is always defined, so inline it */
357 #define yyconst const
358 
359 #if defined(__GNUC__) && __GNUC__ >= 3
360 #define yynoreturn __attribute__((__noreturn__))
361 #else
362 #define yynoreturn
363 #endif
364 
365 /* Returned upon end-of-file. */
366 #define YY_NULL 0
367 
368 /* Promotes a possibly negative, possibly signed char to an
369  * integer in range [0..255] for use as an array index.
370  */
371 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
372 
373 /* Enter a start condition. This macro really ought to take a parameter,
374  * but we do it the disgusting crufty way forced on us by the ()-less
375  * definition of BEGIN.
376  */
377 #define BEGIN (yy_start) = 1 + 2 *
378 /* Translate the current start state into a value that can be later handed
379  * to BEGIN to return to the state. The YYSTATE alias is for lex
380  * compatibility.
381  */
382 #define YY_START (((yy_start) - 1) / 2)
383 #define YYSTATE YY_START
384 /* Action number for EOF rule of a given start state. */
385 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
386 /* Special action meaning "start processing a new file". */
387 #define YY_NEW_FILE yyrestart( yyin )
388 #define YY_END_OF_BUFFER_CHAR 0
389 
390 /* Size of default input buffer. */
391 #ifndef YY_BUF_SIZE
392 #ifdef __ia64__
393 /* On IA-64, the buffer size is 16k, not 8k.
394  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
395  * Ditto for the __ia64__ case accordingly.
396  */
397 #define YY_BUF_SIZE 32768
398 #else
399 #define YY_BUF_SIZE 16384
400 #endif /* __ia64__ */
401 #endif
402 
403 /* The state buf must be large enough to hold one state per character in the main buffer.
404  */
405 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
406 
407 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
408 #define YY_TYPEDEF_YY_BUFFER_STATE
410 #endif
411 
412 #ifndef YY_TYPEDEF_YY_SIZE_T
413 #define YY_TYPEDEF_YY_SIZE_T
414 typedef size_t yy_size_t;
415 #endif
416 
417 extern int yyleng;
418 
419 extern FILE *yyin, *yyout;
420 
421 #define EOB_ACT_CONTINUE_SCAN 0
422 #define EOB_ACT_END_OF_FILE 1
423 #define EOB_ACT_LAST_MATCH 2
424 
425  #define YY_LESS_LINENO(n)
426  #define YY_LINENO_REWIND_TO(ptr)
427 
428 /* Return all but the first "n" matched characters back to the input stream. */
429 #define yyless(n) \
430  do \
431  { \
432  /* Undo effects of setting up yytext. */ \
433  int yyless_macro_arg = (n); \
434  YY_LESS_LINENO(yyless_macro_arg);\
435  *yy_cp = (yy_hold_char); \
436  YY_RESTORE_YY_MORE_OFFSET \
437  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
438  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
439  } \
440  while ( 0 )
441 #define unput(c) yyunput( c, (yytext_ptr) )
442 
443 #ifndef YY_STRUCT_YY_BUFFER_STATE
444 #define YY_STRUCT_YY_BUFFER_STATE
446  {
447  FILE *yy_input_file;
448 
449  char *yy_ch_buf; /* input buffer */
450  char *yy_buf_pos; /* current position in input buffer */
451 
452  /* Size of input buffer in bytes, not including room for EOB
453  * characters.
454  */
455  int yy_buf_size;
456 
457  /* Number of characters read into yy_ch_buf, not including EOB
458  * characters.
459  */
460  int yy_n_chars;
461 
462  /* Whether we "own" the buffer - i.e., we know we created it,
463  * and can realloc() it to grow it, and should free() it to
464  * delete it.
465  */
466  int yy_is_our_buffer;
467 
468  /* Whether this is an "interactive" input source; if so, and
469  * if we're using stdio for input, then we want to use getc()
470  * instead of fread(), to make sure we stop fetching input after
471  * each newline.
472  */
473  int yy_is_interactive;
474 
475  /* Whether we're considered to be at the beginning of a line.
476  * If so, '^' rules will be active on the next match, otherwise
477  * not.
478  */
479  int yy_at_bol;
480 
481  int yy_bs_lineno;
482  int yy_bs_column;
484  /* Whether to try to fill the input buffer when we reach the
485  * end of it.
486  */
487  int yy_fill_buffer;
488 
489  int yy_buffer_status;
490 
491 #define YY_BUFFER_NEW 0
492 #define YY_BUFFER_NORMAL 1
493  /* When an EOF's been seen but there's still some text to process
494  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
495  * shouldn't try reading from the input source any more. We might
496  * still have a bunch of tokens to match, though, because of
497  * possible backing-up.
498  *
499  * When we actually see the EOF, we change the status to "new"
500  * (via yyrestart()), so that the user can continue scanning by
501  * just pointing yyin at a new input file.
502  */
503 #define YY_BUFFER_EOF_PENDING 2
504 
505  };
506 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
507 
508 /* Stack of input buffers. */
509 static size_t yy_buffer_stack_top = 0;
510 static size_t yy_buffer_stack_max = 0;
513 /* We provide macros for accessing buffer states in case in the
514  * future we want to put the buffer states in a more general
515  * "scanner state".
516  *
517  * Returns the top of the stack, or NULL.
518  */
519 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
520  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
521  : NULL)
522 /* Same as previous macro, but useful when we know that the buffer stack is not
523  * NULL or when we need an lvalue. For internal use only.
524  */
525 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
526 
527 /* yy_hold_char holds the character lost when yytext is formed. */
528 static char yy_hold_char;
529 static int yy_n_chars; /* number of characters read into yy_ch_buf */
530 int yyleng;
531 
532 /* Points to current character in buffer. */
533 static char *yy_c_buf_p = NULL;
534 static int yy_init = 0; /* whether we need to initialize */
535 static int yy_start = 0; /* start state number */
536 
537 /* Flag which is used to allow yywrap()'s to do buffer switches
538  * instead of setting up a fresh yyin. A bit of a hack ...
539  */
541 
542 void yyrestart ( FILE *input_file );
543 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
544 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
547 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
548 void yypop_buffer_state ( void );
549 
550 static void yyensure_buffer_stack ( void );
551 static void yy_load_buffer_state ( void );
552 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
553 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
554 
555 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
556 YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
557 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
558 
559 void *yyalloc ( yy_size_t );
560 void *yyrealloc ( void *, yy_size_t );
561 void yyfree ( void * );
562 
563 #define yy_new_buffer yy_create_buffer
564 #define yy_set_interactive(is_interactive) \
565  { \
566  if ( ! YY_CURRENT_BUFFER ){ \
567  yyensure_buffer_stack (); \
568  YY_CURRENT_BUFFER_LVALUE = \
569  yy_create_buffer( yyin, YY_BUF_SIZE ); \
570  } \
571  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
572  }
573 #define yy_set_bol(at_bol) \
574  { \
575  if ( ! YY_CURRENT_BUFFER ){\
576  yyensure_buffer_stack (); \
577  YY_CURRENT_BUFFER_LVALUE = \
578  yy_create_buffer( yyin, YY_BUF_SIZE ); \
579  } \
580  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
581  }
582 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
583 
584 /* Begin user sect3 */
585 
586 #define yystatement_listwrap() (/*CONSTCOND*/1)
587 #define YY_SKIP_YYWRAP
589 
590 FILE *yyin = NULL, *yyout = NULL;
591 
592 typedef int yy_state_type;
593 
594 extern int yylineno;
595 int yylineno = 1;
596 
597 extern char *yytext;
598 #ifdef yytext_ptr
599 #undef yytext_ptr
600 #endif
601 #define yytext_ptr yytext
602 
603 static yy_state_type yy_get_previous_state ( void );
604 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
605 static int yy_get_next_buffer ( void );
606 static void yynoreturn yy_fatal_error ( const char* msg );
607 
608 /* Done after the current pattern has been matched and before the
609  * corresponding action - sets up yytext.
610  */
611 #define YY_DO_BEFORE_ACTION \
612  (yytext_ptr) = yy_bp; \
613  yyleng = (int) (yy_cp - yy_bp); \
614  (yy_hold_char) = *yy_cp; \
615  *yy_cp = '\0'; \
616  (yy_c_buf_p) = yy_cp;
617 #define YY_NUM_RULES 110
618 #define YY_END_OF_BUFFER 111
619 /* This struct is not used in this scanner,
620  but its presence is necessary. */
621 struct yy_trans_info
622  {
625  };
626 static const flex_int16_t yy_accept[312] =
627  { 0,
628  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
629  0, 0, 111, 1, 110, 3, 110, 2, 47, 110,
630  49, 110, 2, 110, 80, 80, 80, 2, 110, 48,
631  110, 35, 91, 91, 91, 91, 91, 91, 91, 26,
632  91, 37, 33, 32, 27, 91, 39, 110, 91, 91,
633  93, 110, 110, 96, 110, 98, 105, 110, 110, 110,
634  110, 110, 110, 110, 110, 106, 109, 110, 107, 0,
635  72, 52, 62, 80, 70, 50, 60, 71, 51, 61,
636  0, 92, 73, 53, 63, 0, 80, 80, 0, 4,
637  0, 0, 77, 57, 67, 0, 0, 76, 56, 66,
638 
639  41, 91, 36, 91, 91, 91, 91, 91, 91, 91,
640  91, 91, 91, 0, 91, 91, 43, 38, 91, 91,
641  91, 91, 91, 91, 91, 91, 45, 40, 0, 0,
642  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
643  0, 91, 90, 0, 0, 86, 79, 59, 69, 75,
644  55, 65, 74, 54, 64, 78, 58, 68, 42, 91,
645  91, 91, 31, 91, 91, 91, 91, 91, 91, 21,
646  0, 82, 91, 29, 34, 44, 91, 30, 5, 91,
647  91, 15, 91, 91, 46, 94, 0, 97, 100, 0,
648  0, 0, 101, 0, 0, 0, 108, 0, 80, 83,
649 
650  91, 23, 28, 91, 22, 91, 91, 91, 0, 91,
651  24, 91, 89, 0, 91, 91, 25, 0, 103, 102,
652  0, 104, 99, 99, 108, 6, 0, 91, 91, 91,
653  0, 81, 81, 81, 91, 20, 0, 91, 91, 91,
654  91, 0, 82, 82, 91, 91, 91, 81, 81, 0,
655  91, 0, 91, 91, 91, 91, 0, 82, 82, 0,
656  91, 18, 91, 0, 0, 87, 19, 0, 91, 91,
657  91, 91, 7, 95, 0, 88, 91, 10, 84, 0,
658  91, 91, 91, 17, 85, 91, 91, 0, 12, 91,
659  91, 91, 91, 0, 14, 13, 91, 91, 0, 11,
660 
661  91, 16, 91, 91, 91, 8, 91, 91, 91, 9,
662  0
663  } ;
664 
665 static const YY_CHAR yy_ec[256] =
666  { 0,
667  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
668  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
669  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
670  1, 4, 1, 5, 6, 1, 7, 1, 1, 8,
671  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
672  19, 19, 19, 20, 19, 19, 19, 21, 22, 23,
673  24, 25, 1, 1, 26, 27, 28, 29, 30, 31,
674  32, 33, 34, 33, 35, 36, 37, 38, 39, 40,
675  33, 41, 42, 43, 44, 45, 46, 47, 33, 33,
676  1, 1, 1, 1, 48, 1, 49, 50, 50, 51,
677 
678  52, 53, 33, 33, 54, 33, 33, 55, 33, 56,
679  57, 33, 33, 58, 59, 60, 61, 33, 33, 33,
680  33, 33, 1, 62, 1, 1, 1, 1, 1, 1,
681  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
682  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
683  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
684  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
685  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
686  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
687  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
688 
689  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
690  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
691  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
692  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
693  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
694  1, 1, 1, 1, 1
695  } ;
696 
697 static const YY_CHAR yy_meta[63] =
698  { 0,
699  1, 2, 2, 1, 2, 1, 1, 3, 1, 1,
700  1, 1, 1, 4, 1, 5, 5, 5, 5, 5,
701  4, 1, 1, 1, 1, 6, 6, 6, 6, 6,
702  6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
703  7, 7, 7, 7, 7, 7, 7, 4, 6, 6,
704  6, 6, 6, 7, 7, 7, 7, 7, 7, 7,
705  7, 1
706  } ;
707 
708 static const flex_int16_t yy_base[323] =
709  { 0,
710  0, 0, 0, 0, 61, 65, 69, 73, 94, 0,
711  155, 175, 308, 1200, 1200, 1200, 0, 1200, 1200, 51,
712  93, 181, 281, 52, 100, 122, 146, 274, 178, 270,
713  180, 86, 197, 209, 147, 94, 212, 220, 228, 223,
714  232, 243, 244, 255, 265, 274, 269, 257, 266, 289,
715  1200, 0, 237, 1200, 0, 1200, 1200, 0, 213, 216,
716  120, 191, 187, 231, 275, 1200, 1200, 322, 1200, 219,
717  1200, 1200, 1200, 332, 1200, 1200, 1200, 1200, 1200, 1200,
718  195, 1200, 1200, 1200, 1200, 301, 339, 348, 67, 1200,
719  214, 293, 1200, 1200, 1200, 340, 341, 1200, 1200, 1200,
720 
721  1200, 363, 364, 365, 375, 379, 380, 384, 395, 398,
722  399, 396, 415, 430, 417, 437, 1200, 447, 448, 449,
723  451, 465, 468, 470, 473, 482, 1200, 485, 208, 179,
724  185, 499, 131, 130, 170, 125, 135, 43, 465, 505,
725  169, 1200, 514, 524, 0, 127, 1200, 1200, 1200, 1200,
726  1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 531,
727  539, 540, 541, 542, 543, 558, 559, 560, 563, 575,
728  591, 596, 578, 579, 583, 1200, 609, 611, 612, 613,
729  614, 632, 629, 631, 1200, 1200, 132, 1200, 640, 115,
730  93, 89, 1200, 95, 412, 625, 656, 672, 677, 0,
731 
732  690, 691, 692, 695, 694, 706, 709, 710, 725, 711,
733  726, 738, 741, 121, 746, 749, 750, 102, 1200, 1200,
734  436, 1200, 1200, 599, 1200, 758, 775, 761, 776, 790,
735  790, 796, 801, 816, 817, 829, 94, 831, 832, 833,
736  834, 104, 810, 861, 851, 843, 854, 879, 884, 243,
737  897, 88, 898, 899, 900, 901, 71, 910, 934, 251,
738  927, 935, 949, 948, 0, 761, 961, 48, 963, 964,
739  965, 975, 980, 1200, 0, 871, 983, 985, 0, 46,
740  1000, 1002, 1003, 1004, 0, 1014, 1023, 62, 1024, 1028,
741  1043, 1044, 1045, 44, 1046, 1047, 1055, 1064, 36, 1066,
742 
743  1074, 1200, 1083, 1084, 1086, 1103, 1104, 1107, 1112, 1115,
744  1200, 1147, 1154, 1161, 1165, 1170, 1177, 1184, 1186, 1189,
745  1191, 1193
746  } ;
747 
748 static const flex_int16_t yy_def[323] =
749  { 0,
750  312, 312, 311, 3, 313, 313, 313, 313, 313, 9,
751  313, 313, 311, 311, 311, 311, 314, 311, 311, 311,
752  311, 311, 315, 311, 311, 311, 311, 311, 311, 311,
753  311, 316, 316, 316, 316, 316, 316, 316, 316, 316,
754  316, 316, 316, 316, 316, 316, 316, 315, 316, 316,
755  311, 317, 311, 311, 318, 311, 311, 319, 311, 311,
756  311, 311, 311, 311, 311, 311, 311, 311, 311, 314,
757  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
758  315, 311, 311, 311, 311, 311, 311, 311, 311, 311,
759  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
760 
761  311, 316, 316, 316, 316, 316, 316, 316, 316, 316,
762  316, 316, 316, 311, 316, 316, 311, 316, 316, 316,
763  316, 316, 316, 316, 316, 316, 311, 316, 317, 311,
764  318, 311, 311, 311, 311, 311, 311, 311, 311, 311,
765  311, 311, 311, 311, 320, 311, 311, 311, 311, 311,
766  311, 311, 311, 311, 311, 311, 311, 311, 311, 316,
767  316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
768  311, 311, 316, 316, 316, 311, 316, 316, 316, 316,
769  316, 316, 316, 316, 311, 311, 311, 311, 311, 311,
770  311, 311, 311, 311, 311, 311, 311, 311, 311, 320,
771 
772  316, 316, 316, 316, 316, 316, 316, 316, 311, 316,
773  316, 316, 316, 311, 316, 316, 316, 311, 311, 311,
774  311, 311, 311, 311, 311, 316, 311, 316, 316, 316,
775  311, 311, 311, 311, 316, 316, 311, 316, 316, 316,
776  316, 311, 311, 311, 316, 316, 316, 311, 311, 311,
777  316, 311, 316, 316, 316, 316, 311, 311, 311, 311,
778  316, 316, 316, 311, 321, 311, 316, 311, 316, 316,
779  316, 316, 316, 311, 322, 311, 316, 316, 321, 311,
780  316, 316, 316, 316, 322, 316, 316, 311, 316, 316,
781  316, 316, 316, 311, 316, 316, 316, 316, 311, 316,
782 
783  316, 311, 316, 316, 316, 316, 316, 316, 316, 316,
784  0, 311, 311, 311, 311, 311, 311, 311, 311, 311,
785  311, 311
786  } ;
787 
788 static const flex_int16_t yy_nxt[1263] =
789  { 0,
790  15, 16, 16, 16, 17, 18, 15, 18, 19, 20,
791  21, 18, 22, 23, 24, 25, 26, 27, 25, 25,
792  28, 18, 29, 30, 31, 32, 33, 34, 35, 36,
793  37, 38, 38, 39, 38, 40, 38, 41, 42, 38,
794  43, 44, 45, 38, 46, 38, 47, 48, 38, 38,
795  38, 38, 49, 38, 38, 38, 38, 38, 38, 50,
796  38, 15, 51, 51, 51, 52, 51, 51, 51, 52,
797  54, 54, 54, 55, 54, 54, 54, 55, 302, 71,
798  83, 299, 146, 146, 72, 84, 195, 294, 288, 280,
799  53, 73, 85, 101, 53, 56, 57, 56, 56, 81,
800 
801  58, 311, 274, 195, 195, 56, 82, 81, 74, 74,
802  74, 74, 74, 86, 82, 74, 74, 74, 74, 74,
803  59, 75, 60, 103, 61, 268, 76, 62, 146, 257,
804  221, 109, 252, 77, 63, 86, 64, 87, 74, 74,
805  74, 88, 146, 146, 242, 135, 61, 221, 237, 222,
806  221, 89, 220, 64, 311, 65, 66, 67, 66, 86,
807  81, 74, 74, 74, 74, 74, 66, 82, 135, 219,
808  68, 68, 68, 68, 68, 69, 66, 67, 66, 218,
809  108, 135, 140, 194, 193, 191, 66, 190, 146, 188,
810  68, 68, 68, 68, 68, 69, 74, 74, 74, 74,
811 
812  74, 91, 92, 97, 311, 192, 93, 187, 98, 78,
813  81, 94, 186, 99, 79, 82, 311, 82, 95, 311,
814  100, 80, 81, 142, 192, 81, 104, 311, 114, 82,
815  311, 192, 82, 81, 106, 311, 81, 110, 137, 311,
816  82, 81, 147, 82, 107, 81, 136, 148, 82, 134,
817  117, 311, 82, 105, 149, 111, 81, 81, 266, 266,
818  110, 115, 311, 82, 82, 112, 276, 276, 81, 133,
819  116, 138, 311, 311, 130, 82, 127, 82, 81, 81,
820  118, 311, 81, 113, 120, 82, 82, 81, 138, 82,
821  121, 110, 138, 96, 82, 119, 311, 90, 122, 124,
822 
823  135, 82, 81, 125, 266, 123, 128, 311, 311, 82,
824  311, 311, 276, 311, 110, 138, 143, 143, 143, 143,
825  143, 150, 123, 135, 311, 311, 151, 311, 311, 123,
826  126, 311, 138, 152, 311, 140, 139, 141, 141, 141,
827  141, 141, 311, 311, 144, 86, 123, 74, 74, 74,
828  74, 74, 86, 145, 74, 74, 74, 74, 74, 311,
829  311, 86, 311, 74, 74, 74, 74, 74, 153, 156,
830  311, 159, 311, 154, 157, 311, 81, 81, 81, 311,
831  155, 158, 311, 82, 82, 82, 311, 311, 81, 311,
832  311, 311, 81, 81, 311, 82, 160, 81, 311, 82,
833 
834  82, 311, 311, 311, 82, 311, 311, 311, 81, 81,
835  311, 81, 81, 311, 162, 82, 82, 311, 82, 82,
836  163, 164, 311, 166, 311, 311, 311, 311, 81, 311,
837  81, 161, 311, 167, 311, 82, 168, 82, 169, 165,
838  171, 223, 171, 311, 311, 172, 172, 172, 172, 172,
839  81, 311, 167, 311, 176, 311, 311, 82, 311, 173,
840  81, 81, 81, 223, 81, 223, 311, 82, 82, 82,
841  311, 82, 311, 223, 170, 311, 174, 311, 81, 175,
842  311, 81, 179, 81, 311, 82, 81, 223, 82, 311,
843  82, 178, 185, 82, 311, 81, 177, 223, 81, 311,
844 
845  192, 311, 82, 311, 311, 82, 311, 180, 195, 311,
846  182, 181, 189, 183, 189, 189, 189, 189, 189, 192,
847  197, 197, 197, 197, 197, 195, 196, 311, 181, 143,
848  143, 143, 143, 143, 198, 184, 198, 311, 311, 199,
849  199, 199, 199, 199, 81, 311, 311, 311, 311, 311,
850  311, 82, 81, 81, 81, 81, 81, 311, 311, 82,
851  82, 82, 82, 82, 201, 311, 311, 311, 209, 311,
852  311, 81, 81, 81, 311, 203, 81, 311, 82, 82,
853  82, 311, 311, 82, 204, 311, 311, 208, 81, 311,
854  311, 81, 81, 202, 311, 82, 81, 311, 82, 82,
855 
856  207, 311, 205, 82, 311, 206, 172, 172, 172, 172,
857  172, 172, 172, 172, 172, 172, 311, 207, 311, 311,
858  311, 311, 81, 210, 81, 81, 81, 81, 223, 82,
859  311, 82, 82, 82, 82, 214, 311, 311, 311, 311,
860  311, 311, 81, 213, 81, 81, 311, 311, 212, 82,
861  223, 82, 82, 189, 223, 189, 189, 189, 189, 189,
862  223, 311, 311, 211, 311, 213, 221, 311, 311, 311,
863  216, 225, 225, 225, 225, 225, 223, 311, 311, 215,
864  311, 217, 311, 221, 311, 311, 224, 199, 199, 199,
865  199, 199, 199, 199, 199, 199, 199, 311, 311, 311,
866 
867  227, 311, 311, 81, 81, 81, 311, 81, 81, 311,
868  82, 82, 82, 311, 82, 82, 311, 311, 311, 81,
869  311, 311, 81, 81, 81, 311, 82, 226, 311, 82,
870  82, 82, 311, 311, 311, 231, 228, 231, 213, 81,
871  232, 233, 234, 232, 232, 311, 82, 311, 311, 235,
872  229, 81, 230, 311, 81, 311, 311, 311, 82, 81,
873  213, 82, 81, 81, 311, 311, 82, 236, 311, 82,
874  82, 81, 311, 311, 81, 311, 266, 266, 82, 238,
875  311, 82, 241, 311, 239, 171, 311, 171, 240, 81,
876  172, 243, 244, 172, 172, 311, 82, 311, 311, 311,
877 
878  311, 246, 311, 81, 245, 232, 232, 232, 232, 232,
879  82, 232, 232, 232, 232, 232, 248, 232, 232, 232,
880  249, 250, 266, 247, 311, 258, 172, 172, 172, 259,
881  81, 232, 232, 232, 232, 232, 311, 82, 311, 311,
882  311, 311, 81, 311, 81, 81, 81, 81, 311, 82,
883  311, 82, 82, 82, 82, 311, 81, 251, 311, 311,
884  311, 311, 255, 82, 81, 311, 260, 81, 253, 311,
885  311, 82, 256, 311, 82, 254, 172, 172, 172, 172,
886  172, 311, 311, 262, 264, 311, 276, 276, 261, 265,
887  311, 311, 263, 311, 232, 232, 232, 232, 232, 232,
888 
889  232, 232, 232, 232, 311, 311, 311, 311, 311, 311,
890  81, 81, 81, 81, 81, 114, 311, 82, 82, 82,
891  82, 82, 311, 311, 311, 172, 172, 172, 172, 172,
892  311, 267, 276, 311, 311, 311, 272, 269, 273, 275,
893  81, 271, 311, 311, 311, 270, 311, 82, 81, 172,
894  172, 172, 172, 172, 277, 82, 311, 311, 231, 311,
895  231, 311, 81, 232, 232, 232, 232, 232, 311, 82,
896  311, 311, 311, 311, 81, 311, 81, 81, 81, 311,
897  311, 82, 311, 82, 82, 82, 278, 311, 81, 311,
898  311, 311, 311, 81, 311, 82, 81, 311, 81, 311,
899 
900  82, 311, 282, 82, 283, 82, 281, 311, 311, 311,
901  311, 311, 311, 81, 284, 81, 81, 81, 311, 311,
902  82, 311, 82, 82, 82, 286, 311, 81, 311, 311,
903  311, 311, 287, 311, 82, 311, 81, 81, 311, 311,
904  311, 81, 289, 82, 82, 290, 291, 292, 82, 293,
905  311, 311, 311, 311, 311, 311, 81, 81, 81, 81,
906  81, 311, 311, 82, 82, 82, 82, 82, 81, 311,
907  295, 311, 311, 311, 311, 82, 311, 81, 311, 81,
908  298, 311, 297, 311, 82, 296, 82, 81, 311, 311,
909  311, 311, 300, 311, 82, 311, 81, 81, 311, 81,
910 
911  311, 304, 301, 82, 82, 311, 82, 311, 311, 305,
912  311, 311, 311, 303, 311, 311, 81, 81, 306, 311,
913  81, 307, 311, 82, 82, 81, 311, 82, 81, 311,
914  311, 311, 82, 311, 309, 82, 311, 311, 311, 311,
915  311, 311, 308, 311, 311, 311, 310, 14, 14, 14,
916  14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
917  15, 70, 311, 70, 70, 70, 70, 70, 81, 81,
918  81, 81, 102, 102, 102, 102, 102, 129, 311, 129,
919  129, 129, 129, 129, 131, 311, 131, 131, 131, 131,
920  131, 132, 132, 200, 200, 279, 279, 285, 285, 13,
921 
922  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
923  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
924  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
925  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
926  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
927  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
928  311, 311
929  } ;
930 
931 static const flex_int16_t yy_chk[1263] =
932  { 0,
933  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
934  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
935  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
936  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
937  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
938  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
939  3, 3, 5, 5, 5, 5, 6, 6, 6, 6,
940  7, 7, 7, 7, 8, 8, 8, 8, 299, 20,
941  24, 294, 89, 89, 20, 24, 138, 288, 280, 268,
942  5, 20, 24, 32, 6, 9, 9, 9, 9, 32,
943 
944  9, 36, 257, 138, 138, 9, 32, 36, 21, 21,
945  21, 21, 21, 25, 36, 25, 25, 25, 25, 25,
946  9, 21, 9, 32, 9, 252, 21, 9, 89, 242,
947  192, 36, 237, 21, 9, 26, 9, 26, 26, 26,
948  26, 26, 146, 146, 218, 61, 9, 192, 214, 194,
949  192, 27, 191, 9, 35, 9, 11, 11, 11, 27,
950  35, 27, 27, 27, 27, 27, 11, 35, 61, 190,
951  11, 11, 11, 11, 11, 11, 12, 12, 12, 187,
952  35, 61, 141, 137, 136, 134, 12, 133, 146, 131,
953  12, 12, 12, 12, 12, 12, 22, 22, 22, 22,
954 
955  22, 29, 29, 31, 33, 135, 29, 130, 31, 22,
956  33, 29, 129, 31, 22, 81, 34, 33, 29, 37,
957  31, 22, 34, 70, 135, 37, 33, 38, 40, 34,
958  40, 135, 37, 38, 34, 39, 40, 37, 63, 41,
959  38, 39, 91, 40, 34, 41, 62, 91, 39, 60,
960  42, 43, 41, 33, 91, 37, 42, 43, 250, 250,
961  37, 41, 44, 42, 43, 39, 260, 260, 44, 59,
962  41, 64, 45, 49, 53, 44, 47, 48, 45, 49,
963  42, 46, 47, 39, 44, 45, 49, 46, 64, 47,
964  45, 49, 64, 30, 46, 43, 50, 28, 45, 46,
965 
966  65, 23, 50, 46, 250, 45, 47, 13, 0, 50,
967  0, 0, 260, 0, 49, 65, 86, 86, 86, 86,
968  86, 92, 45, 65, 0, 0, 92, 0, 0, 50,
969  46, 0, 65, 92, 0, 68, 65, 68, 68, 68,
970  68, 68, 0, 0, 87, 74, 50, 74, 74, 74,
971  74, 74, 87, 88, 87, 87, 87, 87, 87, 0,
972  0, 88, 0, 88, 88, 88, 88, 88, 96, 97,
973  102, 103, 104, 96, 97, 0, 102, 103, 104, 0,
974  96, 97, 105, 102, 103, 104, 106, 107, 105, 0,
975  0, 108, 106, 107, 0, 105, 104, 108, 0, 106,
976 
977  107, 0, 109, 112, 108, 110, 111, 0, 109, 112,
978  0, 110, 111, 0, 106, 109, 112, 0, 110, 111,
979  107, 108, 113, 109, 115, 0, 0, 0, 113, 0,
980  115, 105, 0, 110, 0, 113, 111, 115, 112, 108,
981  114, 195, 114, 0, 116, 114, 114, 114, 114, 114,
982  116, 0, 110, 0, 118, 119, 120, 116, 121, 115,
983  118, 119, 120, 195, 121, 221, 0, 118, 119, 120,
984  0, 121, 122, 195, 113, 123, 116, 124, 122, 116,
985  125, 123, 121, 124, 0, 122, 125, 221, 123, 126,
986  124, 120, 128, 125, 0, 126, 119, 221, 128, 0,
987 
988  139, 0, 126, 0, 0, 128, 0, 122, 139, 0,
989  124, 123, 132, 125, 132, 132, 132, 132, 132, 139,
990  140, 140, 140, 140, 140, 139, 139, 0, 123, 143,
991  143, 143, 143, 143, 144, 126, 144, 0, 160, 144,
992  144, 144, 144, 144, 160, 0, 161, 162, 163, 164,
993  165, 160, 161, 162, 163, 164, 165, 0, 0, 161,
994  162, 163, 164, 165, 160, 166, 167, 168, 169, 0,
995  169, 166, 167, 168, 0, 162, 169, 0, 166, 167,
996  168, 0, 170, 169, 164, 173, 174, 168, 170, 0,
997  175, 173, 174, 161, 0, 170, 175, 0, 173, 174,
998 
999  167, 0, 165, 175, 0, 166, 171, 171, 171, 171,
1000  171, 172, 172, 172, 172, 172, 177, 167, 178, 179,
1001  180, 181, 177, 173, 178, 179, 180, 181, 224, 177,
1002  0, 178, 179, 180, 181, 182, 183, 0, 184, 182,
1003  0, 0, 183, 181, 184, 182, 0, 0, 180, 183,
1004  224, 184, 182, 189, 196, 189, 189, 189, 189, 189,
1005  224, 0, 0, 177, 0, 181, 196, 0, 0, 0,
1006  183, 197, 197, 197, 197, 197, 196, 0, 0, 182,
1007  0, 184, 0, 196, 0, 0, 196, 198, 198, 198,
1008  198, 198, 199, 199, 199, 199, 199, 201, 202, 203,
1009 
1010  204, 205, 204, 201, 202, 203, 0, 205, 204, 0,
1011  201, 202, 203, 206, 205, 204, 207, 208, 210, 206,
1012  0, 0, 207, 208, 210, 0, 206, 201, 0, 207,
1013  208, 210, 0, 211, 0, 209, 206, 209, 207, 211,
1014  209, 209, 209, 209, 209, 212, 211, 0, 213, 210,
1015  206, 212, 208, 215, 213, 0, 216, 217, 212, 215,
1016  207, 213, 216, 217, 0, 226, 215, 212, 228, 216,
1017  217, 226, 0, 0, 228, 0, 266, 266, 226, 215,
1018  0, 228, 216, 229, 215, 227, 0, 227, 215, 229,
1019  227, 227, 227, 227, 227, 0, 229, 230, 0, 0,
1020 
1021  0, 229, 0, 230, 228, 231, 231, 231, 231, 231,
1022  230, 232, 232, 232, 232, 232, 233, 233, 233, 233,
1023  233, 234, 266, 230, 235, 243, 243, 243, 243, 243,
1024  235, 234, 234, 234, 234, 234, 236, 235, 238, 239,
1025  240, 241, 236, 0, 238, 239, 240, 241, 0, 236,
1026  246, 238, 239, 240, 241, 0, 246, 235, 245, 0,
1027  0, 247, 240, 246, 245, 0, 244, 247, 238, 0,
1028  0, 245, 241, 0, 247, 239, 244, 244, 244, 244,
1029  244, 0, 0, 246, 248, 0, 276, 276, 245, 249,
1030  0, 0, 247, 0, 248, 248, 248, 248, 248, 249,
1031 
1032  249, 249, 249, 249, 251, 253, 254, 255, 256, 0,
1033  251, 253, 254, 255, 256, 258, 0, 251, 253, 254,
1034  255, 256, 0, 0, 0, 258, 258, 258, 258, 258,
1035  0, 251, 276, 0, 261, 0, 255, 253, 256, 259,
1036  261, 254, 262, 0, 0, 253, 0, 261, 262, 259,
1037  259, 259, 259, 259, 261, 262, 263, 0, 264, 0,
1038  264, 0, 263, 264, 264, 264, 264, 264, 267, 263,
1039  269, 270, 271, 0, 267, 0, 269, 270, 271, 0,
1040  0, 267, 272, 269, 270, 271, 263, 273, 272, 0,
1041  277, 0, 278, 273, 0, 272, 277, 0, 278, 0,
1042 
1043  273, 0, 270, 277, 271, 278, 269, 281, 0, 282,
1044  283, 284, 0, 281, 272, 282, 283, 284, 0, 0,
1045  281, 286, 282, 283, 284, 277, 0, 286, 0, 0,
1046  287, 289, 278, 0, 286, 290, 287, 289, 0, 0,
1047  0, 290, 281, 287, 289, 282, 283, 286, 290, 287,
1048  291, 292, 293, 295, 296, 0, 291, 292, 293, 295,
1049  296, 0, 297, 291, 292, 293, 295, 296, 297, 0,
1050  290, 298, 0, 300, 0, 297, 0, 298, 0, 300,
1051  293, 301, 292, 0, 298, 291, 300, 301, 0, 0,
1052  303, 304, 297, 305, 301, 0, 303, 304, 0, 305,
1053 
1054  0, 301, 298, 303, 304, 0, 305, 0, 0, 303,
1055  306, 307, 0, 300, 308, 0, 306, 307, 304, 309,
1056  308, 305, 310, 306, 307, 309, 0, 308, 310, 0,
1057  0, 0, 309, 0, 308, 310, 0, 0, 0, 0,
1058  0, 0, 307, 0, 0, 0, 309, 312, 312, 312,
1059  312, 312, 312, 312, 313, 313, 313, 313, 313, 313,
1060  313, 314, 0, 314, 314, 314, 314, 314, 315, 315,
1061  315, 315, 316, 316, 316, 316, 316, 317, 0, 317,
1062  317, 317, 317, 317, 318, 0, 318, 318, 318, 318,
1063  318, 319, 319, 320, 320, 321, 321, 322, 322, 311,
1064 
1065  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1066  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1067  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1068  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1069  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1070  311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
1071  311, 311
1072  } ;
1073 
1076 
1077 extern int yy_flex_debug;
1079 
1080 /* The intent behind this definition is that it'll catch
1081  * any uses of REJECT which flex missed.
1082  */
1083 #define REJECT reject_used_but_not_detected
1084 #define yymore() yymore_used_but_not_detected
1085 #define YY_MORE_ADJ 0
1086 #define YY_RESTORE_YY_MORE_OFFSET
1087 char *yytext;
1088 #line 1 "scanner.l"
1089 #line 2 "scanner.l"
1090 
1091 // This scanner is based on the IEC standard 61131-3 which, among other things,
1092 // includes a BNF grammar for the Instruction List (IL) language. The
1093 // Statement List language (STL) by Siemens complies with the standards
1094 // defined by the IEC, although some modifications were made for compatibility
1095 // reasons. As a consequence, the general language structure specified by the
1096 // IEC is similar to the structure of STL, but there are differences between
1097 // their syntax and some language features (In general, Siemens implements more
1098 // language features in STL than described in the standard).
1099 
1100 // Conversion from yytext to expressions.
1106 
1107 // Disable warnings for generated file.
1108 #include <util/pragma_wsign_compare.def>
1109 #include <util/pragma_wnull_conversion.def>
1110 #include <util/pragma_wdeprecated_register.def>
1111 
1112 #include <algorithm>
1113 
1114 // Visual Studio
1115 #if defined _MSC_VER
1116 // Disable warning for signed/unsigned mismatch.
1117 #pragma warning(disable:4365)
1118 // Disable warning for macro re-definition: Flex conditionally defines
1119 // INT32_MAX et al. and thus they are set before library headers get to define
1120 // them.
1121 #pragma warning(disable:4005)
1122 #endif
1123 
1124 // Conditionally disable unistd header since it does not exist when building on
1125 // Windows.
1126 #ifdef _WIN32
1127 #define YY_NO_UNISTD_H
1128 static int isatty(int) { return 0; }
1129 #endif
1130 
1131 // Value inside of statement_list_parser.h.
1132 #define PARSER statement_list_parser
1134 // Sets the type of yystatement_listlval so that it can be used as the stack
1135 // index.
1136 #define YYSTYPE unsigned
1138 // For access to the stack and the parser itself.
1139 #include "statement_list_parser.h"
1140 
1141  // To get the token types from Bison.
1142 #include "statement_list_y.tab.h"
1143 
1144 // Add an empty expression to the stack, set yystatement_listlval to the
1145 // position of that element and set the source location to the new expression.
1146 #define loc() \
1147  { newstack(yystatement_listlval); \
1148  PARSER.set_source_location(parser_stack(yystatement_listlval)); }
1149 
1150 #ifdef STATEMENT_LIST_DEBUG
1151 extern int yystatement_listdebug;
1152 #endif
1154 {
1155 #ifdef STATEMENT_LIST_DEBUG
1156  yystatement_listdebug=1;
1157 #endif
1159  BEGIN(0);
1160 }
1161 #line 1161 "statement_list_lex.yy.cpp"
1162 #define YY_NO_INPUT 1
1164 #line 1164 "statement_list_lex.yy.cpp"
1165 
1166 #define INITIAL 0
1167 #define GRAMMAR 1
1168 #define TAG_NAME 2
1169 #define MODULE_NAME 3
1170 #define TAG_ATTRIBUTES 4
1171 #define VERSION_ANNOTATION 5
1173 #ifndef YY_NO_UNISTD_H
1174 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1175  * down here because we want the user's section 1 to have been scanned first.
1176  * The user has a chance to override it with an option.
1177  */
1178 #include <unistd.h>
1179 #endif
1180 
1181 #ifndef YY_EXTRA_TYPE
1182 #define YY_EXTRA_TYPE void *
1183 #endif
1184 
1185 static int yy_init_globals ( void );
1186 
1187 /* Accessor methods to globals.
1188  These are made visible to non-reentrant scanners for convenience. */
1189 
1190 int yylex_destroy ( void );
1191 
1192 int yyget_debug ( void );
1193 
1194 void yyset_debug ( int debug_flag );
1195 
1197 
1198 void yyset_extra ( YY_EXTRA_TYPE user_defined );
1199 
1200 FILE *yyget_in ( void );
1201 
1202 void yyset_in ( FILE * _in_str );
1203 
1204 FILE *yyget_out ( void );
1205 
1206 void yyset_out ( FILE * _out_str );
1207 
1208  int yyget_leng ( void );
1209 
1210 char *yyget_text ( void );
1211 
1212 int yyget_lineno ( void );
1213 
1214 void yyset_lineno ( int _line_number );
1215 
1216 /* Macros after this point can all be overridden by user definitions in
1217  * section 1.
1218  */
1219 
1220 #ifndef YY_SKIP_YYWRAP
1221 #ifdef __cplusplus
1222 extern "C" int yywrap ( void );
1223 #else
1224 extern int yywrap ( void );
1225 #endif
1226 #endif
1227 
1228 #ifndef YY_NO_UNPUT
1229 
1230 #endif
1231 
1232 #ifndef yytext_ptr
1233 static void yy_flex_strncpy ( char *, const char *, int );
1234 #endif
1235 
1236 #ifdef YY_NEED_STRLEN
1237 static int yy_flex_strlen ( const char * );
1238 #endif
1239 
1240 #ifndef YY_NO_INPUT
1241 #ifdef __cplusplus
1242 static int yyinput ( void );
1243 #else
1244 static int input ( void );
1245 #endif
1246 
1247 #endif
1248 
1249 /* Amount of stuff to slurp up with each read. */
1250 #ifndef YY_READ_BUF_SIZE
1251 #ifdef __ia64__
1252 /* On IA-64, the buffer size is 16k, not 8k */
1253 #define YY_READ_BUF_SIZE 16384
1254 #else
1255 #define YY_READ_BUF_SIZE 8192
1256 #endif /* __ia64__ */
1257 #endif
1258 
1259 /* Copy whatever the last rule matched to the standard output. */
1260 #ifndef ECHO
1261 /* This used to be an fputs(), but since the string might contain NUL's,
1262  * we now use fwrite().
1263  */
1264 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1265 #endif
1266 
1267 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1268  * is returned in "result".
1269  */
1270 #ifndef YY_INPUT
1271 #define YY_INPUT(buf,result,max_size) \
1272  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1273  { \
1274  int c = '*'; \
1275  int n; \
1276  for ( n = 0; n < max_size && \
1277  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1278  buf[n] = (char) c; \
1279  if ( c == '\n' ) \
1280  buf[n++] = (char) c; \
1281  if ( c == EOF && ferror( yyin ) ) \
1282  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1283  result = n; \
1284  } \
1285  else \
1286  { \
1287  errno=0; \
1288  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1289  { \
1290  if( errno != EINTR) \
1291  { \
1292  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1293  break; \
1294  } \
1295  errno=0; \
1296  clearerr(yyin); \
1297  } \
1298  }\
1299 \
1300 
1301 #endif
1302 
1303 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1304  * we don't want an extra ';' after the "return" because that will cause
1305  * some compilers to complain about unreachable statements.
1306  */
1307 #ifndef yyterminate
1308 #define yyterminate() return YY_NULL
1309 #endif
1310 
1311 /* Number of entries by which start-condition stack grows. */
1312 #ifndef YY_START_STACK_INCR
1313 #define YY_START_STACK_INCR 25
1314 #endif
1315 
1316 /* Report a fatal error. */
1317 #ifndef YY_FATAL_ERROR
1318 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1319 #endif
1320 
1321 /* end tables serialization structures and prototypes */
1322 
1323 /* Default declaration of generated scanner - a define so the user can
1324  * easily add parameters.
1325  */
1326 #ifndef YY_DECL
1327 #define YY_DECL_IS_OURS 1
1329 extern int yylex (void);
1330 
1331 #define YY_DECL int yylex (void)
1332 #endif /* !YY_DECL */
1333 
1334 /* Code executed at the beginning of each rule, after yytext and yyleng
1335  * have been set up.
1336  */
1337 #ifndef YY_USER_ACTION
1338 #define YY_USER_ACTION
1339 #endif
1340 
1341 /* Code executed at the end of each rule. */
1342 #ifndef YY_BREAK
1343 #define YY_BREAK /*LINTED*/break;
1344 #endif
1345 
1346 #define YY_RULE_SETUP \
1347  YY_USER_ACTION
1348 
1352 {
1353  yy_state_type yy_current_state;
1354  char *yy_cp, *yy_bp;
1355  int yy_act;
1356 
1357  if ( !(yy_init) )
1358  {
1359  (yy_init) = 1;
1360 
1361 #ifdef YY_USER_INIT
1362  YY_USER_INIT;
1363 #endif
1364 
1365  if ( ! (yy_start) )
1366  (yy_start) = 1; /* first start state */
1367 
1368  if ( ! yyin )
1369  yyin = stdin;
1370 
1371  if ( ! yyout )
1372  yyout = stdout;
1373 
1374  if ( ! YY_CURRENT_BUFFER ) {
1378  }
1379 
1381  }
1382 
1383  {
1384 #line 84 "scanner.l"
1385 
1386 
1387 #line 1387 "statement_list_lex.yy.cpp"
1388 
1389  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1390  {
1391  yy_cp = (yy_c_buf_p);
1392 
1393  /* Support of yytext. */
1394  *yy_cp = (yy_hold_char);
1395 
1396  /* yy_bp points to the position in yy_ch_buf of the start of
1397  * the current run.
1398  */
1399  yy_bp = yy_cp;
1400 
1401  yy_current_state = (yy_start);
1402 yy_match:
1403  do
1404  {
1405  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1406  if ( yy_accept[yy_current_state] )
1407  {
1408  (yy_last_accepting_state) = yy_current_state;
1409  (yy_last_accepting_cpos) = yy_cp;
1410  }
1411  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1412  {
1413  yy_current_state = (int) yy_def[yy_current_state];
1414  if ( yy_current_state >= 312 )
1415  yy_c = yy_meta[yy_c];
1416  }
1417  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1418  ++yy_cp;
1419  }
1420  while ( yy_base[yy_current_state] != 1200 );
1421 
1422 yy_find_action:
1423  yy_act = yy_accept[yy_current_state];
1424  if ( yy_act == 0 )
1425  { /* have to back up */
1426  yy_cp = (yy_last_accepting_cpos);
1427  yy_current_state = (yy_last_accepting_state);
1428  yy_act = yy_accept[yy_current_state];
1429  }
1430 
1432 
1433 do_action: /* This label is used only to access EOF actions. */
1434 
1435  switch ( yy_act )
1436  { /* beginning of action switch */
1437  case 0: /* must back up */
1438  /* undo the effects of YY_DO_BEFORE_ACTION */
1439  *yy_cp = (yy_hold_char);
1440  yy_cp = (yy_last_accepting_cpos);
1441  yy_current_state = (yy_last_accepting_state);
1442  goto yy_find_action;
1443 
1444 case 1:
1445 /* rule 1 can match eol */
1447 #line 86 "scanner.l"
1448 { BEGIN(GRAMMAR);
1449  yyless(0); /* start again with this character */
1450  }
1451  YY_BREAK
1452 
1453 case 2:
1455 #line 90 "scanner.l"
1456 { loc(); return yytext[0]; }
1457  YY_BREAK
1458 case 3:
1459 /* rule 3 can match eol */
1461 #line 91 "scanner.l"
1462 ;
1463  YY_BREAK
1464 case 4:
1466 #line 92 "scanner.l"
1467 { loc(); return TOK_ASSIGNMENT; }
1468  YY_BREAK
1469 case 5:
1471 #line 93 "scanner.l"
1472 { loc(); BEGIN(TAG_NAME); return TOK_TAG; }
1473  YY_BREAK
1474 case 6:
1476 #line 94 "scanner.l"
1477 { loc(); return TOK_BEGIN; }
1478  YY_BREAK
1479 case 7:
1481 #line 95 "scanner.l"
1482 { loc(); BEGIN(VERSION_ANNOTATION); return TOK_VERSION; }
1483  YY_BREAK
1484 case 8:
1486 #line 96 "scanner.l"
1487 { loc(); BEGIN(MODULE_NAME); return TOK_FUNCTION_BLOCK; }
1488  YY_BREAK
1489 case 9:
1491 #line 97 "scanner.l"
1492 { loc(); return TOK_END_FUNCTION_BLOCK; }
1493  YY_BREAK
1494 case 10:
1496 #line 98 "scanner.l"
1497 { loc(); BEGIN(MODULE_NAME); return TOK_FUNCTION; }
1498  YY_BREAK
1499 case 11:
1501 #line 99 "scanner.l"
1502 { loc(); return TOK_END_FUNCTION; }
1503  YY_BREAK
1504 case 12:
1506 #line 100 "scanner.l"
1507 { loc(); return TOK_VAR_INPUT; }
1508  YY_BREAK
1509 case 13:
1511 #line 101 "scanner.l"
1512 { loc(); return TOK_VAR_OUTPUT; }
1513  YY_BREAK
1514 case 14:
1516 #line 102 "scanner.l"
1517 { loc(); return TOK_VAR_INOUT; }
1518  YY_BREAK
1519 case 15:
1521 #line 103 "scanner.l"
1522 { loc(); return TOK_VAR_STATIC; }
1523  YY_BREAK
1524 case 16:
1526 #line 104 "scanner.l"
1527 { loc(); return TOK_VAR_CONSTANT; }
1528  YY_BREAK
1529 case 17:
1531 #line 105 "scanner.l"
1532 { loc(); return TOK_VAR_TEMP; }
1533  YY_BREAK
1534 case 18:
1536 #line 106 "scanner.l"
1537 { loc(); return TOK_END_VAR; }
1538  YY_BREAK
1539 case 19:
1541 #line 107 "scanner.l"
1542 { loc(); return TOK_NETWORK; }
1543  YY_BREAK
1544 case 20:
1546 #line 108 "scanner.l"
1547 { loc(); return TOK_TITLE; }
1548  YY_BREAK
1549 case 21:
1551 #line 109 "scanner.l"
1552 { loc(); return TOK_INT; }
1553  YY_BREAK
1554 case 22:
1556 #line 110 "scanner.l"
1557 { loc(); return TOK_DINT; }
1558  YY_BREAK
1559 case 23:
1561 #line 111 "scanner.l"
1562 { loc(); return TOK_BOOL; }
1563  YY_BREAK
1564 case 24:
1566 #line 112 "scanner.l"
1567 { loc(); return TOK_REAL; }
1568  YY_BREAK
1569 case 25:
1571 #line 113 "scanner.l"
1572 { loc(); return TOK_VOID; }
1573  YY_BREAK
1574 case 26:
1576 #line 114 "scanner.l"
1577 { loc(); return TOK_LOAD; }
1578  YY_BREAK
1579 case 27:
1581 #line 115 "scanner.l"
1582 { loc(); return TOK_TRANSFER; }
1583  YY_BREAK
1584 case 28:
1586 #line 116 "scanner.l"
1587 { loc(); BEGIN(MODULE_NAME); return TOK_CALL; }
1588  YY_BREAK
1589 case 29:
1591 #line 117 "scanner.l"
1592 { loc(); return TOK_NOP; }
1593  YY_BREAK
1594 case 30:
1596 #line 118 "scanner.l"
1597 { loc(); return TOK_SET_RLO; }
1598  YY_BREAK
1599 case 31:
1601 #line 119 "scanner.l"
1602 { loc(); return TOK_CLR_RLO; }
1603  YY_BREAK
1604 case 32:
1606 #line 120 "scanner.l"
1607 { loc(); return TOK_SET; }
1608  YY_BREAK
1609 case 33:
1611 #line 121 "scanner.l"
1612 { loc(); return TOK_RESET; }
1613  YY_BREAK
1614 case 34:
1616 #line 122 "scanner.l"
1617 { loc(); return TOK_NOT; }
1618  YY_BREAK
1619 case 35:
1621 #line 123 "scanner.l"
1622 { loc(); return TOK_AND; }
1623  YY_BREAK
1624 case 36:
1626 #line 124 "scanner.l"
1627 { loc(); return TOK_AND_NOT; }
1628  YY_BREAK
1629 case 37:
1631 #line 125 "scanner.l"
1632 { loc(); return TOK_OR; }
1633  YY_BREAK
1634 case 38:
1636 #line 126 "scanner.l"
1637 { loc(); return TOK_OR_NOT; }
1638  YY_BREAK
1639 case 39:
1641 #line 127 "scanner.l"
1642 { loc(); return TOK_XOR; }
1643  YY_BREAK
1644 case 40:
1646 #line 128 "scanner.l"
1647 { loc(); return TOK_XOR_NOT; }
1648  YY_BREAK
1649 case 41:
1651 #line 129 "scanner.l"
1652 { loc(); return TOK_AND_NESTED; }
1653  YY_BREAK
1654 case 42:
1656 #line 130 "scanner.l"
1657 { loc(); return TOK_AND_NOT_NESTED; }
1658  YY_BREAK
1659 case 43:
1661 #line 131 "scanner.l"
1662 { loc(); return TOK_OR_NESTED; }
1663  YY_BREAK
1664 case 44:
1666 #line 132 "scanner.l"
1667 { loc(); return TOK_OR_NOT_NESTED; }
1668  YY_BREAK
1669 case 45:
1671 #line 133 "scanner.l"
1672 { loc(); return TOK_XOR_NESTED; }
1673  YY_BREAK
1674 case 46:
1676 #line 134 "scanner.l"
1677 { loc(); return TOK_XOR_NOT_NESTED; }
1678  YY_BREAK
1679 case 47:
1681 #line 135 "scanner.l"
1682 { loc(); return TOK_NESTING_CLOSED; }
1683  YY_BREAK
1684 case 48:
1686 #line 136 "scanner.l"
1687 { loc(); return TOK_ASSIGN; }
1688  YY_BREAK
1689 case 49:
1691 #line 137 "scanner.l"
1692 { loc(); return TOK_CONST_ADD; }
1693  YY_BREAK
1694 case 50:
1696 #line 138 "scanner.l"
1697 { loc(); return TOK_ACCU_INT_ADD; }
1698  YY_BREAK
1699 case 51:
1701 #line 139 "scanner.l"
1702 { loc(); return TOK_ACCU_INT_SUB; }
1703  YY_BREAK
1704 case 52:
1706 #line 140 "scanner.l"
1707 { loc(); return TOK_ACCU_INT_MUL; }
1708  YY_BREAK
1709 case 53:
1711 #line 141 "scanner.l"
1712 { loc(); return TOK_ACCU_INT_DIV; }
1713  YY_BREAK
1714 case 54:
1716 #line 142 "scanner.l"
1717 { loc(); return TOK_ACCU_INT_EQ; }
1718  YY_BREAK
1719 case 55:
1721 #line 143 "scanner.l"
1722 { loc(); return TOK_ACCU_INT_NEQ; }
1723  YY_BREAK
1724 case 56:
1726 #line 144 "scanner.l"
1727 { loc(); return TOK_ACCU_INT_GT; }
1728  YY_BREAK
1729 case 57:
1731 #line 145 "scanner.l"
1732 { loc(); return TOK_ACCU_INT_LT; }
1733  YY_BREAK
1734 case 58:
1736 #line 146 "scanner.l"
1737 { loc(); return TOK_ACCU_INT_GTE; }
1738  YY_BREAK
1739 case 59:
1741 #line 147 "scanner.l"
1742 { loc(); return TOK_ACCU_INT_LTE; }
1743  YY_BREAK
1744 case 60:
1746 #line 148 "scanner.l"
1747 { loc(); return TOK_ACCU_REAL_ADD; }
1748  YY_BREAK
1749 case 61:
1751 #line 149 "scanner.l"
1752 { loc(); return TOK_ACCU_REAL_SUB; }
1753  YY_BREAK
1754 case 62:
1756 #line 150 "scanner.l"
1757 { loc(); return TOK_ACCU_REAL_MUL; }
1758  YY_BREAK
1759 case 63:
1761 #line 151 "scanner.l"
1762 { loc(); return TOK_ACCU_REAL_DIV; }
1763  YY_BREAK
1764 case 64:
1766 #line 152 "scanner.l"
1767 { loc(); return TOK_ACCU_REAL_EQ; }
1768  YY_BREAK
1769 case 65:
1771 #line 153 "scanner.l"
1772 { loc(); return TOK_ACCU_REAL_NEQ; }
1773  YY_BREAK
1774 case 66:
1776 #line 154 "scanner.l"
1777 { loc(); return TOK_ACCU_REAL_GT; }
1778  YY_BREAK
1779 case 67:
1781 #line 155 "scanner.l"
1782 { loc(); return TOK_ACCU_REAL_LT; }
1783  YY_BREAK
1784 case 68:
1786 #line 156 "scanner.l"
1787 { loc(); return TOK_ACCU_REAL_GTE; }
1788  YY_BREAK
1789 case 69:
1791 #line 157 "scanner.l"
1792 { loc(); return TOK_ACCU_REAL_LTE; }
1793  YY_BREAK
1794 case 70:
1796 #line 158 "scanner.l"
1797 { loc(); return TOK_ACCU_DINT_ADD; }
1798  YY_BREAK
1799 case 71:
1801 #line 159 "scanner.l"
1802 { loc(); return TOK_ACCU_DINT_SUB; }
1803  YY_BREAK
1804 case 72:
1806 #line 160 "scanner.l"
1807 { loc(); return TOK_ACCU_DINT_MUL; }
1808  YY_BREAK
1809 case 73:
1811 #line 161 "scanner.l"
1812 { loc(); return TOK_ACCU_DINT_DIV; }
1813  YY_BREAK
1814 case 74:
1816 #line 162 "scanner.l"
1817 { loc(); return TOK_ACCU_DINT_EQ; }
1818  YY_BREAK
1819 case 75:
1821 #line 163 "scanner.l"
1822 { loc(); return TOK_ACCU_DINT_NEQ; }
1823  YY_BREAK
1824 case 76:
1826 #line 164 "scanner.l"
1827 { loc(); return TOK_ACCU_DINT_GT; }
1828  YY_BREAK
1829 case 77:
1831 #line 165 "scanner.l"
1832 { loc(); return TOK_ACCU_DINT_LT; }
1833  YY_BREAK
1834 case 78:
1836 #line 166 "scanner.l"
1837 { loc(); return TOK_ACCU_DINT_GTE; }
1838  YY_BREAK
1839 case 79:
1841 #line 167 "scanner.l"
1842 { loc(); return TOK_ACCU_DINT_LTE; }
1843  YY_BREAK
1844 case 80:
1846 #line 169 "scanner.l"
1847 {
1851  PARSER.set_source_location(
1853  return TOK_INT_LITERAL;
1854  }
1855  YY_BREAK
1856 case 81:
1858 #line 177 "scanner.l"
1859 {
1863  PARSER.set_source_location(
1865  return TOK_INT_LITERAL;
1866  }
1867  YY_BREAK
1868 case 82:
1870 #line 186 "scanner.l"
1871 {
1875  PARSER.set_source_location(
1877  return TOK_INT_LITERAL;
1878  }
1879  YY_BREAK
1880 case 83:
1882 #line 195 "scanner.l"
1883 {
1887  PARSER.set_source_location(
1889  return TOK_INT_LITERAL;
1890  }
1891  YY_BREAK
1892 case 84:
1894 #line 203 "scanner.l"
1895 {
1899  PARSER.set_source_location(
1901  return TOK_INT_LITERAL;
1902  }
1903  YY_BREAK
1904 case 85:
1906 #line 212 "scanner.l"
1907 {
1911  PARSER.set_source_location(
1913  return TOK_INT_LITERAL;
1914  }
1915  YY_BREAK
1916 case 86:
1918 #line 221 "scanner.l"
1919 {
1923  PARSER.set_source_location(
1925  return TOK_INT_LITERAL;
1926  }
1927  YY_BREAK
1928 case 87:
1930 #line 230 "scanner.l"
1931 {
1935  PARSER.set_source_location(
1937  return TOK_INT_LITERAL;
1938  }
1939  YY_BREAK
1940 case 88:
1942 #line 239 "scanner.l"
1943 {
1947  PARSER.set_source_location(
1949  return TOK_INT_LITERAL;
1950  }
1951  YY_BREAK
1952 case 89:
1954 #line 248 "scanner.l"
1955 {
1959  PARSER.set_source_location(
1961  return TOK_BOOL_LITERAL;
1962  }
1963  YY_BREAK
1964 case 90:
1966 #line 257 "scanner.l"
1967 {
1971  PARSER.set_source_location(
1973  return TOK_REAL_LITERAL;
1974  }
1975  YY_BREAK
1976 case 91:
1978 #line 266 "scanner.l"
1979 {
1983  PARSER.set_source_location(
1985  return TOK_IDENTIFIER;
1986  }
1987  YY_BREAK
1988 case 92:
1990 #line 275 "scanner.l"
1991 {
1995  PARSER.set_source_location(
1997  return TOK_LABEL;
1998  }
1999  YY_BREAK
2000 
2001 
2002 case 93:
2003 /* rule 93 can match eol */
2005 #line 286 "scanner.l"
2006 ;
2007  YY_BREAK
2008 case 94:
2010 #line 287 "scanner.l"
2011 {
2015  PARSER.set_source_location(
2018  return TOK_IDENTIFIER;
2019  }
2020  YY_BREAK
2021 case 95:
2023 #line 296 "scanner.l"
2024 { loc(); BEGIN(GRAMMAR); return TOK_END_TAG; }
2025  YY_BREAK
2026 
2027 
2028 case 96:
2029 /* rule 96 can match eol */
2031 #line 300 "scanner.l"
2032 ;
2033  YY_BREAK
2034 case 97:
2036 #line 301 "scanner.l"
2037 {
2039  std::string str{yytext};
2040  str.erase(
2041  std::remove(begin(str), end(str), '\"' ),
2042  end(str));
2044  convert_identifier(str);
2045  PARSER.set_source_location(
2047  BEGIN(GRAMMAR);
2048  return TOK_IDENTIFIER;
2049  }
2050  YY_BREAK
2051 
2052 
2053 case 98:
2055 #line 317 "scanner.l"
2056 ;
2057  YY_BREAK
2058 case 99:
2060 #line 318 "scanner.l"
2061 ;
2062  YY_BREAK
2063 case 100:
2065 #line 319 "scanner.l"
2066 ;
2067  YY_BREAK
2068 case 101:
2070 #line 320 "scanner.l"
2071 { loc(); return TOK_INT; }
2072  YY_BREAK
2073 case 102:
2075 #line 321 "scanner.l"
2076 { loc(); return TOK_DINT; }
2077  YY_BREAK
2078 case 103:
2080 #line 322 "scanner.l"
2081 { loc(); return TOK_BOOL; }
2082  YY_BREAK
2083 case 104:
2085 #line 323 "scanner.l"
2086 { loc(); return TOK_REAL; }
2087  YY_BREAK
2088 case 105:
2089 /* rule 105 can match eol */
2091 #line 324 "scanner.l"
2092 { BEGIN(TAG_NAME); }
2093  YY_BREAK
2094 
2095 
2096 case 106:
2098 #line 328 "scanner.l"
2099 ;
2100  YY_BREAK
2101 case 107:
2103 #line 329 "scanner.l"
2104 { loc(); return yytext[0]; }
2105  YY_BREAK
2106 case 108:
2108 #line 330 "scanner.l"
2109 {
2113  PARSER.set_source_location(
2115  return TOK_VERSION_VALUE;
2116  }
2117  YY_BREAK
2118 case 109:
2119 /* rule 109 can match eol */
2121 #line 338 "scanner.l"
2122 { BEGIN(GRAMMAR); }
2123  YY_BREAK
2124 
2125 case 110:
2127 #line 340 "scanner.l"
2128 ECHO;
2129  YY_BREAK
2130 #line 2130 "statement_list_lex.yy.cpp"
2131 case YY_STATE_EOF(INITIAL):
2132 case YY_STATE_EOF(GRAMMAR):
2133 case YY_STATE_EOF(TAG_NAME):
2137  yyterminate();
2138 
2139  case YY_END_OF_BUFFER:
2140  {
2141  /* Amount of text matched not including the EOB char. */
2142  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2143 
2144  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2145  *yy_cp = (yy_hold_char);
2147 
2148  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2149  {
2150  /* We're scanning a new file or input source. It's
2151  * possible that this happened because the user
2152  * just pointed yyin at a new source and called
2153  * yylex(). If so, then we have to assure
2154  * consistency between YY_CURRENT_BUFFER and our
2155  * globals. Here is the right place to do so, because
2156  * this is the first action (other than possibly a
2157  * back-up) that will match for the new input source.
2158  */
2159  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2160  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2161  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2162  }
2163 
2164  /* Note that here we test for yy_c_buf_p "<=" to the position
2165  * of the first EOB in the buffer, since yy_c_buf_p will
2166  * already have been incremented past the NUL character
2167  * (since all states make transitions on EOB to the
2168  * end-of-buffer state). Contrast this with the test
2169  * in input().
2170  */
2171  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2172  { /* This was really a NUL. */
2173  yy_state_type yy_next_state;
2174 
2175  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2176 
2177  yy_current_state = yy_get_previous_state( );
2178 
2179  /* Okay, we're now positioned to make the NUL
2180  * transition. We couldn't have
2181  * yy_get_previous_state() go ahead and do it
2182  * for us because it doesn't know how to deal
2183  * with the possibility of jamming (and we don't
2184  * want to build jamming into it because then it
2185  * will run more slowly).
2186  */
2187 
2188  yy_next_state = yy_try_NUL_trans( yy_current_state );
2189 
2190  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2191 
2192  if ( yy_next_state )
2193  {
2194  /* Consume the NUL. */
2195  yy_cp = ++(yy_c_buf_p);
2196  yy_current_state = yy_next_state;
2197  goto yy_match;
2198  }
2199 
2200  else
2201  {
2202  yy_cp = (yy_c_buf_p);
2203  goto yy_find_action;
2204  }
2205  }
2206 
2207  else switch ( yy_get_next_buffer( ) )
2208  {
2209  case EOB_ACT_END_OF_FILE:
2210  {
2212 
2213  if ( yywrap( ) )
2214  {
2215  /* Note: because we've taken care in
2216  * yy_get_next_buffer() to have set up
2217  * yytext, we can now set up
2218  * yy_c_buf_p so that if some total
2219  * hoser (like flex itself) wants to
2220  * call the scanner after we return the
2221  * YY_NULL, it'll still work - another
2222  * YY_NULL will get returned.
2223  */
2225 
2226  yy_act = YY_STATE_EOF(YY_START);
2227  goto do_action;
2228  }
2229 
2230  else
2231  {
2232  if ( ! (yy_did_buffer_switch_on_eof) )
2233  YY_NEW_FILE;
2234  }
2235  break;
2236  }
2237 
2238  case EOB_ACT_CONTINUE_SCAN:
2239  (yy_c_buf_p) =
2240  (yytext_ptr) + yy_amount_of_matched_text;
2241 
2242  yy_current_state = yy_get_previous_state( );
2243 
2244  yy_cp = (yy_c_buf_p);
2245  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2246  goto yy_match;
2247 
2248  case EOB_ACT_LAST_MATCH:
2249  (yy_c_buf_p) =
2250  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2251 
2252  yy_current_state = yy_get_previous_state( );
2253 
2254  yy_cp = (yy_c_buf_p);
2255  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2256  goto yy_find_action;
2257  }
2258  break;
2259  }
2260 
2261  default:
2263  "fatal flex scanner internal error--no action found" );
2264  } /* end of action switch */
2265  } /* end of scanning one token */
2266  } /* end of user's declarations */
2267 } /* end of yylex */
2268 
2269 /* yy_get_next_buffer - try to read in a new buffer
2270  *
2271  * Returns a code representing an action:
2272  * EOB_ACT_LAST_MATCH -
2273  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2274  * EOB_ACT_END_OF_FILE - end of file
2275  */
2276 static int yy_get_next_buffer (void)
2277 {
2278  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2279  char *source = (yytext_ptr);
2280  int number_to_move, i;
2281  int ret_val;
2282 
2283  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2285  "fatal flex scanner internal error--end of buffer missed" );
2286 
2287  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2288  { /* Don't try to fill the buffer, so this is an EOF. */
2289  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2290  {
2291  /* We matched a single character, the EOB, so
2292  * treat this as a final EOF.
2293  */
2294  return EOB_ACT_END_OF_FILE;
2295  }
2296 
2297  else
2298  {
2299  /* We matched some text prior to the EOB, first
2300  * process it.
2301  */
2302  return EOB_ACT_LAST_MATCH;
2303  }
2304  }
2305 
2306  /* Try to read more data. */
2307 
2308  /* First move last chars to start of buffer. */
2309  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
2310 
2311  for ( i = 0; i < number_to_move; ++i )
2312  *(dest++) = *(source++);
2313 
2314  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2315  /* don't do the read, it's not guaranteed to return an EOF,
2316  * just force an EOF
2317  */
2318  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2319 
2320  else
2321  {
2322  int num_to_read =
2323  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2324 
2325  while ( num_to_read <= 0 )
2326  { /* Not enough room in the buffer - grow it. */
2327 
2328  /* just a shorter name for the current buffer */
2330 
2331  int yy_c_buf_p_offset =
2332  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2333 
2334  if ( b->yy_is_our_buffer )
2335  {
2336  int new_size = b->yy_buf_size * 2;
2337 
2338  if ( new_size <= 0 )
2339  b->yy_buf_size += b->yy_buf_size / 8;
2340  else
2341  b->yy_buf_size *= 2;
2342 
2343  b->yy_ch_buf = (char *)
2344  /* Include room in for 2 EOB chars. */
2345  yyrealloc( (void *) b->yy_ch_buf,
2346  (yy_size_t) (b->yy_buf_size + 2) );
2347  }
2348  else
2349  /* Can't grow it, we don't own it. */
2350  b->yy_ch_buf = NULL;
2351 
2352  if ( ! b->yy_ch_buf )
2354  "fatal error - scanner input buffer overflow" );
2355 
2356  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2357 
2358  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2359  number_to_move - 1;
2360 
2361  }
2362 
2363  if ( num_to_read > YY_READ_BUF_SIZE )
2364  num_to_read = YY_READ_BUF_SIZE;
2365 
2366  /* Read in more data. */
2367  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2368  (yy_n_chars), num_to_read );
2369 
2370  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2371  }
2372 
2373  if ( (yy_n_chars) == 0 )
2374  {
2375  if ( number_to_move == YY_MORE_ADJ )
2376  {
2377  ret_val = EOB_ACT_END_OF_FILE;
2378  yyrestart( yyin );
2379  }
2380 
2381  else
2382  {
2383  ret_val = EOB_ACT_LAST_MATCH;
2384  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2386  }
2387  }
2388 
2389  else
2390  ret_val = EOB_ACT_CONTINUE_SCAN;
2391 
2392  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2393  /* Extend the array by 50%, plus the number we really need. */
2394  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2395  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
2396  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
2397  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2398  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2399  /* "- 2" to take care of EOB's */
2400  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
2401  }
2402 
2403  (yy_n_chars) += number_to_move;
2406 
2407  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2408 
2409  return ret_val;
2410 }
2411 
2412 /* yy_get_previous_state - get the state just before the EOB char was reached */
2413 
2415 {
2416  yy_state_type yy_current_state;
2417  char *yy_cp;
2418 
2419  yy_current_state = (yy_start);
2420 
2421  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2422  {
2423  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2424  if ( yy_accept[yy_current_state] )
2425  {
2426  (yy_last_accepting_state) = yy_current_state;
2427  (yy_last_accepting_cpos) = yy_cp;
2428  }
2429  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2430  {
2431  yy_current_state = (int) yy_def[yy_current_state];
2432  if ( yy_current_state >= 312 )
2433  yy_c = yy_meta[yy_c];
2434  }
2435  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2436  }
2437 
2438  return yy_current_state;
2439 }
2440 
2441 /* yy_try_NUL_trans - try to make a transition on the NUL character
2442  *
2443  * synopsis
2444  * next_state = yy_try_NUL_trans( current_state );
2445  */
2446  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2447 {
2448  int yy_is_jam;
2449  char *yy_cp = (yy_c_buf_p);
2450 
2451  YY_CHAR yy_c = 1;
2452  if ( yy_accept[yy_current_state] )
2453  {
2454  (yy_last_accepting_state) = yy_current_state;
2455  (yy_last_accepting_cpos) = yy_cp;
2456  }
2457  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2458  {
2459  yy_current_state = (int) yy_def[yy_current_state];
2460  if ( yy_current_state >= 312 )
2461  yy_c = yy_meta[yy_c];
2462  }
2463  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2464  yy_is_jam = (yy_current_state == 311);
2465 
2466  return yy_is_jam ? 0 : yy_current_state;
2467 }
2468 
2469 #ifndef YY_NO_UNPUT
2470 
2471 #endif
2472 
2473 #ifndef YY_NO_INPUT
2474 #ifdef __cplusplus
2475  static int yyinput (void)
2476 #else
2477  static int input (void)
2478 #endif
2479 
2480 {
2481  int c;
2482 
2483  *(yy_c_buf_p) = (yy_hold_char);
2484 
2485  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2486  {
2487  /* yy_c_buf_p now points to the character we want to return.
2488  * If this occurs *before* the EOB characters, then it's a
2489  * valid NUL; if not, then we've hit the end of the buffer.
2490  */
2491  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2492  /* This was really a NUL. */
2493  *(yy_c_buf_p) = '\0';
2494 
2495  else
2496  { /* need more input */
2497  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
2498  ++(yy_c_buf_p);
2499 
2500  switch ( yy_get_next_buffer( ) )
2501  {
2502  case EOB_ACT_LAST_MATCH:
2503  /* This happens because yy_g_n_b()
2504  * sees that we've accumulated a
2505  * token and flags that we need to
2506  * try matching the token before
2507  * proceeding. But for input(),
2508  * there's no matching to consider.
2509  * So convert the EOB_ACT_LAST_MATCH
2510  * to EOB_ACT_END_OF_FILE.
2511  */
2512 
2513  /* Reset buffer status. */
2514  yyrestart( yyin );
2515 
2516  /*FALLTHROUGH*/
2517 
2518  case EOB_ACT_END_OF_FILE:
2519  {
2520  if ( yywrap( ) )
2521  return 0;
2522 
2523  if ( ! (yy_did_buffer_switch_on_eof) )
2524  YY_NEW_FILE;
2525 #ifdef __cplusplus
2526  return yyinput();
2527 #else
2528  return input();
2529 #endif
2530  }
2531 
2532  case EOB_ACT_CONTINUE_SCAN:
2533  (yy_c_buf_p) = (yytext_ptr) + offset;
2534  break;
2535  }
2536  }
2537  }
2538 
2539  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2540  *(yy_c_buf_p) = '\0'; /* preserve yytext */
2541  (yy_hold_char) = *++(yy_c_buf_p);
2542 
2543  return c;
2544 }
2545 #endif /* ifndef YY_NO_INPUT */
2546 
2552  void yyrestart (FILE * input_file )
2553 {
2554 
2555  if ( ! YY_CURRENT_BUFFER ){
2559  }
2560 
2561  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
2563 }
2564 
2570 {
2571 
2572  /* TODO. We should be able to replace this entire function body
2573  * with
2574  * yypop_buffer_state();
2575  * yypush_buffer_state(new_buffer);
2576  */
2578  if ( YY_CURRENT_BUFFER == new_buffer )
2579  return;
2580 
2581  if ( YY_CURRENT_BUFFER )
2582  {
2583  /* Flush out information for old buffer. */
2584  *(yy_c_buf_p) = (yy_hold_char);
2585  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2586  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2587  }
2588 
2589  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2591 
2592  /* We don't actually know whether we did this switch during
2593  * EOF (yywrap()) processing, but the only time this flag
2594  * is looked at is after yywrap() is called, so it's safe
2595  * to go ahead and always set it.
2596  */
2598 }
2599 
2600 static void yy_load_buffer_state (void)
2601 {
2602  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2603  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2604  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2605  (yy_hold_char) = *(yy_c_buf_p);
2606 }
2607 
2615 {
2616  YY_BUFFER_STATE b;
2617 
2618  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
2619  if ( ! b )
2620  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2621 
2622  b->yy_buf_size = size;
2623 
2624  /* yy_ch_buf has to be 2 characters longer than the size given because
2625  * we need to put in 2 end-of-buffer characters.
2626  */
2627  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
2628  if ( ! b->yy_ch_buf )
2629  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2630 
2631  b->yy_is_our_buffer = 1;
2632 
2633  yy_init_buffer( b, file );
2634 
2635  return b;
2636 }
2637 
2643 {
2644 
2645  if ( ! b )
2646  return;
2647 
2648  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2650 
2651  if ( b->yy_is_our_buffer )
2652  yyfree( (void *) b->yy_ch_buf );
2653 
2654  yyfree( (void *) b );
2655 }
2656 
2657 /* Initializes or reinitializes a buffer.
2658  * This function is sometimes called more than once on the same buffer,
2659  * such as during a yyrestart() or at EOF.
2660  */
2661  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2662 
2663 {
2664  int oerrno = errno;
2665 
2666  yy_flush_buffer( b );
2667 
2668  b->yy_input_file = file;
2669  b->yy_fill_buffer = 1;
2670 
2671  /* If b is the current buffer, then yy_init_buffer was _probably_
2672  * called from yyrestart() or through yy_get_next_buffer.
2673  * In that case, we don't want to reset the lineno or column.
2674  */
2675  if (b != YY_CURRENT_BUFFER){
2676  b->yy_bs_lineno = 1;
2677  b->yy_bs_column = 0;
2678  }
2679 
2680  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2681 
2682  errno = oerrno;
2683 }
2684 
2690 {
2691  if ( ! b )
2692  return;
2693 
2694  b->yy_n_chars = 0;
2695 
2696  /* We always need two end-of-buffer characters. The first causes
2697  * a transition to the end-of-buffer state. The second causes
2698  * a jam in that state.
2699  */
2702 
2703  b->yy_buf_pos = &b->yy_ch_buf[0];
2704 
2705  b->yy_at_bol = 1;
2707 
2708  if ( b == YY_CURRENT_BUFFER )
2710 }
2711 
2719 {
2720  if (new_buffer == NULL)
2721  return;
2722 
2724 
2725  /* This block is copied from yy_switch_to_buffer. */
2726  if ( YY_CURRENT_BUFFER )
2727  {
2728  /* Flush out information for old buffer. */
2729  *(yy_c_buf_p) = (yy_hold_char);
2730  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2731  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2732  }
2733 
2734  /* Only push if top exists. Otherwise, replace top. */
2735  if (YY_CURRENT_BUFFER)
2736  (yy_buffer_stack_top)++;
2737  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2738 
2739  /* copied from yy_switch_to_buffer. */
2742 }
2743 
2749 {
2750  if (!YY_CURRENT_BUFFER)
2751  return;
2752 
2754  YY_CURRENT_BUFFER_LVALUE = NULL;
2755  if ((yy_buffer_stack_top) > 0)
2756  --(yy_buffer_stack_top);
2757 
2758  if (YY_CURRENT_BUFFER) {
2761  }
2762 }
2763 
2764 /* Allocates the stack if it does not exist.
2765  * Guarantees space for at least one push.
2766  */
2767 static void yyensure_buffer_stack (void)
2768 {
2769  yy_size_t num_to_alloc;
2770 
2771  if (!(yy_buffer_stack)) {
2772 
2773  /* First allocation is just for 2 elements, since we don't know if this
2774  * scanner will even need a stack. We use 2 instead of 1 to avoid an
2775  * immediate realloc on the next call.
2776  */
2777  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2779  (num_to_alloc * sizeof(struct yy_buffer_state*)
2780  );
2781  if ( ! (yy_buffer_stack) )
2782  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2783 
2784  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2785 
2786  (yy_buffer_stack_max) = num_to_alloc;
2787  (yy_buffer_stack_top) = 0;
2788  return;
2789  }
2790 
2791  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2792 
2793  /* Increase the buffer to prepare for a possible push. */
2794  yy_size_t grow_size = 8 /* arbitrary grow size */;
2795 
2796  num_to_alloc = (yy_buffer_stack_max) + grow_size;
2798  ((yy_buffer_stack),
2799  num_to_alloc * sizeof(struct yy_buffer_state*)
2800  );
2801  if ( ! (yy_buffer_stack) )
2802  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2803 
2804  /* zero only the new slots.*/
2805  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2806  (yy_buffer_stack_max) = num_to_alloc;
2807  }
2808 }
2809 
2817 {
2818  YY_BUFFER_STATE b;
2819 
2820  if ( size < 2 ||
2821  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2822  base[size-1] != YY_END_OF_BUFFER_CHAR )
2823  /* They forgot to leave room for the EOB's. */
2824  return NULL;
2825 
2826  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
2827  if ( ! b )
2828  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2829 
2830  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
2831  b->yy_buf_pos = b->yy_ch_buf = base;
2832  b->yy_is_our_buffer = 0;
2833  b->yy_input_file = NULL;
2834  b->yy_n_chars = b->yy_buf_size;
2835  b->yy_is_interactive = 0;
2836  b->yy_at_bol = 1;
2837  b->yy_fill_buffer = 0;
2839 
2840  yy_switch_to_buffer( b );
2841 
2842  return b;
2843 }
2844 
2853 YY_BUFFER_STATE yy_scan_string (const char * yystr )
2854 {
2855 
2856  return yy_scan_bytes( yystr, (int) strlen(yystr) );
2857 }
2858 
2866 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
2867 {
2868  YY_BUFFER_STATE b;
2869  char *buf;
2870  yy_size_t n;
2871  int i;
2872 
2873  /* Get memory for full buffer, including space for trailing EOB's. */
2874  n = (yy_size_t) (_yybytes_len + 2);
2875  buf = (char *) yyalloc( n );
2876  if ( ! buf )
2877  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2878 
2879  for ( i = 0; i < _yybytes_len; ++i )
2880  buf[i] = yybytes[i];
2881 
2882  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2883 
2884  b = yy_scan_buffer( buf, n );
2885  if ( ! b )
2886  YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2887 
2888  /* It's okay to grow etc. this buffer, and we should throw it
2889  * away when we're done.
2890  */
2891  b->yy_is_our_buffer = 1;
2892 
2893  return b;
2894 }
2895 
2896 #ifndef YY_EXIT_FAILURE
2897 #define YY_EXIT_FAILURE 2
2898 #endif
2899 
2900 static void yynoreturn yy_fatal_error (const char* msg )
2901 {
2902  fprintf( stderr, "%s\n", msg );
2903  exit( YY_EXIT_FAILURE );
2904 }
2905 
2906 /* Redefine yyless() so it works in section 3 code. */
2907 
2908 #undef yyless
2909 #define yyless(n) \
2910  do \
2911  { \
2912  /* Undo effects of setting up yytext. */ \
2913  int yyless_macro_arg = (n); \
2914  YY_LESS_LINENO(yyless_macro_arg);\
2915  yytext[yyleng] = (yy_hold_char); \
2916  (yy_c_buf_p) = yytext + yyless_macro_arg; \
2917  (yy_hold_char) = *(yy_c_buf_p); \
2918  *(yy_c_buf_p) = '\0'; \
2919  yyleng = yyless_macro_arg; \
2920  } \
2921  while ( 0 )
2922 
2923 /* Accessor methods (get/set functions) to struct members. */
2924 
2928 int yyget_lineno (void)
2929 {
2930 
2931  return yylineno;
2932 }
2933 
2937 FILE *yyget_in (void)
2938 {
2939  return yyin;
2940 }
2941 
2945 FILE *yyget_out (void)
2946 {
2947  return yyout;
2948 }
2949 
2953 int yyget_leng (void)
2954 {
2955  return yyleng;
2956 }
2957 
2962 char *yyget_text (void)
2963 {
2964  return yytext;
2965 }
2966 
2971 void yyset_lineno (int _line_number )
2972 {
2973 
2974  yylineno = _line_number;
2975 }
2976 
2983 void yyset_in (FILE * _in_str )
2984 {
2985  yyin = _in_str ;
2986 }
2987 
2988 void yyset_out (FILE * _out_str )
2989 {
2990  yyout = _out_str ;
2991 }
2992 
2993 int yyget_debug (void)
2994 {
2995  return yy_flex_debug;
2996 }
2997 
2998 void yyset_debug (int _bdebug )
2999 {
3000  yy_flex_debug = _bdebug ;
3001 }
3002 
3003 static int yy_init_globals (void)
3004 {
3005  /* Initialization is the same as for the non-reentrant scanner.
3006  * This function is called from yylex_destroy(), so don't allocate here.
3007  */
3008 
3009  (yy_buffer_stack) = NULL;
3010  (yy_buffer_stack_top) = 0;
3011  (yy_buffer_stack_max) = 0;
3012  (yy_c_buf_p) = NULL;
3013  (yy_init) = 0;
3014  (yy_start) = 0;
3015 
3016 /* Defined in main.c */
3017 #ifdef YY_STDINIT
3018  yyin = stdin;
3019  yyout = stdout;
3020 #else
3021  yyin = NULL;
3022  yyout = NULL;
3023 #endif
3024 
3025  /* For future reference: Set errno on error, since we are called by
3026  * yylex_init()
3027  */
3028  return 0;
3029 }
3030 
3031 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3032 int yylex_destroy (void)
3033 {
3034 
3035  /* Pop the buffer stack, destroying each element. */
3036  while(YY_CURRENT_BUFFER){
3038  YY_CURRENT_BUFFER_LVALUE = NULL;
3040  }
3041 
3042  /* Destroy the stack itself. */
3043  yyfree((yy_buffer_stack) );
3044  (yy_buffer_stack) = NULL;
3045 
3046  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3047  * yylex() is called, initialization will occur. */
3048  yy_init_globals( );
3049 
3050  return 0;
3051 }
3052 
3053 /*
3054  * Internal utility routines.
3055  */
3056 
3057 #ifndef yytext_ptr
3058 static void yy_flex_strncpy (char* s1, const char * s2, int n )
3059 {
3060 
3061  int i;
3062  for ( i = 0; i < n; ++i )
3063  s1[i] = s2[i];
3064 }
3065 #endif
3066 
3067 #ifdef YY_NEED_STRLEN
3068 static int yy_flex_strlen (const char * s )
3069 {
3070  int n;
3071  for ( n = 0; s[n]; ++n )
3072  ;
3073 
3074  return n;
3075 }
3076 #endif
3077 
3078 void *yyalloc (yy_size_t size )
3079 {
3080  return malloc(size);
3081 }
3082 
3083 void *yyrealloc (void * ptr, yy_size_t size )
3084 {
3085 
3086  /* The cast to (char *) in the following accommodates both
3087  * implementations that use char* generic pointers, and those
3088  * that use void* generic pointers. It works with the latter
3089  * because both ANSI C and C++ allow castless assignment from
3090  * any pointer type to void*, and deal with argument conversions
3091  * as though doing an assignment.
3092  */
3093  return realloc(ptr, size);
3094 }
3095 
3096 void yyfree (void * ptr )
3097 {
3098  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3099 }
3100 
3101 #define YYTABLES_NAME "yytables"
3103 #line 340 "scanner.l"
3104 
3105 
TOK_END_VAR
@ TOK_END_VAR
Definition: statement_list_y.tab.h:69
yy_fatal_error
static void yy_fatal_error(const char *msg)
Definition: statement_list_lex.yy.cpp:2900
TAG_ATTRIBUTES
#define TAG_ATTRIBUTES
Definition: statement_list_lex.yy.cpp:1170
TOK_ACCU_REAL_GT
@ TOK_ACCU_REAL_GT
Definition: statement_list_y.tab.h:119
yyset_lineno
#define yyset_lineno
Definition: statement_list_lex.yy.cpp:213
YY_BUFFER_EOF_PENDING
#define YY_BUFFER_EOF_PENDING
Definition: statement_list_lex.yy.cpp:503
TOK_AND_NOT
@ TOK_AND_NOT
Definition: statement_list_y.tab.h:89
flex_int32_t
int flex_int32_t
Definition: ansi_c_lex.yy.cpp:312
statement_list_scanner_init
void statement_list_scanner_init()
Defined in scanner.l.
Definition: statement_list_lex.yy.cpp:1153
TOK_AND
@ TOK_AND
Definition: jsil_y.tab.h:106
yyget_out
#define yyget_out
Definition: statement_list_lex.yy.cpp:183
statement_list_parser.h
YY_BUF_SIZE
#define YY_BUF_SIZE
Definition: statement_list_lex.yy.cpp:399
yy_load_buffer_state
#define yy_load_buffer_state
Definition: statement_list_lex.yy.cpp:16
yy_state_type
int yy_state_type
Definition: statement_list_lex.yy.cpp:592
YY_CHAR
flex_uint8_t YY_CHAR
Definition: statement_list_lex.yy.cpp:588
yylex
#define yylex
Definition: statement_list_lex.yy.cpp:24
TOK_FUNCTION_BLOCK
@ TOK_FUNCTION_BLOCK
Definition: statement_list_y.tab.h:59
yy_trans_info
Definition: ansi_c_lex.yy.cpp:619
TOK_LABEL
@ TOK_LABEL
Definition: jsil_y.tab.h:64
convert_real_literal
constant_exprt convert_real_literal(const std::string &src)
Converts a string into the corresponding 'Real' expression.
Definition: convert_real_literal.cpp:18
YY_END_OF_BUFFER_CHAR
#define YY_END_OF_BUFFER_CHAR
Definition: statement_list_lex.yy.cpp:388
yyless
#define yyless(n)
Definition: statement_list_lex.yy.cpp:2909
TOK_VAR_OUTPUT
@ TOK_VAR_OUTPUT
Definition: statement_list_y.tab.h:65
YY_CURRENT_BUFFER_LVALUE
#define YY_CURRENT_BUFFER_LVALUE
Definition: statement_list_lex.yy.cpp:525
yy_def
static const flex_int16_t yy_def[323]
Definition: statement_list_lex.yy.cpp:748
yylineno
#define yylineno
Definition: statement_list_lex.yy.cpp:25
TOK_END_TAG
@ TOK_END_TAG
Definition: statement_list_y.tab.h:73
convert_string_value.h
yy_buffer_state::yy_input_file
FILE * yy_input_file
Definition: ansi_c_lex.yy.cpp:447
YY_FLUSH_BUFFER
#define YY_FLUSH_BUFFER
Definition: statement_list_lex.yy.cpp:553
TOK_ACCU_DINT_DIV
@ TOK_ACCU_DINT_DIV
Definition: statement_list_y.tab.h:126
YY_STATE_EOF
#define YY_STATE_EOF(state)
Definition: statement_list_lex.yy.cpp:385
convert_bool_literal.h
yyget_text
#define yyget_text
Definition: statement_list_lex.yy.cpp:201
TOK_DINT
@ TOK_DINT
Definition: statement_list_y.tab.h:75
TOK_ACCU_INT_NEQ
@ TOK_ACCU_INT_NEQ
Definition: statement_list_y.tab.h:108
TOK_OR
@ TOK_OR
Definition: jsil_y.tab.h:107
yy_size_t
size_t yy_size_t
Definition: statement_list_lex.yy.cpp:414
yy_buffer_state
Definition: ansi_c_lex.yy.cpp:446
yyout
#define yyout
Definition: statement_list_lex.yy.cpp:26
yy_try_NUL_trans
static yy_state_type yy_try_NUL_trans(yy_state_type current_state)
Definition: statement_list_lex.yy.cpp:2446
YY_BREAK
#define YY_BREAK
Definition: statement_list_lex.yy.cpp:1343
yyrealloc
#define yyrealloc
Definition: statement_list_lex.yy.cpp:31
TOK_ACCU_INT_LTE
@ TOK_ACCU_INT_LTE
Definition: statement_list_y.tab.h:112
file
Definition: kdev_t.h:19
convert_label
code_labelt convert_label(const std::string &src)
Converts a string into a Statement List label.
Definition: convert_string_value.cpp:35
yyin
#define yyin
Definition: statement_list_lex.yy.cpp:22
TOK_ACCU_REAL_GTE
@ TOK_ACCU_REAL_GTE
Definition: statement_list_y.tab.h:121
s1
int8_t s1
Definition: bytecode_info.h:59
TOK_IDENTIFIER
@ TOK_IDENTIFIER
Definition: ansi_c_y.tab.h:116
yyleng
#define yyleng
Definition: statement_list_lex.yy.cpp:23
yyrestart
#define yyrestart
Definition: statement_list_lex.yy.cpp:27
TOK_REAL_LITERAL
@ TOK_REAL_LITERAL
Definition: statement_list_y.tab.h:136
TOK_ACCU_REAL_ADD
@ TOK_ACCU_REAL_ADD
Definition: statement_list_y.tab.h:113
yyfree
#define yyfree
Definition: statement_list_lex.yy.cpp:32
convert_bool_literal
constant_exprt convert_bool_literal(const std::string &src)
Converts a string into the corresponding 'Bool' expression.
Definition: convert_bool_literal.cpp:19
YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE
Definition: statement_list_lex.yy.cpp:1255
yy_buffer_stack
static YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
Definition: statement_list_lex.yy.cpp:511
TOK_ACCU_INT_GTE
@ TOK_ACCU_INT_GTE
Definition: statement_list_y.tab.h:111
yy_buffer_state::yy_at_bol
int yy_at_bol
Definition: ansi_c_lex.yy.cpp:479
ECHO
#define ECHO
Definition: statement_list_lex.yy.cpp:1264
yy_last_accepting_cpos
static char * yy_last_accepting_cpos
Definition: statement_list_lex.yy.cpp:1075
yyset_in
#define yyset_in
Definition: statement_list_lex.yy.cpp:177
TAG_NAME
#define TAG_NAME
Definition: statement_list_lex.yy.cpp:1168
newstack
#define newstack(x)
Definition: parser.h:142
TOK_VERSION_VALUE
@ TOK_VERSION_VALUE
Definition: statement_list_y.tab.h:139
yypop_buffer_state
#define yypop_buffer_state
Definition: statement_list_lex.yy.cpp:19
TOK_TRANSFER
@ TOK_TRANSFER
Definition: statement_list_y.tab.h:80
TOK_ACCU_REAL_MUL
@ TOK_ACCU_REAL_MUL
Definition: statement_list_y.tab.h:115
TOK_ACCU_DINT_EQ
@ TOK_ACCU_DINT_EQ
Definition: statement_list_y.tab.h:127
yy_buffer_state::yy_is_our_buffer
int yy_is_our_buffer
Definition: ansi_c_lex.yy.cpp:466
TOK_ACCU_DINT_ADD
@ TOK_ACCU_DINT_ADD
Definition: statement_list_y.tab.h:123
TOK_ACCU_INT_GT
@ TOK_ACCU_INT_GT
Definition: statement_list_y.tab.h:109
TOK_NOP
@ TOK_NOP
Definition: statement_list_y.tab.h:82
TOK_VAR_INPUT
@ TOK_VAR_INPUT
Definition: statement_list_y.tab.h:63
TOK_ACCU_REAL_DIV
@ TOK_ACCU_REAL_DIV
Definition: statement_list_y.tab.h:116
yy_scan_buffer
#define yy_scan_buffer
Definition: statement_list_lex.yy.cpp:11
TOK_ACCU_DINT_GTE
@ TOK_ACCU_DINT_GTE
Definition: statement_list_y.tab.h:131
convert_identifier
string_constantt convert_identifier(const std::string &src)
Converts a string into a Statement List identifier.
Definition: convert_string_value.cpp:14
TOK_ASSIGN
@ TOK_ASSIGN
Definition: statement_list_y.tab.h:101
statement_list_y.tab.h
yy_get_next_buffer
static int yy_get_next_buffer(void)
Definition: statement_list_lex.yy.cpp:2276
yystatement_listlval
unsigned yystatement_listlval
Definition: statement_list_y.tab.cpp:1379
TOK_CALL
@ TOK_CALL
Definition: statement_list_y.tab.h:81
yy_get_previous_state
static yy_state_type yy_get_previous_state(void)
Definition: statement_list_lex.yy.cpp:2414
GRAMMAR
#define GRAMMAR
Definition: statement_list_lex.yy.cpp:1167
YY_EXTRA_TYPE
#define YY_EXTRA_TYPE
Definition: statement_list_lex.yy.cpp:1182
YY_CURRENT_BUFFER
#define YY_CURRENT_BUFFER
Definition: statement_list_lex.yy.cpp:519
yylex_destroy
#define yylex_destroy
Definition: statement_list_lex.yy.cpp:141
yy_create_buffer
#define yy_create_buffer
Definition: statement_list_lex.yy.cpp:9
TOK_INT
@ TOK_INT
Definition: ansi_c_y.tab.h:76
TOK_ACCU_INT_MUL
@ TOK_ACCU_INT_MUL
Definition: statement_list_y.tab.h:105
YY_RESTORE_YY_MORE_OFFSET
#define YY_RESTORE_YY_MORE_OFFSET
Definition: statement_list_lex.yy.cpp:1086
convert_dint_dec_literal_value
constant_exprt convert_dint_dec_literal_value(const std::string &src)
Converts a string into the corresponding 'DInt' expression.
Definition: convert_dint_literal.cpp:62
yy_buffer_state::yy_fill_buffer
int yy_fill_buffer
Definition: ansi_c_lex.yy.cpp:487
TOK_INT_LITERAL
@ TOK_INT_LITERAL
Definition: statement_list_y.tab.h:134
yy_scan_string
#define yy_scan_string
Definition: statement_list_lex.yy.cpp:12
TOK_OR_NOT
@ TOK_OR_NOT
Definition: statement_list_y.tab.h:91
convert_int_dec_literal_value
constant_exprt convert_int_dec_literal_value(const std::string &src)
Converts a string into the corresponding 'Int' expression.
Definition: convert_int_literal.cpp:64
TOK_XOR_NOT_NESTED
@ TOK_XOR_NOT_NESTED
Definition: statement_list_y.tab.h:99
TOK_SET_RLO
@ TOK_SET_RLO
Definition: statement_list_y.tab.h:83
convert_int_literal.h
yy_hold_char
static char yy_hold_char
Definition: statement_list_lex.yy.cpp:528
yyterminate
#define yyterminate()
Definition: statement_list_lex.yy.cpp:1308
TOK_ACCU_INT_SUB
@ TOK_ACCU_INT_SUB
Definition: statement_list_y.tab.h:104
yyset_out
#define yyset_out
Definition: statement_list_lex.yy.cpp:189
flex_int16_t
short int flex_int16_t
Definition: ansi_c_lex.yy.cpp:311
yyset_extra
#define yyset_extra
Definition: statement_list_lex.yy.cpp:165
TOK_ACCU_INT_DIV
@ TOK_ACCU_INT_DIV
Definition: statement_list_y.tab.h:106
yy_buffer_state::yy_buf_size
int yy_buf_size
Definition: ansi_c_lex.yy.cpp:455
TOK_CONST_ADD
@ TOK_CONST_ADD
Definition: statement_list_y.tab.h:102
convert_dint_literal.h
TOK_ACCU_DINT_LTE
@ TOK_ACCU_DINT_LTE
Definition: statement_list_y.tab.h:132
convert_int_bit_literal
constant_exprt convert_int_bit_literal(const std::string &src)
Converts a string into the corresponding 'Int' or 'DInt' expression.
Definition: convert_int_literal.cpp:115
yy_buffer_state::yy_ch_buf
char * yy_ch_buf
Definition: ansi_c_lex.yy.cpp:449
yy_delete_buffer
#define yy_delete_buffer
Definition: statement_list_lex.yy.cpp:10
yyget_in
#define yyget_in
Definition: statement_list_lex.yy.cpp:171
yy_buffer_stack_top
static size_t yy_buffer_stack_top
index of top of stack.
Definition: statement_list_lex.yy.cpp:509
yytext
#define yytext
Definition: statement_list_lex.yy.cpp:28
TOK_END_FUNCTION_BLOCK
@ TOK_END_FUNCTION_BLOCK
Definition: statement_list_y.tab.h:60
EOB_ACT_LAST_MATCH
#define EOB_ACT_LAST_MATCH
Definition: statement_list_lex.yy.cpp:423
yy_init_buffer
#define yy_init_buffer
Definition: statement_list_lex.yy.cpp:14
TOK_ACCU_INT_ADD
@ TOK_ACCU_INT_ADD
Definition: statement_list_y.tab.h:103
YY_EXIT_FAILURE
#define YY_EXIT_FAILURE
Definition: statement_list_lex.yy.cpp:2897
yynoreturn
#define yynoreturn
Definition: statement_list_lex.yy.cpp:362
yypush_buffer_state
#define yypush_buffer_state
Definition: statement_list_lex.yy.cpp:18
yy_accept
static const flex_int16_t yy_accept[312]
Definition: statement_list_lex.yy.cpp:626
yyget_leng
#define yyget_leng
Definition: statement_list_lex.yy.cpp:195
loc
#define loc()
Definition: statement_list_lex.yy.cpp:1146
yy_n_chars
static int yy_n_chars
Definition: statement_list_lex.yy.cpp:529
flex_uint16_t
unsigned short int flex_uint16_t
Definition: statement_list_lex.yy.cpp:314
TOK_OR_NESTED
@ TOK_OR_NESTED
Definition: statement_list_y.tab.h:96
yyensure_buffer_stack
#define yyensure_buffer_stack
Definition: statement_list_lex.yy.cpp:20
yy_start
static int yy_start
Definition: statement_list_lex.yy.cpp:535
yy_init
static int yy_init
Definition: statement_list_lex.yy.cpp:534
YY_DO_BEFORE_ACTION
#define YY_DO_BEFORE_ACTION
Definition: statement_list_lex.yy.cpp:611
YY_END_OF_BUFFER
#define YY_END_OF_BUFFER
Definition: statement_list_lex.yy.cpp:618
TOK_SET
@ TOK_SET
Definition: statement_list_y.tab.h:85
TOK_NOT
@ TOK_NOT
Definition: jsil_y.tab.h:112
yy_base
static const flex_int16_t yy_base[323]
Definition: statement_list_lex.yy.cpp:708
TOK_XOR_NOT
@ TOK_XOR_NOT
Definition: statement_list_y.tab.h:93
yy_buffer_state::yy_buffer_status
int yy_buffer_status
Definition: ansi_c_lex.yy.cpp:489
TOK_VAR_INOUT
@ TOK_VAR_INOUT
Definition: statement_list_y.tab.h:64
yy_buffer_state::yy_buf_pos
char * yy_buf_pos
Definition: ansi_c_lex.yy.cpp:450
EOB_ACT_CONTINUE_SCAN
#define EOB_ACT_CONTINUE_SCAN
Definition: statement_list_lex.yy.cpp:421
yyget_extra
#define yyget_extra
Definition: statement_list_lex.yy.cpp:159
TOK_VAR_STATIC
@ TOK_VAR_STATIC
Definition: statement_list_y.tab.h:66
yy_did_buffer_switch_on_eof
static int yy_did_buffer_switch_on_eof
Definition: statement_list_lex.yy.cpp:540
flex_int8_t
signed char flex_int8_t
Definition: statement_list_lex.yy.cpp:310
TOK_TAG
@ TOK_TAG
Definition: statement_list_y.tab.h:72
YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg)
Definition: statement_list_lex.yy.cpp:1318
yy_trans_info::yy_nxt
flex_int32_t yy_nxt
Definition: ansi_c_lex.yy.cpp:621
flex_int32_t
int flex_int32_t
Definition: statement_list_lex.yy.cpp:312
convert_dint_hex_literal_value
constant_exprt convert_dint_hex_literal_value(const std::string &src)
Converts a string into the corresponding 'DInt' expression.
Definition: convert_dint_literal.cpp:75
TOK_ASSIGNMENT
@ TOK_ASSIGNMENT
Definition: statement_list_y.tab.h:133
TOK_BOOL
@ TOK_BOOL
Definition: ansi_c_y.tab.h:58
TOK_XOR_NESTED
@ TOK_XOR_NESTED
Definition: statement_list_y.tab.h:98
TOK_ACCU_DINT_SUB
@ TOK_ACCU_DINT_SUB
Definition: statement_list_y.tab.h:124
TOK_BOOL_LITERAL
@ TOK_BOOL_LITERAL
Definition: statement_list_y.tab.h:135
TOK_CLR_RLO
@ TOK_CLR_RLO
Definition: statement_list_y.tab.h:84
YY_DECL
#define YY_DECL
Definition: statement_list_lex.yy.cpp:1331
yy_trans_info::yy_verify
flex_int32_t yy_verify
Definition: ansi_c_lex.yy.cpp:620
TOK_ACCU_DINT_MUL
@ TOK_ACCU_DINT_MUL
Definition: statement_list_y.tab.h:125
yy_flex_debug
#define yy_flex_debug
Definition: statement_list_lex.yy.cpp:21
TOK_OR_NOT_NESTED
@ TOK_OR_NOT_NESTED
Definition: statement_list_y.tab.h:97
yy_buffer_state::yy_bs_column
int yy_bs_column
The column count.
Definition: ansi_c_lex.yy.cpp:482
yy_buffer_state::yy_n_chars
int yy_n_chars
Definition: ansi_c_lex.yy.cpp:460
YY_BUFFER_STATE
struct yy_buffer_state * YY_BUFFER_STATE
Definition: statement_list_lex.yy.cpp:409
TOK_REAL
@ TOK_REAL
Definition: ansi_c_y.tab.h:204
YY_SC_TO_UI
#define YY_SC_TO_UI(c)
Definition: statement_list_lex.yy.cpp:371
YY_NEW_FILE
#define YY_NEW_FILE
Definition: statement_list_lex.yy.cpp:387
yyget_lineno
#define yyget_lineno
Definition: statement_list_lex.yy.cpp:207
convert_int_hex_literal_value
constant_exprt convert_int_hex_literal_value(const std::string &src)
Converts a string into the corresponding 'Int' expression.
Definition: convert_int_literal.cpp:98
YY_CHAR
flex_uint8_t YY_CHAR
Definition: ansi_c_lex.yy.cpp:585
TOK_TITLE
@ TOK_TITLE
Definition: statement_list_y.tab.h:71
YY_INPUT
#define YY_INPUT(buf, result, max_size)
Definition: statement_list_lex.yy.cpp:1271
yy_meta
static const YY_CHAR yy_meta[63]
Definition: statement_list_lex.yy.cpp:697
TOK_NESTING_CLOSED
@ TOK_NESTING_CLOSED
Definition: statement_list_y.tab.h:100
yy_buffer_state::yy_is_interactive
int yy_is_interactive
Definition: ansi_c_lex.yy.cpp:473
malloc
void * malloc(unsigned)
TOK_END_FUNCTION
@ TOK_END_FUNCTION
Definition: statement_list_y.tab.h:62
yy_switch_to_buffer
#define yy_switch_to_buffer
Definition: statement_list_lex.yy.cpp:17
yy_c_buf_p
static char * yy_c_buf_p
Definition: statement_list_lex.yy.cpp:533
convert_int_dec_literal
constant_exprt convert_int_dec_literal(const std::string &src)
Converts a string into the corresponding 'Int' or 'DInt' expression.
Definition: convert_int_literal.cpp:47
convert_real_literal.h
TOK_VAR_TEMP
@ TOK_VAR_TEMP
Definition: statement_list_y.tab.h:67
flex_uint32_t
unsigned int flex_uint32_t
Definition: statement_list_lex.yy.cpp:315
convert_int_bit_literal_value
constant_exprt convert_int_bit_literal_value(const std::string &src)
Converts a string into the corresponding 'Int' expression.
Definition: convert_int_literal.cpp:132
YY_START
#define YY_START
Definition: statement_list_lex.yy.cpp:382
TOK_VAR_CONSTANT
@ TOK_VAR_CONSTANT
Definition: statement_list_y.tab.h:68
TOK_VERSION
@ TOK_VERSION
Definition: statement_list_y.tab.h:57
yytext_ptr
#define yytext_ptr
Definition: statement_list_lex.yy.cpp:601
TOK_BEGIN
@ TOK_BEGIN
Definition: statement_list_y.tab.h:58
TOK_ACCU_DINT_NEQ
@ TOK_ACCU_DINT_NEQ
Definition: statement_list_y.tab.h:128
TOK_ACCU_DINT_LT
@ TOK_ACCU_DINT_LT
Definition: statement_list_y.tab.h:130
TOK_XOR
@ TOK_XOR
Definition: statement_list_y.tab.h:92
TOK_ACCU_REAL_NEQ
@ TOK_ACCU_REAL_NEQ
Definition: statement_list_y.tab.h:118
TOK_ACCU_DINT_GT
@ TOK_ACCU_DINT_GT
Definition: statement_list_y.tab.h:129
convert_int_hex_literal
constant_exprt convert_int_hex_literal(const std::string &src)
Converts a string into the corresponding 'Int' or 'DInt' expression.
Definition: convert_int_literal.cpp:81
yy_ec
static const YY_CHAR yy_ec[256]
Definition: statement_list_lex.yy.cpp:665
TOK_AND_NESTED
@ TOK_AND_NESTED
Definition: statement_list_y.tab.h:94
flex_uint8_t
unsigned char flex_uint8_t
Definition: ansi_c_lex.yy.cpp:313
yy_last_accepting_state
static yy_state_type yy_last_accepting_state
Definition: statement_list_lex.yy.cpp:1074
VERSION_ANNOTATION
#define VERSION_ANNOTATION
Definition: statement_list_lex.yy.cpp:1171
convert_version
string_constantt convert_version(const std::string &src)
Converts a string into a Statement List version.
Definition: convert_string_value.cpp:28
TOK_ACCU_INT_LT
@ TOK_ACCU_INT_LT
Definition: statement_list_y.tab.h:110
YY_BUFFER_NEW
#define YY_BUFFER_NEW
Definition: statement_list_lex.yy.cpp:491
TOK_VOID
@ TOK_VOID
Definition: ansi_c_y.tab.h:90
TOK_ACCU_REAL_EQ
@ TOK_ACCU_REAL_EQ
Definition: statement_list_y.tab.h:117
flex_uint8_t
unsigned char flex_uint8_t
Definition: statement_list_lex.yy.cpp:313
YY_MORE_ADJ
#define YY_MORE_ADJ
Definition: statement_list_lex.yy.cpp:1085
YY_RULE_SETUP
#define YY_RULE_SETUP
Definition: statement_list_lex.yy.cpp:1346
s2
int16_t s2
Definition: bytecode_info.h:60
EOB_ACT_END_OF_FILE
#define EOB_ACT_END_OF_FILE
Definition: statement_list_lex.yy.cpp:422
BEGIN
#define BEGIN
Definition: statement_list_lex.yy.cpp:377
TOK_ACCU_INT_EQ
@ TOK_ACCU_INT_EQ
Definition: statement_list_y.tab.h:107
yy_scan_bytes
#define yy_scan_bytes
Definition: statement_list_lex.yy.cpp:13
yyset_debug
#define yyset_debug
Definition: statement_list_lex.yy.cpp:153
TOK_RESET
@ TOK_RESET
Definition: statement_list_y.tab.h:86
yyget_debug
#define yyget_debug
Definition: statement_list_lex.yy.cpp:147
yy_buffer_stack_max
static size_t yy_buffer_stack_max
capacity of stack.
Definition: statement_list_lex.yy.cpp:510
yy_chk
static const flex_int16_t yy_chk[1263]
Definition: statement_list_lex.yy.cpp:931
yy_size_t
size_t yy_size_t
Definition: ansi_c_lex.yy.cpp:414
parser_stack
#define parser_stack(x)
Definition: parser.h:144
TOK_ACCU_REAL_LTE
@ TOK_ACCU_REAL_LTE
Definition: statement_list_y.tab.h:122
free
void free(void *)
TOK_ACCU_REAL_LT
@ TOK_ACCU_REAL_LT
Definition: statement_list_y.tab.h:120
TOK_LOAD
@ TOK_LOAD
Definition: statement_list_y.tab.h:79
yywrap
#define yywrap
Definition: statement_list_lex.yy.cpp:29
flex_int16_t
short int flex_int16_t
Definition: statement_list_lex.yy.cpp:311
convert_dint_bit_literal_value
constant_exprt convert_dint_bit_literal_value(const std::string &src)
Converts a string into the corresponding 'DInt' expression.
Definition: convert_dint_literal.cpp:88
MODULE_NAME
#define MODULE_NAME
Definition: statement_list_lex.yy.cpp:1169
yy_buffer_state::yy_bs_lineno
int yy_bs_lineno
The line count.
Definition: ansi_c_lex.yy.cpp:481
yy_state_type
int yy_state_type
Definition: ansi_c_lex.yy.cpp:589
TOK_ACCU_REAL_SUB
@ TOK_ACCU_REAL_SUB
Definition: statement_list_y.tab.h:114
PARSER
#define PARSER
Definition: statement_list_lex.yy.cpp:1132
TOK_AND_NOT_NESTED
@ TOK_AND_NOT_NESTED
Definition: statement_list_y.tab.h:95
yyalloc
#define yyalloc
Definition: statement_list_lex.yy.cpp:30
yy_init_globals
static int yy_init_globals(void)
Definition: statement_list_lex.yy.cpp:3003
yy_flush_buffer
#define yy_flush_buffer
Definition: statement_list_lex.yy.cpp:15
yy_nxt
static const flex_int16_t yy_nxt[1263]
Definition: statement_list_lex.yy.cpp:788
INITIAL
#define INITIAL
Definition: statement_list_lex.yy.cpp:1166
TOK_NETWORK
@ TOK_NETWORK
Definition: statement_list_y.tab.h:70
TOK_FUNCTION
@ TOK_FUNCTION
Definition: statement_list_y.tab.h:61
YY_BUFFER_NORMAL
#define YY_BUFFER_NORMAL
Definition: statement_list_lex.yy.cpp:492