~ubuntu-branches/ubuntu/feisty/faust/feisty

« back to all changes in this revision

Viewing changes to compiler/parser/faustparser.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Mario Lang
  • Date: 2006-10-09 11:05:30 UTC
  • mfrom: (1.1.1 upstream) (2.1.1 edgy)
  • Revision ID: james.westby@ubuntu.com-20061009110530-zvktdvpq5zewdxso
Tags: 0.9.8-1
* New upstream release.
* Upgrade Standards-Version to 3.7.2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* A Bison parser, made by GNU Bison 1.875.  */
 
2
 
 
3
/* Skeleton parser for Yacc-like parsing with Bison,
 
4
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
 
5
 
 
6
   This program is free software; you can redistribute it and/or modify
 
7
   it under the terms of the GNU General Public License as published by
 
8
   the Free Software Foundation; either version 2, or (at your option)
 
9
   any later version.
 
10
 
 
11
   This program is distributed in the hope that it will be useful,
 
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
   GNU General Public License for more details.
 
15
 
 
16
   You should have received a copy of the GNU General Public License
 
17
   along with this program; if not, write to the Free Software
 
18
   Foundation, Inc., 59 Temple Place - Suite 330,
 
19
   Boston, MA 02111-1307, USA.  */
 
20
 
 
21
/* As a special exception, when this file is copied by Bison into a
 
22
   Bison output file, you may use that output file without restriction.
 
23
   This special exception was added by the Free Software Foundation
 
24
   in version 1.24 of Bison.  */
 
25
 
 
26
/* Written by Richard Stallman by simplifying the original so called
 
27
   ``semantic'' parser.  */
 
28
 
 
29
/* All symbols defined below should begin with yy or YY, to avoid
 
30
   infringing on user name space.  This should be done even for local
 
31
   variables, as they might otherwise be expanded by user macros.
 
32
   There are some unavoidable exceptions within include files to
 
33
   define necessary library symbols; they are noted "INFRINGES ON
 
34
   USER NAME SPACE" below.  */
 
35
 
 
36
/* Identify Bison output.  */
 
37
#define YYBISON 1
 
38
 
 
39
/* Skeleton name.  */
 
40
#define YYSKELETON_NAME "yacc.c"
 
41
 
 
42
/* Pure parsers.  */
 
43
#define YYPURE 0
 
44
 
 
45
/* Using locations.  */
 
46
#define YYLSP_NEEDED 0
 
47
 
 
48
 
 
49
 
 
50
/* Tokens.  */
 
51
#ifndef YYTOKENTYPE
 
52
# define YYTOKENTYPE
 
53
   /* Put the tokens into the symbol table, so that GDB and other debuggers
 
54
      know about them.  */
 
55
   enum yytokentype {
 
56
     WITH = 258,
 
57
     MIX = 259,
 
58
     SPLIT = 260,
 
59
     SEQ = 261,
 
60
     PAR = 262,
 
61
     REC = 263,
 
62
     NE = 264,
 
63
     GE = 265,
 
64
     GT = 266,
 
65
     EQ = 267,
 
66
     LE = 268,
 
67
     LT = 269,
 
68
     OR = 270,
 
69
     SUB = 271,
 
70
     ADD = 272,
 
71
     RSH = 273,
 
72
     LSH = 274,
 
73
     XOR = 275,
 
74
     AND = 276,
 
75
     MOD = 277,
 
76
     DIV = 278,
 
77
     MUL = 279,
 
78
     FDELAY = 280,
 
79
     DELAY1 = 281,
 
80
     DOT = 282,
 
81
     APPL = 283,
 
82
     MEM = 284,
 
83
     PREFIX = 285,
 
84
     INTCAST = 286,
 
85
     FLOATCAST = 287,
 
86
     FFUNCTION = 288,
 
87
     FCONSTANT = 289,
 
88
     BUTTON = 290,
 
89
     CHECKBOX = 291,
 
90
     VSLIDER = 292,
 
91
     HSLIDER = 293,
 
92
     NENTRY = 294,
 
93
     VGROUP = 295,
 
94
     HGROUP = 296,
 
95
     TGROUP = 297,
 
96
     HBARGRAPH = 298,
 
97
     VBARGRAPH = 299,
 
98
     ATTACH = 300,
 
99
     ACOS = 301,
 
100
     ASIN = 302,
 
101
     ATAN = 303,
 
102
     ATAN2 = 304,
 
103
     COS = 305,
 
104
     SIN = 306,
 
105
     TAN = 307,
 
106
     EXP = 308,
 
107
     LOG = 309,
 
108
     LOG10 = 310,
 
109
     POW = 311,
 
110
     SQRT = 312,
 
111
     ABS = 313,
 
112
     MIN = 314,
 
113
     MAX = 315,
 
114
     FMOD = 316,
 
115
     REMAINDER = 317,
 
116
     FLOOR = 318,
 
117
     CEIL = 319,
 
118
     RINT = 320,
 
119
     RDTBL = 321,
 
120
     RWTBL = 322,
 
121
     SELECT2 = 323,
 
122
     SELECT3 = 324,
 
123
     INT = 325,
 
124
     FLOAT = 326,
 
125
     LAMBDA = 327,
 
126
     WIRE = 328,
 
127
     CUT = 329,
 
128
     ENDDEF = 330,
 
129
     VIRG = 331,
 
130
     LPAR = 332,
 
131
     RPAR = 333,
 
132
     LBRAQ = 334,
 
133
     RBRAQ = 335,
 
134
     DEF = 336,
 
135
     IMPORT = 337,
 
136
     COMPONENT = 338,
 
137
     IPAR = 339,
 
138
     ISEQ = 340,
 
139
     ISUM = 341,
 
140
     IPROD = 342,
 
141
     STRING = 343,
 
142
     FSTRING = 344,
 
143
     IDENT = 345,
 
144
     EXTRA = 346,
 
145
     DECLARE = 347,
 
146
     NAMEPROP = 348,
 
147
     AUTHORPROP = 349,
 
148
     COPYRIGHTPROP = 350,
 
149
     VERSIONPROP = 351,
 
150
     LICENSEPROP = 352
 
151
   };
 
152
#endif
 
153
#define WITH 258
 
154
#define MIX 259
 
155
#define SPLIT 260
 
156
#define SEQ 261
 
157
#define PAR 262
 
158
#define REC 263
 
159
#define NE 264
 
160
#define GE 265
 
161
#define GT 266
 
162
#define EQ 267
 
163
#define LE 268
 
164
#define LT 269
 
165
#define OR 270
 
166
#define SUB 271
 
167
#define ADD 272
 
168
#define RSH 273
 
169
#define LSH 274
 
170
#define XOR 275
 
171
#define AND 276
 
172
#define MOD 277
 
173
#define DIV 278
 
174
#define MUL 279
 
175
#define FDELAY 280
 
176
#define DELAY1 281
 
177
#define DOT 282
 
178
#define APPL 283
 
179
#define MEM 284
 
180
#define PREFIX 285
 
181
#define INTCAST 286
 
182
#define FLOATCAST 287
 
183
#define FFUNCTION 288
 
184
#define FCONSTANT 289
 
185
#define BUTTON 290
 
186
#define CHECKBOX 291
 
187
#define VSLIDER 292
 
188
#define HSLIDER 293
 
189
#define NENTRY 294
 
190
#define VGROUP 295
 
191
#define HGROUP 296
 
192
#define TGROUP 297
 
193
#define HBARGRAPH 298
 
194
#define VBARGRAPH 299
 
195
#define ATTACH 300
 
196
#define ACOS 301
 
197
#define ASIN 302
 
198
#define ATAN 303
 
199
#define ATAN2 304
 
200
#define COS 305
 
201
#define SIN 306
 
202
#define TAN 307
 
203
#define EXP 308
 
204
#define LOG 309
 
205
#define LOG10 310
 
206
#define POW 311
 
207
#define SQRT 312
 
208
#define ABS 313
 
209
#define MIN 314
 
210
#define MAX 315
 
211
#define FMOD 316
 
212
#define REMAINDER 317
 
213
#define FLOOR 318
 
214
#define CEIL 319
 
215
#define RINT 320
 
216
#define RDTBL 321
 
217
#define RWTBL 322
 
218
#define SELECT2 323
 
219
#define SELECT3 324
 
220
#define INT 325
 
221
#define FLOAT 326
 
222
#define LAMBDA 327
 
223
#define WIRE 328
 
224
#define CUT 329
 
225
#define ENDDEF 330
 
226
#define VIRG 331
 
227
#define LPAR 332
 
228
#define RPAR 333
 
229
#define LBRAQ 334
 
230
#define RBRAQ 335
 
231
#define DEF 336
 
232
#define IMPORT 337
 
233
#define COMPONENT 338
 
234
#define IPAR 339
 
235
#define ISEQ 340
 
236
#define ISUM 341
 
237
#define IPROD 342
 
238
#define STRING 343
 
239
#define FSTRING 344
 
240
#define IDENT 345
 
241
#define EXTRA 346
 
242
#define DECLARE 347
 
243
#define NAMEPROP 348
 
244
#define AUTHORPROP 349
 
245
#define COPYRIGHTPROP 350
 
246
#define VERSIONPROP 351
 
247
#define LICENSEPROP 352
 
248
 
 
249
 
 
250
 
 
251
 
 
252
/* Copy the first part of user declarations.  */
 
253
#line 4 "parser/faustparser.y"
 
254
 
 
255
 
 
256
#include "tree.hh"
 
257
#include "xtended.hh"
 
258
#include "boxes.hh"
 
259
#include "prim2.hh"
 
260
#include "signals.hh"
 
261
#include "errormsg.hh"
 
262
 
 
263
#include <string>
 
264
#include <list>
 
265
 
 
266
#define YYDEBUG 1
 
267
#define YYERROR_VERBOSE 1
 
268
#define YYMAXDEPTH      100000
 
269
 
 
270
extern char*            yytext;
 
271
extern const char*      yyfilename;
 
272
extern int                      yylineno;
 
273
extern int                      yyerr;
 
274
extern Tree             gResult;
 
275
 
 
276
extern list<string>     gNameProperty;
 
277
extern list<string>     gAuthorProperty;
 
278
extern list<string>     gCopyrightProperty;
 
279
extern list<string>     gVersionProperty;
 
280
extern list<string>     gLicenseProperty;
 
281
 
 
282
int yylex();
 
283
 
 
284
Tree unquote(char* str)
 
285
{
 
286
        //-----------copy unquoted filename-------------
 
287
        char buf[512];
 
288
        int j=0;
 
289
 
 
290
        if (str[0] == '"') {
 
291
                //it is a quoted string, we remove the quotes
 
292
                for (int i=1; j<511 && str[i];) {
 
293
                        buf[j++] = str[i++];
 
294
                }
 
295
                // remove last quote
 
296
                if (j>0) buf[j-1] = 0;
 
297
        } else {
 
298
                for (int i=0; j<511 && str[i];) {
 
299
                        buf[j++] = str[i++];
 
300
                }
 
301
        }
 
302
        buf[j] = 0;
 
303
 
 
304
        return tree(buf);
 
305
        //----------------------------------------------
 
306
}
 
307
 
 
308
 
 
309
 
 
310
/* Enabling traces.  */
 
311
#ifndef YYDEBUG
 
312
# define YYDEBUG 0
 
313
#endif
 
314
 
 
315
/* Enabling verbose error messages.  */
 
316
#ifdef YYERROR_VERBOSE
 
317
# undef YYERROR_VERBOSE
 
318
# define YYERROR_VERBOSE 1
 
319
#else
 
320
# define YYERROR_VERBOSE 0
 
321
#endif
 
322
 
 
323
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 
324
#line 61 "parser/faustparser.y"
 
325
typedef union YYSTYPE {
 
326
        CTree*  exp;
 
327
} YYSTYPE;
 
328
/* Line 191 of yacc.c.  */
 
329
#line 329 "parser/faustparser.cpp"
 
330
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
331
# define YYSTYPE_IS_DECLARED 1
 
332
# define YYSTYPE_IS_TRIVIAL 1
 
333
#endif
 
334
 
 
335
 
 
336
 
 
337
/* Copy the second part of user declarations.  */
 
338
 
 
339
 
 
340
/* Line 214 of yacc.c.  */
 
341
#line 341 "parser/faustparser.cpp"
 
342
 
 
343
#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
344
 
 
345
/* The parser invokes alloca or malloc; define the necessary symbols.  */
 
346
 
 
347
# if YYSTACK_USE_ALLOCA
 
348
#  define YYSTACK_ALLOC alloca
 
349
# else
 
350
#  ifndef YYSTACK_USE_ALLOCA
 
351
#   if defined (alloca) || defined (_ALLOCA_H)
 
352
#    define YYSTACK_ALLOC alloca
 
353
#   else
 
354
#    ifdef __GNUC__
 
355
#     define YYSTACK_ALLOC __builtin_alloca
 
356
#    endif
 
357
#   endif
 
358
#  endif
 
359
# endif
 
360
 
 
361
# ifdef YYSTACK_ALLOC
 
362
   /* Pacify GCC's `empty if-body' warning. */
 
363
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 
364
# else
 
365
#  if defined (__STDC__) || defined (__cplusplus)
 
366
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 
367
#   define YYSIZE_T size_t
 
368
#  endif
 
369
#  define YYSTACK_ALLOC malloc
 
370
#  define YYSTACK_FREE free
 
371
# endif
 
372
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
373
 
 
374
 
 
375
#if (! defined (yyoverflow) \
 
376
     && (! defined (__cplusplus) \
 
377
         || (YYSTYPE_IS_TRIVIAL)))
 
378
 
 
379
/* A type that is properly aligned for any stack member.  */
 
380
union yyalloc
 
381
{
 
382
  short yyss;
 
383
  YYSTYPE yyvs;
 
384
  };
 
385
 
 
386
/* The size of the maximum gap between one aligned stack and the next.  */
 
387
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
388
 
 
389
/* The size of an array large to enough to hold all stacks, each with
 
390
   N elements.  */
 
391
# define YYSTACK_BYTES(N) \
 
392
     ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
 
393
      + YYSTACK_GAP_MAXIMUM)
 
394
 
 
395
/* Copy COUNT objects from FROM to TO.  The source and destination do
 
396
   not overlap.  */
 
397
# ifndef YYCOPY
 
398
#  if 1 < __GNUC__
 
399
#   define YYCOPY(To, From, Count) \
 
400
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 
401
#  else
 
402
#   define YYCOPY(To, From, Count)              \
 
403
      do                                        \
 
404
        {                                       \
 
405
          register YYSIZE_T yyi;                \
 
406
          for (yyi = 0; yyi < (Count); yyi++)   \
 
407
            (To)[yyi] = (From)[yyi];            \
 
408
        }                                       \
 
409
      while (0)
 
410
#  endif
 
411
# endif
 
412
 
 
413
/* Relocate STACK from its old location to the new one.  The
 
414
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 
415
   elements in the stack, and YYPTR gives the new location of the
 
416
   stack.  Advance YYPTR to a properly aligned location for the next
 
417
   stack.  */
 
418
# define YYSTACK_RELOCATE(Stack)                                        \
 
419
    do                                                                  \
 
420
      {                                                                 \
 
421
        YYSIZE_T yynewbytes;                                            \
 
422
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
 
423
        Stack = &yyptr->Stack;                                          \
 
424
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 
425
        yyptr += yynewbytes / sizeof (*yyptr);                          \
 
426
      }                                                                 \
 
427
    while (0)
 
428
 
 
429
#endif
 
430
 
 
431
#if defined (__STDC__) || defined (__cplusplus)
 
432
   typedef signed char yysigned_char;
 
433
#else
 
434
   typedef short yysigned_char;
 
435
#endif
 
436
 
 
437
/* YYFINAL -- State number of the termination state. */
 
438
#define YYFINAL  3
 
439
/* YYLAST -- Last index in YYTABLE.  */
 
440
#define YYLAST   510
 
441
 
 
442
/* YYNTOKENS -- Number of terminals. */
 
443
#define YYNTOKENS  98
 
444
/* YYNNTS -- Number of nonterminals. */
 
445
#define YYNNTS  41
 
446
/* YYNRULES -- Number of rules. */
 
447
#define YYNRULES  159
 
448
/* YYNRULES -- Number of states. */
 
449
#define YYNSTATES  344
 
450
 
 
451
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 
452
#define YYUNDEFTOK  2
 
453
#define YYMAXUTOK   352
 
454
 
 
455
#define YYTRANSLATE(YYX)                                                \
 
456
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
457
 
 
458
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 
459
static const unsigned char yytranslate[] =
 
460
{
 
461
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
462
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
463
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
464
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
465
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
466
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
467
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
468
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
469
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
470
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
471
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
472
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
473
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
474
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
475
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
476
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
477
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
478
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
479
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
480
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
481
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
482
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
483
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
484
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
485
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
486
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
 
487
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 
488
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 
489
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 
490
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
 
491
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
 
492
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
 
493
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
 
494
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
 
495
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
 
496
      95,    96,    97
 
497
};
 
498
 
 
499
#if YYDEBUG
 
500
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
 
501
   YYRHS.  */
 
502
static const unsigned short yyprhs[] =
 
503
{
 
504
       0,     0,     3,     5,     6,     9,    17,    22,    28,    29,
 
505
      35,    36,    42,    43,    49,    50,    56,    57,    63,    66,
 
506
      68,    70,    74,    80,    84,    88,    92,    96,   100,   102,
 
507
     106,   110,   114,   118,   122,   126,   129,   133,   137,   141,
 
508
     145,   149,   153,   157,   161,   165,   169,   173,   177,   182,
 
509
     184,   186,   188,   191,   194,   197,   200,   202,   204,   206,
 
510
     208,   210,   212,   214,   216,   218,   220,   222,   224,   226,
 
511
     228,   230,   232,   234,   236,   238,   240,   242,   244,   246,
 
512
     248,   250,   252,   254,   256,   258,   260,   262,   264,   266,
 
513
     268,   270,   272,   274,   276,   278,   280,   282,   284,   286,
 
514
     288,   290,   292,   294,   296,   298,   302,   311,   313,   315,
 
515
     320,   322,   324,   326,   328,   330,   332,   334,   336,   338,
 
516
     340,   342,   344,   346,   348,   350,   352,   354,   358,   362,
 
517
     366,   370,   374,   376,   378,   380,   382,   384,   393,   402,
 
518
     411,   420,   429,   437,   442,   447,   460,   473,   486,   493,
 
519
     500,   507,   516,   525,   531,   536,   538,   540,   544,   546
 
520
};
 
521
 
 
522
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 
523
static const short yyrhs[] =
 
524
{
 
525
      99,     0,    -1,   100,    -1,    -1,   100,   101,    -1,   107,
 
526
      77,   108,    78,    81,   109,    75,    -1,   107,    81,   109,
 
527
      75,    -1,    82,    77,   117,    78,    75,    -1,    -1,    92,
 
528
      93,    88,   102,    75,    -1,    -1,    92,    94,    88,   103,
 
529
      75,    -1,    -1,    92,    95,    88,   104,    75,    -1,    -1,
 
530
      92,    96,    88,   105,    75,    -1,    -1,    92,    97,    88,
 
531
     106,    75,    -1,     1,    75,    -1,   112,    -1,   112,    -1,
 
532
     108,     7,   112,    -1,   109,     3,    79,   100,    80,    -1,
 
533
     109,     7,   109,    -1,   109,     6,   109,    -1,   109,     5,
 
534
     109,    -1,   109,     4,   109,    -1,   109,     8,   109,    -1,
 
535
     110,    -1,   110,    17,   110,    -1,   110,    16,   110,    -1,
 
536
     110,    24,   110,    -1,   110,    23,   110,    -1,   110,    22,
 
537
     110,    -1,   110,    25,   110,    -1,   110,    26,    -1,   110,
 
538
      27,   112,    -1,   110,    21,   110,    -1,   110,    15,   110,
 
539
      -1,   110,    20,   110,    -1,   110,    19,   110,    -1,   110,
 
540
      18,   110,    -1,   110,    14,   110,    -1,   110,    13,   110,
 
541
      -1,   110,    11,   110,    -1,   110,    10,   110,    -1,   110,
 
542
      12,   110,    -1,   110,     9,   110,    -1,   110,    77,   114,
 
543
      78,    -1,   111,    -1,    70,    -1,    71,    -1,    17,    70,
 
544
      -1,    17,    71,    -1,    16,    70,    -1,    16,    71,    -1,
 
545
      73,    -1,    74,    -1,    29,    -1,    30,    -1,    31,    -1,
 
546
      32,    -1,    17,    -1,    16,    -1,    24,    -1,    23,    -1,
 
547
      22,    -1,    25,    -1,    21,    -1,    15,    -1,    20,    -1,
 
548
      19,    -1,    18,    -1,    14,    -1,    13,    -1,    11,    -1,
 
549
      10,    -1,    12,    -1,     9,    -1,    45,    -1,    46,    -1,
 
550
      47,    -1,    48,    -1,    49,    -1,    50,    -1,    51,    -1,
 
551
      52,    -1,    53,    -1,    54,    -1,    55,    -1,    56,    -1,
 
552
      57,    -1,    58,    -1,    59,    -1,    60,    -1,    61,    -1,
 
553
      62,    -1,    63,    -1,    64,    -1,    65,    -1,    66,    -1,
 
554
      67,    -1,    68,    -1,    69,    -1,   112,    -1,    77,   109,
 
555
      78,    -1,    72,    77,   108,    78,    27,    77,   109,    78,
 
556
      -1,   123,    -1,   124,    -1,    83,    77,   117,    78,    -1,
 
557
     125,    -1,   126,    -1,   127,    -1,   128,    -1,   129,    -1,
 
558
     130,    -1,   131,    -1,   132,    -1,   133,    -1,   134,    -1,
 
559
     119,    -1,   120,    -1,   121,    -1,   122,    -1,    90,    -1,
 
560
      90,    -1,   115,    -1,   114,     7,   115,    -1,   115,     6,
 
561
     115,    -1,   115,     5,   115,    -1,   115,     4,   115,    -1,
 
562
     115,     8,   115,    -1,   110,    -1,    88,    -1,    88,    -1,
 
563
      88,    -1,    89,    -1,    84,    77,   112,     7,   115,     7,
 
564
     109,    78,    -1,    85,    77,   112,     7,   115,     7,   109,
 
565
      78,    -1,    86,    77,   112,     7,   115,     7,   109,    78,
 
566
      -1,    87,    77,   112,     7,   115,     7,   109,    78,    -1,
 
567
      33,    77,   135,     7,   118,     7,   116,    78,    -1,    34,
 
568
      77,   138,   113,     7,   118,    78,    -1,    35,    77,   116,
 
569
      78,    -1,    36,    77,   116,    78,    -1,    37,    77,   116,
 
570
       7,   115,     7,   115,     7,   115,     7,   115,    78,    -1,
 
571
      38,    77,   116,     7,   115,     7,   115,     7,   115,     7,
 
572
     115,    78,    -1,    39,    77,   116,     7,   115,     7,   115,
 
573
       7,   115,     7,   115,    78,    -1,    40,    77,   116,     7,
 
574
     109,    78,    -1,    41,    77,   116,     7,   109,    78,    -1,
 
575
      42,    77,   116,     7,   109,    78,    -1,    44,    77,   116,
 
576
       7,   115,     7,   115,    78,    -1,    43,    77,   116,     7,
 
577
     115,     7,   115,    78,    -1,   138,   136,    77,   137,    78,
 
578
      -1,   138,   136,    77,    78,    -1,    90,    -1,   138,    -1,
 
579
     137,     7,   138,    -1,    31,    -1,    32,    -1
 
580
};
 
581
 
 
582
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 
583
static const unsigned short yyrline[] =
 
584
{
 
585
       0,   237,   237,   240,   241,   244,   245,   246,   247,   247,
 
586
     248,   248,   249,   249,   250,   250,   251,   251,   252,   255,
 
587
     258,   259,   262,   263,   264,   265,   266,   267,   268,   271,
 
588
     272,   273,   274,   275,   276,   277,   278,   280,   281,   282,
 
589
     284,   285,   287,   288,   289,   290,   291,   292,   294,   296,
 
590
     299,   300,   302,   303,   305,   306,   308,   309,   311,   312,
 
591
     314,   315,   317,   318,   319,   320,   321,   322,   324,   325,
 
592
     326,   328,   329,   331,   332,   333,   334,   335,   336,   338,
 
593
     340,   341,   342,   343,   344,   345,   346,   348,   349,   350,
 
594
     351,   352,   354,   355,   356,   358,   359,   361,   362,   363,
 
595
     366,   367,   369,   370,   372,   374,   375,   377,   378,   379,
 
596
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
 
597
     392,   393,   394,   395,   399,   402,   407,   408,   411,   412,
 
598
     413,   414,   415,   418,   421,   424,   425,   430,   434,   438,
 
599
     442,   449,   453,   458,   461,   464,   467,   470,   473,   476,
 
600
     479,   483,   486,   491,   492,   495,   498,   499,   502,   503
 
601
};
 
602
#endif
 
603
 
 
604
#if YYDEBUG || YYERROR_VERBOSE
 
605
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
 
606
   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 
607
static const char *const yytname[] =
 
608
{
 
609
  "$end", "error", "$undefined", "WITH", "MIX", "SPLIT", "SEQ", "PAR", 
 
610
  "REC", "NE", "GE", "GT", "EQ", "LE", "LT", "OR", "SUB", "ADD", "RSH", 
 
611
  "LSH", "XOR", "AND", "MOD", "DIV", "MUL", "FDELAY", "DELAY1", "DOT", 
 
612
  "APPL", "MEM", "PREFIX", "INTCAST", "FLOATCAST", "FFUNCTION", 
 
613
  "FCONSTANT", "BUTTON", "CHECKBOX", "VSLIDER", "HSLIDER", "NENTRY", 
 
614
  "VGROUP", "HGROUP", "TGROUP", "HBARGRAPH", "VBARGRAPH", "ATTACH", 
 
615
  "ACOS", "ASIN", "ATAN", "ATAN2", "COS", "SIN", "TAN", "EXP", "LOG", 
 
616
  "LOG10", "POW", "SQRT", "ABS", "MIN", "MAX", "FMOD", "REMAINDER", 
 
617
  "FLOOR", "CEIL", "RINT", "RDTBL", "RWTBL", "SELECT2", "SELECT3", "INT", 
 
618
  "FLOAT", "LAMBDA", "WIRE", "CUT", "ENDDEF", "VIRG", "LPAR", "RPAR", 
 
619
  "LBRAQ", "RBRAQ", "DEF", "IMPORT", "COMPONENT", "IPAR", "ISEQ", "ISUM", 
 
620
  "IPROD", "STRING", "FSTRING", "IDENT", "EXTRA", "DECLARE", "NAMEPROP", 
 
621
  "AUTHORPROP", "COPYRIGHTPROP", "VERSIONPROP", "LICENSEPROP", "$accept", 
 
622
  "program", "eqlist", "equation", "@1", "@2", "@3", "@4", "@5", "eqname", 
 
623
  "params", "diagram", "expression", "primitive", "ident", "name", 
 
624
  "arglist", "argument", "string", "uqstring", "fstring", "fpar", "fseq", 
 
625
  "fsum", "fprod", "ffunction", "fconst", "button", "checkbox", "vslider", 
 
626
  "hslider", "nentry", "vgroup", "hgroup", "tgroup", "vbargraph", 
 
627
  "hbargraph", "signature", "fun", "typelist", "type", 0
 
628
};
 
629
#endif
 
630
 
 
631
# ifdef YYPRINT
 
632
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
 
633
   token YYLEX-NUM.  */
 
634
static const unsigned short yytoknum[] =
 
635
{
 
636
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
637
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 
638
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 
639
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
 
640
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
 
641
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
 
642
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
 
643
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
 
644
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
 
645
     345,   346,   347,   348,   349,   350,   351,   352
 
646
};
 
647
# endif
 
648
 
 
649
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 
650
static const unsigned char yyr1[] =
 
651
{
 
652
       0,    98,    99,   100,   100,   101,   101,   101,   102,   101,
 
653
     103,   101,   104,   101,   105,   101,   106,   101,   101,   107,
 
654
     108,   108,   109,   109,   109,   109,   109,   109,   109,   110,
 
655
     110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
 
656
     110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
 
657
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
658
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
659
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
660
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
661
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
662
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
663
     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
 
664
     111,   111,   111,   111,   112,   113,   114,   114,   115,   115,
 
665
     115,   115,   115,   116,   117,   118,   118,   119,   120,   121,
 
666
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
 
667
     132,   133,   134,   135,   135,   136,   137,   137,   138,   138
 
668
};
 
669
 
 
670
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 
671
static const unsigned char yyr2[] =
 
672
{
 
673
       0,     2,     1,     0,     2,     7,     4,     5,     0,     5,
 
674
       0,     5,     0,     5,     0,     5,     0,     5,     2,     1,
 
675
       1,     3,     5,     3,     3,     3,     3,     3,     1,     3,
 
676
       3,     3,     3,     3,     3,     2,     3,     3,     3,     3,
 
677
       3,     3,     3,     3,     3,     3,     3,     3,     4,     1,
 
678
       1,     1,     2,     2,     2,     2,     1,     1,     1,     1,
 
679
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
680
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
681
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
682
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
683
       1,     1,     1,     1,     1,     3,     8,     1,     1,     4,
 
684
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
685
       1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
 
686
       3,     3,     1,     1,     1,     1,     1,     8,     8,     8,
 
687
       8,     8,     7,     4,     4,    12,    12,    12,     6,     6,
 
688
       6,     8,     8,     5,     4,     1,     1,     3,     1,     1
 
689
};
 
690
 
 
691
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
 
692
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
 
693
   means the default is an error.  */
 
694
static const unsigned char yydefact[] =
 
695
{
 
696
       3,     0,     0,     1,     0,     0,   124,     0,     4,     0,
 
697
      19,    18,     0,     0,     0,     0,     0,     0,     0,     0,
 
698
     134,     0,     8,    10,    12,    14,    16,     0,    20,    78,
 
699
      76,    75,    77,    74,    73,    69,    63,    62,    72,    71,
 
700
      70,    68,    66,    65,    64,    67,    58,    59,    60,    61,
 
701
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
702
       0,     0,    79,    80,    81,    82,    83,    84,    85,    86,
 
703
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
 
704
      97,    98,    99,   100,   101,   102,   103,    50,    51,     0,
 
705
      56,    57,     0,     0,     0,     0,     0,     0,     0,    28,
 
706
      49,   104,   120,   121,   122,   123,   107,   108,   110,   111,
 
707
     112,   113,   114,   115,   116,   117,   118,   119,     0,     0,
 
708
       0,     0,     0,     0,     0,     0,    54,    55,    52,    53,
 
709
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
710
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
711
       0,     0,     0,     0,     0,     6,     0,     0,     0,     0,
 
712
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
713
       0,     0,     0,    35,     0,     0,     7,     9,    11,    13,
 
714
      15,    17,    21,     0,   158,   159,     0,     0,     0,   133,
 
715
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
716
       0,   105,     0,     0,     0,     0,     0,     3,    26,    25,
 
717
      24,    23,    27,    47,    45,    44,    46,    43,    42,    38,
 
718
      30,    29,    41,    40,    39,    37,    33,    32,    31,    34,
 
719
      36,   132,     0,   126,     0,     0,   155,     0,   125,     0,
 
720
     143,   144,     0,     0,     0,     0,     0,     0,     0,     0,
 
721
       0,   109,     0,     0,     0,     0,     0,     0,    48,     0,
 
722
       0,     0,     0,     5,   135,   136,     0,     0,     0,     0,
 
723
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
724
       0,     0,    22,   127,   130,   129,   128,   131,     0,   154,
 
725
       0,   156,     0,     0,     0,     0,   148,   149,   150,     0,
 
726
       0,     0,     0,     0,     0,     0,     0,     0,   153,   142,
 
727
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
728
     141,   157,     0,     0,     0,   152,   151,   106,   137,   138,
 
729
     139,   140,     0,     0,     0,     0,     0,     0,     0,     0,
 
730
       0,   145,   146,   147
 
731
};
 
732
 
 
733
/* YYDEFGOTO[NTERM-NUM]. */
 
734
static const short yydefgoto[] =
 
735
{
 
736
      -1,     1,     2,     8,   119,   120,   121,   122,   123,     9,
 
737
      27,    98,   231,   100,   101,   239,   232,   233,   190,    21,
 
738
     266,   102,   103,   104,   105,   106,   107,   108,   109,   110,
 
739
     111,   112,   113,   114,   115,   116,   117,   186,   237,   290,
 
740
     187
 
741
};
 
742
 
 
743
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 
744
   STATE-NUM.  */
 
745
#define YYPACT_NINF -212
 
746
static const short yypact[] =
 
747
{
 
748
    -212,     2,     3,  -212,   -62,   -48,  -212,   142,  -212,   -41,
 
749
    -212,  -212,   -43,   -23,   -17,     6,    13,    21,    39,   278,
 
750
    -212,   -31,  -212,  -212,  -212,  -212,  -212,    -6,  -212,  -212,
 
751
    -212,  -212,  -212,  -212,  -212,  -212,   -36,    52,  -212,  -212,
 
752
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
753
      14,    79,   108,   116,   137,   138,   139,   145,   146,   147,
 
754
     148,   175,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
755
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
756
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   183,
 
757
    -212,  -212,   278,   189,   190,   192,   201,   202,    55,   373,
 
758
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
759
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,   102,   178,
 
760
     195,   206,   230,   231,    39,   272,  -212,  -212,  -212,  -212,
 
761
      43,    43,   266,   266,   266,   266,   266,   266,   266,   266,
 
762
     266,   266,    39,    49,   -43,    39,    39,    39,    39,   280,
 
763
     278,   278,   278,   278,   278,  -212,   278,   278,   278,   278,
 
764
     278,   278,   278,   278,   278,   278,   278,   278,   278,   278,
 
765
     278,   278,   278,  -212,    39,   278,  -212,  -212,  -212,  -212,
 
766
    -212,  -212,  -212,   278,  -212,  -212,   359,   277,   288,  -212,
 
767
     302,   303,   422,   434,   435,   436,   438,   439,   440,   441,
 
768
       8,  -212,   383,   455,   462,   463,   464,  -212,    90,    90,
 
769
      73,   491,  -212,   386,   386,   386,   386,   386,   386,   396,
 
770
     396,   396,    51,    51,    51,    51,    51,    51,    51,    94,
 
771
    -212,   373,     9,   257,   205,    99,  -212,   395,  -212,   493,
 
772
    -212,  -212,   278,   278,   278,   278,   278,   278,   278,   278,
 
773
     474,  -212,   278,   278,   278,   278,    10,   278,  -212,   278,
 
774
     278,   278,   278,  -212,  -212,  -212,   495,   -14,    99,   237,
 
775
     243,   251,   100,   111,   162,   268,   420,   426,   427,   432,
 
776
     447,   452,  -212,   257,     4,     4,   496,  -212,   266,  -212,
 
777
      32,  -212,   428,   278,   278,   278,  -212,  -212,  -212,   278,
 
778
     278,   278,   278,   278,   278,   278,   429,    43,  -212,  -212,
 
779
     460,   470,   475,     1,   168,   176,   193,   199,   226,   366,
 
780
    -212,  -212,   278,   278,   278,  -212,  -212,  -212,  -212,  -212,
 
781
    -212,  -212,   480,   485,   490,   278,   278,   278,   186,   352,
 
782
     371,  -212,  -212,  -212
 
783
};
 
784
 
 
785
/* YYPGOTO[NTERM-NUM].  */
 
786
static const short yypgoto[] =
 
787
{
 
788
    -212,  -212,   298,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
789
     367,   -84,   -19,  -212,    12,  -212,  -212,  -211,  -113,   364,
 
790
     242,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
791
    -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,  -212,
 
792
    -112
 
793
};
 
794
 
 
795
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 
796
   positive, shift that token.  If negative, reduce the rule which
 
797
   number is the opposite.  If zero, do what YYDEFACT says.
 
798
   If YYTABLE_NINF, syntax error.  */
 
799
#define YYTABLE_NINF -3
 
800
static const short yytable[] =
 
801
{
 
802
      99,   124,     3,    -2,     4,   259,   260,   261,   143,   262,
 
803
     261,     4,   262,    11,    10,   124,   257,   184,   185,   188,
 
804
     191,   192,   193,   194,   195,   196,   197,   198,   199,    12,
 
805
      28,   269,   270,   271,   126,   127,    18,   275,   276,   307,
 
806
      19,   278,   279,   280,   281,    20,   283,   118,   284,   285,
 
807
     286,   287,   149,   150,   151,   152,   153,   154,   149,   150,
 
808
     151,   152,   153,   154,   289,    22,   208,   209,   210,   211,
 
809
     212,    23,   125,    99,   184,   185,   172,   173,   174,   325,
 
810
     153,   154,   310,   311,   312,     5,   250,   258,   313,   314,
 
811
     282,   130,     5,     6,    24,     7,   152,   153,   154,   234,
 
812
       6,    25,     7,   149,   150,   151,   152,   153,   154,    26,
 
813
     308,   332,   333,   334,   149,   150,   151,   152,   153,   154,
 
814
     173,   174,   128,   129,   338,   339,   340,   201,   175,     6,
 
815
     155,    99,    99,    99,    99,    99,   182,   213,   214,   215,
 
816
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
 
817
     226,   227,   228,   229,    28,   291,   131,   203,   204,   205,
 
818
     206,   272,   273,   274,    99,   149,   150,   151,   152,   153,
 
819
     154,   175,   259,   260,   261,   306,   262,   176,   296,   149,
 
820
     150,   151,   152,   153,   154,   132,   230,   264,   265,   297,
 
821
     259,   260,   261,   133,   262,   321,   149,   150,   151,   152,
 
822
     153,   154,   149,   150,   151,   152,   153,   154,   149,   150,
 
823
     151,   152,   153,   154,   134,   135,   136,   315,   316,   317,
 
824
     318,   319,   137,   138,   139,   140,    99,    99,    99,   149,
 
825
     150,   151,   152,   153,   154,    13,    14,    15,    16,    17,
 
826
     298,   259,   260,   261,   293,   262,   326,   259,   260,   261,
 
827
     294,   262,   141,   177,   327,   259,   260,   261,   295,   262,
 
828
     142,   259,   260,   261,   341,   262,   144,   145,    10,   146,
 
829
     178,   328,   259,   260,   261,   299,   262,   329,   147,   148,
 
830
     263,   179,    99,    99,    99,    99,    99,    29,    30,    31,
 
831
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
 
832
      42,    43,    44,    45,   330,   180,   181,    46,    47,    48,
 
833
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
 
834
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
 
835
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
 
836
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
 
837
      89,    90,    91,   183,   189,    92,   259,   260,   261,   207,
 
838
     262,    93,    94,    95,    96,    97,   235,   236,     6,   149,
 
839
     150,   151,   152,   153,   154,   259,   260,   261,   238,   262,
 
840
     240,   241,   156,   157,   158,   159,   160,   161,   162,   163,
 
841
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
 
842
     174,   162,   163,   164,   165,   166,   167,   168,   169,   170,
 
843
     171,   172,   173,   174,   165,   166,   167,   168,   169,   170,
 
844
     171,   172,   173,   174,   259,   260,   261,   300,   262,   242,
 
845
     342,   259,   260,   261,   302,   262,   259,   260,   261,   303,
 
846
     262,   243,   244,   245,   331,   246,   247,   248,   249,   343,
 
847
     175,   259,   260,   261,   304,   262,   259,   260,   261,   305,
 
848
     262,   251,   252,   175,   259,   260,   261,   322,   262,   253,
 
849
     254,   255,   267,   175,   259,   260,   261,   323,   262,   259,
 
850
     260,   261,   324,   262,   259,   260,   261,   335,   262,   259,
 
851
     260,   261,   336,   262,   259,   260,   261,   337,   262,   154,
 
852
     268,   277,   288,   301,   262,   256,   309,   320,   202,   200,
 
853
     292
 
854
};
 
855
 
 
856
static const unsigned short yycheck[] =
 
857
{
 
858
      19,     7,     0,     0,     1,     4,     5,     6,    92,     8,
 
859
       6,     1,     8,    75,     2,     7,     7,    31,    32,   131,
 
860
     133,   134,   135,   136,   137,   138,   139,   140,   141,    77,
 
861
      18,   242,   243,   244,    70,    71,    77,   248,   249,     7,
 
862
      81,   252,   253,   254,   255,    88,   257,    78,   259,   260,
 
863
     261,   262,     3,     4,     5,     6,     7,     8,     3,     4,
 
864
       5,     6,     7,     8,    78,    88,   150,   151,   152,   153,
 
865
     154,    88,    78,    92,    31,    32,    25,    26,    27,    78,
 
866
       7,     8,   293,   294,   295,    82,    78,    78,   299,   300,
 
867
      80,    77,    82,    90,    88,    92,     6,     7,     8,   183,
 
868
      90,    88,    92,     3,     4,     5,     6,     7,     8,    88,
 
869
      78,   322,   323,   324,     3,     4,     5,     6,     7,     8,
 
870
      26,    27,    70,    71,   335,   336,   337,    78,    77,    90,
 
871
      75,   150,   151,   152,   153,   154,   124,   156,   157,   158,
 
872
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
 
873
     169,   170,   171,   172,   142,   267,    77,   145,   146,   147,
 
874
     148,   245,   246,   247,   183,     3,     4,     5,     6,     7,
 
875
       8,    77,     4,     5,     6,   288,     8,    75,    78,     3,
 
876
       4,     5,     6,     7,     8,    77,   174,    88,    89,    78,
 
877
       4,     5,     6,    77,     8,   307,     3,     4,     5,     6,
 
878
       7,     8,     3,     4,     5,     6,     7,     8,     3,     4,
 
879
       5,     6,     7,     8,    77,    77,    77,   301,   302,   303,
 
880
     304,   305,    77,    77,    77,    77,   245,   246,   247,     3,
 
881
       4,     5,     6,     7,     8,    93,    94,    95,    96,    97,
 
882
      78,     4,     5,     6,     7,     8,    78,     4,     5,     6,
 
883
       7,     8,    77,    75,    78,     4,     5,     6,     7,     8,
 
884
      77,     4,     5,     6,    78,     8,    77,    77,   256,    77,
 
885
      75,    78,     4,     5,     6,     7,     8,    78,    77,    77,
 
886
      75,    75,   301,   302,   303,   304,   305,     9,    10,    11,
 
887
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
 
888
      22,    23,    24,    25,    78,    75,    75,    29,    30,    31,
 
889
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
 
890
      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
 
891
      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
 
892
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
 
893
      72,    73,    74,    81,    88,    77,     4,     5,     6,    79,
 
894
       8,    83,    84,    85,    86,    87,     7,    90,    90,     3,
 
895
       4,     5,     6,     7,     8,     4,     5,     6,    90,     8,
 
896
      78,    78,     9,    10,    11,    12,    13,    14,    15,    16,
 
897
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
 
898
      27,    15,    16,    17,    18,    19,    20,    21,    22,    23,
 
899
      24,    25,    26,    27,    18,    19,    20,    21,    22,    23,
 
900
      24,    25,    26,    27,     4,     5,     6,     7,     8,     7,
 
901
      78,     4,     5,     6,     7,     8,     4,     5,     6,     7,
 
902
       8,     7,     7,     7,    78,     7,     7,     7,     7,    78,
 
903
      77,     4,     5,     6,     7,     8,     4,     5,     6,     7,
 
904
       8,    78,     7,    77,     4,     5,     6,     7,     8,     7,
 
905
       7,     7,    77,    77,     4,     5,     6,     7,     8,     4,
 
906
       5,     6,     7,     8,     4,     5,     6,     7,     8,     4,
 
907
       5,     6,     7,     8,     4,     5,     6,     7,     8,     8,
 
908
       7,    27,     7,    77,     8,   207,    78,    78,   144,   142,
 
909
     268
 
910
};
 
911
 
 
912
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 
913
   symbol of state STATE-NUM.  */
 
914
static const unsigned char yystos[] =
 
915
{
 
916
       0,    99,   100,     0,     1,    82,    90,    92,   101,   107,
 
917
     112,    75,    77,    93,    94,    95,    96,    97,    77,    81,
 
918
      88,   117,    88,    88,    88,    88,    88,   108,   112,     9,
 
919
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
 
920
      20,    21,    22,    23,    24,    25,    29,    30,    31,    32,
 
921
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
 
922
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
 
923
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
 
924
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
 
925
      73,    74,    77,    83,    84,    85,    86,    87,   109,   110,
 
926
     111,   112,   119,   120,   121,   122,   123,   124,   125,   126,
 
927
     127,   128,   129,   130,   131,   132,   133,   134,    78,   102,
 
928
     103,   104,   105,   106,     7,    78,    70,    71,    70,    71,
 
929
      77,    77,    77,    77,    77,    77,    77,    77,    77,    77,
 
930
      77,    77,    77,   109,    77,    77,    77,    77,    77,     3,
 
931
       4,     5,     6,     7,     8,    75,     9,    10,    11,    12,
 
932
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
 
933
      23,    24,    25,    26,    27,    77,    75,    75,    75,    75,
 
934
      75,    75,   112,    81,    31,    32,   135,   138,   138,    88,
 
935
     116,   116,   116,   116,   116,   116,   116,   116,   116,   116,
 
936
     108,    78,   117,   112,   112,   112,   112,    79,   109,   109,
 
937
     109,   109,   109,   110,   110,   110,   110,   110,   110,   110,
 
938
     110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
 
939
     112,   110,   114,   115,   109,     7,    90,   136,    90,   113,
 
940
      78,    78,     7,     7,     7,     7,     7,     7,     7,     7,
 
941
      78,    78,     7,     7,     7,     7,   100,     7,    78,     4,
 
942
       5,     6,     8,    75,    88,    89,   118,    77,     7,   115,
 
943
     115,   115,   109,   109,   109,   115,   115,    27,   115,   115,
 
944
     115,   115,    80,   115,   115,   115,   115,   115,     7,    78,
 
945
     137,   138,   118,     7,     7,     7,    78,    78,    78,     7,
 
946
       7,    77,     7,     7,     7,     7,   116,     7,    78,    78,
 
947
     115,   115,   115,   115,   115,   109,   109,   109,   109,   109,
 
948
      78,   138,     7,     7,     7,    78,    78,    78,    78,    78,
 
949
      78,    78,   115,   115,   115,     7,     7,     7,   115,   115,
 
950
     115,    78,    78,    78
 
951
};
 
952
 
 
953
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 
954
# define YYSIZE_T __SIZE_TYPE__
 
955
#endif
 
956
#if ! defined (YYSIZE_T) && defined (size_t)
 
957
# define YYSIZE_T size_t
 
958
#endif
 
959
#if ! defined (YYSIZE_T)
 
960
# if defined (__STDC__) || defined (__cplusplus)
 
961
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 
962
#  define YYSIZE_T size_t
 
963
# endif
 
964
#endif
 
965
#if ! defined (YYSIZE_T)
 
966
# define YYSIZE_T unsigned int
 
967
#endif
 
968
 
 
969
#define yyerrok         (yyerrstatus = 0)
 
970
#define yyclearin       (yychar = YYEMPTY)
 
971
#define YYEMPTY         (-2)
 
972
#define YYEOF           0
 
973
 
 
974
#define YYACCEPT        goto yyacceptlab
 
975
#define YYABORT         goto yyabortlab
 
976
#define YYERROR         goto yyerrlab1
 
977
 
 
978
/* Like YYERROR except do call yyerror.  This remains here temporarily
 
979
   to ease the transition to the new meaning of YYERROR, for GCC.
 
980
   Once GCC version 2 has supplanted version 1, this can go.  */
 
981
 
 
982
#define YYFAIL          goto yyerrlab
 
983
 
 
984
#define YYRECOVERING()  (!!yyerrstatus)
 
985
 
 
986
#define YYBACKUP(Token, Value)                                  \
 
987
do                                                              \
 
988
  if (yychar == YYEMPTY && yylen == 1)                          \
 
989
    {                                                           \
 
990
      yychar = (Token);                                         \
 
991
      yylval = (Value);                                         \
 
992
      yytoken = YYTRANSLATE (yychar);                           \
 
993
      YYPOPSTACK;                                               \
 
994
      goto yybackup;                                            \
 
995
    }                                                           \
 
996
  else                                                          \
 
997
    {                                                           \
 
998
      yyerror ("syntax error: cannot back up");\
 
999
      YYERROR;                                                  \
 
1000
    }                                                           \
 
1001
while (0)
 
1002
 
 
1003
#define YYTERROR        1
 
1004
#define YYERRCODE       256
 
1005
 
 
1006
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
 
1007
   are run).  */
 
1008
 
 
1009
#ifndef YYLLOC_DEFAULT
 
1010
# define YYLLOC_DEFAULT(Current, Rhs, N)         \
 
1011
  Current.first_line   = Rhs[1].first_line;      \
 
1012
  Current.first_column = Rhs[1].first_column;    \
 
1013
  Current.last_line    = Rhs[N].last_line;       \
 
1014
  Current.last_column  = Rhs[N].last_column;
 
1015
#endif
 
1016
 
 
1017
/* YYLEX -- calling `yylex' with the right arguments.  */
 
1018
 
 
1019
#ifdef YYLEX_PARAM
 
1020
# define YYLEX yylex (YYLEX_PARAM)
 
1021
#else
 
1022
# define YYLEX yylex ()
 
1023
#endif
 
1024
 
 
1025
/* Enable debugging if requested.  */
 
1026
#if YYDEBUG
 
1027
 
 
1028
# ifndef YYFPRINTF
 
1029
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 
1030
#  define YYFPRINTF fprintf
 
1031
# endif
 
1032
 
 
1033
# define YYDPRINTF(Args)                        \
 
1034
do {                                            \
 
1035
  if (yydebug)                                  \
 
1036
    YYFPRINTF Args;                             \
 
1037
} while (0)
 
1038
 
 
1039
# define YYDSYMPRINT(Args)                      \
 
1040
do {                                            \
 
1041
  if (yydebug)                                  \
 
1042
    yysymprint Args;                            \
 
1043
} while (0)
 
1044
 
 
1045
# define YYDSYMPRINTF(Title, Token, Value, Location)            \
 
1046
do {                                                            \
 
1047
  if (yydebug)                                                  \
 
1048
    {                                                           \
 
1049
      YYFPRINTF (stderr, "%s ", Title);                         \
 
1050
      yysymprint (stderr,                                       \
 
1051
                  Token, Value);        \
 
1052
      YYFPRINTF (stderr, "\n");                                 \
 
1053
    }                                                           \
 
1054
} while (0)
 
1055
 
 
1056
/*------------------------------------------------------------------.
 
1057
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
 
1058
| TOP (cinluded).                                                   |
 
1059
`------------------------------------------------------------------*/
 
1060
 
 
1061
#if defined (__STDC__) || defined (__cplusplus)
 
1062
static void
 
1063
yy_stack_print (short *bottom, short *top)
 
1064
#else
 
1065
static void
 
1066
yy_stack_print (bottom, top)
 
1067
    short *bottom;
 
1068
    short *top;
 
1069
#endif
 
1070
{
 
1071
  YYFPRINTF (stderr, "Stack now");
 
1072
  for (/* Nothing. */; bottom <= top; ++bottom)
 
1073
    YYFPRINTF (stderr, " %d", *bottom);
 
1074
  YYFPRINTF (stderr, "\n");
 
1075
}
 
1076
 
 
1077
# define YY_STACK_PRINT(Bottom, Top)                            \
 
1078
do {                                                            \
 
1079
  if (yydebug)                                                  \
 
1080
    yy_stack_print ((Bottom), (Top));                           \
 
1081
} while (0)
 
1082
 
 
1083
 
 
1084
/*------------------------------------------------.
 
1085
| Report that the YYRULE is going to be reduced.  |
 
1086
`------------------------------------------------*/
 
1087
 
 
1088
#if defined (__STDC__) || defined (__cplusplus)
 
1089
static void
 
1090
yy_reduce_print (int yyrule)
 
1091
#else
 
1092
static void
 
1093
yy_reduce_print (yyrule)
 
1094
    int yyrule;
 
1095
#endif
 
1096
{
 
1097
  int yyi;
 
1098
  unsigned int yylineno = yyrline[yyrule];
 
1099
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
 
1100
             yyrule - 1, yylineno);
 
1101
  /* Print the symbols being reduced, and their result.  */
 
1102
  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
 
1103
    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
 
1104
  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
 
1105
}
 
1106
 
 
1107
# define YY_REDUCE_PRINT(Rule)          \
 
1108
do {                                    \
 
1109
  if (yydebug)                          \
 
1110
    yy_reduce_print (Rule);             \
 
1111
} while (0)
 
1112
 
 
1113
/* Nonzero means print parse trace.  It is left uninitialized so that
 
1114
   multiple parsers can coexist.  */
 
1115
int yydebug;
 
1116
#else /* !YYDEBUG */
 
1117
# define YYDPRINTF(Args)
 
1118
# define YYDSYMPRINT(Args)
 
1119
# define YYDSYMPRINTF(Title, Token, Value, Location)
 
1120
# define YY_STACK_PRINT(Bottom, Top)
 
1121
# define YY_REDUCE_PRINT(Rule)
 
1122
#endif /* !YYDEBUG */
 
1123
 
 
1124
 
 
1125
/* YYINITDEPTH -- initial size of the parser's stacks.  */
 
1126
#ifndef YYINITDEPTH
 
1127
# define YYINITDEPTH 200
 
1128
#endif
 
1129
 
 
1130
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 
1131
   if the built-in stack extension method is used).
 
1132
 
 
1133
   Do not make this value too large; the results are undefined if
 
1134
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
 
1135
   evaluated with infinite-precision integer arithmetic.  */
 
