00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #define YYBISON 1
00047
00048
00049 #define YYBISON_VERSION "2.4.1"
00050
00051
00052 #define YYSKELETON_NAME "yacc.c"
00053
00054
00055 #define YYPURE 0
00056
00057
00058 #define YYPUSH 0
00059
00060
00061 #define YYPULL 1
00062
00063
00064 #define YYLSP_NEEDED 0
00065
00066
00067
00068
00069
00070
00071 #line 5 "parser/faustparser.y"
00072
00073
00074 #include "tree.hh"
00075 #include "xtended.hh"
00076 #include "boxes.hh"
00077 #include "prim2.hh"
00078 #include "signals.hh"
00079 #include "errormsg.hh"
00080 #include "sourcereader.hh"
00081 #include "doc.hh"
00082 #include "ppbox.hh"
00083
00084 #include <string>
00085 #include <list>
00086
00087 #define YYDEBUG 1
00088 #define YYERROR_VERBOSE 1
00089 #define YYMAXDEPTH 100000
00090
00091 extern char* yytext;
00092 extern const char* yyfilename;
00093 extern int yylineno;
00094 extern int yyerr;
00095 extern Tree gResult;
00096
00097 extern map<Tree, set<Tree> > gMetaDataSet;
00098 extern vector<Tree> gDocVector;
00099 static string doctxtString = "";
00100
00101
00102 int yylex();
00103
00104 Tree unquote(char* str)
00105 {
00106
00107 char buf[512];
00108 int j=0;
00109
00110 if (str[0] == '"') {
00111
00112 for (int i=1; j<511 && str[i];) {
00113 buf[j++] = str[i++];
00114 }
00115
00116 if (j>0) buf[j-1] = 0;
00117 } else {
00118 for (int i=0; j<511 && str[i];) {
00119 buf[j++] = str[i++];
00120 }
00121 }
00122 buf[j] = 0;
00123
00124 return tree(buf);
00125
00126 }
00127
00128
00129
00130
00131 #line 132 "parser/faustparser.cpp"
00132
00133
00134 #ifndef YYDEBUG
00135 # define YYDEBUG 0
00136 #endif
00137
00138
00139 #ifdef YYERROR_VERBOSE
00140 # undef YYERROR_VERBOSE
00141 # define YYERROR_VERBOSE 1
00142 #else
00143 # define YYERROR_VERBOSE 0
00144 #endif
00145
00146
00147 #ifndef YYTOKEN_TABLE
00148 # define YYTOKEN_TABLE 0
00149 #endif
00150
00151
00152
00153 #ifndef YYTOKENTYPE
00154 # define YYTOKENTYPE
00155
00156
00157 enum yytokentype {
00158 WITH = 258,
00159 MIX = 259,
00160 SPLIT = 260,
00161 SEQ = 261,
00162 PAR = 262,
00163 REC = 263,
00164 NE = 264,
00165 GE = 265,
00166 GT = 266,
00167 EQ = 267,
00168 LE = 268,
00169 LT = 269,
00170 OR = 270,
00171 SUB = 271,
00172 ADD = 272,
00173 RSH = 273,
00174 LSH = 274,
00175 XOR = 275,
00176 AND = 276,
00177 MOD = 277,
00178 DIV = 278,
00179 MUL = 279,
00180 POWOP = 280,
00181 FDELAY = 281,
00182 DELAY1 = 282,
00183 DOT = 283,
00184 APPL = 284,
00185 MEM = 285,
00186 PREFIX = 286,
00187 INTCAST = 287,
00188 FLOATCAST = 288,
00189 FFUNCTION = 289,
00190 FCONSTANT = 290,
00191 FVARIABLE = 291,
00192 BUTTON = 292,
00193 CHECKBOX = 293,
00194 VSLIDER = 294,
00195 HSLIDER = 295,
00196 NENTRY = 296,
00197 VGROUP = 297,
00198 HGROUP = 298,
00199 TGROUP = 299,
00200 HBARGRAPH = 300,
00201 VBARGRAPH = 301,
00202 ATTACH = 302,
00203 ACOS = 303,
00204 ASIN = 304,
00205 ATAN = 305,
00206 ATAN2 = 306,
00207 COS = 307,
00208 SIN = 308,
00209 TAN = 309,
00210 EXP = 310,
00211 LOG = 311,
00212 LOG10 = 312,
00213 POWFUN = 313,
00214 SQRT = 314,
00215 ABS = 315,
00216 MIN = 316,
00217 MAX = 317,
00218 FMOD = 318,
00219 REMAINDER = 319,
00220 FLOOR = 320,
00221 CEIL = 321,
00222 RINT = 322,
00223 RDTBL = 323,
00224 RWTBL = 324,
00225 SELECT2 = 325,
00226 SELECT3 = 326,
00227 INT = 327,
00228 FLOAT = 328,
00229 LAMBDA = 329,
00230 WIRE = 330,
00231 CUT = 331,
00232 ENDDEF = 332,
00233 VIRG = 333,
00234 LPAR = 334,
00235 RPAR = 335,
00236 LBRAQ = 336,
00237 RBRAQ = 337,
00238 DEF = 338,
00239 IMPORT = 339,
00240 COMPONENT = 340,
00241 LIBRARY = 341,
00242 ENVIRONMENT = 342,
00243 IPAR = 343,
00244 ISEQ = 344,
00245 ISUM = 345,
00246 IPROD = 346,
00247 STRING = 347,
00248 FSTRING = 348,
00249 IDENT = 349,
00250 EXTRA = 350,
00251 DECLARE = 351,
00252 CASE = 352,
00253 ARROW = 353,
00254 BDOC = 354,
00255 EDOC = 355,
00256 BEQN = 356,
00257 EEQN = 357,
00258 BDGM = 358,
00259 EDGM = 359,
00260 DOCCHAR = 360,
00261 NOTICE = 361,
00262 LISTING = 362
00263 };
00264 #endif
00265
00266
00267
00268 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00269 typedef union YYSTYPE
00270 {
00271
00272
00273 #line 64 "parser/faustparser.y"
00274
00275 CTree* exp;
00276 char* str;
00277
00278
00279
00280
00281 #line 282 "parser/faustparser.cpp"
00282 } YYSTYPE;
00283 # define YYSTYPE_IS_TRIVIAL 1
00284 # define yystype YYSTYPE
00285 # define YYSTYPE_IS_DECLARED 1
00286 #endif
00287
00288
00289
00290
00291
00292
00293 #line 294 "parser/faustparser.cpp"
00294
00295 #ifdef short
00296 # undef short
00297 #endif
00298
00299 #ifdef YYTYPE_UINT8
00300 typedef YYTYPE_UINT8 yytype_uint8;
00301 #else
00302 typedef unsigned char yytype_uint8;
00303 #endif
00304
00305 #ifdef YYTYPE_INT8
00306 typedef YYTYPE_INT8 yytype_int8;
00307 #elif (defined __STDC__ || defined __C99__FUNC__ \
00308 || defined __cplusplus || defined _MSC_VER)
00309 typedef signed char yytype_int8;
00310 #else
00311 typedef short int yytype_int8;
00312 #endif
00313
00314 #ifdef YYTYPE_UINT16
00315 typedef YYTYPE_UINT16 yytype_uint16;
00316 #else
00317 typedef unsigned short int yytype_uint16;
00318 #endif
00319
00320 #ifdef YYTYPE_INT16
00321 typedef YYTYPE_INT16 yytype_int16;
00322 #else
00323 typedef short int yytype_int16;
00324 #endif
00325
00326 #ifndef YYSIZE_T
00327 # ifdef __SIZE_TYPE__
00328 # define YYSIZE_T __SIZE_TYPE__
00329 # elif defined size_t
00330 # define YYSIZE_T size_t
00331 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00332 || defined __cplusplus || defined _MSC_VER)
00333 # include <stddef.h>
00334 # define YYSIZE_T size_t
00335 # else
00336 # define YYSIZE_T unsigned int
00337 # endif
00338 #endif
00339
00340 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00341
00342 #ifndef YY_
00343 # if YYENABLE_NLS
00344 # if ENABLE_NLS
00345 # include <libintl.h>
00346 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00347 # endif
00348 # endif
00349 # ifndef YY_
00350 # define YY_(msgid) msgid
00351 # endif
00352 #endif
00353
00354
00355 #if ! defined lint || defined __GNUC__
00356 # define YYUSE(e) ((void) (e))
00357 #else
00358 # define YYUSE(e)
00359 #endif
00360
00361
00362 #ifndef lint
00363 # define YYID(n) (n)
00364 #else
00365 #if (defined __STDC__ || defined __C99__FUNC__ \
00366 || defined __cplusplus || defined _MSC_VER)
00367 static int
00368 YYID (int yyi)
00369 #else
00370 static int
00371 YYID (yyi)
00372 int yyi;
00373 #endif
00374 {
00375 return yyi;
00376 }
00377 #endif
00378
00379 #if ! defined yyoverflow || YYERROR_VERBOSE
00380
00381
00382
00383 # ifdef YYSTACK_USE_ALLOCA
00384 # if YYSTACK_USE_ALLOCA
00385 # ifdef __GNUC__
00386 # define YYSTACK_ALLOC __builtin_alloca
00387 # elif defined __BUILTIN_VA_ARG_INCR
00388 # include <alloca.h>
00389 # elif defined _AIX
00390 # define YYSTACK_ALLOC __alloca
00391 # elif defined _MSC_VER
00392 # include <malloc.h>
00393 # define alloca _alloca
00394 # else
00395 # define YYSTACK_ALLOC alloca
00396 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00397 || defined __cplusplus || defined _MSC_VER)
00398 # include <stdlib.h>
00399 # ifndef _STDLIB_H
00400 # define _STDLIB_H 1
00401 # endif
00402 # endif
00403 # endif
00404 # endif
00405 # endif
00406
00407 # ifdef YYSTACK_ALLOC
00408
00409 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00410 # ifndef YYSTACK_ALLOC_MAXIMUM
00411
00412
00413
00414
00415 # define YYSTACK_ALLOC_MAXIMUM 4032
00416 # endif
00417 # else
00418 # define YYSTACK_ALLOC YYMALLOC
00419 # define YYSTACK_FREE YYFREE
00420 # ifndef YYSTACK_ALLOC_MAXIMUM
00421 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00422 # endif
00423 # if (defined __cplusplus && ! defined _STDLIB_H \
00424 && ! ((defined YYMALLOC || defined malloc) \
00425 && (defined YYFREE || defined free)))
00426 # include <stdlib.h>
00427 # ifndef _STDLIB_H
00428 # define _STDLIB_H 1
00429 # endif
00430 # endif
00431 # ifndef YYMALLOC
00432 # define YYMALLOC malloc
00433 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00434 || defined __cplusplus || defined _MSC_VER)
00435 void *malloc (YYSIZE_T);
00436 # endif
00437 # endif
00438 # ifndef YYFREE
00439 # define YYFREE free
00440 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00441 || defined __cplusplus || defined _MSC_VER)
00442 void free (void *);
00443 # endif
00444 # endif
00445 # endif
00446 #endif
00447
00448
00449 #if (! defined yyoverflow \
00450 && (! defined __cplusplus \
00451 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00452
00453
00454 union yyalloc
00455 {
00456 yytype_int16 yyss_alloc;
00457 YYSTYPE yyvs_alloc;
00458 };
00459
00460
00461 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00462
00463
00464
00465 # define YYSTACK_BYTES(N) \
00466 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
00467 + YYSTACK_GAP_MAXIMUM)
00468
00469
00470
00471 # ifndef YYCOPY
00472 # if defined __GNUC__ && 1 < __GNUC__
00473 # define YYCOPY(To, From, Count) \
00474 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00475 # else
00476 # define YYCOPY(To, From, Count) \
00477 do \
00478 { \
00479 YYSIZE_T yyi; \
00480 for (yyi = 0; yyi < (Count); yyi++) \
00481 (To)[yyi] = (From)[yyi]; \
00482 } \
00483 while (YYID (0))
00484 # endif
00485 # endif
00486
00487
00488
00489
00490
00491
00492 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
00493 do \
00494 { \
00495 YYSIZE_T yynewbytes; \
00496 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
00497 Stack = &yyptr->Stack_alloc; \
00498 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00499 yyptr += yynewbytes / sizeof (*yyptr); \
00500 } \
00501 while (YYID (0))
00502
00503 #endif
00504
00505
00506 #define YYFINAL 3
00507
00508 #define YYLAST 569
00509
00510
00511 #define YYNTOKENS 108
00512
00513 #define YYNNTS 48
00514
00515 #define YYNRULES 178
00516
00517 #define YYNSTATES 379
00518
00519
00520 #define YYUNDEFTOK 2
00521 #define YYMAXUTOK 362
00522
00523 #define YYTRANSLATE(YYX) \
00524 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00525
00526
00527 static const yytype_uint8 yytranslate[] =
00528 {
00529 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00538 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00539 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00540 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00541 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00544 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00547 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00552 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00554 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00555 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00556 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00557 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00558 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00559 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
00560 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
00561 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
00562 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
00563 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
00564 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
00565 105, 106, 107
00566 };
00567
00568 #if YYDEBUG
00569
00570
00571 static const yytype_uint16 yyprhs[] =
00572 {
00573 0, 0, 3, 5, 6, 9, 10, 13, 19, 24,
00574 26, 30, 31, 34, 36, 38, 40, 42, 44, 45,
00575 48, 52, 56, 58, 60, 68, 73, 76, 78, 80,
00576 84, 90, 94, 98, 102, 106, 110, 112, 116, 120,
00577 124, 128, 132, 136, 140, 143, 147, 151, 155, 159,
00578 163, 167, 171, 175, 179, 183, 187, 191, 196, 198,
00579 200, 202, 205, 208, 211, 214, 216, 218, 220, 222,
00580 224, 226, 228, 230, 232, 234, 236, 238, 240, 242,
00581 244, 246, 248, 250, 252, 254, 256, 258, 260, 262,
00582 264, 266, 268, 270, 272, 274, 276, 278, 280, 282,
00583 284, 286, 288, 290, 292, 294, 296, 298, 300, 302,
00584 304, 306, 308, 310, 312, 314, 317, 321, 330, 335,
00585 337, 339, 341, 346, 351, 356, 358, 360, 362, 364,
00586 366, 368, 370, 372, 374, 376, 378, 380, 382, 384,
00587 386, 388, 390, 394, 398, 402, 406, 410, 412, 414,
00588 416, 418, 420, 429, 438, 447, 456, 465, 473, 481,
00589 486, 491, 504, 517, 530, 537, 544, 551, 560, 569,
00590 575, 580, 582, 584, 588, 590, 593, 600, 602
00591 };
00592
00593
00594 static const yytype_int16 yyrhs[] =
00595 {
00596 109, 0, -1, 110, -1, -1, 110, 112, -1, -1,
00597 111, 120, -1, 84, 79, 131, 80, 77, -1, 96,
00598 127, 130, 77, -1, 120, -1, 99, 113, 100, -1,
00599 -1, 113, 114, -1, 115, -1, 116, -1, 117, -1,
00600 118, -1, 119, -1, -1, 115, 105, -1, 101, 123,
00601 102, -1, 103, 123, 104, -1, 106, -1, 107, -1,
00602 121, 79, 128, 80, 83, 123, 77, -1, 121, 83,
00603 123, 77, -1, 1, 77, -1, 126, -1, 126, -1,
00604 122, 7, 126, -1, 123, 3, 81, 111, 82, -1,
00605 123, 7, 123, -1, 123, 6, 123, -1, 123, 5,
00606 123, -1, 123, 4, 123, -1, 123, 8, 123, -1,
00607 124, -1, 124, 17, 124, -1, 124, 16, 124, -1,
00608 124, 24, 124, -1, 124, 23, 124, -1, 124, 22,
00609 124, -1, 124, 25, 124, -1, 124, 26, 124, -1,
00610 124, 27, -1, 124, 28, 126, -1, 124, 21, 124,
00611 -1, 124, 15, 124, -1, 124, 20, 124, -1, 124,
00612 19, 124, -1, 124, 18, 124, -1, 124, 14, 124,
00613 -1, 124, 13, 124, -1, 124, 11, 124, -1, 124,
00614 10, 124, -1, 124, 12, 124, -1, 124, 9, 124,
00615 -1, 124, 79, 128, 80, -1, 125, -1, 72, -1,
00616 73, -1, 17, 72, -1, 17, 73, -1, 16, 72,
00617 -1, 16, 73, -1, 75, -1, 76, -1, 30, -1,
00618 31, -1, 32, -1, 33, -1, 17, -1, 16, -1,
00619 24, -1, 23, -1, 22, -1, 26, -1, 21, -1,
00620 15, -1, 20, -1, 19, -1, 18, -1, 14, -1,
00621 13, -1, 11, -1, 10, -1, 12, -1, 9, -1,
00622 47, -1, 48, -1, 49, -1, 50, -1, 51, -1,
00623 52, -1, 53, -1, 54, -1, 55, -1, 56, -1,
00624 57, -1, 25, -1, 58, -1, 59, -1, 60, -1,
00625 61, -1, 62, -1, 63, -1, 64, -1, 65, -1,
00626 66, -1, 67, -1, 68, -1, 69, -1, 70, -1,
00627 71, -1, 126, -1, 16, 126, -1, 79, 123, 80,
00628 -1, 74, 79, 122, 80, 28, 79, 123, 80, -1,
00629 97, 81, 153, 82, -1, 137, -1, 138, -1, 139,
00630 -1, 85, 79, 131, 80, -1, 86, 79, 131, 80,
00631 -1, 87, 81, 111, 82, -1, 140, -1, 141, -1,
00632 142, -1, 143, -1, 144, -1, 145, -1, 146, -1,
00633 147, -1, 148, -1, 149, -1, 133, -1, 134, -1,
00634 135, -1, 136, -1, 94, -1, 94, -1, 129, -1,
00635 128, 7, 129, -1, 129, 6, 129, -1, 129, 5,
00636 129, -1, 129, 4, 129, -1, 129, 8, 129, -1,
00637 124, -1, 92, -1, 92, -1, 92, -1, 93, -1,
00638 88, 79, 126, 7, 129, 7, 123, 80, -1, 89,
00639 79, 126, 7, 129, 7, 123, 80, -1, 90, 79,
00640 126, 7, 129, 7, 123, 80, -1, 91, 79, 126,
00641 7, 129, 7, 123, 80, -1, 34, 79, 150, 7,
00642 132, 7, 130, 80, -1, 35, 79, 155, 127, 7,
00643 132, 80, -1, 36, 79, 155, 127, 7, 132, 80,
00644 -1, 37, 79, 131, 80, -1, 38, 79, 131, 80,
00645 -1, 39, 79, 131, 7, 129, 7, 129, 7, 129,
00646 7, 129, 80, -1, 40, 79, 131, 7, 129, 7,
00647 129, 7, 129, 7, 129, 80, -1, 41, 79, 131,
00648 7, 129, 7, 129, 7, 129, 7, 129, 80, -1,
00649 42, 79, 131, 7, 123, 80, -1, 43, 79, 131,
00650 7, 123, 80, -1, 44, 79, 131, 7, 123, 80,
00651 -1, 46, 79, 131, 7, 129, 7, 129, 80, -1,
00652 45, 79, 131, 7, 129, 7, 129, 80, -1, 155,
00653 151, 79, 152, 80, -1, 155, 151, 79, 80, -1,
00654 94, -1, 155, -1, 152, 7, 155, -1, 154, -1,
00655 153, 154, -1, 79, 128, 80, 98, 123, 77, -1,
00656 32, -1, 33, -1
00657 };
00658
00659
00660 static const yytype_uint16 yyrline[] =
00661 {
00662 0, 265, 265, 268, 269, 271, 272, 275, 276, 277,
00663 278, 281, 282, 285, 286, 287, 288, 289, 292, 293,
00664 296, 299, 302, 305, 308, 309, 310, 313, 316, 317,
00665 320, 321, 322, 323, 324, 325, 326, 329, 330, 331,
00666 332, 333, 334, 335, 336, 337, 339, 340, 341, 343,
00667 344, 346, 347, 348, 349, 350, 351, 353, 355, 358,
00668 359, 361, 362, 364, 365, 367, 368, 370, 371, 373,
00669 374, 376, 377, 378, 379, 380, 381, 383, 384, 385,
00670 387, 388, 390, 391, 392, 393, 394, 395, 397, 399,
00671 400, 401, 402, 403, 404, 405, 407, 408, 409, 410,
00672 411, 412, 414, 415, 416, 418, 419, 421, 422, 423,
00673 426, 427, 429, 430, 432, 433, 435, 436, 439, 441,
00674 442, 443, 444, 445, 446, 448, 449, 450, 451, 452,
00675 453, 454, 455, 456, 457, 459, 460, 461, 462, 466,
00676 469, 474, 475, 478, 479, 480, 481, 482, 485, 488,
00677 491, 492, 497, 501, 505, 509, 516, 520, 523, 528,
00678 531, 534, 537, 540, 543, 546, 549, 553, 556, 562,
00679 563, 566, 569, 570, 573, 574, 577, 581, 582
00680 };
00681 #endif
00682
00683 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00684
00685
00686 static const char *const yytname[] =
00687 {
00688 "$end", "error", "$undefined", "WITH", "MIX", "SPLIT", "SEQ", "PAR",
00689 "REC", "NE", "GE", "GT", "EQ", "LE", "LT", "OR", "SUB", "ADD", "RSH",
00690 "LSH", "XOR", "AND", "MOD", "DIV", "MUL", "POWOP", "FDELAY", "DELAY1",
00691 "DOT", "APPL", "MEM", "PREFIX", "INTCAST", "FLOATCAST", "FFUNCTION",
00692 "FCONSTANT", "FVARIABLE", "BUTTON", "CHECKBOX", "VSLIDER", "HSLIDER",
00693 "NENTRY", "VGROUP", "HGROUP", "TGROUP", "HBARGRAPH", "VBARGRAPH",
00694 "ATTACH", "ACOS", "ASIN", "ATAN", "ATAN2", "COS", "SIN", "TAN", "EXP",
00695 "LOG", "LOG10", "POWFUN", "SQRT", "ABS", "MIN", "MAX", "FMOD",
00696 "REMAINDER", "FLOOR", "CEIL", "RINT", "RDTBL", "RWTBL", "SELECT2",
00697 "SELECT3", "INT", "FLOAT", "LAMBDA", "WIRE", "CUT", "ENDDEF", "VIRG",
00698 "LPAR", "RPAR", "LBRAQ", "RBRAQ", "DEF", "IMPORT", "COMPONENT",
00699 "LIBRARY", "ENVIRONMENT", "IPAR", "ISEQ", "ISUM", "IPROD", "STRING",
00700 "FSTRING", "IDENT", "EXTRA", "DECLARE", "CASE", "ARROW", "BDOC", "EDOC",
00701 "BEQN", "EEQN", "BDGM", "EDGM", "DOCCHAR", "NOTICE", "LISTING",
00702 "$accept", "program", "stmtlist", "deflist", "statement", "doc",
00703 "docelem", "doctxt", "doceqn", "docdgm", "docntc", "doclst",
00704 "definition", "defname", "params", "expression", "infixexp", "primitive",
00705 "ident", "name", "arglist", "argument", "string", "uqstring", "fstring",
00706 "fpar", "fseq", "fsum", "fprod", "ffunction", "fconst", "fvariable",
00707 "button", "checkbox", "vslider", "hslider", "nentry", "vgroup", "hgroup",
00708 "tgroup", "vbargraph", "hbargraph", "signature", "fun", "typelist",
00709 "rulelist", "rule", "type", 0
00710 };
00711 #endif
00712
00713 # ifdef YYPRINT
00714
00715
00716 static const yytype_uint16 yytoknum[] =
00717 {
00718 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00719 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00720 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
00721 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
00722 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
00723 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
00724 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
00725 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
00726 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
00727 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
00728 355, 356, 357, 358, 359, 360, 361, 362
00729 };
00730 # endif
00731
00732
00733 static const yytype_uint8 yyr1[] =
00734 {
00735 0, 108, 109, 110, 110, 111, 111, 112, 112, 112,
00736 112, 113, 113, 114, 114, 114, 114, 114, 115, 115,
00737 116, 117, 118, 119, 120, 120, 120, 121, 122, 122,
00738 123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
00739 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
00740 124, 124, 124, 124, 124, 124, 124, 124, 124, 125,
00741 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00742 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00743 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00744 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00745 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00746 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00747 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
00748 125, 125, 125, 125, 125, 125, 125, 125, 125, 126,
00749 127, 128, 128, 129, 129, 129, 129, 129, 130, 131,
00750 132, 132, 133, 134, 135, 136, 137, 138, 139, 140,
00751 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
00752 150, 151, 152, 152, 153, 153, 154, 155, 155
00753 };
00754
00755
00756 static const yytype_uint8 yyr2[] =
00757 {
00758 0, 2, 1, 0, 2, 0, 2, 5, 4, 1,
00759 3, 0, 2, 1, 1, 1, 1, 1, 0, 2,
00760 3, 3, 1, 1, 7, 4, 2, 1, 1, 3,
00761 5, 3, 3, 3, 3, 3, 1, 3, 3, 3,
00762 3, 3, 3, 3, 2, 3, 3, 3, 3, 3,
00763 3, 3, 3, 3, 3, 3, 3, 4, 1, 1,
00764 1, 2, 2, 2, 2, 1, 1, 1, 1, 1,
00765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00768 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00769 1, 1, 1, 1, 1, 2, 3, 8, 4, 1,
00770 1, 1, 4, 4, 4, 1, 1, 1, 1, 1,
00771 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00772 1, 1, 3, 3, 3, 3, 3, 1, 1, 1,
00773 1, 1, 8, 8, 8, 8, 8, 7, 7, 4,
00774 4, 12, 12, 12, 6, 6, 6, 8, 8, 5,
00775 4, 1, 1, 3, 1, 2, 6, 1, 1
00776 };
00777
00778
00779
00780
00781 static const yytype_uint8 yydefact[] =
00782 {
00783 3, 0, 0, 1, 0, 0, 139, 0, 11, 4,
00784 9, 0, 27, 26, 0, 140, 0, 18, 0, 0,
00785 149, 0, 148, 0, 10, 0, 0, 22, 23, 12,
00786 13, 14, 15, 16, 17, 87, 85, 84, 86, 83,
00787 82, 78, 72, 71, 81, 80, 79, 77, 75, 74,
00788 73, 99, 76, 67, 68, 69, 70, 0, 0, 0,
00789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00790 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
00791 98, 100, 101, 102, 103, 104, 105, 106, 107, 108,
00792 109, 110, 111, 112, 113, 59, 60, 0, 65, 66,
00793 0, 0, 0, 0, 0, 0, 0, 0, 0, 147,
00794 58, 114, 0, 141, 135, 136, 137, 138, 119, 120,
00795 121, 125, 126, 127, 128, 129, 130, 131, 132, 133,
00796 134, 0, 36, 0, 8, 0, 0, 19, 63, 64,
00797 115, 61, 62, 0, 0, 0, 0, 0, 0, 0,
00798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00799 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00801 0, 0, 0, 0, 44, 0, 0, 0, 0, 0,
00802 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
00803 7, 20, 21, 177, 178, 0, 0, 0, 0, 0,
00804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00805 28, 116, 0, 0, 0, 0, 0, 0, 0, 0,
00806 0, 174, 56, 54, 53, 55, 52, 51, 47, 38,
00807 37, 50, 49, 48, 46, 41, 40, 39, 42, 43,
00808 45, 0, 142, 0, 145, 144, 143, 146, 5, 34,
00809 33, 32, 31, 35, 0, 171, 0, 0, 0, 159,
00810 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00811 0, 122, 123, 124, 6, 0, 0, 0, 0, 0,
00812 118, 175, 57, 0, 0, 150, 151, 0, 0, 0,
00813 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
00814 0, 0, 0, 0, 0, 0, 24, 30, 0, 170,
00815 0, 172, 0, 0, 0, 0, 0, 164, 165, 166,
00816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00817 169, 157, 158, 0, 0, 0, 0, 0, 0, 0,
00818 0, 0, 0, 0, 156, 173, 0, 0, 0, 168,
00819 167, 117, 152, 153, 154, 155, 176, 0, 0, 0,
00820 0, 0, 0, 0, 0, 0, 161, 162, 163
00821 };
00822
00823
00824 static const yytype_int16 yydefgoto[] =
00825 {
00826 -1, 1, 2, 224, 9, 17, 29, 30, 31, 32,
00827 33, 34, 284, 11, 219, 131, 109, 110, 111, 16,
00828 112, 113, 23, 21, 297, 114, 115, 116, 117, 118,
00829 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
00830 129, 130, 205, 266, 320, 230, 231, 206
00831 };
00832
00833
00834
00835 #define YYPACT_NINF -131
00836 static const yytype_int16 yypact[] =
00837 {
00838 -131, 82, 1, -131, 11, 23, -131, 10, -131, -131,
00839 -131, 20, -131, -131, 36, -131, 77, 135, 316, 316,
00840 -131, 50, -131, 103, -131, 316, 316, -131, -131, -131,
00841 81, -131, -131, -131, -131, -131, -131, -131, -131, -131,
00842 -131, -131, 130, -64, -131, -131, -131, -131, -131, -131,
00843 -131, -131, -131, -131, -131, -131, -131, 109, 114, 116,
00844 140, 150, 158, 160, 169, 174, 175, 179, 180, 181,
00845 -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
00846 -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
00847 -131, -131, -131, -131, -131, -131, -131, 204, -131, -131,
00848 316, 205, 206, 117, 214, 220, 221, 230, 229, 418,
00849 -131, -131, -3, 290, -131, -131, -131, -131, -131, -131,
00850 -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
00851 -131, 266, 418, 209, -131, 19, 13, -131, -131, -131,
00852 -131, -131, -131, 111, 111, 111, 36, 36, 36, 36,
00853 36, 36, 36, 36, 36, 36, 218, 25, 36, 36,
00854 -131, 218, 218, 218, 218, 232, 316, 316, 316, 316,
00855 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
00856 316, 316, 316, 316, -131, 218, 316, 316, 261, 316,
00857 316, 316, 316, 264, 316, 316, 316, 316, 316, -131,
00858 -131, -131, -131, -131, -131, 294, 299, 10, 10, 314,
00859 328, 402, 404, 405, 419, 475, 476, 479, 480, 3,
00860 -131, -131, 415, 416, 2, 501, 502, 503, 546, 316,
00861 63, -131, 432, 432, 432, 432, 432, 432, 443, 443,
00862 443, 88, 88, 88, 88, 88, 88, 88, 52, 110,
00863 -131, 27, 290, 316, 67, 67, 547, -131, -131, 42,
00864 42, 193, 548, -131, 139, -131, 478, 551, 552, -131,
00865 -131, 316, 316, 316, 316, 316, 316, 316, 316, 218,
00866 526, -131, -131, -131, -131, 316, 316, 316, 316, 40,
00867 -131, -131, -131, 411, 4, -131, -131, 553, 107, 139,
00868 139, 260, 274, 300, 32, 38, 49, 392, 485, -131,
00869 482, 494, 499, 508, 513, 464, -131, -131, 77, -131,
00870 94, -131, 483, 484, 316, 316, 316, -131, -131, -131,
00871 316, 316, 316, 316, 316, 316, 316, 316, 486, 111,
00872 -131, -131, -131, 519, 524, 529, 66, 128, 55, 61,
00873 86, 119, 207, 417, -131, -131, 316, 316, 316, -131,
00874 -131, -131, -131, -131, -131, -131, -131, 534, 539, 544,
00875 316, 316, 316, 212, 217, 222, -131, -131, -131
00876 };
00877
00878
00879 static const yytype_int16 yypgoto[] =
00880 {
00881 -131, -131, -131, 307, -131, -131, -131, -131, -131, -131,
00882 -131, -131, 565, -131, -131, -13, -19, -131, 9, 39,
00883 -110, -81, 250, 326, -48, -131, -131, -131, -131, -131,
00884 -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
00885 -131, -131, -131, -131, -131, -131, 339, -130
00886 };
00887
00888
00889
00890
00891
00892 #define YYTABLE_NINF -3
00893 static const yytype_int16 yytable[] =
00894 {
00895 132, -2, 4, 4, 187, 4, 132, 132, 141, 142,
00896 279, 12, 135, 136, 207, 208, 193, 194, 195, 196,
00897 197, 198, 193, 194, 195, 196, 197, 198, 193, 194,
00898 195, 196, 197, 198, 187, 193, 194, 195, 196, 197,
00899 198, 193, 194, 195, 196, 197, 198, 187, 196, 197,
00900 198, 140, 193, 194, 195, 196, 197, 198, 193, 194,
00901 195, 196, 197, 198, 193, 194, 195, 196, 197, 198,
00902 189, 190, 191, 191, 192, 192, 251, 188, 183, 184,
00903 185, 132, 3, 280, 283, 5, 317, 157, 13, 193,
00904 194, 195, 196, 197, 198, 6, 6, 7, 6, 18,
00905 8, 339, 14, 19, 15, 221, 252, 292, 254, 255,
00906 256, 257, 327, 182, 183, 184, 185, 202, 328, 289,
00907 315, 201, 193, 194, 195, 196, 197, 198, 20, 329,
00908 133, 186, 189, 190, 191, 361, 192, 184, 185, 203,
00909 204, 362, 229, 203, 204, 290, 359, 232, 233, 234,
00910 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00911 245, 246, 247, 248, 249, 220, 363, 186, 321, 22,
00912 225, 226, 227, 228, 340, 132, 132, 132, 132, 132,
00913 134, 259, 260, 261, 262, 263, 137, 319, 143, 186,
00914 301, 302, 303, 144, 250, 145, 307, 308, 160, 364,
00915 197, 198, 138, 139, 311, 312, 313, 314, 360, 355,
00916 193, 194, 195, 196, 197, 198, 189, 190, 191, 146,
00917 192, 189, 190, 191, 6, 192, 189, 190, 191, 147,
00918 192, 295, 296, 12, 132, 24, 25, 148, 26, 149,
00919 293, 27, 28, 343, 344, 345, 267, 268, 150, 346,
00920 347, 322, 323, 151, 152, 132, 132, 132, 153, 154,
00921 155, 304, 305, 306, 189, 190, 191, 324, 192, 193,
00922 194, 195, 196, 197, 198, 367, 368, 369, 189, 190,
00923 191, 325, 192, 156, 158, 159, 200, 365, 309, 373,
00924 374, 375, 376, 161, 189, 190, 191, 377, 192, 162,
00925 163, 264, 378, 12, 189, 190, 191, 326, 192, 164,
00926 165, 229, 6, 132, 132, 132, 132, 132, 132, 348,
00927 349, 350, 351, 352, 353, 35, 36, 37, 38, 39,
00928 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
00929 50, 51, 52, 199, 253, 258, 53, 54, 55, 56,
00930 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
00931 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
00932 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
00933 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
00934 97, 98, 99, 265, 269, 100, 189, 190, 191, 330,
00935 192, 101, 102, 103, 104, 105, 106, 107, 270, 271,
00936 6, 272, 273, 108, 193, 194, 195, 196, 197, 198,
00937 193, 194, 195, 196, 197, 198, 274, 166, 167, 168,
00938 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
00939 179, 180, 181, 182, 183, 184, 185, 172, 173, 174,
00940 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
00941 185, 175, 176, 177, 178, 179, 180, 181, 182, 183,
00942 184, 185, 209, 210, 211, 212, 213, 214, 215, 216,
00943 217, 218, 275, 276, 222, 223, 277, 278, 316, 189,
00944 190, 191, 331, 192, 366, 281, 282, 186, 189, 190,
00945 191, 333, 192, 189, 190, 191, 334, 192, 285, 286,
00946 287, 186, 189, 190, 191, 335, 192, 189, 190, 191,
00947 336, 192, 186, 189, 190, 191, 356, 192, 189, 190,
00948 191, 357, 192, 189, 190, 191, 358, 192, 189, 190,
00949 191, 370, 192, 189, 190, 191, 371, 192, 189, 190,
00950 191, 372, 192, 288, 310, 192, 198, 298, 299, 300,
00951 318, 332, 337, 341, 342, 294, 354, 10, 338, 291
00952 };
00953
00954 static const yytype_uint16 yycheck[] =
00955 {
00956 19, 0, 1, 1, 7, 1, 25, 26, 72, 73,
00957 7, 2, 25, 26, 144, 145, 3, 4, 5, 6,
00958 7, 8, 3, 4, 5, 6, 7, 8, 3, 4,
00959 5, 6, 7, 8, 7, 3, 4, 5, 6, 7,
00960 8, 3, 4, 5, 6, 7, 8, 7, 6, 7,
00961 8, 42, 3, 4, 5, 6, 7, 8, 3, 4,
00962 5, 6, 7, 8, 3, 4, 5, 6, 7, 8,
00963 4, 5, 6, 6, 8, 8, 186, 80, 26, 27,
00964 28, 100, 0, 80, 82, 84, 82, 100, 77, 3,
00965 4, 5, 6, 7, 8, 94, 94, 96, 94, 79,
00966 99, 7, 79, 83, 94, 80, 187, 80, 189, 190,
00967 191, 192, 80, 25, 26, 27, 28, 104, 80, 229,
00968 80, 102, 3, 4, 5, 6, 7, 8, 92, 80,
00969 80, 79, 4, 5, 6, 80, 8, 27, 28, 32,
00970 33, 80, 79, 32, 33, 82, 80, 166, 167, 168,
00971 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
00972 179, 180, 181, 182, 183, 156, 80, 79, 298, 92,
00973 161, 162, 163, 164, 80, 194, 195, 196, 197, 198,
00974 77, 194, 195, 196, 197, 198, 105, 80, 79, 79,
00975 271, 272, 273, 79, 185, 79, 277, 278, 81, 80,
00976 7, 8, 72, 73, 285, 286, 287, 288, 80, 339,
00977 3, 4, 5, 6, 7, 8, 4, 5, 6, 79,
00978 8, 4, 5, 6, 94, 8, 4, 5, 6, 79,
00979 8, 92, 93, 224, 253, 100, 101, 79, 103, 79,
00980 253, 106, 107, 324, 325, 326, 207, 208, 79, 330,
00981 331, 299, 300, 79, 79, 274, 275, 276, 79, 79,
00982 79, 274, 275, 276, 4, 5, 6, 7, 8, 3,
00983 4, 5, 6, 7, 8, 356, 357, 358, 4, 5,
00984 6, 7, 8, 79, 79, 79, 77, 80, 279, 370,
00985 371, 372, 80, 79, 4, 5, 6, 80, 8, 79,
00986 79, 7, 80, 294, 4, 5, 6, 7, 8, 79,
00987 81, 79, 94, 332, 333, 334, 335, 336, 337, 332,
00988 333, 334, 335, 336, 337, 9, 10, 11, 12, 13,
00989 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
00990 24, 25, 26, 77, 83, 81, 30, 31, 32, 33,
00991 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
00992 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
00993 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
00994 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
00995 74, 75, 76, 94, 80, 79, 4, 5, 6, 7,
00996 8, 85, 86, 87, 88, 89, 90, 91, 80, 7,
00997 94, 7, 7, 97, 3, 4, 5, 6, 7, 8,
00998 3, 4, 5, 6, 7, 8, 7, 9, 10, 11,
00999 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
01000 22, 23, 24, 25, 26, 27, 28, 15, 16, 17,
01001 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
01002 28, 18, 19, 20, 21, 22, 23, 24, 25, 26,
01003 27, 28, 146, 147, 148, 149, 150, 151, 152, 153,
01004 154, 155, 7, 7, 158, 159, 7, 7, 77, 4,
01005 5, 6, 7, 8, 77, 80, 80, 79, 4, 5,
01006 6, 7, 8, 4, 5, 6, 7, 8, 7, 7,
01007 7, 79, 4, 5, 6, 7, 8, 4, 5, 6,
01008 7, 8, 79, 4, 5, 6, 7, 8, 4, 5,
01009 6, 7, 8, 4, 5, 6, 7, 8, 4, 5,
01010 6, 7, 8, 4, 5, 6, 7, 8, 4, 5,
01011 6, 7, 8, 7, 28, 8, 8, 79, 7, 7,
01012 7, 79, 98, 80, 80, 258, 80, 2, 318, 230
01013 };
01014
01015
01016
01017 static const yytype_uint8 yystos[] =
01018 {
01019 0, 109, 110, 0, 1, 84, 94, 96, 99, 112,
01020 120, 121, 126, 77, 79, 94, 127, 113, 79, 83,
01021 92, 131, 92, 130, 100, 101, 103, 106, 107, 114,
01022 115, 116, 117, 118, 119, 9, 10, 11, 12, 13,
01023 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01024 24, 25, 26, 30, 31, 32, 33, 34, 35, 36,
01025 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
01026 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
01027 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
01028 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
01029 79, 85, 86, 87, 88, 89, 90, 91, 97, 124,
01030 125, 126, 128, 129, 133, 134, 135, 136, 137, 138,
01031 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
01032 149, 123, 124, 80, 77, 123, 123, 105, 72, 73,
01033 126, 72, 73, 79, 79, 79, 79, 79, 79, 79,
01034 79, 79, 79, 79, 79, 79, 79, 123, 79, 79,
01035 81, 79, 79, 79, 79, 81, 9, 10, 11, 12,
01036 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
01037 23, 24, 25, 26, 27, 28, 79, 7, 80, 4,
01038 5, 6, 8, 3, 4, 5, 6, 7, 8, 77,
01039 77, 102, 104, 32, 33, 150, 155, 155, 155, 131,
01040 131, 131, 131, 131, 131, 131, 131, 131, 131, 122,
01041 126, 80, 131, 131, 111, 126, 126, 126, 126, 79,
01042 153, 154, 124, 124, 124, 124, 124, 124, 124, 124,
01043 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
01044 126, 128, 129, 83, 129, 129, 129, 129, 81, 123,
01045 123, 123, 123, 123, 7, 94, 151, 127, 127, 80,
01046 80, 7, 7, 7, 7, 7, 7, 7, 7, 7,
01047 80, 80, 80, 82, 120, 7, 7, 7, 7, 128,
01048 82, 154, 80, 123, 111, 92, 93, 132, 79, 7,
01049 7, 129, 129, 129, 123, 123, 123, 129, 129, 126,
01050 28, 129, 129, 129, 129, 80, 77, 82, 7, 80,
01051 152, 155, 132, 132, 7, 7, 7, 80, 80, 80,
01052 7, 7, 79, 7, 7, 7, 7, 98, 130, 7,
01053 80, 80, 80, 129, 129, 129, 129, 129, 123, 123,
01054 123, 123, 123, 123, 80, 155, 7, 7, 7, 80,
01055 80, 80, 80, 80, 80, 80, 77, 129, 129, 129,
01056 7, 7, 7, 129, 129, 129, 80, 80, 80
01057 };
01058
01059 #define yyerrok (yyerrstatus = 0)
01060 #define yyclearin (yychar = YYEMPTY)
01061 #define YYEMPTY (-2)
01062 #define YYEOF 0
01063
01064 #define YYACCEPT goto yyacceptlab
01065 #define YYABORT goto yyabortlab
01066 #define YYERROR goto yyerrorlab
01067
01068
01069
01070
01071
01072
01073 #define YYFAIL goto yyerrlab
01074
01075 #define YYRECOVERING() (!!yyerrstatus)
01076
01077 #define YYBACKUP(Token, Value) \
01078 do \
01079 if (yychar == YYEMPTY && yylen == 1) \
01080 { \
01081 yychar = (Token); \
01082 yylval = (Value); \
01083 yytoken = YYTRANSLATE (yychar); \
01084 YYPOPSTACK (1); \
01085 goto yybackup; \
01086 } \
01087 else \
01088 { \
01089 yyerror (YY_("syntax error: cannot back up")); \
01090 YYERROR; \
01091 } \
01092 while (YYID (0))
01093
01094
01095 #define YYTERROR 1
01096 #define YYERRCODE 256
01097
01098
01099
01100
01101
01102
01103 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
01104 #ifndef YYLLOC_DEFAULT
01105 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01106 do \
01107 if (YYID (N)) \
01108 { \
01109 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
01110 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
01111 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
01112 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
01113 } \
01114 else \
01115 { \
01116 (Current).first_line = (Current).last_line = \
01117 YYRHSLOC (Rhs, 0).last_line; \
01118 (Current).first_column = (Current).last_column = \
01119 YYRHSLOC (Rhs, 0).last_column; \
01120 } \
01121 while (YYID (0))
01122 #endif
01123
01124
01125
01126
01127
01128
01129 #ifndef YY_LOCATION_PRINT
01130 # if YYLTYPE_IS_TRIVIAL
01131 # define YY_LOCATION_PRINT(File, Loc) \
01132 fprintf (File, "%d.%d-%d.%d", \
01133 (Loc).first_line, (Loc).first_column, \
01134 (Loc).last_line, (Loc).last_column)
01135 # else
01136 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
01137 # endif
01138 #endif
01139
01140
01141
01142
01143 #ifdef YYLEX_PARAM
01144 # define YYLEX yylex (YYLEX_PARAM)
01145 #else
01146 # define YYLEX yylex ()
01147 #endif
01148
01149
01150 #if YYDEBUG
01151
01152 # ifndef YYFPRINTF
01153 # include <stdio.h>
01154 # define YYFPRINTF fprintf
01155 # endif
01156
01157 # define YYDPRINTF(Args) \
01158 do { \
01159 if (yydebug) \
01160 YYFPRINTF Args; \
01161 } while (YYID (0))
01162
01163 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
01164 do { \
01165 if (yydebug) \
01166 { \
01167 YYFPRINTF (stderr, "%s ", Title); \
01168 yy_symbol_print (stderr, \
01169 Type, Value); \
01170 YYFPRINTF (stderr, "\n"); \
01171 } \
01172 } while (YYID (0))
01173
01174
01175
01176
01177
01178
01179
01180 #if (defined __STDC__ || defined __C99__FUNC__ \
01181 || defined __cplusplus || defined _MSC_VER)
01182 static void
01183 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
01184 #else
01185 static void
01186 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
01187 FILE *yyoutput;
01188 int yytype;
01189 YYSTYPE const * const yyvaluep;
01190 #endif
01191 {
01192 if (!yyvaluep)
01193 return;
01194 # ifdef YYPRINT
01195 if (yytype < YYNTOKENS)
01196 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
01197 # else
01198 YYUSE (yyoutput);
01199 # endif
01200 switch (yytype)
01201 {
01202 default:
01203 break;
01204 }
01205 }
01206
01207
01208
01209
01210
01211
01212 #if (defined __STDC__ || defined __C99__FUNC__ \
01213 || defined __cplusplus || defined _MSC_VER)
01214 static void
01215 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
01216 #else
01217 static void
01218 yy_symbol_print (yyoutput, yytype, yyvaluep)
01219 FILE *yyoutput;
01220 int yytype;
01221 YYSTYPE const * const yyvaluep;
01222 #endif
01223 {
01224 if (yytype < YYNTOKENS)
01225 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
01226 else
01227 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
01228
01229 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
01230 YYFPRINTF (yyoutput, ")");
01231 }
01232
01233
01234
01235
01236
01237
01238 #if (defined __STDC__ || defined __C99__FUNC__ \
01239 || defined __cplusplus || defined _MSC_VER)
01240 static void
01241 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
01242 #else
01243 static void
01244 yy_stack_print (yybottom, yytop)
01245 yytype_int16 *yybottom;
01246 yytype_int16 *yytop;
01247 #endif
01248 {
01249 YYFPRINTF (stderr, "Stack now");
01250 for (; yybottom <= yytop; yybottom++)
01251 {
01252 int yybot = *yybottom;
01253 YYFPRINTF (stderr, " %d", yybot);
01254 }
01255 YYFPRINTF (stderr, "\n");
01256 }
01257
01258 # define YY_STACK_PRINT(Bottom, Top) \
01259 do { \
01260 if (yydebug) \
01261 yy_stack_print ((Bottom), (Top)); \
01262 } while (YYID (0))
01263
01264
01265
01266
01267
01268
01269 #if (defined __STDC__ || defined __C99__FUNC__ \
01270 || defined __cplusplus || defined _MSC_VER)
01271 static void
01272 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
01273 #else
01274 static void
01275 yy_reduce_print (yyvsp, yyrule)
01276 YYSTYPE *yyvsp;
01277 int yyrule;
01278 #endif
01279 {
01280 int yynrhs = yyr2[yyrule];
01281 int yyi;
01282 unsigned long int yylno = yyrline[yyrule];
01283 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
01284 yyrule - 1, yylno);
01285
01286 for (yyi = 0; yyi < yynrhs; yyi++)
01287 {
01288 YYFPRINTF (stderr, " $%d = ", yyi + 1);
01289 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
01290 &(yyvsp[(yyi + 1) - (yynrhs)])
01291 );
01292 YYFPRINTF (stderr, "\n");
01293 }
01294 }
01295
01296 # define YY_REDUCE_PRINT(Rule) \
01297 do { \
01298 if (yydebug) \
01299 yy_reduce_print (yyvsp, Rule); \
01300 } while (YYID (0))
01301
01302
01303
01304 int yydebug;
01305 #else
01306 # define YYDPRINTF(Args)
01307 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
01308 # define YY_STACK_PRINT(Bottom, Top)
01309 # define YY_REDUCE_PRINT(Rule)
01310 #endif
01311
01312
01313
01314 #ifndef YYINITDEPTH
01315 # define YYINITDEPTH 200
01316 #endif
01317
01318
01319
01320
01321
01322
01323
01324
01325 #ifndef YYMAXDEPTH
01326 # define YYMAXDEPTH 10000
01327 #endif
01328
01329
01330
01331 #if YYERROR_VERBOSE
01332
01333 # ifndef yystrlen
01334 # if defined __GLIBC__ && defined _STRING_H
01335 # define yystrlen strlen
01336 # else
01337
01338 #if (defined __STDC__ || defined __C99__FUNC__ \
01339 || defined __cplusplus || defined _MSC_VER)
01340 static YYSIZE_T
01341 yystrlen (const char *yystr)
01342 #else
01343 static YYSIZE_T
01344 yystrlen (yystr)
01345 const char *yystr;
01346 #endif
01347 {
01348 YYSIZE_T yylen;
01349 for (yylen = 0; yystr[yylen]; yylen++)
01350 continue;
01351 return yylen;
01352 }
01353 # endif
01354 # endif
01355
01356 # ifndef yystpcpy
01357 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
01358 # define yystpcpy stpcpy
01359 # else
01360
01361
01362 #if (defined __STDC__ || defined __C99__FUNC__ \
01363 || defined __cplusplus || defined _MSC_VER)
01364 static char *
01365 yystpcpy (char *yydest, const char *yysrc)
01366 #else
01367 static char *
01368 yystpcpy (yydest, yysrc)
01369 char *yydest;
01370 const char *yysrc;
01371 #endif
01372 {
01373 char *yyd = yydest;
01374 const char *yys = yysrc;
01375
01376 while ((*yyd++ = *yys++) != '\0')
01377 continue;
01378
01379 return yyd - 1;
01380 }
01381 # endif
01382 # endif
01383
01384 # ifndef yytnamerr
01385
01386
01387
01388
01389
01390
01391
01392 static YYSIZE_T
01393 yytnamerr (char *yyres, const char *yystr)
01394 {
01395 if (*yystr == '"')
01396 {
01397 YYSIZE_T yyn = 0;
01398 char const *yyp = yystr;
01399
01400 for (;;)
01401 switch (*++yyp)
01402 {
01403 case '\'':
01404 case ',':
01405 goto do_not_strip_quotes;
01406
01407 case '\\':
01408 if (*++yyp != '\\')
01409 goto do_not_strip_quotes;
01410
01411 default:
01412 if (yyres)
01413 yyres[yyn] = *yyp;
01414 yyn++;
01415 break;
01416
01417 case '"':
01418 if (yyres)
01419 yyres[yyn] = '\0';
01420 return yyn;
01421 }
01422 do_not_strip_quotes: ;
01423 }
01424
01425 if (! yyres)
01426 return yystrlen (yystr);
01427
01428 return yystpcpy (yyres, yystr) - yyres;
01429 }
01430 # endif
01431
01432
01433
01434
01435
01436
01437
01438
01439 static YYSIZE_T
01440 yysyntax_error (char *yyresult, int yystate, int yychar)
01441 {
01442 int yyn = yypact[yystate];
01443
01444 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
01445 return 0;
01446 else
01447 {
01448 int yytype = YYTRANSLATE (yychar);
01449 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
01450 YYSIZE_T yysize = yysize0;
01451 YYSIZE_T yysize1;
01452 int yysize_overflow = 0;
01453 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
01454 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
01455 int yyx;
01456
01457 # if 0
01458
01459
01460 YY_("syntax error, unexpected %s");
01461 YY_("syntax error, unexpected %s, expecting %s");
01462 YY_("syntax error, unexpected %s, expecting %s or %s");
01463 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
01464 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
01465 # endif
01466 char *yyfmt;
01467 char const *yyf;
01468 static char const yyunexpected[] = "syntax error, unexpected %s";
01469 static char const yyexpecting[] = ", expecting %s";
01470 static char const yyor[] = " or %s";
01471 char yyformat[sizeof yyunexpected
01472 + sizeof yyexpecting - 1
01473 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
01474 * (sizeof yyor - 1))];
01475 char const *yyprefix = yyexpecting;
01476
01477
01478
01479 int yyxbegin = yyn < 0 ? -yyn : 0;
01480
01481
01482 int yychecklim = YYLAST - yyn + 1;
01483 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
01484 int yycount = 1;
01485
01486 yyarg[0] = yytname[yytype];
01487 yyfmt = yystpcpy (yyformat, yyunexpected);
01488
01489 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
01490 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01491 {
01492 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
01493 {
01494 yycount = 1;
01495 yysize = yysize0;
01496 yyformat[sizeof yyunexpected - 1] = '\0';
01497 break;
01498 }
01499 yyarg[yycount++] = yytname[yyx];
01500 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
01501 yysize_overflow |= (yysize1 < yysize);
01502 yysize = yysize1;
01503 yyfmt = yystpcpy (yyfmt, yyprefix);
01504 yyprefix = yyor;
01505 }
01506
01507 yyf = YY_(yyformat);
01508 yysize1 = yysize + yystrlen (yyf);
01509 yysize_overflow |= (yysize1 < yysize);
01510 yysize = yysize1;
01511
01512 if (yysize_overflow)
01513 return YYSIZE_MAXIMUM;
01514
01515 if (yyresult)
01516 {
01517
01518
01519
01520 char *yyp = yyresult;
01521 int yyi = 0;
01522 while ((*yyp = *yyf) != '\0')
01523 {
01524 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
01525 {
01526 yyp += yytnamerr (yyp, yyarg[yyi++]);
01527 yyf += 2;
01528 }
01529 else
01530 {
01531 yyp++;
01532 yyf++;
01533 }
01534 }
01535 }
01536 return yysize;
01537 }
01538 }
01539 #endif
01540
01541
01542
01543
01544
01545
01546
01547 #if (defined __STDC__ || defined __C99__FUNC__ \
01548 || defined __cplusplus || defined _MSC_VER)
01549 static void
01550 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
01551 #else
01552 static void
01553 yydestruct (yymsg, yytype, yyvaluep)
01554 const char *yymsg;
01555 int yytype;
01556 YYSTYPE *yyvaluep;
01557 #endif
01558 {
01559 YYUSE (yyvaluep);
01560
01561 if (!yymsg)
01562 yymsg = "Deleting";
01563 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
01564
01565 switch (yytype)
01566 {
01567
01568 default:
01569 break;
01570 }
01571 }
01572
01573
01574 #ifdef YYPARSE_PARAM
01575 #if defined __STDC__ || defined __cplusplus
01576 int yyparse (void *YYPARSE_PARAM);
01577 #else
01578 int yyparse ();
01579 #endif
01580 #else
01581 #if defined __STDC__ || defined __cplusplus
01582 int yyparse (void);
01583 #else
01584 int yyparse ();
01585 #endif
01586 #endif
01587
01588
01589
01590 int yychar;
01591
01592
01593 YYSTYPE yylval;
01594
01595
01596 int yynerrs;
01597
01598
01599
01600
01601
01602
01603
01604 #ifdef YYPARSE_PARAM
01605 #if (defined __STDC__ || defined __C99__FUNC__ \
01606 || defined __cplusplus || defined _MSC_VER)
01607 int
01608 yyparse (void *YYPARSE_PARAM)
01609 #else
01610 int
01611 yyparse (YYPARSE_PARAM)
01612 void *YYPARSE_PARAM;
01613 #endif
01614 #else
01615 #if (defined __STDC__ || defined __C99__FUNC__ \
01616 || defined __cplusplus || defined _MSC_VER)
01617 int
01618 yyparse (void)
01619 #else
01620 int
01621 yyparse ()
01622
01623 #endif
01624 #endif
01625 {
01626
01627
01628 int yystate;
01629
01630 int yyerrstatus;
01631
01632
01633
01634
01635
01636
01637
01638
01639
01640 yytype_int16 yyssa[YYINITDEPTH];
01641 yytype_int16 *yyss;
01642 yytype_int16 *yyssp;
01643
01644
01645 YYSTYPE yyvsa[YYINITDEPTH];
01646 YYSTYPE *yyvs;
01647 YYSTYPE *yyvsp;
01648
01649 YYSIZE_T yystacksize;
01650
01651 int yyn;
01652 int yyresult;
01653
01654 int yytoken;
01655
01656
01657 YYSTYPE yyval;
01658
01659 #if YYERROR_VERBOSE
01660
01661 char yymsgbuf[128];
01662 char *yymsg = yymsgbuf;
01663 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
01664 #endif
01665
01666 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
01667
01668
01669
01670 int yylen = 0;
01671
01672 yytoken = 0;
01673 yyss = yyssa;
01674 yyvs = yyvsa;
01675 yystacksize = YYINITDEPTH;
01676
01677 YYDPRINTF ((stderr, "Starting parse\n"));
01678
01679 yystate = 0;
01680 yyerrstatus = 0;
01681 yynerrs = 0;
01682 yychar = YYEMPTY;
01683
01684
01685
01686
01687
01688 yyssp = yyss;
01689 yyvsp = yyvs;
01690
01691 goto yysetstate;
01692
01693
01694
01695
01696 yynewstate:
01697
01698
01699 yyssp++;
01700
01701 yysetstate:
01702 *yyssp = yystate;
01703
01704 if (yyss + yystacksize - 1 <= yyssp)
01705 {
01706
01707 YYSIZE_T yysize = yyssp - yyss + 1;
01708
01709 #ifdef yyoverflow
01710 {
01711
01712
01713
01714 YYSTYPE *yyvs1 = yyvs;
01715 yytype_int16 *yyss1 = yyss;
01716
01717
01718
01719
01720
01721 yyoverflow (YY_("memory exhausted"),
01722 &yyss1, yysize * sizeof (*yyssp),
01723 &yyvs1, yysize * sizeof (*yyvsp),
01724 &yystacksize);
01725
01726 yyss = yyss1;
01727 yyvs = yyvs1;
01728 }
01729 #else
01730 # ifndef YYSTACK_RELOCATE
01731 goto yyexhaustedlab;
01732 # else
01733
01734 if (YYMAXDEPTH <= yystacksize)
01735 goto yyexhaustedlab;
01736 yystacksize *= 2;
01737 if (YYMAXDEPTH < yystacksize)
01738 yystacksize = YYMAXDEPTH;
01739
01740 {
01741 yytype_int16 *yyss1 = yyss;
01742 union yyalloc *yyptr =
01743 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01744 if (! yyptr)
01745 goto yyexhaustedlab;
01746 YYSTACK_RELOCATE (yyss_alloc, yyss);
01747 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
01748 # undef YYSTACK_RELOCATE
01749 if (yyss1 != yyssa)
01750 YYSTACK_FREE (yyss1);
01751 }
01752 # endif
01753 #endif
01754
01755 yyssp = yyss + yysize - 1;
01756 yyvsp = yyvs + yysize - 1;
01757
01758 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01759 (unsigned long int) yystacksize));
01760
01761 if (yyss + yystacksize - 1 <= yyssp)
01762 YYABORT;
01763 }
01764
01765 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01766
01767 if (yystate == YYFINAL)
01768 YYACCEPT;
01769
01770 goto yybackup;
01771
01772
01773
01774
01775 yybackup:
01776
01777
01778
01779
01780
01781 yyn = yypact[yystate];
01782 if (yyn == YYPACT_NINF)
01783 goto yydefault;
01784
01785
01786
01787
01788 if (yychar == YYEMPTY)
01789 {
01790 YYDPRINTF ((stderr, "Reading a token: "));
01791 yychar = YYLEX;
01792 }
01793
01794 if (yychar <= YYEOF)
01795 {
01796 yychar = yytoken = YYEOF;
01797 YYDPRINTF ((stderr, "Now at end of input.\n"));
01798 }
01799 else
01800 {
01801 yytoken = YYTRANSLATE (yychar);
01802 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
01803 }
01804
01805
01806
01807 yyn += yytoken;
01808 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01809 goto yydefault;
01810 yyn = yytable[yyn];
01811 if (yyn <= 0)
01812 {
01813 if (yyn == 0 || yyn == YYTABLE_NINF)
01814 goto yyerrlab;
01815 yyn = -yyn;
01816 goto yyreduce;
01817 }
01818
01819
01820
01821 if (yyerrstatus)
01822 yyerrstatus--;
01823
01824
01825 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
01826
01827
01828 yychar = YYEMPTY;
01829
01830 yystate = yyn;
01831 *++yyvsp = yylval;
01832
01833 goto yynewstate;
01834
01835
01836
01837
01838
01839 yydefault:
01840 yyn = yydefact[yystate];
01841 if (yyn == 0)
01842 goto yyerrlab;
01843 goto yyreduce;
01844
01845
01846
01847
01848
01849 yyreduce:
01850
01851 yylen = yyr2[yyn];
01852
01853
01854
01855
01856
01857
01858
01859
01860
01861 yyval = yyvsp[1-yylen];
01862
01863
01864 YY_REDUCE_PRINT (yyn);
01865 switch (yyn)
01866 {
01867 case 2:
01868
01869
01870 #line 265 "parser/faustparser.y"
01871 { (yyval.exp) = (yyvsp[(1) - (1)].exp); gResult = formatDefinitions((yyval.exp)); ;}
01872 break;
01873
01874 case 3:
01875
01876
01877 #line 268 "parser/faustparser.y"
01878 { (yyval.exp) = nil; ;}
01879 break;
01880
01881 case 4:
01882
01883
01884 #line 269 "parser/faustparser.y"
01885 { (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
01886 break;
01887
01888 case 5:
01889
01890
01891 #line 271 "parser/faustparser.y"
01892 { (yyval.exp) = nil; ;}
01893 break;
01894
01895 case 6:
01896
01897
01898 #line 272 "parser/faustparser.y"
01899 { (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
01900 break;
01901
01902 case 7:
01903
01904
01905 #line 275 "parser/faustparser.y"
01906 { (yyval.exp) = importFile((yyvsp[(3) - (5)].exp)); ;}
01907 break;
01908
01909 case 8:
01910
01911
01912 #line 276 "parser/faustparser.y"
01913 { declareMetadata((yyvsp[(2) - (4)].exp),(yyvsp[(3) - (4)].exp)); (yyval.exp) = nil; ;}
01914 break;
01915
01916 case 9:
01917
01918
01919 #line 277 "parser/faustparser.y"
01920 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
01921 break;
01922
01923 case 10:
01924
01925
01926 #line 278 "parser/faustparser.y"
01927 { declareDoc((yyvsp[(2) - (3)].exp)); (yyval.exp) = nil; ;}
01928 break;
01929
01930 case 11:
01931
01932
01933 #line 281 "parser/faustparser.y"
01934 { (yyval.exp) = nil; ;}
01935 break;
01936
01937 case 12:
01938
01939
01940 #line 282 "parser/faustparser.y"
01941 { (yyval.exp) = cons ((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
01942 break;
01943
01944 case 13:
01945
01946
01947 #line 285 "parser/faustparser.y"
01948 { (yyval.exp) = docTxt(doctxtString.c_str()); ;}
01949 break;
01950
01951 case 14:
01952
01953
01954 #line 286 "parser/faustparser.y"
01955 { (yyval.exp) = docEqn((yyvsp[(1) - (1)].exp)); ;}
01956 break;
01957
01958 case 15:
01959
01960
01961 #line 287 "parser/faustparser.y"
01962 { (yyval.exp) = docDgm((yyvsp[(1) - (1)].exp)); ;}
01963 break;
01964
01965 case 16:
01966
01967
01968 #line 288 "parser/faustparser.y"
01969 { (yyval.exp) = docNtc(); ;}
01970 break;
01971
01972 case 17:
01973
01974
01975 #line 289 "parser/faustparser.y"
01976 { (yyval.exp) = docLst(); ;}
01977 break;
01978
01979 case 18:
01980
01981
01982 #line 292 "parser/faustparser.y"
01983 { ;}
01984 break;
01985
01986 case 19:
01987
01988
01989 #line 293 "parser/faustparser.y"
01990 { (doctxtString += yytext); ;}
01991 break;
01992
01993 case 20:
01994
01995
01996 #line 296 "parser/faustparser.y"
01997 { (yyval.exp) = (yyvsp[(2) - (3)].exp); doctxtString = ""; ;}
01998 break;
01999
02000 case 21:
02001
02002
02003 #line 299 "parser/faustparser.y"
02004 { (yyval.exp) = (yyvsp[(2) - (3)].exp); doctxtString = ""; ;}
02005 break;
02006
02007 case 22:
02008
02009
02010 #line 302 "parser/faustparser.y"
02011 { doctxtString = ""; ;}
02012 break;
02013
02014 case 23:
02015
02016
02017 #line 305 "parser/faustparser.y"
02018 { doctxtString = ""; ;}
02019 break;
02020
02021 case 24:
02022
02023
02024 #line 308 "parser/faustparser.y"
02025 { (yyval.exp) = cons((yyvsp[(1) - (7)].exp),cons((yyvsp[(3) - (7)].exp),(yyvsp[(6) - (7)].exp))); ;}
02026 break;
02027
02028 case 25:
02029
02030
02031 #line 309 "parser/faustparser.y"
02032 { (yyval.exp) = cons((yyvsp[(1) - (4)].exp),cons(nil,(yyvsp[(3) - (4)].exp))); ;}
02033 break;
02034
02035 case 26:
02036
02037
02038 #line 310 "parser/faustparser.y"
02039 { (yyval.exp) = nil; yyerr++; ;}
02040 break;
02041
02042 case 27:
02043
02044
02045 #line 313 "parser/faustparser.y"
02046 { (yyval.exp)=(yyvsp[(1) - (1)].exp); setDefProp((yyvsp[(1) - (1)].exp), yyfilename, yylineno); ;}
02047 break;
02048
02049 case 28:
02050
02051
02052 #line 316 "parser/faustparser.y"
02053 { (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
02054 break;
02055
02056 case 29:
02057
02058
02059 #line 317 "parser/faustparser.y"
02060 { (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
02061 break;
02062
02063 case 30:
02064
02065
02066 #line 320 "parser/faustparser.y"
02067 { (yyval.exp) = boxWithLocalDef((yyvsp[(1) - (5)].exp),formatDefinitions((yyvsp[(4) - (5)].exp))); ;}
02068 break;
02069
02070 case 31:
02071
02072
02073 #line 321 "parser/faustparser.y"
02074 { (yyval.exp) = boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02075 break;
02076
02077 case 32:
02078
02079
02080 #line 322 "parser/faustparser.y"
02081 { (yyval.exp) = boxSeq((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02082 break;
02083
02084 case 33:
02085
02086
02087 #line 323 "parser/faustparser.y"
02088 { (yyval.exp) = boxSplit((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02089 break;
02090
02091 case 34:
02092
02093
02094 #line 324 "parser/faustparser.y"
02095 { (yyval.exp) = boxMerge((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02096 break;
02097
02098 case 35:
02099
02100
02101 #line 325 "parser/faustparser.y"
02102 { (yyval.exp) = boxRec((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02103 break;
02104
02105 case 36:
02106
02107
02108 #line 326 "parser/faustparser.y"
02109 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02110 break;
02111
02112 case 37:
02113
02114
02115 #line 329 "parser/faustparser.y"
02116 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigAdd)); ;}
02117 break;
02118
02119 case 38:
02120
02121
02122 #line 330 "parser/faustparser.y"
02123 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigSub)); ;}
02124 break;
02125
02126 case 39:
02127
02128
02129 #line 331 "parser/faustparser.y"
02130 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigMul)); ;}
02131 break;
02132
02133 case 40:
02134
02135
02136 #line 332 "parser/faustparser.y"
02137 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigDiv)); ;}
02138 break;
02139
02140 case 41:
02141
02142
02143 #line 333 "parser/faustparser.y"
02144 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigRem)); ;}
02145 break;
02146
02147 case 42:
02148
02149
02150 #line 334 "parser/faustparser.y"
02151 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),gPowPrim->box()); ;}
02152 break;
02153
02154 case 43:
02155
02156
02157 #line 335 "parser/faustparser.y"
02158 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigFixDelay)); ;}
02159 break;
02160
02161 case 44:
02162
02163
02164 #line 336 "parser/faustparser.y"
02165 { (yyval.exp) = boxSeq((yyvsp[(1) - (2)].exp),boxPrim1(sigDelay1)); ;}
02166 break;
02167
02168 case 45:
02169
02170
02171 #line 337 "parser/faustparser.y"
02172 { (yyval.exp) = boxAccess((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02173 break;
02174
02175 case 46:
02176
02177
02178 #line 339 "parser/faustparser.y"
02179 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigAND)); ;}
02180 break;
02181
02182 case 47:
02183
02184
02185 #line 340 "parser/faustparser.y"
02186 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigOR)); ;}
02187 break;
02188
02189 case 48:
02190
02191
02192 #line 341 "parser/faustparser.y"
02193 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigXOR)); ;}
02194 break;
02195
02196 case 49:
02197
02198
02199 #line 343 "parser/faustparser.y"
02200 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLeftShift)); ;}
02201 break;
02202
02203 case 50:
02204
02205
02206 #line 344 "parser/faustparser.y"
02207 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigRightShift)); ;}
02208 break;
02209
02210 case 51:
02211
02212
02213 #line 346 "parser/faustparser.y"
02214 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLT)); ;}
02215 break;
02216
02217 case 52:
02218
02219
02220 #line 347 "parser/faustparser.y"
02221 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigLE)); ;}
02222 break;
02223
02224 case 53:
02225
02226
02227 #line 348 "parser/faustparser.y"
02228 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigGT)); ;}
02229 break;
02230
02231 case 54:
02232
02233
02234 #line 349 "parser/faustparser.y"
02235 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigGE)); ;}
02236 break;
02237
02238 case 55:
02239
02240
02241 #line 350 "parser/faustparser.y"
02242 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigEQ)); ;}
02243 break;
02244
02245 case 56:
02246
02247
02248 #line 351 "parser/faustparser.y"
02249 { (yyval.exp) = boxSeq(boxPar((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)),boxPrim2(sigNE)); ;}
02250 break;
02251
02252 case 57:
02253
02254
02255 #line 353 "parser/faustparser.y"
02256 { (yyval.exp) = buildBoxAppl((yyvsp[(1) - (4)].exp),(yyvsp[(3) - (4)].exp)); ;}
02257 break;
02258
02259 case 58:
02260
02261
02262 #line 355 "parser/faustparser.y"
02263 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02264 break;
02265
02266 case 59:
02267
02268
02269 #line 358 "parser/faustparser.y"
02270 { (yyval.exp) = boxInt(atoi(yytext)); ;}
02271 break;
02272
02273 case 60:
02274
02275
02276 #line 359 "parser/faustparser.y"
02277 { (yyval.exp) = boxReal(atof(yytext)); ;}
02278 break;
02279
02280 case 61:
02281
02282
02283 #line 361 "parser/faustparser.y"
02284 { (yyval.exp) = boxInt (atoi(yytext)); ;}
02285 break;
02286
02287 case 62:
02288
02289
02290 #line 362 "parser/faustparser.y"
02291 { (yyval.exp) = boxReal(atof(yytext)); ;}
02292 break;
02293
02294 case 63:
02295
02296
02297 #line 364 "parser/faustparser.y"
02298 { (yyval.exp) = boxInt ( -atoi(yytext) ); ;}
02299 break;
02300
02301 case 64:
02302
02303
02304 #line 365 "parser/faustparser.y"
02305 { (yyval.exp) = boxReal( -atof(yytext) ); ;}
02306 break;
02307
02308 case 65:
02309
02310
02311 #line 367 "parser/faustparser.y"
02312 { (yyval.exp) = boxWire(); ;}
02313 break;
02314
02315 case 66:
02316
02317
02318 #line 368 "parser/faustparser.y"
02319 { (yyval.exp) = boxCut(); ;}
02320 break;
02321
02322 case 67:
02323
02324
02325 #line 370 "parser/faustparser.y"
02326 { (yyval.exp) = boxPrim1(sigDelay1); ;}
02327 break;
02328
02329 case 68:
02330
02331
02332 #line 371 "parser/faustparser.y"
02333 { (yyval.exp) = boxPrim2(sigPrefix); ;}
02334 break;
02335
02336 case 69:
02337
02338
02339 #line 373 "parser/faustparser.y"
02340 { (yyval.exp) = boxPrim1(sigIntCast); ;}
02341 break;
02342
02343 case 70:
02344
02345
02346 #line 374 "parser/faustparser.y"
02347 { (yyval.exp) = boxPrim1(sigFloatCast); ;}
02348 break;
02349
02350 case 71:
02351
02352
02353 #line 376 "parser/faustparser.y"
02354 { (yyval.exp) = boxPrim2(sigAdd); ;}
02355 break;
02356
02357 case 72:
02358
02359
02360 #line 377 "parser/faustparser.y"
02361 { (yyval.exp) = boxPrim2(sigSub); ;}
02362 break;
02363
02364 case 73:
02365
02366
02367 #line 378 "parser/faustparser.y"
02368 { (yyval.exp) = boxPrim2(sigMul); ;}
02369 break;
02370
02371 case 74:
02372
02373
02374 #line 379 "parser/faustparser.y"
02375 { (yyval.exp) = boxPrim2(sigDiv); ;}
02376 break;
02377
02378 case 75:
02379
02380
02381 #line 380 "parser/faustparser.y"
02382 { (yyval.exp) = boxPrim2(sigRem); ;}
02383 break;
02384
02385 case 76:
02386
02387
02388 #line 381 "parser/faustparser.y"
02389 { (yyval.exp) = boxPrim2(sigFixDelay); ;}
02390 break;
02391
02392 case 77:
02393
02394
02395 #line 383 "parser/faustparser.y"
02396 { (yyval.exp) = boxPrim2(sigAND); ;}
02397 break;
02398
02399 case 78:
02400
02401
02402 #line 384 "parser/faustparser.y"
02403 { (yyval.exp) = boxPrim2(sigOR); ;}
02404 break;
02405
02406 case 79:
02407
02408
02409 #line 385 "parser/faustparser.y"
02410 { (yyval.exp) = boxPrim2(sigXOR); ;}
02411 break;
02412
02413 case 80:
02414
02415
02416 #line 387 "parser/faustparser.y"
02417 { (yyval.exp) = boxPrim2(sigLeftShift); ;}
02418 break;
02419
02420 case 81:
02421
02422
02423 #line 388 "parser/faustparser.y"
02424 { (yyval.exp) = boxPrim2(sigRightShift); ;}
02425 break;
02426
02427 case 82:
02428
02429
02430 #line 390 "parser/faustparser.y"
02431 { (yyval.exp) = boxPrim2(sigLT); ;}
02432 break;
02433
02434 case 83:
02435
02436
02437 #line 391 "parser/faustparser.y"
02438 { (yyval.exp) = boxPrim2(sigLE); ;}
02439 break;
02440
02441 case 84:
02442
02443
02444 #line 392 "parser/faustparser.y"
02445 { (yyval.exp) = boxPrim2(sigGT); ;}
02446 break;
02447
02448 case 85:
02449
02450
02451 #line 393 "parser/faustparser.y"
02452 { (yyval.exp) = boxPrim2(sigGE); ;}
02453 break;
02454
02455 case 86:
02456
02457
02458 #line 394 "parser/faustparser.y"
02459 { (yyval.exp) = boxPrim2(sigEQ); ;}
02460 break;
02461
02462 case 87:
02463
02464
02465 #line 395 "parser/faustparser.y"
02466 { (yyval.exp) = boxPrim2(sigNE); ;}
02467 break;
02468
02469 case 88:
02470
02471
02472 #line 397 "parser/faustparser.y"
02473 { (yyval.exp) = boxPrim2(sigAttach); ;}
02474 break;
02475
02476 case 89:
02477
02478
02479 #line 399 "parser/faustparser.y"
02480 { (yyval.exp) = gAcosPrim->box(); ;}
02481 break;
02482
02483 case 90:
02484
02485
02486 #line 400 "parser/faustparser.y"
02487 { (yyval.exp) = gAsinPrim->box(); ;}
02488 break;
02489
02490 case 91:
02491
02492
02493 #line 401 "parser/faustparser.y"
02494 { (yyval.exp) = gAtanPrim->box(); ;}
02495 break;
02496
02497 case 92:
02498
02499
02500 #line 402 "parser/faustparser.y"
02501 { (yyval.exp) = gAtan2Prim->box(); ;}
02502 break;
02503
02504 case 93:
02505
02506
02507 #line 403 "parser/faustparser.y"
02508 { (yyval.exp) = gCosPrim->box(); ;}
02509 break;
02510
02511 case 94:
02512
02513
02514 #line 404 "parser/faustparser.y"
02515 { (yyval.exp) = gSinPrim->box(); ;}
02516 break;
02517
02518 case 95:
02519
02520
02521 #line 405 "parser/faustparser.y"
02522 { (yyval.exp) = gTanPrim->box(); ;}
02523 break;
02524
02525 case 96:
02526
02527
02528 #line 407 "parser/faustparser.y"
02529 { (yyval.exp) = gExpPrim->box(); ;}
02530 break;
02531
02532 case 97:
02533
02534
02535 #line 408 "parser/faustparser.y"
02536 { (yyval.exp) = gLogPrim->box(); ;}
02537 break;
02538
02539 case 98:
02540
02541
02542 #line 409 "parser/faustparser.y"
02543 { (yyval.exp) = gLog10Prim->box(); ;}
02544 break;
02545
02546 case 99:
02547
02548
02549 #line 410 "parser/faustparser.y"
02550 { (yyval.exp) = gPowPrim->box(); ;}
02551 break;
02552
02553 case 100:
02554
02555
02556 #line 411 "parser/faustparser.y"
02557 { (yyval.exp) = gPowPrim->box(); ;}
02558 break;
02559
02560 case 101:
02561
02562
02563 #line 412 "parser/faustparser.y"
02564 { (yyval.exp) = gSqrtPrim->box(); ;}
02565 break;
02566
02567 case 102:
02568
02569
02570 #line 414 "parser/faustparser.y"
02571 { (yyval.exp) = gAbsPrim->box(); ;}
02572 break;
02573
02574 case 103:
02575
02576
02577 #line 415 "parser/faustparser.y"
02578 { (yyval.exp) = gMinPrim->box(); ;}
02579 break;
02580
02581 case 104:
02582
02583
02584 #line 416 "parser/faustparser.y"
02585 { (yyval.exp) = gMaxPrim->box(); ;}
02586 break;
02587
02588 case 105:
02589
02590
02591 #line 418 "parser/faustparser.y"
02592 { (yyval.exp) = gFmodPrim->box(); ;}
02593 break;
02594
02595 case 106:
02596
02597
02598 #line 419 "parser/faustparser.y"
02599 { (yyval.exp) = gRemainderPrim->box(); ;}
02600 break;
02601
02602 case 107:
02603
02604
02605 #line 421 "parser/faustparser.y"
02606 { (yyval.exp) = gFloorPrim->box(); ;}
02607 break;
02608
02609 case 108:
02610
02611
02612 #line 422 "parser/faustparser.y"
02613 { (yyval.exp) = gCeilPrim->box(); ;}
02614 break;
02615
02616 case 109:
02617
02618
02619 #line 423 "parser/faustparser.y"
02620 { (yyval.exp) = gRintPrim->box(); ;}
02621 break;
02622
02623 case 110:
02624
02625
02626 #line 426 "parser/faustparser.y"
02627 { (yyval.exp) = boxPrim3(sigReadOnlyTable); ;}
02628 break;
02629
02630 case 111:
02631
02632
02633 #line 427 "parser/faustparser.y"
02634 { (yyval.exp) = boxPrim5(sigWriteReadTable); ;}
02635 break;
02636
02637 case 112:
02638
02639
02640 #line 429 "parser/faustparser.y"
02641 { (yyval.exp) = boxPrim3(sigSelect2); ;}
02642 break;
02643
02644 case 113:
02645
02646
02647 #line 430 "parser/faustparser.y"
02648 { (yyval.exp) = boxPrim4(sigSelect3); ;}
02649 break;
02650
02651 case 114:
02652
02653
02654 #line 432 "parser/faustparser.y"
02655 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02656 break;
02657
02658 case 115:
02659
02660
02661 #line 433 "parser/faustparser.y"
02662 { (yyval.exp) = boxSeq(boxPar(boxInt(0),(yyvsp[(2) - (2)].exp)),boxPrim2(sigSub)); ;}
02663 break;
02664
02665 case 116:
02666
02667
02668 #line 435 "parser/faustparser.y"
02669 { (yyval.exp) = (yyvsp[(2) - (3)].exp); ;}
02670 break;
02671
02672 case 117:
02673
02674
02675 #line 437 "parser/faustparser.y"
02676 { (yyval.exp) = buildBoxAbstr((yyvsp[(3) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02677 break;
02678
02679 case 118:
02680
02681
02682 #line 439 "parser/faustparser.y"
02683 { (yyval.exp) = boxCase(checkRulelist((yyvsp[(3) - (4)].exp))); ;}
02684 break;
02685
02686 case 119:
02687
02688
02689 #line 441 "parser/faustparser.y"
02690 { (yyval.exp) = boxFFun((yyvsp[(1) - (1)].exp)); ;}
02691 break;
02692
02693 case 120:
02694
02695
02696 #line 442 "parser/faustparser.y"
02697 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02698 break;
02699
02700 case 121:
02701
02702
02703 #line 443 "parser/faustparser.y"
02704 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02705 break;
02706
02707 case 122:
02708
02709
02710 #line 444 "parser/faustparser.y"
02711 { (yyval.exp) = boxComponent((yyvsp[(3) - (4)].exp)); ;}
02712 break;
02713
02714 case 123:
02715
02716
02717 #line 445 "parser/faustparser.y"
02718 { (yyval.exp) = boxLibrary((yyvsp[(3) - (4)].exp)); ;}
02719 break;
02720
02721 case 124:
02722
02723
02724 #line 446 "parser/faustparser.y"
02725 { (yyval.exp) = boxWithLocalDef(boxEnvironment(),formatDefinitions((yyvsp[(3) - (4)].exp))); ;}
02726 break;
02727
02728 case 125:
02729
02730
02731 #line 448 "parser/faustparser.y"
02732 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02733 break;
02734
02735 case 126:
02736
02737
02738 #line 449 "parser/faustparser.y"
02739 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02740 break;
02741
02742 case 127:
02743
02744
02745 #line 450 "parser/faustparser.y"
02746 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02747 break;
02748
02749 case 128:
02750
02751
02752 #line 451 "parser/faustparser.y"
02753 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02754 break;
02755
02756 case 129:
02757
02758
02759 #line 452 "parser/faustparser.y"
02760 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02761 break;
02762
02763 case 130:
02764
02765
02766 #line 453 "parser/faustparser.y"
02767 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02768 break;
02769
02770 case 131:
02771
02772
02773 #line 454 "parser/faustparser.y"
02774 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02775 break;
02776
02777 case 132:
02778
02779
02780 #line 455 "parser/faustparser.y"
02781 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02782 break;
02783
02784 case 133:
02785
02786
02787 #line 456 "parser/faustparser.y"
02788 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02789 break;
02790
02791 case 134:
02792
02793
02794 #line 457 "parser/faustparser.y"
02795 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02796 break;
02797
02798 case 135:
02799
02800
02801 #line 459 "parser/faustparser.y"
02802 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02803 break;
02804
02805 case 136:
02806
02807
02808 #line 460 "parser/faustparser.y"
02809 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02810 break;
02811
02812 case 137:
02813
02814
02815 #line 461 "parser/faustparser.y"
02816 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02817 break;
02818
02819 case 138:
02820
02821
02822 #line 462 "parser/faustparser.y"
02823 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02824 break;
02825
02826 case 139:
02827
02828
02829 #line 466 "parser/faustparser.y"
02830 { (yyval.exp) = boxIdent(yytext); ;}
02831 break;
02832
02833 case 140:
02834
02835
02836 #line 469 "parser/faustparser.y"
02837 { (yyval.exp) = tree(yytext); ;}
02838 break;
02839
02840 case 141:
02841
02842
02843 #line 474 "parser/faustparser.y"
02844 { (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
02845 break;
02846
02847 case 142:
02848
02849
02850 #line 475 "parser/faustparser.y"
02851 { (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
02852 break;
02853
02854 case 143:
02855
02856
02857 #line 478 "parser/faustparser.y"
02858 { (yyval.exp) = boxSeq((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02859 break;
02860
02861 case 144:
02862
02863
02864 #line 479 "parser/faustparser.y"
02865 { (yyval.exp) = boxSplit((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02866 break;
02867
02868 case 145:
02869
02870
02871 #line 480 "parser/faustparser.y"
02872 { (yyval.exp) = boxMerge((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02873 break;
02874
02875 case 146:
02876
02877
02878 #line 481 "parser/faustparser.y"
02879 { (yyval.exp) = boxRec((yyvsp[(1) - (3)].exp),(yyvsp[(3) - (3)].exp)); ;}
02880 break;
02881
02882 case 147:
02883
02884
02885 #line 482 "parser/faustparser.y"
02886 { (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
02887 break;
02888
02889 case 148:
02890
02891
02892 #line 485 "parser/faustparser.y"
02893 { (yyval.exp) = tree(yytext); ;}
02894 break;
02895
02896 case 149:
02897
02898
02899 #line 488 "parser/faustparser.y"
02900 { (yyval.exp) = unquote(yytext); ;}
02901 break;
02902
02903 case 150:
02904
02905
02906 #line 491 "parser/faustparser.y"
02907 { (yyval.exp) = tree(yytext); ;}
02908 break;
02909
02910 case 151:
02911
02912
02913 #line 492 "parser/faustparser.y"
02914 { (yyval.exp) = tree(yytext); ;}
02915 break;
02916
02917 case 152:
02918
02919
02920 #line 498 "parser/faustparser.y"
02921 { (yyval.exp) = boxIPar((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02922 break;
02923
02924 case 153:
02925
02926
02927 #line 502 "parser/faustparser.y"
02928 { (yyval.exp) = boxISeq((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02929 break;
02930
02931 case 154:
02932
02933
02934 #line 506 "parser/faustparser.y"
02935 { (yyval.exp) = boxISum((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02936 break;
02937
02938 case 155:
02939
02940
02941 #line 510 "parser/faustparser.y"
02942 { (yyval.exp) = boxIProd((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02943 break;
02944
02945 case 156:
02946
02947
02948 #line 517 "parser/faustparser.y"
02949 { (yyval.exp) = ffunction((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
02950 break;
02951
02952 case 157:
02953
02954
02955 #line 521 "parser/faustparser.y"
02956 { (yyval.exp) = boxFConst((yyvsp[(3) - (7)].exp),(yyvsp[(4) - (7)].exp),(yyvsp[(6) - (7)].exp)); ;}
02957 break;
02958
02959 case 158:
02960
02961
02962 #line 524 "parser/faustparser.y"
02963 { (yyval.exp) = boxFVar((yyvsp[(3) - (7)].exp),(yyvsp[(4) - (7)].exp),(yyvsp[(6) - (7)].exp)); ;}
02964 break;
02965
02966 case 159:
02967
02968
02969 #line 528 "parser/faustparser.y"
02970 { (yyval.exp) = boxButton((yyvsp[(3) - (4)].exp)); ;}
02971 break;
02972
02973 case 160:
02974
02975
02976 #line 531 "parser/faustparser.y"
02977 { (yyval.exp) = boxCheckbox((yyvsp[(3) - (4)].exp)); ;}
02978 break;
02979
02980 case 161:
02981
02982
02983 #line 535 "parser/faustparser.y"
02984 { (yyval.exp) = boxVSlider((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
02985 break;
02986
02987 case 162:
02988
02989
02990 #line 538 "parser/faustparser.y"
02991 { (yyval.exp) = boxHSlider((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
02992 break;
02993
02994 case 163:
02995
02996
02997 #line 541 "parser/faustparser.y"
02998 { (yyval.exp) = boxNumEntry((yyvsp[(3) - (12)].exp),(yyvsp[(5) - (12)].exp),(yyvsp[(7) - (12)].exp),(yyvsp[(9) - (12)].exp),(yyvsp[(11) - (12)].exp)); ;}
02999 break;
03000
03001 case 164:
03002
03003
03004 #line 544 "parser/faustparser.y"
03005 { (yyval.exp) = boxVGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
03006 break;
03007
03008 case 165:
03009
03010
03011 #line 547 "parser/faustparser.y"
03012 { (yyval.exp) = boxHGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
03013 break;
03014
03015 case 166:
03016
03017
03018 #line 550 "parser/faustparser.y"
03019 { (yyval.exp) = boxTGroup((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
03020 break;
03021
03022 case 167:
03023
03024
03025 #line 554 "parser/faustparser.y"
03026 { (yyval.exp) = boxVBargraph((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
03027 break;
03028
03029 case 168:
03030
03031
03032 #line 557 "parser/faustparser.y"
03033 { (yyval.exp) = boxHBargraph((yyvsp[(3) - (8)].exp),(yyvsp[(5) - (8)].exp),(yyvsp[(7) - (8)].exp)); ;}
03034 break;
03035
03036 case 169:
03037
03038
03039 #line 562 "parser/faustparser.y"
03040 { (yyval.exp) = cons((yyvsp[(1) - (5)].exp), cons((yyvsp[(2) - (5)].exp), (yyvsp[(4) - (5)].exp))); ;}
03041 break;
03042
03043 case 170:
03044
03045
03046 #line 563 "parser/faustparser.y"
03047 { (yyval.exp) = cons((yyvsp[(1) - (4)].exp), cons((yyvsp[(2) - (4)].exp), nil)); ;}
03048 break;
03049
03050 case 171:
03051
03052
03053 #line 566 "parser/faustparser.y"
03054 { (yyval.exp) = tree(yytext); ;}
03055 break;
03056
03057 case 172:
03058
03059
03060 #line 569 "parser/faustparser.y"
03061 { (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
03062 break;
03063
03064 case 173:
03065
03066
03067 #line 570 "parser/faustparser.y"
03068 { (yyval.exp) = cons((yyvsp[(3) - (3)].exp),(yyvsp[(1) - (3)].exp)); ;}
03069 break;
03070
03071 case 174:
03072
03073
03074 #line 573 "parser/faustparser.y"
03075 { (yyval.exp) = cons((yyvsp[(1) - (1)].exp),nil); ;}
03076 break;
03077
03078 case 175:
03079
03080
03081 #line 574 "parser/faustparser.y"
03082 { (yyval.exp) = cons((yyvsp[(2) - (2)].exp),(yyvsp[(1) - (2)].exp)); ;}
03083 break;
03084
03085 case 176:
03086
03087
03088 #line 578 "parser/faustparser.y"
03089 { (yyval.exp) = cons((yyvsp[(2) - (6)].exp),(yyvsp[(5) - (6)].exp)); ;}
03090 break;
03091
03092 case 177:
03093
03094
03095 #line 581 "parser/faustparser.y"
03096 { (yyval.exp) = tree(0); ;}
03097 break;
03098
03099 case 178:
03100
03101
03102 #line 582 "parser/faustparser.y"
03103 { (yyval.exp) = tree(1); ;}
03104 break;
03105
03106
03107
03108
03109 #line 3110 "parser/faustparser.cpp"
03110 default: break;
03111 }
03112 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
03113
03114 YYPOPSTACK (yylen);
03115 yylen = 0;
03116 YY_STACK_PRINT (yyss, yyssp);
03117
03118 *++yyvsp = yyval;
03119
03120
03121
03122
03123
03124 yyn = yyr1[yyn];
03125
03126 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
03127 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
03128 yystate = yytable[yystate];
03129 else
03130 yystate = yydefgoto[yyn - YYNTOKENS];
03131
03132 goto yynewstate;
03133
03134
03135
03136
03137
03138 yyerrlab:
03139
03140 if (!yyerrstatus)
03141 {
03142 ++yynerrs;
03143 #if ! YYERROR_VERBOSE
03144 yyerror (YY_("syntax error"));
03145 #else
03146 {
03147 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
03148 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
03149 {
03150 YYSIZE_T yyalloc = 2 * yysize;
03151 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
03152 yyalloc = YYSTACK_ALLOC_MAXIMUM;
03153 if (yymsg != yymsgbuf)
03154 YYSTACK_FREE (yymsg);
03155 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
03156 if (yymsg)
03157 yymsg_alloc = yyalloc;
03158 else
03159 {
03160 yymsg = yymsgbuf;
03161 yymsg_alloc = sizeof yymsgbuf;
03162 }
03163 }
03164
03165 if (0 < yysize && yysize <= yymsg_alloc)
03166 {
03167 (void) yysyntax_error (yymsg, yystate, yychar);
03168 yyerror (yymsg);
03169 }
03170 else
03171 {
03172 yyerror (YY_("syntax error"));
03173 if (yysize != 0)
03174 goto yyexhaustedlab;
03175 }
03176 }
03177 #endif
03178 }
03179
03180
03181
03182 if (yyerrstatus == 3)
03183 {
03184
03185
03186
03187 if (yychar <= YYEOF)
03188 {
03189
03190 if (yychar == YYEOF)
03191 YYABORT;
03192 }
03193 else
03194 {
03195 yydestruct ("Error: discarding",
03196 yytoken, &yylval);
03197 yychar = YYEMPTY;
03198 }
03199 }
03200
03201
03202
03203 goto yyerrlab1;
03204
03205
03206
03207
03208
03209 yyerrorlab:
03210
03211
03212
03213
03214 if ( 0)
03215 goto yyerrorlab;
03216
03217
03218
03219 YYPOPSTACK (yylen);
03220 yylen = 0;
03221 YY_STACK_PRINT (yyss, yyssp);
03222 yystate = *yyssp;
03223 goto yyerrlab1;
03224
03225
03226
03227
03228
03229 yyerrlab1:
03230 yyerrstatus = 3;
03231
03232 for (;;)
03233 {
03234 yyn = yypact[yystate];
03235 if (yyn != YYPACT_NINF)
03236 {
03237 yyn += YYTERROR;
03238 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
03239 {
03240 yyn = yytable[yyn];
03241 if (0 < yyn)
03242 break;
03243 }
03244 }
03245
03246
03247 if (yyssp == yyss)
03248 YYABORT;
03249
03250
03251 yydestruct ("Error: popping",
03252 yystos[yystate], yyvsp);
03253 YYPOPSTACK (1);
03254 yystate = *yyssp;
03255 YY_STACK_PRINT (yyss, yyssp);
03256 }
03257
03258 *++yyvsp = yylval;
03259
03260
03261
03262 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
03263
03264 yystate = yyn;
03265 goto yynewstate;
03266
03267
03268
03269
03270
03271 yyacceptlab:
03272 yyresult = 0;
03273 goto yyreturn;
03274
03275
03276
03277
03278 yyabortlab:
03279 yyresult = 1;
03280 goto yyreturn;
03281
03282 #if !defined(yyoverflow) || YYERROR_VERBOSE
03283
03284
03285
03286 yyexhaustedlab:
03287 yyerror (YY_("memory exhausted"));
03288 yyresult = 2;
03289
03290 #endif
03291
03292 yyreturn:
03293 if (yychar != YYEMPTY)
03294 yydestruct ("Cleanup: discarding lookahead",
03295 yytoken, &yylval);
03296
03297
03298 YYPOPSTACK (yylen);
03299 YY_STACK_PRINT (yyss, yyssp);
03300 while (yyssp != yyss)
03301 {
03302 yydestruct ("Cleanup: popping",
03303 yystos[*yyssp], yyvsp);
03304 YYPOPSTACK (1);
03305 }
03306 #ifndef yyoverflow
03307 if (yyss != yyssa)
03308 YYSTACK_FREE (yyss);
03309 #endif
03310 #if YYERROR_VERBOSE
03311 if (yymsg != yymsgbuf)
03312 YYSTACK_FREE (yymsg);
03313 #endif
03314
03315 return YYID (yyresult);
03316 }
03317
03318
03319
03320
03321 #line 585 "parser/faustparser.y"
03322
03323
03324