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 #include <unistd.h>
00787 
00788 
00789 
00790 #line 792 "parser/faustlexer.cpp"
00791 
00792 #define INITIAL 0
00793 #define comment 1
00794 #define doc 2
00795 #define lst 3
00796 
00797 #ifndef YY_NO_UNISTD_H
00798 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00799  * down here because we want the user's section 1 to have been scanned first.
00800  * The user has a chance to override it with an option.
00801  */
00802 #include <unistd.h>
00803 #endif
00804 
00805 #ifndef YY_EXTRA_TYPE
00806 #define YY_EXTRA_TYPE void *
00807 #endif
00808 
00809 static int yy_init_globals (void );
00810 
00811 /* Accessor methods to globals.
00812    These are made visible to non-reentrant scanners for convenience. */
00813 
00814 int yylex_destroy (void );
00815 
00816 int yyget_debug (void );
00817 
00818 void yyset_debug (int debug_flag  );
00819 
00820 YY_EXTRA_TYPE yyget_extra (void );
00821 
00822 void yyset_extra (YY_EXTRA_TYPE user_defined  );
00823 
00824 FILE *yyget_in (void );
00825 
00826 void yyset_in  (FILE * in_str  );
00827 
00828 FILE *yyget_out (void );
00829 
00830 void yyset_out  (FILE * out_str  );
00831 
00832 int yyget_leng (void );
00833 
00834 char *yyget_text (void );
00835 
00836 int yyget_lineno (void );
00837 
00838 void yyset_lineno (int line_number  );
00839 
00840 /* Macros after this point can all be overridden by user definitions in
00841  * section 1.
00842  */
00843 
00844 #ifndef YY_SKIP_YYWRAP
00845 #ifdef __cplusplus
00846 extern "C" int yywrap (void );
00847 #else
00848 extern int yywrap (void );
00849 #endif
00850 #endif
00851 
00852     static void yyunput (int c,char *buf_ptr  );
00853     
00854 #ifndef yytext_ptr
00855 static void yy_flex_strncpy (char *,yyconst char *,int );
00856 #endif
00857 
00858 #ifdef YY_NEED_STRLEN
00859 static int yy_flex_strlen (yyconst char * );
00860 #endif
00861 
00862 #ifndef YY_NO_INPUT
00863 
00864 #ifdef __cplusplus
00865 static int yyinput (void );
00866 #else
00867 static int input (void );
00868 #endif
00869 
00870 #endif
00871 
00872 /* Amount of stuff to slurp up with each read. */
00873 #ifndef YY_READ_BUF_SIZE
00874 #ifdef __ia64__
00875 /* On IA-64, the buffer size is 16k, not 8k */
00876 #define YY_READ_BUF_SIZE 16384
00877 #else
00878 #define YY_READ_BUF_SIZE 8192
00879 #endif /* __ia64__ */
00880 #endif
00881 
00882 /* Copy whatever the last rule matched to the standard output. */
00883 #ifndef ECHO
00884 /* This used to be an fputs(), but since the string might contain NUL's,
00885  * we now use fwrite().
00886  */
00887 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
00888 #endif
00889 
00890 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00891  * is returned in "result".
00892  */
00893 #ifndef YY_INPUT
00894 #define YY_INPUT(buf,result,max_size) \
00895     if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00896         { \
00897         int c = '*'; \
00898         size_t n; \
00899         for ( n = 0; n < max_size && \
00900                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00901             buf[n] = (char) c; \
00902         if ( c == '\n' ) \
00903             buf[n++] = (char) c; \
00904         if ( c == EOF && ferror( yyin ) ) \
00905             YY_FATAL_ERROR( "input in flex scanner failed" ); \
00906         result = n; \
00907         } \
00908     else \
00909         { \
00910         errno=0; \
00911         while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00912             { \
00913             if( errno != EINTR) \
00914                 { \
00915                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00916                 break; \
00917                 } \
00918             errno=0; \
00919             clearerr(yyin); \
00920             } \
00921         }\
00922 \
00923 
00924 #endif
00925 
00926 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00927  * we don't want an extra ';' after the "return" because that will cause
00928  * some compilers to complain about unreachable statements.
00929  */
00930 #ifndef yyterminate
00931 #define yyterminate() return YY_NULL
00932 #endif
00933 
00934 /* Number of entries by which start-condition stack grows. */
00935 #ifndef YY_START_STACK_INCR
00936 #define YY_START_STACK_INCR 25
00937 #endif
00938 
00939 /* Report a fatal error. */
00940 #ifndef YY_FATAL_ERROR
00941 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00942 #endif
00943 
00944 /* end tables serialization structures and prototypes */
00945 
00946 /* Default declaration of generated scanner - a define so the user can
00947  * easily add parameters.
00948  */
00949 #ifndef YY_DECL
00950 #define YY_DECL_IS_OURS 1
00951 
00952 extern int yylex (void);
00953 
00954 #define YY_DECL int yylex (void)
00955 #endif /* !YY_DECL */
00956 
00957 /* Code executed at the beginning of each rule, after yytext and yyleng
00958  * have been set up.
00959  */
00960 #ifndef YY_USER_ACTION
00961 #define YY_USER_ACTION
00962 #endif
00963 
00964 /* Code executed at the end of each rule. */
00965 #ifndef YY_BREAK
00966 #define YY_BREAK break;
00967 #endif
00968 
00969 #define YY_RULE_SETUP \
00970     YY_USER_ACTION
00971 
00974 YY_DECL
00975 {
00976     register yy_state_type yy_current_state;
00977     register char *yy_cp, *yy_bp;
00978     register int yy_act;
00979     
00980 #line 25 "parser/faustlexer.l"
00981 
00982 
00983 
00984 #line 986 "parser/faustlexer.cpp"
00985 
00986     if ( !(yy_init) )
00987         {
00988         (yy_init) = 1;
00989 
00990 #ifdef YY_USER_INIT
00991         YY_USER_INIT;
00992 #endif
00993 
00994         if ( ! (yy_start) )
00995             (yy_start) = 1; /* first start state */
00996 
00997         if ( ! yyin )
00998             yyin = stdin;
00999 
01000         if ( ! yyout )
01001             yyout = stdout;
01002 
01003         if ( ! YY_CURRENT_BUFFER ) {
01004             yyensure_buffer_stack ();
01005             YY_CURRENT_BUFFER_LVALUE =
01006                 yy_create_buffer(yyin,YY_BUF_SIZE );
01007         }
01008 
01009         yy_load_buffer_state( );
01010         }
01011 
01012     while ( 1 )     /* loops until end-of-file is reached */
01013         {
01014         yy_cp = (yy_c_buf_p);
01015 
01016         /* Support of yytext. */
01017         *yy_cp = (yy_hold_char);
01018 
01019         /* yy_bp points to the position in yy_ch_buf of the start of
01020          * the current run.
01021          */
01022         yy_bp = yy_cp;
01023 
01024         yy_current_state = (yy_start);
01025 yy_match:
01026         do
01027             {
01028             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01029             if ( yy_accept[yy_current_state] )
01030                 {
01031                 (yy_last_accepting_state) = yy_current_state;
01032                 (yy_last_accepting_cpos) = yy_cp;
01033                 }
01034             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01035                 {
01036                 yy_current_state = (int) yy_def[yy_current_state];
01037                 if ( yy_current_state >= 458 )
01038                     yy_c = yy_meta[(unsigned int) yy_c];
01039                 }
01040             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01041             ++yy_cp;
01042             }
01043         while ( yy_base[yy_current_state] != 604 );
01044 
01045 yy_find_action:
01046         yy_act = yy_accept[yy_current_state];
01047         if ( yy_act == 0 )
01048             { /* have to back up */
01049             yy_cp = (yy_last_accepting_cpos);
01050             yy_current_state = (yy_last_accepting_state);
01051             yy_act = yy_accept[yy_current_state];
01052             }
01053 
01054         YY_DO_BEFORE_ACTION;
01055 
01056         if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01057             {
01058             int yyl;
01059             for ( yyl = 0; yyl < yyleng; ++yyl )
01060                 if ( yytext[yyl] == '\n' )
01061                        
01062     yylineno++;
01063 ;
01064             }
01065 
01066 do_action:  /* This label is used only to access EOF actions. */
01067 
01068         switch ( yy_act )
01069     { /* beginning of action switch */
01070             case 0: /* must back up */
01071             /* undo the effects of YY_DO_BEFORE_ACTION */
01072             *yy_cp = (yy_hold_char);
01073             yy_cp = (yy_last_accepting_cpos);
01074             yy_current_state = (yy_last_accepting_state);
01075             goto yy_find_action;
01076 
01077 case 1:
01078 YY_RULE_SETUP
01079 #line 28 "parser/faustlexer.l"
01080 BEGIN(comment);
01081     YY_BREAK
01082 case 2:
01083 YY_RULE_SETUP
01084 #line 29 "parser/faustlexer.l"
01085 /* eat anything that's not a '*'        */
01086     YY_BREAK
01087 case 3:
01088 YY_RULE_SETUP
01089 #line 30 "parser/faustlexer.l"
01090 /* eat up '*'s not followed by '/'s     */
01091     YY_BREAK
01092 case 4:
01093 /* rule 4 can match eol */
01094 YY_RULE_SETUP
01095 #line 31 "parser/faustlexer.l"
01096 /* no need to increment yylineno here   */
01097     YY_BREAK
01098 case 5:
01099 /* rule 5 can match eol */
01100 YY_RULE_SETUP
01101 #line 32 "parser/faustlexer.l"
01102 /* no need to increment yylineno here   */
01103     YY_BREAK
01104 case 6:
01105 YY_RULE_SETUP
01106 #line 33 "parser/faustlexer.l"
01107 /* no need to increment yylineno here   */
01108     YY_BREAK
01109 case 7:
01110 YY_RULE_SETUP
01111 #line 34 "parser/faustlexer.l"
01112 BEGIN(INITIAL);
01113     YY_BREAK
01114 case 8:
01115 YY_RULE_SETUP
01116 #line 36 "parser/faustlexer.l"
01117 { BEGIN(doc); return BDOC; }
01118     YY_BREAK
01119 case 9:
01120 YY_RULE_SETUP
01121 #line 37 "parser/faustlexer.l"
01122 return DOCCHAR; /* char by char, may be slow ?? */
01123     YY_BREAK
01124 case 10:
01125 /* rule 10 can match eol */
01126 YY_RULE_SETUP
01127 #line 38 "parser/faustlexer.l"
01128 return DOCCHAR; /* keep newline chars */
01129     YY_BREAK
01130 case 11:
01131 YY_RULE_SETUP
01132 #line 39 "parser/faustlexer.l"
01133 return NOTICE;  /* autoclosing tag */
01134     YY_BREAK
01135 case 12:
01136 YY_RULE_SETUP
01137 #line 40 "parser/faustlexer.l"
01138 return NOTICE;  /* autoclosing tag */
01139     YY_BREAK
01140 case 13:
01141 YY_RULE_SETUP
01142 #line 41 "parser/faustlexer.l"
01143 { BEGIN(lst);       return BLST; } /* autoclosing tag */
01144     YY_BREAK
01145 case 14:
01146 YY_RULE_SETUP
01147 #line 42 "parser/faustlexer.l"
01148 { BEGIN(INITIAL);   return BEQN; }
01149     YY_BREAK
01150 case 15:
01151 YY_RULE_SETUP
01152 #line 43 "parser/faustlexer.l"
01153 { BEGIN(doc);       return EEQN; }
01154     YY_BREAK
01155 case 16:
01156 YY_RULE_SETUP
01157 #line 44 "parser/faustlexer.l"
01158 { BEGIN(INITIAL);   return BDGM; }
01159     YY_BREAK
01160 case 17:
01161 YY_RULE_SETUP
01162 #line 45 "parser/faustlexer.l"
01163 { BEGIN(doc);       return EDGM; }
01164     YY_BREAK
01165 case 18:
01166 YY_RULE_SETUP
01167 #line 46 "parser/faustlexer.l"
01168 { BEGIN(INITIAL);   return BMETADATA; }
01169     YY_BREAK
01170 case 19:
01171 YY_RULE_SETUP
01172 #line 47 "parser/faustlexer.l"
01173 { BEGIN(doc);       return EMETADATA; }
01174     YY_BREAK
01175 case 20:
01176 YY_RULE_SETUP
01177 #line 48 "parser/faustlexer.l"
01178 { BEGIN(INITIAL);   return EDOC; }
01179     YY_BREAK
01180 case 21:
01181 YY_RULE_SETUP
01182 #line 50 "parser/faustlexer.l"
01183 return LSTTRUE;
01184     YY_BREAK
01185 case 22:
01186 YY_RULE_SETUP
01187 #line 51 "parser/faustlexer.l"
01188 return LSTFALSE;
01189     YY_BREAK
01190 case 23:
01191 YY_RULE_SETUP
01192 #line 52 "parser/faustlexer.l"
01193 return LSTDEPENDENCIES;
01194     YY_BREAK
01195 case 24:
01196 YY_RULE_SETUP
01197 #line 53 "parser/faustlexer.l"
01198 return LSTMDOCTAGS;
01199     YY_BREAK
01200 case 25:
01201 YY_RULE_SETUP
01202 #line 54 "parser/faustlexer.l"
01203 return LSTDISTRIBUTED;
01204     YY_BREAK
01205 case 26:
01206 YY_RULE_SETUP
01207 #line 55 "parser/faustlexer.l"
01208 return LSTEQ;
01209     YY_BREAK
01210 case 27:
01211 YY_RULE_SETUP
01212 #line 56 "parser/faustlexer.l"
01213 return LSTQ;
01214     YY_BREAK
01215 case 28:
01216 YY_RULE_SETUP
01217 #line 57 "parser/faustlexer.l"
01218 { BEGIN(doc);   return ELST; }
01219     YY_BREAK
01220 case 29:
01221 YY_RULE_SETUP
01222 #line 60 "parser/faustlexer.l"
01223 return INT;
01224     YY_BREAK
01225 case 30:
01226 YY_RULE_SETUP
01227 #line 63 "parser/faustlexer.l"
01228 return FLOAT;
01229     YY_BREAK
01230 case 31:
01231 YY_RULE_SETUP
01232 #line 64 "parser/faustlexer.l"
01233 return FLOAT;
01234     YY_BREAK
01235 case 32:
01236 YY_RULE_SETUP
01237 #line 65 "parser/faustlexer.l"
01238 return FLOAT;
01239     YY_BREAK
01240 case 33:
01241 YY_RULE_SETUP
01242 #line 66 "parser/faustlexer.l"
01243 return FLOAT;
01244     YY_BREAK
01245 case 34:
01246 YY_RULE_SETUP
01247 #line 67 "parser/faustlexer.l"
01248 return FLOAT;
01249     YY_BREAK
01250 case 35:
01251 YY_RULE_SETUP
01252 #line 70 "parser/faustlexer.l"
01253 return SEQ;
01254     YY_BREAK
01255 case 36:
01256 YY_RULE_SETUP
01257 #line 71 "parser/faustlexer.l"
01258 return PAR;
01259     YY_BREAK
01260 case 37:
01261 YY_RULE_SETUP
01262 #line 72 "parser/faustlexer.l"
01263 return SPLIT;
01264     YY_BREAK
01265 case 38:
01266 YY_RULE_SETUP
01267 #line 73 "parser/faustlexer.l"
01268 return MIX;
01269     YY_BREAK
01270 case 39:
01271 YY_RULE_SETUP
01272 #line 74 "parser/faustlexer.l"
01273 return MIX;
01274     YY_BREAK
01275 case 40:
01276 YY_RULE_SETUP
01277 #line 75 "parser/faustlexer.l"
01278 return REC;
01279     YY_BREAK
01280 case 41:
01281 YY_RULE_SETUP
01282 #line 77 "parser/faustlexer.l"
01283 return ADD;
01284     YY_BREAK
01285 case 42:
01286 YY_RULE_SETUP
01287 #line 78 "parser/faustlexer.l"
01288 return SUB;
01289     YY_BREAK
01290 case 43:
01291 YY_RULE_SETUP
01292 #line 79 "parser/faustlexer.l"
01293 return MUL;
01294     YY_BREAK
01295 case 44:
01296 YY_RULE_SETUP
01297 #line 80 "parser/faustlexer.l"
01298 return DIV;
01299     YY_BREAK
01300 case 45:
01301 YY_RULE_SETUP
01302 #line 81 "parser/faustlexer.l"
01303 return MOD;
01304     YY_BREAK
01305 case 46:
01306 YY_RULE_SETUP
01307 #line 82 "parser/faustlexer.l"
01308 return FDELAY;
01309     YY_BREAK
01310 case 47:
01311 YY_RULE_SETUP
01312 #line 83 "parser/faustlexer.l"
01313 return DELAY1;
01314     YY_BREAK
01315 case 48:
01316 YY_RULE_SETUP
01317 #line 85 "parser/faustlexer.l"
01318 return AND;
01319     YY_BREAK
01320 case 49:
01321 YY_RULE_SETUP
01322 #line 86 "parser/faustlexer.l"
01323 return OR;
01324     YY_BREAK
01325 case 50:
01326 YY_RULE_SETUP
01327 #line 87 "parser/faustlexer.l"
01328 return XOR;
01329     YY_BREAK
01330 case 51:
01331 YY_RULE_SETUP
01332 #line 89 "parser/faustlexer.l"
01333 return LSH;
01334     YY_BREAK
01335 case 52:
01336 YY_RULE_SETUP
01337 #line 90 "parser/faustlexer.l"
01338 return RSH;
01339     YY_BREAK
01340 case 53:
01341 YY_RULE_SETUP
01342 #line 92 "parser/faustlexer.l"
01343 return LT;
01344     YY_BREAK
01345 case 54:
01346 YY_RULE_SETUP
01347 #line 93 "parser/faustlexer.l"
01348 return LE;
01349     YY_BREAK
01350 case 55:
01351 YY_RULE_SETUP
01352 #line 94 "parser/faustlexer.l"
01353 return GT;
01354     YY_BREAK
01355 case 56:
01356 YY_RULE_SETUP
01357 #line 95 "parser/faustlexer.l"
01358 return GE;
01359     YY_BREAK
01360 case 57:
01361 YY_RULE_SETUP
01362 #line 96 "parser/faustlexer.l"
01363 return EQ;
01364     YY_BREAK
01365 case 58:
01366 YY_RULE_SETUP
01367 #line 97 "parser/faustlexer.l"
01368 return NE;
01369     YY_BREAK
01370 case 59:
01371 YY_RULE_SETUP
01372 #line 99 "parser/faustlexer.l"
01373 return WIRE;
01374     YY_BREAK
01375 case 60:
01376 YY_RULE_SETUP
01377 #line 100 "parser/faustlexer.l"
01378 return CUT;
01379     YY_BREAK
01380 case 61:
01381 YY_RULE_SETUP
01382 #line 102 "parser/faustlexer.l"
01383 return ENDDEF;
01384     YY_BREAK
01385 case 62:
01386 YY_RULE_SETUP
01387 #line 103 "parser/faustlexer.l"
01388 return DEF;
01389     YY_BREAK
01390 case 63:
01391 YY_RULE_SETUP
01392 #line 104 "parser/faustlexer.l"
01393 return LPAR;
01394     YY_BREAK
01395 case 64:
01396 YY_RULE_SETUP
01397 #line 105 "parser/faustlexer.l"
01398 return RPAR;
01399     YY_BREAK
01400 case 65:
01401 YY_RULE_SETUP
01402 #line 106 "parser/faustlexer.l"
01403 return LBRAQ;
01404     YY_BREAK
01405 case 66:
01406 YY_RULE_SETUP
01407 #line 107 "parser/faustlexer.l"
01408 return RBRAQ;
01409     YY_BREAK
01410 case 67:
01411 YY_RULE_SETUP
01412 #line 108 "parser/faustlexer.l"
01413 return LCROC;
01414     YY_BREAK
01415 case 68:
01416 YY_RULE_SETUP
01417 #line 109 "parser/faustlexer.l"
01418 return RCROC;
01419     YY_BREAK
01420 case 69:
01421 YY_RULE_SETUP
01422 #line 111 "parser/faustlexer.l"
01423 return LAMBDA;
01424     YY_BREAK
01425 case 70:
01426 YY_RULE_SETUP
01427 #line 112 "parser/faustlexer.l"
01428 return DOT;
01429     YY_BREAK
01430 case 71:
01431 YY_RULE_SETUP
01432 #line 113 "parser/faustlexer.l"
01433 return WITH;
01434     YY_BREAK
01435 case 72:
01436 YY_RULE_SETUP
01437 #line 115 "parser/faustlexer.l"
01438 return MEM;
01439     YY_BREAK
01440 case 73:
01441 YY_RULE_SETUP
01442 #line 116 "parser/faustlexer.l"
01443 return PREFIX;
01444     YY_BREAK
01445 case 74:
01446 YY_RULE_SETUP
01447 #line 118 "parser/faustlexer.l"
01448 return INTCAST;
01449     YY_BREAK
01450 case 75:
01451 YY_RULE_SETUP
01452 #line 119 "parser/faustlexer.l"
01453 return FLOATCAST;
01454     YY_BREAK
01455 case 76:
01456 YY_RULE_SETUP
01457 #line 121 "parser/faustlexer.l"
01458 return RDTBL;
01459     YY_BREAK
01460 case 77:
01461 YY_RULE_SETUP
01462 #line 122 "parser/faustlexer.l"
01463 return RWTBL;
01464     YY_BREAK
01465 case 78:
01466 YY_RULE_SETUP
01467 #line 124 "parser/faustlexer.l"
01468 return SELECT2;
01469     YY_BREAK
01470 case 79:
01471 YY_RULE_SETUP
01472 #line 125 "parser/faustlexer.l"
01473 return SELECT3;
01474     YY_BREAK
01475 case 80:
01476 YY_RULE_SETUP
01477 #line 127 "parser/faustlexer.l"
01478 return FFUNCTION; 
01479     YY_BREAK
01480 case 81:
01481 YY_RULE_SETUP
01482 #line 128 "parser/faustlexer.l"
01483 return FCONSTANT; 
01484     YY_BREAK
01485 case 82:
01486 YY_RULE_SETUP
01487 #line 129 "parser/faustlexer.l"
01488 return FVARIABLE; 
01489     YY_BREAK
01490 case 83:
01491 YY_RULE_SETUP
01492 #line 131 "parser/faustlexer.l"
01493 return BUTTON;
01494     YY_BREAK
01495 case 84:
01496 YY_RULE_SETUP
01497 #line 132 "parser/faustlexer.l"
01498 return CHECKBOX;
01499     YY_BREAK
01500 case 85:
01501 YY_RULE_SETUP
01502 #line 133 "parser/faustlexer.l"
01503 return VSLIDER;
01504     YY_BREAK
01505 case 86:
01506 YY_RULE_SETUP
01507 #line 134 "parser/faustlexer.l"
01508 return HSLIDER;
01509     YY_BREAK
01510 case 87:
01511 YY_RULE_SETUP
01512 #line 135 "parser/faustlexer.l"
01513 return NENTRY;
01514     YY_BREAK
01515 case 88:
01516 YY_RULE_SETUP
01517 #line 136 "parser/faustlexer.l"
01518 return VGROUP;
01519     YY_BREAK
01520 case 89:
01521 YY_RULE_SETUP
01522 #line 137 "parser/faustlexer.l"
01523 return HGROUP;
01524     YY_BREAK
01525 case 90:
01526 YY_RULE_SETUP
01527 #line 138 "parser/faustlexer.l"
01528 return TGROUP;
01529     YY_BREAK
01530 case 91:
01531 YY_RULE_SETUP
01532 #line 139 "parser/faustlexer.l"
01533 return VBARGRAPH;
01534     YY_BREAK
01535 case 92:
01536 YY_RULE_SETUP
01537 #line 140 "parser/faustlexer.l"
01538 return HBARGRAPH;
01539     YY_BREAK
01540 case 93:
01541 YY_RULE_SETUP
01542 #line 141 "parser/faustlexer.l"
01543 return ATTACH;
01544     YY_BREAK
01545 case 94:
01546 YY_RULE_SETUP
01547 #line 143 "parser/faustlexer.l"
01548 return ACOS;
01549     YY_BREAK
01550 case 95:
01551 YY_RULE_SETUP
01552 #line 144 "parser/faustlexer.l"
01553 return ASIN;
01554     YY_BREAK
01555 case 96:
01556 YY_RULE_SETUP
01557 #line 145 "parser/faustlexer.l"
01558 return ATAN;
01559     YY_BREAK
01560 case 97:
01561 YY_RULE_SETUP
01562 #line 146 "parser/faustlexer.l"
01563 return ATAN2;
01564     YY_BREAK
01565 case 98:
01566 YY_RULE_SETUP
01567 #line 148 "parser/faustlexer.l"
01568 return COS;
01569     YY_BREAK
01570 case 99:
01571 YY_RULE_SETUP
01572 #line 149 "parser/faustlexer.l"
01573 return SIN;
01574     YY_BREAK
01575 case 100:
01576 YY_RULE_SETUP
01577 #line 150 "parser/faustlexer.l"
01578 return TAN;
01579     YY_BREAK
01580 case 101:
01581 YY_RULE_SETUP
01582 #line 152 "parser/faustlexer.l"
01583 return EXP;
01584     YY_BREAK
01585 case 102:
01586 YY_RULE_SETUP
01587 #line 153 "parser/faustlexer.l"
01588 return LOG;
01589     YY_BREAK
01590 case 103:
01591 YY_RULE_SETUP
01592 #line 154 "parser/faustlexer.l"
01593 return LOG10;
01594     YY_BREAK
01595 case 104:
01596 YY_RULE_SETUP
01597 #line 155 "parser/faustlexer.l"
01598 return POWOP;
01599     YY_BREAK
01600 case 105:
01601 YY_RULE_SETUP
01602 #line 156 "parser/faustlexer.l"
01603 return POWFUN;
01604     YY_BREAK
01605 case 106:
01606 YY_RULE_SETUP
01607 #line 157 "parser/faustlexer.l"
01608 return SQRT;
01609     YY_BREAK
01610 case 107:
01611 YY_RULE_SETUP
01612 #line 159 "parser/faustlexer.l"
01613 return ABS;
01614     YY_BREAK
01615 case 108:
01616 YY_RULE_SETUP
01617 #line 160 "parser/faustlexer.l"
01618 return MIN;
01619     YY_BREAK
01620 case 109:
01621 YY_RULE_SETUP
01622 #line 161 "parser/faustlexer.l"
01623 return MAX;
01624     YY_BREAK
01625 case 110:
01626 YY_RULE_SETUP
01627 #line 163 "parser/faustlexer.l"
01628 return FMOD;
01629     YY_BREAK
01630 case 111:
01631 YY_RULE_SETUP
01632 #line 164 "parser/faustlexer.l"
01633 return REMAINDER;
01634     YY_BREAK
01635 case 112:
01636 YY_RULE_SETUP
01637 #line 166 "parser/faustlexer.l"
01638 return FLOOR;
01639     YY_BREAK
01640 case 113:
01641 YY_RULE_SETUP
01642 #line 167 "parser/faustlexer.l"
01643 return CEIL;
01644     YY_BREAK
01645 case 114:
01646 YY_RULE_SETUP
01647 #line 168 "parser/faustlexer.l"
01648 return RINT;
01649     YY_BREAK
01650 case 115:
01651 YY_RULE_SETUP
01652 #line 170 "parser/faustlexer.l"
01653 return ISEQ;
01654     YY_BREAK
01655 case 116:
01656 YY_RULE_SETUP
01657 #line 171 "parser/faustlexer.l"
01658 return IPAR;
01659     YY_BREAK
01660 case 117:
01661 YY_RULE_SETUP
01662 #line 172 "parser/faustlexer.l"
01663 return ISUM;
01664     YY_BREAK
01665 case 118:
01666 YY_RULE_SETUP
01667 #line 173 "parser/faustlexer.l"
01668 return IPROD;
01669     YY_BREAK
01670 case 119:
01671 YY_RULE_SETUP
01672 #line 175 "parser/faustlexer.l"
01673 return IMPORT;
01674     YY_BREAK
01675 case 120:
01676 YY_RULE_SETUP
01677 #line 176 "parser/faustlexer.l"
01678 return COMPONENT;
01679     YY_BREAK
01680 case 121:
01681 YY_RULE_SETUP
01682 #line 177 "parser/faustlexer.l"
01683 return LIBRARY;
01684     YY_BREAK
01685 case 122:
01686 YY_RULE_SETUP
01687 #line 178 "parser/faustlexer.l"
01688 return ENVIRONMENT;
01689     YY_BREAK
01690 case 123:
01691 YY_RULE_SETUP
01692 #line 180 "parser/faustlexer.l"
01693 return DECLARE;
01694     YY_BREAK
01695 case 124:
01696 YY_RULE_SETUP
01697 #line 182 "parser/faustlexer.l"
01698 return CASE;
01699     YY_BREAK
01700 case 125:
01701 YY_RULE_SETUP
01702 #line 183 "parser/faustlexer.l"
01703 return ARROW;
01704     YY_BREAK
01705 case 126:
01706 YY_RULE_SETUP
01707 #line 185 "parser/faustlexer.l"
01708 return IDENT;
01709     YY_BREAK
01710 case 127:
01711 YY_RULE_SETUP
01712 #line 186 "parser/faustlexer.l"
01713 return IDENT;
01714     YY_BREAK
01715 case 128:
01716 /* rule 128 can match eol */
01717 YY_RULE_SETUP
01718 #line 188 "parser/faustlexer.l"
01719 return STRING;
01720     YY_BREAK
01721 case 129:
01722 YY_RULE_SETUP
01723 #line 190 "parser/faustlexer.l"
01724 return FSTRING;
01725     YY_BREAK
01726 case 130:
01727 YY_RULE_SETUP
01728 #line 191 "parser/faustlexer.l"
01729 return FSTRING;
01730     YY_BREAK
01731 case 131:
01732 YY_RULE_SETUP
01733 #line 194 "parser/faustlexer.l"
01734 /* eat up one-line comments */
01735     YY_BREAK
01736 case 132:
01737 /* rule 132 can match eol */
01738 YY_RULE_SETUP
01739 #line 196 "parser/faustlexer.l"
01740 /* eat up whitespace */
01741     YY_BREAK
01742 case YY_STATE_EOF(INITIAL):
01743 case YY_STATE_EOF(comment):
01744 case YY_STATE_EOF(doc):
01745 case YY_STATE_EOF(lst):
01746 #line 198 "parser/faustlexer.l"
01747 yyterminate();
01748     YY_BREAK
01749 case 133:
01750 YY_RULE_SETUP
01751 #line 200 "parser/faustlexer.l"
01752 printf("extra text is : %s\n", yytext); return EXTRA;
01753     YY_BREAK
01754 case 134:
01755 YY_RULE_SETUP
01756 #line 203 "parser/faustlexer.l"
01757 ECHO;
01758     YY_BREAK
01759 #line 1761 "parser/faustlexer.cpp"
01760 
01761     case YY_END_OF_BUFFER:
01762         {
01763         /* Amount of text matched not including the EOB char. */
01764         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01765 
01766         /* Undo the effects of YY_DO_BEFORE_ACTION. */
01767         *yy_cp = (yy_hold_char);
01768         YY_RESTORE_YY_MORE_OFFSET
01769 
01770         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01771             {
01772             /* We're scanning a new file or input source.  It's
01773              * possible that this happened because the user
01774              * just pointed yyin at a new source and called
01775              * yylex().  If so, then we have to assure
01776              * consistency between YY_CURRENT_BUFFER and our
01777              * globals.  Here is the right place to do so, because
01778              * this is the first action (other than possibly a
01779              * back-up) that will match for the new input source.
01780              */
01781             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01782             YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01783             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01784             }
01785 
01786         /* Note that here we test for yy_c_buf_p "<=" to the position
01787          * of the first EOB in the buffer, since yy_c_buf_p will
01788          * already have been incremented past the NUL character
01789          * (since all states make transitions on EOB to the
01790          * end-of-buffer state).  Contrast this with the test
01791          * in input().
01792          */
01793         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01794             { /* This was really a NUL. */
01795             yy_state_type yy_next_state;
01796 
01797             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01798 
01799             yy_current_state = yy_get_previous_state(  );
01800 
01801             /* Okay, we're now positioned to make the NUL
01802              * transition.  We couldn't have
01803              * yy_get_previous_state() go ahead and do it
01804              * for us because it doesn't know how to deal
01805              * with the possibility of jamming (and we don't
01806              * want to build jamming into it because then it
01807              * will run more slowly).
01808              */
01809 
01810             yy_next_state = yy_try_NUL_trans( yy_current_state );
01811 
01812             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01813 
01814             if ( yy_next_state )
01815                 {
01816                 /* Consume the NUL. */
01817                 yy_cp = ++(yy_c_buf_p);
01818                 yy_current_state = yy_next_state;
01819                 goto yy_match;
01820                 }
01821 
01822             else
01823                 {
01824                 yy_cp = (yy_c_buf_p);
01825                 goto yy_find_action;
01826                 }
01827             }
01828 
01829         else switch ( yy_get_next_buffer(  ) )
01830             {
01831             case EOB_ACT_END_OF_FILE:
01832                 {
01833                 (yy_did_buffer_switch_on_eof) = 0;
01834 
01835                 if ( yywrap( ) )
01836                     {
01837                     /* Note: because we've taken care in
01838                      * yy_get_next_buffer() to have set up
01839                      * yytext, we can now set up
01840                      * yy_c_buf_p so that if some total
01841                      * hoser (like flex itself) wants to
01842                      * call the scanner after we return the
01843                      * YY_NULL, it'll still work - another
01844                      * YY_NULL will get returned.
01845                      */
01846                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01847 
01848                     yy_act = YY_STATE_EOF(YY_START);
01849                     goto do_action;
01850                     }
01851 
01852                 else
01853                     {
01854                     if ( ! (yy_did_buffer_switch_on_eof) )
01855                         YY_NEW_FILE;
01856                     }
01857                 break;
01858                 }
01859 
01860             case EOB_ACT_CONTINUE_SCAN:
01861                 (yy_c_buf_p) =
01862                     (yytext_ptr) + yy_amount_of_matched_text;
01863 
01864                 yy_current_state = yy_get_previous_state(  );
01865 
01866                 yy_cp = (yy_c_buf_p);
01867                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01868                 goto yy_match;
01869 
01870             case EOB_ACT_LAST_MATCH:
01871                 (yy_c_buf_p) =
01872                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01873 
01874                 yy_current_state = yy_get_previous_state(  );
01875 
01876                 yy_cp = (yy_c_buf_p);
01877                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01878                 goto yy_find_action;
01879             }
01880         break;
01881         }
01882 
01883     default:
01884         YY_FATAL_ERROR(
01885             "fatal flex scanner internal error--no action found" );
01886     } /* end of action switch */
01887         } /* end of scanning one token */
01888 } /* end of yylex */
01889 
01890 /* yy_get_next_buffer - try to read in a new buffer
01891  *
01892  * Returns a code representing an action:
01893  *  EOB_ACT_LAST_MATCH -
01894  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01895  *  EOB_ACT_END_OF_FILE - end of file
01896  */
01897 static int yy_get_next_buffer (void)
01898 {
01899         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01900     register char *source = (yytext_ptr);
01901     register int number_to_move, i;
01902     int ret_val;
01903 
01904     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01905         YY_FATAL_ERROR(
01906         "fatal flex scanner internal error--end of buffer missed" );
01907 
01908     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01909         { /* Don't try to fill the buffer, so this is an EOF. */
01910         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01911             {
01912             /* We matched a single character, the EOB, so
01913              * treat this as a final EOF.
01914              */
01915             return EOB_ACT_END_OF_FILE;
01916             }
01917 
01918         else
01919             {
01920             /* We matched some text prior to the EOB, first
01921              * process it.
01922              */
01923             return EOB_ACT_LAST_MATCH;
01924             }
01925         }
01926 
01927     /* Try to read more data. */
01928 
01929     /* First move last chars to start of buffer. */
01930     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01931 
01932     for ( i = 0; i < number_to_move; ++i )
01933         *(dest++) = *(source++);
01934 
01935     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01936         /* don't do the read, it's not guaranteed to return an EOF,
01937          * just force an EOF
01938          */
01939         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
01940 
01941     else
01942         {
01943             int num_to_read =
01944             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01945 
01946         while ( num_to_read <= 0 )
01947             { /* Not enough room in the buffer - grow it. */
01948 
01949             /* just a shorter name for the current buffer */
01950             YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
01951 
01952             int yy_c_buf_p_offset =
01953                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
01954 
01955             if ( b->yy_is_our_buffer )
01956                 {
01957                 int new_size = b->yy_buf_size * 2;
01958 
01959                 if ( new_size <= 0 )
01960                     b->yy_buf_size += b->yy_buf_size / 8;
01961                 else
01962                     b->yy_buf_size *= 2;
01963 
01964                 b->yy_ch_buf = (char *)
01965                     /* Include room in for 2 EOB chars. */
01966                     yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
01967                 }
01968             else
01969                 /* Can't grow it, we don't own it. */
01970                 b->yy_ch_buf = 0;
01971 
01972             if ( ! b->yy_ch_buf )
01973                 YY_FATAL_ERROR(
01974                 "fatal error - scanner input buffer overflow" );
01975 
01976             (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
01977 
01978             num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01979                         number_to_move - 1;
01980 
01981             }
01982 
01983         if ( num_to_read > YY_READ_BUF_SIZE )
01984             num_to_read = YY_READ_BUF_SIZE;
01985 
01986         /* Read in more data. */
01987         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01988             (yy_n_chars), (size_t) num_to_read );
01989 
01990         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01991         }
01992 
01993     if ( (yy_n_chars) == 0 )
01994         {
01995         if ( number_to_move == YY_MORE_ADJ )
01996             {
01997             ret_val = EOB_ACT_END_OF_FILE;
01998             yyrestart(yyin  );
01999             }
02000 
02001         else
02002             {
02003             ret_val = EOB_ACT_LAST_MATCH;
02004             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02005                 YY_BUFFER_EOF_PENDING;
02006             }
02007         }
02008 
02009     else
02010         ret_val = EOB_ACT_CONTINUE_SCAN;
02011 
02012     if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02013         /* Extend the array by 50%, plus the number we really need. */
02014         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
02015         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
02016         if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02017             YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02018     }
02019 
02020     (yy_n_chars) += number_to_move;
02021     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02022     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02023 
02024     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02025 
02026     return ret_val;
02027 }
02028 
02029 /* yy_get_previous_state - get the state just before the EOB char was reached */
02030 
02031     static yy_state_type yy_get_previous_state (void)
02032 {
02033     register yy_state_type yy_current_state;
02034     register char *yy_cp;
02035     
02036     yy_current_state = (yy_start);
02037 
02038     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02039         {
02040         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02041         if ( yy_accept[yy_current_state] )
02042             {
02043             (yy_last_accepting_state) = yy_current_state;
02044             (yy_last_accepting_cpos) = yy_cp;
02045             }
02046         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02047             {
02048             yy_current_state = (int) yy_def[yy_current_state];
02049             if ( yy_current_state >= 458 )
02050                 yy_c = yy_meta[(unsigned int) yy_c];
02051             }
02052         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02053         }
02054 
02055     return yy_current_state;
02056 }
02057 
02058 /* yy_try_NUL_trans - try to make a transition on the NUL character
02059  *
02060  * synopsis
02061  *  next_state = yy_try_NUL_trans( current_state );
02062  */
02063     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02064 {
02065     register int yy_is_jam;
02066         register char *yy_cp = (yy_c_buf_p);
02067 
02068     register YY_CHAR yy_c = 1;
02069     if ( yy_accept[yy_current_state] )
02070         {
02071         (yy_last_accepting_state) = yy_current_state;
02072         (yy_last_accepting_cpos) = yy_cp;
02073         }
02074     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02075         {
02076         yy_current_state = (int) yy_def[yy_current_state];
02077         if ( yy_current_state >= 458 )
02078             yy_c = yy_meta[(unsigned int) yy_c];
02079         }
02080     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02081     yy_is_jam = (yy_current_state == 457);
02082 
02083     return yy_is_jam ? 0 : yy_current_state;
02084 }
02085 
02086     static void yyunput (int c, register char * yy_bp )
02087 {
02088     register char *yy_cp;
02089     
02090     yy_cp = (yy_c_buf_p);
02091 
02092     /* undo effects of setting up yytext */
02093     *yy_cp = (yy_hold_char);
02094 
02095     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02096         { /* need to shift things up to make room */
02097         /* +2 for EOB chars. */
02098         register int number_to_move = (yy_n_chars) + 2;
02099         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02100                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02101         register char *source =
02102                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02103 
02104         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02105             *--dest = *--source;
02106 
02107         yy_cp += (int) (dest - source);
02108         yy_bp += (int) (dest - source);
02109         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02110             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02111 
02112         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02113             YY_FATAL_ERROR( "flex scanner push-back overflow" );
02114         }
02115 
02116     *--yy_cp = (char) c;
02117 
02118     if ( c == '\n' ){
02119         --yylineno;
02120     }
02121 
02122     (yytext_ptr) = yy_bp;
02123     (yy_hold_char) = *yy_cp;
02124     (yy_c_buf_p) = yy_cp;
02125 }
02126 
02127 #ifndef YY_NO_INPUT
02128 #ifdef __cplusplus
02129     static int yyinput (void)
02130 #else
02131     static int input  (void)
02132 #endif
02133 
02134 {
02135     int c;
02136     
02137     *(yy_c_buf_p) = (yy_hold_char);
02138 
02139     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02140         {
02141         /* yy_c_buf_p now points to the character we want to return.
02142          * If this occurs *before* the EOB characters, then it's a
02143          * valid NUL; if not, then we've hit the end of the buffer.
02144          */
02145         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02146             /* This was really a NUL. */
02147             *(yy_c_buf_p) = '\0';
02148 
02149         else
02150             { /* need more input */
02151             int offset = (yy_c_buf_p) - (yytext_ptr);
02152             ++(yy_c_buf_p);
02153 
02154             switch ( yy_get_next_buffer(  ) )
02155                 {
02156                 case EOB_ACT_LAST_MATCH:
02157                     /* This happens because yy_g_n_b()
02158                      * sees that we've accumulated a
02159                      * token and flags that we need to
02160                      * try matching the token before
02161                      * proceeding.  But for input(),
02162                      * there's no matching to consider.
02163                      * So convert the EOB_ACT_LAST_MATCH
02164                      * to EOB_ACT_END_OF_FILE.
02165                      */
02166 
02167                     /* Reset buffer status. */
02168                     yyrestart(yyin );
02169 
02170                     /*FALLTHROUGH*/
02171 
02172                 case EOB_ACT_END_OF_FILE:
02173                     {
02174                     if ( yywrap( ) )
02175                         return EOF;
02176 
02177                     if ( ! (yy_did_buffer_switch_on_eof) )
02178                         YY_NEW_FILE;
02179 #ifdef __cplusplus
02180                     return yyinput();
02181 #else
02182                     return input();
02183 #endif
02184                     }
02185 
02186                 case EOB_ACT_CONTINUE_SCAN:
02187                     (yy_c_buf_p) = (yytext_ptr) + offset;
02188                     break;
02189                 }
02190             }
02191         }
02192 
02193     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02194     *(yy_c_buf_p) = '\0';   /* preserve yytext */
02195     (yy_hold_char) = *++(yy_c_buf_p);
02196 
02197     if ( c == '\n' )
02198            
02199     yylineno++;
02200 ;
02201 
02202     return c;
02203 }
02204 #endif  /* ifndef YY_NO_INPUT */
02205 
02211     void yyrestart  (FILE * input_file )
02212 {
02213     
02214     if ( ! YY_CURRENT_BUFFER ){
02215         yyensure_buffer_stack ();
02216         YY_CURRENT_BUFFER_LVALUE =
02217             yy_create_buffer(yyin,YY_BUF_SIZE );
02218     }
02219 
02220     yy_init_buffer(YY_CURRENT_BUFFER,input_file );
02221     yy_load_buffer_state( );
02222 }
02223 
02228     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02229 {
02230     
02231     /* TODO. We should be able to replace this entire function body
02232      * with
02233      *      yypop_buffer_state();
02234      *      yypush_buffer_state(new_buffer);
02235      */
02236     yyensure_buffer_stack ();
02237     if ( YY_CURRENT_BUFFER == new_buffer )
02238         return;
02239 
02240     if ( YY_CURRENT_BUFFER )
02241         {
02242         /* Flush out information for old buffer. */
02243         *(yy_c_buf_p) = (yy_hold_char);
02244         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02245         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02246         }
02247 
02248     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02249     yy_load_buffer_state( );
02250 
02251     /* We don't actually know whether we did this switch during
02252      * EOF (yywrap()) processing, but the only time this flag
02253      * is looked at is after yywrap() is called, so it's safe
02254      * to go ahead and always set it.
02255      */
02256     (yy_did_buffer_switch_on_eof) = 1;
02257 }
02258 
02259 static void yy_load_buffer_state  (void)
02260 {
02261         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02262     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02263     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02264     (yy_hold_char) = *(yy_c_buf_p);
02265 }
02266 
02273     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
02274 {
02275     YY_BUFFER_STATE b;
02276     
02277     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02278     if ( ! b )
02279         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02280 
02281     b->yy_buf_size = size;
02282 
02283     /* yy_ch_buf has to be 2 characters longer than the size given because
02284      * we need to put in 2 end-of-buffer characters.
02285      */
02286     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
02287     if ( ! b->yy_ch_buf )
02288         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02289 
02290     b->yy_is_our_buffer = 1;
02291 
02292     yy_init_buffer(b,file );
02293 
02294     return b;
02295 }
02296 
02301     void yy_delete_buffer (YY_BUFFER_STATE  b )
02302 {
02303     
02304     if ( ! b )
02305         return;
02306 
02307     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02308         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02309 
02310     if ( b->yy_is_our_buffer )
02311         yyfree((void *) b->yy_ch_buf  );
02312 
02313     yyfree((void *) b  );
02314 }
02315 
02316 #ifndef __cplusplus
02317 extern int isatty (int );
02318 #endif /* __cplusplus */
02319     
02320 /* Initializes or reinitializes a buffer.
02321  * This function is sometimes called more than once on the same buffer,
02322  * such as during a yyrestart() or at EOF.
02323  */
02324     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02325 
02326 {
02327     int oerrno = errno;
02328     
02329     yy_flush_buffer(b );
02330 
02331     b->yy_input_file = file;
02332     b->yy_fill_buffer = 1;
02333 
02334     /* If b is the current buffer, then yy_init_buffer was _probably_
02335      * called from yyrestart() or through yy_get_next_buffer.
02336      * In that case, we don't want to reset the lineno or column.
02337      */
02338     if (b != YY_CURRENT_BUFFER){
02339         b->yy_bs_lineno = 1;
02340         b->yy_bs_column = 0;
02341     }
02342 
02343         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02344     
02345     errno = oerrno;
02346 }
02347 
02352     void yy_flush_buffer (YY_BUFFER_STATE  b )
02353 {
02354         if ( ! b )
02355         return;
02356 
02357     b->yy_n_chars = 0;
02358 
02359     /* We always need two end-of-buffer characters.  The first causes
02360      * a transition to the end-of-buffer state.  The second causes
02361      * a jam in that state.
02362      */
02363     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02364     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02365 
02366     b->yy_buf_pos = &b->yy_ch_buf[0];
02367 
02368     b->yy_at_bol = 1;
02369     b->yy_buffer_status = YY_BUFFER_NEW;
02370 
02371     if ( b == YY_CURRENT_BUFFER )
02372         yy_load_buffer_state( );
02373 }
02374 
02381 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
02382 {
02383         if (new_buffer == NULL)
02384         return;
02385 
02386     yyensure_buffer_stack();
02387 
02388     /* This block is copied from yy_switch_to_buffer. */
02389     if ( YY_CURRENT_BUFFER )
02390         {
02391         /* Flush out information for old buffer. */
02392         *(yy_c_buf_p) = (yy_hold_char);
02393         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02394         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02395         }
02396 
02397     /* Only push if top exists. Otherwise, replace top. */
02398     if (YY_CURRENT_BUFFER)
02399         (yy_buffer_stack_top)++;
02400     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02401 
02402     /* copied from yy_switch_to_buffer. */
02403     yy_load_buffer_state( );
02404     (yy_did_buffer_switch_on_eof) = 1;
02405 }
02406 
02411 void yypop_buffer_state (void)
02412 {
02413         if (!YY_CURRENT_BUFFER)
02414         return;
02415 
02416     yy_delete_buffer(YY_CURRENT_BUFFER );
02417     YY_CURRENT_BUFFER_LVALUE = NULL;
02418     if ((yy_buffer_stack_top) > 0)
02419         --(yy_buffer_stack_top);
02420 
02421     if (YY_CURRENT_BUFFER) {
02422         yy_load_buffer_state( );
02423         (yy_did_buffer_switch_on_eof) = 1;
02424     }
02425 }
02426 
02427 /* Allocates the stack if it does not exist.
02428  *  Guarantees space for at least one push.
02429  */
02430 static void yyensure_buffer_stack (void)
02431 {
02432     int num_to_alloc;
02433     
02434     if (!(yy_buffer_stack)) {
02435 
02436         /* First allocation is just for 2 elements, since we don't know if this
02437          * scanner will even need a stack. We use 2 instead of 1 to avoid an
02438          * immediate realloc on the next call.
02439          */
02440         num_to_alloc = 1;
02441         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
02442                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02443                                 );
02444         if ( ! (yy_buffer_stack) )
02445             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02446                                   
02447         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02448                 
02449         (yy_buffer_stack_max) = num_to_alloc;
02450         (yy_buffer_stack_top) = 0;
02451         return;
02452     }
02453 
02454     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02455 
02456         /* Increase the buffer to prepare for a possible push. */
02457         int grow_size = 8 /* arbitrary grow size */;
02458 
02459         num_to_alloc = (yy_buffer_stack_max) + grow_size;
02460         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
02461                                 ((yy_buffer_stack),
02462                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02463                                 );
02464         if ( ! (yy_buffer_stack) )
02465             YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02466 
02467         /* zero only the new slots.*/
02468         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02469         (yy_buffer_stack_max) = num_to_alloc;
02470     }
02471 }
02472 
02479 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
02480 {
02481     YY_BUFFER_STATE b;
02482     
02483     if ( size < 2 ||
02484          base[size-2] != YY_END_OF_BUFFER_CHAR ||
02485          base[size-1] != YY_END_OF_BUFFER_CHAR )
02486         /* They forgot to leave room for the EOB's. */
02487         return 0;
02488 
02489     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02490     if ( ! b )
02491         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
02492 
02493     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
02494     b->yy_buf_pos = b->yy_ch_buf = base;
02495     b->yy_is_our_buffer = 0;
02496     b->yy_input_file = 0;
02497     b->yy_n_chars = b->yy_buf_size;
02498     b->yy_is_interactive = 0;
02499     b->yy_at_bol = 1;
02500     b->yy_fill_buffer = 0;
02501     b->yy_buffer_status = YY_BUFFER_NEW;
02502 
02503     yy_switch_to_buffer(b  );
02504 
02505     return b;
02506 }
02507 
02516 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
02517 {
02518     
02519     return yy_scan_bytes(yystr,strlen(yystr) );
02520 }
02521 
02529 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
02530 {
02531     YY_BUFFER_STATE b;
02532     char *buf;
02533     yy_size_t n;
02534     int i;
02535     
02536     /* Get memory for full buffer, including space for trailing EOB's. */
02537     n = _yybytes_len + 2;
02538     buf = (char *) yyalloc(n  );
02539     if ( ! buf )
02540         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
02541 
02542     for ( i = 0; i < _yybytes_len; ++i )
02543         buf[i] = yybytes[i];
02544 
02545     buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02546 
02547     b = yy_scan_buffer(buf,n );
02548     if ( ! b )
02549         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
02550 
02551     /* It's okay to grow etc. this buffer, and we should throw it
02552      * away when we're done.
02553      */
02554     b->yy_is_our_buffer = 1;
02555 
02556     return b;
02557 }
02558 
02559 #ifndef YY_EXIT_FAILURE
02560 #define YY_EXIT_FAILURE 2
02561 #endif
02562 
02563 static void yy_fatal_error (yyconst char* msg )
02564 {
02565         (void) fprintf( stderr, "%s\n", msg );
02566     exit( YY_EXIT_FAILURE );
02567 }
02568 
02569 /* Redefine yyless() so it works in section 3 code. */
02570 
02571 #undef yyless
02572 #define yyless(n) \
02573     do \
02574         { \
02575         /* Undo effects of setting up yytext. */ \
02576         int yyless_macro_arg = (n); \
02577         YY_LESS_LINENO(yyless_macro_arg);\
02578         yytext[yyleng] = (yy_hold_char); \
02579         (yy_c_buf_p) = yytext + yyless_macro_arg; \
02580         (yy_hold_char) = *(yy_c_buf_p); \
02581         *(yy_c_buf_p) = '\0'; \
02582         yyleng = yyless_macro_arg; \
02583         } \
02584     while ( 0 )
02585 
02586 /* Accessor  methods (get/set functions) to struct members. */
02587 
02591 int yyget_lineno  (void)
02592 {
02593         
02594     return yylineno;
02595 }
02596 
02600 FILE *yyget_in  (void)
02601 {
02602         return yyin;
02603 }
02604 
02608 FILE *yyget_out  (void)
02609 {
02610         return yyout;
02611 }
02612 
02616 int yyget_leng  (void)
02617 {
02618         return yyleng;
02619 }
02620 
02625 char *yyget_text  (void)
02626 {
02627         return yytext;
02628 }
02629 
02634 void yyset_lineno (int  line_number )
02635 {
02636     
02637     yylineno = line_number;
02638 }
02639 
02646 void yyset_in (FILE *  in_str )
02647 {
02648         yyin = in_str ;
02649 }
02650 
02651 void yyset_out (FILE *  out_str )
02652 {
02653         yyout = out_str ;
02654 }
02655 
02656 int yyget_debug  (void)
02657 {
02658         return yy_flex_debug;
02659 }
02660 
02661 void yyset_debug (int  bdebug )
02662 {
02663         yy_flex_debug = bdebug ;
02664 }
02665 
02666 static int yy_init_globals (void)
02667 {
02668         /* Initialization is the same as for the non-reentrant scanner.
02669      * This function is called from yylex_destroy(), so don't allocate here.
02670      */
02671 
02672     /* We do not touch yylineno unless the option is enabled. */
02673     yylineno =  1;
02674     
02675     (yy_buffer_stack) = 0;
02676     (yy_buffer_stack_top) = 0;
02677     (yy_buffer_stack_max) = 0;
02678     (yy_c_buf_p) = (char *) 0;
02679     (yy_init) = 0;
02680     (yy_start) = 0;
02681 
02682 /* Defined in main.c */
02683 #ifdef YY_STDINIT
02684     yyin = stdin;
02685     yyout = stdout;
02686 #else
02687     yyin = (FILE *) 0;
02688     yyout = (FILE *) 0;
02689 #endif
02690 
02691     /* For future reference: Set errno on error, since we are called by
02692      * yylex_init()
02693      */
02694     return 0;
02695 }
02696 
02697 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
02698 int yylex_destroy  (void)
02699 {
02700     
02701     /* Pop the buffer stack, destroying each element. */
02702     while(YY_CURRENT_BUFFER){
02703         yy_delete_buffer(YY_CURRENT_BUFFER  );
02704         YY_CURRENT_BUFFER_LVALUE = NULL;
02705         yypop_buffer_state();
02706     }
02707 
02708     /* Destroy the stack itself. */
02709     yyfree((yy_buffer_stack) );
02710     (yy_buffer_stack) = NULL;
02711 
02712     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02713      * yylex() is called, initialization will occur. */
02714     yy_init_globals( );
02715 
02716     return 0;
02717 }
02718 
02719 /*
02720  * Internal utility routines.
02721  */
02722 
02723 #ifndef yytext_ptr
02724 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02725 {
02726     register int i;
02727     for ( i = 0; i < n; ++i )
02728         s1[i] = s2[i];
02729 }
02730 #endif
02731 
02732 #ifdef YY_NEED_STRLEN
02733 static int yy_flex_strlen (yyconst char * s )
02734 {
02735     register int n;
02736     for ( n = 0; s[n]; ++n )
02737         ;
02738 
02739     return n;
02740 }
02741 #endif
02742 
02743 void *yyalloc (yy_size_t  size )
02744 {
02745     return (void *) malloc( size );
02746 }
02747 
02748 void *yyrealloc  (void * ptr, yy_size_t  size )
02749 {
02750     /* The cast to (char *) in the following accommodates both
02751      * implementations that use char* generic pointers, and those
02752      * that use void* generic pointers.  It works with the latter
02753      * because both ANSI C and C++ allow castless assignment from
02754      * any pointer type to void*, and deal with argument conversions
02755      * as though doing an assignment.
02756      */
02757     return (void *) realloc( (char *) ptr, size );
02758 }
02759 
02760 void yyfree (void * ptr )
02761 {
02762     free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
02763 }
02764 
02765 #define YYTABLES_NAME "yytables"
02766 
02767 #line 203 "parser/faustlexer.l"
02768 
02769 
02770 int yywrap() { return 1; }
02771 
02772