1136
 
 
1137
#if YYMAXDEPTH == 0
 
1138
# undef YYMAXDEPTH
 
1139
#endif
 
1140
 
 
1141
#ifndef YYMAXDEPTH
 
1142
# define YYMAXDEPTH 10000
 
1143
#endif
 
1144
 
 
1145
 
 
1146
 
 
1147
#if YYERROR_VERBOSE
 
1148
 
 
1149
# ifndef yystrlen
 
1150
#  if defined (__GLIBC__) && defined (_STRING_H)
 
1151
#   define yystrlen strlen
 
1152
#  else
 
1153
/* Return the length of YYSTR.  */
 
1154
static YYSIZE_T
 
1155
#   if defined (__STDC__) || defined (__cplusplus)
 
1156
yystrlen (const char *yystr)
 
1157
#   else
 
1158
yystrlen (yystr)
 
1159
     const char *yystr;
 
1160
#   endif
 
1161
{
 
1162
  register const char *yys = yystr;
 
1163
 
 
1164
  while (*yys++ != '\0')
 
1165
    continue;
 
1166
 
 
1167
  return yys - yystr - 1;
 
1168
}
 
1169
#  endif
 
1170
# endif
 
1171
 
 
1172
# ifndef yystpcpy
 
1173
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
 
1174
#   define yystpcpy stpcpy
 
1175
#  else
 
1176
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
 
1177
   YYDEST.  */
 
1178
static char *
 
1179
#   if defined (__STDC__) || defined (__cplusplus)
 
1180
yystpcpy (char *yydest, const char *yysrc)
 
1181
#   else
 
1182
yystpcpy (yydest, yysrc)
 
1183
     char *yydest;
 
1184
     const char *yysrc;
 
1185
#   endif
 
1186
{
 
1187
  register char *yyd = yydest;
 
1188
  register const char *yys = yysrc;
 
1189
 
 
1190
  while ((*yyd++ = *yys++) != '\0')
 
1191
    continue;
 
1192
 
 
1193
  return yyd - 1;
 
1194
}
 
1195
#  endif
 
1196
# endif
 
1197
 
 
1198
#endif /* !YYERROR_VERBOSE */
 
1199
 
 
1200
 
 
1201
 
 
1202
#if YYDEBUG
 
1203
/*--------------------------------.
 
1204
| Print this symbol on YYOUTPUT.  |
 
1205
`--------------------------------*/
 
1206
 
 
1207
#if defined (__STDC__) || defined (__cplusplus)
 
1208
static void
 
1209
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
 
1210
#else
 
1211
static void
 
1212
yysymprint (yyoutput, yytype, yyvaluep)
 
1213
    FILE *yyoutput;
 
1214
    int yytype;
 
1215
    YYSTYPE *yyvaluep;
 
1216
#endif
 
1217
{
 
1218
  /* Pacify ``unused variable'' warnings.  */
 
1219
  (void) yyvaluep;
 
1220
 
 
1221
  if (yytype < YYNTOKENS)
 
1222
    {
 
1223
      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 
1224
# ifdef YYPRINT
 
1225
      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 
1226
# endif
 
1227
    }
 
1228
  else
 
1229
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
1230
 
 
1231
  switch (yytype)
 
1232
    {
 
1233
      default:
 
1234
        break;
 
1235
    }
 
1236
  YYFPRINTF (yyoutput, ")");
 
1237
}
 
1238
 
 
1239
#endif /* ! YYDEBUG */
 
1240
/*-----------------------------------------------.
 
1241
| Release the memory associated to this symbol.  |
 
1242
`-----------------------------------------------*/
 
1243
 
 
1244
#if defined (__STDC__) || defined (__cplusplus)
 
1245
static void
 
1246
yydestruct (int yytype, YYSTYPE *yyvaluep)
 
1247
#else
 
1248
static void
 
1249
yydestruct (yytype, yyvaluep)
 
1250
    int yytype;
 
1251
    YYSTYPE *yyvaluep;
 
1252
#endif
 
1253
{
 
1254
  /* Pacify ``unused variable'' warnings.  */
 
1255
  (void) yyvaluep;
 
1256
 
 
1257
  switch (yytype)
 
1258
    {
 
1259
 
 
1260
      default:
 
1261
        break;
 
1262
    }
 
1263
}
 
1264
 
 
1265
 
 
1266
/* Prevent warnings from -Wmissing-prototypes.  */
 
1267
 
 
1268
#ifdef YYPARSE_PARAM
 
1269
# if defined (__STDC__) || defined (__cplusplus)
 
1270
int yyparse (void *YYPARSE_PARAM);
 
1271
# else
 
1272
int yyparse ();
 
1273
# endif
 
1274
#else /* ! YYPARSE_PARAM */
 
1275
#if defined (__STDC__) || defined (__cplusplus)
 
1276
int yyparse (void);
 
1277
#else
 
1278
int yyparse ();
 
1279
#endif
 
1280
#endif /* ! YYPARSE_PARAM */
 
1281
 
 
1282
 
 
1283
 
 
1284
/* The lookahead symbol.  */
 
1285
int yychar;
 
1286
 
 
1287
/* The semantic value of the lookahead symbol.  */
 
1288
YYSTYPE yylval;
 
1289
 
 
1290
/* Number of syntax errors so far.  */
 
1291
int yynerrs;
 
1292
 
 
1293
 
 
1294
 
 
1295
/*----------.
 
1296
| yyparse.  |
 
1297
`----------*/
 
1298
 
 
1299
#ifdef YYPARSE_PARAM
 
1300
# if defined (__STDC__) || defined (__cplusplus)
 
1301
int yyparse (void *YYPARSE_PARAM)
 
1302
# else
 
1303
int yyparse (YYPARSE_PARAM)
 
1304
  void *YYPARSE_PARAM;
 
1305
# endif
 
1306
#else /* ! YYPARSE_PARAM */
 
1307
#if defined (__STDC__) || defined (__cplusplus)
 
1308
int
 
1309
yyparse (void)
 
1310
#else
 
1311
int
 
1312
yyparse ()
 
1313
 
 
1314
#endif
 
1315
#endif
 
1316
{
 
1317
  
 
1318
  register int yystate;
 
1319
  register int yyn;
 
1320
  int yyresult;
 
1321
  /* Number of tokens to shift before error messages enabled.  */
 
1322
  int yyerrstatus;
 
1323
  /* Lookahead token as an internal (translated) token number.  */
 
1324
  int yytoken = 0;
 
1325
 
 
1326
  /* Three stacks and their tools:
 
1327
     `yyss': related to states,
 
1328
     `yyvs': related to semantic values,
 
1329
     `yyls': related to locations.
 
1330
 
 
1331
     Refer to the stacks thru separate pointers, to allow yyoverflow
 
1332
     to reallocate them elsewhere.  */
 
1333
 
 
1334
  /* The state stack.  */
 
1335
  short yyssa[YYINITDEPTH];
 
1336
  short *yyss = yyssa;
 
1337
  register short *yyssp;
 
1338
 
 
1339
  /* The semantic value stack.  */
 
1340
  YYSTYPE yyvsa[YYINITDEPTH];
 
1341
  YYSTYPE *yyvs = yyvsa;
 
1342
  register YYSTYPE *yyvsp;
 
1343
 
 
1344
 
 
1345
 
 
1346
#define YYPOPSTACK   (yyvsp--, yyssp--)
 
1347
 
 
1348
  YYSIZE_T yystacksize = YYINITDEPTH;
 
1349
 
 
1350
  /* The variables used to return semantic value and location from the
 
1351
     action routines.  */
 
1352
  YYSTYPE yyval;
 
1353
 
 
1354
 
 
1355
  /* When reducing, the number of symbols on the RHS of the reduced
 
1356
     rule.  */
 
1357
  int yylen;
 
1358
 
 
1359
  YYDPRINTF ((stderr, "Starting parse\n"));
 
1360
 
 
1361
  yystate = 0;
 
1362
  yyerrstatus = 0;
 
1363
  yynerrs = 0;
 
1364
  yychar = YYEMPTY;             /* Cause a token to be read.  */
 
1365
 
 
1366
  /* Initialize stack pointers.
 
1367
     Waste one element of value and location stack
 
1368
     so that they stay on the same level as the state stack.
 
1369
     The wasted elements are never initialized.  */
 
1370
 
 
1371
  yyssp = yyss;
 
1372
  yyvsp = yyvs;
 
1373
 
 
1374
  goto yysetstate;
 
1375
 
 
1376
/*------------------------------------------------------------.
 
1377
| yynewstate -- Push a new state, which is found in yystate.  |
 
1378
`------------------------------------------------------------*/
 
1379
 yynewstate:
 
1380
  /* In all cases, when you get here, the value and location stacks
 
1381
     have just been pushed. so pushing a state here evens the stacks.
 
1382
     */
 
1383
  yyssp++;
 
1384
 
 
1385
 yysetstate:
 
1386
  *yyssp = yystate;
 
1387
 
 
1388
  if (yyss + yystacksize - 1 <= yyssp)
 
1389
    {
 
1390
      /* Get the current used size of the three stacks, in elements.  */
 
1391
      YYSIZE_T yysize = yyssp - yyss + 1;
 
1392
 
 
1393
#ifdef yyoverflow
 
1394
      {
 
1395
        /* Give user a chance to reallocate the stack. Use copies of
 
1396
           these so that the &'s don't force the real ones into
 
1397
           memory.  */
 
1398
        YYSTYPE *yyvs1 = yyvs;
 
1399
        short *yyss1 = yyss;
 
1400
 
 
1401
 
 
1402
        /* Each stack pointer address is followed by the size of the
 
1403
           data in use in that stack, in bytes.  This used to be a
 
1404
           conditional around just the two extra args, but that might
 
1405
           be undefined if yyoverflow is a macro.  */
 
1406
        yyoverflow ("parser stack overflow",
 
1407
                    &yyss1, yysize * sizeof (*yyssp),
 
1408
                    &yyvs1, yysize * sizeof (*yyvsp),
 
1409
 
 
1410
                    &yystacksize);
 
1411
 
 
1412
        yyss = yyss1;
 
1413
        yyvs = yyvs1;
 
1414
      }
 
1415
#else /* no yyoverflow */
 
1416
# ifndef YYSTACK_RELOCATE
 
1417
      goto yyoverflowlab;
 
1418
# else
 
1419
      /* Extend the stack our own way.  */
 
1420
      if (YYMAXDEPTH <= yystacksize)
 
1421
        goto yyoverflowlab;
 
1422
      yystacksize *= 2;
 
1423
      if (YYMAXDEPTH < yystacksize)
 
1424
        yystacksize = YYMAXDEPTH;
 
1425
 
 
1426
      {
 
1427
        short *yyss1 = yyss;
 
1428
        union yyalloc *yyptr =
 
1429
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 
1430
        if (! yyptr)
 
1431
          goto yyoverflowlab;
 
1432
        YYSTACK_RELOCATE (yyss);
 
1433
        YYSTACK_RELOCATE (yyvs);
 
1434
 
 
1435
#  undef YYSTACK_RELOCATE
 
1436
        if (yyss1 != yyssa)
 
1437
          YYSTACK_FREE (yyss1);
 
1438
      }
 
1439
# endif
 
1440
#endif /* no yyoverflow */
 
1441
 
 
1442
      yyssp = yyss + yysize - 1;
 
1443
      yyvsp = yyvs + yysize - 1;
 
1444
 
 
1445
 
 
1446
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 
1447
                  (unsigned long int) yystacksize));
 
1448
 
 
1449
      if (yyss + yystacksize - 1 <= yyssp)
 
1450
        YYABORT;
 
1451
    }
 
1452
 
 
1453
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
1454
 
 
1455
  goto yybackup;
 
1456
 
 
1457
/*-----------.
 
1458
| yybackup.  |
 
1459
`-----------*/
 
1460
yybackup:
 
1461
 
 
1462
/* Do appropriate processing given the current state.  */
 
1463
/* Read a lookahead token if we need one and don't already have one.  */
 
1464
/* yyresume: */
 
1465
 
 
1466
  /* First try to decide what to do without reference to lookahead token.  */
 
1467
 
 
1468
  yyn = yypact[yystate];
 
1469
  if (yyn == YYPACT_NINF)
 
1470
    goto yydefault;
 
1471
 
 
1472
  /* Not known => get a lookahead token if don't already have one.  */
 
1473
 
 
1474
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
 
1475
  if (yychar == YYEMPTY)
 
1476
    {
 
1477
      YYDPRINTF ((stderr, "Reading a token: "));
 
1478
      yychar = YYLEX;
 
1479
    }
 
1480
 
 
1481
  if (yychar <= YYEOF)
 
1482
    {
 
1483
      yychar = yytoken = YYEOF;
 
1484
      YYDPRINTF ((stderr, "Now at end of input.\n"));
 
1485
    }
 
1486
  else
 
1487
    {
 
1488
      yytoken = YYTRANSLATE (yychar);
 
1489
      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
 
1490
    }
 
1491
 
 
1492
  /* If the proper action on seeing token YYTOKEN is to reduce or to
 
1493
     detect an error, take that action.  */
 
1494
  yyn += yytoken;
 
1495
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
 
1496
    goto yydefault;
 
1497
  yyn = yytable[yyn];
 
1498
  if (yyn <= 0)
 
1499
    {
 
1500
      if (yyn == 0 || yyn == YYTABLE_NINF)
 
1501
        goto yyerrlab;
 
1502
      yyn = -yyn;
 
1503
      goto yyreduce;
 
1504
    }
 
1505
 
 
1506
  if (yyn == YYFINAL)
 
1507
    YYACCEPT;
 
