/[ascend]/trunk/base/generic/compiler/scanner_no_lex.c
ViewVC logotype

Diff of /trunk/base/generic/compiler/scanner_no_lex.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1522 by jpye, Sat Jun 30 01:23:36 2007 UTC revision 1523 by jpye, Sat Jun 30 14:55:05 2007 UTC
# Line 1  Line 1 
1  #define yy_create_buffer zz__create_buffer  
2  #define yy_delete_buffer zz__delete_buffer  #line 3 "<stdout>"
3  #define yy_scan_buffer zz__scan_buffer  
4  #define yy_scan_string zz__scan_string  #define  YY_INT_ALIGNED short int
5  #define yy_scan_bytes zz__scan_bytes  
6  #define yy_flex_debug zz__flex_debug  /* A lexical scanner generated by flex */
7  #define yy_init_buffer zz__init_buffer  
8  #define yy_flush_buffer zz__flush_buffer  #define FLEX_SCANNER
9  #define yy_load_buffer_state zz__load_buffer_state  #define YY_FLEX_MAJOR_VERSION 2
10  #define yy_switch_to_buffer zz__switch_to_buffer  #define YY_FLEX_MINOR_VERSION 5
11  #define yyin zz_in  #define YY_FLEX_SUBMINOR_VERSION 33
12  #define yyleng zz_leng  #if YY_FLEX_SUBMINOR_VERSION > 0
13  #define yylex zz_lex  #define FLEX_BETA
14  #define yyout zz_out  #endif
15  #define yyrestart zz_restart  
16  #define yytext zz_text  /* First, we deal with  platform-specific or compiler-specific issues. */
17  #define yylineno zz_lineno  
18  #define yywrap zz_wrap  /* begin standard C headers. */
19    #include <stdio.h>
20  /* A lexical scanner generated by flex */  #include <string.h>
21    #include <errno.h>
22  /* Scanner skeleton version:  #include <stdlib.h>
23   * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $  
24   */  /* end standard C headers. */
25    
26  #define FLEX_SCANNER  /* flex integer type definitions */
27  #define YY_FLEX_MAJOR_VERSION 2  
28  #define YY_FLEX_MINOR_VERSION 5  #ifndef FLEXINT_H
29    #define FLEXINT_H
30  #include <stdio.h>  
31    /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32    
33  /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */  #if __STDC_VERSION__ >= 199901L
34  #ifdef c_plusplus  
35  #ifndef __cplusplus  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  #define __cplusplus   * if you want the limit (max/min) macros for int types.
37  #endif   */
38  #endif  #ifndef __STDC_LIMIT_MACROS
39    #define __STDC_LIMIT_MACROS 1
40    #endif
41  #ifdef __cplusplus  
42    #include <inttypes.h>
43  #include <stdlib.h>  typedef int8_t flex_int8_t;
44  #include <unistd.h>  typedef uint8_t flex_uint8_t;
45    typedef int16_t flex_int16_t;
46  /* Use prototypes in function declarations. */  typedef uint16_t flex_uint16_t;
47  #define YY_USE_PROTOS  typedef int32_t flex_int32_t;
48    typedef uint32_t flex_uint32_t;
49  /* The "const" storage-class-modifier is valid. */  #else
50  #define YY_USE_CONST  typedef signed char flex_int8_t;
51    typedef short int flex_int16_t;
52  #else   /* ! __cplusplus */  typedef int flex_int32_t;
53    typedef unsigned char flex_uint8_t;
54  #if __STDC__  typedef unsigned short int flex_uint16_t;
55    typedef unsigned int flex_uint32_t;
56  #define YY_USE_PROTOS  #endif /* ! C99 */
57  #define YY_USE_CONST  
58    /* Limits of integral types. */
59  #endif  /* __STDC__ */  #ifndef INT8_MIN
60  #endif  /* ! __cplusplus */  #define INT8_MIN               (-128)
61    #endif
62  #ifdef __TURBOC__  #ifndef INT16_MIN
63   #pragma warn -rch  #define INT16_MIN              (-32767-1)
64   #pragma warn -use  #endif
65  #include <io.h>  #ifndef INT32_MIN
66  #include <stdlib.h>  #define INT32_MIN              (-2147483647-1)
67  #define YY_USE_CONST  #endif
68  #define YY_USE_PROTOS  #ifndef INT8_MAX
69  #endif  #define INT8_MAX               (127)
70    #endif
71  #ifdef YY_USE_CONST  #ifndef INT16_MAX
72  #define yyconst const  #define INT16_MAX              (32767)
73  #else  #endif
74  #define yyconst  #ifndef INT32_MAX
75  #endif  #define INT32_MAX              (2147483647)
76    #endif
77    #ifndef UINT8_MAX
78  #ifdef YY_USE_PROTOS  #define UINT8_MAX              (255U)
79  #define YY_PROTO(proto) proto  #endif
80  #else  #ifndef UINT16_MAX
81  #define YY_PROTO(proto) ()  #define UINT16_MAX             (65535U)
82  #endif  #endif
83    #ifndef UINT32_MAX
84  /* Returned upon end-of-file. */  #define UINT32_MAX             (4294967295U)
85  #define YY_NULL 0  #endif
86    
87  /* Promotes a possibly negative, possibly signed char to an unsigned  #endif /* ! FLEXINT_H */
88   * integer for use as an array index.  If the signed char is negative,  
89   * we want to instead treat it as an 8-bit unsigned char, hence the  #ifdef __cplusplus
90   * double cast.  
91   */  /* The "const" storage-class-modifier is valid. */
92  #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)  #define YY_USE_CONST
93    
94  /* Enter a start condition.  This macro really ought to take a parameter,  #else   /* ! __cplusplus */
95   * but we do it the disgusting crufty way forced on us by the ()-less  
96   * definition of BEGIN.  #if __STDC__
97   */  
98  #define BEGIN yy_start = 1 + 2 *  #define YY_USE_CONST
99    
100  /* Translate the current start state into a value that can be later handed  #endif  /* __STDC__ */
101   * to BEGIN to return to the state.  The YYSTATE alias is for lex  #endif  /* ! __cplusplus */
102   * compatibility.  
103   */  #ifdef YY_USE_CONST
104  #define YY_START ((yy_start - 1) / 2)  #define yyconst const
105  #define YYSTATE YY_START  #else
106    #define yyconst
107  /* Action number for EOF rule of a given start state. */  #endif
108  #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)  
109    /* Returned upon end-of-file. */
110  /* Special action meaning "start processing a new file". */  #define YY_NULL 0
111  #define YY_NEW_FILE yyrestart( yyin )  
112    /* Promotes a possibly negative, possibly signed char to an unsigned
113  #define YY_END_OF_BUFFER_CHAR 0   * integer for use as an array index.  If the signed char is negative,
114     * we want to instead treat it as an 8-bit unsigned char, hence the
115  /* Size of default input buffer. */   * double cast.
116  #define YY_BUF_SIZE 16384   */
117    #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
118  typedef struct yy_buffer_state *YY_BUFFER_STATE;  
119    /* Enter a start condition.  This macro really ought to take a parameter,
120  extern int yyleng;   * but we do it the disgusting crufty way forced on us by the ()-less
121  extern FILE *yyin, *yyout;   * definition of BEGIN.
122     */
123  #define EOB_ACT_CONTINUE_SCAN 0  #define BEGIN (yy_start) = 1 + 2 *
124  #define EOB_ACT_END_OF_FILE 1  
125  #define EOB_ACT_LAST_MATCH 2  /* Translate the current start state into a value that can be later handed
126     * to BEGIN to return to the state.  The YYSTATE alias is for lex
127  /* The funky do-while in the following #define is used to turn the definition   * compatibility.
128   * int a single C statement (which needs a semi-colon terminator).  This   */
129   * avoids problems with code like:  #define YY_START (((yy_start) - 1) / 2)
130   *  #define YYSTATE YY_START
131   *  if ( condition_holds )  
132   *      yyless( 5 );  /* Action number for EOF rule of a given start state. */
133   *  else  #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
134   *      do_something_else();  
135   *  /* Special action meaning "start processing a new file". */
136   * Prior to using the do-while the compiler would get upset at the  #define YY_NEW_FILE zz_restart(zz_in  )
137   * "else" because it interpreted the "if" statement as being all  
138   * done when it reached the ';' after the yyless() call.  #define YY_END_OF_BUFFER_CHAR 0
139   */  
140    /* Size of default input buffer. */
141  /* Return all but the first 'n' matched characters back to the input stream. */  #ifndef YY_BUF_SIZE
142    #define YY_BUF_SIZE 16384
143  #define yyless(n) \  #endif
144      do \  
145          { \  /* The state buf must be large enough to hold one state per character in the main buffer.
146          /* Undo effects of setting up yytext. */ \   */
147          *yy_cp = yy_hold_char; \  #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148          YY_RESTORE_YY_MORE_OFFSET \  
149          yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \  #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150          YY_DO_BEFORE_ACTION; /* set up yytext again */ \  #define YY_TYPEDEF_YY_BUFFER_STATE
151          } \  typedef struct yy_buffer_state *YY_BUFFER_STATE;
152      while ( 0 )  #endif
153    
154  #define unput(c) yyunput( c, yytext_ptr )  extern int zz_leng;
155    
156  /* The following is because we cannot portably get our hands on size_t  extern FILE *zz_in, *zz_out;
157   * (without autoconf's help, which isn't available because we want  
158   * flex-generated scanners to compile on their own).  #define EOB_ACT_CONTINUE_SCAN 0
159   */  #define EOB_ACT_END_OF_FILE 1
160  typedef unsigned int yy_size_t;  #define EOB_ACT_LAST_MATCH 2
161    
162        /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163  struct yy_buffer_state       *       access to the local variable yy_act. Since yyless() is a macro, it would break
164      {       *       existing scanners that call yyless() from OUTSIDE zz_lex.
165      FILE *yy_input_file;       *       One obvious solution it to make yy_act a global. I tried that, and saw
166         *       a 5% performance hit in a non-zz_lineno scanner, because yy_act is
167      char *yy_ch_buf;        /* input buffer */       *       normally declared as a register variable-- so it is not worth it.
168      char *yy_buf_pos;       /* current position in input buffer */       */
169        #define  YY_LESS_LINENO(n) \
170      /* Size of input buffer in bytes, not including room for EOB              do { \
171       * characters.                  int yyl;\
172       */                  for ( yyl = n; yyl < zz_leng; ++yyl )\
173      yy_size_t yy_buf_size;                      if ( zz_text[yyl] == '\n' )\
174                            --zz_lineno;\
175      /* Number of characters read into yy_ch_buf, not including EOB              }while(0)
176       * characters.      
177       */  /* Return all but the first "n" matched characters back to the input stream. */
178      int yy_n_chars;  #define yyless(n) \
179        do \
180      /* Whether we "own" the buffer - i.e., we know we created it,          { \
181       * and can realloc() it to grow it, and should free() it to          /* Undo effects of setting up zz_text. */ \
182       * delete it.          int yyless_macro_arg = (n); \
183       */          YY_LESS_LINENO(yyless_macro_arg);\
184      int yy_is_our_buffer;          *yy_cp = (yy_hold_char); \
185            YY_RESTORE_YY_MORE_OFFSET \
186      /* Whether this is an "interactive" input source; if so, and          (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187       * if we're using stdio for input, then we want to use getc()          YY_DO_BEFORE_ACTION; /* set up zz_text again */ \
188       * instead of fread(), to make sure we stop fetching input after          } \
189       * each newline.      while ( 0 )
190       */  
191      int yy_is_interactive;  #define unput(c) yyunput( c, (yytext_ptr)  )
192    
193      /* Whether we're considered to be at the beginning of a line.  /* The following is because we cannot portably get our hands on size_t
194       * If so, '^' rules will be active on the next match, otherwise   * (without autoconf's help, which isn't available because we want
195       * not.   * flex-generated scanners to compile on their own).
196       */   */
197      int yy_at_bol;  
198    #ifndef YY_TYPEDEF_YY_SIZE_T
199      /* Whether to try to fill the input buffer when we reach the  #define YY_TYPEDEF_YY_SIZE_T
200       * end of it.  typedef unsigned int yy_size_t;
201       */  #endif
202      int yy_fill_buffer;  
203    #ifndef YY_STRUCT_YY_BUFFER_STATE
204      int yy_buffer_status;  #define YY_STRUCT_YY_BUFFER_STATE
205  #define YY_BUFFER_NEW 0  struct yy_buffer_state
206  #define YY_BUFFER_NORMAL 1      {
207      /* When an EOF's been seen but there's still some text to process      FILE *yy_input_file;
208       * then we mark the buffer as YY_EOF_PENDING, to indicate that we  
209       * shouldn't try reading from the input source any more.  We might      char *yy_ch_buf;        /* input buffer */
210       * still have a bunch of tokens to match, though, because of      char *yy_buf_pos;       /* current position in input buffer */
211       * possible backing-up.  
212       *      /* Size of input buffer in bytes, not including room for EOB
213       * When we actually see the EOF, we change the status to "new"       * characters.
214       * (via yyrestart()), so that the user can continue scanning by       */
215       * just pointing yyin at a new input file.      yy_size_t yy_buf_size;
216       */  
217  #define YY_BUFFER_EOF_PENDING 2      /* Number of characters read into yy_ch_buf, not including EOB
218      };       * characters.
219         */
220  static YY_BUFFER_STATE yy_current_buffer = 0;      int yy_n_chars;
221    
222  /* We provide macros for accessing buffer states in case in the      /* Whether we "own" the buffer - i.e., we know we created it,
223   * future we want to put the buffer states in a more general       * and can realloc() it to grow it, and should free() it to
224   * "scanner state".       * delete it.
225   */       */
226  #define YY_CURRENT_BUFFER yy_current_buffer      int yy_is_our_buffer;
227    
228        /* Whether this is an "interactive" input source; if so, and
229  /* yy_hold_char holds the character lost when yytext is formed. */       * if we're using stdio for input, then we want to use getc()
230  static char yy_hold_char;       * instead of fread(), to make sure we stop fetching input after
231         * each newline.
232  static int yy_n_chars;      /* number of characters read into yy_ch_buf */       */
233        int yy_is_interactive;
234    
235  int yyleng;      /* Whether we're considered to be at the beginning of a line.
236         * If so, '^' rules will be active on the next match, otherwise
237  /* Points to current character in buffer. */       * not.
238  static char *yy_c_buf_p = (char *) 0;       */
239  static int yy_init = 1;     /* whether we need to initialize */      int yy_at_bol;
240  static int yy_start = 0;    /* start state number */  
241        int yy_bs_lineno; /**< The line count. */
242  /* Flag which is used to allow yywrap()'s to do buffer switches      int yy_bs_column; /**< The column count. */
243   * instead of setting up a fresh yyin.  A bit of a hack ...      
244   */      /* Whether to try to fill the input buffer when we reach the
245  static int yy_did_buffer_switch_on_eof;       * end of it.
246         */
247  void yyrestart YY_PROTO(( FILE *input_file ));      int yy_fill_buffer;
248    
249  void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));      int yy_buffer_status;
250  void yy_load_buffer_state YY_PROTO(( void ));  
251  YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));  #define YY_BUFFER_NEW 0
252  void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));  #define YY_BUFFER_NORMAL 1
253  void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));      /* When an EOF's been seen but there's still some text to process
254  void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));       * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255  #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )       * shouldn't try reading from the input source any more.  We might
256         * still have a bunch of tokens to match, though, because of
257  YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));       * possible backing-up.
258  YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));       *
259  YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));       * When we actually see the EOF, we change the status to "new"
260         * (via zz_restart()), so that the user can continue scanning by
261  static void *yy_flex_alloc YY_PROTO(( yy_size_t ));       * just pointing zz_in at a new input file.
262  static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));       */
263  static void yy_flex_free YY_PROTO(( void * ));  #define YY_BUFFER_EOF_PENDING 2
264    
265  #define yy_new_buffer yy_create_buffer      };
266    #endif /* !YY_STRUCT_YY_BUFFER_STATE */
267  #define yy_set_interactive(is_interactive) \  
268      { \  /* Stack of input buffers. */
269      if ( ! yy_current_buffer ) \  static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270          yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \  static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271      yy_current_buffer->yy_is_interactive = is_interactive; \  static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
272      }  
273    /* We provide macros for accessing buffer states in case in the
274  #define yy_set_bol(at_bol) \   * future we want to put the buffer states in a more general
275      { \   * "scanner state".
276      if ( ! yy_current_buffer ) \   *
277          yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \   * Returns the top of the stack, or NULL.
278      yy_current_buffer->yy_at_bol = at_bol; \   */
279      }  #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280                              ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
281  #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)                            : NULL)
282    
283    /* Same as previous macro, but useful when we know that the buffer stack is not
284  #define YY_USES_REJECT   * NULL or when we need an lvalue. For internal use only.
285  typedef unsigned char YY_CHAR;   */
286  FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;  #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
287  typedef int yy_state_type;  
288  #define YY_FLEX_LEX_COMPAT  /* yy_hold_char holds the character lost when zz_text is formed. */
289  extern int yylineno;  static char yy_hold_char;
290  int yylineno = 1;  static int yy_n_chars;      /* number of characters read into yy_ch_buf */
291  extern char yytext[];  int zz_leng;
292    
293    /* Points to current character in buffer. */
294  static yy_state_type yy_get_previous_state YY_PROTO(( void ));  static char *yy_c_buf_p = (char *) 0;
295  static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));  static int yy_init = 0;     /* whether we need to initialize */
296  static int yy_get_next_buffer YY_PROTO(( void ));  static int yy_start = 0;    /* start state number */
297  static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));  
298    /* Flag which is used to allow zz_wrap()'s to do buffer switches
299  /* Done after the current pattern has been matched and before the   * instead of setting up a fresh zz_in.  A bit of a hack ...
300   * corresponding action - sets up yytext.   */
301   */  static int yy_did_buffer_switch_on_eof;
302  #define YY_DO_BEFORE_ACTION \  
303      yytext_ptr = yy_bp; \  void zz_restart (FILE *input_file  );
304      yyleng = (int) (yy_cp - yy_bp); \  void zz__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
305      yy_hold_char = *yy_cp; \  YY_BUFFER_STATE zz__create_buffer (FILE *file,int size  );
306      *yy_cp = '\0'; \  void zz__delete_buffer (YY_BUFFER_STATE b  );
307      if ( yyleng + yy_more_offset >= YYLMAX ) \  void zz__flush_buffer (YY_BUFFER_STATE b  );
308          YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \  void zz_push_buffer_state (YY_BUFFER_STATE new_buffer  );
309      yy_flex_strncpy( &yytext[yy_more_offset], yytext_ptr, yyleng + 1 ); \  void zz_pop_buffer_state (void );
310      yyleng += yy_more_offset; \  
311      yy_prev_more_offset = yy_more_offset; \  static void zz_ensure_buffer_stack (void );
312      yy_more_offset = 0; \  static void zz__load_buffer_state (void );
313      yy_c_buf_p = yy_cp;  static void zz__init_buffer (YY_BUFFER_STATE b,FILE *file  );
314    
315  #define YY_NUM_RULES 149  #define YY_FLUSH_BUFFER zz__flush_buffer(YY_CURRENT_BUFFER )
316  #define YY_END_OF_BUFFER 150  
317  static yyconst short int yy_acclist[695] =  YY_BUFFER_STATE zz__scan_buffer (char *base,yy_size_t size  );
318      {   0,  YY_BUFFER_STATE zz__scan_string (yyconst char *yy_str  );
319        146,  146,  118,  118,  140,  140,  131,  131,  150,  148,  YY_BUFFER_STATE zz__scan_bytes (yyconst char *bytes,int len  );
320        149,  146,  148,  149,  147,  149,  148,  149,  127,  148,  
321        149,  124,  148,  149,   19,  148,  149,   20,  148,  149,  void *zz_alloc (yy_size_t  );
322         23,  148,  149,   21,  148,  149,   13,  148,  149,   22,  void *zz_realloc (void *,yy_size_t  );
323        148,  149,   14,  148,  149,   24,  148,  149,  142,  148,  void zz_free (void *  );
324        149,16527,   16,  148,  149,   15,  148,  149,   12,  148,  
325        149,   10,  148,  149,   11,  148,  149,  145,  148,  149,  #define yy_new_buffer zz__create_buffer
326        145,  148,  149,  145,  148,  149,  145,  148,  149,  145,  
327        148,  149,  145,  148,  149,  145,  148,  149,  145,  148,  #define yy_set_interactive(is_interactive) \
328        149,  145,  148,  149,  145,  148,  149,  145,  148,  149,      { \
329        if ( ! YY_CURRENT_BUFFER ){ \
330        145,  148,  149,  145,  148,  149,  145,  148,  149,  145,          zz_ensure_buffer_stack (); \
331        148,  149,  145,  148,  149,  145,  148,  149,  145,  148,          YY_CURRENT_BUFFER_LVALUE =    \
332        149,  145,  148,  149,   17,  148,  149,   18,  148,  149,              zz__create_buffer(zz_in,YY_BUF_SIZE ); \
333         25,  148,  149,  134,  148,  149,   26,  148,  149,  118,      } \
334        149,  119,  149,  120,  149,  122,  149,  149,  126,  149,      YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
335        125,  149,  140,  149,  141,  149,  149,  137,  149,  139,      }
336        149,  131,  149,  132,  149,  130,  149,  149,  146,  147,  
337          9,  114,    4,  144,  144,  142,16527,    5,    6,    1,  #define yy_set_bol(at_bol) \
338          3,    8,    2,  145,  145,  145,  145,  145,  145,  145,      { \
339        145,  145,  145,  145,  145,  145,  145,  145,  145,   51,      if ( ! YY_CURRENT_BUFFER ){\
340            zz_ensure_buffer_stack (); \
341        145,  145,  145,  145,  145,  145,  145,  145,  145,   64,          YY_CURRENT_BUFFER_LVALUE =    \
342        145,  145,   66,  145,  145,  145,  145,  145,  145,  145,              zz__create_buffer(zz_in,YY_BUF_SIZE ); \
343         81,  145,   82,  145,  145,  145,  145,  145,  145,  145,      } \
344        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,      YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
345        145,  145,  133,  118,  119,  120,  121,  120,  115,  122,      }
346        123,  117,  122,  126,  125,  140,  141,  139,  135,  136,  
347        137,  138,  131,  132,  130,  128,  129, 8335,  144,  144,  #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
348          7,   27,  145,  145,   29,  145,   30,  145,  145,  145,  
349        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,  /* Begin user sect3 */
350        145,  145,  145,  145,  145,   53,  145,  145,  145,  145,  
351    typedef unsigned char YY_CHAR;
352         58,  145,   60,  145,  145,  145,  145,  145,  145,  145,  
353        145,  145,  145,  145,  145,  145,   79,  145,  145,  145,  FILE *zz_in = (FILE *) 0, *zz_out = (FILE *) 0;
354        145,  145,  145,  145,  145,   91,  145,  145,  145,  145,  
355        145,  145,   95,  145,  145,  145,  145,  145,  104,  145,  typedef int yy_state_type;
356        145,  145,  145,  145,  145,  115,  116,  144,  145,  145,  
357        145,  145,   34,  145,  145,   36,  145,   37,  145,   38,  #define YY_FLEX_LEX_COMPAT
358        145,  145,  145,  145,  145,  145,  145,   45,  145,  145,  extern int zz_lineno;
359        145,  145,  145,   52,  145,  145,  145,  145,  145,   59,  
360        145,   61,  145,  145,  145,  145,  145,  145,   70,  145,  int zz_lineno = 1;
361        145,  145,  145,  145,  145,  145,  145,  145,  145,   85,  
362    extern char zz_text[];
363        145,  145,  145,  145,  145,  145,  145,  145,   96,  145,  
364         98,  145,  145,  145,   99,  145,  100,  145,  145,  145,  static yy_state_type yy_get_previous_state (void );
365        145,  145,  106,  145,  145,  145,  145,  112,  145,  145,  static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
366        145,  145,   33,  145,  145,   35,  145,   39,  145,  145,  static int yy_get_next_buffer (void );
367        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,  static void yy_fatal_error (yyconst char msg[]  );
368        145,   56,  145,  145,  145,  145,   68,  145,  145,  145,  
369        145,  145,  145,  145,  145,   78,  145,   80,  145,  145,  /* Done after the current pattern has been matched and before the
370        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,   * corresponding action - sets up zz_text.
371        101,  145,  102,  145,  145,  105,  145,  107,  145,  108,   */
372        145,  145,  145,  145,  145,  145,   63,  145,   40,  145,  #define YY_DO_BEFORE_ACTION \
373        (yytext_ptr) = yy_bp; \
374        145,  145,  145,   44,  145,  145,  145,  145,  145,   54,      zz_leng = (size_t) (yy_cp - yy_bp); \
375        145,  145,  145,   62,  145,   65,  145,  145,  145,  145,      (yy_hold_char) = *yy_cp; \
376        145,  145,  145,   75,  145,  145,  145,   84,  145,  145,      *yy_cp = '\0'; \
377        145,  145,  145,   90,  145,  145,   93,  145,  145,   97,      if ( zz_leng + (yy_more_offset) >= YYLMAX ) \
378        145,  145,  145,  145,  145,   28,  145,  145,  145,  145,          YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
379        145,  145,  145,   47,  145,  145,  145,  145,  145,  145,      yy_flex_strncpy( &zz_text[(yy_more_offset)], (yytext_ptr), zz_leng + 1 ); \
380        145,  145,  145,  145,  145,   76,  145,  145,  145,   86,      zz_leng += (yy_more_offset); \
381        145,   87,  145,   88,  145,   89,  145,  145,  145,  145,      (yy_prev_more_offset) = (yy_more_offset); \
382        109,  145,  145,  145,  145,  145,  145,   42,  145,   43,      (yy_more_offset) = 0; \
383        145,  145,  145,  145,   55,  145,  145,  145,  145,  145,      (yy_c_buf_p) = yy_cp;
384    
385         72,  145,  145,   74,  145,   77,  145,  145,  145,  145,  #define YY_NUM_RULES 149
386        145,  145,  145,  145,   31,  145,  145,  145,  145,  145,  #define YY_END_OF_BUFFER 150
387         49,  145,  145,  145,  145,  145,  145,   83,  145,   92,  /* This struct is not used in this scanner,
388        145,   94,  145,  103,  145,  145,  145,  145,  145,  145,     but its presence is necessary. */
389         46,  145,   48,  145,  145,  145,   67,  145,  145,  145,  struct yy_trans_info
390        145,  145,  145,  113,  145,  145,   41,  145,  145,  145,      {
391        145,  145,   73,  145,  145,  145,   32,  145,  145,   57,      flex_int32_t yy_verify;
392        145,   69,  145,  145,  145,  145,   50,  145,   71,  145,      flex_int32_t yy_nxt;
393        145,  145,  145,  145,  145,  145,  110,  145,  145,  145,      };
394        145,  145,  111,  145  static yyconst flex_int16_t yy_acclist[695] =
395        {   0,
396      } ;        146,  146,  118,  118,  140,  140,  131,  131,  150,  148,
397          149,  146,  148,  149,  147,  149,  148,  149,  127,  148,
398  static yyconst short int yy_accept[521] =        149,  124,  148,  149,   19,  148,  149,   20,  148,  149,
399      {   0,         23,  148,  149,   21,  148,  149,   13,  148,  149,   22,
400          1,    2,    3,    4,    5,    5,    5,    6,    7,    8,        148,  149,   14,  148,  149,   24,  148,  149,  142,  148,
401          9,   10,   12,   15,   17,   19,   22,   25,   28,   31,        149,16527,   16,  148,  149,   15,  148,  149,   12,  148,
402         34,   37,   40,   43,   46,   49,   53,   56,   59,   62,        149,   10,  148,  149,   11,  148,  149,  145,  148,  149,
403         65,   68,   71,   74,   77,   80,   83,   86,   89,   92,        145,  148,  149,  145,  148,  149,  145,  148,  149,  145,
404         95,   98,  101,  104,  107,  110,  113,  116,  119,  122,        148,  149,  145,  148,  149,  145,  148,  149,  145,  148,
405        125,  128,  131,  134,  137,  140,  142,  144,  146,  148,        149,  145,  148,  149,  145,  148,  149,  145,  148,  149,
406        149,  151,  153,  155,  157,  158,  160,  162,  164,  166,  
407        168,  169,  170,  171,  172,  173,  174,  175,  176,  178,        145,  148,  149,  145,  148,  149,  145,  148,  149,  145,
408        178,  179,  180,  181,  182,  183,  184,  185,  186,  187,        148,  149,  145,  148,  149,  145,  148,  149,  145,  148,
409        188,  189,  190,  191,  192,  193,  194,  195,  196,  197,        149,  145,  148,  149,   17,  148,  149,   18,  148,  149,
410           25,  148,  149,  134,  148,  149,   26,  148,  149,  118,
411        198,  199,  200,  202,  203,  204,  205,  206,  207,  208,        149,  119,  149,  120,  149,  122,  149,  149,  126,  149,
412        209,  210,  212,  213,  215,  216,  217,  218,  219,  220,        125,  149,  140,  149,  141,  149,  149,  137,  149,  139,
413        221,  223,  225,  226,  227,  228,  229,  230,  231,  232,        149,  131,  149,  132,  149,  130,  149,  149,  146,  147,
414        233,  234,  235,  236,  237,  238,  239,  240,  241,  242,          9,  114,    4,  144,  144,  142,16527,    5,    6,    1,
415        243,  243,  244,  245,  246,  246,  247,  248,  249,  250,          3,    8,    2,  145,  145,  145,  145,  145,  145,  145,
416        251,  252,  253,  254,  254,  255,  256,  257,  258,  258,        145,  145,  145,  145,  145,  145,  145,  145,  145,   51,
417        259,  260,  261,  262,  263,  264,  265,  266,  266,  267,  
418        268,  268,  269,  270,  270,  271,  272,  274,  275,  277,        145,  145,  145,  145,  145,  145,  145,  145,  145,   64,
419        279,  280,  281,  282,  283,  284,  285,  286,  287,  288,        145,  145,   66,  145,  145,  145,  145,  145,  145,  145,
420        289,  290,  291,  292,  293,  294,  295,  296,  298,  299,         81,  145,   82,  145,  145,  145,  145,  145,  145,  145,
421          145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
422        300,  301,  303,  305,  306,  307,  308,  309,  310,  311,        145,  145,  133,  118,  119,  120,  121,  120,  115,  122,
423        312,  313,  314,  315,  316,  317,  319,  320,  321,  322,        123,  117,  122,  126,  125,  140,  141,  139,  135,  136,
424        323,  324,  325,  326,  328,  329,  330,  331,  332,  333,        137,  138,  131,  132,  130,  128,  129, 8335,  144,  144,
425        335,  336,  337,  338,  339,  341,  342,  343,  344,  345,          7,   27,  145,  145,   29,  145,   30,  145,  145,  145,
426        346,  347,  348,  348,  349,  350,  351,  352,  353,  355,        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
427        356,  358,  360,  362,  363,  364,  365,  366,  367,  368,        145,  145,  145,  145,  145,   53,  145,  145,  145,  145,
428        370,  371,  372,  373,  374,  376,  377,  378,  379,  380,  
429        382,  384,  385,  386,  387,  388,  389,  391,  392,  393,         58,  145,   60,  145,  145,  145,  145,  145,  145,  145,
430        394,  395,  396,  397,  398,  399,  400,  402,  403,  404,        145,  145,  145,  145,  145,  145,   79,  145,  145,  145,
431        405,  406,  407,  408,  409,  411,  413,  414,  415,  417,        145,  145,  145,  145,  145,   91,  145,  145,  145,  145,
432          145,  145,   95,  145,  145,  145,  145,  145,  104,  145,
433        419,  420,  421,  422,  423,  425,  426,  427,  428,  430,        145,  145,  145,  145,  145,  115,  116,  144,  145,  145,
434        431,  432,  433,  435,  436,  438,  440,  441,  442,  443,        145,  145,   34,  145,  145,   36,  145,   37,  145,   38,
435        444,  445,  446,  447,  448,  449,  450,  451,  452,  454,        145,  145,  145,  145,  145,  145,  145,   45,  145,  145,
436        455,  456,  457,  459,  460,  461,  462,  463,  464,  465,        145,  145,  145,   52,  145,  145,  145,  145,  145,   59,
437        466,  468,  470,  471,  472,  473,  474,  475,  476,  477,        145,   61,  145,  145,  145,  145,  145,  145,   70,  145,
438        478,  479,  480,  481,  483,  485,  486,  488,  490,  492,        145,  145,  145,  145,  145,  145,  145,  145,  145,   85,
439        493,  494,  495,  496,  497,  499,  501,  502,  503,  504,  
440        506,  507,  508,  509,  510,  512,  513,  514,  516,  518,        145,  145,  145,  145,  145,  145,  145,  145,   96,  145,
441        519,  520,  521,  522,  523,  524,  526,  527,  528,  530,         98,  145,  145,  145,   99,  145,  100,  145,  145,  145,
442        531,  532,  533,  534,  536,  537,  539,  540,  542,  543,        145,  145,  106,  145,  145,  145,  145,  112,  145,  145,
443          145,  145,   33,  145,  145,   35,  145,   39,  145,  145,
444        544,  545,  546,  548,  549,  550,  551,  552,  553,  554,        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
445        556,  557,  558,  559,  560,  561,  562,  563,  564,  565,        145,   56,  145,  145,  145,  145,   68,  145,  145,  145,
446        566,  568,  569,  570,  572,  574,  576,  578,  579,  580,        145,  145,  145,  145,  145,   78,  145,   80,  145,  145,
447        581,  583,  584,  585,  586,  587,  588,  590,  592,  593,        145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
448        594,  595,  597,  598,  599,  600,  601,  603,  604,  606,        101,  145,  102,  145,  145,  105,  145,  107,  145,  108,
449        608,  609,  610,  611,  612,  613,  614,  615,  617,  618,        145,  145,  145,  145,  145,  145,   63,  145,   40,  145,
450        619,  620,  621,  623,  624,  625,  626,  627,  628,  630,  
451        632,  634,  636,  637,  638,  639,  640,  641,  643,  645,        145,  145,  145,   44,  145,  145,  145,  145,  145,   54,
452        646,  647,  649,  650,  651,  652,  653,  654,  656,  657,        145,  145,  145,   62,  145,   65,  145,  145,  145,  145,
453        659,  660,  661,  662,  663,  665,  666,  667,  669,  670,        145,  145,  145,   75,  145,  145,  145,   84,  145,  145,
454          145,  145,  145,   90,  145,  145,   93,  145,  145,   97,
455        672,  674,  675,  676,  677,  679,  681,  682,  683,  684,        145,  145,  145,  145,  145,   28,  145,  145,  145,  145,
456        685,  686,  687,  689,  690,  691,  692,  693,  695,  695        145,  145,  145,   47,  145,  145,  145,  145,  145,  145,
457      } ;        145,  145,  145,  145,  145,   76,  145,  145,  145,   86,
458          145,   87,  145,   88,  145,   89,  145,  145,  145,  145,
459  static yyconst int yy_ec[256] =        109,  145,  145,  145,  145,  145,  145,   42,  145,   43,
460      {   0,        145,  145,  145,  145,   55,  145,  145,  145,  145,  145,
461          1,    1,    1,    1,    1,    1,    1,    1,    2,    3,  
462          2,    2,    2,    1,    1,    1,    1,    1,    1,    1,         72,  145,  145,   74,  145,   77,  145,  145,  145,  145,
463          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        145,  145,  145,  145,   31,  145,  145,  145,  145,  145,
464          1,    2,    4,    5,    1,    1,    1,    1,    6,    7,         49,  145,  145,  145,  145,  145,  145,   83,  145,   92,
465          8,    9,   10,   11,   12,   13,   14,   15,   15,   15,        145,   94,  145,  103,  145,  145,  145,  145,  145,  145,
466         15,   15,   15,   15,   15,   15,   15,   16,   17,   18,         46,  145,   48,  145,  145,  145,   67,  145,  145,  145,
467         19,   20,    1,    1,   21,   22,   23,   24,   25,   26,        145,  145,  145,  113,  145,  145,   41,  145,  145,  145,
468         27,   28,   29,   30,   31,   32,   33,   34,   35,   36,        145,  145,   73,  145,  145,  145,   32,  145,  145,   57,
469         37,   38,   39,   40,   41,   42,   43,   44,   45,   46,        145,   69,  145,  145,  145,  145,   50,  145,   71,  145,
470         47,   48,   49,   50,   51,    1,   30,   30,   30,   30,        145,  145,  145,  145,  145,  145,  110,  145,  145,  145,
471          145,  145,  111,  145
472         52,   30,   30,   30,   30,   30,   30,   30,   30,   30,  
473         30,   30,   30,   30,   30,   30,   30,   30,   30,   30,      } ;
474         30,   30,   53,   54,   55,    1,    1,    1,    1,    1,  
475          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,  static yyconst flex_int16_t yy_accept[521] =
476          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,      {   0,
477          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    2,    3,    4,    5,    5,    5,    6,    7,    8,
478          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          9,   10,   12,   15,   17,   19,   22,   25,   28,   31,
479          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         34,   37,   40,   43,   46,   49,   53,   56,   59,   62,
480          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         65,   68,   71,   74,   77,   80,   83,   86,   89,   92,
481          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         95,   98,  101,  104,  107,  110,  113,  116,  119,  122,
482          125,  128,  131,  134,  137,  140,  142,  144,  146,  148,
483          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        149,  151,  153,  155,  157,  158,  160,  162,  164,  166,
484          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        168,  169,  170,  171,  172,  173,  174,  175,  176,  178,
485          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        178,  179,  180,  181,  182,  183,  184,  185,  186,  187,
486          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        188,  189,  190,  191,  192,  193,  194,  195,  196,  197,
487          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,  
488          1,    1,    1,    1,    1        198,  199,  200,  202,  203,  204,  205,  206,  207,  208,
489      } ;        209,  210,  212,  213,  215,  216,  217,  218,  219,  220,
490          221,  223,  225,  226,  227,  228,  229,  230,  231,  232,
491  static yyconst int yy_meta[56] =        233,  234,  235,  236,  237,  238,  239,  240,  241,  242,
492      {   0,        243,  243,  244,  245,  246,  246,  247,  248,  249,  250,
493          1,    1,    1,    1,    1,    1,    2,    1,    3,    1,        251,  252,  253,  254,  254,  255,  256,  257,  258,  258,
494          1,    1,    1,    1,    4,    1,    1,    1,    1,    1,        259,  260,  261,  262,  263,  264,  265,  266,  266,  267,
495          4,    4,    4,    4,    4,    4,    4,    4,    4,    4,        268,  268,  269,  270,  270,  271,  272,  274,  275,  277,
496          4,    4,    4,    4,    4,    4,    4,    4,    4,    4,        279,  280,  281,  282,  283,  284,  285,  286,  287,  288,
497          4,    4,    4,    4,    4,    4,    1,    5,    1,    1,        289,  290,  291,  292,  293,  294,  295,  296,  298,  299,
498          4,    4,    6,    1,    5  
499      } ;        300,  301,  303,  305,  306,  307,  308,  309,  310,  311,
500          312,  313,  314,  315,  316,  317,  319,  320,  321,  322,
501  static yyconst short int yy_base[535] =        323,  324,  325,  326,  328,  329,  330,  331,  332,  333,
502      {   0,        335,  336,  337,  338,  339,  341,  342,  343,  344,  345,
503          0,    0,   53,   54,   61,   62,   55,   56,   66,   67,        346,  347,  348,  348,  349,  350,  351,  352,  353,  355,
504       1054, 1055,   71, 1055, 1034, 1055, 1055, 1043, 1055, 1055,        356,  358,  360,  362,  363,  364,  365,  366,  367,  368,
505       1055, 1055, 1055,   62, 1055,   65,   60, 1055,   62, 1032,        370,  371,  372,  373,  374,  376,  377,  378,  379,  380,
506       1031,   92,   51,   84,   71,  103,  113,   69, 1034,  110,        382,  384,  385,  386,  387,  388,  389,  391,  392,  393,
507        125,   78,  126,   82,  114,  144,  130,  123,   70,  146,        394,  395,  396,  397,  398,  399,  400,  402,  403,  404,
508       1055, 1055, 1055,   85, 1055,  118, 1055,  169,  174,   92,        405,  406,  407,  408,  409,  411,  413,  414,  415,  417,
509       1055, 1055,  150, 1055, 1045, 1044, 1055,  176, 1055, 1055,  
510       1043,  168, 1055, 1055, 1055, 1055,  165,  176,  179,  185,        419,  420,  421,  422,  423,  425,  426,  427,  428,  430,
511       1055, 1026, 1055, 1055, 1055, 1055, 1029, 1028,  178,  181,        431,  432,  433,  435,  436,  438,  440,  441,  442,  443,
512        184,  188,  173,  171,  108,  200,  205,   68,  194,  196,        444,  445,  446,  447,  448,  449,  450,  451,  452,  454,
513          455,  456,  457,  459,  460,  461,  462,  463,  464,  465,
514        199,  201, 1027,  203,  220,  212,  218,  222,  208,  226,        466,  468,  470,  471,  472,  473,  474,  475,  476,  477,
515        228, 1026,  232,  234,  230,  238,  239,  241,  240,  243,        478,  479,  480,  481,  483,  485,  486,  488,  490,  492,
516       1025, 1024,  244,  245,  252,  254,  250,  256,  261,  258,        493,  494,  495,  496,  497,  499,  501,  502,  503,  504,
517        262,  277,  192,  263,  271,  274,  280,  283,  284,  286,        506,  507,  508,  509,  510,  512,  513,  514,  516,  518,
518        304, 1055,  299, 1055,  308,  316, 1055,  321, 1035,  324,        519,  520,  521,  522,  523,  524,  526,  527,  528,  530,
519       1055, 1055,  326,  308, 1055, 1055,  317, 1055, 1034, 1055,        531,  532,  533,  534,  536,  537,  539,  540,  542,  543,
520       1055, 1055, 1033, 1055,  333, 1055, 1055, 1032, 1055, 1055,  
521        327, 1055,  306, 1019, 1018, 1055, 1017,  325, 1016, 1015,        544,  545,  546,  548,  549,  550,  551,  552,  553,  554,
522        326,  328,  329,  330,  332,  335,  333,  336,  337,  340,        556,  557,  558,  559,  560,  561,  562,  563,  564,  565,
523        344,  341,  349,  351,  358,  360,  361, 1014,  363,  365,        566,  568,  569,  570,  572,  574,  576,  578,  579,  580,
524          581,  583,  584,  585,  586,  587,  588,  590,  592,  593,
525        359, 1013, 1012,  367,  378,  141,  379,  380,  356,  381,        594,  595,  597,  598,  599,  600,  601,  603,  604,  606,
526        384,  386,  385,  387,  392,  394,  395,  388,  397,  411,        608,  609,  610,  611,  612,  613,  614,  615,  617,  618,
527        393,  389,  408, 1011,  412,  413,  417,  414,  416, 1010,        619,  620,  621,  623,  624,  625,  626,  627,  628,  630,
528        418,  419,  420,  421, 1009,  428,  432,  433,  436,  431,        632,  634,  636,  637,  638,  639,  640,  641,  643,  645,
529       1020, 1055, 1007, 1006,  437,  439,  440,  442, 1005,  447,        646,  647,  649,  650,  651,  652,  653,  654,  656,  657,
530       1004, 1003, 1002,  452,  449,  458,  456,  459,  460, 1001,        659,  660,  661,  662,  663,  665,  666,  667,  669,  670,
531        466,  462,  467,  471, 1000,  469,  474,  475,  479,  999,  
532        998,  478,  480,  482,  483,  487,  997,  491,  494,  493,        672,  674,  675,  676,  677,  679,  681,  682,  683,  684,
533        495,  496,  500,  498,  502,  504,  996,  499,  505,  520,        685,  686,  687,  689,  690,  691,  692,  693,  695,  695
534        509,  506,  518,  519,  995,  994,  521,  528,  993,  992,      } ;
535    
536        531,  532,  533,  534,  991,  535,  537,  538,  539,  541,  static yyconst flex_int32_t yy_ec[256] =
537        546,  540,  990,  548,  989,  988,  549,  552,  554,  561,      {   0,
538        555,  558,  562,  567,  566,  568,  569,  570,  987,  572,          1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
539        571,  576,  986,  578,  583,  584,  585,  587,  591,  592,          2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
540        985,  984,  586,  599,  601,  603,  607,  605,  608,  609,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
541        611,  612,  616,  983,  982,  617,  981,  980,  979,  619,          1,    2,    4,    5,    1,    1,    1,    1,    6,    7,
542        618,  622,  621,  623,  978,  977,  625,  630,  631,  976,          8,    9,   10,   11,   12,   13,   14,   15,   15,   15,
543        632,  634,  641,  644,  975,  642,  647,  974,  973,  643,         15,   15,   15,   15,   15,   15,   15,   16,   17,   18,
544        651,  650,  652,  653,  662,  655,  654,  663,  972,  665,         19,   20,    1,    1,   21,   22,   23,   24,   25,   26,
545        669,  670,  671,  971,  672,  970,  674,  969,  673,  682,         27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
546           37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
547        676,  684,  968,  688,  689,  691,  694,  695,  698,  967,         47,   48,   49,   50,   51,    1,   30,   30,   30,   30,
548        699,  700,  701,  703,  702,  706,  708,  707,  721,  715,  
549        966,  723,  710,  965,  964,  963,  962,  728,  724,  729,         52,   30,   30,   30,   30,   30,   30,   30,   30,   30,
550        709,  722,  736,  739,  737,  740,  961,  960,  741,  742,         30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
551        744,  959,  746,  748,  743,  754,  958,  757,  957,  956,         30,   30,   53,   54,   55,    1,    1,    1,    1,    1,
552        755,  770,  750,  756,  751,  752,  758,  955,  771,  772,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
553        774,  780,  781,  782,  783,  787,  785,  790,  954,  953,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
554        952,  948,  789,  796,  797,  791,  793,  947,  908,  804,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
555        805,  896,  792,  806,  811,  813,  815,  868,  816,  867,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
556        819,  818,  820,  821,  865,  822,  824,  863,  827,  862,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
557            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
558        861,  828,  829,  830,  857,  854,  832,  836,  841,  835,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
559        837,  833,  307,  840,  844,  852,  856,  247, 1055,  885,  
560        891,  897,  903,   90,  909,  915,  921,  927,  933,  938,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
561        944,  948,  954,  960          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
562      } ;          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
563            1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
564  static yyconst short int yy_def[535] =          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
565      {   0,          1,    1,    1,    1,    1
566        519,    1,  520,  520,  521,  521,  522,  522,  523,  523,      } ;
567        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,  
568        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,  static yyconst flex_int32_t yy_meta[56] =
569        519,  524,  524,  524,  524,  524,  524,  524,  524,  524,      {   0,
570        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,          1,    1,    1,    1,    1,    1,    2,    1,    3,    1,
571        519,  519,  519,  519,  519,  525,  519,  526,  527,  528,          1,    1,    1,    1,    4,    1,    1,    1,    1,    1,
572        519,  519,  529,  519,  530,  531,  519,  532,  519,  519,          4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
573        533,  519,  519,  519,  519,  519,  519,  519,  519,  519,          4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
574        519,  519,  519,  519,  519,  519,  524,  524,  524,  524,          4,    4,    4,    4,    4,    4,    1,    5,    1,    1,
575        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,          4,    4,    6,    1,    5
576        } ;
577        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,  
578        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,  static yyconst flex_int16_t yy_base[535] =
579        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,      {   0,
580        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,          0,    0,   53,   54,   61,   62,   55,   56,   66,   67,
581        519,  519,  525,  519,  519,  526,  519,  526,  534,  527,       1054, 1055,   71, 1055, 1034, 1055, 1055, 1043, 1055, 1055,
582        519,  519,  527,  528,  519,  519,  529,  519,  530,  519,       1055, 1055, 1055,   62, 1055,   65,   60, 1055,   62, 1032,
583        519,  519,  531,  519,  532,  519,  519,  533,  519,  519,       1031,   92,   51,   84,   71,  103,  113,   69, 1034,  110,
584        519,  519,  519,  519,  519,  519,  524,  524,  524,  524,        125,   78,  126,   82,  114,  144,  130,  123,   70,  146,
585        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1055, 1055, 1055,   85, 1055,  118, 1055,  169,  174,   92,
586        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1055, 1055,  150, 1055, 1045, 1044, 1055,  176, 1055, 1055,
587         1043,  168, 1055, 1055, 1055, 1055,  165,  176,  179,  185,
588        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1055, 1026, 1055, 1055, 1055, 1055, 1029, 1028,  178,  181,
589        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        184,  188,  173,  171,  108,  200,  205,   68,  194,  196,
590        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,  
591        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        199,  201, 1027,  203,  220,  212,  218,  222,  208,  226,
592        534,  519,  519,  519,  524,  524,  524,  524,  524,  524,        228, 1026,  232,  234,  230,  238,  239,  241,  240,  243,
593        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1025, 1024,  244,  245,  252,  254,  250,  256,  261,  258,
594        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        262,  277,  192,  263,  271,  274,  280,  283,  284,  286,
595        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        304, 1055,  299, 1055,  308,  316, 1055,  321, 1035,  324,
596        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1055, 1055,  326,  308, 1055, 1055,  317, 1055, 1034, 1055,
597        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1055, 1055, 1033, 1055,  333, 1055, 1055, 1032, 1055, 1055,
598          327, 1055,  306, 1019, 1018, 1055, 1017,  325, 1016, 1015,
599        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        326,  328,  329,  330,  332,  335,  333,  336,  337,  340,
600        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        344,  341,  349,  351,  358,  360,  361, 1014,  363,  365,
601        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,  
602        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        359, 1013, 1012,  367,  378,  141,  379,  380,  356,  381,
603        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        384,  386,  385,  387,  392,  394,  395,  388,  397,  411,
604        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        393,  389,  408, 1011,  412,  413,  417,  414,  416, 1010,
605        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        418,  419,  420,  421, 1009,  428,  432,  433,  436,  431,
606        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1020, 1055, 1007, 1006,  437,  439,  440,  442, 1005,  447,
607        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,       1004, 1003, 1002,  452,  449,  458,  456,  459,  460, 1001,
608        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        466,  462,  467,  471, 1000,  469,  474,  475,  479,  999,
609          998,  478,  480,  482,  483,  487,  997,  491,  494,  493,
610        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        495,  496,  500,  498,  502,  504,  996,  499,  505,  520,
611        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        509,  506,  518,  519,  995,  994,  521,  528,  993,  992,
612        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,  
613        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        531,  532,  533,  534,  991,  535,  537,  538,  539,  541,
614        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        546,  540,  990,  548,  989,  988,  549,  552,  554,  561,
615        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        555,  558,  562,  567,  566,  568,  569,  570,  987,  572,
616        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        571,  576,  986,  578,  583,  584,  585,  587,  591,  592,
617        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        985,  984,  586,  599,  601,  603,  607,  605,  608,  609,
618        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        611,  612,  616,  983,  982,  617,  981,  980,  979,  619,
619        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        618,  622,  621,  623,  978,  977,  625,  630,  631,  976,
620          632,  634,  641,  644,  975,  642,  647,  974,  973,  643,
621        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,        651,  650,  652,  653,  662,  655,  654,  663,  972,  665,
622        524,  524,  524,  524,  524,  524,  524,  524,    0,  519,        669,  670,  671,  971,  672,  970,  674,  969,  673,  682,
623        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,  
624        519,  519,  519,  519        676,  684,  968,  688,  689,  691,  694,  695,  698,  967,
625      } ;        699,  700,  701,  703,  702,  706,  708,  707,  721,  715,
626          966,  723,  710,  965,  964,  963,  962,  728,  724,  729,
627  static yyconst short int yy_nxt[1111] =        709,  722,  736,  739,  737,  740,  961,  960,  741,  742,
628      {   0,        744,  959,  746,  748,  743,  754,  958,  757,  957,  956,
629         12,   13,   14,   15,   16,   17,   18,   19,   20,   21,        755,  770,  750,  756,  751,  752,  758,  955,  771,  772,
630         22,   23,   24,   25,   26,   27,   28,   29,   30,   31,        774,  780,  781,  782,  783,  787,  785,  790,  954,  953,
631         32,   33,   34,   35,   36,   37,   38,   39,   40,   39,        952,  948,  789,  796,  797,  791,  793,  947,  908,  804,
632         39,   39,   41,   42,   43,   44,   39,   45,   46,   47,        805,  896,  792,  806,  811,  813,  815,  868,  816,  867,
633         48,   49,   50,   39,   39,   39,   51,   12,   52,   53,        819,  818,  820,  821,  865,  822,  824,  863,  827,  862,
634         12,   39,   54,   55,   12,   57,   57,   64,   64,   58,  
635         58,   59,   59,   61,   61,   87,   62,   62,   69,   69,        861,  828,  829,  830,  857,  854,  832,  836,  841,  835,
636         70,   70,   72,   73,   76,   81,   77,   78,   82,   79,        837,  833,  307,  840,  844,  852,  856,  247, 1055,  885,
637         83,   84,   87,   87,   87,   87,  141,  142,   95,   80,        891,  897,  903,   90,  909,  915,  921,  927,  933,  938,
638        138,  100,   87,   88,  155,  101,   87,  156,   87,  102,        944,  948,  954,  960
639        } ;
640        111,  191,   65,   65,   96,  103,   87,   66,   66,   67,  
641         67,   97,  120,   71,   71,   89,   80,   87,   98,  125,  static yyconst flex_int16_t yy_def[535] =
642        144,   99,   87,   90,   87,   91,  145,   87,   87,   92,      {   0,
643         93,   94,  185,  107,  104,  112,  105,   87,  126,   87,        519,    1,  520,  520,  521,  521,  522,  522,  523,  523,
644         87,  108,  113,  114,   87,  116,  106,  109,  115,  117,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
645        110,  121,  158,  118,  127,   87,  136,  134,   87,  119,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
646         87,  137,  272,  122,  128,  123,  124,  135,  129,   72,        519,  524,  524,  524,  524,  524,  524,  524,  524,  524,
647         73,  147,  130,  139,  140,  148,  151,  149,  166,   77,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
648        167,  152,  153,  131,  132,   87,  133,   87,  172,  171,        519,  519,  519,  519,  519,  525,  519,  526,  527,  528,
649        173,   78,   87,   79,  174,   87,  174,  159,   87,  175,        519,  519,  529,  519,  530,  531,  519,  532,  519,  519,
650          533,  519,  519,  519,  519,  519,  519,  519,  519,  519,
651        171,  177,   87,   80,  160,  184,   87,  179,   87,  178,        519,  519,  519,  519,  519,  519,  524,  524,  524,  524,
652         87,  183,  181,   87,   87,   87,  171,   87,  192,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
653        231,  194,   87,  168,  195,  182,   87,  171,  180,  189,  
654         80,  186,   87,  196,   87,  193,   87,  187,  188,  190,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
655         87,  197,   87,  198,   87,  203,   87,  199,   87,  201,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
656        204,  200,   87,   87,   87,   87,  208,   87,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
657        205,   87,  206,  215,   87,  202,   87,  207,   87,  209,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
658         87,  217,   87,  210,  214,   87,   87,   87,  213,  220,        519,  519,  525,  519,  519,  526,  519,  526,  534,  527,
659        211,  212,  216,  224,  218,   87,  219,  232,   87,  221,        519,  519,  527,  528,  519,  519,  529,  519,  530,  519,
660        222,   87,  226,  223,   87,  225,  228,   87,   87,  229,        519,  519,  531,  519,  532,  519,  519,  533,  519,  519,
661          519,  519,  519,  519,  519,  519,  524,  524,  524,  524,
662         87,  144,  234,  227,  235,  141,  142,  145,  237,  230,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
663        155,  233,  238,  156,  236,  152,  145,  239,  147,  158,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
664        173,   87,  519,  147,  519,  240,  151,  148,  151,  519,  
665        171,  519,  519,  152,  153,  166,  243,  167,  243,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
666         87,  244,   87,   87,   87,  245,   87,   87,  247,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
667         87,   87,  250,  248,   87,   87,  252,  171,   87,  254,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
668        253,  259,  249,   87,  159,   87,  251,  256,  255,  260,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
669         87,  160,   87,   87,   87,   87,  246,   87,  262,   87,        534,  519,  519,  519,  524,  524,  524,  524,  524,  524,
670        168,   87,  257,  258,  264,  265,  263,  266,  261,  267,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
671        268,  270,   87,   87,   87,   87,  275,  269,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
672          524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
673         87,   87,   87,   87,  277,  276,   87,   87,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
674        271,   87,  281,  273,  279,  282,  283,  274,  284,  285,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
675        287,  278,   87,  286,  290,   87,   87,   87,   87,  291,  
676         87,   87,   87,   87,   87,   87,  280,  294,  288,  289,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
677        293,  295,   87,  297,  300,   87,   87,   87,  292,  296,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
678         87,   87,  299,   87,   87,  301,   87,  298,  309,  311,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
679        302,   87,  303,   87,  307,  305,   87,  308,  304,  306,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
680         87,  317,   87,   87,   87,  310,   87,  315,  312,  314,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
681         87,   87,  316,   87,  313,   87,  318,  320,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
682        322,  326,   87,   87,   87,  319,   87,   87,  330,  321,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
683          524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
684        324,   87,  323,  329,  325,   87,  332,   87,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
685         87,  327,   87,   87,   87,  335,   87,  331,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
686         87,  337,  333,   87,  334,  328,  336,  345,  340,  339,  
687        338,  341,   87,   87,   87,   87,  342,  348,  346,  343,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
688        347,  351,   87,  349,  344,   87,   87,   87,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
689        353,   87,   87,   87,   87,   87,  350,  356,  357,  358,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
690         87,  359,   87,   87,  354,  362,   87,  364,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
691        355,  352,   87,  366,  368,   87,   87,  363,  371,  370,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
692         87,   87,   87,   87,   87,   87,   87,  365,  360,  361,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
693         87,  367,   87,  372,  369,  373,  380,   87,   87,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
694          524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
695         87,   87,  376,  378,  374,   87,   87,  375,  382,  377,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
696        379,  385,  383,   87,  386,   87,  381,   87,  384,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
697        387,   87,   87,   87,  390,   87,   87,  391,  388,  392,  
698         87,   87,   87,   87,  395,   87,   87,   87,  389,   87,        524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
699        400,  394,  393,  398,   87,   87,   87,  405,   87,  404,        524,  524,  524,  524,  524,  524,  524,  524,    0,  519,
700        396,  397,  401,  406,  399,   87,   87,   87,   87,  402,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
701        403,   87,  413,  407,   87,   87,   87,   87,   87,   87,        519,  519,  519,  519
702        409,  408,  412,  410,  414,  416,   87,   87,  417,   87,      } ;
703        411,  415,  420,   87,   87,   87,   87,   87,   87,  424,  
704         87,  423,  419,  421,  426,  427,   87,  418,   87,  422,  static yyconst flex_int16_t yy_nxt[1111] =
705        {   0,
706        428,  429,   87,   87,  433,   87,  431,  425,   87,   87,         12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
707        432,  430,   87,   87,   87,   87,   87,   87,  434,  438,         22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
708         87,   87,   87,   87,   87,  436,  439,  440,  445,   87,         32,   33,   34,   35,   36,   37,   38,   39,   40,   39,
709        444,  447,  442,  437,  441,   87,   87,   87,   87,  435,         39,   39,   41,   42,   43,   44,   39,   45,   46,   47,
710        443,  446,   87,   87,  453,  448,  449,  450,  451,  454,         48,   49,   50,   39,   39,   39,   51,   12,   52,   53,
711         87,   87,  452,   87,   87,   87,   87,   87,   87,  455,         12,   39,   54,   55,   12,   57,   57,   64,   64,   58,
712         87,  456,   87,  458,   87,   87,   87,  457,   87,   87,         58,   59,   59,   61,   61,   87,   62,   62,   69,   69,
713         87,   87,   87,  460,  461,  459,  462,  463,  467,  469,         70,   70,   72,   73,   76,   81,   77,   78,   82,   79,
714        464,  465,  466,  468,   87,   87,   87,  472,   87,  471,         83,   84,   87,   87,   87,   87,  141,  142,   95,   80,
715        473,  476,  477,  470,   87,   87,   87,   87,  475,   87,        138,  100,   87,   88,  155,  101,   87,  156,   87,  102,
716    
717        478,   87,  474,   87,   87,   87,   87,   87,  484,  482,        111,  191,   65,   65,   96,  103,   87,   66,   66,   67,
718         87,   87,  480,  479,  485,  483,  486,  487,   87,   87,         67,   97,  120,   71,   71,   89,   80,   87,   98,  125,
719         87,  488,  481,  489,  490,   87,  493,   87,  491,   87,        144,   99,   87,   90,   87,   91,  145,   87,   87,   92,
720         87,  492,   87,   87,   87,   87,   87,  496,   87,  497,         93,   94,  185,  107,  104,  112,  105,   87,  126,   87,
721        498,   87,   87,   87,   87,  500,   87,   87,  495,   87,         87,  108,  113,  114,   87,  116,  106,  109,  115,  117,
722         87,   87,  509,  501,   87,   87,  494,  499,   87,  512,        110,  121,  158,  118,  127,   87,  136,  134,   87,  119,
723        502,  513,  506,  510,  516,  505,   87,  507,   87,  508,         87,  137,  272,  122,  128,  123,  124,  135,  129,   72,
724         87,   87,  503,  511,  504,   87,   87,   87,  515,   87,         73,  147,  130,  139,  140,  148,  151,  149,  166,   77,
725        518,   87,   87,  514,  517,   56,   56,   56,   56,   56,        167,  152,  153,  131,  132,   87,  133,   87,  172,  171,
726         56,   60,   60,   60,   60,   60,   60,   63,   63,   63,        173,   78,   87,   79,  174,   87,  174,  159,   87,  175,
727    
728         63,   63,   63,   68,   68,   68,   68,   68,   68,  143,        171,  177,   87,   80,  160,  184,   87,  179,   87,  178,
729         87,  143,  143,  143,  143,  146,  146,  146,  146,  146,         87,  183,  181,   87,   87,   87,  171,   87,  192,   87,
730        146,  150,   87,  150,  150,  150,  150,  154,  154,  154,        231,  194,   87,  168,  195,  182,   87,  171,  180,  189,
731        154,  154,  154,  157,  157,  157,  157,  157,  161,  161,         80,  186,   87,  196,   87,  193,   87,  187,  188,  190,
732        161,  161,  161,  161,  163,  163,  163,  163,  165,  165,         87,  197,   87,  198,   87,  203,   87,  199,   87,  201,
733        165,  165,  165,  165,  169,  169,  169,  169,  169,  169,        204,  200,   87,   87,   87,   87,  208,   87,   87,   87,
734        241,   87,   87,  241,  241,  241,   87,   87,   87,   87,        205,   87,  206,  215,   87,  202,   87,  207,   87,  209,
735         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,         87,  217,   87,  210,  214,   87,   87,   87,  213,  220,
736         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,        211,  212,  216,  224,  218,   87,  219,  232,   87,  221,
737         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,        222,   87,  226,  223,   87,  225,  228,   87,   87,  229,
738    
739         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,         87,  144,  234,  227,  235,  141,  142,  145,  237,  230,
740         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,        155,  233,  238,  156,  236,  152,  145,  239,  147,  158,
741        244,  244,  242,   87,   87,   87,   87,   87,   87,   87,        173,   87,  519,  147,  519,  240,  151,  148,  151,  519,
742         87,   87,  175,  175,  170,  164,  162,  242,   87,   87,        171,  519,  519,  152,  153,  166,  243,  167,  243,   87,
743         87,   87,   87,   87,  176,  170,  164,  162,   87,   86,         87,  244,   87,   87,   87,  245,   87,   87,  247,   87,
744         85,   75,   74,  519,   11,  519,  519,  519,  519,  519,         87,   87,  250,  248,   87,   87,  252,  171,   87,  254,
745        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        253,  259,  249,   87,  159,   87,  251,  256,  255,  260,
746        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,         87,  160,   87,   87,   87,   87,  246,   87,  262,   87,
747        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        168,   87,  257,  258,  264,  265,  263,  266,  261,  267,
748        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        268,  270,   87,   87,   87,   87,  275,  269,   87,   87,
749    
750        519,  519,  519,  519,  519,  519,  519,  519,  519,  519         87,   87,   87,   87,  277,  276,   87,   87,   87,   87,
751      } ;        271,   87,  281,  273,  279,  282,  283,  274,  284,  285,
752          287,  278,   87,  286,  290,   87,   87,   87,   87,  291,
753  static yyconst short int yy_chk[1111] =         87,   87,   87,   87,   87,   87,  280,  294,  288,  289,
754      {   0,        293,  295,   87,  297,  300,   87,   87,   87,  292,  296,
755          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         87,   87,  299,   87,   87,  301,   87,  298,  309,  311,
756          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        302,   87,  303,   87,  307,  305,   87,  308,  304,  306,
757          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         87,  317,   87,   87,   87,  310,   87,  315,  312,  314,
758          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,         87,   87,  316,   87,  313,   87,  318,  320,   87,   87,
759          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,        322,  326,   87,   87,   87,  319,   87,   87,  330,  321,
760          1,    1,    1,    1,    1,    3,    4,    7,    8,    3,  
761          4,    3,    4,    5,    6,   33,    5,    6,    9,   10,        324,   87,  323,  329,  325,   87,  332,   87,   87,   87,
762          9,   10,   13,   13,   24,   27,   24,   26,   27,   26,         87,  327,   87,   87,   87,  335,   87,  331,   87,   87,
763         29,   29,   98,   38,   49,   35,   54,   54,   33,   26,         87,  337,  333,   87,  334,  328,  336,  345,  340,  339,
764         49,   35,   42,  524,   60,   35,   44,   60,   34,   35,        338,  341,   87,   87,   87,   87,  342,  348,  346,  343,
765          347,  351,   87,  349,  344,   87,   87,   87,   87,   87,
766         38,   98,    7,    8,   34,   35,   32,    7,    8,    7,        353,   87,   87,   87,   87,   87,  350,  356,  357,  358,
767          8,   34,   42,    9,   10,   32,   26,   36,   34,   44,         87,  359,   87,   87,  354,  362,   87,  364,   87,   87,
768         56,   34,   95,   32,   40,   32,   56,   37,   45,   32,        355,  352,   87,  366,  368,   87,   87,  363,  371,  370,
769         32,   32,   95,   37,   36,   40,   36,   48,   45,   41,         87,   87,   87,   87,   87,   87,   87,  365,  360,  361,
770         43,   37,   40,   40,   47,   41,   36,   37,   40,   41,         87,  367,   87,  372,  369,  373,  380,   87,   87,   87,
771         37,   43,   63,   41,   45,  206,   48,   47,   46,   41,  
772         50,   48,  206,   43,   46,   43,   43,   47,   46,   72,         87,   87,  376,  378,  374,   87,   87,  375,  382,  377,
773         72,   58,   46,   50,   50,   58,   59,   58,   68,   77,        379,  385,  383,   87,  386,   87,  381,   87,  384,   87,
774         68,   59,   59,   46,   46,   94,   46,   93,   78,   77,        387,   87,   87,   87,  390,   87,   87,  391,  388,  392,
775         78,   79,   89,   79,   80,   90,   80,   63,   91,   80,         87,   87,   87,   87,  395,   87,   87,   87,  389,   87,
776          400,  394,  393,  398,   87,   87,   87,  405,   87,  404,
777         78,   89,   92,   79,   63,   94,  133,   91,   99,   90,        396,  397,  401,  406,  399,   87,   87,   87,   87,  402,
778        100,   93,   92,  101,   96,  102,   77,  104,   99,   97,        403,   87,  413,  407,   87,   87,   87,   87,   87,   87,
779        133,  101,  109,   68,  101,   92,  106,   78,   91,   97,        409,  408,  412,  410,  414,  416,   87,   87,  417,   87,
780         79,   96,  107,  102,  105,  100,  108,   96,   96,   97,        411,  415,  420,   87,   87,   87,   87,   87,   87,  424,
781        110,  104,  111,  105,  115,  109,  113,  106,  114,  107,         87,  423,  419,  421,  426,  427,   87,  418,   87,  422,
782        110,  106,  116,  117,  119,  118,  114,  120,  123,  124,  
783        110,  518,  111,  119,  127,  108,  125,  113,  126,  114,        428,  429,   87,   87,  433,   87,  431,  425,   87,   87,
784        128,  123,  130,  114,  118,  129,  131,  134,  117,  126,        432,  430,   87,   87,   87,   87,   87,   87,  434,  438,
785        115,  116,  120,  127,  124,  135,  125,  134,  136,  126,         87,   87,   87,   87,   87,  436,  439,  440,  445,   87,
786        126,  132,  129,  126,  137,  128,  131,  138,  139,  132,        444,  447,  442,  437,  441,   87,   87,   87,   87,  435,
787          443,  446,   87,   87,  453,  448,  449,  450,  451,  454,
788        140,  143,  136,  130,  137,  141,  141,  143,  139,  132,         87,   87,  452,   87,   87,   87,   87,   87,   87,  455,
789        154,  135,  139,  154,  138,  145,  145,  140,  146,  157,         87,  456,   87,  458,   87,   87,   87,  457,   87,   87,
790        173,  513,  146,  148,  146,  140,  150,  148,  153,  148,         87,   87,   87,  460,  461,  459,  462,  463,  467,  469,
791        173,  150,  150,  153,  153,  165,  171,  165,  171,  178,        464,  465,  466,  468,   87,   87,   87,  472,   87,  471,
792        181,  171,  182,  183,  184,  178,  185,  187,  182,  186,        473,  476,  477,  470,   87,   87,   87,   87,  475,   87,
793        188,  189,  185,  183,  190,  192,  187,  173,  191,  189,  
794        188,  192,  184,  193,  157,  194,  186,  191,  190,  193,        478,   87,  474,   87,   87,   87,   87,   87,  484,  482,
795        209,  157,  195,  201,  196,  197,  181,  199,  195,  200,         87,   87,  480,  479,  485,  483,  486,  487,   87,   87,
796        165,  204,  191,  191,  196,  197,  195,  199,  194,  200,         87,  488,  481,  489,  490,   87,  493,   87,  491,   87,
797        201,  204,  205,  207,  208,  210,  209,  201,  211,  213,         87,  492,   87,   87,   87,   87,   87,  496,   87,  497,
798          498,   87,   87,   87,   87,  500,   87,   87,  495,   87,
799        212,  214,  218,  222,  211,  210,  215,  221,  216,  217,         87,   87,  509,  501,   87,   87,  494,  499,   87,  512,
800        205,  219,  213,  207,  212,  214,  215,  208,  216,  217,        502,  513,  506,  510,  516,  505,   87,  507,   87,  508,
801        219,  211,  223,  218,  221,  220,  225,  226,  228,  222,         87,   87,  503,  511,  504,   87,   87,   87,  515,   87,
802        229,  227,  231,  232,  233,  234,  212,  226,  219,  220,        518,   87,   87,  514,  517,   56,   56,   56,   56,   56,
803        225,  227,  236,  229,  233,  240,  237,  238,  223,  228,         56,   60,   60,   60,   60,   60,   60,   63,   63,   63,
804        239,  245,  232,  246,  247,  234,  248,  231,  240,  246,  
805        234,  250,  234,  255,  238,  237,  254,  239,  236,  237,         63,   63,   63,   68,   68,   68,   68,   68,   68,  143,
806        257,  255,  256,  258,  259,  245,  262,  250,  246,  248,         87,  143,  143,  143,  143,  146,  146,  146,  146,  146,
807        261,  263,  254,  266,  247,  264,  256,  258,  267,  268,        146,  150,   87,  150,  150,  150,  150,  154,  154,  154,
808        261,  266,  272,  269,  273,  257,  274,  275,  272,  259,        154,  154,  154,  157,  157,  157,  157,  157,  161,  161,
809          161,  161,  161,  161,  163,  163,  163,  163,  165,  165,
810        263,  276,  262,  269,  264,  278,  274,  280,  279,  281,        165,  165,  165,  165,  169,  169,  169,  169,  169,  169,
811        282,  267,  284,  288,  283,  278,  285,  273,  286,  289,        241,   87,   87,  241,  241,  241,   87,   87,   87,   87,
812        292,  280,  275,  291,  276,  268,  279,  288,  282,  281,         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
813        280,  283,  293,  294,  290,  297,  284,  291,  289,  285,         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
814        290,  294,  298,  292,  286,  301,  302,  303,  304,  306,         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
815        298,  307,  308,  309,  312,  310,  293,  303,  304,  306,  
816        311,  307,  314,  317,  301,  310,  318,  312,  319,  321,         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
817        302,  297,  322,  317,  319,  320,  323,  311,  322,  321,         87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
818        325,  324,  326,  327,  328,  331,  330,  314,  308,  309,        244,  244,  242,   87,   87,   87,   87,   87,   87,   87,
819        332,  318,  334,  323,  320,  324,  332,  335,  336,  337,         87,   87,  175,  175,  170,  164,  162,  242,   87,   87,
820           87,   87,   87,   87,  176,  170,  164,  162,   87,   86,
821        343,  338,  327,  330,  325,  339,  340,  326,  335,  328,         85,   75,   74,  519,   11,  519,  519,  519,  519,  519,
822        331,  338,  336,  344,  339,  345,  334,  346,  337,  348,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
823        340,  347,  349,  350,  345,  351,  352,  346,  343,  347,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
824        353,  356,  361,  360,  350,  363,  362,  364,  344,  367,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
825        360,  349,  348,  353,  368,  369,  371,  364,  372,  363,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
826        351,  352,  360,  367,  356,  373,  376,  380,  374,  361,  
827        362,  377,  376,  368,  382,  381,  383,  384,  387,  386,        519,  519,  519,  519,  519,  519,  519,  519,  519,  519
828        371,  369,  374,  372,  377,  381,  385,  388,  382,  390,      } ;
829        373,  380,  385,  391,  392,  393,  395,  399,  397,  390,  
830        401,  388,  384,  386,  392,  393,  400,  383,  402,  387,  static yyconst flex_int16_t yy_chk[1111] =
831        {   0,
832        395,  397,  404,  405,  402,  406,  400,  391,  407,  408,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833        401,  399,  409,  411,  412,  413,  415,  414,  404,  408,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834        416,  418,  417,  431,  423,  406,  409,  411,  416,  420,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835        415,  418,  413,  407,  412,  419,  432,  422,  429,  405,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
836        414,  417,  428,  430,  429,  419,  420,  422,  423,  430,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
837        433,  435,  428,  434,  436,  439,  440,  445,  441,  431,          1,    1,    1,    1,    1,    3,    4,    7,    8,    3,
838        443,  432,  444,  434,  453,  455,  456,  433,  446,  451,          4,    3,    4,    5,    6,   33,    5,    6,    9,   10,
839        454,  448,  457,  436,  439,  435,  440,  441,  446,  451,          9,   10,   13,   13,   24,   27,   24,   26,   27,   26,
840        443,  444,  445,  448,  452,  459,  460,  454,  461,  453,         29,   29,   98,   38,   49,   35,   54,   54,   33,   26,
841        455,  459,  460,  452,  462,  463,  464,  465,  457,  467,         49,   35,   42,  524,   60,   35,   44,   60,   34,   35,
842    
843        461,  466,  456,  473,  468,  476,  483,  477,  467,  465,         38,   98,    7,    8,   34,   35,   32,    7,    8,    7,
844        474,  475,  463,  462,  468,  466,  473,  474,  480,  481,          8,   34,   42,    9,   10,   32,   26,   36,   34,   44,
845        484,  475,  464,  476,  477,  485,  483,  486,  480,  487,         56,   34,   95,   32,   40,   32,   56,   37,   45,   32,
846        489,  481,  492,  491,  493,  494,  496,  486,  497,  487,         32,   32,   95,   37,   36,   40,   36,   48,   45,   41,
847        489,  499,  502,  503,  504,  492,  507,  512,  485,  510,         43,   37,   40,   40,   47,   41,   36,   37,   40,   41,
848        508,  511,  507,  493,  514,  509,  484,  491,  515,  510,         37,   43,   63,   41,   45,  206,   48,   47,   46,   41,
849        494,  511,  502,  508,  515,  499,  516,  503,  506,  504,         50,   48,  206,   43,   46,   43,   43,   47,   46,   72,
850        517,  505,  496,  509,  497,  501,  500,  498,  514,  495,         72,   58,   46,   50,   50,   58,   59,   58,   68,   77,
851        517,  490,  488,  512,  516,  520,  520,  520,  520,  520,         68,   59,   59,   46,   46,   94,   46,   93,   78,   77,
852        520,  521,  521,  521,  521,  521,  521,  522,  522,  522,         78,   79,   89,   79,   80,   90,   80,   63,   91,   80,
853    
854        522,  522,  522,  523,  523,  523,  523,  523,  523,  525,         78,   89,   92,   79,   63,   94,  133,   91,   99,   90,
855        482,  525,  525,  525,  525,  526,  526,  526,  526,  526,        100,   93,   92,  101,   96,  102,   77,  104,   99,   97,
856        526,  527,  479,  527,  527,  527,  527,  528,  528,  528,        133,  101,  109,   68,  101,   92,  106,   78,   91,   97,
857        528,  528,  528,  529,  529,  529,  529,  529,  530,  530,         79,   96,  107,  102,  105,  100,  108,   96,   96,   97,
858        530,  530,  530,  530,  531,  531,  531,  531,  532,  532,        110,  104,  111,  105,  115,  109,  113,  106,  114,  107,
859        532,  532,  532,  532,  533,  533,  533,  533,  533,  533,        110,  106,  116,  117,  119,  118,  114,  120,  123,  124,
860        534,  478,  472,  534,  534,  534,  471,  470,  469,  458,        110,  518,  111,  119,  127,  108,  125,  113,  126,  114,
861        450,  449,  447,  442,  438,  437,  427,  426,  425,  424,        128,  123,  130,  114,  118,  129,  131,  134,  117,  126,
862        421,  410,  403,  398,  396,  394,  389,  379,  378,  375,        115,  116,  120,  127,  124,  135,  125,  134,  136,  126,
863        370,  366,  365,  359,  358,  357,  355,  354,  342,  341,        126,  132,  129,  126,  137,  128,  131,  138,  139,  132,
864    
865        333,  329,  316,  315,  313,  305,  300,  299,  296,  295,        140,  143,  136,  130,  137,  141,  141,  143,  139,  132,
866        287,  277,  271,  270,  265,  260,  253,  252,  251,  249,        154,  135,  139,  154,  138,  145,  145,  140,  146,  157,
867        244,  243,  241,  235,  230,  224,  203,  202,  198,  180,        173,  513,  146,  148,  146,  140,  150,  148,  153,  148,
868        179,  177,  175,  174,  168,  163,  159,  149,  122,  121,        173,  150,  150,  153,  153,  165,  171,  165,  171,  178,
869        112,  103,   88,   87,   82,   71,   66,   65,   39,   31,        181,  171,  182,  183,  184,  178,  185,  187,  182,  186,
870         30,   18,   15,   11,  519,  519,  519,  519,  519,  519,        188,  189,  185,  183,  190,  192,  187,  173,  191,  189,
871        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        188,  192,  184,  193,  157,  194,  186,  191,  190,  193,
872        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        209,  157,  195,  201,  196,  197,  181,  199,  195,  200,
873        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        165,  204,  191,  191,  196,  197,  195,  199,  194,  200,
874        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,        201,  204,  205,  207,  208,  210,  209,  201,  211,  213,
875    
876        519,  519,  519,  519,  519,  519,  519,  519,  519,  519        212,  214,  218,  222,  211,  210,  215,  221,  216,  217,
877      } ;        205,  219,  213,  207,  212,  214,  215,  208,  216,  217,
878          219,  211,  223,  218,  221,  220,  225,  226,  228,  222,
879  static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;        229,  227,  231,  232,  233,  234,  212,  226,  219,  220,
880  static char *yy_full_match;        225,  227,  236,  229,  233,  240,  237,  238,  223,  228,
881  static int yy_lp;        239,  245,  232,  246,  247,  234,  248,  231,  240,  246,
882  static int yy_looking_for_trail_begin = 0;        234,  250,  234,  255,  238,  237,  254,  239,  236,  237,
883  static int yy_full_lp;        257,  255,  256,  258,  259,  245,  262,  250,  246,  248,
884  static int *yy_full_state;        261,  263,  254,  266,  247,  264,  256,  258,  267,  268,
885  #define YY_TRAILING_MASK 0x2000        261,  266,  272,  269,  273,  257,  274,  275,  272,  259,
886  #define YY_TRAILING_HEAD_MASK 0x4000  
887  #define REJECT \        263,  276,  262,  269,  264,  278,  274,  280,  279,  281,
888  { \        282,  267,  284,  288,  283,  278,  285,  273,  286,  289,
889  *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \        292,  280,  275,  291,  276,  268,  279,  288,  282,  281,
890  yy_cp = yy_full_match; /* restore poss. backed-over text */ \        280,  283,  293,  294,  290,  297,  284,  291,  289,  285,
891  yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \        290,  294,  298,  292,  286,  301,  302,  303,  304,  306,
892  yy_state_ptr = yy_full_state; /* restore orig. state */ \        298,  307,  308,  309,  312,  310,  293,  303,  304,  306,
893  yy_current_state = *yy_state_ptr; /* restore curr. state */ \        311,  307,  314,  317,  301,  310,  318,  312,  319,  321,
894  ++yy_lp; \        302,  297,  322,  317,  319,  320,  323,  311,  322,  321,
895  goto find_rule; \        325,  324,  326,  327,  328,  331,  330,  314,  308,  309,
896  }        332,  318,  334,  323,  320,  324,  332,  335,  336,  337,
897  static int yy_more_offset = 0;  
898  static int yy_prev_more_offset = 0;        343,  338,  327,  330,  325,  339,  340,  326,  335,  328,
899  #define yymore() (yy_more_offset = yy_flex_strlen( yytext ))        331,  338,  336,  344,  339,  345,  334,  346,  337,  348,
900  #define YY_NEED_STRLEN        340,  347,  349,  350,  345,  351,  352,  346,  343,  347,
901  #define YY_MORE_ADJ 0        353,  356,  361,  360,  350,  363,  362,  364,  344,  367,
902  #define YY_RESTORE_YY_MORE_OFFSET \        360,  349,  348,  353,  368,  369,  371,  364,  372,  363,
903      { \        351,  352,  360,  367,  356,  373,  376,  380,  374,  361,
904      yy_more_offset = yy_prev_more_offset; \        362,  377,  376,  368,  382,  381,  383,  384,  387,  386,
905      yyleng -= yy_more_offset; \        371,  369,  374,  372,  377,  381,  385,  388,  382,  390,
906      }        373,  380,  385,  391,  392,  393,  395,  399,  397,  390,
907  #ifndef YYLMAX        401,  388,  384,  386,  392,  393,  400,  383,  402,  387,
908  #define YYLMAX 8192  
909  #endif        395,  397,  404,  405,  402,  406,  400,  391,  407,  408,
910          401,  399,  409,  411,  412,  413,  415,  414,  404,  408,
911  char yytext[YYLMAX];        416,  418,  417,  431,  423,  406,  409,  411,  416,  420,
912  char *yytext_ptr;        415,  418,  413,  407,  412,  419,  432,  422,  429,  405,
913  #line 1 "base\\generic\\compiler\\scanner.l"        414,  417,  428,  430,  429,  419,  420,  422,  423,  430,
914  #define INITIAL 0        433,  435,  428,  434,  436,  439,  440,  445,  441,  431,
915  #line 2 "base\\generic\\compiler\\scanner.l"        443,  432,  444,  434,  453,  455,  456,  433,  446,  451,
916  /*  ASCEND modelling environment        454,  448,  457,  436,  439,  435,  440,  441,  446,  451,
917      Copyright (C) 1990, 1993, 1994 Thomas Guthrie Epperly        443,  444,  445,  448,  452,  459,  460,  454,  461,  453,
918      Copyright (C) 2006 Carnegie Mellon University        455,  459,  460,  452,  462,  463,  464,  465,  457,  467,
919    
920      This program is free software; you can redistribute it and/or modify        461,  466,  456,  473,  468,  476,  483,  477,  467,  465,
921      it under the terms of the GNU General Public License as published by        474,  475,  463,  462,  468,  466,  473,  474,  480,  481,
922      the Free Software Foundation; either version 2, or (at your option)        484,  475,  464,  476,  477,  485,  483,  486,  480,  487,
923      any later version.        489,  481,  492,  491,  493,  494,  496,  486,  497,  487,
924          489,  499,  502,  503,  504,  492,  507,  512,  485,  510,
925      This program is distributed in the hope that it will be useful,        508,  511,  507,  493,  514,  509,  484,  491,  515,  510,
926      but WITHOUT ANY WARRANTY; without even the implied warranty of        494,  511,  502,  508,  515,  499,  516,  503,  506,  504,
927      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        517,  505,  496,  509,  497,  501,  500,  498,  514,  495,
928      GNU General Public License for more details.        517,  490,  488,  512,  516,  520,  520,  520,  520,  520,
929          520,  521,  521,  521,  521,  521,  521,  522,  522,  522,
930      You should have received a copy of the GNU General Public License  
931      along with this program; if not, write to the Free Software        522,  522,  522,  523,  523,  523,  523,  523,  523,  525,
932      Foundation, Inc., 59 Temple Place - Suite 330,        482,  525,  525,  525,  525,  526,  526,  526,  526,  526,
933      Boston, MA 02111-1307, USA.        526,  527,  479,  527,  527,  527,  527,  528,  528,  528,
934  *//** @file        528,  528,  528,  529,  529,  529,  529,  529,  530,  530,
935      ASCEND lexer        530,  530,  530,  530,  531,  531,  531,  531,  532,  532,
936          532,  532,  532,  532,  533,  533,  533,  533,  533,  533,
937      This module is the input file for Flex (Lexical Analyzer        534,  478,  472,  534,  534,  534,  471,  470,  469,  458,
938      Generator). Its goal is to convert a stream of characters into a        450,  449,  447,  442,  438,  437,  427,  426,  425,  424,
939      stream of tokens.  It has been defined to be consistent with the        421,  410,  403,  398,  396,  394,  389,  379,  378,  375,
940      routines required by the common compiler-compiler yacc.        370,  366,  365,  359,  358,  357,  355,  354,  342,  341,
941  */  
942          333,  329,  316,  315,  313,  305,  300,  299,  296,  295,
943  #include <stdio.h>        287,  277,  271,  270,  265,  260,  253,  252,  251,  249,
944  #include <stdlib.h>        244,  243,  241,  235,  230,  224,  203,  202,  198,  180,
945  #include <string.h>        179,  177,  175,  174,  168,  163,  159,  149,  122,  121,
946  #include <math.h>        112,  103,   88,   87,   82,   71,   66,   65,   39,   31,
947  #include "utilities/ascConfig.h"         30,   18,   15,   11,  519,  519,  519,  519,  519,  519,
948  #include "utilities/ascMalloc.h"        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
949  #include "compiler/compiler.h"        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
950  /* everything between here and the next comment is only here */        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
951  #include "compiler/fractions.h"        519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
952  #include "compiler/dimen.h"  
953  #include "compiler/functype.h"        519,  519,  519,  519,  519,  519,  519,  519,  519,  519
954  #include "compiler/func.h"      } ;
955  #include "compiler/expr_types.h"  
956  #include "compiler/stattypes.h"  /* Table of booleans, true if rule could match eol. */
957  #include "compiler/fractions.h"  static yyconst flex_int32_t yy_rule_can_match_eol[150] =
958  #include "compiler/proc.h"      {   0,
959  /* because ascParse.h has a nasty union we can't digest without them. */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
960  #include "compiler/ascParse.h"      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961  /* these below we actually need */      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962  #include "general/list.h"      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
963  #include "compiler/module.h"      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964  #include "compiler/scanner.h"      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
965  #include "compiler/symtab.h"      0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0,
966  #include "compiler/parser.h"      0, 1, 0, 0, 0, 0, 0, 1, 0, 0,     };
967    
968  #define YY_BREAK  extern int zz__flex_debug;
969  /*  Defining yybreak as above means that all of our matches must end  int zz__flex_debug = 0;
970   *  in break or return because the normal flex supplied yybreak will  
971   *  be preempted by our empty one.  static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
972   *  In cases where matches contain a conditional return, make sure a  static char *yy_full_match;
973   *  break follows in the failure case.  static int yy_lp;
974   */  static int yy_looking_for_trail_begin = 0;
975    static int yy_full_lp;
976  #define ENDTOK 0  static int *yy_full_state;
977  /*  Return value when we reach the end of the input.  #define YY_TRAILING_MASK 0x2000
978   *  This to must be 0 or negative according to yacc  #define YY_TRAILING_HEAD_MASK 0x4000
979   */  #define REJECT \
980    { \
981  #define MAX_REQUIRE_DEPTH 10  *yy_cp = (yy_hold_char); /* undo effects of setting up zz_text */ \
982  /*  The maximum number of REQUIREd file nesting we will accept.  yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
983   *  See RequireStack below.  (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \
984   */  (yy_state_ptr) = yy_full_state; /* restore orig. state */ \
985    yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
986  #define WORKBUF_INIT_SIZE 4095  ++(yy_lp); \
987  /*  We need a temporary buffer to copy yytext into before returning  goto find_rule; \
988   *  to the scanner (see g_workbuf below).  }
989   *  WORKBUF_INIT_SIZE is the initial size of g_workbuf  
990   */  static int yy_more_offset = 0;
991    static int yy_prev_more_offset = 0;
992  static unsigned long yy_line = 1;  #define yymore() ((yy_more_offset) = yy_flex_strlen( zz_text ))
993  /*  The current line number;  #define YY_NEED_STRLEN
994   *  every match of newline (\n) needs to ++ this variable.  #define YY_MORE_ADJ 0
995   */  #define YY_RESTORE_YY_MORE_OFFSET \
996        { \
997  static unsigned long start_line = 0;      (yy_more_offset) = (yy_prev_more_offset); \
998  /*  The ine number where an open-comment, open-brace, or      zz_leng -= (yy_more_offset); \
999   *  open-double-quote occurs.  We use this to help in error reporting.      }
1000   */  #ifndef YYLMAX
1001    #define YYLMAX 8192
1002  static int CommentNestLevel = 0;  #endif
1003  /*  Nesting level of (* comments *)  
1004   */  char zz_text[YYLMAX];
1005    char *yytext_ptr;
1006  static int BracesNestLevel = 0;  #line 1 "base/generic/compiler/scanner.l"
1007  /*  Nesting level of {braced} expressions  #line 2 "base/generic/compiler/scanner.l"
1008   */  /*  ASCEND modelling environment
1009        Copyright (C) 1990, 1993, 1994 Thomas Guthrie Epperly
1010  static int MatchedBackslash = 0;      Copyright (C) 2006 Carnegie Mellon University
1011  /*  If this variable is positive, we matched a backslash \ in a DoubleQuote  
1012   *  or BracedText state, and we should call ProcessBackslashes() to      This program is free software; you can redistribute it and/or modify
1013   *  process them.      it under the terms of the GNU General Public License as published by
1014   */      the Free Software Foundation; either version 2, or (at your option)
1015        any later version.
1016  static int RequireIndex = 0;  
1017  /*  The current nesting level of REQUIREd files      This program is distributed in the hope that it will be useful,
1018   */      but WITHOUT ANY WARRANTY; without even the implied warranty of
1019        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1020  static YY_BUFFER_STATE RequireStack[MAX_REQUIRE_DEPTH];      GNU General Public License for more details.
1021  /* The Flex buffers used for the REQUIREd files  
1022   */      You should have received a copy of the GNU General Public License
1023        along with this program; if not, write to the Free Software
1024  static char *g_workbuf = NULL;      Foundation, Inc., 59 Temple Place - Suite 330,
1025  /*  We need a place to keep doubly-quoted-text and braced-text for passing      Boston, MA 02111-1307, USA.
1026   *  it back to the parser.  yytext will not work since the parser may ask  *//** @file
1027   *  the scanner to read another token, at which point the value in yytext      ASCEND lexer
1028   *  gets lost.  
1029   *      This module is the input file for Flex (Lexical Analyzer
1030   *  The initial size of g_workbuf is WORKBUF_INIT_SIZE, and g_workbuf      Generator). Its goal is to convert a stream of characters into a
1031   *  doubles when it needs more space.      stream of tokens.  It has been defined to be consistent with the
1032   *      routines required by the common compiler-compiler yacc.
1033   *  A call to CopyIntoWorkBuffer(yytext,yyleng) will copy yyleng characters  */
1034   *  of yytext into the working buffer.  
1035   *  #include <stdio.h>
1036   *  Note that having a single work buffer will not work if we ever create  #include <stdlib.h>
1037   *  yacc productions that scan multiple chunks of doubly-quoted-text and/or  #include <string.h>
1038   *  braced-text before acting on them.  #include <math.h>
1039   */  #include "utilities/ascConfig.h"
1040    #include "utilities/ascMalloc.h"
1041    #include "compiler/compiler.h"
1042  /*  Forward declaration of functions  /* everything between here and the next comment is only here */
1043   *  provided at the end of this file.  #include "compiler/fractions.h"
1044   */  #include "compiler/dimen.h"
1045  static int Asc_ScannerPopBuffer(void);  #include "compiler/functype.h"
1046  static char *CopyIntoWorkBuffer(CONST char *, unsigned long);  #include "compiler/func.h"
1047  static int Process_Backslashes(void);  #include "compiler/expr_types.h"
1048  static void ErrMsg_BracesEOF(void);  #include "compiler/stattypes.h"
1049  static void ErrMsg_CommentEOF(void);  #include "compiler/fractions.h"
1050  static void ErrMsg_DoubleQuoteEOF(void);  #include "compiler/proc.h"
1051  static void ErrMsg_LongID(void);  /* because ascParse.h has a nasty union we can't digest without them. */
1052  static void ErrMsg_LongSymbol(void);  #include "compiler/ascParse.h"
1053  static void ErrMsg_SymbolEOF(void);  /* these below we actually need */
1054  static void ErrMsg_SymbolEOL(void);  #include "general/list.h"
1055  static void ErrMsg_UnexpectedChar(void);  #include "compiler/module.h"
1056    #include "compiler/scanner.h"
1057  #define Comment 1  #include "compiler/symtab.h"
1058    #include "compiler/parser.h"
1059  #define Symbol 2  
1060    #define YY_BREAK
1061  #define BracedText 3  /*  Defining yybreak as above means that all of our matches must end
1062     *  in break or return because the normal flex supplied yybreak will
1063  #define DoubleQuote 4   *  be preempted by our empty one.
1064     *  In cases where matches contain a conditional return, make sure a
1065     *  break follows in the failure case.
1066  /* Macros after this point can all be overridden by user definitions in   */
1067   * section 1.  
1068   */  #define ENDTOK 0
1069    /*  Return value when we reach the end of the input.
1070  #ifndef YY_SKIP_YYWRAP   *  This to must be 0 or negative according to yacc
1071  #ifdef __cplusplus   */
1072  extern "C" int yywrap YY_PROTO(( void ));  
1073  #else  #define MAX_REQUIRE_DEPTH 10
1074  extern int yywrap YY_PROTO(( void ));  /*  The maximum number of REQUIREd file nesting we will accept.
1075  #endif   *  See RequireStack below.
1076  #endif   */
1077    
1078  #ifndef YY_NO_UNPUT  #define WORKBUF_INIT_SIZE 4095
1079  static void yyunput YY_PROTO(( int c, char *buf_ptr ));  /*  We need a temporary buffer to copy zz_text into before returning
1080  #endif   *  to the scanner (see g_workbuf below).
1081     *  WORKBUF_INIT_SIZE is the initial size of g_workbuf
1082  #ifndef yytext_ptr   */
1083  static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));  
1084  #endif  static unsigned long yy_line = 1;
1085    /*  The current line number;
1086  #ifdef YY_NEED_STRLEN   *  every match of newline (\n) needs to ++ this variable.
1087  static int yy_flex_strlen YY_PROTO(( yyconst char * ));   */
1088  #endif  
1089    static unsigned long start_line = 0;
1090  #ifndef YY_NO_INPUT  /*  The ine number where an open-comment, open-brace, or
1091  #ifdef __cplusplus   *  open-double-quote occurs.  We use this to help in error reporting.
1092  static int yyinput YY_PROTO(( void ));   */
1093  #else  
1094  static int input YY_PROTO(( void ));  static int CommentNestLevel = 0;
1095  #endif  /*  Nesting level of (* comments *)
1096  #endif   */
1097    
1098  #if YY_STACK_USED  static int BracesNestLevel = 0;
1099  static int yy_start_stack_ptr = 0;  /*  Nesting level of {braced} expressions
1100  static int yy_start_stack_depth = 0;   */
1101  static int *yy_start_stack = 0;  
1102  #ifndef YY_NO_PUSH_STATE  static int MatchedBackslash = 0;
1103  static void yy_push_state YY_PROTO(( int new_state ));  /*  If this variable is positive, we matched a backslash \ in a DoubleQuote
1104  #endif   *  or BracedText state, and we should call ProcessBackslashes() to
1105  #ifndef YY_NO_POP_STATE   *  process them.
1106  static void yy_pop_state YY_PROTO(( void ));   */
1107  #endif  
1108  #ifndef YY_NO_TOP_STATE  static int RequireIndex = 0;
1109  static int yy_top_state YY_PROTO(( void ));  /*  The current nesting level of REQUIREd files
1110  #endif   */
1111    
1112  #else  static YY_BUFFER_STATE RequireStack[MAX_REQUIRE_DEPTH];
1113  #define YY_NO_PUSH_STATE 1  /* The Flex buffers used for the REQUIREd files
1114  #define YY_NO_POP_STATE 1   */
1115  #define YY_NO_TOP_STATE 1  
1116  #endif  static char *g_workbuf = NULL;
1117    /*  We need a place to keep doubly-quoted-text and braced-text for passing
1118  #ifdef YY_MALLOC_DECL   *  it back to the parser.  zz_text will not work since the parser may ask
1119  YY_MALLOC_DECL   *  the scanner to read another token, at which point the value in zz_text
1120  #else   *  gets lost.
1121  #if __STDC__   *
1122  #ifndef __cplusplus   *  The initial size of g_workbuf is WORKBUF_INIT_SIZE, and g_workbuf
1123  #include <stdlib.h>   *  doubles when it needs more space.
1124  #endif   *
1125  #else   *  A call to CopyIntoWorkBuffer(zz_text,zz_leng) will copy zz_leng characters
1126  /* Just try to get by without declaring the routines.  This will fail   *  of zz_text into the working buffer.
1127   * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)   *
1128   * or sizeof(void*) != sizeof(int).   *  Note that having a single work buffer will not work if we ever create
1129   */   *  yacc productions that scan multiple chunks of doubly-quoted-text and/or
1130  #endif   *  braced-text before acting on them.
1131  #endif   */
1132    
1133  /* Amount of stuff to slurp up with each read. */  
1134  #ifndef YY_READ_BUF_SIZE  /*  Forward declaration of functions
1135  #define YY_READ_BUF_SIZE 8192   *  provided at the end of this file.
1136  #endif   */
1137    static int Asc_ScannerPopBuffer(void);
1138  /* Copy whatever the last rule matched to the standard output. */  static char *CopyIntoWorkBuffer(CONST char *, unsigned long);
1139    static int Process_Backslashes(void);
1140  #ifndef ECHO  static void ErrMsg_BracesEOF(void);
1141  /* This used to be an fputs(), but since the string might contain NUL's,  static void ErrMsg_CommentEOF(void);
1142   * we now use fwrite().  static void ErrMsg_DoubleQuoteEOF(void);
1143   */  static void ErrMsg_LongID(void);
1144  #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )  static void ErrMsg_LongSymbol(void);
1145  #endif  static void ErrMsg_SymbolEOF(void);
1146    static void ErrMsg_SymbolEOL(void);
1147  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,  static void ErrMsg_UnexpectedChar(void);
1148   * is returned in "result".  
1149   */  
1150  #ifndef YY_INPUT  
1151  #define YY_INPUT(buf,result,max_size) \  
1152      if ( yy_current_buffer->yy_is_interactive ) \  
1153          { \  #line 1154 "<stdout>"
1154          int c = '*', n; \  
1155          for ( n = 0; n < max_size && \  #define INITIAL 0
1156                   (c = getc( yyin )) != EOF && c != '\n'; ++n ) \  #define Comment 1
1157              buf[n] = (char) c; \  #define Symbol 2
1158          if ( c == '\n' ) \  #define BracedText 3
1159              buf[n++] = (char) c; \  #define DoubleQuote 4
1160          if ( c == EOF && ferror( yyin ) ) \  
1161              YY_FATAL_ERROR( "input in flex scanner failed" ); \  #ifndef YY_NO_UNISTD_H
1162          result = n; \  /* Special case for "unistd.h", since it is non-ANSI. We include it way
1163          } \   * down here because we want the user's section 1 to have been scanned first.
1164      else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \   * The user has a chance to override it with an option.
1165            && ferror( yyin ) ) \   */
1166          YY_FATAL_ERROR( "input in flex scanner failed" );  #include <unistd.h>
1167  #endif  #endif
1168    
1169  /* No semi-colon after return; correct usage is to write "yyterminate();" -  #ifndef YY_EXTRA_TYPE
1170   * we don't want an extra ';' after the "return" because that will cause  #define YY_EXTRA_TYPE void *
1171   * some compilers to complain about unreachable statements.  #endif
1172   */  
1173  #ifndef yyterminate  static int yy_init_globals (void );
1174  #define yyterminate() return YY_NULL  
1175  #endif  /* Macros after this point can all be overridden by user definitions in
1176     * section 1.
1177  /* Number of entries by which start-condition stack grows. */   */
1178  #ifndef YY_START_STACK_INCR  
1179  #define YY_START_STACK_INCR 25  #ifndef YY_SKIP_YYWRAP
1180  #endif  #ifdef __cplusplus
1181    extern "C" int zz_wrap (void );
1182  /* Report a fatal error. */  #else
1183  #ifndef YY_FATAL_ERROR  extern int zz_wrap (void );
1184  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )  #endif
1185  #endif  #endif
1186    
1187  /* Default declaration of generated scanner - a define so the user can      static void yyunput (int c,char *buf_ptr  );
1188   * easily add parameters.      
1189   */  #ifndef yytext_ptr
1190  #ifndef YY_DECL  static void yy_flex_strncpy (char *,yyconst char *,int );
1191  #define YY_DECL int yylex YY_PROTO(( void ))  #endif
1192  #endif  
1193    #ifdef YY_NEED_STRLEN
1194  /* Code executed at the beginning of each rule, after yytext and yyleng  static int yy_flex_strlen (yyconst char * );
1195   * have been set up.  #endif
1196   */  
1197  #ifndef YY_USER_ACTION  #ifndef YY_NO_INPUT
1198  #define YY_USER_ACTION  
1199  #endif  #ifdef __cplusplus
1200    static int yyinput (void );
1201  /* Code executed at the end of each rule. */  #else
1202  #ifndef YY_BREAK  static int input (void );
1203  #define YY_BREAK break;  #endif
1204  #endif  
1205    #endif
1206  #define YY_RULE_SETUP \  
1207      YY_USER_ACTION  /* Amount of stuff to slurp up with each read. */
1208    #ifndef YY_READ_BUF_SIZE
1209  YY_DECL  #define YY_READ_BUF_SIZE 8192
1210      {  #endif
1211      register yy_state_type yy_current_state;  
1212      register char *yy_cp, *yy_bp;  /* Copy whatever the last rule matched to the standard output. */
1213      register int yy_act;  #ifndef ECHO
1214    /* This used to be an fputs(), but since the string might contain NUL's,
1215  #line 159 "base\\generic\\compiler\\scanner.l"   * we now use fwrite().
1216     */
1217    #define ECHO (void) fwrite( zz_text, zz_leng, 1, zz_out )
1218    #endif
1219      if ( yy_init )  
1220          {  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1221          yy_init = 0;   * is returned in "result".
1222     */
1223  #ifdef YY_USER_INIT  #ifndef YY_INPUT
1224          YY_USER_INIT;  #define YY_INPUT(buf,result,max_size) \
1225  #endif      if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1226            { \
1227          if ( ! yy_start )          int c = '*'; \
1228              yy_start = 1;   /* first start state */          size_t n; \
1229            for ( n = 0; n < max_size && \
1230          if ( ! yyin )                   (c = getc( zz_in )) != EOF && c != '\n'; ++n ) \
1231              yyin = stdin;              buf[n] = (char) c; \
1232            if ( c == '\n' ) \
1233          if ( ! yyout )              buf[n++] = (char) c; \
1234              yyout = stdout;          if ( c == EOF && ferror( zz_in ) ) \
1235                YY_FATAL_ERROR( "input in flex scanner failed" ); \
1236          if ( ! yy_current_buffer )          result = n; \
1237              yy_current_buffer =          } \
1238                  yy_create_buffer( yyin, YY_BUF_SIZE );      else \
1239            { \
1240          yy_load_buffer_state();          errno=0; \
1241          }          while ( (result = fread(buf, 1, max_size, zz_in))==0 && ferror(zz_in)) \
1242                { \
1243      while ( 1 )     /* loops until end-of-file is reached */              if( errno != EINTR) \
1244          {                  { \
1245          yy_cp = yy_c_buf_p;                  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1246                    break; \
1247          /* Support of yytext. */                  } \
1248          *yy_cp = yy_hold_char;              errno=0; \
1249                clearerr(zz_in); \
1250          /* yy_bp points to the position in yy_ch_buf of the start of              } \
1251           * the current run.          }\
1252           */  \
1253          yy_bp = yy_cp;  
1254    #endif
1255          yy_current_state = yy_start;  
1256          yy_state_ptr = yy_state_buf;  /* No semi-colon after return; correct usage is to write "yyterminate();" -
1257          *yy_state_ptr++ = yy_current_state;   * we don't want an extra ';' after the "return" because that will cause
1258  yy_match:   * some compilers to complain about unreachable statements.
1259          do   */
1260              {  #ifndef yyterminate
1261              register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];  #define yyterminate() return YY_NULL
1262              while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )  #endif
1263                  {  
1264                  yy_current_state = (int) yy_def[yy_current_state];  /* Number of entries by which start-condition stack grows. */
1265                  if ( yy_current_state >= 520 )  #ifndef YY_START_STACK_INCR
1266                      yy_c = yy_meta[(unsigned int) yy_c];  #define YY_START_STACK_INCR 25
1267                  }  #endif
1268              yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];  
1269              *yy_state_ptr++ = yy_current_state;  /* Report a fatal error. */
1270              ++yy_cp;  #ifndef YY_FATAL_ERROR
1271              }  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1272          while ( yy_base[yy_current_state] != 1055 );  #endif
1273    
1274  yy_find_action:  /* end tables serialization structures and prototypes */
1275          yy_current_state = *--yy_state_ptr;  
1276          yy_lp = yy_accept[yy_current_state];  /* Default declaration of generated scanner - a define so the user can
1277  find_rule: /* we branch to this label when backing up */   * easily add parameters.
1278          for ( ; ; ) /* until we find what rule we matched */   */
1279              {  #ifndef YY_DECL
1280              if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )  #define YY_DECL_IS_OURS 1
1281                  {  
1282                  yy_act = yy_acclist[yy_lp];  extern int zz_lex (void);
1283                  if ( yy_act & YY_TRAILING_HEAD_MASK ||  
1284                       yy_looking_for_trail_begin )  #define YY_DECL int zz_lex (void)
1285                      {  #endif /* !YY_DECL */
1286                      if ( yy_act == yy_looking_for_trail_begin )  
1287                          {  /* Code executed at the beginning of each rule, after zz_text and zz_leng
1288                          yy_looking_for_trail_begin = 0;   * have been set up.
1289                          yy_act &= ~YY_TRAILING_HEAD_MASK;   */
1290                          break;  #ifndef YY_USER_ACTION
1291                          }  #define YY_USER_ACTION
1292                      }  #endif
1293                  else if ( yy_act & YY_TRAILING_MASK )  
1294                      {  /* Code executed at the end of each rule. */
1295                      yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;  #ifndef YY_BREAK
1296                      yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;  #define YY_BREAK break;
1297                      yy_full_match = yy_cp;  #endif
1298                      yy_full_state = yy_state_ptr;  
1299                      yy_full_lp = yy_lp;  #define YY_RULE_SETUP \
1300                      }      YY_USER_ACTION
1301                  else  
1302                      {  /** The main scanner function which does all the work.
1303                      yy_full_match = yy_cp;   */
1304                      yy_full_state = yy_state_ptr;  YY_DECL
1305                      yy_full_lp = yy_lp;  {
1306                      break;      register yy_state_type yy_current_state;
1307                      }      register char *yy_cp, *yy_bp;
1308                  ++yy_lp;      register int yy_act;
1309                  goto find_rule;      
1310                  }  #line 159 "base/generic/compiler/scanner.l"
1311              --yy_cp;  
1312              yy_current_state = *--yy_state_ptr;  
1313              yy_lp = yy_accept[yy_current_state];  #line 1314 "<stdout>"
1314              }  
1315        if ( !(yy_init) )
1316          YY_DO_BEFORE_ACTION;          {
1317            (yy_init) = 1;
1318          if ( yy_act != YY_END_OF_BUFFER )  
1319              {  #ifdef YY_USER_INIT
1320              int yyl;          YY_USER_INIT;
1321              for ( yyl = 0; yyl < yyleng; ++yyl )  #endif
1322                  if ( yytext[yyl] == '\n' )  
1323                      ++yylineno;          /* Create the reject buffer large enough to save one state per allowed character. */
1324              }          if ( ! (yy_state_buf) )
1325                (yy_state_buf) = (yy_state_type *)zz_alloc(YY_STATE_BUF_SIZE  );
1326  do_action:  /* This label is used only to access EOF actions. */  
1327            if ( ! (yy_start) )
1328                (yy_start) = 1; /* first start state */
1329          switch ( yy_act )  
1330      { /* beginning of action switch */          if ( ! zz_in )
1331  case 1:              zz_in = stdin;
1332  YY_RULE_SETUP  
1333  #line 161 "base\\generic\\compiler\\scanner.l"          if ( ! zz_out )
1334  { return LEQ_TOK; }              zz_out = stdout;
1335      YY_BREAK  
1336  case 2:          if ( ! YY_CURRENT_BUFFER ) {
1337  YY_RULE_SETUP              zz_ensure_buffer_stack ();
1338  #line 162 "base\\generic\\compiler\\scanner.l"              YY_CURRENT_BUFFER_LVALUE =
1339  { return GEQ_TOK; }                  zz__create_buffer(zz_in,YY_BUF_SIZE );
1340      YY_BREAK          }
1341  case 3:  
1342  YY_RULE_SETUP          zz__load_buffer_state( );
1343  #line 163 "base\\generic\\compiler\\scanner.l"          }
1344  { return NEQ_TOK; }  
1345      YY_BREAK      while ( 1 )     /* loops until end-of-file is reached */
1346  case 4:          {
1347  YY_RULE_SETUP          yy_cp = (yy_c_buf_p);
1348  #line 164 "base\\generic\\compiler\\scanner.l"  
1349  { return DOTDOT_TOK; }          /* Support of zz_text. */
1350      YY_BREAK          *yy_cp = (yy_hold_char);
1351  case 5:  
1352  YY_RULE_SETUP          /* yy_bp points to the position in yy_ch_buf of the start of
1353  #line 165 "base\\generic\\compiler\\scanner.l"           * the current run.
1354  { return DBLCOLON_TOK;}           */
1355      YY_BREAK          yy_bp = yy_cp;
1356  case 6:  
1357  YY_RULE_SETUP          yy_current_state = (yy_start);
1358  #line 166 "base\\generic\\compiler\\scanner.l"  
1359  { return ASSIGN_TOK; }          (yy_state_ptr) = (yy_state_buf);
1360      YY_BREAK          *(yy_state_ptr)++ = yy_current_state;
1361  case 7:  
1362  YY_RULE_SETUP  yy_match:
1363  #line 167 "base\\generic\\compiler\\scanner.l"          do
1364  { return CASSIGN_TOK; }              {
1365      YY_BREAK              register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1366  case 8:              while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1367  YY_RULE_SETUP                  {
1368  #line 168 "base\\generic\\compiler\\scanner.l"                  yy_current_state = (int) yy_def[yy_current_state];
1369  { return BEQ_TOK ; }                  if ( yy_current_state >= 520 )
1370      YY_BREAK                      yy_c = yy_meta[(unsigned int) yy_c];
1371  case 9:                  }
1372  YY_RULE_SETUP              yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1373  #line 169 "base\\generic\\compiler\\scanner.l"              *(yy_state_ptr)++ = yy_current_state;
1374  { return BNE_TOK ; }              ++yy_cp;
1375      YY_BREAK              }
1376  case 10:          while ( yy_base[yy_current_state] != 1055 );
1377  YY_RULE_SETUP  
1378  #line 171 "base\\generic\\compiler\\scanner.l"  yy_find_action:
1379  { return '=' ;}          yy_current_state = *--(yy_state_ptr);
1380      YY_BREAK          (yy_lp) = yy_accept[yy_current_state];
1381  case 11:  find_rule: /* we branch to this label when backing up */
1382  YY_RULE_SETUP          for ( ; ; ) /* until we find what rule we matched */
1383  #line 172 "base\\generic\\compiler\\scanner.l"              {
1384  { return '>' ;}              if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
1385      YY_BREAK                  {
1386  case 12:                  yy_act = yy_acclist[(yy_lp)];
1387  YY_RULE_SETUP                  if ( yy_act & YY_TRAILING_HEAD_MASK ||
1388  #line 173 "base\\generic\\compiler\\scanner.l"                       yy_looking_for_trail_begin )
1389  { return '<' ;}                      {
1390      YY_BREAK                      if ( yy_act == yy_looking_for_trail_begin )
1391  case 13:                          {
1392  YY_RULE_SETUP                          yy_looking_for_trail_begin = 0;
1393  #line 174 "base\\generic\\compiler\\scanner.l"                          yy_act &= ~YY_TRAILING_HEAD_MASK;
1394  { return ',' ;}                          break;
1395      YY_BREAK                          }
1396  case 14:                      }
1397  YY_RULE_SETUP                  else if ( yy_act & YY_TRAILING_MASK )
1398  #line 175 "base\\generic\\compiler\\scanner.l"                      {
1399  { return '.' ;}                      yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
1400      YY_BREAK                      yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
1401  case 15:                      (yy_full_match) = yy_cp;
1402  YY_RULE_SETUP                      yy_full_state = (yy_state_ptr);
1403  #line 176 "base\\generic\\compiler\\scanner.l"                      yy_full_lp = (yy_lp);
1404  { return ';' ;}                      }
1405      YY_BREAK                  else
1406  case 16:                      {
1407  YY_RULE_SETUP                      (yy_full_match) = yy_cp;
1408  #line 177 "base\\generic\\compiler\\scanner.l"                      yy_full_state = (yy_state_ptr);
1409  { return ':' ;}                      yy_full_lp = (yy_lp);
1410      YY_BREAK                      break;
1411  case 17:                      }
1412  YY_RULE_SETUP                  ++(yy_lp);
1413  #line 178 "base\\generic\\compiler\\scanner.l"                  goto find_rule;
1414  { return '[' ;}                  }
1415      YY_BREAK              --yy_cp;
1416  case 18:              yy_current_state = *--(yy_state_ptr);
1417  YY_RULE_SETUP              (yy_lp) = yy_accept[yy_current_state];
1418  #line 179 "base\\generic\\compiler\\scanner.l"              }
1419  { return ']' ;}  
1420      YY_BREAK          YY_DO_BEFORE_ACTION;
1421  case 19:  
1422  YY_RULE_SETUP          if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1423  #line 180 "base\\generic\\compiler\\scanner.l"              {
1424  { return '(' ;}              int yyl;
1425      YY_BREAK              for ( yyl = (yy_prev_more_offset); yyl < zz_leng; ++yyl )
1426  case 20:                  if ( zz_text[yyl] == '\n' )
1427  YY_RULE_SETUP                        
1428  #line 181 "base\\generic\\compiler\\scanner.l"      zz_lineno++;
1429  { return ')' ;}  ;
1430      YY_BREAK              }
1431  case 21:  
1432  YY_RULE_SETUP  do_action:  /* This label is used only to access EOF actions. */
1433  #line 182 "base\\generic\\compiler\\scanner.l"  
1434  { return '+' ;}          switch ( yy_act )
1435      YY_BREAK      { /* beginning of action switch */
1436  case 22:  case 1:
1437  YY_RULE_SETUP  YY_RULE_SETUP
1438  #line 183 "base\\generic\\compiler\\scanner.l"  #line 161 "base/generic/compiler/scanner.l"
1439  { return '-' ;}  { return LEQ_TOK; }
1440      YY_BREAK      YY_BREAK
1441  case 23:  case 2:
1442  YY_RULE_SETUP  YY_RULE_SETUP
1443  #line 184 "base\\generic\\compiler\\scanner.l"  #line 162 "base/generic/compiler/scanner.l"
1444  { return '*' ;}  { return GEQ_TOK; }
1445      YY_BREAK      YY_BREAK
1446  case 24:  case 3:
1447  YY_RULE_SETUP  YY_RULE_SETUP
1448  #line 185 "base\\generic\\compiler\\scanner.l"  #line 163 "base/generic/compiler/scanner.l"
1449  { return '/' ;}  { return NEQ_TOK; }
1450      YY_BREAK      YY_BREAK
1451  case 25:  case 4:
1452  YY_RULE_SETUP  YY_RULE_SETUP
1453  #line 186 "base\\generic\\compiler\\scanner.l"  #line 164 "base/generic/compiler/scanner.l"
1454  { return '^' ;}  { return DOTDOT_TOK; }
1455      YY_BREAK      YY_BREAK
1456  case 26:  case 5:
1457  YY_RULE_SETUP  YY_RULE_SETUP
1458  #line 187 "base\\generic\\compiler\\scanner.l"  #line 165 "base/generic/compiler/scanner.l"
1459  { return '|' ;}  { return DBLCOLON_TOK;}
1460      YY_BREAK      YY_BREAK
1461  /****  Reserved Keywords  ****/  case 6:
1462  case 27:  YY_RULE_SETUP
1463  YY_RULE_SETUP  #line 166 "base/generic/compiler/scanner.l"
1464  #line 191 "base\\generic\\compiler\\scanner.l"  { return ASSIGN_TOK; }
1465  { return ADD_TOK            ; }      YY_BREAK
1466      YY_BREAK  case 7:
1467  case 28:  YY_RULE_SETUP
1468  YY_RULE_SETUP  #line 167 "base/generic/compiler/scanner.l"
1469  #line 192 "base\\generic\\compiler\\scanner.l"  { return CASSIGN_TOK; }
1470  { return ALIASES_TOK        ; }      YY_BREAK
1471      YY_BREAK  case 8:
1472  case 29:  YY_RULE_SETUP
1473  YY_RULE_SETUP  #line 168 "base/generic/compiler/scanner.l"
1474  #line 193 "base\\generic\\compiler\\scanner.l"  { return BEQ_TOK ; }
1475  { return AND_TOK            ; }      YY_BREAK
1476      YY_BREAK  case 9:
1477  case 30:  YY_RULE_SETUP
1478  YY_RULE_SETUP  #line 169 "base/generic/compiler/scanner.l"
1479  #line 194 "base\\generic\\compiler\\scanner.l"  { return BNE_TOK ; }
1480  { return ANY_TOK            ; }      YY_BREAK
1481      YY_BREAK  case 10:
1482  case 31:  YY_RULE_SETUP
1483  YY_RULE_SETUP  #line 171 "base/generic/compiler/scanner.l"
1484  #line 195 "base\\generic\\compiler\\scanner.l"  { return '=' ;}
1485  { return AREALIKE_TOK       ; }      YY_BREAK
1486      YY_BREAK  case 11:
1487  case 32:  YY_RULE_SETUP
1488  YY_RULE_SETUP  #line 172 "base/generic/compiler/scanner.l"
1489  #line 196 "base\\generic\\compiler\\scanner.l"  { return '>' ;}
1490  { return ARETHESAME_TOK   ; }      YY_BREAK
1491      YY_BREAK  case 12:
1492  case 33:  YY_RULE_SETUP
1493  YY_RULE_SETUP  #line 173 "base/generic/compiler/scanner.l"
1494  #line 197 "base\\generic\\compiler\\scanner.l"  { return '<' ;}
1495  { return ARRAY_TOK      ; }      YY_BREAK
1496      YY_BREAK  case 13:
1497  case 34:  YY_RULE_SETUP
1498  YY_RULE_SETUP  #line 174 "base/generic/compiler/scanner.l"
1499  #line 198 "base\\generic\\compiler\\scanner.l"  { return ',' ;}
1500  { return ATOM_TOK           ; }      YY_BREAK
1501      YY_BREAK  case 14:
1502  case 35:  YY_RULE_SETUP
1503  YY_RULE_SETUP  #line 175 "base/generic/compiler/scanner.l"
1504  #line 199 "base\\generic\\compiler\\scanner.l"  { return '.' ;}
1505  { return BREAK_TOK      ; }      YY_BREAK
1506      YY_BREAK  case 15:
1507  case 36:  YY_RULE_SETUP
1508  YY_RULE_SETUP  #line 176 "base/generic/compiler/scanner.l"
1509  #line 200 "base\\generic\\compiler\\scanner.l"  { return ';' ;}
1510  { return CALL_TOK           ; }      YY_BREAK
1511      YY_BREAK  case 16:
1512  case 37:  YY_RULE_SETUP
1513  YY_RULE_SETUP  #line 177 "base/generic/compiler/scanner.l"
1514  #line 201 "base\\generic\\compiler\\scanner.l"  { return ':' ;}
1515  { return CARD_TOK           ; }      YY_BREAK
1516      YY_BREAK  case 17:
1517  case 38:  YY_RULE_SETUP
1518  YY_RULE_SETUP  #line 178 "base/generic/compiler/scanner.l"
1519  #line 202 "base\\generic\\compiler\\scanner.l"  { return '[' ;}
1520  { return CASE_TOK           ; }      YY_BREAK
1521      YY_BREAK  case 18:
1522  case 39:  YY_RULE_SETUP
1523  YY_RULE_SETUP  #line 179 "base/generic/compiler/scanner.l"
1524  #line 203 "base\\generic\\compiler\\scanner.l"  { return ']' ;}
1525  { return CHECK_TOK      ; }      YY_BREAK
1526      YY_BREAK  case 19:
1527  case 40:  YY_RULE_SETUP
1528  YY_RULE_SETUP  #line 180 "base/generic/compiler/scanner.l"
1529  #line 204 "base\\generic\\compiler\\scanner.l"  { return '(' ;}
1530  { return CHOICE_TOK     ; }      YY_BREAK
1531      YY_BREAK  case 20:
1532  case 41:  YY_RULE_SETUP
1533  YY_RULE_SETUP  #line 181 "base/generic/compiler/scanner.l"
1534  #line 205 "base\\generic\\compiler\\scanner.l"  { return ')' ;}
1535  { return CONDITIONAL_TOK        ; }      YY_BREAK
1536      YY_BREAK  case 21:
1537  case 42:  YY_RULE_SETUP
1538  YY_RULE_SETUP  #line 182 "base/generic/compiler/scanner.l"
1539  #line 206 "base\\generic\\compiler\\scanner.l"  { return '+' ;}
1540  { return CONSTANT_TOK       ; }      YY_BREAK
1541      YY_BREAK  case 22:
1542  case 43:  YY_RULE_SETUP
1543  YY_RULE_SETUP  #line 183 "base/generic/compiler/scanner.l"
1544  #line 207 "base\\generic\\compiler\\scanner.l"  { return '-' ;}
1545  { return CONTINUE_TOK       ; }      YY_BREAK
1546      YY_BREAK  case 23:
1547  case 44:  YY_RULE_SETUP
1548  YY_RULE_SETUP  #line 184 "base/generic/compiler/scanner.l"
1549  #line 208 "base\\generic\\compiler\\scanner.l"  { return '*' ;}
1550  { return CREATE_TOK     ; }      YY_BREAK
1551      YY_BREAK  case 24:
1552  case 45:  YY_RULE_SETUP
1553  YY_RULE_SETUP  #line 185 "base/generic/compiler/scanner.l"
1554  #line 209 "base\\generic\\compiler\\scanner.l"  { return '/' ;}
1555  { return DATA_TOK           ; }      YY_BREAK
1556      YY_BREAK  case 25:
1557  case 46:  YY_RULE_SETUP
1558  YY_RULE_SETUP  #line 186 "base/generic/compiler/scanner.l"
1559  #line 210 "base\\generic\\compiler\\scanner.l"  { return '^' ;}
1560  { return DECREASING_TOK     ; }      YY_BREAK
1561      YY_BREAK  case 26:
1562  case 47:  YY_RULE_SETUP
1563  YY_RULE_SETUP  #line 187 "base/generic/compiler/scanner.l"
1564  #line 211 "base\\generic\\compiler\\scanner.l"  { return '|' ;}
1565  { return DEFAULT_TOK        ; }      YY_BREAK
1566      YY_BREAK  /****  Reserved Keywords  ****/
1567  case 48:  case 27:
1568  YY_RULE_SETUP  YY_RULE_SETUP
1569  #line 212 "base\\generic\\compiler\\scanner.l"  #line 191 "base/generic/compiler/scanner.l"
1570  { return DEFINITION_TOK     ; }  { return ADD_TOK            ; }
1571      YY_BREAK      YY_BREAK
1572  case 49:  case 28:
1573  YY_RULE_SETUP  YY_RULE_SETUP
1574  #line 213 "base\\generic\\compiler\\scanner.l"  #line 192 "base/generic/compiler/scanner.l"
1575  { return DIMENSION_TOK      ; }  { return ALIASES_TOK        ; }
1576      YY_BREAK      YY_BREAK
1577  case 50:  case 29:
1578  YY_RULE_SETUP  YY_RULE_SETUP
1579  #line 214 "base\\generic\\compiler\\scanner.l"  #line 193 "base/generic/compiler/scanner.l"
1580  { return DIMENSIONLESS_TOK  ; }  { return AND_TOK            ; }
1581      YY_BREAK      YY_BREAK
1582  case 51:  case 30:
1583  YY_RULE_SETUP  YY_RULE_SETUP
1584  #line 215 "base\\generic\\compiler\\scanner.l"  #line 194 "base/generic/compiler/scanner.l"
1585  { return DO_TOK         ; }  { return ANY_TOK            ; }
1586      YY_BREAK      YY_BREAK
1587  case 52:  case 31:
1588  YY_RULE_SETUP  YY_RULE_SETUP
1589  #line 216 "base\\generic\\compiler\\scanner.l"  #line 195 "base/generic/compiler/scanner.l"
1590  { return ELSE_TOK           ; }  { return AREALIKE_TOK       ; }
1591      YY_BREAK      YY_BREAK
1592  case 53:  case 32:
1593  YY_RULE_SETUP  YY_RULE_SETUP
1594  #line 217 "base\\generic\\compiler\\scanner.l"  #line 196 "base/generic/compiler/scanner.l"
1595  { return END_TOK            ; }  { return ARETHESAME_TOK   ; }
1596      YY_BREAK      YY_BREAK
1597  case 54:  case 33:
1598  YY_RULE_SETUP  YY_RULE_SETUP
1599  #line 218 "base\\generic\\compiler\\scanner.l"  #line 197 "base/generic/compiler/scanner.l"
1600  { return EXPECT_TOK     ; }  { return ARRAY_TOK      ; }
1601      YY_BREAK      YY_BREAK
1602  case 55:  case 34:
1603  YY_RULE_SETUP  YY_RULE_SETUP
1604  #line 219 "base\\generic\\compiler\\scanner.l"  #line 198 "base/generic/compiler/scanner.l"
1605  { return EXTERNAL_TOK       ; }  { return ATOM_TOK           ; }
1606      YY_BREAK      YY_BREAK
1607  case 56:  case 35:
1608  YY_RULE_SETUP  YY_RULE_SETUP
1609  #line 220 "base\\generic\\compiler\\scanner.l"  #line 199 "base/generic/compiler/scanner.l"
1610  { return FALSE_TOK      ; }  { return BREAK_TOK      ; }
1611      YY_BREAK      YY_BREAK
1612  case 57:  case 36:
1613  YY_RULE_SETUP  YY_RULE_SETUP
1614  #line 221 "base\\generic\\compiler\\scanner.l"  #line 200 "base/generic/compiler/scanner.l"
1615  { return FALLTHRU_TOK       ; }  { return CALL_TOK           ; }
1616      YY_BREAK      YY_BREAK
1617  case 58:  case 37:
1618  YY_RULE_SETUP  YY_RULE_SETUP
1619  #line 222 "base\\generic\\compiler\\scanner.l"  #line 201 "base/generic/compiler/scanner.l"
1620  { return FIX_TOK            ; }  { return CARD_TOK           ; }
1621      YY_BREAK      YY_BREAK
1622  case 59:  case 38:
1623  YY_RULE_SETUP  YY_RULE_SETUP
1624  #line 223 "base\\generic\\compiler\\scanner.l"  #line 202 "base/generic/compiler/scanner.l"
1625  { return FREE_TOK           ; }  { return CASE_TOK           ; }
1626      YY_BREAK      YY_BREAK
1627  case 60:  case 39:
1628  YY_RULE_SETUP  YY_RULE_SETUP
1629  #line 224 "base\\generic\\compiler\\scanner.l"  #line 203 "base/generic/compiler/scanner.l"
1630  { return FOR_TOK            ; }  { return CHECK_TOK      ; }
1631      YY_BREAK      YY_BREAK
1632  case 61:  case 40:
1633  YY_RULE_SETUP  YY_RULE_SETUP
1634  #line 225 "base\\generic\\compiler\\scanner.l"  #line 204 "base/generic/compiler/scanner.l"
1635  { return FROM_TOK           ; }  { return CHOICE_TOK     ; }
1636      YY_BREAK      YY_BREAK
1637  case 62:  case 41:
1638  YY_RULE_SETUP  YY_RULE_SETUP
1639  #line 226 "base\\generic\\compiler\\scanner.l"  #line 205 "base/generic/compiler/scanner.l"
1640  { return GLOBAL_TOK     ; }  { return CONDITIONAL_TOK        ; }
1641      YY_BREAK      YY_BREAK
1642  case 63:  case 42:
1643  YY_RULE_SETUP  YY_RULE_SETUP
1644  #line 227 "base\\generic\\compiler\\scanner.l"  #line 206 "base/generic/compiler/scanner.l"
1645  { return ASSERT_TOK         ; }  { return CONSTANT_TOK       ; }
1646      YY_BREAK      YY_BREAK
1647  case 64:  case 43:
1648  YY_RULE_SETUP  YY_RULE_SETUP
1649  #line 228 "base\\generic\\compiler\\scanner.l"  #line 207 "base/generic/compiler/scanner.l"
1650  { return IF_TOK         ; }  { return CONTINUE_TOK       ; }
1651      YY_BREAK      YY_BREAK
1652  case 65:  case 44:
1653  YY_RULE_SETUP  YY_RULE_SETUP
1654  #line 229 "base\\generic\\compiler\\scanner.l"  #line 208 "base/generic/compiler/scanner.l"
1655  { return IMPORT_TOK     ; }  { return CREATE_TOK     ; }
1656      YY_BREAK      YY_BREAK
1657  case 66:  case 45:
1658  YY_RULE_SETUP  YY_RULE_SETUP
1659  #line 230 "base\\generic\\compiler\\scanner.l"  #line 209 "base/generic/compiler/scanner.l"
1660  { return IN_TOK         ; }  { return DATA_TOK           ; }
1661      YY_BREAK      YY_BREAK
1662  case 67:  case 46:
1663  YY_RULE_SETUP  YY_RULE_SETUP
1664  #line 231 "base\\generic\\compiler\\scanner.l"  #line 210 "base/generic/compiler/scanner.l"
1665  { return INCREASING_TOK     ; }  { return DECREASING_TOK     ; }
1666      YY_BREAK      YY_BREAK
1667  case 68:  case 47:
1668  YY_RULE_SETUP  YY_RULE_SETUP
1669  #line 232 "base\\generic\\compiler\\scanner.l"  #line 211 "base/generic/compiler/scanner.l"
1670  { return INPUT_TOK      ; }  { return DEFAULT_TOK        ; }
1671      YY_BREAK      YY_BREAK
1672  case 69:  case 48:
1673  YY_RULE_SETUP  YY_RULE_SETUP
1674  #line 233 "base\\generic\\compiler\\scanner.l"  #line 212 "base/generic/compiler/scanner.l"
1675  { return INTERSECTION_TOK       ; }  { return DEFINITION_TOK     ; }
1676      YY_BREAK      YY_BREAK
1677  case 70:  case 49:
1678  YY_RULE_SETUP  YY_RULE_SETUP
1679  #line 234 "base\\generic\\compiler\\scanner.l"  #line 213 "base/generic/compiler/scanner.l"
1680  { return ISA_TOK            ; }  { return DIMENSION_TOK      ; }
1681      YY_BREAK      YY_BREAK
1682  case 71:  case 50:
1683  YY_RULE_SETUP  YY_RULE_SETUP
1684  #line 235 "base\\generic\\compiler\\scanner.l"  #line 214 "base/generic/compiler/scanner.l"
1685  { return ISREFINEDTO_TOK        ; }  { return DIMENSIONLESS_TOK  ; }
1686      YY_BREAK      YY_BREAK
1687  case 72:  case 51:
1688  YY_RULE_SETUP  YY_RULE_SETUP
1689  #line 236 "base\\generic\\compiler\\scanner.l"  #line 215 "base/generic/compiler/scanner.l"
1690  { return MAXIMIZE_TOK       ; }  { return DO_TOK         ; }
1691      YY_BREAK      YY_BREAK
1692  case 73:  case 52:
1693  YY_RULE_SETUP  YY_RULE_SETUP
1694  #line 237 "base\\generic\\compiler\\scanner.l"  #line 216 "base/generic/compiler/scanner.l"
1695  { return MAXINTEGER_TOK     ; }  { return ELSE_TOK           ; }
1696      YY_BREAK      YY_BREAK
1697  case 74:  case 53:
1698  YY_RULE_SETUP  YY_RULE_SETUP
1699  #line 238 "base\\generic\\compiler\\scanner.l"  #line 217 "base/generic/compiler/scanner.l"
1700  { return MAXREAL_TOK        ; }  { return END_TOK            ; }
1701      YY_BREAK      YY_BREAK
1702  case 75:  case 54:
1703  YY_RULE_SETUP  YY_RULE_SETUP
1704  #line 239 "base\\generic\\compiler\\scanner.l"  #line 218 "base/generic/compiler/scanner.l"
1705  { return METHOD_TOK     ; }  { return EXPECT_TOK     ; }
1706      YY_BREAK      YY_BREAK
1707  case 76:  case 55:
1708  YY_RULE_SETUP  YY_RULE_SETUP
1709  #line 240 "base\\generic\\compiler\\scanner.l"  #line 219 "base/generic/compiler/scanner.l"
1710  { return METHODS_TOK        ; }  { return EXTERNAL_TOK       ; }
1711      YY_BREAK      YY_BREAK
1712  case 77:  case 56:
1713  YY_RULE_SETUP  YY_RULE_SETUP
1714  #line 241 "base\\generic\\compiler\\scanner.l"  #line 220 "base/generic/compiler/scanner.l"
1715  { return MINIMIZE_TOK       ; }  { return FALSE_TOK      ; }
1716      YY_BREAK      YY_BREAK
1717  case 78:  case 57:
1718  YY_RULE_SETUP  YY_RULE_SETUP
1719  #line 242 "base\\generic\\compiler\\scanner.l"  #line 221 "base/generic/compiler/scanner.l"
1720  { return MODEL_TOK      ; }  { return FALLTHRU_TOK       ; }
1721      YY_BREAK      YY_BREAK
1722  case 79:  case 58:
1723  YY_RULE_SETUP  YY_RULE_SETUP
1724  #line 243 "base\\generic\\compiler\\scanner.l"  #line 222 "base/generic/compiler/scanner.l"
1725  { return NOT_TOK            ; }  { return FIX_TOK            ; }
1726      YY_BREAK      YY_BREAK
1727  case 80:  case 59:
1728  YY_RULE_SETUP  YY_RULE_SETUP
1729  #line 244 "base\\generic\\compiler\\scanner.l"  #line 223 "base/generic/compiler/scanner.l"
1730  { return NOTES_TOK      ; }  { return FREE_TOK           ; }
1731      YY_BREAK      YY_BREAK
1732  case 81:  case 60:
1733  YY_RULE_SETUP  YY_RULE_SETUP
1734  #line 245 "base\\generic\\compiler\\scanner.l"  #line 224 "base/generic/compiler/scanner.l"
1735  { return OF_TOK         ; }  { return FOR_TOK            ; }
1736      YY_BREAK      YY_BREAK
1737  case 82:  case 61:
1738  YY_RULE_SETUP  YY_RULE_SETUP
1739  #line 246 "base\\generic\\compiler\\scanner.l"  #line 225 "base/generic/compiler/scanner.l"
1740  { return OR_TOK         ; }  { return FROM_TOK           ; }
1741      YY_BREAK      YY_BREAK
1742  case 83:  case 62:
1743  YY_RULE_SETUP  YY_RULE_SETUP
1744  #line 247 "base\\generic\\compiler\\scanner.l"  #line 226 "base/generic/compiler/scanner.l"
1745  { return OTHERWISE_TOK      ; }  { return GLOBAL_TOK     ; }
1746      YY_BREAK      YY_BREAK
1747  case 84:  case 63:
1748  YY_RULE_SETUP  YY_RULE_SETUP
1749  #line 248 "base\\generic\\compiler\\scanner.l"  #line 227 "base/generic/compiler/scanner.l"
1750  { return OUTPUT_TOK     ; }  { return ASSERT_TOK         ; }
1751      YY_BREAK      YY_BREAK
1752  case 85:  case 64:
1753  YY_RULE_SETUP  YY_RULE_SETUP
1754  #line 249 "base\\generic\\compiler\\scanner.l"  #line 228 "base/generic/compiler/scanner.l"
1755  { return PROD_TOK           ; }  { return IF_TOK         ; }
1756      YY_BREAK      YY_BREAK
1757  case 86:  case 65:
1758  YY_RULE_SETUP  YY_RULE_SETUP
1759  #line 250 "base\\generic\\compiler\\scanner.l"  #line 229 "base/generic/compiler/scanner.l"
1760  { return PROVIDE_TOK        ; }  { return IMPORT_TOK     ; }
1761      YY_BREAK      YY_BREAK
1762  case 87:  case 66:
1763  YY_RULE_SETUP  YY_RULE_SETUP
1764  #line 251 "base\\generic\\compiler\\scanner.l"  #line 230 "base/generic/compiler/scanner.l"
1765  { return REFINES_TOK        ; }  { return IN_TOK         ; }
1766      YY_BREAK      YY_BREAK
1767  case 88:  case 67:
1768  YY_RULE_SETUP  YY_RULE_SETUP
1769  #line 252 "base\\generic\\compiler\\scanner.l"  #line 231 "base/generic/compiler/scanner.l"
1770  { return REPLACE_TOK        ; }  { return INCREASING_TOK     ; }
1771      YY_BREAK      YY_BREAK
1772  case 89:  case 68:
1773  YY_RULE_SETUP  YY_RULE_SETUP
1774  #line 253 "base\\generic\\compiler\\scanner.l"  #line 232 "base/generic/compiler/scanner.l"
1775  { return REQUIRE_TOK        ; }  { return INPUT_TOK      ; }
1776      YY_BREAK      YY_BREAK
1777  case 90:  case 69:
1778  YY_RULE_SETUP  YY_RULE_SETUP
1779  #line 254 "base\\generic\\compiler\\scanner.l"  #line 233 "base/generic/compiler/scanner.l"
1780  { return RETURN_TOK     ; }  { return INTERSECTION_TOK       ; }
1781      YY_BREAK      YY_BREAK
1782  case 91:  case 70:
1783  YY_RULE_SETUP  YY_RULE_SETUP
1784  #line 255 "base\\generic\\compiler\\scanner.l"  #line 234 "base/generic/compiler/scanner.l"
1785  { return RUN_TOK            ; }  { return ISA_TOK            ; }
1786      YY_BREAK      YY_BREAK
1787  case 92:  case 71:
1788  YY_RULE_SETUP  YY_RULE_SETUP
1789  #line 256 "base\\generic\\compiler\\scanner.l"  #line 235 "base/generic/compiler/scanner.l"
1790  { return SATISFIED_TOK      ; }  { return ISREFINEDTO_TOK        ; }
1791      YY_BREAK      YY_BREAK
1792  case 93:  case 72:
1793  YY_RULE_SETUP  YY_RULE_SETUP
1794  #line 257 "base\\generic\\compiler\\scanner.l"  #line 236 "base/generic/compiler/scanner.l"
1795  { return SELECT_TOK     ; }  { return MAXIMIZE_TOK       ; }
1796      YY_BREAK      YY_BREAK
1797  case 94:  case 73:
1798  YY_RULE_SETUP  YY_RULE_SETUP
1799  #line 258 "base\\generic\\compiler\\scanner.l"  #line 237 "base/generic/compiler/scanner.l"
1800  { return SUCHTHAT_TOK       ; }  { return MAXINTEGER_TOK     ; }
1801      YY_BREAK      YY_BREAK
1802  case 95:  case 74:
1803  YY_RULE_SETUP  YY_RULE_SETUP
1804  #line 259 "base\\generic\\compiler\\scanner.l"  #line 238 "base/generic/compiler/scanner.l"
1805  { return SUM_TOK            ; }  { return MAXREAL_TOK        ; }
1806      YY_BREAK      YY_BREAK
1807  case 96:  case 75:
1808  YY_RULE_SETUP  YY_RULE_SETUP
1809  #line 260 "base\\generic\\compiler\\scanner.l"  #line 239 "base/generic/compiler/scanner.l"
1810  { return SIZE_TOK           ; }  { return METHOD_TOK     ; }
1811      YY_BREAK      YY_BREAK
1812  case 97:  case 76:
1813  YY_RULE_SETUP  YY_RULE_SETUP
1814  #line 261 "base\\generic\\compiler\\scanner.l"  #line 240 "base/generic/compiler/scanner.l"
1815  { return SWITCH_TOK     ; }  { return METHODS_TOK        ; }
1816      YY_BREAK      YY_BREAK
1817  case 98:  case 77:
1818  YY_RULE_SETUP  YY_RULE_SETUP
1819  #line 262 "base\\generic\\compiler\\scanner.l"  #line 241 "base/generic/compiler/scanner.l"
1820  { return STOP_TOK           ; }  { return MINIMIZE_TOK       ; }
1821      YY_BREAK      YY_BREAK
1822  case 99:  case 78:
1823  YY_RULE_SETUP  YY_RULE_SETUP
1824  #line 263 "base\\generic\\compiler\\scanner.l"  #line 242 "base/generic/compiler/scanner.l"
1825  { return THEN_TOK           ; }  { return MODEL_TOK      ; }
1826      YY_BREAK      YY_BREAK
1827  case 100:  case 79:
1828  YY_RULE_SETUP  YY_RULE_SETUP
1829  #line 264 "base\\generic\\compiler\\scanner.l"  #line 243 "base/generic/compiler/scanner.l"
1830  { return TRUE_TOK           ; }  { return NOT_TOK            ; }
1831      YY_BREAK      YY_BREAK
1832  case 101:  case 80:
1833  YY_RULE_SETUP  YY_RULE_SETUP
1834  #line 265 "base\\generic\\compiler\\scanner.l"  #line 244 "base/generic/compiler/scanner.l"
1835  { return UNION_TOK      ; }  { return NOTES_TOK      ; }
1836      YY_BREAK      YY_BREAK
1837  case 102:  case 81:
1838  YY_RULE_SETUP  YY_RULE_SETUP
1839  #line 266 "base\\generic\\compiler\\scanner.l"  #line 245 "base/generic/compiler/scanner.l"
1840  { return UNITS_TOK      ; }  { return OF_TOK         ; }
1841      YY_BREAK      YY_BREAK
1842  case 103:  case 82:
1843  YY_RULE_SETUP  YY_RULE_SETUP
1844  #line 267 "base\\generic\\compiler\\scanner.l"  #line 246 "base/generic/compiler/scanner.l"
1845  { return UNIVERSAL_TOK      ; }  { return OR_TOK         ; }
1846      YY_BREAK      YY_BREAK
1847  case 104:  case 83:
1848  YY_RULE_SETUP  YY_RULE_SETUP
1849  #line 268 "base\\generic\\compiler\\scanner.l"  #line 247 "base/generic/compiler/scanner.l"
1850  { return USE_TOK            ; }  { return OTHERWISE_TOK      ; }
1851      YY_BREAK      YY_BREAK
1852  case 105:  case 84:
1853  YY_RULE_SETUP  YY_RULE_SETUP
1854  #line 269 "base\\generic\\compiler\\scanner.l"  #line 248 "base/generic/compiler/scanner.l"
1855  { return VALUE_TOK      ; }  { return OUTPUT_TOK     ; }
1856      YY_BREAK      YY_BREAK
1857  case 106:  case 85:
1858  YY_RULE_SETUP  YY_RULE_SETUP
1859  #line 270 "base\\generic\\compiler\\scanner.l"  #line 249 "base/generic/compiler/scanner.l"
1860  { return WHEN_TOK           ; }  { return PROD_TOK           ; }
1861      YY_BREAK      YY_BREAK
1862  case 107:  case 86:
1863  YY_RULE_SETUP  YY_RULE_SETUP
1864  #line 271 "base\\generic\\compiler\\scanner.l"  #line 250 "base/generic/compiler/scanner.l"
1865  { return WHERE_TOK      ; }  { return PROVIDE_TOK        ; }
1866      YY_BREAK      YY_BREAK
1867  case 108:  case 87:
1868  YY_RULE_SETUP  YY_RULE_SETUP
1869  #line 272 "base\\generic\\compiler\\scanner.l"  #line 251 "base/generic/compiler/scanner.l"
1870  { return WHILE_TOK      ; }  { return REFINES_TOK        ; }
1871      YY_BREAK      YY_BREAK
1872  case 109:  case 88:
1873  YY_RULE_SETUP  YY_RULE_SETUP
1874  #line 273 "base\\generic\\compiler\\scanner.l"  #line 252 "base/generic/compiler/scanner.l"
1875  { return WILLBE_TOK     ; }  { return REPLACE_TOK        ; }
1876      YY_BREAK      YY_BREAK
1877  case 110:  case 89:
1878  YY_RULE_SETUP  YY_RULE_SETUP
1879  #line 274 "base\\generic\\compiler\\scanner.l"  #line 253 "base/generic/compiler/scanner.l"
1880  { return WILLBETHESAME_TOK  ; }  { return REQUIRE_TOK        ; }
1881      YY_BREAK      YY_BREAK
1882  case 111:  case 90:
1883  YY_RULE_SETUP  YY_RULE_SETUP
1884  #line 275 "base\\generic\\compiler\\scanner.l"  #line 254 "base/generic/compiler/scanner.l"
1885  { return WILLNOTBETHESAME_TOK   ; }  { return RETURN_TOK     ; }
1886      YY_BREAK      YY_BREAK
1887  case 112:  case 91:
1888  YY_RULE_SETUP  YY_RULE_SETUP
1889  #line 276 "base\\generic\\compiler\\scanner.l"  #line 255 "base/generic/compiler/scanner.l"
1890  { return WITH_TOK           ; }  { return RUN_TOK            ; }
1891      YY_BREAK      YY_BREAK
1892  case 113:  case 92:
1893  YY_RULE_SETUP  YY_RULE_SETUP
1894  #line 277 "base\\generic\\compiler\\scanner.l"  #line 256 "base/generic/compiler/scanner.l"
1895  { return WITH_VALUE_T       ; }  { return SATISFIED_TOK      ; }
1896      YY_BREAK      YY_BREAK
1897  /*  case 93:
1898       *  Code to handle (* Comments *)  YY_RULE_SETUP
1899       *  #line 257 "base/generic/compiler/scanner.l"
1900       *  "(*" puts us into the Comment state.  Comments nest, so in the  { return SELECT_TOK     ; }
1901       *  Comment state we need to look for "(*" that increases the nesting      YY_BREAK
1902       *  level and "*)" that will lower it.  case 94:
1903       *  Flex is faster if we match as much as possible, so we repeat  YY_RULE_SETUP
1904       *  patterns with and without the "\n" (although it is more difficult  #line 258 "base/generic/compiler/scanner.l"
1905       *  for the maintainer to understand) to avoid the overhead of a  { return SUCHTHAT_TOK       ; }
1906       *  separate "\n" rule.      YY_BREAK
1907       *  Do NOT try to match \(\*+ since that causes "(****)" to parse  case 95:
1908       *  incorrectly.  YY_RULE_SETUP
1909       */  #line 259 "base/generic/compiler/scanner.l"
1910  case 114:  { return SUM_TOK            ; }
1911  YY_RULE_SETUP      YY_BREAK
1912  #line 293 "base\\generic\\compiler\\scanner.l"  case 96:
1913  {  YY_RULE_SETUP
1914                    /*  Match "(" followed by "*" puts us into  #line 260 "base/generic/compiler/scanner.l"
1915                     *  the COMMENT state.  Don't use \*+ since  { return SIZE_TOK           ; }
1916                     *  that will parse "(***)" incorrectly.      YY_BREAK
1917                     *  Initialize the nesting level.  case 97:
1918                     *  Store the current line for ErrMsg use.  YY_RULE_SETUP
1919                     */  #line 261 "base/generic/compiler/scanner.l"
1920                    BEGIN (Comment);  { return SWITCH_TOK     ; }
1921                    CommentNestLevel = 1;      YY_BREAK
1922                    start_line = yy_line;  case 98:
1923                    break;  YY_RULE_SETUP
1924                  }  #line 262 "base/generic/compiler/scanner.l"
1925      YY_BREAK  { return STOP_TOK           ; }
1926  case 115:      YY_BREAK
1927  YY_RULE_SETUP  case 99:
1928  #line 305 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
1929  {  #line 263 "base/generic/compiler/scanner.l"
1930                    /*  Match "(" followed "*" followed by  { return THEN_TOK           ; }
1931                     *  anything that's not "(" nor "*".      YY_BREAK
1932                     *  Increase the commment nesting level.  case 100:
1933                     */  YY_RULE_SETUP
1934                    CommentNestLevel++;  #line 264 "base/generic/compiler/scanner.l"
1935                    break;  { return TRUE_TOK           ; }
1936                  }      YY_BREAK
1937      YY_BREAK  case 101:
1938  case 116:  YY_RULE_SETUP
1939  YY_RULE_SETUP  #line 265 "base/generic/compiler/scanner.l"
1940  #line 313 "base\\generic\\compiler\\scanner.l"  { return UNION_TOK      ; }
1941  {      YY_BREAK
1942                    /*  Match "(" followed by "*" followed by  case 102:
1943                     *  anything that's not "(" nor "*".  YY_RULE_SETUP
1944                     *  Increase the commment nesting level.  #line 266 "base/generic/compiler/scanner.l"
1945                     */  { return UNITS_TOK      ; }
1946                    yy_line++;      YY_BREAK
1947                    CommentNestLevel++;  case 103:
1948                    break;  YY_RULE_SETUP
1949                  }  #line 267 "base/generic/compiler/scanner.l"
1950      YY_BREAK  { return UNIVERSAL_TOK      ; }
1951  case 117:      YY_BREAK
1952  YY_RULE_SETUP  case 104:
1953  #line 322 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
1954  {  #line 268 "base/generic/compiler/scanner.l"
1955                    /*  Match anything not "*" or "(" followed  { return USE_TOK            ; }
1956                     *  by one or more "*"s followed by ")".      YY_BREAK
1957                     *  This decreases the comment nesting level  case 105:
1958                     *  and kicks us out if we're back to zero.  YY_RULE_SETUP
1959                     */  #line 269 "base/generic/compiler/scanner.l"
1960                    CommentNestLevel--;  { return VALUE_TOK      ; }
1961                    if (CommentNestLevel == 0) {      YY_BREAK
1962                      BEGIN (INITIAL);  case 106:
1963                    }  YY_RULE_SETUP
1964                    break;  #line 270 "base/generic/compiler/scanner.l"
1965                  }  { return WHEN_TOK           ; }
1966      YY_BREAK      YY_BREAK
1967  case 118:  case 107:
1968  YY_RULE_SETUP  YY_RULE_SETUP
1969  #line 334 "base\\generic\\compiler\\scanner.l"  #line 271 "base/generic/compiler/scanner.l"
1970  {  { return WHERE_TOK      ; }
1971                    /*  Eat anything that's not a "*" nor a "("      YY_BREAK
1972                     */  case 108:
1973                    break;  YY_RULE_SETUP
1974                  }  #line 272 "base/generic/compiler/scanner.l"
1975      YY_BREAK  { return WHILE_TOK      ; }
1976  case 119:      YY_BREAK
1977  YY_RULE_SETUP  case 109:
1978  #line 339 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
1979  {  #line 273 "base/generic/compiler/scanner.l"
1980                    /*  Eat anything that's not a "*" nor a "("  { return WILLBE_TOK     ; }
1981                     *  that is followed by a newline.      YY_BREAK
1982                     *  This rule also matches empty line.  case 110:
1983                     */  YY_RULE_SETUP
1984                    yy_line++;  #line 274 "base/generic/compiler/scanner.l"
1985                    break;  { return WILLBETHESAME_TOK  ; }
1986                  }      YY_BREAK
1987      YY_BREAK  case 111:
1988  case 120:  YY_RULE_SETUP
1989  YY_RULE_SETUP  #line 275 "base/generic/compiler/scanner.l"
1990  #line 347 "base\\generic\\compiler\\scanner.l"  { return WILLNOTBETHESAME_TOK   ; }
1991  {      YY_BREAK
1992                    /*  Eat "("s not followed by "*"  case 112:
1993                     */  YY_RULE_SETUP
1994                    break;  #line 276 "base/generic/compiler/scanner.l"
1995                  }  { return WITH_TOK           ; }
1996      YY_BREAK      YY_BREAK
1997  case 121:  case 113:
1998  YY_RULE_SETUP  YY_RULE_SETUP
1999  #line 352 "base\\generic\\compiler\\scanner.l"  #line 277 "base/generic/compiler/scanner.l"
2000  {  { return WITH_VALUE_T       ; }
2001                    /*  Eat "("s not followed by "*" plus a "\n"      YY_BREAK
2002                     */  /*
2003                    yy_line++;       *  Code to handle (* Comments *)
2004                    break;       *
2005                  }       *  "(*" puts us into the Comment state.  Comments nest, so in the
2006      YY_BREAK       *  Comment state we need to look for "(*" that increases the nesting
2007  case 122:       *  level and "*)" that will lower it.
2008  YY_RULE_SETUP       *  Flex is faster if we match as much as possible, so we repeat
2009  #line 358 "base\\generic\\compiler\\scanner.l"       *  patterns with and without the "\n" (although it is more difficult
2010  {       *  for the maintainer to understand) to avoid the overhead of a
2011                    /*  Eat "*"s not followed by ")"       *  separate "\n" rule.
2012                     */       *  Do NOT try to match \(\*+ since that causes "(****)" to parse
2013                    break;       *  incorrectly.
2014                  }       */
2015      YY_BREAK  case 114:
2016  case 123:  YY_RULE_SETUP
2017  YY_RULE_SETUP  #line 293 "base/generic/compiler/scanner.l"
2018  #line 363 "base\\generic\\compiler\\scanner.l"  {
2019  {                    /*  Match "(" followed by "*" puts us into
2020                    /*  Eat "*" not followed by ")" plus a "\n"                     *  the COMMENT state.  Don't use \*+ since
2021                     */                     *  that will parse "(***)" incorrectly.
2022                    yy_line++;                     *  Initialize the nesting level.
2023                    break;                     *  Store the current line for ErrMsg use.
2024                  }                     */
2025      YY_BREAK                    BEGIN (Comment);
2026  case YY_STATE_EOF(Comment):                    CommentNestLevel = 1;
2027  #line 369 "base\\generic\\compiler\\scanner.l"                    start_line = yy_line;
2028  {                    break;
2029                    /*  An EOF in a Comment means bad nesting.                  }
2030                     *  Print an error and pop back a level      YY_BREAK
2031                     *  or return ENDTOK if no more input.  case 115:
2032                     */  YY_RULE_SETUP
2033                    ErrMsg_CommentEOF();  #line 305 "base/generic/compiler/scanner.l"
2034                    CommentNestLevel = 0;  {
2035                    if ( Asc_ScannerPopBuffer() == 1 ) {                    /*  Match "(" followed "*" followed by
2036                      return ENDTOK;                     *  anything that's not "(" nor "*".
2037                    }                     *  Increase the commment nesting level.
2038                    break;                     */
2039                  }                    CommentNestLevel++;
2040      YY_BREAK                    break;
2041  /*                  }
2042       *  Code to handle 'Symbols'      YY_BREAK
2043       *  case 116:
2044       *  Symbols are simple: they are 'singely quoted strings' that  /* rule 116 can match eol */
2045       *  exist on a single line.  Look for anything that is not  YY_RULE_SETUP
2046       *  a quote or a newline to get the text of the symbol.  #line 313 "base/generic/compiler/scanner.l"
2047       */  {
2048  case 124:                    /*  Match "(" followed by "*" followed by
2049  YY_RULE_SETUP                     *  anything that's not "(" nor "*".
2050  #line 391 "base\\generic\\compiler\\scanner.l"                     *  Increase the commment nesting level.
2051  {                     */
2052                    /*  A single quote (') in the INITIAL state                    yy_line++;
2053                     *  puts us into the Symbol state.                    CommentNestLevel++;
2054                     */                    break;
2055                    BEGIN (Symbol);                  }
2056                    break;      YY_BREAK
2057                  }  case 117:
2058      YY_BREAK  YY_RULE_SETUP
2059  case 125:  #line 322 "base/generic/compiler/scanner.l"
2060  YY_RULE_SETUP  {
2061  #line 398 "base\\generic\\compiler\\scanner.l"                    /*  Match anything not "*" or "(" followed
2062  {                     *  by one or more "*"s followed by ")".
2063                    /*  Anything that is not a (') nor a newline                     *  This decreases the comment nesting level
2064                     *  followed by a (') is the symbol's text.                     *  and kicks us out if we're back to zero.
2065                     *  Return to the INITIAL state, store the                     */
2066                     *  symbol in the symbol table and return                    CommentNestLevel--;
2067                     *  SYMBOL_TOK to the parser.                    if (CommentNestLevel == 0) {
2068                     */                      BEGIN (INITIAL);
2069                    BEGIN (INITIAL);                    }
2070                    /*  strip off the final (')                    break;
2071                     */                  }
2072                    yytext[--yyleng] = '\0';      YY_BREAK
2073                    if (yyleng > YY_MAXLEN) {  case 118:
2074                      ErrMsg_LongSymbol();  YY_RULE_SETUP
2075                      break;  #line 334 "base/generic/compiler/scanner.l"
2076                    }  {
2077                    zz_lval.sym_ptr = AddSymbolL(yytext,yyleng);                    /*  Eat anything that's not a "*" nor a "("
2078                    return SYMBOL_TOK;                     */
2079                  }                    break;
2080      YY_BREAK                  }
2081  case 126:      YY_BREAK
2082  YY_RULE_SETUP  case 119:
2083  #line 416 "base\\generic\\compiler\\scanner.l"  /* rule 119 can match eol */
2084  {  YY_RULE_SETUP
2085                    /*  If we find a newline before a ('), the  #line 339 "base/generic/compiler/scanner.l"
2086                     *  symbol is unterminated.  Print an error  {
2087                     *  message and return to the INITIAL state.                    /*  Eat anything that's not a "*" nor a "("
2088                     */                     *  that is followed by a newline.
2089                    ErrMsg_SymbolEOL();                     *  This rule also matches empty line.
2090                    yy_line++;                     */
2091                    BEGIN(INITIAL);                    yy_line++;
2092                    break;                    break;
2093                  }                  }
2094      YY_BREAK      YY_BREAK
2095  case YY_STATE_EOF(Symbol):  case 120:
2096  #line 426 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
2097  {  #line 347 "base/generic/compiler/scanner.l"
2098                    /*  If we find an EOF before a ('), the  {
2099                     *  symbol is unterminated.  Print an error                    /*  Eat "("s not followed by "*"
2100                     *  message and pop to the previously                     */
2101                     *  REQUIREd file or return ENDTOK if the                    break;
2102                     *  pop fails due to no more input.                  }
2103                     */      YY_BREAK
2104                    ErrMsg_SymbolEOF();  case 121:
2105                    if ( Asc_ScannerPopBuffer() == 1 ) {  /* rule 121 can match eol */
2106                      return ENDTOK;  YY_RULE_SETUP
2107                    }  #line 352 "base/generic/compiler/scanner.l"
2108                    break;  {
2109                  }                    /*  Eat "("s not followed by "*" plus a "\n"
2110      YY_BREAK                     */
2111  /*                    yy_line++;
2112       *  Code to handle "Text in Double Quotes"                    break;
2113       *                  }
2114       *  The DoubleQuote state begins with a double quote and ends      YY_BREAK
2115       *  with a double quote; double quotes can be included by  case 122:
2116       *  escaping them with a backslash (e.g. \").  There is no  YY_RULE_SETUP
2117       *  nesting level to worry about.  #line 358 "base/generic/compiler/scanner.l"
2118       *  Flex is faster if we match as much as possible, so we repeat  {
2119       *  patterns with and without the "\n" (although it is more difficult                    /*  Eat "*"s not followed by ")"
2120       *  for the maintainer to understand) to avoid the overhead of a                     */
2121       *  separate "\n" rule.                    break;
2122       *  We want to keep the text, so we need to call yymore().                  }
2123       */      YY_BREAK
2124  case 127:  case 123:
2125  YY_RULE_SETUP  /* rule 123 can match eol */
2126  #line 455 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
2127  {  #line 363 "base/generic/compiler/scanner.l"
2128                    /*  A double quote puts us into the  {
2129                     *  DoubleQuote state.  Save the line                    /*  Eat "*" not followed by ")" plus a "\n"
2130                     *  number for error reporting.                     */
2131                     */                    yy_line++;
2132                    BEGIN (DoubleQuote);                    break;
2133                    start_line = yy_line;                  }
2134                    break;      YY_BREAK
2135                  }  case YY_STATE_EOF(Comment):
2136      YY_BREAK  #line 369 "base/generic/compiler/scanner.l"
2137  case 128:  {
2138  YY_RULE_SETUP                    /*  An EOF in a Comment means bad nesting.
2139  #line 464 "base\\generic\\compiler\\scanner.l"                     *  Print an error and pop back a level
2140  {                     *  or return ENDTOK if no more input.
2141                    /*  A backslash \ in the DoubleQuote                     */
2142                     *  state protects any character.                    ErrMsg_CommentEOF();
2143                     */                    CommentNestLevel = 0;
2144                    MatchedBackslash++;                    if ( Asc_ScannerPopBuffer() == 1 ) {
2145                    yymore();                      return ENDTOK;
2146                    break;                    }
2147                  }                    break;
2148      YY_BREAK                  }
2149  case 129:      YY_BREAK
2150  YY_RULE_SETUP  /*
2151  #line 472 "base\\generic\\compiler\\scanner.l"       *  Code to handle 'Symbols'
2152  {       *
2153                    /*  A backslash \ in the DoubleQuote       *  Symbols are simple: they are 'singely quoted strings' that
2154                     *  state protects a newline.       *  exist on a single line.  Look for anything that is not
2155                     */       *  a quote or a newline to get the text of the symbol.
2156                    MatchedBackslash++;       */
2157                    yy_line++;  case 124:
2158                    yymore();  YY_RULE_SETUP
2159                    break;  #line 391 "base/generic/compiler/scanner.l"
2160                  }  {
2161      YY_BREAK                    /*  A single quote (') in the INITIAL state
2162  case 130:                     *  puts us into the Symbol state.
2163  YY_RULE_SETUP                     */
2164  #line 481 "base\\generic\\compiler\\scanner.l"                    BEGIN (Symbol);
2165  {                    break;
2166                    /*  A double quote in the DoubleQuote state                  }
2167                     *  (that is not protected by backslash)      YY_BREAK
2168                     *  will put us back in the INITIAL state.  case 125:
2169                     *  Process the string and return DQUOTE_TOK  YY_RULE_SETUP
2170                     *  to the parser.  #line 398 "base/generic/compiler/scanner.l"
2171                     */  {
2172                    BEGIN (INITIAL);                    /*  Anything that is not a (') nor a newline
2173                    /*  Remove the final double quote                     *  followed by a (') is the symbol's text.
2174                     */                     *  Return to the INITIAL state, store the
2175                    yytext[--yyleng] = '\0';                     *  symbol in the symbol table and return
2176                    /*  Do backslash substitutions on the string                     *  SYMBOL_TOK to the parser.
2177                     *  before returing it to the scanner.                     */
2178                     */                    BEGIN (INITIAL);
2179                    if ( MatchedBackslash != 0 ) {                    /*  strip off the final (')
2180                      Process_Backslashes();                     */
2181                      MatchedBackslash = 0;                    zz_text[--zz_leng] = '\0';
2182                    }                    if (zz_leng > YY_MAXLEN) {
2183                    zz_lval.dquote_ptr =                      ErrMsg_LongSymbol();
2184                        CopyIntoWorkBuffer(yytext,yyleng);                      break;
2185                    return DQUOTE_TOK;                    }
2186                  }                    zz_lval.sym_ptr = AddSymbolL(zz_text,zz_leng);
2187      YY_BREAK                    return SYMBOL_TOK;
2188  case 131:                  }
2189  YY_RULE_SETUP      YY_BREAK
2190  #line 503 "base\\generic\\compiler\\scanner.l"  case 126:
2191  {  /* rule 126 can match eol */
2192                    /*  Match anything that is not backslash nor  YY_RULE_SETUP
2193                     *  doublequote and add it to the text.  #line 416 "base/generic/compiler/scanner.l"
2194                     */  {
2195                    yymore();                    /*  If we find a newline before a ('), the
2196                    break;                     *  symbol is unterminated.  Print an error
2197                  }                     *  message and return to the INITIAL state.
2198      YY_BREAK                     */
2199  case 132:                    ErrMsg_SymbolEOL();
2200  YY_RULE_SETUP                    yy_line++;
2201  #line 510 "base\\generic\\compiler\\scanner.l"                    BEGIN(INITIAL);
2202  {                    break;
2203                    /*  Match anything that is not backslash nor                  }
2204                     *  doublequote and add it to the text.      YY_BREAK
2205                     *  This also matches an empty line.  case YY_STATE_EOF(Symbol):
2206                     */  #line 426 "base/generic/compiler/scanner.l"
2207                    yy_line++;  {
2208                    yymore();                    /*  If we find an EOF before a ('), the
2209                    break;                     *  symbol is unterminated.  Print an error
2210                  }                     *  message and pop to the previously
2211      YY_BREAK                     *  REQUIREd file or return ENDTOK if the
2212  case YY_STATE_EOF(DoubleQuote):                     *  pop fails due to no more input.
2213  #line 519 "base\\generic\\compiler\\scanner.l"                     */
2214  {                    ErrMsg_SymbolEOF();
2215                    /*  End of File in a DoubleQuote state                    if ( Asc_ScannerPopBuffer() == 1 ) {
2216                     *  means no matching double quote.                      return ENDTOK;
2217                     *  Print an error and pop next buffer                    }
2218                     *  off the RequireStack or return ENDTOK                    break;
2219                     *  if there is no more input.                  }
2220                     */      YY_BREAK
2221                    ErrMsg_DoubleQuoteEOF();  /*
2222                    MatchedBackslash = 0;       *  Code to handle "Text in Double Quotes"
2223                    if ( Asc_ScannerPopBuffer() == 1 ) {       *
2224                      return ENDTOK;       *  The DoubleQuote state begins with a double quote and ends
2225                    }       *  with a double quote; double quotes can be included by
2226                    break;       *  escaping them with a backslash (e.g. \").  There is no
2227                  }       *  nesting level to worry about.
2228      YY_BREAK       *  Flex is faster if we match as much as possible, so we repeat
2229  /*       *  patterns with and without the "\n" (although it is more difficult
2230       *  Code to handle { Text in Braces }       *  for the maintainer to understand) to avoid the overhead of a
2231       *       *  separate "\n" rule.
2232       *  "{" puts us into the BracedText state.  Braces nest, so       *  We want to keep the text, so we need to call yymore().
2233       *  in the BracedText state we need to look for "{" that increases       */
2234       *  the nesting level and "}" that will lower it.  case 127:
2235       *  Flex is faster if we match as much as possible, so we repeat  YY_RULE_SETUP
2236       *  patterns with and without the "\n" (although it is more difficult  #line 455 "base/generic/compiler/scanner.l"
2237       *  for the maintainer to understand) to avoid the overhead of a  {
2238       *  separate "\n" rule.                    /*  A double quote puts us into the
2239       *  We want to keep the text we scan, so we have to call yymore().                     *  DoubleQuote state.  Save the line
2240       */                     *  number for error reporting.
2241  case 133:                     */
2242  YY_RULE_SETUP                    BEGIN (DoubleQuote);
2243  #line 548 "base\\generic\\compiler\\scanner.l"                    start_line = yy_line;
2244  { /*  A "{" puts us into the BracedText state.                    break;
2245                     *  If from the opening "{" to the first                  }
2246                     *  newline is all whitespace, then ignore      YY_BREAK
2247                     *  it.  case 128:
2248                     *  Initialize the nesting level.  YY_RULE_SETUP
2249                     *  Save the current line number for  #line 464 "base/generic/compiler/scanner.l"
2250                     *  error message reporting.  {
2251                     */                    /*  A backslash \ in the DoubleQuote
2252                    BEGIN (BracedText);                     *  state protects any character.
2253                    BracesNestLevel = 1;                     */
2254                    start_line = yy_line;                    MatchedBackslash++;
2255                    yy_line++;                    yymore();
2256                    break;                    break;
2257                  }                  }
2258      YY_BREAK      YY_BREAK
2259  case 134:  case 129:
2260  YY_RULE_SETUP  /* rule 129 can match eol */
2261  #line 562 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
2262  {  #line 472 "base/generic/compiler/scanner.l"
2263                    /*  A "{" puts us into the BracedText state.  {
2264                     *  Initialize the nesting level.                    /*  A backslash \ in the DoubleQuote
2265                     *  Save the current line number for                     *  state protects a newline.
2266                     *  error message reporting.                     */
2267                     */                    MatchedBackslash++;
2268                    BEGIN (BracedText);                    yy_line++;
2269                    BracesNestLevel = 1;                    yymore();
2270                    start_line = yy_line;                    break;
2271                    break;                  }
2272                  }      YY_BREAK
2273      YY_BREAK  case 130:
2274  case 135:  YY_RULE_SETUP
2275  YY_RULE_SETUP  #line 481 "base/generic/compiler/scanner.l"
2276  #line 573 "base\\generic\\compiler\\scanner.l"  {
2277  {                    /*  A double quote in the DoubleQuote state
2278                    /*  A backslash \ in the BracedText state                     *  (that is not protected by backslash)
2279                     *  protects any character and does not                     *  will put us back in the INITIAL state.
2280                     *  affect the Nesting Level.                     *  Process the string and return DQUOTE_TOK
2281                     */                     *  to the parser.
2282                    MatchedBackslash++;                     */
2283                    yymore();                    BEGIN (INITIAL);
2284                    break;                    /*  Remove the final double quote
2285                  }                     */
2286      YY_BREAK                    zz_text[--zz_leng] = '\0';
2287  case 136:                    /*  Do backslash substitutions on the string
2288  YY_RULE_SETUP                     *  before returing it to the scanner.
2289  #line 582 "base\\generic\\compiler\\scanner.l"                     */
2290  {                    if ( MatchedBackslash != 0 ) {
2291                    /*  A backslash \ in the BracedText state                      Process_Backslashes();
2292                     *  protects a newline.                      MatchedBackslash = 0;
2293                     */                    }
2294                    MatchedBackslash++;                    zz_lval.dquote_ptr =
2295                    yy_line++;                        CopyIntoWorkBuffer(zz_text,zz_leng);
2296                    yymore();                    return DQUOTE_TOK;
2297                    break;                  }
2298                  }      YY_BREAK
2299      YY_BREAK  case 131:
2300  case 137:  YY_RULE_SETUP
2301  YY_RULE_SETUP  #line 503 "base/generic/compiler/scanner.l"
2302  #line 591 "base\\generic\\compiler\\scanner.l"  {
2303  {                    /*  Match anything that is not backslash nor
2304                    /*  A "{" in the braces state gets added to                     *  doublequote and add it to the text.
2305                     *  the text and increase the nesting level.                     */
2306                     */                    yymore();
2307                    BracesNestLevel++;                    break;
2308                    yymore();                  }
2309                    break;      YY_BREAK
2310                  }  case 132:
2311      YY_BREAK  /* rule 132 can match eol */
2312  case 138:  YY_RULE_SETUP
2313  YY_RULE_SETUP  #line 510 "base/generic/compiler/scanner.l"
2314  #line 599 "base\\generic\\compiler\\scanner.l"  {
2315  {                    /*  Match anything that is not backslash nor
2316                    /*  A "{" in the braces state gets added to                     *  doublequote and add it to the text.
2317                     *  the text and increase the nesting level.                     *  This also matches an empty line.
2318                     */                     */
2319                    yy_line++;                    yy_line++;
2320                    BracesNestLevel++;                    yymore();
2321                    yymore();                    break;
2322                    break;                  }
2323                  }      YY_BREAK
2324      YY_BREAK  case YY_STATE_EOF(DoubleQuote):
2325  case 139:  #line 519 "base/generic/compiler/scanner.l"
2326  YY_RULE_SETUP  {
2327  #line 608 "base\\generic\\compiler\\scanner.l"                    /*  End of File in a DoubleQuote state
2328  {                     *  means no matching double quote.
2329                    /*  A "}" will reduce the nesting level.                     *  Print an error and pop next buffer
2330                     *  If the nesting level is zero, go back to                     *  off the RequireStack or return ENDTOK
2331                     *  the INITIAL level, save the text as a                     *  if there is no more input.
2332                     *  Symbol, do the backslash substitution,                     */
2333                     *  and return BRACEDTEXT_TOK to the                    ErrMsg_DoubleQuoteEOF();
2334                     *  parse; otherwise, add the "}" to the                    MatchedBackslash = 0;
2335                     *  text and keep scanning.                    if ( Asc_ScannerPopBuffer() == 1 ) {
2336                     */                      return ENDTOK;
2337                    BracesNestLevel--;                    }
2338                    if (BracesNestLevel == 0) {                    break;
2339                      BEGIN (INITIAL);                  }
2340                      /*  Remove the final "}"      YY_BREAK
2341                       */  /*
2342                      yytext[--yyleng] = '\0';       *  Code to handle { Text in Braces }
2343                      /*  Do backslash substitutions on the text       *
2344                       *  before returing it to the scanner.       *  "{" puts us into the BracedText state.  Braces nest, so
2345                       */       *  in the BracedText state we need to look for "{" that increases
2346                      if ( MatchedBackslash != 0 ) {       *  the nesting level and "}" that will lower it.
2347                        Process_Backslashes();       *  Flex is faster if we match as much as possible, so we repeat
2348                        MatchedBackslash = 0;       *  patterns with and without the "\n" (although it is more difficult
2349                      }       *  for the maintainer to understand) to avoid the overhead of a
2350                      zz_lval.braced_ptr =       *  separate "\n" rule.
2351                          CopyIntoWorkBuffer(yytext,yyleng);       *  We want to keep the text we scan, so we have to call yymore().
2352                      return BRACEDTEXT_TOK;       */
2353                    }  case 133:
2354                    yymore();  /* rule 133 can match eol */
2355                    break;  YY_RULE_SETUP
2356                  }  #line 548 "base/generic/compiler/scanner.l"
2357      YY_BREAK  { /*  A "{" puts us into the BracedText state.
2358  case 140:                     *  If from the opening "{" to the first
2359  YY_RULE_SETUP                     *  newline is all whitespace, then ignore
2360  #line 637 "base\\generic\\compiler\\scanner.l"                     *  it.
2361  {                     *  Initialize the nesting level.
2362                    /*  Match anything that is not "{" nor "}"                     *  Save the current line number for
2363                     *  nor "\\"(backslash) and add it to text.                     *  error message reporting.
2364                     */                     */
2365                    yymore();                    BEGIN (BracedText);
2366                    break;                    BracesNestLevel = 1;
2367                  }                    start_line = yy_line;
2368      YY_BREAK                    yy_line++;
2369  case 141:                    break;
2370  YY_RULE_SETUP                  }
2371  #line 644 "base\\generic\\compiler\\scanner.l"      YY_BREAK
2372  {  case 134:
2373                    /*  Match anything that is not "{" nor "}"  YY_RULE_SETUP
2374                     *  nor "\\"(backslash) followed by a "\n"  #line 562 "base/generic/compiler/scanner.l"
2375                     *  and add it to text.  {
2376                     *  This also matches an empty line.                    /*  A "{" puts us into the BracedText state.
2377                     */                     *  Initialize the nesting level.
2378                    yy_line++;                     *  Save the current line number for
2379                    yymore();                     *  error message reporting.
2380                    break;                     */
2381                  }                    BEGIN (BracedText);
2382      YY_BREAK                    BracesNestLevel = 1;
2383  case YY_STATE_EOF(BracedText):                    start_line = yy_line;
2384  #line 654 "base\\generic\\compiler\\scanner.l"                    break;
2385  {                  }
2386                    /*  End of File in braces means bad nesting.      YY_BREAK
2387                     *  Print an error message and pop to the  case 135:
2388                     *  previously REQUIREd file or return  YY_RULE_SETUP
2389                     *  ENDTOK if no more input.  #line 573 "base/generic/compiler/scanner.l"
2390                     */  {
2391                    ErrMsg_BracesEOF();                    /*  A backslash \ in the BracedText state
2392                    BracesNestLevel = 0;                     *  protects any character and does not
2393                    MatchedBackslash = 0;                     *  affect the Nesting Level.
2394                    if ( Asc_ScannerPopBuffer() == 1 ) {                     */
2395                      return ENDTOK;                    MatchedBackslash++;
2396                    }                    yymore();
2397                    break;                    break;
2398                  }                  }
2399      YY_BREAK      YY_BREAK
2400  /*  case 136:
2401       *  Code to handle Miscellaneous types.  /* rule 136 can match eol */
2402       *  YY_RULE_SETUP
2403       */  #line 582 "base/generic/compiler/scanner.l"
2404  case 142:  {
2405  YY_RULE_SETUP                    /*  A backslash \ in the BracedText state
2406  #line 675 "base\\generic\\compiler\\scanner.l"                     *  protects a newline.
2407  {                     */
2408                    /*  An integer.  Defn near top of file.                    MatchedBackslash++;
2409                     */                    yy_line++;
2410                    zz_lval.int_value = atol(yytext);                    yymore();
2411                    return INTEGER_TOK;                    break;
2412                  }                  }
2413      YY_BREAK      YY_BREAK
2414  case 143:  case 137:
2415  YY_RULE_SETUP  YY_RULE_SETUP
2416  #line 682 "base\\generic\\compiler\\scanner.l"  #line 591 "base/generic/compiler/scanner.l"
2417  {  {
2418                    /*  An integer as the first number in a                    /*  A "{" in the braces state gets added to
2419                     *  range (need to avoid parsing "1..2"                     *  the text and increase the nesting level.
2420                     *  as the real numbers 1.0 and 0.2).                     */
2421                     */                    BracesNestLevel++;
2422                    zz_lval.int_value = atol(yytext);                    yymore();
2423                    return INTEGER_TOK;                    break;
2424                  }                  }
2425      YY_BREAK      YY_BREAK
2426  case 144:  case 138:
2427  YY_RULE_SETUP  /* rule 138 can match eol */
2428  #line 691 "base\\generic\\compiler\\scanner.l"  YY_RULE_SETUP
2429  {  #line 599 "base/generic/compiler/scanner.l"
2430                    /*  A real number.  Defn near top of file.  {
2431                     */                    /*  A "{" in the braces state gets added to
2432                    zz_lval.real_value = atof(yytext);                     *  the text and increase the nesting level.
2433                    return REAL_TOK;                     */
2434                  }                    yy_line++;
2435      YY_BREAK                    BracesNestLevel++;
2436  case 145:                    yymore();
2437  YY_RULE_SETUP                    break;
2438  #line 698 "base\\generic\\compiler\\scanner.l"                  }
2439  {      YY_BREAK
2440                    /*  An identifier.  Defn near top of file.  case 139:
2441                     */  YY_RULE_SETUP
2442                    if (yyleng >YY_MAXLEN) {  #line 608 "base/generic/compiler/scanner.l"
2443                      ErrMsg_LongID();  {
2444                      break;                    /*  A "}" will reduce the nesting level.
2445                    }                     *  If the nesting level is zero, go back to
2446                    zz_lval.id_ptr = AddSymbolL(yytext,yyleng);                     *  the INITIAL level, save the text as a
2447                    return IDENTIFIER_TOK;                     *  Symbol, do the backslash substitution,
2448                  }                     *  and return BRACEDTEXT_TOK to the
2449      YY_BREAK                     *  parse; otherwise, add the "}" to the
2450  case 146:                     *  text and keep scanning.
2451  YY_RULE_SETUP                     */
2452  #line 709 "base\\generic\\compiler\\scanner.l"                    BracesNestLevel--;
2453  {                    if (BracesNestLevel == 0) {
2454                    /*  Ignore whitespace.  */                      BEGIN (INITIAL);
2455                    break;                      /*  Remove the final "}"
2456                  }                       */
2457      YY_BREAK                      zz_text[--zz_leng] = '\0';
2458  case 147:                      /*  Do backslash substitutions on the text
2459  YY_RULE_SETUP                       *  before returing it to the scanner.
2460  #line 713 "base\\generic\\compiler\\scanner.l"                       */
2461  {                      if ( MatchedBackslash != 0 ) {
2462                    /*  Ignore whitespace.  */                        Process_Backslashes();
2463                    yy_line++;                        MatchedBackslash = 0;
2464                    break;                      }
2465                  }                      zz_lval.braced_ptr =
2466      YY_BREAK                          CopyIntoWorkBuffer(zz_text,zz_leng);
2467  case 148:                      return BRACEDTEXT_TOK;
2468  YY_RULE_SETUP                    }
2469  #line 720 "base\\generic\\compiler\\scanner.l"                    yymore();
2470  {                    break;
2471                    /*  Unknown character.  Print error                  }
2472                     *  message and keep going.      YY_BREAK
2473                     */  case 140:
2474                    ErrMsg_UnexpectedChar();  YY_RULE_SETUP
2475                    break;  #line 637 "base/generic/compiler/scanner.l"
2476                  }  {
2477      YY_BREAK                    /*  Match anything that is not "{" nor "}"
2478  case YY_STATE_EOF(INITIAL):                     *  nor "\\"(backslash) and add it to text.
2479  #line 728 "base\\generic\\compiler\\scanner.l"                     */
2480  {                    yymore();
2481                    /*  Print an error message if we                    break;
2482                     *  reached EOF in the middle of a                  }
2483                     *  type definition.  Pop to the      YY_BREAK
2484                     *  previously REQUIREd file or return  case 141:
2485                     *  ENDTOK if no more input.  /* rule 141 can match eol */
2486                     */  YY_RULE_SETUP
2487                    Asc_ErrMsgTypeDefnEOF();  #line 644 "base/generic/compiler/scanner.l"
2488                    if ( Asc_ScannerPopBuffer() == 1 ) {  {
2489                      return ENDTOK;                    /*  Match anything that is not "{" nor "}"
2490                    }                     *  nor "\\"(backslash) followed by a "\n"
2491                    break;                     *  and add it to text.
2492                  }                     *  This also matches an empty line.
2493      YY_BREAK                     */
2494  case 149:                    yy_line++;
2495  YY_RULE_SETUP                    yymore();
2496  #line 742 "base\\generic\\compiler\\scanner.l"                    break;
2497  ECHO;                  }
2498      YY_BREAK      YY_BREAK
2499    case YY_STATE_EOF(BracedText):
2500      case YY_END_OF_BUFFER:  #line 654 "base/generic/compiler/scanner.l"
2501          {  {
2502          /* Amount of text matched not including the EOB char. */                    /*  End of File in braces means bad nesting.
2503          int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;                     *  Print an error message and pop to the
2504                       *  previously REQUIREd file or return
2505          /* Undo the effects of YY_DO_BEFORE_ACTION. */                     *  ENDTOK if no more input.
2506          *yy_cp = yy_hold_char;                     */
2507          YY_RESTORE_YY_MORE_OFFSET                    ErrMsg_BracesEOF();
2508                      BracesNestLevel = 0;
2509          if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )                    MatchedBackslash = 0;
2510              {                    if ( Asc_ScannerPopBuffer() == 1 ) {
2511              /* We're scanning a new file or input source.  It's                      return ENDTOK;
2512               * possible that this happened because the user                    }
2513               * just pointed yyin at a new source and called                    break;
2514               * yylex().  If so, then we have to assure                  }
2515               * consistency between yy_current_buffer and our      YY_BREAK
2516               * globals.  Here is the right place to do so, because  /*
2517               * this is the first action (other than possibly a       *  Code to handle Miscellaneous types.
2518               * back-up) that will match for the new input source.       *
2519               */       */
2520              yy_n_chars = yy_current_buffer->yy_n_chars;  case 142:
2521              yy_current_buffer->yy_input_file = yyin;  YY_RULE_SETUP
2522              yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;  #line 675 "base/generic/compiler/scanner.l"
2523              }  {
2524                      /*  An integer.  Defn near top of file.
2525          /* Note that here we test for yy_c_buf_p "<=" to the position                     */
2526           * of the first EOB in the buffer, since yy_c_buf_p will                    zz_lval.int_value = atol(zz_text);
2527           * already have been incremented past the NUL character                    return INTEGER_TOK;
2528           * (since all states make transitions on EOB to the                  }
2529           * end-of-buffer state).  Contrast this with the test      YY_BREAK
2530           * in input().  case 143:
2531           */  YY_RULE_SETUP
2532          if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )  #line 682 "base/generic/compiler/scanner.l"
2533              { /* This was really a NUL. */  {
2534              yy_state_type yy_next_state;                    /*  An integer as the first number in a
2535                       *  range (need to avoid parsing "1..2"
2536              yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;                     *  as the real numbers 1.0 and 0.2).
2537                       */
2538              yy_current_state = yy_get_previous_state();                    zz_lval.int_value = atol(zz_text);
2539                      return INTEGER_TOK;
2540              /* Okay, we're now positioned to make the NUL                  }
2541               * transition.  We couldn't have      YY_BREAK
2542               * yy_get_previous_state() go ahead and do it  case 144:
2543               * for us because it doesn't know how to deal  YY_RULE_SETUP
2544               * with the possibility of jamming (and we don't  #line 691 "base/generic/compiler/scanner.l"
2545               * want to build jamming into it because then it  {
2546               * will run more slowly).                    /*  A real number.  Defn near top of file.
2547               */                     */
2548                      zz_lval.real_value = atof(zz_text);
2549              yy_next_state = yy_try_NUL_trans( yy_current_state );                    return REAL_TOK;
2550                    }
2551              yy_bp = yytext_ptr + YY_MORE_ADJ;      YY_BREAK
2552    case 145:
2553              if ( yy_next_state )  YY_RULE_SETUP
2554                  {  #line 698 "base/generic/compiler/scanner.l"
2555                  /* Consume the NUL. */  {
2556                  yy_cp = ++yy_c_buf_p;                    /*  An identifier.  Defn near top of file.
2557                  yy_current_state = yy_next_state;                     */
2558                  goto yy_match;                    if (zz_leng >YY_MAXLEN) {
2559                  }                      ErrMsg_LongID();
2560                        break;
2561              else                    }
2562                  {                    zz_lval.id_ptr = AddSymbolL(zz_text,zz_leng);
2563                  yy_cp = yy_c_buf_p;                    return IDENTIFIER_TOK;
2564                  goto yy_find_action;                  }
2565                  }      YY_BREAK
2566              }  case 146:
2567    YY_RULE_SETUP
2568          else switch ( yy_get_next_buffer() )  #line 709 "base/generic/compiler/scanner.l"
2569              {  {
2570              case EOB_ACT_END_OF_FILE:                    /*  Ignore whitespace.  */
2571                  {                    break;
2572                  yy_did_buffer_switch_on_eof = 0;                  }
2573        YY_BREAK
2574                  if ( yywrap() )  case 147:
2575                      {  /* rule 147 can match eol */
2576                      /* Note: because we've taken care in  YY_RULE_SETUP
2577                       * yy_get_next_buffer() to have set up  #line 713 "base/generic/compiler/scanner.l"
2578                       * yytext, we can now set up  {
2579                       * yy_c_buf_p so that if some total                    /*  Ignore whitespace.  */
2580                       * hoser (like flex itself) wants to                    yy_line++;
2581                       * call the scanner after we return the                    break;
2582                       * YY_NULL, it'll still work - another                  }
2583                       * YY_NULL will get returned.      YY_BREAK
2584                       */  case 148:
2585                      yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;  YY_RULE_SETUP
2586    #line 720 "base/generic/compiler/scanner.l"
2587                      yy_act = YY_STATE_EOF(YY_START);  {
2588                      goto do_action;                    /*  Unknown character.  Print error
2589                      }                     *  message and keep going.
2590                       */
2591                  else                    ErrMsg_UnexpectedChar();
2592                      {                    break;
2593                      if ( ! yy_did_buffer_switch_on_eof )                  }
2594                          YY_NEW_FILE;      YY_BREAK
2595                      }  case YY_STATE_EOF(INITIAL):
2596                  break;  #line 728 "base/generic/compiler/scanner.l"
2597                  }  {
2598                      /*  Print an error message if we
2599              case EOB_ACT_CONTINUE_SCAN:                     *  reached EOF in the middle of a
2600                  yy_c_buf_p =                     *  type definition.  Pop to the
2601                      yytext_ptr + yy_amount_of_matched_text;                     *  previously REQUIREd file or return
2602                       *  ENDTOK if no more input.
2603                  yy_current_state = yy_get_previous_state();                     */
2604                      Asc_ErrMsgTypeDefnEOF();
2605                  yy_cp = yy_c_buf_p;                    if ( Asc_ScannerPopBuffer() == 1 ) {
2606                  yy_bp = yytext_ptr + YY_MORE_ADJ;                      return ENDTOK;
2607                  goto yy_match;                    }
2608                      break;
2609              case EOB_ACT_LAST_MATCH:                  }
2610                  yy_c_buf_p =      YY_BREAK
2611                  &yy_current_buffer->yy_ch_buf[yy_n_chars];  case 149:
2612    YY_RULE_SETUP
2613                  yy_current_state = yy_get_previous_state();  #line 742 "base/generic/compiler/scanner.l"
2614    ECHO;
2615                  yy_cp = yy_c_buf_p;      YY_BREAK
2616                  yy_bp = yytext_ptr + YY_MORE_ADJ;  #line 2617 "<stdout>"
2617                  goto yy_find_action;  
2618              }      case YY_END_OF_BUFFER:
2619          break;          {
2620          }          /* Amount of text matched not including the EOB char. */
2621            int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2622      default:  
2623          YY_FATAL_ERROR(          /* Undo the effects of YY_DO_BEFORE_ACTION. */
2624              "fatal flex scanner internal error--no action found" );          *yy_cp = (yy_hold_char);
2625      } /* end of action switch */          YY_RESTORE_YY_MORE_OFFSET
2626          } /* end of scanning one token */  
2627      } /* end of yylex */          if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2628                {
2629                /* We're scanning a new file or input source.  It's
2630  /* yy_get_next_buffer - try to read in a new buffer               * possible that this happened because the user
2631   *               * just pointed zz_in at a new source and called
2632   * Returns a code representing an action:               * zz_lex().  If so, then we have to assure
2633   *  EOB_ACT_LAST_MATCH -               * consistency between YY_CURRENT_BUFFER and our
2634   *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position               * globals.  Here is the right place to do so, because
2635   *  EOB_ACT_END_OF_FILE - end of file               * this is the first action (other than possibly a
2636   */               * back-up) that will match for the new input source.
2637                 */
2638  static int yy_get_next_buffer()              (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2639      {              YY_CURRENT_BUFFER_LVALUE->yy_input_file = zz_in;
2640      register char *dest = yy_current_buffer->yy_ch_buf;              YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2641      register char *source = yytext_ptr;              }
2642      register int number_to_move, i;  
2643      int ret_val;          /* Note that here we test for yy_c_buf_p "<=" to the position
2644             * of the first EOB in the buffer, since yy_c_buf_p will
2645      if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )           * already have been incremented past the NUL character
2646          YY_FATAL_ERROR(           * (since all states make transitions on EOB to the
2647          "fatal flex scanner internal error--end of buffer missed" );           * end-of-buffer state).  Contrast this with the test
2648             * in input().
2649      if ( yy_current_buffer->yy_fill_buffer == 0 )           */
2650          { /* Don't try to fill the buffer, so this is an EOF. */          if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2651          if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )              { /* This was really a NUL. */
2652              {              yy_state_type yy_next_state;
2653              /* We matched a single character, the EOB, so  
2654               * treat this as a final EOF.              (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2655               */  
2656              return EOB_ACT_END_OF_FILE;              yy_current_state = yy_get_previous_state(  );
2657              }  
2658                /* Okay, we're now positioned to make the NUL
2659          else               * transition.  We couldn't have
2660              {               * yy_get_previous_state() go ahead and do it
2661              /* We matched some text prior to the EOB, first               * for us because it doesn't know how to deal
2662               * process it.               * with the possibility of jamming (and we don't
2663               */               * want to build jamming into it because then it
2664              return EOB_ACT_LAST_MATCH;               * will run more slowly).
2665              }               */
2666          }  
2667                yy_next_state = yy_try_NUL_trans( yy_current_state );
2668      /* Try to read more data. */  
2669                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2670      /* First move last chars to start of buffer. */  
2671      number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;              if ( yy_next_state )
2672                    {
2673      for ( i = 0; i < number_to_move; ++i )                  /* Consume the NUL. */
2674          *(dest++) = *(source++);                  yy_cp = ++(yy_c_buf_p);
2675                    yy_current_state = yy_next_state;
2676      if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )                  goto yy_match;
2677          /* don't do the read, it's not guaranteed to return an EOF,                  }
2678           * just force an EOF  
2679           */              else
2680          yy_current_buffer->yy_n_chars = yy_n_chars = 0;                  {
2681                    yy_cp = (yy_c_buf_p);
2682      else                  goto yy_find_action;
2683          {                  }
2684          int num_to_read =              }
2685              yy_current_buffer->yy_buf_size - number_to_move - 1;  
2686            else switch ( yy_get_next_buffer(  ) )
2687          while ( num_to_read <= 0 )              {
2688              { /* Not enough room in the buffer - grow it. */              case EOB_ACT_END_OF_FILE:
2689  #ifdef YY_USES_REJECT                  {
2690              YY_FATAL_ERROR(                  (yy_did_buffer_switch_on_eof) = 0;
2691  "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );