|
FAUST compiler
0.9.9.6b8
|
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
1.8.0