1508
 
 
1509
  /* Shift the lookahead token.  */
 
1510
  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
1511
 
 
1512
  /* Discard the token being shifted unless it is eof.  */
 
1513
  if (yychar != YYEOF)
 
1514
    yychar = YYEMPTY;
 
1515
 
 
1516
  *++yyvsp = yylval;
 
1517
 
 
1518
 
 
1519
  /* Count tokens shifted since error; after three, turn off error
 
1520
     status.  */
 
1521
  if (yyerrstatus)
 
1522
    yyerrstatus--;
 
1523
 
 
1524
  yystate = yyn;
 
1525
  goto yynewstate;
 
1526
 
 
1527
 
 
1528
/*-----------------------------------------------------------.
 
1529
| yydefault -- do the default action for the current state.  |
 
1530
`-----------------------------------------------------------*/
 
1531
yydefault:
 
1532
  yyn = yydefact[yystate];
 
1533
  if (yyn == 0)
 
1534
    goto yyerrlab;
 
1535
  goto yyreduce;
 
1536
 
 
1537
 
 
1538
/*-----------------------------.
 
1539
| yyreduce -- Do a reduction.  |
 
1540
`-----------------------------*/
 
1541
yyreduce:
 
1542
  /* yyn is the number of a rule to reduce with.  */
 
1543
  yylen = yyr2[yyn];
 
1544
 
 
1545
  /* If YYLEN is nonzero, implement the default value of the action:
 
1546
     `$$ = $1'.
 
1547
 
 
1548
     Otherwise, the following line sets YYVAL to garbage.
 
1549
     This behavior is undocumented and Bison
 
1550
     users should not rely upon it.  Assigning to YYVAL
 
1551
     unconditionally makes the parser a bit smaller, and it avoids a
 
1552
     GCC warning that YYVAL may be used uninitialized.  */
 
1553
  yyval = yyvsp[1-yylen];
 
1554
 
 
1555
 
 
1556
  YY_REDUCE_PRINT (yyn);
 
1557
  switch (yyn)
 
1558
    {
 
1559
        case 2:
 
1560
#line 237 "parser/faustparser.y"
 
1561
    {yyval.exp = yyvsp[0].exp; gResult = yyval.exp; ;}
 
1562
    break;
 
1563
 
 
1564
  case 3:
 
1565
#line 240 "parser/faustparser.y"
 
1566
    {yyval.exp = nil; ;}
 
1567
    break;
 
1568
 
 
1569
  case 4:
 
1570
#line 241 "parser/faustparser.y"
 
1571
    {yyval.exp = cons (yyvsp[0].exp,yyvsp[-1].exp); ;}
 
1572
    break;
 
1573
 
 
1574
  case 5:
 
1575
#line 244 "parser/faustparser.y"
 
1576
    {yyval.exp = cons(yyvsp[-6].exp,buildBoxAbstr(yyvsp[-4].exp,yyvsp[-1].exp)); ;}
 
1577
    break;
 
1578
 
 
1579
  case 6:
 
1580
#line 245 "parser/faustparser.y"
 
1581
    {yyval.exp = cons(yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
1582
    break;
 
1583
 
 
1584
  case 7:
 
1585
#line 246 "parser/faustparser.y"
 
1586
    {yyval.exp = importFile(yyvsp[-2].exp); ;}
 
1587
    break;
 
1588
 
 
1589
  case 8:
 
1590
#line 247 "parser/faustparser.y"
 
1591
    {gNameProperty.push_back(yytext); ;}
 
1592
    break;
 
1593
 
 
1594
  case 9:
 
1595
#line 247 "parser/faustparser.y"
 
1596
    {yyval.exp = nil; ;}
 
1597
    break;
 
1598
 
 
1599
  case 10:
 
1600
#line 248 "parser/faustparser.y"
 
1601
    {gAuthorProperty.push_back(yytext); ;}
 
1602
    break;
 
1603
 
 
1604
  case 11:
 
1605
#line 248 "parser/faustparser.y"
 
1606
    {yyval.exp = nil; ;}
 
1607
    break;
 
1608
 
 
1609
  case 12:
 
1610
#line 249 "parser/faustparser.y"
 
1611
    {gCopyrightProperty.push_back(yytext); ;}
 
1612
    break;
 
1613
 
 
1614
  case 13:
 
1615
#line 249 "parser/faustparser.y"
 
1616
    {yyval.exp = nil; ;}
 
1617
    break;
 
1618
 
 
1619
  case 14:
 
1620
#line 250 "parser/faustparser.y"
 
1621
    {gVersionProperty.push_back(yytext); ;}
 
1622
    break;
 
1623
 
 
1624
  case 15:
 
1625
#line 250 "parser/faustparser.y"
 
1626
    {yyval.exp = nil; ;}
 
1627
    break;
 
1628
 
 
1629
  case 16:
 
1630
#line 251 "parser/faustparser.y"
 
1631
    {gLicenseProperty.push_back(yytext); ;}
 
1632
    break;
 
1633
 
 
1634
  case 17:
 
1635
#line 251 "parser/faustparser.y"
 
1636
    {yyval.exp = nil; ;}
 
1637
    break;
 
1638
 
 
1639
  case 18:
 
1640
#line 252 "parser/faustparser.y"
 
1641
    {yyval.exp = nil; yyerr++;;}
 
1642
    break;
 
1643
 
 
1644
  case 19:
 
1645
#line 255 "parser/faustparser.y"
 
1646
    {yyval.exp=yyvsp[0].exp; setDefProp(yyvsp[0].exp, yyfilename, yylineno); ;}
 
1647
    break;
 
1648
 
 
1649
  case 20:
 
1650
#line 258 "parser/faustparser.y"
 
1651
    {yyval.exp = cons(yyvsp[0].exp,nil); ;}
 
1652
    break;
 
1653
 
 
1654
  case 21:
 
1655
#line 259 "parser/faustparser.y"
 
1656
    {yyval.exp = cons(yyvsp[0].exp,yyvsp[-2].exp); ;}
 
1657
    break;
 
1658
 
 
1659
  case 22:
 
1660
#line 262 "parser/faustparser.y"
 
1661
    {yyval.exp = boxWithLocalDef(yyvsp[-4].exp,yyvsp[-1].exp); ;}
 
1662
    break;
 
1663
 
 
1664
  case 23:
 
1665
#line 263 "parser/faustparser.y"
 
1666
    {yyval.exp = boxPar(yyvsp[-2].exp,yyvsp[0].exp);;}
 
1667
    break;
 
1668
 
 
1669
  case 24:
 
1670
#line 264 "parser/faustparser.y"
 
1671
    {yyval.exp = boxSeq(yyvsp[-2].exp,yyvsp[0].exp);;}
 
1672
    break;
 
1673
 
 
1674
  case 25:
 
1675
#line 265 "parser/faustparser.y"
 
1676
    {yyval.exp = boxSplit(yyvsp[-2].exp,yyvsp[0].exp);;}
 
1677
    break;
 
1678
 
 
1679
  case 26:
 
1680
#line 266 "parser/faustparser.y"
 
1681
    {yyval.exp = boxMerge(yyvsp[-2].exp,yyvsp[0].exp);;}
 
1682
    break;
 
1683
 
 
1684
  case 27:
 
1685
#line 267 "parser/faustparser.y"
 
1686
    {yyval.exp = boxRec(yyvsp[-2].exp,yyvsp[0].exp);;}
 
1687
    break;
 
1688
 
 
1689
  case 28:
 
1690
#line 268 "parser/faustparser.y"
 
1691
    {yyval.exp = yyvsp[0].exp; ;}
 
1692
    break;
 
1693
 
 
1694
  case 29:
 
1695
#line 271 "parser/faustparser.y"
 
1696
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigAdd)); ;}
 
1697
    break;
 
1698
 
 
1699
  case 30:
 
1700
#line 272 "parser/faustparser.y"
 
1701
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigSub)); ;}
 
1702
    break;
 
1703
 
 
1704
  case 31:
 
1705
#line 273 "parser/faustparser.y"
 
1706
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigMul)); ;}
 
1707
    break;
 
1708
 
 
1709
  case 32:
 
1710
#line 274 "parser/faustparser.y"
 
1711
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigDiv)); ;}
 
1712
    break;
 
1713
 
 
1714
  case 33:
 
1715
#line 275 "parser/faustparser.y"
 
1716
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigRem)); ;}
 
1717
    break;
 
1718
 
 
1719
  case 34:
 
1720
#line 276 "parser/faustparser.y"
 
1721
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigFixDelay)); ;}
 
1722
    break;
 
1723
 
 
1724
  case 35:
 
1725
#line 277 "parser/faustparser.y"
 
1726
    {yyval.exp = boxSeq(yyvsp[-1].exp,boxPrim1(sigDelay1)); ;}
 
1727
    break;
 
1728
 
 
1729
  case 36:
 
1730
#line 278 "parser/faustparser.y"
 
1731
    {yyval.exp = boxAccess(yyvsp[-2].exp,yyvsp[0].exp); ;}
 
1732
    break;
 
1733
 
 
1734
  case 37:
 
1735
#line 280 "parser/faustparser.y"
 
1736
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigAND)); ;}
 
1737
    break;
 
1738
 
 
1739
  case 38:
 
1740
#line 281 "parser/faustparser.y"
 
1741
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigOR)); ;}
 
1742
    break;
 
1743
 
 
1744
  case 39:
 
1745
#line 282 "parser/faustparser.y"
 
1746
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigXOR)); ;}
 
1747
    break;
 
1748
 
 
1749
  case 40:
 
1750
#line 284 "parser/faustparser.y"
 
1751
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigLeftShift)); ;}
 
1752
    break;
 
1753
 
 
1754
  case 41:
 
1755
#line 285 "parser/faustparser.y"
 
1756
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigRightShift)); ;}
 
1757
    break;
 
1758
 
 
1759
  case 42:
 
1760
#line 287 "parser/faustparser.y"
 
1761
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigLT)); ;}
 
1762
    break;
 
1763
 
 
1764
  case 43:
 
1765
#line 288 "parser/faustparser.y"
 
1766
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigLE)); ;}
 
1767
    break;
 
1768
 
 
1769
  case 44:
 
1770
#line 289 "parser/faustparser.y"
 
1771
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigGT)); ;}
 
1772
    break;
 
1773
 
 
1774
  case 45:
 
1775
#line 290 "parser/faustparser.y"
 
1776
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigGE)); ;}
 
1777
    break;
 
1778
 
 
1779
  case 46:
 
1780
#line 291 "parser/faustparser.y"
 
1781
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigEQ)); ;}
 
1782
    break;
 
1783
 
 
1784
  case 47:
 
1785
#line 292 "parser/faustparser.y"
 
1786
    {yyval.exp = boxSeq(boxPar(yyvsp[-2].exp,yyvsp[0].exp),boxPrim2(sigNE)); ;}
 
1787
    break;
 
1788
 
 
1789
  case 48:
 
1790
#line 294 "parser/faustparser.y"
 
