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