FAUST compiler  0.9.9.6b8
faustlexer.cpp
Go to the documentation of this file.
00001 #line 2 "parser/faustlexer.cpp"
00002 
00003 #line 4 "parser/faustlexer.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 35
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 
00058 /* Limits of integral types. */
00059 #ifndef INT8_MIN
00060 #define INT8_MIN               (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN              (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN              (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX               (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX              (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX              (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX              (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX             (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX             (4294967295U)
00085 #endif
00086 
00087 #endif /* ! C99 */
00088 
00089 #endif /* ! FLEXINT_H */
00090 
00091 #ifdef __cplusplus
00092 
00093 /* The "const" storage-class-modifier is valid. */
00094 #define YY_USE_CONST
00095 
00096 #else   /* ! __cplusplus */
00097 
00098 /* C99 requires __STDC__ to be defined as 1. */
00099 #if defined (__STDC__)
00100 
00101 #define YY_USE_CONST
00102 
00103 #endif  /* defined (__STDC__) */
00104 #endif  /* ! __cplusplus */
00105 
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111 
00112 /* Returned upon end-of-file. */
00113 #define YY_NULL 0
00114 
00115 /* Promotes a possibly negative, possibly signed char to an unsigned
00116  * integer for use as an array index.  If the signed char is negative,
00117  * we want to instead treat it as an 8-bit unsigned char, hence the
00118  * double cast.
00119  */
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121 
00122 /* Enter a start condition.  This macro really ought to take a parameter,
00123  * but we do it the disgusting crufty way forced on us by the ()-less
00124  * definition of BEGIN.
00125  */
00126 #define BEGIN (yy_start) = 1 + 2 *
00127 
00128 /* Translate the current start state into a value that can be later handed
00129  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00130  * compatibility.
00131  */
00132 #define YY_START (((yy_start) - 1) / 2)
00133 #define YYSTATE YY_START
00134 
00135 /* Action number for EOF rule of a given start state. */
00136 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00137 
00138 /* Special action meaning "start processing a new file". */
00139 #define YY_NEW_FILE yyrestart(yyin  )
00140 
00141 #define YY_END_OF_BUFFER_CHAR 0
00142 
00143 /* Size of default input buffer. */
00144 #ifndef YY_BUF_SIZE
00145 #ifdef __ia64__
00146 /* On IA-64, the buffer size is 16k, not 8k.
00147  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
00148  * Ditto for the __ia64__ case accordingly.
00149  */
00150 #define YY_BUF_SIZE 32768
00151 #else
00152 #define YY_BUF_SIZE 16384
00153 #endif /* __ia64__ */
00154 #endif
00155 
00156 /* The state buf must be large enough to hold one state per character in the main buffer.
00157  */
00158 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00159 
00160 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00161 #define YY_TYPEDEF_YY_BUFFER_STATE
00162 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00163 #endif
00164 
00165 extern int yyleng;
00166 
00167 extern FILE *yyin, *yyout;
00168 
00169 #define EOB_ACT_CONTINUE_SCAN 0
00170 #define EOB_ACT_END_OF_FILE 1
00171 #define EOB_ACT_LAST_MATCH 2
00172 
00173     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00174      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00175      *       existing scanners that call yyless() from OUTSIDE yylex. 
00176      *       One obvious solution it to make yy_act a global. I tried that, and saw
00177      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00178      *       normally declared as a register variable-- so it is not worth it.
00179      */
00180     #define  YY_LESS_LINENO(n) \
00181             do { \
00182                 int yyl;\
00183                 for ( yyl = n; yyl < yyleng; ++yyl )\
00184                     if ( yytext[yyl] == '\n' )\
00185                         --yylineno;\
00186             }while(0)
00187     
00188 /* Return all but the first "n" matched characters back to the input stream. */
00189 #define yyless(n) \
00190     do \
00191         { \
00192         /* Undo effects of setting up yytext. */ \
00193         int yyless_macro_arg = (n); \
00194         YY_LESS_LINENO(yyless_macro_arg);\
00195         *yy_cp = (yy_hold_char); \
00196         YY_RESTORE_YY_MORE_OFFSET \
00197         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00198         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00199         } \
00200     while ( 0 )
00201 
00202 #define unput(c) yyunput( c, (yytext_ptr)  )
00203 
00204 #ifndef YY_TYPEDEF_YY_SIZE_T
00205 #define YY_TYPEDEF_YY_SIZE_T
00206 typedef size_t yy_size_t;
00207 #endif
00208 
00209 #ifndef YY_STRUCT_YY_BUFFER_STATE
00210 #define YY_STRUCT_YY_BUFFER_STATE
00211 struct yy_buffer_state
00212     {
00213     FILE *yy_input_file;
00214 
00215     char *yy_ch_buf;        /* input buffer */
00216     char *yy_buf_pos;       /* current position in input buffer */
00217 
00218     /* Size of input buffer in bytes, not including room for EOB
00219      * characters.
00220      */
00221     yy_size_t yy_buf_size;
00222 
00223     /* Number of characters read into yy_ch_buf, not including EOB
00224      * characters.
00225      */
00226     int yy_n_chars;
00227 
00228     /* Whether we "own" the buffer - i.e., we know we created it,
00229      * and can realloc() it to grow it, and should free() it to
00230      * delete it.
00231      */
00232     int yy_is_our_buffer;
00233 
00234     /* Whether this is an "interactive" input source; if so, and
00235      * if we're using stdio for input, then we want to use getc()
00236      * instead of fread(), to make sure we stop fetching input after
00237      * each newline.
00238      */
00239     int yy_is_interactive;
00240 
00241     /* Whether we're considered to be at the beginning of a line.
00242      * If so, '^' rules will be active on the next match, otherwise
00243      * not.
00244      */
00245     int yy_at_bol;
00246 
00247     int yy_bs_lineno; 
00248     int yy_bs_column; 
00250     /* Whether to try to fill the input buffer when we reach the
00251      * end of it.
00252      */
00253     int yy_fill_buffer;
00254 
00255     int yy_buffer_status;
00256 
00257 #define YY_BUFFER_NEW 0
00258 #define YY_BUFFER_NORMAL 1
00259     /* When an EOF's been seen but there's still some text to process
00260      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00261      * shouldn't try reading from the input source any more.  We might
00262      * still have a bunch of tokens to match, though, because of
00263      * possible backing-up.
00264      *
00265      * When we actually see the EOF, we change the status to "new"
00266      * (via yyrestart()), so that the user can continue scanning by
00267      * just pointing yyin at a new input file.
00268      */
00269 #define YY_BUFFER_EOF_PENDING 2
00270 
00271     };
00272 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00273 
00274 /* Stack of input buffers. */
00275 static size_t yy_buffer_stack_top = 0; 
00276 static size_t yy_buffer_stack_max = 0; 
00277 static YY_BUFFER_STATE * yy_buffer_stack = 0; 
00279 /* We provide macros for accessing buffer states in case in the
00280  * future we want to put the buffer states in a more general
00281  * "scanner state".
00282  *
00283  * Returns the top of the stack, or NULL.
00284  */
00285 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00286                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00287                           : NULL)
00288 
00289 /* Same as previous macro, but useful when we know that the buffer stack is not
00290  * NULL or when we need an lvalue. For internal use only.
00291  */
00292 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00293 
00294 /* yy_hold_char holds the character lost when yytext is formed. */
00295 static char yy_hold_char;
00296 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
00297 int yyleng;
00298 
00299 /* Points to current character in buffer. */
00300 static char *yy_c_buf_p = (char *) 0;
00301 static int yy_init = 0;     /* whether we need to initialize */
00302 static int yy_start = 0;    /* start state number */
00303 
00304 /* Flag which is used to allow yywrap()'s to do buffer switches
00305  * instead of setting up a fresh yyin.  A bit of a hack ...
00306  */
00307 static int yy_did_buffer_switch_on_eof;
00308 
00309 void yyrestart (FILE *input_file  );
00310 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00311 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00312 void yy_delete_buffer (YY_BUFFER_STATE b  );
00313 void yy_flush_buffer (YY_BUFFER_STATE b  );
00314 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00315 void yypop_buffer_state (void );
00316 
00317 static void yyensure_buffer_stack (void );
00318 static void yy_load_buffer_state (void );
00319 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00320 
00321 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00322 
00323 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00324 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00325 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00326 
00327 void *yyalloc (yy_size_t  );
00328 void *yyrealloc (void *,yy_size_t  );
00329 void yyfree (void *  );
00330 
00331 #define yy_new_buffer yy_create_buffer
00332 
00333 #define yy_set_interactive(is_interactive) \
00334     { \
00335     if ( ! YY_CURRENT_BUFFER ){ \
00336         yyensure_buffer_stack (); \
00337         YY_CURRENT_BUFFER_LVALUE =    \
00338             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00339     } \
00340     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00341     }
00342 
00343 #define yy_set_bol(at_bol) \
00344     { \
00345     if ( ! YY_CURRENT_BUFFER ){\
00346         yyensure_buffer_stack (); \
00347         YY_CURRENT_BUFFER_LVALUE =    \
00348             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00349     } \
00350     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00351     }
00352 
00353 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00354 
00355 /* Begin user sect3 */
00356 
00357 typedef unsigned char YY_CHAR;
00358 
00359 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00360 
00361 typedef int yy_state_type;
00362 
00363 extern int yylineno;
00364 
00365 int yylineno = 1;
00366 
00367 extern char *yytext;
00368 #define yytext_ptr yytext
00369 
00370 static yy_state_type yy_get_previous_state (void );
00371 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00372 static int yy_get_next_buffer (void );
00373 static void yy_fatal_error (yyconst char msg[]  );
00374 
00375 /* Done after the current pattern has been matched and before the
00376  * corresponding action - sets up yytext.
00377  */
00378 #define YY_DO_BEFORE_ACTION \
00379     (yytext_ptr) = yy_bp; \
00380     yyleng = (size_t) (yy_cp - yy_bp); \
00381     (yy_hold_char) = *yy_cp; \
00382     *yy_cp = '\0'; \
00383     (yy_c_buf_p) = yy_cp;
00384 
00385 #define YY_NUM_RULES 134
00386 #define YY_END_OF_BUFFER 135
00387 /* This struct is not used in this scanner,
00388    but its presence is necessary. */
00389 struct yy_trans_info
00390     {
00391     flex_int32_t yy_verify;
00392     flex_int32_t yy_nxt;
00393     };
00394 static yyconst flex_int16_t yy_accept[458] =
00395     {   0,
00396         0,    0,    2,    2,    0,    0,    0,    0,  135,  133,
00397       132,  132,   60,  133,   45,   48,   47,   63,   64,   43,
00398        41,   36,   42,   70,   44,   29,   35,   61,   53,   62,
00399        55,   46,  127,   67,   69,   68,  104,   59,  127,  127,
00400       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00401       127,  127,  127,  127,  127,  127,   65,   49,   66,   40,
00402         2,    5,    6,    3,    9,   10,    9,  134,   27,  134,
00403        26,  134,  134,  134,  134,  132,   58,    0,  128,   38,
00404        33,    1,  131,   30,   29,    0,   39,    0,    0,   37,
00405        51,   54,  130,    0,    0,   57,  125,   56,   52,  127,
00406 
00407       126,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00408       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00409       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00410       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00411       127,  127,  127,  127,  127,  127,  127,    2,    4,    3,
00412         3,    7,    0,    0,    0,    0,    0,    0,   28,    0,
00413         0,    0,    0,    0,    0,  131,   30,    0,    0,   32,
00414         0,    0,    0,    0,    0,  126,  107,  127,  127,  127,
00415       127,  127,  127,  127,  127,  127,   98,  127,  127,  101,
00416       127,  127,  127,  127,  127,  127,  127,  127,  127,   74,
00417 
00418       127,  102,  109,   72,  108,  127,  116,  105,  127,  127,
00419       127,  127,  127,  127,  127,  115,   99,  127,  117,  100,
00420       127,  127,  127,  127,  127,   50,    0,    0,    0,    0,
00421         0,    0,    0,    0,    0,    0,    0,    0,   34,    0,
00422        31,  129,    0,    0,    0,    0,   94,   95,   96,  127,
00423       127,  124,  113,  127,  127,  127,  127,  127,  127,  127,
00424       127,  110,  127,  127,  127,  127,  127,  127,  127,  127,
00425       127,  118,  127,  127,  114,  127,  127,  106,  127,  127,
00426       127,  127,   71,    0,    0,    0,    0,    0,    0,    0,
00427         0,    0,    0,   21,    0,    0,    0,    0,   97,  127,
00428 
00429       127,  127,  127,  127,  127,  127,  127,   75,  112,  127,
00430       127,  127,  127,  127,  127,  103,  127,  127,  127,  127,
00431       127,  127,  127,  127,  127,  127,    0,    0,    0,    0,
00432         0,    0,    0,    0,   22,    0,    0,    0,    0,    8,
00433        93,   83,  127,  127,  127,  127,  127,  127,  127,  127,
00434        89,  127,  119,  127,   87,   73,  127,  127,  127,  127,
00435        90,  127,   88,  127,    0,    0,    0,    0,    0,    0,
00436         0,    0,    0,    0,    0,    0,  127,  127,  123,  127,
00437       127,  127,  127,  127,   86,  121,   76,  127,   77,   78,
00438        79,  127,   85,   20,    0,    0,    0,    0,    0,    0,
00439 
00440         0,    0,    0,    0,    0,   84,  127,  127,  127,  127,
00441       127,  127,  127,  127,    0,    0,   13,    0,    0,    0,
00442         0,    0,   24,    0,    0,    0,  120,  127,   81,   80,
00443        82,   92,  111,   91,   16,    0,    0,    0,   11,    0,
00444         0,   17,    0,    0,  127,   14,   18,   12,    0,    0,
00445        15,   19,  122,    0,   25,   23,    0
00446     } ;
00447 
00448 static yyconst flex_int32_t yy_ec[256] =
00449     {   0,
00450         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00451         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
00452         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00453         1,    5,    6,    7,    1,    1,    8,    9,   10,   11,
00454        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
00455        22,   23,   23,   23,   23,   23,   23,   24,   25,   26,
00456        27,   28,    1,   29,   30,   30,   30,   30,   30,   30,
00457        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00458        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00459        31,   32,   33,   34,   35,    1,   36,   37,   38,   39,
00460 
00461        40,   41,   42,   43,   44,   30,   45,   46,   47,   48,
00462        49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
00463        59,   30,   60,   61,   62,   63,    1,    1,    1,    1,
00464         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00465         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00466         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00467         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00469         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00470         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00471 
00472         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00473         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00474         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00475         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00476         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00477         1,    1,    1,    1,    1
00478     } ;
00479 
00480 static yyconst flex_int32_t yy_meta[64] =
00481     {   0,
00482         1,    1,    2,    2,    1,    1,    1,    1,    1,    1,
00483         1,    1,    3,    1,    1,    1,    4,    4,    5,    5,
00484         5,    5,    5,    4,    1,    4,    4,    4,    1,    6,
00485         1,    1,    1,    1,    5,    6,    6,    6,    6,    6,
00486         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
00487         6,    6,    6,    6,    6,    6,    6,    6,    6,    1,
00488         1,    1,    1
00489     } ;
00490 
00491 static yyconst flex_int16_t yy_base[470] =
00492     {   0,
00493         0,    0,   61,   63,   65,   66,   63,   66,  603,  604,
00494        75,   83,  575,  594,  604,  604,  604,  604,  604,  604,
00495       572,  604,  604,   75,   88,  102,  571,  604,  109,   44,
00496        55,  604,    0,  604,  604,  604,  604,    0,   62,  543,
00497        98,  557,   60,  102,  102,   64,   65,  110,  556,  115,
00498       113,  121,  124,  126,  551,  545,  604,  604,  604,  604,
00499         0,  589,  604,  156,  604,  604,  141,  604,  604,  564,
00500       604,   88,  555,  551,  537,  180,  604,  581,  604,  604,
00501       171,  604,    0,  176,  183,  198,  604,    0,  168,  604,
00502       604,  604,  604,  207,  548,  604,  604,  604,  604,    0,
00503 
00504         0,  533,  536,  540,  173,  529,  529,  537,  540,  124,
00505       541,  522,  527,  527,  520,  525,  524,  536,  535,  518,
00506       523,  518,  513,  529,  523,  506,  516,  514,  513,  508,
00507       502,  161,  504,  510,  508,  501,  127,  506,  501,  505,
00508       503,  498,  513,  496,  501,  492,  493,    0,  604,  219,
00509       223,  604,  497,  499,  491,  497,  500,  490,  604,  488,
00510       484,  490,  486,  479,  224,    0,  229,  239,  244,  251,
00511       505,  488,  480,  490,  480,    0,    0,  475,  479,  478,
00512       489,  470,  483,  476,  483,  470,    0,  473,  474,    0,
00513       469,  468,  126,  476,  462,  461,  463,  467,  461,    0,
00514 
00515       457,  488,    0,    0,    0,  453,    0,    0,  465,  466,
00516       468,  467,  448,  465,  460,    0,    0,  445,    0,    0,
00517       449,  445,  447,  451,  451,    0,  454,  456,  436,  437,
00518       435,  434,  447,  432,  432,  446,  443,  256,  261,  266,
00519       271,  604,  446,  426,  426,  441,    0,    0,  457,  439,
00520       427,    0,    0,  430,  425,  437,  420,  418,  432,  415,
00521       416,    0,  423,  424,  410,  425,  411,  426,  442,  408,
00522       415,    0,  421,  413,    0,  419,  417,    0,  399,  411,
00523       397,  412,    0,  401,  407,  412,  393,  410,  401,  396,
00524       391,  402,  387,  604,  398,  403,  402,  409,    0,  393,
00525 
00526       387,  397,  385,  380,  382,  376,  375,    0,    0,  392,
00527       375,  376,  385,  370,  371,    0,  363,  363,  374,  371,
00528       372,  363,  366,  363,  364,  373,  374,  359,  356,  365,
00529       369,  369,  367,  361,  604,  368,  351,  348,  362,  604,
00530         0,    0,  351,  359,  358,  349,  360,  351,  357,  357,
00531         0,  340,    0,  332,    0,    0,  350,  350,  348,  108,
00532         0,  351,    0,  334,  357,  348,  339,  334,  345,  340,
00533       339,  341,  335,  340,  331,  338,  315,  324,    0,  324,
00534       322,  320,  322,  317,    0,    0,    0,  326,    0,    0,
00535         0,  315,    0,  604,  317,  314,  320,  307,  208,  312,
00536 
00537       304,  305,  310,  307,  301,    0,  300,  313,  298,  303,
00538       310,  306,  296,  304,  318,  297,  604,  308,  319,  303,
00539       288,  271,  604,  292,  220,  221,    0,  208,    0,    0,
00540         0,    0,    0,    0,  604,  226,  214,  211,  604,  186,
00541       189,  604,  200,  194,  132,  604,  604,  604,  105,   92,
00542       604,  604,    0,   50,  604,  604,  604,  294,  300,  306,
00543       312,  315,  317,   83,  323,  329,  335,   69,  337
00544     } ;
00545 
00546 static yyconst flex_int16_t yy_def[470] =
00547     {   0,
00548       457,    1,  458,  458,  459,  459,  460,  460,  457,  457,
00549       457,  457,  457,  461,  457,  457,  457,  457,  457,  457,
00550       457,  457,  457,  457,  457,  457,  457,  457,  462,  457,
00551       457,  457,  463,  457,  457,  457,  457,  464,  463,  463,
00552       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00553       463,  463,  463,  463,  463,  463,  457,  457,  457,  457,
00554       465,  457,  457,  466,  457,  457,  457,  457,  457,  457,
00555       457,  457,  457,  457,  457,  457,  457,  461,  457,  457,
00556       457,  457,  467,  457,  457,  457,  457,  468,  457,  457,
00557       457,  457,  457,  462,   94,  457,  457,  457,  457,  463,
00558 
00559       469,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00560       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00561       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00562       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00563       463,  463,  463,  463,  463,  463,  463,  465,  457,  466,
00564       466,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00565       457,  457,  457,  457,  457,  467,  457,  457,  457,  457,
00566       457,  457,  457,  457,   94,  469,  463,  463,  463,  463,
00567       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00568       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00569 
00570       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00571       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00572       463,  463,  463,  463,  463,  463,  457,  457,  457,  457,
00573       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00574       457,  457,  457,  457,  457,   94,  463,  463,  463,  463,
00575       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00576       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00577       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00578       463,  463,  463,  457,  457,  457,  457,  457,  457,  457,
00579       457,  457,  457,  457,  457,  457,  457,   94,  463,  463,
00580 
00581       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00582       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00583       463,  463,  463,  463,  463,  463,  457,  457,  457,  457,
00584       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00585       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00586       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00587       463,  463,  463,  463,  457,  457,  457,  457,  457,  457,
00588       457,  457,  457,  457,  457,  457,  463,  463,  463,  463,
00589       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
00590       463,  463,  463,  457,  457,  457,  457,  457,  457,  457,
00591 
00592       457,  457,  457,  457,  457,  463,  463,  463,  463,  463,
00593       463,  463,  463,  463,  457,  457,  457,  457,  457,  457,
00594       457,  457,  457,  457,  457,  457,  463,  463,  463,  463,
00595       463,  463,  463,  463,  457,  457,  457,  457,  457,  457,
00596       457,  457,  457,  457,  463,  457,  457,  457,  457,  457,
00597       457,  457,  463,  457,  457,  457,    0,  457,  457,  457,
00598       457,  457,  457,  457,  457,  457,  457,  457,  457
00599     } ;
00600 
00601 static yyconst flex_int16_t yy_nxt[668] =
00602     {   0,
00603        10,   11,   12,   11,   11,   13,   14,   15,   16,   17,
00604        18,   19,   20,   21,   22,   23,   24,   25,   26,   26,
00605        26,   26,   26,   27,   28,   29,   30,   31,   32,   33,
00606        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
00607        44,   33,   45,   46,   33,   47,   48,   49,   33,   50,
00608        33,   51,   52,   53,   33,   54,   55,   56,   33,   57,
00609        58,   59,   60,   62,   63,   62,   63,   66,   66,   69,
00610        96,   97,   69,   64,  171,   64,   76,   76,   76,   76,
00611        70,   98,   99,   70,   76,   76,   76,   76,  101,   71,
00612        67,   67,   71,   81,   81,   81,   81,   81,  102,  103,
00613 
00614        82,   72,  456,   73,   72,   83,   73,  112,  124,   74,
00615       122,  123,   74,  125,  104,  105,   75,  113,   84,   75,
00616        85,   85,   85,   85,   85,   88,   89,  160,  390,  391,
00617       455,  161,   90,  107,   91,   92,   93,  108,  119,  114,
00618       109,   86,  115,  120,  454,  126,  110,  116,  117,  127,
00619       130,  133,  134,  128,  121,   95,  135,  118,  153,  141,
00620       137,  260,  143,  131,  138,  142,  132,  144,  151,  136,
00621       186,  139,  215,  152,  261,  140,  187,  216,  145,  154,
00622       155,   76,   76,   76,   76,  453,  156,  157,  158,   81,
00623        81,   81,   81,   81,  167,  167,  167,  167,  167,   84,
00624 
00625       209,   85,   85,   85,   85,   85,  172,  173,  180,  210,
00626       165,  169,  419,  169,  174,  168,  170,  170,  170,  170,
00627       170,  452,   86,   88,  457,  420,  181,  451,  450,  449,
00628       457,  457,  457,  457,   93,  151,  457,  238,  448,  238,
00629       152,  447,  239,  239,  239,  239,  239,  167,  167,  167,
00630       167,  167,  240,  446,  240,  445,  444,  241,  241,  241,
00631       241,  241,  170,  170,  170,  170,  170,  443,  168,  170,
00632       170,  170,  170,  170,  239,  239,  239,  239,  239,  239,
00633       239,  239,  239,  239,  241,  241,  241,  241,  241,  241,
00634       241,  241,  241,  241,   61,   61,   61,   61,   61,   61,
00635 
00636        65,   65,   65,   65,   65,   65,   68,   68,   68,   68,
00637        68,   68,   78,   78,   78,   78,   78,   78,   94,  442,
00638        94,  100,  100,  148,  441,  440,  148,  148,  148,  150,
00639       439,  150,  150,  150,  150,  166,  438,  166,  166,  166,
00640       166,  176,  176,  437,  436,  435,  434,  433,  432,  431,
00641       430,  429,  428,  427,  426,  425,  424,  423,  422,  421,
00642       418,  417,  416,  415,  414,  413,  412,  411,  410,  409,
00643       408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
00644       398,  397,  396,  395,  394,  393,  392,  389,  388,  387,
00645       386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
00646 
00647       376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
00648       366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
00649       356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
00650       346,  345,  344,  343,  342,  341,  340,  339,  338,  337,
00651       336,  335,  334,  333,  332,  331,  330,  329,  328,  327,
00652       326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
00653       316,  315,  314,  313,  312,  311,  310,  309,  308,  307,
00654       306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
00655       296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
00656       286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
00657 
00658       276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
00659       266,  265,  264,  263,  262,  259,  258,  257,  256,  255,
00660       254,  253,  252,  251,  250,  249,  248,  247,  246,  245,
00661       244,  243,  242,  237,  236,  235,  234,  233,  232,  231,
00662       230,  229,  228,  227,  226,  225,  224,  223,  222,  221,
00663       220,  219,  218,  217,  214,  213,  212,  211,  208,  207,
00664       206,  205,  204,  203,  202,  201,  200,  199,  198,  197,
00665       196,  195,  194,  193,  192,  191,  190,  189,  188,  185,
00666       184,  183,  182,  179,  178,  177,  175,   79,  164,  163,
00667       162,  159,  149,  147,  146,  129,  111,  106,   87,   80,
00668 
00669        79,   77,  457,    9,  457,  457,  457,  457,  457,  457,
00670       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00671       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00672       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00673       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00674       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00675       457,  457,  457,  457,  457,  457,  457
00676     } ;
00677 
00678 static yyconst flex_int16_t yy_chk[668] =
00679     {   0,
00680         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00681         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00682         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00683         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00684         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00685         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00686         1,    1,    1,    3,    3,    4,    4,    5,    6,    7,
00687        30,   30,    8,    3,  468,    4,   11,   11,   11,   11,
00688         7,   31,   31,    8,   12,   12,   12,   12,  464,    7,
00689         5,    6,    8,   24,   24,   24,   24,   24,   39,   39,
00690 
00691        25,    7,  454,    7,    8,   25,    8,   43,   47,    7,
00692        46,   46,    8,   47,   39,   39,    7,   43,   26,    8,
00693        26,   26,   26,   26,   26,   29,   29,   72,  360,  360,
00694       450,   72,   29,   41,   29,   29,   29,   41,   45,   44,
00695        41,   26,   44,   45,  449,   48,   41,   44,   44,   48,
00696        50,   51,   51,   48,   45,   29,   51,   44,   67,   53,
00697        52,  193,   54,   50,   52,   53,   50,   54,   64,   51,
00698       110,   52,  137,   64,  193,   52,  110,  137,   54,   67,
00699        67,   76,   76,   76,   76,  445,   67,   67,   67,   81,
00700        81,   81,   81,   81,   84,   84,   84,   84,   84,   85,
00701 
00702       132,   85,   85,   85,   85,   85,   89,   89,  105,  132,
00703        81,   86,  399,   86,   89,   84,   86,   86,   86,   86,
00704        86,  444,   85,   94,   94,  399,  105,  443,  441,  440,
00705        94,  150,   94,   94,   94,  151,  150,  165,  438,  165,
00706       151,  437,  165,  165,  165,  165,  165,  167,  167,  167,
00707       167,  167,  168,  436,  168,  428,  426,  168,  168,  168,
00708       168,  168,  169,  169,  169,  169,  169,  425,  167,  170,
00709       170,  170,  170,  170,  238,  238,  238,  238,  238,  239,
00710       239,  239,  239,  239,  240,  240,  240,  240,  240,  241,
00711       241,  241,  241,  241,  458,  458,  458,  458,  458,  458,
00712 
00713       459,  459,  459,  459,  459,  459,  460,  460,  460,  460,
00714       460,  460,  461,  461,  461,  461,  461,  461,  462,  424,
00715       462,  463,  463,  465,  422,  421,  465,  465,  465,  466,
00716       420,  466,  466,  466,  466,  467,  419,  467,  467,  467,
00717       467,  469,  469,  418,  416,  415,  414,  413,  412,  411,
00718       410,  409,  408,  407,  405,  404,  403,  402,  401,  400,
00719       398,  397,  396,  395,  392,  388,  384,  383,  382,  381,
00720       380,  378,  377,  376,  375,  374,  373,  372,  371,  370,
00721       369,  368,  367,  366,  365,  364,  362,  359,  358,  357,
00722       354,  352,  350,  349,  348,  347,  346,  345,  344,  343,
00723 
00724       339,  338,  337,  336,  334,  333,  332,  331,  330,  329,
00725       328,  327,  326,  325,  324,  323,  322,  321,  320,  319,
00726       318,  317,  315,  314,  313,  312,  311,  310,  307,  306,
00727       305,  304,  303,  302,  301,  300,  298,  297,  296,  295,
00728       293,  292,  291,  290,  289,  288,  287,  286,  285,  284,
00729       282,  281,  280,  279,  277,  276,  274,  273,  271,  270,
00730       269,  268,  267,  266,  265,  264,  263,  261,  260,  259,
00731       258,  257,  256,  255,  254,  251,  250,  249,  246,  245,
00732       244,  243,  237,  236,  235,  234,  233,  232,  231,  230,
00733       229,  228,  227,  225,  224,  223,  222,  221,  218,  215,
00734 
00735       214,  213,  212,  211,  210,  209,  206,  202,  201,  199,
00736       198,  197,  196,  195,  194,  192,  191,  189,  188,  186,
00737       185,  184,  183,  182,  181,  180,  179,  178,  175,  174,
00738       173,  172,  171,  164,  163,  162,  161,  160,  158,  157,
00739       156,  155,  154,  153,  147,  146,  145,  144,  143,  142,
00740       141,  140,  139,  138,  136,  135,  134,  133,  131,  130,
00741       129,  128,  127,  126,  125,  124,  123,  122,  121,  120,
00742       119,  118,  117,  116,  115,  114,  113,  112,  111,  109,
00743       108,  107,  106,  104,  103,  102,   95,   78,   75,   74,
00744        73,   70,   62,   56,   55,   49,   42,   40,   27,   21,
00745 
00746        14,   13,    9,  457,  457,  457,  457,  457,  457,  457,
00747       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00748       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00749       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00750       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00751       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
00752       457,  457,  457,  457,  457,  457,  457
00753     } ;
00754 
00755 /* Table of booleans, true if rule could match eol. */
00756 static yyconst flex_int32_t yy_rule_can_match_eol[135] =
00757     {   0,
00758 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00759     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00760     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00761     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00762     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00763     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00764     0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,     };
00765 
00766 static yy_state_type yy_last_accepting_state;
00767 static char *yy_last_accepting_cpos;
00768 
00769 extern int yy_flex_debug;
00770 int yy_flex_debug = 0;
00771 
00772 /* The intent behind this definition is that it'll catch
00773  * any uses of REJECT which flex missed.
00774  */
00775 #define REJECT reject_used_but_not_detected
00776 #define yymore() yymore_used_but_not_detected
00777 #define YY_MORE_ADJ 0
00778 #define YY_RESTORE_YY_MORE_OFFSET
00779 char *yytext;
00780 #line 1 "parser/faustlexer.l"
00781 /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4 -*- */
00782 /* Scanner for the Faust language */
00783 #line 6 "parser/faustlexer.l"
00784 #include "tree.hh"
00785 #include "faustparser.hpp"
00786 #define YY_NO_UNISTD_H 1
00787 extern int isatty (int );
00788 
00789 
00790 
00791 #line 792 "parser/faustlexer.cpp"
00792 
00793 #define INITIAL 0
00794 #define comment 1
00795 #define doc 2
00796 #define lst 3
00797 
00798 #ifndef YY_NO_UNISTD_H
00799 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00800  * down here because we want the user's section 1 to have been scanned first.
00801  * The user has a chance to override it with an option.
00802  */
00803 #include <unistd.h>
00804 #endif
00805 
00806 #ifndef YY_EXTRA_TYPE
00807 #define YY_EXTRA_TYPE void *
00808 #endif
00809 
00810 static int yy_init_globals (void );
00811 
00812 /* Accessor methods to globals.
00813    These are made visible to non-reentrant scanners for convenience. */
00814 
00815 int yylex_destroy (void );
00816 
00817 int yyget_debug (void );
00818 
00819 void yyset_debug (int debug_flag  );
00820 
00821 YY_EXTRA_TYPE yyget_extra (void );
00822 
00823 void yyset_extra (YY_EXTRA_TYPE user_defined  );
00824 
00825 FILE *yyget_in (void );
00826 
00827 void yyset_in  (FILE * in_str  );
00828 
00829 FILE *yyget_out (void );
00830 
00831 void yyset_out  (FILE * out_str  );
00832 
00833 int yyget_leng (void );
00834 
00835 char *yyget_text (void );
00836 
00837 int yyget_lineno (void );
00838 
00839 void yyset_lineno (int line_number  );
00840 
00841 /* Macros after this point can all be overridden by user definitions in
00842  * section 1.
00843  */
00844 
00845 #ifndef YY_SKIP_YYWRAP
00846 #ifdef __cplusplus
00847 extern "C" int yywrap (void );
00848 #else
00849 extern int yywrap (void );
00850 #endif
00851 #endif
00852 
00853     static void yyunput (int c,char *buf_ptr  );
00854     
00855 #ifndef yytext_ptr
00856 static void yy_flex_strncpy (char *,yyconst char *,int );
00857 #endif
00858 
00859 #ifdef YY_NEED_STRLEN
00860 static int yy_flex_strlen (yyconst char * );
00861 #endif
00862 
00863 #ifndef YY_NO_INPUT
00864 
00865 #ifdef __cplusplus
00866 static int yyinput (void );
00867 #else
00868 static int input (void );
00869 #endif
00870 
00871 #endif
00872 
00873 /* Amount of stuff to slurp up with each read. */
00874 #ifndef YY_READ_BUF_SIZE
00875 #ifdef __ia64__
00876 /* On IA-64, the buffer size is 16k, not 8k */
00877 #define YY_READ_BUF_SIZE 16384
00878 #else
00879 #define YY_READ_BUF_SIZE 8192
00880 #endif /* __ia64__ */
00881 #endif
00882 
00883 /* Copy whatever the last rule matched to the standard output. */
00884 #ifndef ECHO
00885 /* This used to be an fputs(), but since the string might contain NUL's,
00886  * we now use fwrite().
00887  */
00888 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
00889 #endif
00890 
00891 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00892  * is returned in "result".
00893  */
00894 #ifndef YY_INPUT
00895 #define YY_INPUT(buf,result,max_size) \
00896     if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00897         { \
00898         int c = '*'; \
00899         size_t n; \
00900         for ( n = 0; n < max_size && \
00901                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00902             buf[n] = (char) c; \
00903         if ( c == '\n' ) \
00904             buf[n++] = (char) c; \
00905         if ( c == EOF && ferror( yyin ) ) \
00906             YY_FATAL_ERROR( "input in flex scanner failed" ); \
00907         result = n; \
00908         } \
00909     else \
00910         { \
00911         errno=0; \
00912         while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00913             { \
00914             if( errno != EINTR) \
00915                 { \
00916                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00917                 break; \
00918                 } \
00919             errno=0; \
00920             clearerr(yyin); \
00921             } \
00922         }\
00923 \
00924 
00925 #endif
00926 
00927 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00928  * we don't want an extra ';' after the "return" because that will cause
00929  * some compilers to complain about unreachable statements.
00930  */
00931 #ifndef yyterminate
00932 #define yyterminate() return YY_NULL
00933 #endif
00934 
00935 /* Number of entries by which start-condition stack grows. */
00936 #ifndef YY_START_STACK_INCR
00937 #define YY_START_STACK_INCR 25
00938 #endif
00939 
00940 /* Report a fatal error. */
00941 #ifndef YY_FATAL_ERROR
00942 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00943 #endif
00944 
00945 /* end tables serialization structures and prototypes */
00946 
00947 /* Default declaration of generated scanner - a define so the user can
00948  * easily add parameters.
00949  */
00950 #ifndef YY_DECL
00951 #define YY_DECL_IS_OURS 1
00952 
00953 extern int yylex (void);
00954 
00955 #define YY_DECL int yylex (void)
00956 #endif /* !YY_DECL */
00957 
00958 /* Code executed at the beginning of each rule, after yytext and yyleng
00959  * have been set up.
00960  */
00961 #ifndef YY_USER_ACTION
00962 #define YY_USER_ACTION
00963 #endif
00964 
00965 /* Code executed at the end of each rule. */
00966 #ifndef YY_BREAK
00967 #define YY_BREAK break;
00968 #endif
00969 
00970 #define YY_RULE_SETUP \
00971     YY_USER_ACTION
00972 
00975 YY_DECL
00976 {
00977     register yy_state_type yy_current_state;
00978     register char *yy_cp, *yy_bp;
00979     register int yy_act;
00980     
00981 #line 25 "parser/faustlexer.l"
00982 
00983 
00984 
00985 #line 986 "parser/faustlexer.cpp"
00986 
00987     if ( !(yy_init) )
00988         {
00989         (yy_init) = 1;
00990 
00991 #ifdef YY_USER_INIT
00992         YY_USER_INIT;
00993 #endif
00994 
00995         if ( ! (yy_start) )
00996             (yy_start) = 1; /* first start state */
00997 
00998         if ( ! yyin )
00999             yyin = stdin;
01000 
01001         if ( ! yyout )
01002             yyout = stdout;
01003 
01004         if ( ! YY_CURRENT_BUFFER ) {
01005             yyensure_buffer_stack ();
01006             YY_CURRENT_BUFFER_LVALUE =
01007                 yy_create_buffer(yyin,YY_BUF_SIZE );
01008         }
01009 
01010         yy_load_buffer_state( );
01011         }
01012 
01013     while ( 1 )     /* loops until end-of-file is reached */
01014         {
01015         yy_cp = (yy_c_buf_p);
01016 
01017         /* Support of yytext. */
01018         *yy_cp = (yy_hold_char);
01019 
01020         /* yy_bp points to the position in yy_ch_buf of the start of
01021          * the current run.
01022          */
01023         yy_bp = yy_cp;
01024 
01025         yy_current_state = (yy_start);
01026 yy_match:
01027         do
01028             {
01029             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01030             if ( yy_accept[yy_current_state] )
01031                 {
01032                 (yy_last_accepting_state) = yy_current_state;
01033                 (yy_last_accepting_cpos) = yy_cp;
01034                 }
01035             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01036                 {
01037                 yy_current_state = (int) yy_def[yy_current_state];
01038                 if ( yy_current_state >= 458 )
01039                     yy_c = yy_meta[(unsigned int) yy_c];
01040                 }
01041             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01042             ++yy_cp;
01043             }
01044         while ( yy_base[yy_current_state] != 604 );
01045 
01046 yy_find_action:
01047         yy_act = yy_accept[yy_current_state];
01048         if ( yy_act == 0 )
01049             { /* have to back up */
01050             yy_cp = (yy_last_accepting_cpos);
01051             yy_current_state = (yy_last_accepting_state);
01052             yy_act = yy_accept[yy_current_state];
01053             }
01054 
01055         YY_DO_BEFORE_ACTION;
01056 
01057         if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01058             {
01059             int yyl;
01060             for ( yyl = 0; yyl < yyleng; ++yyl )
01061                 if ( yytext[yyl] == '\n' )
01062                        
01063     yylineno++;
01064 ;
01065             }
01066 
01067 do_action:  /* This label is used only to access EOF actions. */
01068 
01069         switch ( yy_act )
01070     { /* beginning of action switch */
01071             case 0: /* must back up */
01072             /* undo the effects of YY_DO_BEFORE_ACTION */
01073             *yy_cp = (yy_hold_char);
01074             yy_cp = (yy_last_accepting_cpos);
01075             yy_current_state = (yy_last_accepting_state);
01076             goto yy_find_action;
01077 
01078 case 1:
01079 YY_RULE_SETUP
01080 #line 28 "parser/faustlexer.l"
01081 BEGIN(comment);
01082     YY_BREAK
01083 case 2:
01084 YY_RULE_SETUP
01085 #line 29 "parser/faustlexer.l"
01086 /* eat anything that's not a '*'        */
01087     YY_BREAK
01088 case 3:
01089 YY_RULE_SETUP
01090 #line 30 "parser/faustlexer.l"
01091 /* eat up '*'s not followed by '/'s     */
01092     YY_BREAK
01093 case 4:
01094 /* rule 4 can match eol */
01095 YY_RULE_SETUP
01096 #line 31 "parser/faustlexer.l"
01097 /* no need to increment yylineno here   */
01098     YY_BREAK
01099 case 5:
01100 /* rule 5 can match eol */
01101 YY_RULE_SETUP
01102 #line 32 "parser/faustlexer.l"
01103 /* no need to increment yylineno here   */
01104     YY_BREAK
01105 case 6:
01106 YY_RULE_SETUP
01107 #line 33 "parser/faustlexer.l"
01108 /* no need to increment yylineno here   */
01109     YY_BREAK
01110 case 7:
01111 YY_RULE_SETUP
01112 #line 34 "parser/faustlexer.l"
01113 BEGIN(INITIAL);
01114     YY_BREAK
01115 case 8:
01116 YY_RULE_SETUP
01117 #line 36 "parser/faustlexer.l"
01118 { BEGIN(doc); return BDOC; }
01119     YY_BREAK
01120 case 9:
01121 YY_RULE_SETUP
01122 #line 37 "parser/faustlexer.l"
01123 return DOCCHAR; /* char by char, may be slow ?? */
01124     YY_BREAK
01125 case 10:
01126 /* rule 10 can match eol */
01127 YY_RULE_SETUP
01128 #line 38 "parser/faustlexer.l"
01129 return DOCCHAR; /* keep newline chars */
01130     YY_BREAK
01131 case 11:
01132 YY_RULE_SETUP
01133 #line 39 "parser/faustlexer.l"
01134 return NOTICE;  /* autoclosing tag */
01135     YY_BREAK
01136 case 12:
01137 YY_RULE_SETUP
01138 #line 40 "parser/faustlexer.l"
01139 return NOTICE;  /* autoclosing tag */
01140     YY_BREAK
01141 case 13:
01142 YY_RULE_SETUP
01143 #line 41 "parser/faustlexer.l"
01144 { BEGIN(lst);       return BLST; } /* autoclosing tag */
01145     YY_BREAK
01146 case 14:
01147 YY_RULE_SETUP
01148 #line 42 "parser/faustlexer.l"
01149 { BEGIN(INITIAL);   return BEQN; }
01150     YY_BREAK
01151 case 15:
01152 YY_RULE_SETUP
01153 #line 43 "parser/faustlexer.l"
01154 { BEGIN(doc);       return EEQN; }
01155     YY_BREAK
01156 case 16:
01157 YY_RULE_SETUP
01158 #line 44 "parser/faustlexer.l"
01159 { BEGIN(INITIAL);   return BDGM; }
01160     YY_BREAK
01161 case 17:
01162 YY_RULE_SETUP
01163 #line 45 "parser/faustlexer.l"
01164 { BEGIN(doc);       return EDGM; }
01165     YY_BREAK
01166 case 18:
01167 YY_RULE_SETUP
01168 #line 46 "parser/faustlexer.l"
01169 { BEGIN(INITIAL);   return BMETADATA; }
01170     YY_BREAK
01171 case 19:
01172 YY_RULE_SETUP
01173 #line 47 "parser/faustlexer.l"
01174 { BEGIN(doc);       return EMETADATA; }
01175     YY_BREAK
01176 case 20:
01177 YY_RULE_SETUP
01178 #line 48 "parser/faustlexer.l"
01179 { BEGIN(INITIAL);   return EDOC; }
01180     YY_BREAK
01181 case 21:
01182 YY_RULE_SETUP
01183 #line 50 "parser/faustlexer.l"
01184 return LSTTRUE;
01185     YY_BREAK
01186 case 22:
01187 YY_RULE_SETUP
01188 #line 51 "parser/faustlexer.l"
01189 return LSTFALSE;
01190     YY_BREAK
01191 case 23:
01192 YY_RULE_SETUP
01193 #line 52 "parser/faustlexer.l"
01194 return LSTDEPENDENCIES;
01195     YY_BREAK
01196 case 24:
01197 YY_RULE_SETUP
01198 #line 53 "parser/faustlexer.l"
01199 return LSTMDOCTAGS;
01200     YY_BREAK
01201 case 25:
01202 YY_RULE_SETUP
01203 #line 54 "parser/faustlexer.l"
01204 return LSTDISTRIBUTED;
01205     YY_BREAK
01206 case 26:
01207 YY_RULE_SETUP
01208 #line 55 "parser/faustlexer.l"
01209 return LSTEQ;
01210     YY_BREAK
01211 case 27:
01212 YY_RULE_SETUP
01213 #line 56 "parser/faustlexer.l"
01214 return LSTQ;
01215     YY_BREAK
01216 case 28:
01217 YY_RULE_SETUP
01218 #line 57 "parser/faustlexer.l"
01219 { BEGIN(doc);   return ELST; }
01220     YY_BREAK
01221 case 29:
01222 YY_RULE_SETUP
01223 #line 60 "parser/faustlexer.l"
01224 return INT;
01225     YY_BREAK
01226 case 30:
01227 YY_RULE_SETUP
01228 #line 63 "parser/faustlexer.l"
01229 return FLOAT;
01230     YY_BREAK
01231 case 31:
01232 YY_RULE_SETUP
01233 #line 64 "parser/faustlexer.l"
01234 return FLOAT;
01235     YY_BREAK
01236 case 32:
01237 YY_RULE_SETUP
01238 #line 65 "parser/faustlexer.l"
01239 return FLOAT;
01240     YY_BREAK
01241 case 33:
01242 YY_RULE_SETUP
01243 #line 66 "parser/faustlexer.l"
01244 return FLOAT;
01245     YY_BREAK
01246 case 34:
01247 YY_RULE_SETUP
01248 #line 67 "parser/faustlexer.l"
01249 return FLOAT;
01250     YY_BREAK
01251 case 35:
01252 YY_RULE_SETUP
01253 #line 70 "parser/faustlexer.l"
01254 return SEQ;
01255     YY_BREAK
01256 case 36:
01257 YY_RULE_SETUP
01258 #line 71 "parser/faustlexer.l"
01259 return PAR;
01260     YY_BREAK
01261 case 37:
01262 YY_RULE_SETUP
01263 #line 72 "parser/faustlexer.l"
01264 return SPLIT;
01265     YY_BREAK
01266 case 38:
01267 YY_RULE_SETUP
01268 #line 73 "parser/faustlexer.l"
01269 return MIX;
01270     YY_BREAK
01271 case 39:
01272 YY_RULE_SETUP
01273 #line 74 "parser/faustlexer.l"
01274 return MIX;
01275     YY_BREAK
01276 case 40:
01277 YY_RULE_SETUP
01278 #line 75 "parser/faustlexer.l"
01279 return REC;
01280     YY_BREAK
01281 case 41:
01282 YY_RULE_SETUP
01283 #line 77 "parser/faustlexer.l"
01284 return ADD;
01285     YY_BREAK
01286 case 42:
01287 YY_RULE_SETUP
01288 #line 78 "parser/faustlexer.l"
01289 return SUB;
01290     YY_BREAK
01291 case 43:
01292 YY_RULE_SETUP
01293 #line 79 "parser/faustlexer.l"
01294 return MUL;
01295     YY_BREAK
01296 case 44:
01297 YY_RULE_SETUP
01298 #line 80 "parser/faustlexer.l"
01299 return DIV;
01300     YY_BREAK
01301 case 45:
01302 YY_RULE_SETUP
01303 #line 81 "parser/faustlexer.l"
01304 return MOD;
01305     YY_BREAK
01306 case 46:
01307 YY_RULE_SETUP
01308 #line 82 "parser/faustlexer.l"
01309 return FDELAY;
01310     YY_BREAK
01311 case 47:
01312 YY_RULE_SETUP
01313 #line 83 "parser/faustlexer.l"
01314 return DELAY1;
01315     YY_BREAK
01316 case 48:
01317 YY_RULE_SETUP
01318 #line 85 "parser/faustlexer.l"
01319 return AND;
01320     YY_BREAK
01321 case 49:
01322 YY_RULE_SETUP
01323 #line 86 "parser/faustlexer.l"
01324 return OR;
01325     YY_BREAK
01326 case 50:
01327 YY_RULE_SETUP
01328 #line 87 "parser/faustlexer.l"
01329 return XOR;
01330     YY_BREAK
01331 case 51:
01332 YY_RULE_SETUP
01333 #line 89 "parser/faustlexer.l"
01334 return LSH;
01335     YY_BREAK
01336 case 52:
01337 YY_RULE_SETUP
01338 #line 90 "parser/faustlexer.l"
01339 return RSH;
01340     YY_BREAK
01341 case 53:
01342 YY_RULE_SETUP
01343 #line 92 "parser/faustlexer.l"
01344 return LT;
01345     YY_BREAK
01346 case 54:
01347 YY_RULE_SETUP
01348 #line 93 "parser/faustlexer.l"
01349 return LE;
01350     YY_BREAK
01351 case 55:
01352 YY_RULE_SETUP
01353 #line 94 "parser/faustlexer.l"
01354 return GT;
01355     YY_BREAK
01356 case 56:
01357 YY_RULE_SETUP
01358 #line 95 "parser/faustlexer.l"
01359 return GE;
01360     YY_BREAK
01361 case 57:
01362 YY_RULE_SETUP
01363 #line 96 "parser/faustlexer.l"
01364 return EQ;
01365     YY_BREAK
01366 case 58:
01367 YY_RULE_SETUP
01368 #line 97 "parser/faustlexer.l"
01369 return NE;
01370     YY_BREAK
01371 case 59:
01372 YY_RULE_SETUP
01373 #line 99 "parser/faustlexer.l"
01374 return WIRE;
01375     YY_BREAK
01376 case 60:
01377 YY_RULE_SETUP
01378 #line 100 "parser/faustlexer.l"
01379 return CUT;
01380     YY_BREAK
01381 case 61:
01382 YY_RULE_SETUP
01383 #line 102 "parser/faustlexer.l"
01384 return ENDDEF;
01385     YY_BREAK
01386 case 62:
01387 YY_RULE_SETUP
01388 #line 103 "parser/faustlexer.l"
01389 return DEF;
01390     YY_BREAK
01391 case 63:
01392 YY_RULE_SETUP
01393 #line 104 "parser/faustlexer.l"
01394 return LPAR;
01395     YY_BREAK
01396 case 64:
01397 YY_RULE_SETUP
01398 #line 105 "parser/faustlexer.l"
01399 return RPAR;
01400     YY_BREAK
01401 case 65:
01402 YY_RULE_SETUP
01403 #line 106 "parser/faustlexer.l"
01404 return LBRAQ;
01405     YY_BREAK
01406 case 66:
01407 YY_RULE_SETUP
01408 #line 107 "parser/faustlexer.l"
01409 return RBRAQ;
01410     YY_BREAK
01411 case 67:
01412 YY_RULE_SETUP
01413 #line 108 "parser/faustlexer.l"
01414 return LCROC;
01415     YY_BREAK
01416 case 68:
01417 YY_RULE_SETUP
01418 #line 109 "parser/faustlexer.l"
01419 return RCROC;
01420     YY_BREAK
01421 case 69:
01422 YY_RULE_SETUP
01423 #line 111 "parser/faustlexer.l"
01424 return LAMBDA;
01425     YY_BREAK
01426 case 70:
01427 YY_RULE_SETUP
01428 #line 112 "parser/faustlexer.l"
01429 return DOT;
01430     YY_BREAK
01431 case 71:
01432 YY_RULE_SETUP
01433 #line 113 "parser/faustlexer.l"
01434 return WITH;
01435     YY_BREAK
01436 case 72:
01437 YY_RULE_SETUP
01438 #line 115 "parser/faustlexer.l"
01439 return MEM;
01440     YY_BREAK
01441 case 73:
01442 YY_RULE_SETUP
01443 #line 116 "parser/faustlexer.l"
01444 return PREFIX;
01445     YY_BREAK
01446 case 74:
01447 YY_RULE_SETUP
01448 #line 118 "parser/faustlexer.l"
01449 return INTCAST;
01450     YY_BREAK
01451 case 75:
01452 YY_RULE_SETUP
01453 #line 119 "parser/faustlexer.l"
01454 return FLOATCAST;
01455     YY_BREAK
01456 case 76:
01457 YY_RULE_SETUP
01458 #line 121 "parser/faustlexer.l"
01459 return RDTBL;
01460     YY_BREAK
01461 case 77:
01462 YY_RULE_SETUP
01463 #line 122 "parser/faustlexer.l"
01464 return RWTBL;
01465     YY_BREAK
01466 case 78:
01467 YY_RULE_SETUP
01468 #line 124 "parser/faustlexer.l"
01469 return SELECT2;
01470     YY_BREAK
01471 case 79:
01472 YY_RULE_SETUP
01473 #line 125 "parser/faustlexer.l"
01474 return SELECT3;
01475     YY_BREAK
01476 case 80:
01477 YY_RULE_SETUP
01478 #line 127 "parser/faustlexer.l"
01479 return FFUNCTION; 
01480     YY_BREAK
01481 case 81:
01482 YY_RULE_SETUP
01483 #line 128 "parser/faustlexer.l"
01484 return FCONSTANT; 
01485     YY_BREAK
01486 case 82:
01487 YY_RULE_SETUP
01488 #line 129 "parser/faustlexer.l"
01489 return FVARIABLE; 
01490     YY_BREAK
01491 case 83:
01492 YY_RULE_SETUP
01493 #line 131 "parser/faustlexer.l"
01494 return BUTTON;
01495     YY_BREAK
01496 case 84:
01497 YY_RULE_SETUP
01498 #line 132 "parser/faustlexer.l"
01499 return CHECKBOX;
01500     YY_BREAK
01501 case 85:
01502 YY_RULE_SETUP
01503 #line 133 "parser/faustlexer.l"
01504 return VSLIDER;
01505     YY_BREAK
01506 case 86:
01507 YY_RULE_SETUP
01508 #line 134 "parser/faustlexer.l"
01509 return HSLIDER;
01510     YY_BREAK
01511 case 87:
01512 YY_RULE_SETUP
01513 #line 135 "parser/faustlexer.l"
01514 return NENTRY;
01515     YY_BREAK
01516 case 88:
01517 YY_RULE_SETUP
01518 #line 136 "parser/faustlexer.l"
01519 return VGROUP;
01520     YY_BREAK
01521 case 89:
01522 YY_RULE_SETUP
01523 #line 137 "parser/faustlexer.l"
01524 return HGROUP;
01525     YY_BREAK
01526 case 90:
01527 YY_RULE_SETUP
01528 #line 138 "parser/faustlexer.l"
01529 return TGROUP;
01530     YY_BREAK
01531 case 91:
01532 YY_RULE_SETUP
01533 #line 139 "parser/faustlexer.l"
01534 return VBARGRAPH;
01535     YY_BREAK
01536 case 92:
01537 YY_RULE_SETUP
01538 #line 140 "parser/faustlexer.l"
01539 return HBARGRAPH;
01540     YY_BREAK
01541 case 93:
01542 YY_RULE_SETUP
01543 #line 141 "parser/faustlexer.l"
01544 return ATTACH;
01545     YY_BREAK
01546 case 94:
01547 YY_RULE_SETUP
01548 #line 143 "parser/faustlexer.l"
01549 return ACOS;
01550     YY_BREAK
01551 case 95:
01552 YY_RULE_SETUP
01553 #line 144 "parser/faustlexer.l"
01554 return ASIN;
01555     YY_BREAK
01556 case 96:
01557 YY_RULE_SETUP
01558 #line 145 "parser/faustlexer.l"
01559 return ATAN;
01560     YY_BREAK
01561 case 97:
01562 YY_RULE_SETUP
01563 #line 146 "parser/faustlexer.l"
01564 return ATAN2;
01565     YY_BREAK
01566 case 98:
01567 YY_RULE_SETUP
01568 #line 148 "parser/faustlexer.l"
01569 return COS;
01570     YY_BREAK
01571 case 99:
01572 YY_RULE_SETUP
01573 #line 149 "parser/faustlexer.l"
01574 return SIN;
01575     YY_BREAK
01576 case 100:
01577 YY_RULE_SETUP
01578 #line 150 "parser/faustlexer.l"
01579 return TAN;
01580     YY_BREAK
01581 case 101:
01582 YY_RULE_SETUP
01583 #line 152 "parser/faustlexer.l"
01584 return EXP;
01585     YY_BREAK
01586 case 102:
01587 YY_RULE_SETUP
01588 #line 153 "parser/faustlexer.l"
01589 return LOG;
01590     YY_BREAK
01591 case 103:
01592 YY_RULE_SETUP
01593 #line 154 "parser/faustlexer.l"
01594 return LOG10;
01595     YY_BREAK
01596 case 104:
01597 YY_RULE_SETUP
01598 #line 155 "parser/faustlexer.l"
01599 return POWOP;
01600     YY_BREAK
01601 case 105:
01602 YY_RULE_SETUP
01603 #line 156 "parser/faustlexer.l"
01604 return POWFUN;
01605     YY_BREAK
01606 case 106:
01607 YY_RULE_SETUP
01608 #line 157 "parser/faustlexer.l"
01609 return SQRT;
01610     YY_BREAK
01611 case 107:
01612 YY_RULE_SETUP
01613 #line 159 "parser/faustlexer.l"
01614 return ABS;
01615     YY_BREAK
01616 case 108:
01617 YY_RULE_SETUP
01618 #line 160 "parser/faustlexer.l"
01619 return MIN;
01620     YY_BREAK
01621 case 109:
01622 YY_RULE_SETUP
01623 #line 161 "parser/faustlexer.l"
01624 return MAX;
01625     YY_BREAK
01626 case 110:
01627 YY_RULE_SETUP
01628 #line 163 "parser/faustlexer.l"
01629 return FMOD;
01630     YY_BREAK
01631 case 111:
01632 YY_RULE_SETUP
01633 #line 164 "parser/faustlexer.l"
01634 return REMAINDER;
01635     YY_BREAK
01636 case 112:
01637 YY_RULE_SETUP
01638 #line 166 "parser/faustlexer.l"
01639 return FLOOR;
01640     YY_BREAK
01641 case 113:
01642 YY_RULE_SETUP
01643 #line 167 "parser/faustlexer.l"
01644 return CEIL;
01645     YY_BREAK
01646 case 114:
01647 YY_RULE_SETUP
01648 #line 168 "parser/faustlexer.l"
01649 return RINT;
01650     YY_BREAK
01651 case 115:
01652 YY_RULE_SETUP
01653 #line 170 "parser/faustlexer.l"
01654 return ISEQ;
01655     YY_BREAK
01656 case 116:
01657 YY_RULE_SETUP
01658 #line 171 "parser/faustlexer.l"
01659 return IPAR;
01660     YY_BREAK
01661 case 117:
01662 YY_RULE_SETUP
01663 #line 172 "parser/faustlexer.l"
01664 return ISUM;
01665     YY_BREAK
01666 case 118:
01667 YY_RULE_SETUP
01668 #line 173 "parser/faustlexer.l"
01669 return IPROD;
01670     YY_BREAK
01671 case 119:
01672 YY_RULE_SETUP
01673 #line 175 "parser/faustlexer.l"
01674 return IMPORT;
01675     YY_BREAK
01676 case 120:
01677 YY_RULE_SETUP
01678 #line 176 "parser/faustlexer.l"
01679 return COMPONENT;
01680     YY_BREAK
01681 case 121:
01682 YY_RULE_SETUP
01683 #line 177 "parser/faustlexer.l"
01684 return LIBRARY;
01685     YY_BREAK
01686 case 122:
01687 YY_RULE_SETUP
01688 #line 178 "parser/faustlexer.l"
01689 return ENVIRONMENT;
01690     YY_BREAK
01691 case 123:
01692 YY_RULE_SETUP
01693 #line 180 "parser/faustlexer.l"
01694 return DECLARE;
01695     YY_BREAK
01696 case 124:
01697 YY_RULE_SETUP
01698 #line 182 "parser/faustlexer.l"
01699 return CASE;
01700     YY_BREAK
01701 case 125:
01702 YY_RULE_SETUP
01703 #line 183 "parser/faustlexer.l"
01704 return ARROW;
01705     YY_BREAK
01706 case 126:
01707 YY_RULE_SETUP
01708 #line 185 "parser/faustlexer.l"
01709 return IDENT;
01710     YY_BREAK
01711 case 127:
01712 YY_RULE_SETUP
01713 #line 186 "parser/faustlexer.l"
01714 return IDENT;
01715     YY_BREAK
01716 case 128:
01717 /* rule 128 can match eol */
01718 YY_RULE_SETUP
01719 #line 188 "parser/faustlexer.l"
01720 return STRING;
01721     YY_BREAK
01722 case 129:
01723 YY_RULE_SETUP
01724 #line 190 "parser/faustlexer.l"
01725 return FSTRING;
01726     YY_BREAK
01727 case 130:
01728 YY_RULE_SETUP
01729 #line 191 "parser/faustlexer.l"
01730 return FSTRING;
01731     YY_BREAK
01732 case 131:
01733 YY_RULE_SETUP
01734 #line 194 "parser/faustlexer.l"
01735 /* eat up one-line comments */
01736     YY_BREAK
01737 case 132:
01738 /* rule 132 can match eol */
01739 YY_RULE_SETUP
01740 #line 196 "parser/faustlexer.l"
01741 /* eat up whitespace */
01742     YY_BREAK
01743 case YY_STATE_EOF(INITIAL):
01744 case YY_STATE_EOF(comment):
01745 case YY_STATE_EOF(doc):
01746 case YY_STATE_EOF(lst):
01747 #line 198 "parser/faustlexer.l"
01748 yyterminate();
01749     YY_BREAK
01750 case 133:
01751 YY_RULE_SETUP
01752 #line 200 "parser/faustlexer.l"
01753 printf("extra text is : %s\n", yytext); return EXTRA;
01754     YY_BREAK
01755 case 134:
01756 YY_RULE_SETUP
01757 #line 203 "parser/faustlexer.l"
01758 ECHO;
01759     YY_BREAK
01760 #line 1761 "parser/faustlexer.cpp"
01761 
01762     case YY_END_OF_BUFFER:
01763         {
01764         /* Amount of text matched not including the EOB char. */
01765         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01766 
01767         /* Undo the effects of YY_DO_BEFORE_ACTION. */
01768         *yy_cp = (yy_hold_char);
01769         YY_RESTORE_YY_MORE_OFFSET
01770 
01771         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01772             {
01773             /* We're scanning a new file or input source.  It's
01774              * possible that this happened because the user
01775              * just pointed yyin at a new source and called
01776              * yylex().  If so, then we have to assure
01777              * consistency between YY_CURRENT_BUFFER and our
01778              * globals.  Here is the right place to do so, because
01779              * this is the first action (other than possibly a
01780              * back-up) that will match for the new input source.
01781              */
01782             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01783             YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01784             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01785             }
01786 
01787         /* Note that here we test for yy_c_buf_p "<=" to the position
01788          * of the first EOB in the buffer, since yy_c_buf_p will
01789          * already have been incremented past the NUL character
01790          * (since all states make transitions on EOB to the
01791          * end-of-buffer state).  Contrast this with the test
01792          * in input().
01793          */
01794         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01795             { /* This was really a NUL. */
01796             yy_state_type yy_next_state;
01797 
01798             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01799 
01800             yy_current_state = yy_get_previous_state(  );
01801 
01802             /* Okay, we're now positioned to make the NUL
01803              * transition.  We couldn't have
01804              * yy_get_previous_state() go ahead and do it
01805              * for us because it doesn't know how to deal
01806              * with the possibility of jamming (and we don't
01807              * want to build jamming into it because then it
01808              * will run more slowly).
01809              */
01810 
01811             yy_next_state = yy_try_NUL_trans( yy_current_state );
01812 
01813             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01814 
01815             if ( yy_next_state )
01816                 {
01817                 /* Consume the NUL. */
01818                 yy_cp = ++(yy_c_buf_p);
01819                 yy_current_state = yy_next_state;
01820                 goto yy_match;
01821                 }
01822 
01823             else
01824                 {
01825                 yy_cp = (yy_c_buf_p);
01826                 goto yy_find_action;
01827                 }
01828             }
01829 
01830         else switch ( yy_get_next_buffer(  ) )
01831             {
01832             case EOB_ACT_END_OF_FILE:
01833                 {
01834                 (yy_did_buffer_switch_on_eof) = 0;
01835 
01836                 if ( yywrap( ) )
01837                     {
01838                     /* Note: because we've taken care in
01839                      * yy_get_next_buffer() to have set up
01840                      * yytext, we can now set up
01841                      * yy_c_buf_p so that if some total
01842                      * hoser (like flex itself) wants to
01843                      * call the scanner after we return the
01844                      * YY_NULL, it'll still work - another
01845                      * YY_NULL will get returned.
01846                      */
01847                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01848 
01849                     yy_act = YY_STATE_EOF(YY_START);
01850                     goto do_action;
01851                     }
01852 
01853                 else
01854                     {
01855                     if ( ! (yy_did_buffer_switch_on_eof) )
01856                         YY_NEW_FILE;
01857                     }
01858                 break;
01859                 }
01860 
01861             case EOB_ACT_CONTINUE_SCAN:
01862                 (yy_c_buf_p) =
01863                     (yytext_ptr) + yy_amount_of_matched_text;
01864 
01865                 yy_current_state = yy_get_previous_state(  );
01866 
01867                 yy_cp = (yy_c_buf_p);
01868                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01869                 goto yy_match;
01870 
01871             case EOB_ACT_LAST_MATCH:
01872                 (yy_c_buf_p) =
01873                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01874 
01875                 yy_current_state = yy_get_previous_state(  );
01876 
01877                 yy_cp = (yy_c_buf_p);
01878                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01879                 goto yy_find_action;
01880             }
01881         break;
01882         }
01883 
01884     default:
01885         YY_FATAL_ERROR(
01886             "fatal flex scanner internal error--no action found" );
01887     } /* end of action switch */
01888         } /* end of scanning one token */
01889 } /* end of yylex */
01890 
01891 /* yy_get_next_buffer - try to read in a new buffer
01892  *
01893  * Returns a code representing an action:
01894  *  EOB_ACT_LAST_MATCH -
01895  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01896  *  EOB_ACT_END_OF_FILE - end of file
01897  */
01898 static int yy_get_next_buffer (void)
01899 {
01900         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01901     register char *source = (yytext_ptr);
01902     register int number_to_move, i;
01903     int ret_val;
01904 
01905     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01906         YY_FATAL_ERROR(
01907         "fatal flex scanner internal error--end of buffer missed" );
01908 
01909     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01910         { /* Don't try to fill the buffer, so this is an EOF. */
01911         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01912             {
01913             /* We matched a single character, the EOB, so
01914              * treat this as a final EOF.
01915              */
01916             return EOB_ACT_END_OF_FILE;
01917             }
01918 
01919         else
01920             {
01921             /* We matched some text prior to the EOB, first
01922              * process it.
01923              */
01924             return EOB_ACT_LAST_MATCH;
01925             }
01926         }
01927 
01928     /* Try to read more data. */
01929 
01930     /* First move last chars to start of buffer. */
01931     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01932 
01933     for ( i = 0; i < number_to_move; ++i )
01934         *(dest++) = *(source++);
01935 
01936     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01937         /* don't do the read, it's not guaranteed to return an EOF,
01938          * just force an EOF
01939          */
01940         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
01941 
01942     else
01943         {
01944             int num_to_read =
01945             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01946 
01947         while ( num_to_read <= 0 )
01948             { /* Not enough room in the buffer - grow it. */
01949 
01950             /* just a shorter name for the current buffer */
01951             YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
01952 
01953             int yy_c_buf_p_offset =
01954                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
01955 
01956             if ( b->yy_is_our_buffer )
01957                 {
01958                 int new_size = b->yy_buf_size * 2;
01959 
01960                 if ( new_size <= 0 )
01961                     b->yy_buf_size += b->yy_buf_size / 8;
01962                 else
01963                     b->yy_buf_size *= 2;
01964 
01965                 b->yy_ch_buf = (char *)
01966                     /* Include room in for 2 EOB chars. */
01967                     yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
01968                 }
01969             else
01970                 /* Can't grow it, we don't own it. */
01971                 b->yy_ch_buf = 0;
01972 
01973             if ( ! b->yy_ch_buf )
01974                 YY_FATAL_ERROR(
01975                 "fatal error - scanner input buffer overflow" );
01976 
01977             (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
01978 
01979             num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01980                         number_to_move - 1;
01981 
01982             }
01983 
01984         if ( num_to_read > YY_READ_BUF_SIZE )
01985             num_to_read = YY_READ_BUF_SIZE;
01986 
01987         /* Read in more data. */
01988         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01989             (yy_n_chars), (size_t) num_to_read );
01990 
01991         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01992         }
01993 
01994     if ( (yy_n_chars) == 0 )
01995         {
01996         if ( number_to_move == YY_MORE_ADJ )
01997             {
01998             ret_val = EOB_ACT_END_OF_FILE;
01999             yyrestart(yyin  );
02000             }
02001 
02002         else
02003             {
02004             ret_val = EOB_ACT_LAST_MATCH;
02005             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02006                 YY_BUFFER_EOF_PENDING;
02007             }
02008         }
02009 
02010     else
02011         ret_val = EOB_ACT_CONTINUE_SCAN;
02012 
02013     if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02014         /* Extend the array by 50%, plus the number we really need. */
02015         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
02016         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
02017         if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02018             YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02019     }
02020 
02021     (yy_n_chars) += number_to_move;
02022     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02023     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02024 
02025     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02026 
02027     return ret_val;
02028 }
02029 
02030 /* yy_get_previous_state - get the state just before the EOB char was reached */
02031 
02032     static yy_state_type yy_get_previous_state (void)
02033 {
02034     register yy_state_type yy_current_state;
02035     register char *yy_cp;
02036     
02037     yy_current_state = (yy_start);
02038 
02039     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02040         {
02041         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02042         if ( yy_accept[yy_current_state] )
02043             {
02044             (yy_last_accepting_state) = yy_current_state;
02045             (yy_last_accepting_cpos) = yy_cp;
02046             }
02047         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02048             {
02049             yy_current_state = (int) yy_def[yy_current_state];
02050             if ( yy_current_state >= 458 )
02051                 yy_c = yy_meta[(unsigned int) yy_c];
02052             }
02053         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02054         }
02055 
02056     return yy_current_state;
02057 }
02058 
02059 /* yy_try_NUL_trans - try to make a transition on the NUL character
02060  *
02061  * synopsis
02062  *  next_state = yy_try_NUL_trans( current_state );
02063  */
02064     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02065 {
02066     register int yy_is_jam;
02067         register char *yy_cp = (yy_c_buf_p);
02068 
02069     register YY_CHAR yy_c = 1;
02070     if ( yy_accept[yy_current_state] )
02071         {
02072         (yy_last_accepting_state) = yy_current_state;
02073         (yy_last_accepting_cpos) = yy_cp;
02074         }
02075     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02076         {
02077         yy_current_state = (int) yy_def[yy_current_state];
02078         if ( yy_current_state >= 458 )
02079             yy_c = yy_meta[(unsigned int) yy_c];
02080         }
02081     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02082     yy_is_jam = (yy_current_state == 457);
02083 
02084     return yy_is_jam ? 0 : yy_current_state;
02085 }
02086 
02087     static void yyunput (int c, register char * yy_bp )
02088 {
02089     register char *yy_cp;
02090     
02091     yy_cp = (yy_c_buf_p);
02092 
02093     /* undo effects of setting up yytext */
02094     *yy_cp = (yy_hold_char);
02095 
02096     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02097         { /* need to shift things up to make room */
02098         /* +2 for EOB chars. */
02099         register int number_to_move = (yy_n_chars) + 2;
02100         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02101                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02102         register char *source =
02103                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02104 
02105         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02106             *--dest = *--source;
02107 
02108         yy_cp += (int) (dest - source);
02109         yy_bp += (int) (dest - source);
02110         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02111             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02112 
02113         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02114             YY_FATAL_ERROR( "flex scanner push-back overflow" );
02115         }
02116 
02117     *--yy_cp = (char) c;
02118 
02119     if ( c == '\n' ){
02120         --yylineno;
02121     }
02122 
02123     (yytext_ptr) = yy_bp;
02124     (yy_hold_char) = *yy_cp;
02125     (yy_c_buf_p) = yy_cp;
02126 }
02127 
02128 #ifndef YY_NO_INPUT
02129 #ifdef __cplusplus
02130     static int yyinput (void)
02131 #else
02132     static int input  (void)
02133 #endif
02134 
02135 {
02136     int c;
02137     
02138     *(yy_c_buf_p) = (yy_hold_char);
02139 
02140     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02141         {
02142         /* yy_c_buf_p now points to the character we want to return.
02143          * If this occurs *before* the EOB characters, then it's a
02144          * valid NUL; if not, then we've hit the end of the buffer.
02145          */
02146         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02147             /* This was really a NUL. */
02148             *(yy_c_buf_p) = '\0';
02149 
02150         else
02151             { /* need more input */
02152             int offset = (yy_c_buf_p) - (yytext_ptr);
02153             ++(yy_c_buf_p);
02154 
02155             switch ( yy_get_next_buffer(  ) )
02156                 {
02157                 case EOB_ACT_LAST_MATCH:
02158                     /* This happens because yy_g_n_b()
02159                      * sees that we've accumulated a
02160                      * token and flags that we need to
02161                      * try matching the token before
02162                      * proceeding.  But for input(),
02163                      * there's no matching to consider.
02164                      * So convert the EOB_ACT_LAST_MATCH
02165                      * to EOB_ACT_END_OF_FILE.
02166                      */
02167 
02168                     /* Reset buffer status. */
02169                     yyrestart(yyin );
02170 
02171                     /*FALLTHROUGH*/
02172 
02173                 case EOB_ACT_END_OF_FILE:
02174                     {
02175                     if ( yywrap( ) )
02176                         return EOF;
02177 
02178                     if ( ! (yy_did_buffer_switch_on_eof) )
02179                         YY_NEW_FILE;
02180 #ifdef __cplusplus
02181                     return yyinput();
02182 #else
02183                     return input();
02184 #endif
02185                     }
02186 
02187                 case EOB_ACT_CONTINUE_SCAN:
02188                     (yy_c_buf_p) = (yytext_ptr) + offset;
02189                     break;
02190                 }
02191             }
02192         }
02193 
02194     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02195     *(yy_c_buf_p) = '\0';   /* preserve yytext */
02196     (yy_hold_char) = *++(yy_c_buf_p);
02197 
02198     if ( c == '\n' )
02199            
02200     yylineno++;
02201 ;
02202 
02203     return c;
02204 }
02205 #endif  /* ifndef YY_NO_INPUT */
02206 
02212     void yyrestart  (FILE * input_file )
02213 {
02214     
02215     if ( ! YY_CURRENT_BUFFER ){
02216         yyensure_buffer_stack ();
02217         YY_CURRENT_BUFFER_LVALUE =
02218             yy_create_buffer(yyin,YY_BUF_SIZE );
02219     }
02220 
02221     yy_init_buffer(YY_CURRENT_BUFFER,input_file );
02222     yy_load_buffer_state( );
02223 }
02224 
02229     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02230 {
02231     
02232     /* TODO. We should be able to replace this entire function body
02233      * with
02234      *      yypop_buffer_state();
02235      *      yypush_buffer_state(new_buffer);
02236      */
02237     yyensure_buffer_stack ();
02238     if ( YY_CURRENT_BUFFER == new_buffer )
02239         return;
02240 
02241     if ( YY_CURRENT_BUFFER )
02242         {
02243         /* Flush out information for old buffer. */
02244         *(yy_c_buf_p) = (yy_hold_char);
02245         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02246         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02247         }
02248 
02249     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02250     yy_load_buffer_state( );
02251 
02252     /* We don't actually know whether we did this switch during
02253      * EOF (yywrap()) processing, but the only time this flag
02254      * is looked at is after yywrap() is called, so it's safe
02255      * to go ahead and always set it.
02256      */
02257     (yy_did_buffer_switch_on_eof) = 1;
02258 }
02259 
02260 static void yy_load_buffer_state  (void)
02261 {
02262         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02263     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02264     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02265     (yy_hold_char) = *(yy_c_buf_p);
02266 }
02267 
02274     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
02275 {
02276     YY_BUFFER_STATE b;
02277     
02278     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02279     if ( ! b )
02280         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02281 
02282     b->yy_buf_size = size;
02283 
02284     /* yy_ch_buf has to be 2 characters longer than the size given because
02285      * we need to put in 2 end-of-buffer characters.
02286      */
02287     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
02288     if ( ! b->yy_ch_buf )
02289         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02290 
02291     b->yy_is_our_buffer = 1;
02292 
02293     yy_init_buffer(b,file );
02294 
02295     return b;
02296 }
02297 
02302     void yy_delete_buffer (YY_BUFFER_STATE  b )
02303 {
02304     
02305     if ( ! b )
02306         return;
02307 
02308     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02309         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02310 
02311     if ( b->yy_is_our_buffer )
02312         yyfree((void *) b->yy_ch_buf  );
02313 
02314     yyfree((void *) b  );
02315 }
02316 
02317 #ifndef __cplusplus
02318 extern int isatty (int );
02319 #endif /* __cplusplus */
02320     
02321 /* Initializes or reinitializes a buffer.
02322  * This function is sometimes called more than once on the same buffer,
02323  * such as during a yyrestart() or at EOF.
02324  */
02325     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02326 
02327 {
02328     int oerrno = errno;
02329     
02330     yy_flush_buffer(b );
02331 
02332     b->yy_input_file = file;
02333     b->yy_fill_buffer = 1;
02334 
02335     /* If b is the current buffer, then yy_init_buffer was _probably_
02336      * called from yyrestart() or through yy_get_next_buffer.
02337      * In that case, we don't want to reset the lineno or column.
02338      */
02339     if (b != YY_CURRENT_BUFFER){
02340         b->yy_bs_lineno = 1;
02341         b->yy_bs_column = 0;
02342     }
02343 
02344         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02345     
02346     errno = oerrno;
02347 }
02348 
02353     void yy_flush_buffer (YY_BUFFER_STATE  b )
02354 {
02355         if ( ! b )
02356         return;
02357 
02358     b->yy_n_chars = 0;
02359 
02360     /* We always need two end-of-buffer characters.  The first causes
02361      * a transition to the end-of-buffer state.  The second causes
02362      * a jam in that state.
02363      */
02364     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02365     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02366 
02367     b->yy_buf_pos = &b->yy_ch_buf[0];
02368 
02369     b->yy_at_bol = 1;
02370     b->yy_buffer_status = YY_BUFFER_NEW;
02371 
02372     if ( b == YY_CURRENT_BUFFER )
02373         yy_load_buffer_state( );
02374 }
02375 
02382 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
02383 {
02384         if (new_buffer == NULL)
02385         return;
02386 
02387     yyensure_buffer_stack();
02388 
02389     /* This block is copied from yy_switch_to_buffer. */
02390     if ( YY_CURRENT_BUFFER )
02391         {
02392         /* Flush out information for old buffer. */
02393         *(yy_c_buf_p) = (yy_hold_char);
02394         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02395         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02396         }
02397 
02398     /* Only push if top exists. Otherwise, replace top. */
02399     if (YY_CURRENT_BUFFER)
02400         (yy_buffer_stack_top)++;
02401     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02402 
02403     /* copied from yy_switch_to_buffer. */
02404     yy_load_buffer_state( );
02405     (yy_did_buffer_switch_on_eof) = 1;
02406 }
02407 
02412 void yypop_buffer_state (void)
02413 {
02414         if (!YY_CURRENT_BUFFER)
02415         return;
02416 
02417     yy_delete_buffer(YY_CURRENT_BUFFER );
02418     YY_CURRENT_BUFFER_LVALUE = NULL;
02419     if ((yy_buffer_stack_top) > 0)
02420         --(yy_buffer_stack_top);
02421 
02422     if (YY_CURRENT_BUFFER) {
02423         yy_load_buffer_state( );
02424         (yy_did_buffer_switch_on_eof) = 1;
02425     }
02426 }
02427 
02428 /* Allocates the stack if it does not exist.
02429  *  Guarantees space for at least one push.
02430  */
02431 static void yyensure_buffer_stack (void)
02432 {
02433     int num_to_alloc;
02434     
02435     if (!(yy_buffer_stack)) {
02436 
02437         /* First allocation is just for 2 elements, since we don't know if this
02438          * scanner will even need a stack. We use 2 instead of 1 to avoid an
02439          * immediate realloc on the next call.
02440          */
02441         num_to_alloc = 1;
02442         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
02443                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02444                                 );
02445         if ( ! (yy_buffer_stack) )
02446             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02447                                   
02448         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02449                 
02450         (yy_buffer_stack_max) = num_to_alloc;
02451         (yy_buffer_stack_top) = 0;
02452         return;
02453     }
02454 
02455     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02456 
02457         /* Increase the buffer to prepare for a possible push. */
02458         int grow_size = 8 /* arbitrary grow size */;
02459 
02460         num_to_alloc = (yy_buffer_stack_max) + grow_size;
02461         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
02462                                 ((yy_buffer_stack),
02463                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02464                                 );
02465         if ( ! (yy_buffer_stack) )
02466             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02467 
02468         /* zero only the new slots.*/
02469         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02470         (yy_buffer_stack_max) = num_to_alloc;
02471     }
02472 }
02473 
02480 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
02481 {
02482     YY_BUFFER_STATE b;
02483     
02484     if ( size < 2 ||
02485          base[size-2] != YY_END_OF_BUFFER_CHAR ||
02486          base[size-1] != YY_END_OF_BUFFER_CHAR )
02487         /* They forgot to leave room for the EOB's. */
02488         return 0;
02489 
02490     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02491     if ( ! b )
02492         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
02493 
02494     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
02495     b->yy_buf_pos = b->yy_ch_buf = base;
02496     b->yy_is_our_buffer = 0;
02497     b->yy_input_file = 0;
02498     b->yy_n_chars = b->yy_buf_size;
02499     b->yy_is_interactive = 0;
02500     b->yy_at_bol = 1;
02501     b->yy_fill_buffer = 0;
02502     b->yy_buffer_status = YY_BUFFER_NEW;
02503 
02504     yy_switch_to_buffer(b  );
02505 
02506     return b;
02507 }
02508 
02517 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
02518 {
02519     
02520     return yy_scan_bytes(yystr,strlen(yystr) );
02521 }
02522 
02530 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
02531 {
02532     YY_BUFFER_STATE b;
02533     char *buf;
02534     yy_size_t n;
02535     int i;
02536     
02537     /* Get memory for full buffer, including space for trailing EOB's. */
02538     n = _yybytes_len + 2;
02539     buf = (char *) yyalloc(n  );
02540     if ( ! buf )
02541         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
02542 
02543     for ( i = 0; i < _yybytes_len; ++i )
02544         buf[i] = yybytes[i];
02545 
02546     buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02547 
02548     b = yy_scan_buffer(buf,n );
02549     if ( ! b )
02550         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
02551 
02552     /* It's okay to grow etc. this buffer, and we should throw it
02553      * away when we're done.
02554      */
02555     b->yy_is_our_buffer = 1;
02556 
02557     return b;
02558 }
02559 
02560 #ifndef YY_EXIT_FAILURE
02561 #define YY_EXIT_FAILURE 2
02562 #endif
02563 
02564 static void yy_fatal_error (yyconst char* msg )
02565 {
02566         (void) fprintf( stderr, "%s\n", msg );
02567     exit( YY_EXIT_FAILURE );
02568 }
02569 
02570 /* Redefine yyless() so it works in section 3 code. */
02571 
02572 #undef yyless
02573 #define yyless(n) \
02574     do \
02575         { \
02576         /* Undo effects of setting up yytext. */ \
02577         int yyless_macro_arg = (n); \
02578         YY_LESS_LINENO(yyless_macro_arg);\
02579         yytext[yyleng] = (yy_hold_char); \
02580         (yy_c_buf_p) = yytext + yyless_macro_arg; \
02581         (yy_hold_char) = *(yy_c_buf_p); \
02582         *(yy_c_buf_p) = '\0'; \
02583         yyleng = yyless_macro_arg; \
02584         } \
02585     while ( 0 )
02586 
02587 /* Accessor  methods (get/set functions) to struct members. */
02588 
02592 int yyget_lineno  (void)
02593 {
02594         
02595     return yylineno;
02596 }
02597 
02601 FILE *yyget_in  (void)
02602 {
02603         return yyin;
02604 }
02605 
02609 FILE *yyget_out  (void)
02610 {
02611         return yyout;
02612 }
02613 
02617 int yyget_leng  (void)
02618 {
02619         return yyleng;
02620 }
02621 
02626 char *yyget_text  (void)
02627 {
02628         return yytext;
02629 }
02630 
02635 void yyset_lineno (int  line_number )
02636 {
02637     
02638     yylineno = line_number;
02639 }
02640 
02647 void yyset_in (FILE *  in_str )
02648 {
02649         yyin = in_str ;
02650 }
02651 
02652 void yyset_out (FILE *  out_str )
02653 {
02654         yyout = out_str ;
02655 }
02656 
02657 int yyget_debug  (void)
02658 {
02659         return yy_flex_debug;
02660 }
02661 
02662 void yyset_debug (int  bdebug )
02663 {
02664         yy_flex_debug = bdebug ;
02665 }
02666 
02667 static int yy_init_globals (void)
02668 {
02669         /* Initialization is the same as for the non-reentrant scanner.
02670      * This function is called from yylex_destroy(), so don't allocate here.
02671      */
02672 
02673     /* We do not touch yylineno unless the option is enabled. */
02674     yylineno =  1;
02675     
02676     (yy_buffer_stack) = 0;
02677     (yy_buffer_stack_top) = 0;
02678     (yy_buffer_stack_max) = 0;
02679     (yy_c_buf_p) = (char *) 0;
02680     (yy_init) = 0;
02681     (yy_start) = 0;
02682 
02683 /* Defined in main.c */
02684 #ifdef YY_STDINIT
02685     yyin = stdin;
02686     yyout = stdout;
02687 #else
02688     yyin = (FILE *) 0;
02689     yyout = (FILE *) 0;
02690 #endif
02691 
02692     /* For future reference: Set errno on error, since we are called by
02693      * yylex_init()
02694      */
02695     return 0;
02696 }
02697 
02698 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
02699 int yylex_destroy  (void)
02700 {
02701     
02702     /* Pop the buffer stack, destroying each element. */
02703     while(YY_CURRENT_BUFFER){
02704         yy_delete_buffer(YY_CURRENT_BUFFER  );
02705         YY_CURRENT_BUFFER_LVALUE = NULL;
02706         yypop_buffer_state();
02707     }
02708 
02709     /* Destroy the stack itself. */
02710     yyfree((yy_buffer_stack) );
02711     (yy_buffer_stack) = NULL;
02712 
02713     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02714      * yylex() is called, initialization will occur. */
02715     yy_init_globals( );
02716 
02717     return 0;
02718 }
02719 
02720 /*
02721  * Internal utility routines.
02722  */
02723 
02724 #ifndef yytext_ptr
02725 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02726 {
02727     register int i;
02728     for ( i = 0; i < n; ++i )
02729         s1[i] = s2[i];
02730 }
02731 #endif
02732 
02733 #ifdef YY_NEED_STRLEN
02734 static int yy_flex_strlen (yyconst char * s )
02735 {
02736     register int n;
02737     for ( n = 0; s[n]; ++n )
02738         ;
02739 
02740     return n;
02741 }
02742 #endif
02743 
02744 void *yyalloc (yy_size_t  size )
02745 {
02746     return (void *) malloc( size );
02747 }
02748 
02749 void *yyrealloc  (void * ptr, yy_size_t  size )
02750 {
02751     /* The cast to (char *) in the following accommodates both
02752      * implementations that use char* generic pointers, and those
02753      * that use void* generic pointers.  It works with the latter
02754      * because both ANSI C and C++ allow castless assignment from
02755      * any pointer type to void*, and deal with argument conversions
02756      * as though doing an assignment.
02757      */
02758     return (void *) realloc( (char *) ptr, size );
02759 }
02760 
02761 void yyfree (void * ptr )
02762 {
02763     free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
02764 }
02765 
02766 #define YYTABLES_NAME "yytables"
02767 
02768 #line 203 "parser/faustlexer.l"
02769 
02770 
02771 int yywrap() { return 1; }
02772 
02773