1791
    {yyval.exp = buildBoxAppl(yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
1792
    break;
 
1793
 
 
1794
  case 49:
 
1795
#line 296 "parser/faustparser.y"
 
1796
    {yyval.exp = yyvsp[0].exp;;}
 
1797
    break;
 
1798
 
 
1799
  case 50:
 
1800
#line 299 "parser/faustparser.y"
 
1801
    {yyval.exp = boxInt(atoi(yytext));;}
 
1802
    break;
 
1803
 
 
1804
  case 51:
 
1805
#line 300 "parser/faustparser.y"
 
1806
    {yyval.exp = boxReal(float(atof(yytext)));;}
 
1807
    break;
 
1808
 
 
1809
  case 52:
 
1810
#line 302 "parser/faustparser.y"
 
1811
    {yyval.exp = boxInt(atoi(yytext));;}
 
1812
    break;
 
1813
 
 
1814
  case 53:
 
1815
#line 303 "parser/faustparser.y"
 
1816
    {yyval.exp = boxReal(float(atof(yytext)));;}
 
1817
    break;
 
1818
 
 
1819
  case 54:
 
1820
#line 305 "parser/faustparser.y"
 
1821
    {yyval.exp = boxInt(0 - atoi(yytext));;}
 
1822
    break;
 
1823
 
 
1824
  case 55:
 
1825
#line 306 "parser/faustparser.y"
 
1826
    {yyval.exp = boxReal(0.0f - float(atof(yytext)));;}
 
1827
    break;
 
1828
 
 
1829
  case 56:
 
1830
#line 308 "parser/faustparser.y"
 
1831
    {yyval.exp = boxWire();;}
 
1832
    break;
 
1833
 
 
1834
  case 57:
 
1835
#line 309 "parser/faustparser.y"
 
1836
    {yyval.exp = boxCut();;}
 
1837
    break;
 
1838
 
 
1839
  case 58:
 
1840
#line 311 "parser/faustparser.y"
 
1841
    {yyval.exp = boxPrim1(sigDelay1);;}
 
1842
    break;
 
1843
 
 
1844
  case 59:
 
1845
#line 312 "parser/faustparser.y"
 
1846
    {yyval.exp = boxPrim2(sigPrefix);;}
 
1847
    break;
 
1848
 
 
1849
  case 60:
 
1850
#line 314 "parser/faustparser.y"
 
1851
    {yyval.exp = boxPrim1(sigIntCast);;}
 
1852
    break;
 
1853
 
 
1854
  case 61:
 
1855
#line 315 "parser/faustparser.y"
 
1856
    {yyval.exp = boxPrim1(sigFloatCast);;}
 
1857
    break;
 
1858
 
 
1859
  case 62:
 
1860
#line 317 "parser/faustparser.y"
 
1861
    {yyval.exp = boxPrim2(sigAdd);;}
 
1862
    break;
 
1863
 
 
1864
  case 63:
 
1865
#line 318 "parser/faustparser.y"
 
1866
    {yyval.exp = boxPrim2(sigSub);;}
 
1867
    break;
 
1868
 
 
1869
  case 64:
 
1870
#line 319 "parser/faustparser.y"
 
1871
    {yyval.exp = boxPrim2(sigMul);;}
 
1872
    break;
 
1873
 
 
1874
  case 65:
 
1875
#line 320 "parser/faustparser.y"
 
1876
    {yyval.exp = boxPrim2(sigDiv);;}
 
1877
    break;
 
1878
 
 
1879
  case 66:
 
1880
#line 321 "parser/faustparser.y"
 
1881
    {yyval.exp = boxPrim2(sigRem);;}
 
1882
    break;
 
1883
 
 
1884
  case 67:
 
1885
#line 322 "parser/faustparser.y"
 
1886
    {yyval.exp = boxPrim2(sigFixDelay);;}
 
1887
    break;
 
1888
 
 
1889
  case 68:
 
1890
#line 324 "parser/faustparser.y"
 
1891
    {yyval.exp = boxPrim2(sigAND);;}
 
1892
    break;
 
1893
 
 
1894
  case 69:
 
1895
#line 325 "parser/faustparser.y"
 
1896
    {yyval.exp = boxPrim2(sigOR);;}
 
1897
    break;
 
1898
 
 
1899
  case 70:
 
1900
#line 326 "parser/faustparser.y"
 
1901
    {yyval.exp = boxPrim2(sigXOR);;}
 
1902
    break;
 
1903
 
 
1904
  case 71:
 
1905
#line 328 "parser/faustparser.y"
 
1906
    {yyval.exp = boxPrim2(sigLeftShift);;}
 
1907
    break;
 
1908
 
 
1909
  case 72:
 
1910
#line 329 "parser/faustparser.y"
 
1911
    {yyval.exp = boxPrim2(sigRightShift);;}
 
1912
    break;
 
1913
 
 
1914
  case 73:
 
1915
#line 331 "parser/faustparser.y"
 
1916
    {yyval.exp = boxPrim2(sigLT);;}
 
1917
    break;
 
1918
 
 
1919
  case 74:
 
1920
#line 332 "parser/faustparser.y"
 
1921
    {yyval.exp = boxPrim2(sigLE);;}
 
1922
    break;
 
1923
 
 
1924
  case 75:
 
1925
#line 333 "parser/faustparser.y"
 
1926
    {yyval.exp = boxPrim2(sigGT);;}
 
1927
    break;
 
1928
 
 
1929
  case 76:
 
1930
#line 334 "parser/faustparser.y"
 
1931
    {yyval.exp = boxPrim2(sigGE);;}
 
1932
    break;
 
1933
 
 
1934
  case 77:
 
1935
#line 335 "parser/faustparser.y"
 
1936
    {yyval.exp = boxPrim2(sigEQ);;}
 
1937
    break;
 
1938
 
 
1939
  case 78:
 
1940
#line 336 "parser/faustparser.y"
 
1941
    {yyval.exp = boxPrim2(sigNE);;}
 
1942
    break;
 
1943
 
 
1944
  case 79:
 
1945
#line 338 "parser/faustparser.y"
 
1946
    {yyval.exp = boxPrim2(sigAttach);;}
 
1947
    break;
 
1948
 
 
1949
  case 80:
 
1950
#line 340 "parser/faustparser.y"
 
1951
    {yyval.exp = gAcosPrim->box(); ;}
 
1952
    break;
 
1953
 
 
1954
  case 81:
 
1955
#line 341 "parser/faustparser.y"
 
1956
    {yyval.exp = gAsinPrim->box(); ;}
 
1957
    break;
 
1958
 
 
1959
  case 82:
 
1960
#line 342 "parser/faustparser.y"
 
1961
    {yyval.exp = gAtanPrim->box(); ;}
 
1962
    break;
 
1963
 
 
1964
  case 83:
 
1965
#line 343 "parser/faustparser.y"
 
1966
    {yyval.exp = gAtan2Prim->box(); ;}
 
1967
    break;
 
1968
 
 
1969
  case 84:
 
1970
#line 344 "parser/faustparser.y"
 
1971
    {yyval.exp = gCosPrim->box(); ;}
 
1972
    break;
 
1973
 
 
1974
  case 85:
 
1975
#line 345 "parser/faustparser.y"
 
1976
    {yyval.exp = gSinPrim->box(); ;}
 
1977
    break;
 
1978
 
 
1979
  case 86:
 
1980
#line 346 "parser/faustparser.y"
 
1981
    {yyval.exp = gTanPrim->box(); ;}
 
1982
    break;
 
1983
 
 
1984
  case 87:
 
1985
#line 348 "parser/faustparser.y"
 
1986
    {yyval.exp = gExpPrim->box(); ;}
 
1987
    break;
 
1988
 
 
1989
  case 88:
 
1990
#line 349 "parser/faustparser.y"
 
1991
    {yyval.exp = gLogPrim->box(); ;}
 
1992
    break;
 
1993
 
 
1994
  case 89:
 
1995
#line 350 "parser/faustparser.y"
 
1996
    {yyval.exp = gLog10Prim->box(); ;}
 
1997
    break;
 
1998
 
 
1999
  case 90:
 
2000
#line 351 "parser/faustparser.y"
 
2001
    {yyval.exp = gPowPrim->box(); ;}
 
2002
    break;
 
2003
 
 
2004
  case 91:
 
2005
#line 352 "parser/faustparser.y"
 
2006
    {yyval.exp = gSqrtPrim->box(); ;}
 
2007
    break;
 
2008
 
 
2009
  case 92:
 
2010
#line 354 "parser/faustparser.y"
 
2011
    {yyval.exp = gAbsPrim->box(); ;}
 
2012
    break;
 
2013
 
 
2014
  case 93:
 
2015
#line 355 "parser/faustparser.y"
 
2016
    {yyval.exp = gMinPrim->box(); ;}
 
2017
    break;
 
2018
 
 
2019
  case 94:
 
2020
#line 356 "parser/faustparser.y"
 
2021
    {yyval.exp = gMaxPrim->box(); ;}
 
2022
    break;
 
2023
 
 
2024
  case 95:
 
2025
#line 358 "parser/faustparser.y"
 
2026
    {yyval.exp = gFmodPrim->box(); ;}
 
2027
    break;
 
2028
 
 
2029
  case 96:
 
2030
#line 359 "parser/faustparser.y"
 
2031
    {yyval.exp = gRemainderPrim->box(); ;}
 
2032
    break;
 
2033
 
 
2034
  case 97:
 
2035
#line 361 "parser/faustparser.y"
 
2036
    {yyval.exp = gFloorPrim->box(); ;}
 
2037
    break;
 
2038
 
 
2039
  case 98:
 
2040
#line 362 "parser/faustparser.y"
 
2041
    {yyval.exp = gCeilPrim->box(); ;}
 
2042
    break;
 
2043
 
 
2044
  case 99:
 
2045
#line 363 "parser/faustparser.y"
 
2046
    {yyval.exp = gRintPrim->box(); ;}
 
2047
    break;
 
2048
 
 
2049
  case 100:
 
2050
#line 366 "parser/faustparser.y"
 
2051
    {yyval.exp = boxPrim3(sigReadOnlyTable);;}
 
2052
    break;
 
2053
 
 
2054
  case 101:
 
2055
#line 367 "parser/faustparser.y"
 
2056
    {yyval.exp = boxPrim5(sigWriteReadTable);;}
 
2057
    break;
 
2058
 
 
2059
  case 102:
 
2060
#line 369 "parser/faustparser.y"
 
2061
    {yyval.exp = boxPrim3(sigSelect2);;}
 
2062
    break;
 
2063
 
 
2064
  case 103:
 
2065
#line 370 "parser/faustparser.y"
 
2066
    {yyval.exp = boxPrim4(sigSelect3);;}
 
2067
    break;
 
2068
 
 
2069
  case 104:
 
2070
#line 372 "parser/faustparser.y"
 
2071
    {yyval.exp = yyvsp[0].exp;;}
 
2072
    break;
 
2073
 
 
2074
  case 105:
 
2075
#line 374 "parser/faustparser.y"
 
2076
    {yyval.exp = yyvsp[-1].exp;;}
 
2077
    break;
 
2078
 
 
2079
  case 106:
 
2080
#line 376 "parser/faustparser.y"
 
2081
    {yyval.exp = buildBoxAbstr(yyvsp[-5].exp,yyvsp[-1].exp);;}
 
2082
    break;
 
2083
 
 
2084
  case 107:
 
2085
#line 377 "parser/faustparser.y"
 
2086
    {yyval.exp = boxFFun(yyvsp[0].exp); ;}
 
2087
    break;
 
2088
 
 
2089
  case 108:
 
2090
#line 378 "parser/faustparser.y"
 
2091
    {yyval.exp = yyvsp[0].exp;;}
 
2092
    break;
 
2093
 
 
2094
  case 109:
 
2095
#line 379 "parser/faustparser.y"
 
2096
    {yyval.exp = boxComponent(yyvsp[-1].exp); ;}
 
2097
    break;
 
2098
 
 
2099
  case 110:
 
2100
#line 381 "parser/faustparser.y"
 
2101
    {yyval.exp = yyvsp[0].exp;;}
 
2102
    break;
 
2103
 
 
2104
  case 111:
 
2105
#line 382 "parser/faustparser.y"
 
2106
    {yyval.exp = yyvsp[0].exp;;}
 
2107
    break;
 
2108
 
 
2109
  case 112:
 
2110
#line 383 "parser/faustparser.y"
 
2111
    {yyval.exp = yyvsp[0].exp;;}
 
2112
    break;
 
2113
 
 
2114
  case 113:
 
2115
#line 384 "parser/faustparser.y"
 
2116
    {yyval.exp = yyvsp[0].exp;;}
 
2117
    break;
 
2118
 
 
2119
  case 114:
 
2120
#line 385 "parser/faustparser.y"
 
2121
    {yyval.exp = yyvsp[0].exp;;}
 
2122
    break;
 
2123
 
 
2124
  case 115:
 
2125
#line 386 "parser/faustparser.y"
 
2126
    {yyval.exp = yyvsp[0].exp;;}
 
2127
    break;
 
2128
 
 
2129
  case 116:
 
2130
#line 387 "parser/faustparser.y"
 
2131
    {yyval.exp = yyvsp[0].exp;;}
 
2132
    break;
 
2133
 
 
2134
  case 117:
 
2135
#line 388 "parser/faustparser.y"
 
2136
    {yyval.exp = yyvsp[0].exp;;}
 
2137
    break;
 
2138
 
 
2139
  case 118:
 
2140
#line 389 "parser/faustparser.y"
 
2141
    {yyval.exp = yyvsp[0].exp;;}
 
2142
    break;
 
2143
 
 
2144
  case 119:
 
2145
#line 390 "parser/faustparser.y"
 
2146
    {yyval.exp = yyvsp[0].exp;;}
 
2147
    break;
 
2148
 
 
2149
  case 120:
 
2150
#line 392 "parser/faustparser.y"
 
2151
    {yyval.exp = yyvsp[0].exp;;}
 
2152
    break;
 
2153
 
 
2154
  case 121:
 
2155
#line 393 "parser/faustparser.y"
 
2156
    {yyval.exp = yyvsp[0].exp;;}
 
2157
    break;
 
2158
 
 
2159
  case 122:
 
2160
#line 394 "parser/faustparser.y"
 
2161
    {yyval.exp = yyvsp[0].exp;;}
 
2162
    break;
 
2163
 
 
2164
  case 123:
 
2165
#line 395 "parser/faustparser.y"
 
2166
    {yyval.exp = yyvsp[0].exp;;}
 
2167
    break;
 
2168
 
 
2169
  case 124:
 
2170
#line 399 "parser/faustparser.y"
 
2171
    {yyval.exp = boxIdent(yytext);;}
 
2172
    break;
 
2173
 
 
2174
  case 125:
 
2175
#line 402 "parser/faustparser.y"
 
2176
    {yyval.exp = tree(yytext);;}
 
2177
    break;
 
2178
 
 
2179
  case 126:
 
2180
#line 407 "parser/faustparser.y"
 
2181
    {yyval.exp = cons(yyvsp[0].exp,nil); ;}
 
2182
    break;
 
2183
 
 
2184
  case 127:
 
2185
#line 408 "parser/faustparser.y"
 
2186
    {yyval.exp = cons(yyvsp[0].exp,yyvsp[-2].exp); ;}
 
2187
    break;
 
2188
 
 
2189
  case 128:
 
2190
#line 411 "parser/faustparser.y"
 
2191
    {yyval.exp = boxSeq(yyvsp[-2].exp,yyvsp[0].exp);;}
 
2192
    break;
 
2193
 
 
2194
  case 129:
 
2195
#line 412 "parser/faustparser.y"
 
2196
    {yyval.exp = boxSplit(yyvsp[-2].exp,yyvsp[0].exp);;}
 
2197
    break;
 
2198
 
 
2199
  case 130:
 
2200
#line 413 "parser/faustparser.y"
 
2201
    {yyval.exp = boxMerge(yyvsp[-2].exp,yyvsp[0].exp);;}
 
2202
    break;
 
2203
 
 
2204
  case 131:
 
2205
#line 414 "parser/faustparser.y"
 
2206
    {yyval.exp = boxRec(yyvsp[-2].exp,yyvsp[0].exp);;}
 
2207
    break;
 
2208
 
 
2209
  case 132:
 
2210
#line 415 "parser/faustparser.y"
 
2211
    {yyval.exp = yyvsp[0].exp;;}
 
2212
    break;
 
2213
 
 
2214
  case 133:
 
2215
#line 418 "parser/faustparser.y"
 
2216
    {yyval.exp = tree(yytext); ;}
 
2217
    break;
 
2218
 
 
2219
  case 134:
 
2220
#line 421 "parser/faustparser.y"
 
2221
    {yyval.exp = unquote(yytext); ;}
 
2222
    break;
 
2223
 
 
2224
  case 135:
 
2225
#line 424 "parser/faustparser.y"
 
2226
    {yyval.exp = tree(yytext); ;}
 
2227
    break;
 
2228
 
 
2229
  case 136:
 
2230
#line 425 "parser/faustparser.y"
 
2231
    {yyval.exp = tree(yytext); ;}
 
2232
    break;
 
2233
 
 
2234
  case 137:
 
2235
#line 431 "parser/faustparser.y"
 
2236
    {yyval.exp = boxIPar(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2237
    break;
 
2238
 
 
2239
  case 138:
 
2240
#line 435 "parser/faustparser.y"
 
2241
    {yyval.exp = boxISeq(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2242
    break;
 
2243
 
 
2244
  case 139:
 
2245
#line 439 "parser/faustparser.y"
 
2246
    {yyval.exp = boxISum(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2247
    break;
 
2248
 
 
2249
  case 140:
 
2250
#line 443 "parser/faustparser.y"
 
2251
    {yyval.exp = boxIProd(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2252
    break;
 
2253
 
 
2254
  case 141:
 
2255
#line 450 "parser/faustparser.y"
 
2256
    {yyval.exp = ffunction(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2257
    break;
 
2258
 
 
2259
  case 142:
 
2260
#line 454 "parser/faustparser.y"
 
2261
    {yyval.exp = boxFConst(yyvsp[-4].exp,yyvsp[-3].exp,yyvsp[-1].exp);;}
 
2262
    break;
 
2263
 
 
2264
  case 143:
 
2265
#line 458 "parser/faustparser.y"
 
2266
    {yyval.exp = boxButton(yyvsp[-1].exp); ;}
 
2267
    break;
 
2268
 
 
2269
  case 144:
 
2270
#line 461 "parser/faustparser.y"
 
2271
    {yyval.exp = boxCheckbox(yyvsp[-1].exp); ;}
 
2272
    break;
 
2273
 
 
2274
  case 145:
 
2275
#line 465 "parser/faustparser.y"
 
2276
    {yyval.exp = boxVSlider(yyvsp[-9].exp,yyvsp[-7].exp,yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
2277
    break;
 
2278
 
 
2279
  case 146:
 
2280
#line 468 "parser/faustparser.y"
 
2281
    {yyval.exp = boxHSlider(yyvsp[-9].exp,yyvsp[-7].exp,yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
2282
    break;
 
2283
 
 
2284
  case 147:
 
2285
#line 471 "parser/faustparser.y"
 
2286
    {yyval.exp = boxNumEntry(yyvsp[-9].exp,yyvsp[-7].exp,yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
2287
    break;
 
2288
 
 
2289
  case 148:
 
2290
#line 474 "parser/faustparser.y"
 
2291
    {yyval.exp = boxVGroup(yyvsp[-3].exp, yyvsp[-1].exp); ;}
 
2292
    break;
 
2293
 
 
2294
  case 149:
 
2295
#line 477 "parser/faustparser.y"
 
2296
    {yyval.exp = boxHGroup(yyvsp[-3].exp, yyvsp[-1].exp); ;}
 
2297
    break;
 
2298
 
 
2299
  case 150:
 
2300
#line 480 "parser/faustparser.y"
 
2301
    {yyval.exp = boxTGroup(yyvsp[-3].exp, yyvsp[-1].exp); ;}
 
2302
    break;
 
2303
 
 
2304
  case 151:
 
2305
#line 484 "parser/faustparser.y"
 
2306
    {yyval.exp = boxVBargraph(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
2307
    break;
 
2308
 
 
2309
  case 152:
 
2310
#line 487 "parser/faustparser.y"
 
2311
    {yyval.exp = boxHBargraph(yyvsp[-5].exp,yyvsp[-3].exp,yyvsp[-1].exp); ;}
 
2312
    break;
 
2313
 
 
2314
  case 153:
 
2315
#line 491 "parser/faustparser.y"
 
2316
    {yyval.exp = cons(yyvsp[-4].exp, cons(yyvsp[-3].exp, yyvsp[-1].exp)); ;}
 
2317
    break;
 
2318
 
 
2319
  case 154:
 
2320
#line 492 "parser/faustparser.y"
 
2321
    {yyval.exp = cons(yyvsp[-3].exp, cons(yyvsp[-2].exp, nil)); ;}
 
2322
    break;
 
2323
 
 
2324
  case 155:
 
2325
#line 495 "parser/faustparser.y"
 
2326
    {yyval.exp = tree(yytext);;}
 
2327
    break;
 
2328
 
 
2329
  case 156:
 
2330
#line 498 "parser/faustparser.y"
 
2331
    {yyval.exp = cons(yyvsp[0].exp,nil); ;}
 
2332
    break;
 
2333
 
 
2334
  case 157:
 
2335
#line 499 "parser/faustparser.y"
 
2336
    {yyval.exp = cons(yyvsp[0].exp,yyvsp[-2].exp); ;}
 
2337
    break;
 
2338
 
 
2339
  case 158:
 
2340
#line 502 "parser/faustparser.y"
 
2341
    {yyval.exp = tree(0); ;}
 
2342
    break;
 
2343
 
 
2344
  case 159:
 
2345
#line 503 "parser/faustparser.y"
 
2346
    {yyval.exp = tree(1); ;}
 
2347
    break;
 
2348
 
 
2349
 
 
2350
    }
 
2351
 
 
2352
/* Line 991 of yacc.c.  */
 
2353
#line 2353 "parser/faustparser.cpp"
 
2354
 
 
2355
  yyvsp -= yylen;
 
2356
  yyssp -= yylen;
 
2357
 
 
2358
 
 
2359
  YY_STACK_PRINT (yyss, yyssp);
 
2360
 
 
2361
  *++yyvsp = yyval;
 
2362
 
 
2363
 
 
2364
  /* Now `shift' the result of the reduction.  Determine what state
 
2365
     that goes to, based on the state we popped back to and the rule
 
2366
     number reduced by.  */
 
2367
 
 
2368
  yyn = yyr1[yyn];
 
2369
 
 
2370
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
 
2371
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
 
2372
    yystate = yytable[yystate];
 
2373
  else
 
2374
    yystate = yydefgoto[yyn - YYNTOKENS];
 
2375
 
 
2376
  goto yynewstate;
 
2377
 
 
2378
 
 
2379
/*------------------------------------.
 
2380
| yyerrlab -- here on detecting error |
 
2381
`------------------------------------*/
 
2382
yyerrlab:
 
2383
  /* If not already recovering from an error, report this error.  */
 
2384
  if (!yyerrstatus)
 
2385
    {
 
2386
      ++yynerrs;
 
2387
#if YYERROR_VERBOSE
 
2388
      yyn = yypact[yystate];
 
2389
 
 
2390
      if (YYPACT_NINF < yyn && yyn < YYLAST)
 
2391
        {
 
2392
          YYSIZE_T yysize = 0;
 
2393
          int yytype = YYTRANSLATE (yychar);
 
2394
          char *yymsg;
 
2395
          int yyx, yycount;
 
2396
 
 
2397
          yycount = 0;
 
2398
          /* Start YYX at -YYN if negative to avoid negative indexes in
 
2399
             YYCHECK.  */
 
2400
          for (yyx = yyn < 0 ? -yyn : 0;
 
2401
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
 
2402
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
2403
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
 
2404
          yysize += yystrlen ("syntax error, unexpected ") + 1;
 
2405
          yysize += yystrlen (yytname[yytype]);
 
2406
          yymsg = (char *) YYSTACK_ALLOC (yysize);
 
2407
          if (yymsg != 0)
 
2408
            {
 
2409
              char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
 
2410
              yyp = yystpcpy (yyp, yytname[yytype]);
 
2411
 
 
2412
              if (yycount < 5)
 
2413
                {
 
2414
                  yycount = 0;
 
2415
                  for (yyx = yyn < 0 ? -yyn : 0;
 
2416
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
 
2417
                       yyx++)
 
2418
                    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
2419
                      {
 
2420
                        const char *yyq = ! yycount ? ", expecting " : " or ";
 
2421
                        yyp = yystpcpy (yyp, yyq);
 
2422
                        yyp = yystpcpy (yyp, yytname[yyx]);
 
2423
                        yycount++;
 
2424
                      }
 
2425
                }
 
2426
              yyerror (yymsg);
 
2427
              YYSTACK_FREE (yymsg);
 
2428
            }
 
2429
          else
 
2430
            yyerror ("syntax error; also virtual memory exhausted");
 
2431
        }
 
2432
      else
 
2433
#endif /* YYERROR_VERBOSE */
 
2434
        yyerror ("syntax error");
 
2435
    }
 
2436
 
 
2437
 
 
2438
 
 
2439
  if (yyerrstatus == 3)
 
2440
    {
 
2441
      /* If just tried and failed to reuse lookahead token after an
 
2442
         error, discard it.  */
 
2443
 
 
2444
      /* Return failure if at end of input.  */
 
2445
      if (yychar == YYEOF)
 
2446
        {
 
2447
          /* Pop the error token.  */
 
2448
          YYPOPSTACK;
 
2449
          /* Pop the rest of the stack.  */
 
2450
          while (yyss < yyssp)
 
2451
            {
 
2452
              YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
 
2453
              yydestruct (yystos[*yyssp], yyvsp);
 
2454
              YYPOPSTACK;
 
2455
            }
 
2456
          YYABORT;
 
2457
        }
 
2458
 
 
2459
      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
 
2460
      yydestruct (yytoken, &yylval);
 
2461
      yychar = YYEMPTY;
 
2462
 
 
2463
    }
 
2464
 
 
2465
  /* Else will try to reuse lookahead token after shifting the error
 
2466
     token.  */
 
2467
  goto yyerrlab2;
 
2468
 
 
2469
 
 
2470
/*----------------------------------------------------.
 
2471
| yyerrlab1 -- error raised explicitly by an action.  |
 
2472
`----------------------------------------------------*/
 
2473
yyerrlab1:
 
2474
 
 
2475
  /* Suppress GCC warning that yyerrlab1 is unused when no action
 
2476
     invokes YYERROR.  */
 
2477
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
 
2478
    && !defined __cplusplus
 
2479
  __attribute__ ((__unused__))
 
2480
#endif
 
2481
 
 
2482
 
 
2483
  goto yyerrlab2;
 
2484
 
 
2485
 
 
2486
/*---------------------------------------------------------------.
 
2487
| yyerrlab2 -- pop states until the error token can be shifted.  |
 
2488
`---------------------------------------------------------------*/
 
2489
yyerrlab2:
 
2490
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
2491
 
 
2492
  for (;;)
 
2493
    {
 
2494
      yyn = yypact[yystate];
 
2495
      if (yyn != YYPACT_NINF)
 
2496
        {
 
2497
          yyn += YYTERROR;
 
2498
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
 
2499
            {
 
2500
              yyn = yytable[yyn];
 
2501
              if (0 < yyn)
 
2502
                break;
 
2503
            }
 
2504
        }
 
2505
 
 
2506
      /* Pop the current state because it cannot handle the error token.  */
 
2507
      if (yyssp == yyss)
 
2508
        YYABORT;
 
2509
 
 
2510
      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
 
2511
      yydestruct (yystos[yystate], yyvsp);
 
2512
      yyvsp--;
 
2513
      yystate = *--yyssp;
 
2514
 
 
2515
      YY_STACK_PRINT (yyss, yyssp);
 
2516
    }
 
2517
 
 
2518
  if (yyn == YYFINAL)
 
2519
    YYACCEPT;
 
2520
 
 
2521
  YYDPRINTF ((stderr, "Shifting error token, "));
 
2522
 
 
2523
  *++yyvsp = yylval;
 
2524
 
 
2525
 
 
2526
  yystate = yyn;
 
2527
  goto yynewstate;
 
2528
 
 
2529
 
 
2530
/*-------------------------------------.
 
2531
| yyacceptlab -- YYACCEPT comes here.  |
 
2532
`-------------------------------------*/
 
2533
yyacceptlab:
 
2534
  yyresult = 0;
 
2535
  goto yyreturn;
 
2536
 
 
2537
/*-----------------------------------.
 
2538
| yyabortlab -- YYABORT comes here.  |
 
2539
`-----------------------------------*/
 
2540
yyabortlab:
 
2541
  yyresult = 1;
 
2542
  goto yyreturn;
 
2543
 
 
2544
#ifndef yyoverflow
 
2545
/*----------------------------------------------.
 
2546
| yyoverflowlab -- parser overflow comes here.  |
 
2547
`----------------------------------------------*/
 
2548
yyoverflowlab:
 
2549
  yyerror ("parser stack overflow");
 
2550
  yyresult = 2;
 
2551
  /* Fall through.  */
 
2552
#endif
 
2553
 
 
2554
yyreturn:
 
2555
#ifndef yyoverflow
 
2556
  if (yyss != yyssa)
 
2557
    YYSTACK_FREE (yyss);
 
2558
#endif
 
2559
  return yyresult;
 
2560
}
 
2561
 
 
2562
 
 
2563
#line 506 "parser/faustparser.y"
 
2564
 
 
2565
 
 
2566