]> git.donarmstrong.com Git - lilypond.git/blob - lily/out/parser.cc
Imported Upstream version 2.12.3
[lilypond.git] / lily / out / parser.cc
1 /* A Bison parser, made by GNU Bison 2.3.  */
2
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software Foundation, Inc.
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
22
23 /* As a special exception, you may create a larger work that contains
24    part or all of the Bison parser skeleton and distribute that work
25    under terms of your choice, so long as that work isn't itself a
26    parser generator using the skeleton or a modified version thereof
27    as a parser skeleton.  Alternatively, if you modify or redistribute
28    the parser skeleton itself, you may (at your option) remove this
29    special exception, which will cause the skeleton and the resulting
30    Bison output files to be licensed under the GNU General Public
31    License without this special exception.
32
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
35
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37    simplifying the original so-called "semantic" parser.  */
38
39 /* All symbols defined below should begin with yy or YY, to avoid
40    infringing on user name space.  This should be done even for local
41    variables, as they might otherwise be expanded by user macros.
42    There are some unavoidable exceptions within include files to
43    define necessary library symbols; they are noted "INFRINGES ON
44    USER NAME SPACE" below.  */
45
46 /* Identify Bison output.  */
47 #define YYBISON 1
48
49 /* Bison version.  */
50 #define YYBISON_VERSION "2.3"
51
52 /* Skeleton name.  */
53 #define YYSKELETON_NAME "yacc.c"
54
55 /* Pure parsers.  */
56 #define YYPURE 1
57
58 /* Using locations.  */
59 #define YYLSP_NEEDED 1
60
61
62
63 /* Tokens.  */
64 #ifndef YYTOKENTYPE
65 # define YYTOKENTYPE
66    /* Put the tokens into the symbol table, so that GDB and other debuggers
67       know about them.  */
68    enum yytokentype {
69      PREC_TOP = 258,
70      ADDLYRICS = 259,
71      PREC_BOT = 260,
72      ACCEPTS = 261,
73      ALIAS = 262,
74      ALTERNATIVE = 263,
75      BOOK = 264,
76      BOOKPART = 265,
77      CHANGE = 266,
78      CHORDMODE = 267,
79      CHORDS = 268,
80      CONSISTS = 269,
81      CONTEXT = 270,
82      DEFAULT = 271,
83      DEFAULTCHILD = 272,
84      DENIES = 273,
85      DESCRIPTION = 274,
86      DRUMMODE = 275,
87      DRUMS = 276,
88      FIGUREMODE = 277,
89      FIGURES = 278,
90      GROBDESCRIPTIONS = 279,
91      HEADER = 280,
92      INVALID = 281,
93      KEY = 282,
94      LAYOUT = 283,
95      LYRICMODE = 284,
96      LYRICS = 285,
97      LYRICSTO = 286,
98      MARK = 287,
99      MARKUP = 288,
100      MARKUPLINES = 289,
101      MIDI = 290,
102      NAME = 291,
103      NOTEMODE = 292,
104      OBJECTID = 293,
105      OCTAVE = 294,
106      ONCE = 295,
107      OVERRIDE = 296,
108      PAPER = 297,
109      PARTIAL = 298,
110      RELATIVE = 299,
111      REMOVE = 300,
112      REPEAT = 301,
113      REST = 302,
114      REVERT = 303,
115      SCORE = 304,
116      SEQUENTIAL = 305,
117      SET = 306,
118      SIMULTANEOUS = 307,
119      SKIP = 308,
120      TEMPO = 309,
121      TIMES = 310,
122      TRANSPOSE = 311,
123      TYPE = 312,
124      UNSET = 313,
125      WITH = 314,
126      TIME_T = 315,
127      NEWCONTEXT = 316,
128      CHORD_BASS = 317,
129      CHORD_CARET = 318,
130      CHORD_COLON = 319,
131      CHORD_MINUS = 320,
132      CHORD_SLASH = 321,
133      ANGLE_OPEN = 322,
134      ANGLE_CLOSE = 323,
135      DOUBLE_ANGLE_OPEN = 324,
136      DOUBLE_ANGLE_CLOSE = 325,
137      E_BACKSLASH = 326,
138      E_ANGLE_CLOSE = 327,
139      E_CHAR = 328,
140      E_CLOSE = 329,
141      E_EXCLAMATION = 330,
142      E_BRACKET_OPEN = 331,
143      E_OPEN = 332,
144      E_BRACKET_CLOSE = 333,
145      E_ANGLE_OPEN = 334,
146      E_PLUS = 335,
147      E_TILDE = 336,
148      EXTENDER = 337,
149      FIGURE_CLOSE = 338,
150      FIGURE_OPEN = 339,
151      FIGURE_SPACE = 340,
152      HYPHEN = 341,
153      CHORDMODIFIERS = 342,
154      LYRIC_MARKUP = 343,
155      MULTI_MEASURE_REST = 344,
156      DIGIT = 345,
157      E_UNSIGNED = 346,
158      UNSIGNED = 347,
159      EXPECT_MARKUP = 348,
160      EXPECT_MUSIC = 349,
161      EXPECT_SCM = 350,
162      EXPECT_NO_MORE_ARGS = 351,
163      BOOK_IDENTIFIER = 352,
164      CHORDMODIFIER_PITCH = 353,
165      CHORD_MODIFIER = 354,
166      CONTEXT_DEF_IDENTIFIER = 355,
167      DRUM_PITCH = 356,
168      DURATION_IDENTIFIER = 357,
169      EVENT_IDENTIFIER = 358,
170      FRACTION = 359,
171      LYRICS_STRING = 360,
172      LYRIC_MARKUP_IDENTIFIER = 361,
173      MARKUP_HEAD_EMPTY = 362,
174      MARKUP_HEAD_LIST0 = 363,
175      MARKUP_HEAD_MARKUP0 = 364,
176      MARKUP_HEAD_MARKUP0_MARKUP1 = 365,
177      MARKUP_HEAD_SCM0 = 366,
178      MARKUP_HEAD_SCM0_MARKUP1 = 367,
179      MARKUP_HEAD_SCM0_SCM1 = 368,
180      MARKUP_HEAD_SCM0_SCM1_MARKUP2 = 369,
181      MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3 = 370,
182      MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 = 371,
183      MARKUP_HEAD_SCM0_SCM1_SCM2 = 372,
184      MARKUP_LIST_HEAD_EMPTY = 373,
185      MARKUP_LIST_HEAD_LIST0 = 374,
186      MARKUP_LIST_HEAD_SCM0 = 375,
187      MARKUP_LIST_HEAD_SCM0_LIST1 = 376,
188      MARKUP_LIST_HEAD_SCM0_SCM1_LIST2 = 377,
189      MARKUP_IDENTIFIER = 378,
190      MUSIC_FUNCTION = 379,
191      MUSIC_IDENTIFIER = 380,
192      NOTENAME_PITCH = 381,
193      NUMBER_IDENTIFIER = 382,
194      OUTPUT_DEF_IDENTIFIER = 383,
195      REAL = 384,
196      RESTNAME = 385,
197      SCM_IDENTIFIER = 386,
198      SCM_TOKEN = 387,
199      SCORE_IDENTIFIER = 388,
200      STRING = 389,
201      STRING_IDENTIFIER = 390,
202      TONICNAME_PITCH = 391,
203      UNARY_MINUS = 392
204    };
205 #endif
206 /* Tokens.  */
207 #define PREC_TOP 258
208 #define ADDLYRICS 259
209 #define PREC_BOT 260
210 #define ACCEPTS 261
211 #define ALIAS 262
212 #define ALTERNATIVE 263
213 #define BOOK 264
214 #define BOOKPART 265
215 #define CHANGE 266
216 #define CHORDMODE 267
217 #define CHORDS 268
218 #define CONSISTS 269
219 #define CONTEXT 270
220 #define DEFAULT 271
221 #define DEFAULTCHILD 272
222 #define DENIES 273
223 #define DESCRIPTION 274
224 #define DRUMMODE 275
225 #define DRUMS 276
226 #define FIGUREMODE 277
227 #define FIGURES 278
228 #define GROBDESCRIPTIONS 279
229 #define HEADER 280
230 #define INVALID 281
231 #define KEY 282
232 #define LAYOUT 283
233 #define LYRICMODE 284
234 #define LYRICS 285
235 #define LYRICSTO 286
236 #define MARK 287
237 #define MARKUP 288
238 #define MARKUPLINES 289
239 #define MIDI 290
240 #define NAME 291
241 #define NOTEMODE 292
242 #define OBJECTID 293
243 #define OCTAVE 294
244 #define ONCE 295
245 #define OVERRIDE 296
246 #define PAPER 297
247 #define PARTIAL 298
248 #define RELATIVE 299
249 #define REMOVE 300
250 #define REPEAT 301
251 #define REST 302
252 #define REVERT 303
253 #define SCORE 304
254 #define SEQUENTIAL 305
255 #define SET 306
256 #define SIMULTANEOUS 307
257 #define SKIP 308
258 #define TEMPO 309
259 #define TIMES 310
260 #define TRANSPOSE 311
261 #define TYPE 312
262 #define UNSET 313
263 #define WITH 314
264 #define TIME_T 315
265 #define NEWCONTEXT 316
266 #define CHORD_BASS 317
267 #define CHORD_CARET 318
268 #define CHORD_COLON 319
269 #define CHORD_MINUS 320
270 #define CHORD_SLASH 321
271 #define ANGLE_OPEN 322
272 #define ANGLE_CLOSE 323
273 #define DOUBLE_ANGLE_OPEN 324
274 #define DOUBLE_ANGLE_CLOSE 325
275 #define E_BACKSLASH 326
276 #define E_ANGLE_CLOSE 327
277 #define E_CHAR 328
278 #define E_CLOSE 329
279 #define E_EXCLAMATION 330
280 #define E_BRACKET_OPEN 331
281 #define E_OPEN 332
282 #define E_BRACKET_CLOSE 333
283 #define E_ANGLE_OPEN 334
284 #define E_PLUS 335
285 #define E_TILDE 336
286 #define EXTENDER 337
287 #define FIGURE_CLOSE 338
288 #define FIGURE_OPEN 339
289 #define FIGURE_SPACE 340
290 #define HYPHEN 341
291 #define CHORDMODIFIERS 342
292 #define LYRIC_MARKUP 343
293 #define MULTI_MEASURE_REST 344
294 #define DIGIT 345
295 #define E_UNSIGNED 346
296 #define UNSIGNED 347
297 #define EXPECT_MARKUP 348
298 #define EXPECT_MUSIC 349
299 #define EXPECT_SCM 350
300 #define EXPECT_NO_MORE_ARGS 351
301 #define BOOK_IDENTIFIER 352
302 #define CHORDMODIFIER_PITCH 353
303 #define CHORD_MODIFIER 354
304 #define CONTEXT_DEF_IDENTIFIER 355
305 #define DRUM_PITCH 356
306 #define DURATION_IDENTIFIER 357
307 #define EVENT_IDENTIFIER 358
308 #define FRACTION 359
309 #define LYRICS_STRING 360
310 #define LYRIC_MARKUP_IDENTIFIER 361
311 #define MARKUP_HEAD_EMPTY 362
312 #define MARKUP_HEAD_LIST0 363
313 #define MARKUP_HEAD_MARKUP0 364
314 #define MARKUP_HEAD_MARKUP0_MARKUP1 365
315 #define MARKUP_HEAD_SCM0 366
316 #define MARKUP_HEAD_SCM0_MARKUP1 367
317 #define MARKUP_HEAD_SCM0_SCM1 368
318 #define MARKUP_HEAD_SCM0_SCM1_MARKUP2 369
319 #define MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3 370
320 #define MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 371
321 #define MARKUP_HEAD_SCM0_SCM1_SCM2 372
322 #define MARKUP_LIST_HEAD_EMPTY 373
323 #define MARKUP_LIST_HEAD_LIST0 374
324 #define MARKUP_LIST_HEAD_SCM0 375
325 #define MARKUP_LIST_HEAD_SCM0_LIST1 376
326 #define MARKUP_LIST_HEAD_SCM0_SCM1_LIST2 377
327 #define MARKUP_IDENTIFIER 378
328 #define MUSIC_FUNCTION 379
329 #define MUSIC_IDENTIFIER 380
330 #define NOTENAME_PITCH 381
331 #define NUMBER_IDENTIFIER 382
332 #define OUTPUT_DEF_IDENTIFIER 383
333 #define REAL 384
334 #define RESTNAME 385
335 #define SCM_IDENTIFIER 386
336 #define SCM_TOKEN 387
337 #define SCORE_IDENTIFIER 388
338 #define STRING 389
339 #define STRING_IDENTIFIER 390
340 #define TONICNAME_PITCH 391
341 #define UNARY_MINUS 392
342
343
344
345
346 /* Copy the first part of user declarations.  */
347 #line 10 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
348
349
350 #define YYDEBUG 1
351 #define YYERROR_VERBOSE 1
352 #define YYPARSE_PARAM my_lily_parser
353 #define YYLEX_PARAM my_lily_parser
354 #define PARSER ((Lily_parser *) my_lily_parser)
355
356 #define yyerror PARSER->parser_error
357
358 /* We use custom location type: Input objects */
359 #define YYLTYPE Input
360 #define YYLLOC_DEFAULT(Current,Rhs,N) \
361         ((Current).set_location ((Rhs)[1], (Rhs)[N]))
362
363
364 #line 56 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
365  // -*-Fundamental-*-
366
367 /*
368 FIXME:
369
370    * The rules for who is protecting what are very shady.  Uniformise
371      this.
372
373    * There are too many lexical modes?
374 */
375
376 #include "config.hh"
377
378 #include <cctype>
379 #include <cstdlib>
380 #include <cstdio>
381 using namespace std;
382
383 #include "book.hh"
384 #include "context-def.hh"
385 #include "dimensions.hh"
386 #include "file-path.hh"
387 #include "input.hh"
388 #include "international.hh"
389 #include "lily-guile.hh"
390 #include "lily-lexer.hh"
391 #include "lily-parser.hh"
392 #include "main.hh"
393 #include "misc.hh"
394 #include "music.hh"
395 #include "music.hh"
396 #include "output-def.hh"
397 #include "paper-book.hh"
398 #include "program-option.hh"
399 #include "scm-hash.hh"
400 #include "score.hh"
401 #include "text-interface.hh"
402 #include "warn.hh"
403
404
405
406 /* Enabling traces.  */
407 #ifndef YYDEBUG
408 # define YYDEBUG 0
409 #endif
410
411 /* Enabling verbose error messages.  */
412 #ifdef YYERROR_VERBOSE
413 # undef YYERROR_VERBOSE
414 # define YYERROR_VERBOSE 1
415 #else
416 # define YYERROR_VERBOSE 0
417 #endif
418
419 /* Enabling the token table.  */
420 #ifndef YYTOKEN_TABLE
421 # define YYTOKEN_TABLE 0
422 #endif
423
424 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
425 typedef union YYSTYPE
426 #line 98 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
427 {
428         Book *book;
429         Output_def *outputdef;
430         SCM scm;
431         std::string *string;
432         Music *music;
433         Score *score;
434         int i;
435 }
436 /* Line 187 of yacc.c.  */
437 #line 438 "out/parser.cc"
438         YYSTYPE;
439 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
440 # define YYSTYPE_IS_DECLARED 1
441 # define YYSTYPE_IS_TRIVIAL 1
442 #endif
443
444 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
445 typedef struct YYLTYPE
446 {
447   int first_line;
448   int first_column;
449   int last_line;
450   int last_column;
451 } YYLTYPE;
452 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
453 # define YYLTYPE_IS_DECLARED 1
454 # define YYLTYPE_IS_TRIVIAL 1
455 #endif
456
457
458 /* Copy the second part of user declarations.  */
459 #line 108 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
460
461
462 #define MY_MAKE_MUSIC(x, spot)  make_music_with_input (ly_symbol2scm (x), spot)
463
464 /* ES TODO:
465 - Don't use lily module, create a new module instead.
466 - delay application of the function
467 */
468 #define LOWLEVEL_MAKE_SYNTAX(proc, args)        \
469   scm_apply_0 (proc, args)
470 /* Syntactic Sugar. */
471 #define MAKE_SYNTAX(name, location, ...)        \
472   LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant (name), scm_list_n (PARSER->self_scm (), make_input (location), __VA_ARGS__, SCM_UNDEFINED));
473
474 SCM get_next_unique_context_id ();
475 SCM get_next_unique_lyrics_context_id ();
476
477 #undef _
478 #if !HAVE_GETTEXT
479 #define _(x) x
480 #else
481 #include <libintl.h>
482 #define _(x) gettext (x)
483 #endif
484
485
486 static Music *make_music_with_input (SCM name, Input where);
487 SCM make_music_relative (Pitch start, SCM music, Input loc);
488 SCM run_music_function (Lily_parser *, SCM expr);
489 SCM get_first_context_id (SCM type, Music *m);
490 SCM make_chord_elements (SCM pitch, SCM dur, SCM modification_list);
491 SCM make_chord_step (int step, Rational alter);
492 SCM make_simple_markup (SCM a);
493 bool is_duration (int t);
494 bool is_regular_identifier (SCM id);
495 bool ly_input_procedure_p (SCM x);
496 int yylex (YYSTYPE *s, YYLTYPE *loc, void *v);
497 void set_music_properties (Music *p, SCM a);
498
499
500
501 /* Line 216 of yacc.c.  */
502 #line 503 "out/parser.cc"
503
504 #ifdef short
505 # undef short
506 #endif
507
508 #ifdef YYTYPE_UINT8
509 typedef YYTYPE_UINT8 yytype_uint8;
510 #else
511 typedef unsigned char yytype_uint8;
512 #endif
513
514 #ifdef YYTYPE_INT8
515 typedef YYTYPE_INT8 yytype_int8;
516 #elif (defined __STDC__ || defined __C99__FUNC__ \
517      || defined __cplusplus || defined _MSC_VER)
518 typedef signed char yytype_int8;
519 #else
520 typedef short int yytype_int8;
521 #endif
522
523 #ifdef YYTYPE_UINT16
524 typedef YYTYPE_UINT16 yytype_uint16;
525 #else
526 typedef unsigned short int yytype_uint16;
527 #endif
528
529 #ifdef YYTYPE_INT16
530 typedef YYTYPE_INT16 yytype_int16;
531 #else
532 typedef short int yytype_int16;
533 #endif
534
535 #ifndef YYSIZE_T
536 # ifdef __SIZE_TYPE__
537 #  define YYSIZE_T __SIZE_TYPE__
538 # elif defined size_t
539 #  define YYSIZE_T size_t
540 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
541      || defined __cplusplus || defined _MSC_VER)
542 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
543 #  define YYSIZE_T size_t
544 # else
545 #  define YYSIZE_T unsigned int
546 # endif
547 #endif
548
549 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
550
551 #ifndef YY_
552 # if YYENABLE_NLS
553 #  if ENABLE_NLS
554 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
555 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
556 #  endif
557 # endif
558 # ifndef YY_
559 #  define YY_(msgid) msgid
560 # endif
561 #endif
562
563 /* Suppress unused-variable warnings by "using" E.  */
564 #if ! defined lint || defined __GNUC__
565 # define YYUSE(e) ((void) (e))
566 #else
567 # define YYUSE(e) /* empty */
568 #endif
569
570 /* Identity function, used to suppress warnings about constant conditions.  */
571 #ifndef lint
572 # define YYID(n) (n)
573 #else
574 #if (defined __STDC__ || defined __C99__FUNC__ \
575      || defined __cplusplus || defined _MSC_VER)
576 static int
577 YYID (int i)
578 #else
579 static int
580 YYID (i)
581     int i;
582 #endif
583 {
584   return i;
585 }
586 #endif
587
588 #if ! defined yyoverflow || YYERROR_VERBOSE
589
590 /* The parser invokes alloca or malloc; define the necessary symbols.  */
591
592 # ifdef YYSTACK_USE_ALLOCA
593 #  if YYSTACK_USE_ALLOCA
594 #   ifdef __GNUC__
595 #    define YYSTACK_ALLOC __builtin_alloca
596 #   elif defined __BUILTIN_VA_ARG_INCR
597 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
598 #   elif defined _AIX
599 #    define YYSTACK_ALLOC __alloca
600 #   elif defined _MSC_VER
601 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
602 #    define alloca _alloca
603 #   else
604 #    define YYSTACK_ALLOC alloca
605 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
606      || defined __cplusplus || defined _MSC_VER)
607 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
608 #     ifndef _STDLIB_H
609 #      define _STDLIB_H 1
610 #     endif
611 #    endif
612 #   endif
613 #  endif
614 # endif
615
616 # ifdef YYSTACK_ALLOC
617    /* Pacify GCC's `empty if-body' warning.  */
618 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
619 #  ifndef YYSTACK_ALLOC_MAXIMUM
620     /* The OS might guarantee only one guard page at the bottom of the stack,
621        and a page size can be as small as 4096 bytes.  So we cannot safely
622        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
623        to allow for a few compiler-allocated temporary stack slots.  */
624 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
625 #  endif
626 # else
627 #  define YYSTACK_ALLOC YYMALLOC
628 #  define YYSTACK_FREE YYFREE
629 #  ifndef YYSTACK_ALLOC_MAXIMUM
630 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
631 #  endif
632 #  if (defined __cplusplus && ! defined _STDLIB_H \
633        && ! ((defined YYMALLOC || defined malloc) \
634              && (defined YYFREE || defined free)))
635 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
636 #   ifndef _STDLIB_H
637 #    define _STDLIB_H 1
638 #   endif
639 #  endif
640 #  ifndef YYMALLOC
641 #   define YYMALLOC malloc
642 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
643      || defined __cplusplus || defined _MSC_VER)
644 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
645 #   endif
646 #  endif
647 #  ifndef YYFREE
648 #   define YYFREE free
649 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
650      || defined __cplusplus || defined _MSC_VER)
651 void free (void *); /* INFRINGES ON USER NAME SPACE */
652 #   endif
653 #  endif
654 # endif
655 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
656
657
658 #if (! defined yyoverflow \
659      && (! defined __cplusplus \
660          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
661              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
662
663 /* A type that is properly aligned for any stack member.  */
664 union yyalloc
665 {
666   yytype_int16 yyss;
667   YYSTYPE yyvs;
668     YYLTYPE yyls;
669 };
670
671 /* The size of the maximum gap between one aligned stack and the next.  */
672 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
673
674 /* The size of an array large to enough to hold all stacks, each with
675    N elements.  */
676 # define YYSTACK_BYTES(N) \
677      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
678       + 2 * YYSTACK_GAP_MAXIMUM)
679
680 /* Copy COUNT objects from FROM to TO.  The source and destination do
681    not overlap.  */
682 # ifndef YYCOPY
683 #  if defined __GNUC__ && 1 < __GNUC__
684 #   define YYCOPY(To, From, Count) \
685       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
686 #  else
687 #   define YYCOPY(To, From, Count)              \
688       do                                        \
689         {                                       \
690           YYSIZE_T yyi;                         \
691           for (yyi = 0; yyi < (Count); yyi++)   \
692             (To)[yyi] = (From)[yyi];            \
693         }                                       \
694       while (YYID (0))
695 #  endif
696 # endif
697
698 /* Relocate STACK from its old location to the new one.  The
699    local variables YYSIZE and YYSTACKSIZE give the old and new number of
700    elements in the stack, and YYPTR gives the new location of the
701    stack.  Advance YYPTR to a properly aligned location for the next
702    stack.  */
703 # define YYSTACK_RELOCATE(Stack)                                        \
704     do                                                                  \
705       {                                                                 \
706         YYSIZE_T yynewbytes;                                            \
707         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
708         Stack = &yyptr->Stack;                                          \
709         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
710         yyptr += yynewbytes / sizeof (*yyptr);                          \
711       }                                                                 \
712     while (YYID (0))
713
714 #endif
715
716 /* YYFINAL -- State number of the termination state.  */
717 #define YYFINAL  2
718 /* YYLAST -- Last index in YYTABLE.  */
719 #define YYLAST   2076
720
721 /* YYNTOKENS -- Number of terminals.  */
722 #define YYNTOKENS  159
723 /* YYNNTS -- Number of nonterminals.  */
724 #define YYNNTS  140
725 /* YYNRULES -- Number of rules.  */
726 #define YYNRULES  408
727 /* YYNRULES -- Number of states.  */
728 #define YYNSTATES  589
729
730 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
731 #define YYUNDEFTOK  2
732 #define YYMAXUTOK   392
733
734 #define YYTRANSLATE(YYX)                                                \
735   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
736
737 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
738 static const yytype_uint8 yytranslate[] =
739 {
740        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
741        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
742        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
743        2,     2,     2,   157,     2,     2,     2,     2,     2,   150,
744      148,   149,   154,   138,   151,   137,   143,   155,     2,     2,
745        2,     2,     2,     2,     2,     2,     2,     2,   156,     2,
746        2,   142,     2,   158,     2,     2,     2,     2,     2,     2,
747        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
748        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
749        2,   145,     2,   146,   152,   153,     2,     2,     2,     2,
750        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
751        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
752        2,     2,     2,   140,   144,   141,   147,     2,     2,     2,
753        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
754        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
755        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
756        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
757        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
765        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
766        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
767       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
768       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
769       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
770       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
771       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
772       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
773       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
774       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
775       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
776      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
777      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
778      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
779      135,   136,   139
780 };
781
782 #if YYDEBUG
783 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
784    YYRHS.  */
785 static const yytype_uint16 yyprhs[] =
786 {
787        0,     0,     3,     4,     7,    10,    13,    16,    19,    21,
788       23,    25,    27,    29,    31,    33,    35,    37,    39,    40,
789       43,    48,    50,    52,    56,    58,    60,    62,    64,    66,
790       68,    70,    72,    74,    76,    78,    80,    82,    87,    88,
791       90,    94,    97,   102,   103,   105,   108,   111,   114,   117,
792      120,   123,   126,   129,   132,   137,   138,   140,   143,   146,
793      149,   152,   155,   158,   161,   164,   169,   171,   173,   176,
794      179,   182,   185,   187,   190,   192,   194,   196,   198,   201,
795      205,   208,   211,   214,   219,   225,   231,   234,   237,   238,
796      241,   244,   247,   249,   251,   252,   257,   263,   268,   272,
797      277,   281,   283,   285,   287,   289,   290,   291,   297,   298,
798      301,   303,   305,   307,   309,   311,   313,   317,   321,   325,
799      327,   331,   335,   337,   339,   341,   344,   345,   348,   350,
800      356,   362,   366,   368,   373,   376,   380,   382,   384,   386,
801      388,   390,   392,   394,   396,   398,   400,   402,   406,   409,
802      410,   414,   415,   420,   423,   424,   429,   434,   436,   439,
803      441,   445,   448,   454,   458,   460,   462,   464,   466,   468,
804      470,   472,   474,   476,   478,   481,   483,   487,   493,   497,
805      502,   505,   507,   510,   512,   514,   518,   520,   522,   524,
806      526,   528,   530,   532,   534,   536,   539,   543,   545,   547,
807      551,   555,   556,   559,   565,   568,   570,   572,   577,   580,
808      585,   588,   590,   593,   595,   597,   599,   601,   604,   607,
809      610,   612,   615,   617,   620,   624,   625,   628,   630,   633,
810      635,   637,   640,   643,   645,   647,   649,   651,   653,   655,
811      657,   659,   661,   663,   665,   667,   669,   671,   673,   675,
812      677,   678,   680,   683,   686,   688,   691,   693,   696,   698,
813      701,   704,   706,   709,   712,   714,   716,   718,   720,   722,
814      724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
815      744,   746,   748,   749,   751,   754,   757,   759,   763,   767,
816      769,   773,   774,   777,   779,   782,   784,   786,   788,   790,
817      792,   794,   796,   798,   800,   803,   806,   809,   811,   813,
818      815,   817,   819,   822,   823,   826,   830,   831,   833,   840,
819      843,   846,   849,   851,   853,   856,   858,   860,   863,   868,
820      869,   872,   874,   876,   879,   882,   884,   886,   888,   890,
821      894,   896,   899,   902,   906,   910,   912,   914,   918,   922,
822      925,   927,   929,   931,   933,   936,   939,   941,   943,   945,
823      947,   948,   951,   952,   955,   957,   958,   962,   963,   967,
824      969,   970,   974,   976,   979,   981,   983,   985,   987,   990,
825      994,   995,   998,  1001,  1003,  1006,  1009,  1013,  1018,  1020,
826     1023,  1027,  1029,  1032,  1034,  1036,  1038,  1040,  1041,  1047,
827     1050,  1055,  1059,  1064,  1070,  1072,  1075,  1079,  1082
828 };
829
830 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
831 static const yytype_int16 yyrhs[] =
832 {
833      160,     0,    -1,    -1,   160,   162,    -1,   160,   167,    -1,
834      160,     1,    -1,   160,    26,    -1,    38,   134,    -1,   165,
835       -1,   171,    -1,   173,    -1,   175,    -1,   193,    -1,   286,
836       -1,   284,    -1,   178,    -1,   132,    -1,   131,    -1,    -1,
837      164,   167,    -1,    25,   140,   164,   141,    -1,   134,    -1,
838      105,    -1,   166,   142,   168,    -1,   163,    -1,   175,    -1,
839      171,    -1,   173,    -1,   178,    -1,   169,    -1,   184,    -1,
840      234,    -1,   274,    -1,   220,    -1,   163,    -1,   286,    -1,
841       90,    -1,    15,   140,   170,   141,    -1,    -1,   100,    -1,
842      170,    24,   163,    -1,   170,   216,    -1,     9,   140,   172,
843      141,    -1,    -1,    97,    -1,   172,   177,    -1,   172,   173,
844       -1,   172,   175,    -1,   172,   193,    -1,   172,   286,    -1,
845      172,   284,    -1,   172,   165,    -1,   172,     1,    -1,   172,
846      161,    -1,    10,   140,   174,   141,    -1,    -1,    97,    -1,
847      174,   177,    -1,   174,   175,    -1,   174,   193,    -1,   174,
848      286,    -1,   174,   284,    -1,   174,   165,    -1,   174,     1,
849       -1,   174,   161,    -1,    49,   140,   176,   141,    -1,   184,
850       -1,   133,    -1,   176,   161,    -1,   176,   165,    -1,   176,
851      178,    -1,   176,     1,    -1,   178,    -1,   181,   141,    -1,
852       42,    -1,    35,    -1,    28,    -1,   179,    -1,   180,   140,
853       -1,   180,   140,   128,    -1,   181,   167,    -1,   181,   169,
854       -1,   181,     1,    -1,    54,   252,   142,   278,    -1,    54,
855      220,   252,   142,   278,    -1,    54,   286,   252,   142,   278,
856       -1,    54,   220,    -1,    54,   286,    -1,    -1,   183,   184,
857       -1,   183,   163,    -1,   183,     1,    -1,   189,    -1,   193,
858       -1,    -1,     8,   140,   183,   141,    -1,    46,   221,   279,
859      184,   185,    -1,    50,   140,   183,   141,    -1,   140,   183,
860      141,    -1,    52,   140,   183,   141,    -1,    69,   183,    70,
861       -1,   223,    -1,   125,    -1,   219,    -1,   211,    -1,    -1,
862       -1,    59,   191,   140,   192,   141,    -1,    -1,   192,   216,
863       -1,   202,    -1,   194,    -1,   188,    -1,   187,    -1,   163,
864       -1,   221,    -1,    94,   199,   184,    -1,    93,   199,   286,
865       -1,    95,   199,   195,    -1,    96,    -1,    93,   198,   286,
866       -1,    95,   198,   195,    -1,    96,    -1,   196,    -1,   197,
867       -1,   124,   199,    -1,    -1,   142,   221,    -1,   200,    -1,
868       15,   221,   201,   190,   184,    -1,    61,   221,   201,   190,
869      184,    -1,    55,   254,   184,    -1,   186,    -1,    56,   245,
870      245,   184,    -1,   203,   194,    -1,   204,   190,   194,    -1,
871      205,    -1,   209,    -1,    37,    -1,    20,    -1,    22,    -1,
872       12,    -1,    29,    -1,    21,    -1,    23,    -1,    13,    -1,
873       30,    -1,    44,   249,   184,    -1,    44,   193,    -1,    -1,
874        4,   207,   194,    -1,    -1,   206,     4,   208,   194,    -1,
875      194,   206,    -1,    -1,    31,   221,   210,   184,    -1,    11,
876      134,   142,   134,    -1,   163,    -1,   212,   163,    -1,   212,
877       -1,   134,   142,   222,    -1,    58,   221,    -1,    41,   221,
878      213,   142,   163,    -1,    48,   221,   163,    -1,    14,    -1,
879       45,    -1,     6,    -1,    17,    -1,    18,    -1,     7,    -1,
880       57,    -1,    19,    -1,    36,    -1,   214,    -1,   215,   134,
881       -1,   221,    -1,   221,   143,   221,    -1,    41,   217,   213,
882      142,   222,    -1,    48,   217,   163,    -1,    51,   217,   142,
883      222,    -1,    58,   217,    -1,   218,    -1,    40,   218,    -1,
884      134,    -1,   135,    -1,   220,   138,   220,    -1,   134,    -1,
885      105,    -1,   135,    -1,   220,    -1,   105,    -1,   277,    -1,
886      163,    -1,   286,    -1,    90,    -1,   266,   233,    -1,    89,
887      251,   233,    -1,   231,    -1,   224,    -1,   225,   251,   233,
888       -1,    67,   226,    68,    -1,    -1,   226,   227,    -1,   244,
889      280,   281,   239,   233,    -1,   101,   233,    -1,   229,    -1,
890      124,    -1,   228,    94,   198,   227,    -1,   228,   198,    -1,
891      228,    94,   198,   234,    -1,   228,   198,    -1,   232,    -1,
892       53,   250,    -1,    76,    -1,    78,    -1,    71,    -1,   144,
893       -1,    43,   250,    -1,    60,   254,    -1,    32,   222,    -1,
894       81,    -1,    32,    16,    -1,   182,    -1,    27,    16,    -1,
895       27,   126,   131,    -1,    -1,   233,   234,    -1,   237,    -1,
896      137,   230,    -1,    86,    -1,    82,    -1,   248,   238,    -1,
897      248,   237,    -1,   235,    -1,    91,    -1,   145,    -1,   146,
898       -1,   147,    -1,   148,    -1,   149,    -1,    75,    -1,    77,
899       -1,    74,    -1,    72,    -1,    79,    -1,   236,    -1,   103,
900       -1,   256,    -1,   246,    -1,   247,    -1,    -1,   142,    -1,
901      142,   241,    -1,   142,   240,    -1,   150,    -1,   240,   150,
902       -1,   151,    -1,   241,   151,    -1,   126,    -1,   126,   240,
903       -1,   126,   241,    -1,   136,    -1,   136,   240,    -1,   136,
904      241,    -1,   242,    -1,   244,    -1,   243,    -1,   286,    -1,
905      220,    -1,    90,    -1,   152,    -1,   138,    -1,   137,    -1,
906      144,    -1,    68,    -1,   143,    -1,   153,    -1,   153,    -1,
907      152,    -1,   137,    -1,   242,    -1,   253,    -1,    -1,   253,
908       -1,   278,   255,    -1,   102,   255,    -1,   252,    -1,   253,
909      154,   278,    -1,   253,   154,   104,    -1,   104,    -1,    92,
910      155,    92,    -1,    -1,   255,   143,    -1,   156,    -1,   156,
911      278,    -1,    90,    -1,    92,    -1,   134,    -1,   286,    -1,
912      137,    -1,   138,    -1,   157,    -1,    85,    -1,   257,    -1,
913      259,   146,    -1,   259,   258,    -1,   259,   260,    -1,    80,
914       -1,    75,    -1,   155,    -1,    71,    -1,   259,    -1,   145,
915      259,    -1,    -1,   262,   261,    -1,    84,   262,    83,    -1,
916       -1,    47,    -1,   244,   280,   281,   239,   251,   264,    -1,
917      101,   251,    -1,   130,   251,    -1,   267,   251,    -1,   265,
918       -1,   268,    -1,   263,   251,    -1,   282,    -1,   105,    -1,
919      243,   251,    -1,   243,   251,   270,   269,    -1,    -1,   269,
920      271,    -1,    64,    -1,    63,    -1,    66,   243,    -1,    62,
921      243,    -1,   270,    -1,   272,    -1,    99,    -1,   273,    -1,
922      272,   143,   273,    -1,   278,    -1,   278,   138,    -1,   278,
923       65,    -1,   274,   138,   275,    -1,   274,   137,   275,    -1,
924      275,    -1,   276,    -1,   276,   154,   276,    -1,   276,   155,
925      276,    -1,   137,   276,    -1,   277,    -1,    92,    -1,   129,
926       -1,   127,    -1,   129,   127,    -1,    92,   127,    -1,    92,
927       -1,    90,    -1,   278,    -1,   127,    -1,    -1,   280,   157,
928       -1,    -1,   281,   158,    -1,   106,    -1,    -1,    88,   283,
929      288,    -1,    -1,    34,   285,   289,    -1,   123,    -1,    -1,
930       33,   287,   288,    -1,   289,    -1,   295,   296,    -1,   296,
931       -1,   290,    -1,   291,    -1,   293,    -1,   295,   291,    -1,
932      140,   292,   141,    -1,    -1,   292,   298,    -1,   292,   289,
933       -1,   118,    -1,   119,   289,    -1,   120,   163,    -1,   121,
934      163,   289,    -1,   122,   163,   163,   289,    -1,   109,    -1,
935      112,   163,    -1,   114,   163,   163,    -1,   294,    -1,   295,
936      294,    -1,   134,    -1,   123,    -1,   106,    -1,   135,    -1,
937       -1,    49,   297,   140,   176,   141,    -1,   111,   163,    -1,
938      117,   163,   163,   163,    -1,   113,   163,   163,    -1,   116,
939      163,   298,   298,    -1,   115,   163,   163,   298,   298,    -1,
940      107,    -1,   108,   289,    -1,   110,   298,   298,    -1,   295,
941      296,    -1,   296,    -1
942 };
943
944 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
945 static const yytype_uint16 yyrline[] =
946 {
947        0,   452,   452,   453,   455,   457,   460,   467,   471,   474,
948      480,   486,   493,   498,   502,   506,   523,   524,   529,   533,
949      539,   548,   549,   553,   564,   569,   573,   577,   581,   585,
950      588,   600,   603,   606,   609,   612,   615,   621,   628,   632,
951      636,   647,   655,   665,   674,   679,   684,   690,   696,   701,
952      705,   709,   712,   717,   723,   729,   733,   738,   742,   748,
953      753,   757,   761,   764,   768,   774,   780,   790,   795,   798,
954      801,   813,   824,   837,   846,   851,   856,   865,   872,   876,
955      886,   889,   892,   898,   901,   904,   907,   910,   923,   926,
956      936,   939,   956,   957,   961,   964,   971,   978,   981,   987,
957      990,   996,   997,   998,   999,  1003,  1004,  1004,  1013,  1014,
958     1020,  1021,  1025,  1026,  1030,  1031,  1039,  1045,  1048,  1053,
959     1056,  1059,  1064,  1069,  1070,  1074,  1081,  1082,  1089,  1092,
960     1095,  1099,  1102,  1103,  1109,  1120,  1128,  1129,  1133,  1139,
961     1146,  1151,  1159,  1166,  1172,  1177,  1184,  1192,  1196,  1203,
962     1203,  1212,  1212,  1221,  1224,  1224,  1233,  1240,  1243,  1249,
963     1255,  1259,  1263,  1268,  1275,  1276,  1278,  1279,  1280,  1282,
964     1283,  1284,  1285,  1289,  1290,  1296,  1305,  1312,  1319,  1325,
965     1331,  1339,  1342,  1348,  1351,  1354,  1359,  1362,  1365,  1370,
966     1373,  1376,  1379,  1382,  1385,  1394,  1403,  1408,  1409,  1414,
967     1432,  1439,  1440,  1446,  1472,  1483,  1488,  1501,  1504,  1513,
968     1516,  1522,  1525,  1528,  1533,  1538,  1541,  1555,  1561,  1566,
969     1574,  1577,  1581,  1584,  1588,  1606,  1609,  1616,  1619,  1622,
970     1627,  1632,  1640,  1648,  1652,  1660,  1663,  1666,  1669,  1672,
971     1675,  1678,  1681,  1684,  1687,  1693,  1707,  1710,  1718,  1721,
972     1732,  1733,  1734,  1735,  1739,  1742,  1748,  1751,  1757,  1760,
973     1765,  1777,  1780,  1785,  1794,  1800,  1801,  1805,  1810,  1816,
974     1824,  1827,  1830,  1833,  1836,  1839,  1842,  1848,  1849,  1850,
975     1855,  1861,  1867,  1871,  1878,  1887,  1896,  1899,  1902,  1910,
976     1911,  1917,  1920,  1926,  1929,  1937,  1940,  1943,  1944,  1948,
977     1949,  1950,  1954,  1958,  1969,  1973,  1984,  2007,  2010,  2013,
978     2016,  2022,  2025,  2032,  2035,  2041,  2048,  2049,  2053,  2079,
979     2086,  2099,  2111,  2114,  2119,  2129,  2132,  2138,  2141,  2148,
980     2151,  2157,  2160,  2163,  2166,  2172,  2175,  2178,  2184,  2185,
981     2191,  2194,  2197,  2209,  2212,  2215,  2219,  2222,  2225,  2231,
982     2234,  2239,  2242,  2245,  2248,  2251,  2258,  2261,  2267,  2268,
983     2275,  2276,  2280,  2281,  2289,  2293,  2292,  2302,  2301,  2310,
984     2314,  2313,  2322,  2325,  2328,  2334,  2337,  2340,  2346,  2353,
985     2359,  2360,  2363,  2369,  2372,  2375,  2378,  2381,  2387,  2390,
986     2393,  2399,  2402,  2408,  2411,  2414,  2417,  2420,  2420,  2429,
987     2432,  2435,  2438,  2441,  2444,  2447,  2450,  2456,  2460
988 };
989 #endif
990
991 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
992 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
993    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
994 static const char *const yytname[] =
995 {
996   "$end", "error", "$undefined", "PREC_TOP", "\"\\\\addlyrics\"",
997   "PREC_BOT", "\"\\\\accepts\"", "\"\\\\alias\"", "\"\\\\alternative\"",
998   "\"\\\\book\"", "\"\\\\bookpart\"", "\"\\\\change\"",
999   "\"\\\\chordmode\"", "\"\\\\chords\"", "\"\\\\consists\"",
1000   "\"\\\\context\"", "\"\\\\default\"", "\"\\\\defaultchild\"",
1001   "\"\\\\denies\"", "\"\\\\description\"", "\"\\\\drummode\"",
1002   "\"\\\\drums\"", "\"\\\\figuremode\"", "\"\\\\figures\"",
1003   "\"\\\\grobdescriptions\"", "\"\\\\header\"", "\"\\\\invalid\"",
1004   "\"\\\\key\"", "\"\\\\layout\"", "\"\\\\lyricmode\"", "\"\\\\lyrics\"",
1005   "\"\\\\lyricsto\"", "\"\\\\mark\"", "\"\\\\markup\"",
1006   "\"\\\\markuplines\"", "\"\\\\midi\"", "\"\\\\name\"",
1007   "\"\\\\notemode\"", "\"\\\\objectid\"", "\"\\\\octave\"", "\"\\\\once\"",
1008   "\"\\\\override\"", "\"\\\\paper\"", "\"\\\\partial\"",
1009   "\"\\\\relative\"", "\"\\\\remove\"", "\"\\\\repeat\"", "\"\\\\rest\"",
1010   "\"\\\\revert\"", "\"\\\\score\"", "\"\\\\sequential\"", "\"\\\\set\"",
1011   "\"\\\\simultaneous\"", "\"\\\\skip\"", "\"\\\\tempo\"", "\"\\\\times\"",
1012   "\"\\\\transpose\"", "\"\\\\type\"", "\"\\\\unset\"", "\"\\\\with\"",
1013   "\"\\\\time\"", "\"\\\\new\"", "\"/+\"", "\"^\"", "\":\"", "\"-\"",
1014   "\"/\"", "\"<\"", "\">\"", "\"<<\"", "\">>\"", "\"\\\\\"", "\"\\\\>\"",
1015   "\"\\\\C[haracter]\"", "\"\\\\)\"", "\"\\\\!\"", "\"\\\\[\"",
1016   "\"\\\\(\"", "\"\\\\]\"", "\"\\\\<\"", "\"\\\\+\"", "\"\\\\~\"",
1017   "\"__\"", "FIGURE_CLOSE", "FIGURE_OPEN", "\"_\"", "\"--\"",
1018   "CHORDMODIFIERS", "LYRIC_MARKUP", "MULTI_MEASURE_REST", "DIGIT",
1019   "E_UNSIGNED", "UNSIGNED", "EXPECT_MARKUP", "EXPECT_MUSIC", "EXPECT_SCM",
1020   "EXPECT_NO_MORE_ARGS", "BOOK_IDENTIFIER", "CHORDMODIFIER_PITCH",
1021   "CHORD_MODIFIER", "CONTEXT_DEF_IDENTIFIER", "DRUM_PITCH",
1022   "DURATION_IDENTIFIER", "EVENT_IDENTIFIER", "FRACTION", "LYRICS_STRING",
1023   "LYRIC_MARKUP_IDENTIFIER", "MARKUP_HEAD_EMPTY", "MARKUP_HEAD_LIST0",
1024   "MARKUP_HEAD_MARKUP0", "MARKUP_HEAD_MARKUP0_MARKUP1", "MARKUP_HEAD_SCM0",
1025   "MARKUP_HEAD_SCM0_MARKUP1", "MARKUP_HEAD_SCM0_SCM1",
1026   "MARKUP_HEAD_SCM0_SCM1_MARKUP2", "MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3",
1027   "MARKUP_HEAD_SCM0_MARKUP1_MARKUP2", "MARKUP_HEAD_SCM0_SCM1_SCM2",
1028   "MARKUP_LIST_HEAD_EMPTY", "MARKUP_LIST_HEAD_LIST0",
1029   "MARKUP_LIST_HEAD_SCM0", "MARKUP_LIST_HEAD_SCM0_LIST1",
1030   "MARKUP_LIST_HEAD_SCM0_SCM1_LIST2", "MARKUP_IDENTIFIER",
1031   "MUSIC_FUNCTION", "MUSIC_IDENTIFIER", "NOTENAME_PITCH",
1032   "NUMBER_IDENTIFIER", "OUTPUT_DEF_IDENTIFIER", "REAL", "RESTNAME",
1033   "SCM_IDENTIFIER", "SCM_TOKEN", "SCORE_IDENTIFIER", "STRING",
1034   "STRING_IDENTIFIER", "TONICNAME_PITCH", "'-'", "'+'", "UNARY_MINUS",
1035   "'{'", "'}'", "'='", "'.'", "'|'", "'['", "']'", "'~'", "'('", "')'",
1036   "'''", "','", "'^'", "'_'", "'*'", "'/'", "':'", "'!'", "'?'", "$accept",
1037   "lilypond", "object_id_setting", "toplevel_expression", "embedded_scm",
1038   "lilypond_header_body", "lilypond_header", "assignment_id", "assignment",
1039   "identifier_init", "context_def_spec_block", "context_def_spec_body",
1040   "book_block", "book_body", "bookpart_block", "bookpart_body",
1041   "score_block", "score_body", "paper_block", "output_def",
1042   "output_def_head", "output_def_head_with_mode_switch", "output_def_body",
1043   "tempo_event", "music_list", "music", "alternative_music",
1044   "repeated_music", "sequential_music", "simultaneous_music",
1045   "simple_music", "optional_context_mod", "@1", "context_mod_list",
1046   "composite_music", "grouped_music_list", "function_scm_argument",
1047   "function_arglist_music_last", "function_arglist_nonmusic_last",
1048   "function_arglist_nonmusic", "function_arglist",
1049   "generic_prefix_music_scm", "optional_id", "prefix_composite_music",
1050   "mode_changing_head", "mode_changing_head_with_context",
1051   "relative_music", "new_lyrics", "@2", "@3", "re_rhythmed_music", "@4",
1052   "context_change", "property_path_revved", "property_path",
1053   "property_operation", "context_def_mod", "context_mod",
1054   "context_prop_spec", "simple_music_property_def", "music_property_def",
1055   "string", "simple_string", "scalar", "event_chord", "note_chord_element",
1056   "chord_body", "chord_body_elements", "chord_body_element",
1057   "music_function_identifier_musicless_prefix",
1058   "music_function_chord_body", "music_function_event", "command_element",
1059   "command_event", "post_events", "post_event", "string_number_event",
1060   "direction_less_char", "direction_less_event", "direction_reqd_event",
1061   "octave_check", "sup_quotes", "sub_quotes", "steno_pitch",
1062   "steno_tonic_pitch", "pitch", "pitch_also_in_chords", "gen_text_def",
1063   "script_abbreviation", "script_dir", "absolute_pitch", "duration_length",
1064   "optional_notemode_duration", "steno_duration", "multiplied_duration",
1065   "fraction", "dots", "tremolo_type", "bass_number",
1066   "figured_bass_alteration", "bass_figure", "figured_bass_modification",
1067   "br_bass_figure", "figure_list", "figure_spec", "optional_rest",
1068   "simple_element", "simple_chord_elements", "lyric_element", "new_chord",
1069   "chord_items", "chord_separator", "chord_item", "step_numbers",
1070   "step_number", "number_expression", "number_term", "number_factor",
1071   "bare_number", "bare_unsigned", "unsigned_number", "exclamations",
1072   "questions", "lyric_markup", "@5", "full_markup_list", "@6",
1073   "full_markup", "@7", "markup_top", "markup_list", "markup_composed_list",
1074   "markup_braced_list", "markup_braced_list_body", "markup_command_list",
1075   "markup_head_1_item", "markup_head_1_list", "simple_markup", "@8",
1076   "markup", 0
1077 };
1078 #endif
1079
1080 # ifdef YYPRINT
1081 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1082    token YYLEX-NUM.  */
1083 static const yytype_uint16 yytoknum[] =
1084 {
1085        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1086      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1087      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1088      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1089      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1090      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1091      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1092      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1093      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1094      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1095      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1096      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1097      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1098      385,   386,   387,   388,   389,   390,   391,    45,    43,   392,
1099      123,   125,    61,    46,   124,    91,    93,   126,    40,    41,
1100       39,    44,    94,    95,    42,    47,    58,    33,    63
1101 };
1102 # endif
1103
1104 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1105 static const yytype_uint16 yyr1[] =
1106 {
1107        0,   159,   160,   160,   160,   160,   160,   161,   162,   162,
1108      162,   162,   162,   162,   162,   162,   163,   163,   164,   164,
1109      165,   166,   166,   167,   167,   168,   168,   168,   168,   168,
1110      168,   168,   168,   168,   168,   168,   168,   169,   170,   170,
1111      170,   170,   171,   172,   172,   172,   172,   172,   172,   172,
1112      172,   172,   172,   172,   173,   174,   174,   174,   174,   174,
1113      174,   174,   174,   174,   174,   175,   176,   176,   176,   176,
1114      176,   176,   177,   178,   179,   179,   179,   180,   181,   181,
1115      181,   181,   181,   182,   182,   182,   182,   182,   183,   183,
1116      183,   183,   184,   184,   185,   185,   186,   187,   187,   188,
1117      188,   189,   189,   189,   189,   190,   191,   190,   192,   192,
1118      193,   193,   194,   194,   195,   195,   196,   197,   197,   198,
1119      198,   198,   199,   199,   199,   200,   201,   201,   202,   202,
1120      202,   202,   202,   202,   202,   202,   202,   202,   203,   203,
1121      203,   203,   203,   204,   204,   204,   204,   205,   205,   207,
1122      206,   208,   206,   209,   210,   209,   211,   212,   212,   213,
1123      214,   214,   214,   214,   215,   215,   215,   215,   215,   215,
1124      215,   215,   215,   216,   216,   217,   217,   218,   218,   218,
1125      218,   219,   219,   220,   220,   220,   221,   221,   221,   222,
1126      222,   222,   222,   222,   222,   223,   223,   223,   223,   224,
1127      225,   226,   226,   227,   227,   227,   228,   229,   229,   230,
1128      230,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1129      232,   232,   232,   232,   232,   233,   233,   234,   234,   234,
1130      234,   234,   234,   234,   235,   236,   236,   236,   236,   236,
1131      236,   236,   236,   236,   236,   237,   237,   237,   238,   238,
1132      239,   239,   239,   239,   240,   240,   241,   241,   242,   242,
1133      242,   243,   243,   243,   244,   245,   245,   246,   246,   246,
1134      247,   247,   247,   247,   247,   247,   247,   248,   248,   248,
1135      249,   250,   251,   251,   252,   252,   253,   253,   253,   254,
1136      254,   255,   255,   256,   256,   257,   257,   257,   257,   258,
1137      258,   258,   259,   259,   259,   259,   259,   260,   260,   260,
1138      260,   261,   261,   262,   262,   263,   264,   264,   265,   265,
1139      265,   265,   266,   266,   266,   267,   267,   268,   268,   269,
1140      269,   270,   270,   270,   270,   271,   271,   271,   272,   272,
1141      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
1142      276,   277,   277,   277,   277,   277,   278,   278,   279,   279,
1143      280,   280,   281,   281,   282,   283,   282,   285,   284,   286,
1144      287,   286,   288,   288,   288,   289,   289,   289,   290,   291,
1145      292,   292,   292,   293,   293,   293,   293,   293,   294,   294,
1146      294,   295,   295,   296,   296,   296,   296,   297,   296,   296,
1147      296,   296,   296,   296,   296,   296,   296,   298,   298
1148 };
1149
1150 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1151 static const yytype_uint8 yyr2[] =
1152 {
1153        0,     2,     0,     2,     2,     2,     2,     2,     1,     1,
1154        1,     1,     1,     1,     1,     1,     1,     1,     0,     2,
1155        4,     1,     1,     3,     1,     1,     1,     1,     1,     1,
1156        1,     1,     1,     1,     1,     1,     1,     4,     0,     1,
1157        3,     2,     4,     0,     1,     2,     2,     2,     2,     2,
1158        2,     2,     2,     2,     4,     0,     1,     2,     2,     2,
1159        2,     2,     2,     2,     2,     4,     1,     1,     2,     2,
1160        2,     2,     1,     2,     1,     1,     1,     1,     2,     3,
1161        2,     2,     2,     4,     5,     5,     2,     2,     0,     2,
1162        2,     2,     1,     1,     0,     4,     5,     4,     3,     4,
1163        3,     1,     1,     1,     1,     0,     0,     5,     0,     2,
1164        1,     1,     1,     1,     1,     1,     3,     3,     3,     1,
1165        3,     3,     1,     1,     1,     2,     0,     2,     1,     5,
1166        5,     3,     1,     4,     2,     3,     1,     1,     1,     1,
1167        1,     1,     1,     1,     1,     1,     1,     3,     2,     0,
1168        3,     0,     4,     2,     0,     4,     4,     1,     2,     1,
1169        3,     2,     5,     3,     1,     1,     1,     1,     1,     1,
1170        1,     1,     1,     1,     2,     1,     3,     5,     3,     4,
1171        2,     1,     2,     1,     1,     3,     1,     1,     1,     1,
1172        1,     1,     1,     1,     1,     2,     3,     1,     1,     3,
1173        3,     0,     2,     5,     2,     1,     1,     4,     2,     4,
1174        2,     1,     2,     1,     1,     1,     1,     2,     2,     2,
1175        1,     2,     1,     2,     3,     0,     2,     1,     2,     1,
1176        1,     2,     2,     1,     1,     1,     1,     1,     1,     1,
1177        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1178        0,     1,     2,     2,     1,     2,     1,     2,     1,     2,
1179        2,     1,     2,     2,     1,     1,     1,     1,     1,     1,
1180        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1181        1,     1,     0,     1,     2,     2,     1,     3,     3,     1,
1182        3,     0,     2,     1,     2,     1,     1,     1,     1,     1,
1183        1,     1,     1,     1,     2,     2,     2,     1,     1,     1,
1184        1,     1,     2,     0,     2,     3,     0,     1,     6,     2,
1185        2,     2,     1,     1,     2,     1,     1,     2,     4,     0,
1186        2,     1,     1,     2,     2,     1,     1,     1,     1,     3,
1187        1,     2,     2,     3,     3,     1,     1,     3,     3,     2,
1188        1,     1,     1,     1,     2,     2,     1,     1,     1,     1,
1189        0,     2,     0,     2,     1,     0,     3,     0,     3,     1,
1190        0,     3,     1,     2,     1,     1,     1,     1,     2,     3,
1191        0,     2,     2,     1,     2,     2,     3,     4,     1,     2,
1192        3,     1,     2,     1,     1,     1,     1,     0,     5,     2,
1193        4,     3,     4,     5,     1,     2,     3,     2,     1
1194 };
1195
1196 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1197    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1198    means the default is an error.  */
1199 static const yytype_uint16 yydefact[] =
1200 {
1201        2,     0,     1,     5,     0,     0,   141,   145,     0,   139,
1202      143,   140,   144,     0,     6,    76,   142,   146,     0,   370,
1203      367,    75,   138,    74,     0,     0,     0,     0,     0,     0,
1204        0,     0,    88,    22,   369,     0,    17,    16,    21,    88,
1205        3,    24,     8,     0,     4,     9,    10,    11,    15,    77,
1206        0,     0,   132,   113,   112,    12,   111,   128,   110,     0,
1207      105,   136,   137,    14,    13,    43,    55,   187,   186,   188,
1208      126,    18,   154,     0,     0,   258,   148,   280,     0,     0,
1209        0,    88,    88,     0,   289,     0,   261,   264,   266,   265,
1210        0,   126,     0,     0,     0,     0,   122,   123,   124,   125,
1211        0,     0,    78,    82,     0,    73,    80,    81,   149,   153,
1212      134,   106,     0,    44,     0,    56,     0,     0,   105,     0,
1213        0,   397,   395,   404,     0,   388,     0,     0,     0,     0,
1214        0,     0,     0,     0,   383,     0,     0,     0,     0,   394,
1215      393,   396,   380,   371,   372,   375,   376,   377,   391,     0,
1216      374,   368,     0,   254,   256,   259,   260,     0,     0,     0,
1217        0,     0,     0,     0,     0,     0,     0,     0,     0,   201,
1218      215,   213,   214,   220,   313,   365,   282,   282,   326,   364,
1219      102,   282,   216,   222,   147,    92,    93,   104,   181,   103,
1220      101,   198,   282,   197,   211,   282,   360,   282,   322,   225,
1221      282,   323,   325,   357,   356,   359,   358,     0,    67,     0,
1222       66,     0,     0,     0,   131,   262,   263,     0,   105,    91,
1223      100,    90,    89,     0,     0,     0,    98,     0,   243,   242,
1224      240,   241,   244,   230,   229,    36,   234,   351,   246,   353,
1225      352,   183,   184,   279,   235,   236,   237,   238,   239,   278,
1226      277,   293,    34,    23,    29,    26,    27,    25,    28,    30,
1227       33,    31,   233,   245,   227,     0,   247,    32,   345,   346,
1228      350,    35,    79,    38,     0,   151,     0,   135,    52,     0,
1229       42,    53,    51,    46,    47,    45,    72,    48,    50,    49,
1230       63,    54,    64,    62,    58,    57,    59,    61,    60,   127,
1231        0,    20,    19,   155,     0,   405,     0,   408,     0,   399,
1232      389,     0,     0,     0,     0,     0,   384,   385,     0,     0,
1233        0,   378,   392,   373,   255,   257,     0,   223,     0,   221,
1234      194,   190,   192,   189,   219,   191,   193,   182,     0,   175,
1235      291,   217,   286,   281,   291,     0,     0,   212,    86,     0,
1236       87,   180,   218,     0,     0,     0,   225,   283,   319,   320,
1237      225,   327,   362,   324,   195,   321,    94,    71,    65,    68,
1238       69,    70,    97,    99,   290,   133,     0,   117,   116,   114,
1239      118,   115,   355,   354,   206,     0,     0,   228,   349,   294,
1240        0,   274,   269,   272,   271,   275,   273,   270,   276,   268,
1241      232,   231,   248,   249,   267,     0,     0,     0,     0,    39,
1242        0,   150,     0,   108,     7,   129,     0,   407,   406,   401,
1243      390,     0,     0,     0,   386,     0,   379,   382,     0,   381,
1244        0,   224,   157,   159,     0,     0,   285,     0,   284,   178,
1245        0,     0,     0,     0,   200,   225,   202,     0,   205,   360,
1246      315,   302,   295,   296,   297,     0,   303,   311,   314,   298,
1247      366,   196,   199,     0,   332,   331,     0,   329,   361,   250,
1248      279,   226,     0,    96,   130,     0,     0,     0,   119,   210,
1249      185,   344,   343,   347,   348,   166,   169,   164,   167,   168,
1250      171,     0,   172,     0,   165,     0,   170,     0,     0,    37,
1251      173,     0,    41,   152,     0,     0,     0,   402,   400,   387,
1252      156,   158,     0,   176,   292,   288,   287,   179,     0,    83,
1253        0,   204,     0,   208,   362,   312,   310,   308,   307,   299,
1254      300,   304,   309,   301,   305,   306,   334,   333,   328,   251,
1255      363,   282,    88,     0,     0,     0,    40,     0,     0,   161,
1256        0,   174,   107,   109,   398,   403,   177,    84,    85,     0,
1257      250,   337,   335,   330,   336,   338,   340,   253,   252,   316,
1258        0,   120,   209,   121,     0,   163,   160,   207,   225,     0,
1259      342,   341,   317,   318,    95,     0,   203,   339,   162
1260 };
1261
1262 /* YYDEFGOTO[NTERM-NUM].  */
1263 static const yytype_int16 yydefgoto[] =
1264 {
1265       -1,     1,   369,    40,   221,   119,   370,    43,    44,   253,
1266      107,   410,    45,   114,    46,   116,    47,   209,   285,   286,
1267       49,    50,    51,   183,    92,   222,   473,    52,    53,    54,
1268      185,   112,   276,   504,   186,    56,   380,    97,    98,   479,
1269       99,    57,   118,    58,    59,    60,    61,   109,   274,   412,
1270       62,   120,   187,   433,   434,   500,   501,   502,   338,   188,
1271      189,   333,   339,   334,   190,   191,   192,   353,   446,   386,
1272      448,   387,   193,   194,   364,   471,   262,   263,   264,   401,
1273      541,   155,   156,    87,   195,   196,    90,   402,   403,   265,
1274       78,   341,   356,   342,   357,    85,   436,   266,   456,   534,
1275      457,   535,   458,   354,   197,   583,   198,   199,   200,   201,
1276      538,   467,   563,   564,   565,   267,   268,   269,   270,   344,
1277      207,   362,   469,   202,   355,    63,    74,   336,    73,   143,
1278      144,   145,   146,   320,   147,   148,   306,   307,   304,   308
1279 };
1280
1281 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1282    STATE-NUM.  */
1283 #define YYPACT_NINF -396
1284 static const yytype_int16 yypact[] =
1285 {
1286     -396,  1355,  -396,  -396,   -53,     5,  -396,  -396,   166,  -396,
1287     -396,  -396,  -396,    39,  -396,  -396,  -396,  -396,   166,  -396,
1288     -396,  -396,  -396,  -396,  1803,   166,    56,   102,   123,    57,
1289      -70,   166,  -396,  -396,  -396,   291,  -396,  -396,  -396,  -396,
1290     -396,  -396,  -396,   -91,  -396,  -396,  -396,  -396,  -396,  -396,
1291      129,    63,  -396,  -396,  -396,  -396,    66,  -396,  -396,    29,
1292       75,  -396,  -396,  -396,  -396,    46,    73,  -396,  -396,  -396,
1293      -35,  -396,  -396,  1838,   227,    50,  -396,  -396,  1677,   -37,
1294     1551,  -396,  -396,     1,  -396,  1677,    50,  -396,  -396,  -396,
1295      -70,   -35,   694,   291,   291,   291,  -396,  -396,  -396,  -396,
1296      820,   545,    94,  -396,   135,  -396,  -396,  -396,  -396,   199,
1297     -396,  -396,    29,  -396,  1407,  -396,  1490,   166,    75,    58,
1298     1677,  -396,  -396,  -396,   227,  -396,   407,    55,    55,    55,
1299       55,    55,    55,    55,  -396,   227,    55,    55,    55,  -396,
1300     -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  1873,
1301     -396,  -396,   243,  -396,  -396,   131,   136,   159,    16,   266,
1302      193,   166,   229,   166,   166,   229,   160,   166,    57,  -396,
1303     -396,  -396,  -396,  -396,  -396,  -396,   229,   229,  -396,  -396,
1304     -396,   229,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1305     -396,  -396,   229,  -396,  -396,   229,  -396,   229,  -396,  -396,
1306      229,  -396,  -396,  -396,  -396,  -396,  -396,  1677,  -396,    61,
1307     -396,   954,  1088,   204,  -396,   131,   136,  1677,    75,  -396,
1308     -396,  -396,  -396,    10,  1677,    83,  -396,   105,  -396,  -396,
1309     -396,  -396,  -396,  -396,  -396,  -396,  -396,   171,  -396,  -396,
1310      180,  -396,  -396,    30,  -396,  -396,  -396,  -396,  -396,  -396,
1311     -396,    33,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1312      185,  -396,  -396,  -396,  -396,  1767,  -396,    69,  -396,    74,
1313     -396,  -396,  -396,   234,    29,  -396,   192,  -396,  -396,   206,
1314     -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1315     -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1316     1677,  -396,  -396,  -396,   198,  -396,   407,  -396,   407,  -396,
1317     -396,    55,    55,    55,   407,    55,  -396,  -396,   227,    55,
1318      359,  -396,  -396,  -396,  -396,  -396,   200,  -396,   212,  -396,
1319     -396,  -396,  -396,   185,  -396,  -396,  -396,  -396,    55,   208,
1320     -396,  -396,  -396,   205,  -396,    55,   220,  -396,   -25,   223,
1321      229,  -396,  -396,    20,    82,  1838,  -396,   205,  -396,  -396,
1322     -396,   312,   209,  -396,  1920,  -396,   364,  -396,  -396,  -396,
1323     -396,  -396,  -396,  -396,  -396,  -396,  1677,  -396,  -396,  -396,
1324     -396,  -396,  -396,  -396,  -396,   143,   332,  -396,  -396,  -396,
1325      112,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   185,
1326     -396,  -396,  -396,  -396,  -396,   143,   143,   143,   143,  -396,
1327      219,  -396,    29,  -396,  -396,  -396,  1551,  -396,  -396,  -396,
1328     -396,   407,   407,    55,  -396,   227,  -396,  -396,  1873,  -396,
1329      246,  -396,  -396,    55,   240,   166,   245,   169,   245,  -396,
1330      289,   249,    33,   250,  -396,  -396,  -396,   342,  -396,  -396,
1331     -396,  -396,  -396,  -396,  -396,    86,  -396,   178,  -396,  -396,
1332     -396,  1920,  1920,   260,  -396,  -396,   260,  -396,  -396,  -100,
1333      275,  -396,   274,  -396,  -396,   232,   232,   232,  -396,  -396,
1334     -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1335     -396,    55,  -396,   166,  -396,   166,  -396,   166,   273,  -396,
1336     -396,   283,  -396,  -396,   272,    67,   407,  -396,  -396,  -396,
1337     -396,  -396,   289,  -396,  -396,  -396,  -396,  -396,    33,  -396,
1338       33,  1920,   232,  -396,   209,   178,  -396,  -396,  -396,  -396,
1339     -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   341,    50,
1340     -396,   229,  -396,    10,  1920,    83,  -396,    55,    55,  -396,
1341      289,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   -44,
1342     -100,  -396,  -396,  -396,   276,  -396,   -18,   131,   136,   383,
1343     1222,  -396,  -396,  -396,   292,  -396,  -396,  -396,  -396,    33,
1344     -396,  -396,  -396,  -396,  -396,    55,  1920,  -396,  -396
1345 };
1346
1347 /* YYPGOTO[NTERM-NUM].  */
1348 static const yytype_int16 yypgoto[] =
1349 {
1350     -396,  -396,    48,  -396,    -1,  -396,    36,  -396,    -7,  -396,
1351      340,  -396,   344,  -396,   -17,  -396,    -8,    26,   327,     3,
1352     -396,  -396,  -396,  -396,   -33,   -26,  -396,  -396,  -396,  -396,
1353     -396,   -77,  -396,  -396,    37,   -43,   -97,  -396,  -396,  -337,
1354      316,  -396,   358,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1355     -396,  -396,  -396,  -396,   -96,  -396,  -396,   -51,   121,   294,
1356     -396,   -81,    -6,  -395,  -396,  -396,  -396,  -396,  -102,  -329,
1357     -396,  -396,  -396,  -396,  -321,   -92,  -396,  -396,   194,  -396,
1358      -98,   -79,   -78,   434,   -16,   -27,   373,  -396,  -396,  -396,
1359     -396,   318,  -164,  -137,   -89,   317,   140,  -396,  -396,  -396,
1360       31,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
1361     -396,   -50,  -396,  -396,   -87,  -396,  -101,  -225,  -148,   -74,
1362     -396,    47,   -29,  -396,  -396,    59,  -396,     0,  -396,   142,
1363      -64,  -396,  -122,  -396,  -396,  -126,   -52,   -58,  -396,  -274
1364 };
1365
1366 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1367    positive, shift that token.  If negative, reduce the rule which
1368    number is the opposite.  If zero, do what YYDEFACT says.
1369    If YYTABLE_NINF, syntax error.  */
1370 #define YYTABLE_NINF -1
1371 static const yytype_uint16 yytable[] =
1372 {
1373       41,    64,    70,    89,    48,   206,   100,   215,   216,   261,
1374      151,   335,    72,   358,    88,   150,   110,   359,   388,    79,
1375      260,   149,   152,   322,   447,    91,   322,   321,   360,   349,
1376      321,   361,   327,   363,   418,   461,   365,    42,    55,   462,
1377      422,   300,   539,    19,   106,   517,   429,   580,   211,   212,
1378       41,   101,   184,   203,   210,   204,    75,   445,   540,   214,
1379      305,    76,   367,    89,   103,   203,    86,   204,   367,   277,
1380      108,   316,   152,   343,    88,   259,   343,   340,   104,    27,
1381      384,    28,    75,   152,   256,   348,    13,    65,   444,    15,
1382      205,   323,    13,   257,   303,    15,    21,   283,    32,   279,
1383      252,   271,    21,    23,   258,   279,   284,   117,   294,    23,
1384      523,   299,   302,   390,   289,    19,   298,   556,    41,    19,
1385      581,   445,   237,   203,   521,   204,   309,   310,   311,   312,
1386      313,   314,   315,    34,   111,   317,   318,   319,   543,   544,
1387      545,   376,   328,   113,   384,    66,    75,   506,   507,    83,
1388      282,   287,   293,   296,   384,   576,   213,   239,   332,   240,
1389      388,    84,   281,    33,   292,   450,   350,   451,    33,    39,
1390      115,   451,   452,   288,   453,   297,   452,   389,   453,    71,
1391      322,   366,   483,   484,   399,   559,    36,    37,    67,    36,
1392       37,   375,    38,    19,    36,    37,    80,    38,   378,   301,
1393      153,   154,   368,   275,   105,    34,   405,   406,   554,    34,
1394       67,   441,   371,   443,    36,    37,   454,    68,    69,   381,
1395      454,    70,   272,   377,   379,   485,   486,   455,   407,   408,
1396      447,   411,   555,   487,   161,   237,   488,   489,   490,    68,
1397       69,   163,    81,   491,   164,   273,   241,   242,   417,   526,
1398      203,   167,   204,   527,   424,   492,   427,   586,   528,   203,
1399      493,   204,   340,    82,   494,   404,   152,   495,   428,   102,
1400      239,    67,   240,   515,   415,   273,   496,   497,   485,   486,
1401      385,   324,   329,    34,   345,   346,   487,   325,   351,   488,
1402      489,   490,   335,   326,   241,   242,   374,   150,   382,    19,
1403       68,    69,   322,   149,   481,   482,   321,   383,   492,   480,
1404      419,   420,   421,   493,   423,   529,   530,   494,   425,   203,
1405      495,   204,    19,   390,   531,   475,   449,   477,   478,   496,
1406      497,   340,   413,   532,   409,   533,   125,   432,   416,   128,
1407      414,   130,   430,   431,   439,   134,   135,   136,   137,   138,
1408      474,   435,   125,   498,   459,   128,   330,   130,   237,   437,
1409      499,   509,   440,   516,   335,   442,   468,   142,   519,   503,
1410      417,   331,   472,   152,   463,   464,   465,   569,   466,   330,
1411      510,   237,   512,   142,    93,    94,    95,    96,   514,    34,
1412      210,   518,   520,   239,   331,   240,    86,    36,    37,   384,
1413      241,   242,   335,   463,   464,   465,   498,   466,   121,   223,
1414      224,   225,    34,   552,   542,   550,   239,   551,   240,   579,
1415       36,    37,   508,   241,   242,   475,   476,   477,   478,   513,
1416      582,   203,   511,   204,   585,   475,   522,   477,   478,   332,
1417      561,   254,   505,   295,   557,   255,   558,   536,   573,   218,
1418      537,   574,   572,   553,   337,   459,   121,   577,    77,   400,
1419      567,   568,   578,   217,   566,   122,   123,   124,   125,   126,
1420      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1421      137,   138,   139,   347,   438,   352,   525,   547,   562,   548,
1422      546,   549,   587,   140,   141,   560,   524,   460,     0,   142,
1423      426,     0,     0,     0,     0,   566,     0,     0,   371,   570,
1424        0,   332,     0,   122,   123,   124,   125,   126,   127,   128,
1425      129,   130,   131,   132,   133,     0,     0,     0,     0,     0,
1426      139,     0,   449,     0,     0,     0,     0,     0,     0,   381,
1427        0,   140,   141,   571,   379,     0,   432,   575,     0,   332,
1428        0,     0,     0,     0,     4,     5,   157,     6,     7,     0,
1429      227,     0,     0,     0,     0,     9,    10,    11,    12,     0,
1430        0,     0,   158,    15,    16,    17,    18,   159,    19,     0,
1431       21,     0,    22,     0,   588,   160,   161,    23,   162,    24,
1432        0,    25,     0,   163,    26,    27,   164,    28,   165,   166,
1433       29,    30,     0,   167,     0,   168,    31,     0,     0,     0,
1434        0,     0,   169,     0,    32,     0,   170,   228,     0,   229,
1435      230,   171,   231,   172,   232,     0,   173,   233,     0,   174,
1436        0,   234,     0,   175,   176,   235,   236,   237,     0,     0,
1437        0,     0,     0,     0,     0,     0,   177,     0,   238,     0,
1438      178,   179,     0,     0,     0,     0,     0,     0,     0,     0,
1439        0,     0,     0,     0,     0,     0,     0,     0,    34,    35,
1440      180,    75,   239,     0,   240,   181,    36,    37,     0,   241,
1441      242,    86,   243,     0,     0,    39,     0,     0,     0,   182,
1442      244,   245,   246,   247,   248,   219,     0,   249,   250,     0,
1443        0,   251,     0,     0,     0,   157,     6,     7,     0,     8,
1444        0,     0,     0,     0,     9,    10,    11,    12,     0,     0,
1445        0,   158,     0,    16,    17,    18,   159,     0,     0,     0,
1446        0,    22,     0,     0,   160,   161,     0,   162,    24,     0,
1447       25,     0,   163,     0,    27,   164,    28,   165,   166,    29,
1448       30,     0,   167,     0,   168,    31,     0,     0,     0,     0,
1449        0,   169,     0,    32,   220,   170,     0,     0,     0,     0,
1450      171,     0,   172,     0,     0,   173,     0,     0,   174,     0,
1451        0,     0,   175,   176,     0,     0,     0,     0,     0,     0,
1452        0,     0,     0,     0,     0,   177,     0,     0,     0,   178,
1453      179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454        0,     0,     0,     0,     0,     0,     0,     0,    35,   180,
1455       75,   219,     0,     0,   181,    36,    37,     0,     0,     0,
1456       86,   157,     6,     7,    39,     8,     0,     0,   182,     0,
1457        9,    10,    11,    12,     0,     0,     0,   158,     0,    16,
1458       17,    18,   159,     0,     0,     0,     0,    22,     0,     0,
1459      160,   161,     0,   162,    24,     0,    25,     0,   163,     0,
1460       27,   164,    28,   165,   166,    29,    30,     0,   167,     0,
1461      168,    31,     0,     0,     0,     0,     0,   169,     0,    32,
1462        0,   170,     0,     0,     0,     0,   171,     0,   172,     0,
1463        0,   173,     0,     0,   174,     0,     0,     0,   175,   176,
1464        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465        0,   177,     0,     0,     0,   178,   179,     0,     0,     0,
1466        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1467        0,     0,     0,     0,    35,   180,    75,     0,     0,     0,
1468      181,    36,    37,     0,     0,   219,    86,     0,     0,     0,
1469       39,   226,     0,     0,   182,   157,     6,     7,     0,     8,
1470        0,     0,     0,     0,     9,    10,    11,    12,     0,     0,
1471        0,   158,     0,    16,    17,    18,   159,     0,     0,     0,
1472        0,    22,     0,     0,   160,   161,     0,   162,    24,     0,
1473       25,     0,   163,     0,    27,   164,    28,   165,   166,    29,
1474       30,     0,   167,     0,   168,    31,     0,     0,     0,     0,
1475        0,   169,     0,    32,     0,   170,     0,     0,     0,     0,
1476      171,     0,   172,     0,     0,   173,     0,     0,   174,     0,
1477        0,     0,   175,   176,     0,     0,     0,     0,     0,     0,
1478        0,     0,     0,     0,     0,   177,     0,     0,     0,   178,
1479      179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480        0,     0,     0,     0,     0,     0,     0,     0,    35,   180,
1481       75,     0,     0,     0,   181,    36,    37,     0,     0,   219,
1482       86,     0,     0,     0,    39,   372,     0,     0,   182,   157,
1483        6,     7,     0,     8,     0,     0,     0,     0,     9,    10,
1484       11,    12,     0,     0,     0,   158,     0,    16,    17,    18,
1485      159,     0,     0,     0,     0,    22,     0,     0,   160,   161,
1486        0,   162,    24,     0,    25,     0,   163,     0,    27,   164,
1487       28,   165,   166,    29,    30,     0,   167,     0,   168,    31,
1488        0,     0,     0,     0,     0,   169,     0,    32,     0,   170,
1489        0,     0,     0,     0,   171,     0,   172,     0,     0,   173,
1490        0,     0,   174,     0,     0,     0,   175,   176,     0,     0,
1491        0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
1492        0,     0,     0,   178,   179,     0,     0,     0,     0,     0,
1493        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1494        0,     0,    35,   180,    75,     0,     0,     0,   181,    36,
1495       37,     0,     0,   219,    86,     0,     0,     0,    39,   373,
1496        0,     0,   182,   157,     6,     7,     0,     8,     0,     0,
1497        0,     0,     9,    10,    11,    12,     0,     0,     0,   158,
1498        0,    16,    17,    18,   159,     0,     0,     0,     0,    22,
1499        0,     0,   160,   161,     0,   162,    24,     0,    25,     0,
1500      163,     0,    27,   164,    28,   165,   166,    29,    30,     0,
1501      167,     0,   168,    31,     0,     0,     0,     0,     0,   169,
1502        0,    32,     0,   170,     0,     0,     0,     0,   171,     0,
1503      172,     0,     0,   173,     0,     0,   174,     0,     0,     0,
1504      175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
1505        0,     0,     0,   177,     0,     0,     0,   178,   179,     0,
1506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507        0,     0,     0,     0,     0,     0,    35,   180,    75,     0,
1508        0,     0,   181,    36,    37,     2,     3,     0,    86,     0,
1509        0,     0,    39,   584,     4,     5,   182,     6,     7,     0,
1510        8,     0,     0,     0,     0,     9,    10,    11,    12,     0,
1511       13,    14,     0,    15,    16,    17,    18,     0,    19,    20,
1512       21,     0,    22,     0,     0,     0,     0,    23,     0,    24,
1513        0,    25,     0,     0,    26,    27,     0,    28,   278,     0,
1514       29,    30,     0,     0,     0,     0,    31,     5,     0,     6,
1515        7,     0,     8,     0,    32,     0,     0,     9,    10,    11,
1516       12,     0,    13,     0,     0,    15,    16,    17,    18,     0,
1517       19,    20,    21,     0,    22,   279,     0,     0,     0,    23,
1518        0,    24,     0,    25,     0,     0,    26,    27,     0,    28,
1519       33,     0,    29,    30,     0,     0,     0,     0,    31,     0,
1520        0,     0,     0,     0,     0,     0,    32,     0,    34,    35,
1521        0,     0,     0,     0,     0,     0,    36,    37,     0,    38,
1522        0,   290,     0,     0,     0,    39,     0,     0,     0,     0,
1523        0,     0,     6,     7,     0,     8,     0,     0,     0,     0,
1524        9,    10,    11,    12,     0,    13,     0,     0,    15,    16,
1525       17,    18,     0,    19,    20,    21,     0,    22,   279,     0,
1526       34,    35,    23,     0,    24,     0,    25,     0,     0,    26,
1527       27,     0,    28,     0,     0,    29,    30,    39,   280,     0,
1528        0,    31,     0,     0,     0,     0,     0,     0,     0,    32,
1529        0,     0,   157,     6,     7,     0,     8,     0,     0,     0,
1530        0,     9,    10,    11,    12,     0,     0,     0,   158,     0,
1531       16,    17,    18,   159,     0,     0,     0,     0,    22,     0,
1532        0,   160,   161,     0,   162,    24,     0,    25,     0,   163,
1533        0,    27,   164,    28,   165,   166,    29,    30,     0,   167,
1534        0,   168,    31,    34,    35,     0,     0,     0,   169,     0,
1535       32,     0,   170,     0,     0,     0,     0,   171,     0,   172,
1536       39,   291,   173,     0,     0,   174,     0,     0,     0,   175,
1537      176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538        0,     0,   177,     0,     0,     0,   178,   179,     0,     0,
1539        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1540        0,     0,     0,     0,     0,    35,   180,    75,     0,     0,
1541        0,   181,     0,     0,   208,     0,     0,    86,   157,     6,
1542        7,    39,     8,     0,     0,   182,     0,     9,    10,    11,
1543       12,     0,     0,     0,   158,     0,    16,    17,    18,   159,
1544        0,     0,     0,     0,    22,     0,     0,   160,   161,     0,
1545      162,    24,     0,    25,     0,   163,     0,    27,   164,    28,
1546      165,   166,    29,    30,     0,   167,     0,   168,    31,     0,
1547        0,     0,     0,     0,   169,     0,    32,     0,   170,     0,
1548        0,     0,     0,   171,     0,   172,     0,     0,   173,     0,
1549        0,   174,     0,     0,     0,   175,   176,     0,     0,     0,
1550        0,     0,     0,     0,     0,     0,     0,     0,   177,     0,
1551        0,     0,   178,   179,     0,     0,     0,     0,     0,     0,
1552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1553       19,    35,   180,    75,     0,     0,     0,   181,     0,     0,
1554        0,     0,     0,    86,     0,     6,     7,    39,     8,     0,
1555        0,   182,     0,     9,    10,    11,    12,     0,     0,     0,
1556        0,     0,    16,    17,    18,   391,     0,     0,     0,   228,
1557       22,   229,   230,     0,   231,     0,   232,    24,     0,    25,
1558        0,     0,     0,    27,     0,    28,     0,   392,    29,    30,
1559        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
1560      238,     0,    32,     0,     0,     0,     0,     0,     0,     0,
1561        0,     0,     0,     0,     0,     0,     0,   121,     0,     0,
1562       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1563        0,   241,   242,     0,   393,   394,     0,     0,     0,     0,
1564      395,   396,   244,   245,   246,   247,   248,     0,     0,   397,
1565      398,     0,   121,   251,     0,     0,     0,    35,     0,    75,
1566        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1567        0,     0,     0,    39,   122,   123,   124,   125,   126,   127,
1568      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1569      138,   139,     0,     0,     0,     0,     0,     0,     0,     0,
1570        0,     0,   140,   141,     0,     0,     0,     0,   142,   122,
1571      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1572      133,     0,   228,     0,   229,   230,   139,   231,     0,   232,
1573        0,     0,   233,     0,     0,     0,   234,   140,   141,     0,
1574        0,   236,     0,   142,     0,     0,     0,     0,     0,     0,
1575        0,     0,     0,   238,     0,     0,     0,     0,     0,     0,
1576        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1577        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1578        0,     0,     0,     0,     0,     0,     0,   470,     0,     0,
1579        0,     0,     0,     0,     0,   244,   245,   246,   247,   248,
1580        0,     0,   249,   250,     0,     0,   251
1581 };
1582
1583 static const yytype_int16 yycheck[] =
1584 {
1585        1,     1,     8,    30,     1,    79,    39,    86,    86,   101,
1586       74,   159,    18,   177,    30,    73,    59,   181,   243,    25,
1587      101,    73,    74,   149,   353,    31,   152,   149,   192,   166,
1588      152,   195,    16,   197,   308,   356,   200,     1,     1,   360,
1589      314,   118,   142,    33,    51,   440,   320,    65,    81,    82,
1590       51,   142,    78,    90,    80,    92,   126,   101,   158,    85,
1591      124,    24,     1,    90,     1,    90,   136,    92,     1,   112,
1592        4,   135,   124,   162,    90,   101,   165,   102,    15,    50,
1593      124,    52,   126,   135,   101,   166,    25,   140,    68,    28,
1594      127,   149,    25,   101,   120,    28,    35,   114,    69,    38,
1595      101,   101,    35,    42,   101,    38,   114,   142,   116,    42,
1596      447,   117,   119,   138,   114,    33,   116,   512,   119,    33,
1597      138,   101,    92,    90,   445,    92,   127,   128,   129,   130,
1598      131,   132,   133,   123,    59,   136,   137,   138,   475,   476,
1599      477,   218,   126,    97,   124,   140,   126,   421,   422,    92,
1600      114,   114,   116,   116,   124,   550,   155,   127,   159,   129,
1601      385,   104,   114,   105,   116,    83,   166,    85,   105,   140,
1602       97,    85,    90,   114,    92,   116,    90,   251,    92,   140,
1603      306,   207,   407,   408,   265,   522,   131,   132,   105,   131,
1604      132,   217,   134,    33,   131,   132,   140,   134,   224,   141,
1605      150,   151,   141,     4,   141,   123,   137,   138,   141,   123,
1606      105,   348,   209,   350,   131,   132,   134,   134,   135,   225,
1607      134,   227,   128,   223,   225,     6,     7,   145,   154,   155,
1608      559,   274,   506,    14,    41,    92,    17,    18,    19,   134,
1609      135,    48,   140,    24,    51,   140,   134,   135,   306,    71,
1610       90,    58,    92,    75,   318,    36,   320,   578,    80,    90,
1611       41,    92,   102,   140,    45,   265,   318,    48,   320,   140,
1612      127,   105,   129,   104,   300,   140,    57,    58,     6,     7,
1613      137,   150,    16,   123,   163,   164,    14,   151,   167,    17,
1614       18,    19,   440,   134,   134,   135,    92,   355,   127,    33,
1615      134,   135,   428,   355,   405,   406,   428,   127,    36,   390,
1616      311,   312,   313,    41,   315,   137,   138,    45,   319,    90,
1617       48,    92,    33,   138,   146,    93,   353,    95,    96,    57,
1618       58,   102,   140,   155,   100,   157,   109,   338,   140,   112,
1619      134,   114,   142,   131,   345,   118,   119,   120,   121,   122,
1620      376,   143,   109,   134,   354,   112,    90,   114,    92,   154,
1621      141,   425,   142,   437,   512,   142,   157,   140,   442,   412,
1622      428,   105,     8,   425,    62,    63,    64,   541,    66,    90,
1623      134,    92,   142,   140,    93,    94,    95,    96,   143,   123,
1624      416,   142,   142,   127,   105,   129,   136,   131,   132,   124,
1625      134,   135,   550,    62,    63,    64,   134,    66,    49,    93,
1626       94,    95,   123,   141,   140,   142,   127,   134,   129,   143,
1627      131,   132,   423,   134,   135,    93,    94,    95,    96,   435,
1628       47,    90,   433,    92,   142,    93,    94,    95,    96,   440,
1629       99,   101,   416,   116,   518,   101,   520,   463,   545,    91,
1630      466,   547,   544,   504,   160,   455,    49,   559,    24,   265,
1631      539,   539,   560,    90,   538,   106,   107,   108,   109,   110,
1632      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1633      121,   122,   123,   165,   344,   168,   455,   493,   538,   495,
1634      491,   497,   579,   134,   135,   524,   449,   355,    -1,   140,
1635      141,    -1,    -1,    -1,    -1,   579,    -1,    -1,   505,   542,
1636       -1,   512,    -1,   106,   107,   108,   109,   110,   111,   112,
1637      113,   114,   115,   116,   117,    -1,    -1,    -1,    -1,    -1,
1638      123,    -1,   559,    -1,    -1,    -1,    -1,    -1,    -1,   545,
1639       -1,   134,   135,   543,   545,    -1,   547,   548,    -1,   550,
1640       -1,    -1,    -1,    -1,     9,    10,    11,    12,    13,    -1,
1641       15,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,
1642       -1,    -1,    27,    28,    29,    30,    31,    32,    33,    -1,
1643       35,    -1,    37,    -1,   585,    40,    41,    42,    43,    44,
1644       -1,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
1645       55,    56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,
1646       -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
1647       75,    76,    77,    78,    79,    -1,    81,    82,    -1,    84,
1648       -1,    86,    -1,    88,    89,    90,    91,    92,    -1,    -1,
1649       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
1650      105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1651       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,   124,
1652      125,   126,   127,    -1,   129,   130,   131,   132,    -1,   134,
1653      135,   136,   137,    -1,    -1,   140,    -1,    -1,    -1,   144,
1654      145,   146,   147,   148,   149,     1,    -1,   152,   153,    -1,
1655       -1,   156,    -1,    -1,    -1,    11,    12,    13,    -1,    15,
1656       -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,    -1,
1657       -1,    27,    -1,    29,    30,    31,    32,    -1,    -1,    -1,
1658       -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,    -1,
1659       46,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
1660       56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
1661       -1,    67,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,
1662       76,    -1,    78,    -1,    -1,    81,    -1,    -1,    84,    -1,
1663       -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
1664       -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,   105,
1665      106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1666       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   125,
1667      126,     1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,
1668      136,    11,    12,    13,   140,    15,    -1,    -1,   144,    -1,
1669       20,    21,    22,    23,    -1,    -1,    -1,    27,    -1,    29,
1670       30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
1671       40,    41,    -1,    43,    44,    -1,    46,    -1,    48,    -1,
1672       50,    51,    52,    53,    54,    55,    56,    -1,    58,    -1,
1673       60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
1674       -1,    71,    -1,    -1,    -1,    -1,    76,    -1,    78,    -1,
1675       -1,    81,    -1,    -1,    84,    -1,    -1,    -1,    88,    89,
1676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1677       -1,   101,    -1,    -1,    -1,   105,   106,    -1,    -1,    -1,
1678       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1679       -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,    -1,
1680      130,   131,   132,    -1,    -1,     1,   136,    -1,    -1,    -1,
1681      140,   141,    -1,    -1,   144,    11,    12,    13,    -1,    15,
1682       -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,    -1,
1683       -1,    27,    -1,    29,    30,    31,    32,    -1,    -1,    -1,
1684       -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,    -1,
1685       46,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
1686       56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
1687       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    -1,    -1,
1688       76,    -1,    78,    -1,    -1,    81,    -1,    -1,    84,    -1,
1689       -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
1690       -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,   105,
1691      106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1692       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   125,
1693      126,    -1,    -1,    -1,   130,   131,   132,    -1,    -1,     1,
1694      136,    -1,    -1,    -1,   140,   141,    -1,    -1,   144,    11,
1695       12,    13,    -1,    15,    -1,    -1,    -1,    -1,    20,    21,
1696       22,    23,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
1697       32,    -1,    -1,    -1,    -1,    37,    -1,    -1,    40,    41,
1698       -1,    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,
1699       52,    53,    54,    55,    56,    -1,    58,    -1,    60,    61,
1700       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
1701       -1,    -1,    -1,    -1,    76,    -1,    78,    -1,    -1,    81,
1702       -1,    -1,    84,    -1,    -1,    -1,    88,    89,    -1,    -1,
1703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
1704       -1,    -1,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,
1705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1706       -1,    -1,   124,   125,   126,    -1,    -1,    -1,   130,   131,
1707      132,    -1,    -1,     1,   136,    -1,    -1,    -1,   140,   141,
1708       -1,    -1,   144,    11,    12,    13,    -1,    15,    -1,    -1,
1709       -1,    -1,    20,    21,    22,    23,    -1,    -1,    -1,    27,
1710       -1,    29,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
1711       -1,    -1,    40,    41,    -1,    43,    44,    -1,    46,    -1,
1712       48,    -1,    50,    51,    52,    53,    54,    55,    56,    -1,
1713       58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
1714       -1,    69,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,
1715       78,    -1,    -1,    81,    -1,    -1,    84,    -1,    -1,    -1,
1716       88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1717       -1,    -1,    -1,   101,    -1,    -1,    -1,   105,   106,    -1,
1718       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1719       -1,    -1,    -1,    -1,    -1,    -1,   124,   125,   126,    -1,
1720       -1,    -1,   130,   131,   132,     0,     1,    -1,   136,    -1,
1721       -1,    -1,   140,   141,     9,    10,   144,    12,    13,    -1,
1722       15,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,
1723       25,    26,    -1,    28,    29,    30,    31,    -1,    33,    34,
1724       35,    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    44,
1725       -1,    46,    -1,    -1,    49,    50,    -1,    52,     1,    -1,
1726       55,    56,    -1,    -1,    -1,    -1,    61,    10,    -1,    12,
1727       13,    -1,    15,    -1,    69,    -1,    -1,    20,    21,    22,
1728       23,    -1,    25,    -1,    -1,    28,    29,    30,    31,    -1,
1729       33,    34,    35,    -1,    37,    38,    -1,    -1,    -1,    42,
1730       -1,    44,    -1,    46,    -1,    -1,    49,    50,    -1,    52,
1731      105,    -1,    55,    56,    -1,    -1,    -1,    -1,    61,    -1,
1732       -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,   123,   124,
1733       -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,   134,
1734       -1,     1,    -1,    -1,    -1,   140,    -1,    -1,    -1,    -1,
1735       -1,    -1,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
1736       20,    21,    22,    23,    -1,    25,    -1,    -1,    28,    29,
1737       30,    31,    -1,    33,    34,    35,    -1,    37,    38,    -1,
1738      123,   124,    42,    -1,    44,    -1,    46,    -1,    -1,    49,
1739       50,    -1,    52,    -1,    -1,    55,    56,   140,   141,    -1,
1740       -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
1741       -1,    -1,    11,    12,    13,    -1,    15,    -1,    -1,    -1,
1742       -1,    20,    21,    22,    23,    -1,    -1,    -1,    27,    -1,
1743       29,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,
1744       -1,    40,    41,    -1,    43,    44,    -1,    46,    -1,    48,
1745       -1,    50,    51,    52,    53,    54,    55,    56,    -1,    58,
1746       -1,    60,    61,   123,   124,    -1,    -1,    -1,    67,    -1,
1747       69,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,    78,
1748      140,   141,    81,    -1,    -1,    84,    -1,    -1,    -1,    88,
1749       89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1750       -1,    -1,   101,    -1,    -1,    -1,   105,   106,    -1,    -1,
1751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1752       -1,    -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,
1753       -1,   130,    -1,    -1,   133,    -1,    -1,   136,    11,    12,
1754       13,   140,    15,    -1,    -1,   144,    -1,    20,    21,    22,
1755       23,    -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,
1756       -1,    -1,    -1,    -1,    37,    -1,    -1,    40,    41,    -1,
1757       43,    44,    -1,    46,    -1,    48,    -1,    50,    51,    52,
1758       53,    54,    55,    56,    -1,    58,    -1,    60,    61,    -1,
1759       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
1760       -1,    -1,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,
1761       -1,    84,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
1762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
1763       -1,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
1764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1765       33,   124,   125,   126,    -1,    -1,    -1,   130,    -1,    -1,
1766       -1,    -1,    -1,   136,    -1,    12,    13,   140,    15,    -1,
1767       -1,   144,    -1,    20,    21,    22,    23,    -1,    -1,    -1,
1768       -1,    -1,    29,    30,    31,    68,    -1,    -1,    -1,    72,
1769       37,    74,    75,    -1,    77,    -1,    79,    44,    -1,    46,
1770       -1,    -1,    -1,    50,    -1,    52,    -1,    90,    55,    56,
1771       -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
1772      103,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,
1774      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1775       -1,   134,   135,    -1,   137,   138,    -1,    -1,    -1,    -1,
1776      143,   144,   145,   146,   147,   148,   149,    -1,    -1,   152,
1777      153,    -1,    49,   156,    -1,    -1,    -1,   124,    -1,   126,
1778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1779       -1,    -1,    -1,   140,   106,   107,   108,   109,   110,   111,
1780      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1781      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1782       -1,    -1,   134,   135,    -1,    -1,    -1,    -1,   140,   106,
1783      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1784      117,    -1,    72,    -1,    74,    75,   123,    77,    -1,    79,
1785       -1,    -1,    82,    -1,    -1,    -1,    86,   134,   135,    -1,
1786       -1,    91,    -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,
1787       -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
1788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1790       -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,    -1,    -1,
1791       -1,    -1,    -1,    -1,    -1,   145,   146,   147,   148,   149,
1792       -1,    -1,   152,   153,    -1,    -1,   156
1793 };
1794
1795 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1796    symbol of state STATE-NUM.  */
1797 static const yytype_uint16 yystos[] =
1798 {
1799        0,   160,     0,     1,     9,    10,    12,    13,    15,    20,
1800       21,    22,    23,    25,    26,    28,    29,    30,    31,    33,
1801       34,    35,    37,    42,    44,    46,    49,    50,    52,    55,
1802       56,    61,    69,   105,   123,   124,   131,   132,   134,   140,
1803      162,   163,   165,   166,   167,   171,   173,   175,   178,   179,
1804      180,   181,   186,   187,   188,   193,   194,   200,   202,   203,
1805      204,   205,   209,   284,   286,   140,   140,   105,   134,   135,
1806      221,   140,   221,   287,   285,   126,   193,   242,   249,   221,
1807      140,   140,   140,    92,   104,   254,   136,   242,   243,   244,
1808      245,   221,   183,    93,    94,    95,    96,   196,   197,   199,
1809      183,   142,   140,     1,    15,   141,   167,   169,     4,   206,
1810      194,    59,   190,    97,   172,    97,   174,   142,   201,   164,
1811      210,    49,   106,   107,   108,   109,   110,   111,   112,   113,
1812      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1813      134,   135,   140,   288,   289,   290,   291,   293,   294,   295,
1814      296,   289,   295,   150,   151,   240,   241,    11,    27,    32,
1815       40,    41,    43,    48,    51,    53,    54,    58,    60,    67,
1816       71,    76,    78,    81,    84,    88,    89,   101,   105,   106,
1817      125,   130,   144,   182,   184,   189,   193,   211,   218,   219,
1818      223,   224,   225,   231,   232,   243,   244,   263,   265,   266,
1819      267,   268,   282,    90,    92,   127,   278,   279,   133,   176,
1820      184,   183,   183,   155,   184,   240,   241,   245,   201,     1,
1821       70,   163,   184,   199,   199,   199,   141,    15,    72,    74,
1822       75,    77,    79,    82,    86,    90,    91,    92,   103,   127,
1823      129,   134,   135,   137,   145,   146,   147,   148,   149,   152,
1824      153,   156,   163,   168,   169,   171,   173,   175,   178,   184,
1825      220,   234,   235,   236,   237,   248,   256,   274,   275,   276,
1826      277,   286,   128,   140,   207,     4,   191,   194,     1,    38,
1827      141,   161,   165,   173,   175,   177,   178,   193,   284,   286,
1828        1,   141,   161,   165,   175,   177,   193,   284,   286,   221,
1829      190,   141,   167,   184,   297,   289,   295,   296,   298,   163,
1830      163,   163,   163,   163,   163,   163,   289,   163,   163,   163,
1831      292,   291,   294,   296,   150,   151,   134,    16,   126,    16,
1832       90,   105,   163,   220,   222,   277,   286,   218,   217,   221,
1833      102,   250,   252,   253,   278,   217,   217,   250,   220,   252,
1834      286,   217,   254,   226,   262,   283,   251,   253,   251,   251,
1835      251,   251,   280,   251,   233,   251,   184,     1,   141,   161,
1836      165,   178,   141,   141,    92,   184,   190,   286,   184,   163,
1837      195,   221,   127,   127,   124,   137,   228,   230,   276,   278,
1838      138,    68,    90,   137,   138,   143,   144,   152,   153,   220,
1839      237,   238,   246,   247,   286,   137,   138,   154,   155,   100,
1840      170,   194,   208,   140,   134,   184,   140,   296,   298,   163,
1841      163,   163,   298,   163,   289,   163,   141,   289,   295,   298,
1842      142,   131,   163,   212,   213,   143,   255,   154,   255,   163,
1843      142,   252,   142,   252,    68,   101,   227,   228,   229,   244,
1844       83,    85,    90,    92,   134,   145,   257,   259,   261,   286,
1845      288,   233,   233,    62,    63,    64,    66,   270,   157,   281,
1846      137,   234,     8,   185,   184,    93,    94,    95,    96,   198,
1847      220,   275,   275,   276,   276,     6,     7,    14,    17,    18,
1848       19,    24,    36,    41,    45,    48,    57,    58,   134,   141,
1849      214,   215,   216,   194,   192,   176,   298,   298,   163,   289,
1850      134,   163,   142,   221,   143,   104,   278,   222,   142,   278,
1851      142,   233,    94,   198,   280,   259,    71,    75,    80,   137,
1852      138,   146,   155,   157,   258,   260,   243,   243,   269,   142,
1853      158,   239,   140,   198,   198,   198,   163,   221,   221,   221,
1854      142,   134,   141,   216,   141,   298,   222,   278,   278,   198,
1855      281,    99,   270,   271,   272,   273,   278,   240,   241,   251,
1856      183,   286,   234,   195,   213,   163,   222,   227,   239,   143,
1857       65,   138,    47,   264,   141,   142,   233,   273,   163
1858 };
1859
1860 #define yyerrok         (yyerrstatus = 0)
1861 #define yyclearin       (yychar = YYEMPTY)
1862 #define YYEMPTY         (-2)
1863 #define YYEOF           0
1864
1865 #define YYACCEPT        goto yyacceptlab
1866 #define YYABORT         goto yyabortlab
1867 #define YYERROR         goto yyerrorlab
1868
1869
1870 /* Like YYERROR except do call yyerror.  This remains here temporarily
1871    to ease the transition to the new meaning of YYERROR, for GCC.
1872    Once GCC version 2 has supplanted version 1, this can go.  */
1873
1874 #define YYFAIL          goto yyerrlab
1875
1876 #define YYRECOVERING()  (!!yyerrstatus)
1877
1878 #define YYBACKUP(Token, Value)                                  \
1879 do                                                              \
1880   if (yychar == YYEMPTY && yylen == 1)                          \
1881     {                                                           \
1882       yychar = (Token);                                         \
1883       yylval = (Value);                                         \
1884       yytoken = YYTRANSLATE (yychar);                           \
1885       YYPOPSTACK (1);                                           \
1886       goto yybackup;                                            \
1887     }                                                           \
1888   else                                                          \
1889     {                                                           \
1890       yyerror (YY_("syntax error: cannot back up")); \
1891       YYERROR;                                                  \
1892     }                                                           \
1893 while (YYID (0))
1894
1895
1896 #define YYTERROR        1
1897 #define YYERRCODE       256
1898
1899
1900 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1901    If N is 0, then set CURRENT to the empty location which ends
1902    the previous symbol: RHS[0] (always defined).  */
1903
1904 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1905 #ifndef YYLLOC_DEFAULT
1906 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1907     do                                                                  \
1908       if (YYID (N))                                                    \
1909         {                                                               \
1910           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1911           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1912           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1913           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1914         }                                                               \
1915       else                                                              \
1916         {                                                               \
1917           (Current).first_line   = (Current).last_line   =              \
1918             YYRHSLOC (Rhs, 0).last_line;                                \
1919           (Current).first_column = (Current).last_column =              \
1920             YYRHSLOC (Rhs, 0).last_column;                              \
1921         }                                                               \
1922     while (YYID (0))
1923 #endif
1924
1925
1926 /* YY_LOCATION_PRINT -- Print the location on the stream.
1927    This macro was not mandated originally: define only if we know
1928    we won't break user code: when these are the locations we know.  */
1929
1930 #ifndef YY_LOCATION_PRINT
1931 # if YYLTYPE_IS_TRIVIAL
1932 #  define YY_LOCATION_PRINT(File, Loc)                  \
1933      fprintf (File, "%d.%d-%d.%d",                      \
1934               (Loc).first_line, (Loc).first_column,     \
1935               (Loc).last_line,  (Loc).last_column)
1936 # else
1937 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1938 # endif
1939 #endif
1940
1941
1942 /* YYLEX -- calling `yylex' with the right arguments.  */
1943
1944 #ifdef YYLEX_PARAM
1945 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1946 #else
1947 # define YYLEX yylex (&yylval, &yylloc)
1948 #endif
1949
1950 /* Enable debugging if requested.  */
1951 #if YYDEBUG
1952
1953 # ifndef YYFPRINTF
1954 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1955 #  define YYFPRINTF fprintf
1956 # endif
1957
1958 # define YYDPRINTF(Args)                        \
1959 do {                                            \
1960   if (yydebug)                                  \
1961     YYFPRINTF Args;                             \
1962 } while (YYID (0))
1963
1964 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1965 do {                                                                      \
1966   if (yydebug)                                                            \
1967     {                                                                     \
1968       YYFPRINTF (stderr, "%s ", Title);                                   \
1969       yy_symbol_print (stderr,                                            \
1970                   Type, Value, Location); \
1971       YYFPRINTF (stderr, "\n");                                           \
1972     }                                                                     \
1973 } while (YYID (0))
1974
1975
1976 /*--------------------------------.
1977 | Print this symbol on YYOUTPUT.  |
1978 `--------------------------------*/
1979
1980 /*ARGSUSED*/
1981 #if (defined __STDC__ || defined __C99__FUNC__ \
1982      || defined __cplusplus || defined _MSC_VER)
1983 static void
1984 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
1985 #else
1986 static void
1987 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
1988     FILE *yyoutput;
1989     int yytype;
1990     YYSTYPE const * const yyvaluep;
1991     YYLTYPE const * const yylocationp;
1992 #endif
1993 {
1994   if (!yyvaluep)
1995     return;
1996   YYUSE (yylocationp);
1997 # ifdef YYPRINT
1998   if (yytype < YYNTOKENS)
1999     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2000 # else
2001   YYUSE (yyoutput);
2002 # endif
2003   switch (yytype)
2004     {
2005       default:
2006         break;
2007     }
2008 }
2009
2010
2011 /*--------------------------------.
2012 | Print this symbol on YYOUTPUT.  |
2013 `--------------------------------*/
2014
2015 #if (defined __STDC__ || defined __C99__FUNC__ \
2016      || defined __cplusplus || defined _MSC_VER)
2017 static void
2018 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2019 #else
2020 static void
2021 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
2022     FILE *yyoutput;
2023     int yytype;
2024     YYSTYPE const * const yyvaluep;
2025     YYLTYPE const * const yylocationp;
2026 #endif
2027 {
2028   if (yytype < YYNTOKENS)
2029     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2030   else
2031     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2032
2033   YY_LOCATION_PRINT (yyoutput, *yylocationp);
2034   YYFPRINTF (yyoutput, ": ");
2035   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
2036   YYFPRINTF (yyoutput, ")");
2037 }
2038
2039 /*------------------------------------------------------------------.
2040 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2041 | TOP (included).                                                   |
2042 `------------------------------------------------------------------*/
2043
2044 #if (defined __STDC__ || defined __C99__FUNC__ \
2045      || defined __cplusplus || defined _MSC_VER)
2046 static void
2047 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
2048 #else
2049 static void
2050 yy_stack_print (bottom, top)
2051     yytype_int16 *bottom;
2052     yytype_int16 *top;
2053 #endif
2054 {
2055   YYFPRINTF (stderr, "Stack now");
2056   for (; bottom <= top; ++bottom)
2057     YYFPRINTF (stderr, " %d", *bottom);
2058   YYFPRINTF (stderr, "\n");
2059 }
2060
2061 # define YY_STACK_PRINT(Bottom, Top)                            \
2062 do {                                                            \
2063   if (yydebug)                                                  \
2064     yy_stack_print ((Bottom), (Top));                           \
2065 } while (YYID (0))
2066
2067
2068 /*------------------------------------------------.
2069 | Report that the YYRULE is going to be reduced.  |
2070 `------------------------------------------------*/
2071
2072 #if (defined __STDC__ || defined __C99__FUNC__ \
2073      || defined __cplusplus || defined _MSC_VER)
2074 static void
2075 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
2076 #else
2077 static void
2078 yy_reduce_print (yyvsp, yylsp, yyrule)
2079     YYSTYPE *yyvsp;
2080     YYLTYPE *yylsp;
2081     int yyrule;
2082 #endif
2083 {
2084   int yynrhs = yyr2[yyrule];
2085   int yyi;
2086   unsigned long int yylno = yyrline[yyrule];
2087   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2088              yyrule - 1, yylno);
2089   /* The symbols being reduced.  */
2090   for (yyi = 0; yyi < yynrhs; yyi++)
2091     {
2092       fprintf (stderr, "   $%d = ", yyi + 1);
2093       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2094                        &(yyvsp[(yyi + 1) - (yynrhs)])
2095                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
2096       fprintf (stderr, "\n");
2097     }
2098 }
2099
2100 # define YY_REDUCE_PRINT(Rule)          \
2101 do {                                    \
2102   if (yydebug)                          \
2103     yy_reduce_print (yyvsp, yylsp, Rule); \
2104 } while (YYID (0))
2105
2106 /* Nonzero means print parse trace.  It is left uninitialized so that
2107    multiple parsers can coexist.  */
2108 int yydebug;
2109 #else /* !YYDEBUG */
2110 # define YYDPRINTF(Args)
2111 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2112 # define YY_STACK_PRINT(Bottom, Top)
2113 # define YY_REDUCE_PRINT(Rule)
2114 #endif /* !YYDEBUG */
2115
2116
2117 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2118 #ifndef YYINITDEPTH
2119 # define YYINITDEPTH 200
2120 #endif
2121
2122 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2123    if the built-in stack extension method is used).
2124
2125    Do not make this value too large; the results are undefined if
2126    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2127    evaluated with infinite-precision integer arithmetic.  */
2128
2129 #ifndef YYMAXDEPTH
2130 # define YYMAXDEPTH 10000
2131 #endif
2132
2133 \f
2134
2135 #if YYERROR_VERBOSE
2136
2137 # ifndef yystrlen
2138 #  if defined __GLIBC__ && defined _STRING_H
2139 #   define yystrlen strlen
2140 #  else
2141 /* Return the length of YYSTR.  */
2142 #if (defined __STDC__ || defined __C99__FUNC__ \
2143      || defined __cplusplus || defined _MSC_VER)
2144 static YYSIZE_T
2145 yystrlen (const char *yystr)
2146 #else
2147 static YYSIZE_T
2148 yystrlen (yystr)
2149     const char *yystr;
2150 #endif
2151 {
2152   YYSIZE_T yylen;
2153   for (yylen = 0; yystr[yylen]; yylen++)
2154     continue;
2155   return yylen;
2156 }
2157 #  endif
2158 # endif
2159
2160 # ifndef yystpcpy
2161 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2162 #   define yystpcpy stpcpy
2163 #  else
2164 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2165    YYDEST.  */
2166 #if (defined __STDC__ || defined __C99__FUNC__ \
2167      || defined __cplusplus || defined _MSC_VER)
2168 static char *
2169 yystpcpy (char *yydest, const char *yysrc)
2170 #else
2171 static char *
2172 yystpcpy (yydest, yysrc)
2173     char *yydest;
2174     const char *yysrc;
2175 #endif
2176 {
2177   char *yyd = yydest;
2178   const char *yys = yysrc;
2179
2180   while ((*yyd++ = *yys++) != '\0')
2181     continue;
2182
2183   return yyd - 1;
2184 }
2185 #  endif
2186 # endif
2187
2188 # ifndef yytnamerr
2189 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2190    quotes and backslashes, so that it's suitable for yyerror.  The
2191    heuristic is that double-quoting is unnecessary unless the string
2192    contains an apostrophe, a comma, or backslash (other than
2193    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2194    null, do not copy; instead, return the length of what the result
2195    would have been.  */
2196 static YYSIZE_T
2197 yytnamerr (char *yyres, const char *yystr)
2198 {
2199   if (*yystr == '"')
2200     {
2201       YYSIZE_T yyn = 0;
2202       char const *yyp = yystr;
2203
2204       for (;;)
2205         switch (*++yyp)
2206           {
2207           case '\'':
2208           case ',':
2209             goto do_not_strip_quotes;
2210
2211           case '\\':
2212             if (*++yyp != '\\')
2213               goto do_not_strip_quotes;
2214             /* Fall through.  */
2215           default:
2216             if (yyres)
2217               yyres[yyn] = *yyp;
2218             yyn++;
2219             break;
2220
2221           case '"':
2222             if (yyres)
2223               yyres[yyn] = '\0';
2224             return yyn;
2225           }
2226     do_not_strip_quotes: ;
2227     }
2228
2229   if (! yyres)
2230     return yystrlen (yystr);
2231
2232   return yystpcpy (yyres, yystr) - yyres;
2233 }
2234 # endif
2235
2236 /* Copy into YYRESULT an error message about the unexpected token
2237    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2238    including the terminating null byte.  If YYRESULT is null, do not
2239    copy anything; just return the number of bytes that would be
2240    copied.  As a special case, return 0 if an ordinary "syntax error"
2241    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2242    size calculation.  */
2243 static YYSIZE_T
2244 yysyntax_error (char *yyresult, int yystate, int yychar)
2245 {
2246   int yyn = yypact[yystate];
2247
2248   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2249     return 0;
2250   else
2251     {
2252       int yytype = YYTRANSLATE (yychar);
2253       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2254       YYSIZE_T yysize = yysize0;
2255       YYSIZE_T yysize1;
2256       int yysize_overflow = 0;
2257       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2258       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2259       int yyx;
2260
2261 # if 0
2262       /* This is so xgettext sees the translatable formats that are
2263          constructed on the fly.  */
2264       YY_("syntax error, unexpected %s");
2265       YY_("syntax error, unexpected %s, expecting %s");
2266       YY_("syntax error, unexpected %s, expecting %s or %s");
2267       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2268       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2269 # endif
2270       char *yyfmt;
2271       char const *yyf;
2272       static char const yyunexpected[] = "syntax error, unexpected %s";
2273       static char const yyexpecting[] = ", expecting %s";
2274       static char const yyor[] = " or %s";
2275       char yyformat[sizeof yyunexpected
2276                     + sizeof yyexpecting - 1
2277                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2278                        * (sizeof yyor - 1))];
2279       char const *yyprefix = yyexpecting;
2280
2281       /* Start YYX at -YYN if negative to avoid negative indexes in
2282          YYCHECK.  */
2283       int yyxbegin = yyn < 0 ? -yyn : 0;
2284
2285       /* Stay within bounds of both yycheck and yytname.  */
2286       int yychecklim = YYLAST - yyn + 1;
2287       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2288       int yycount = 1;
2289
2290       yyarg[0] = yytname[yytype];
2291       yyfmt = yystpcpy (yyformat, yyunexpected);
2292
2293       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2294         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2295           {
2296             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2297               {
2298                 yycount = 1;
2299                 yysize = yysize0;
2300                 yyformat[sizeof yyunexpected - 1] = '\0';
2301                 break;
2302               }
2303             yyarg[yycount++] = yytname[yyx];
2304             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2305             yysize_overflow |= (yysize1 < yysize);
2306             yysize = yysize1;
2307             yyfmt = yystpcpy (yyfmt, yyprefix);
2308             yyprefix = yyor;
2309           }
2310
2311       yyf = YY_(yyformat);
2312       yysize1 = yysize + yystrlen (yyf);
2313       yysize_overflow |= (yysize1 < yysize);
2314       yysize = yysize1;
2315
2316       if (yysize_overflow)
2317         return YYSIZE_MAXIMUM;
2318
2319       if (yyresult)
2320         {
2321           /* Avoid sprintf, as that infringes on the user's name space.
2322              Don't have undefined behavior even if the translation
2323              produced a string with the wrong number of "%s"s.  */
2324           char *yyp = yyresult;
2325           int yyi = 0;
2326           while ((*yyp = *yyf) != '\0')
2327             {
2328               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2329                 {
2330                   yyp += yytnamerr (yyp, yyarg[yyi++]);
2331                   yyf += 2;
2332                 }
2333               else
2334                 {
2335                   yyp++;
2336                   yyf++;
2337                 }
2338             }
2339         }
2340       return yysize;
2341     }
2342 }
2343 #endif /* YYERROR_VERBOSE */
2344 \f
2345
2346 /*-----------------------------------------------.
2347 | Release the memory associated to this symbol.  |
2348 `-----------------------------------------------*/
2349
2350 /*ARGSUSED*/
2351 #if (defined __STDC__ || defined __C99__FUNC__ \
2352      || defined __cplusplus || defined _MSC_VER)
2353 static void
2354 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
2355 #else
2356 static void
2357 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
2358     const char *yymsg;
2359     int yytype;
2360     YYSTYPE *yyvaluep;
2361     YYLTYPE *yylocationp;
2362 #endif
2363 {
2364   YYUSE (yyvaluep);
2365   YYUSE (yylocationp);
2366
2367   if (!yymsg)
2368     yymsg = "Deleting";
2369   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2370
2371   switch (yytype)
2372     {
2373
2374       default:
2375         break;
2376     }
2377 }
2378 \f
2379
2380 /* Prevent warnings from -Wmissing-prototypes.  */
2381
2382 #ifdef YYPARSE_PARAM
2383 #if defined __STDC__ || defined __cplusplus
2384 int yyparse (void *YYPARSE_PARAM);
2385 #else
2386 int yyparse ();
2387 #endif
2388 #else /* ! YYPARSE_PARAM */
2389 #if defined __STDC__ || defined __cplusplus
2390 int yyparse (void);
2391 #else
2392 int yyparse ();
2393 #endif
2394 #endif /* ! YYPARSE_PARAM */
2395
2396
2397
2398
2399
2400
2401 /*----------.
2402 | yyparse.  |
2403 `----------*/
2404
2405 #ifdef YYPARSE_PARAM
2406 #if (defined __STDC__ || defined __C99__FUNC__ \
2407      || defined __cplusplus || defined _MSC_VER)
2408 int
2409 yyparse (void *YYPARSE_PARAM)
2410 #else
2411 int
2412 yyparse (YYPARSE_PARAM)
2413     void *YYPARSE_PARAM;
2414 #endif
2415 #else /* ! YYPARSE_PARAM */
2416 #if (defined __STDC__ || defined __C99__FUNC__ \
2417      || defined __cplusplus || defined _MSC_VER)
2418 int
2419 yyparse (void)
2420 #else
2421 int
2422 yyparse ()
2423
2424 #endif
2425 #endif
2426 {
2427   /* The look-ahead symbol.  */
2428 int yychar;
2429
2430 /* The semantic value of the look-ahead symbol.  */
2431 YYSTYPE yylval;
2432
2433 /* Number of syntax errors so far.  */
2434 int yynerrs;
2435 /* Location data for the look-ahead symbol.  */
2436 YYLTYPE yylloc;
2437
2438   int yystate;
2439   int yyn;
2440   int yyresult;
2441   /* Number of tokens to shift before error messages enabled.  */
2442   int yyerrstatus;
2443   /* Look-ahead token as an internal (translated) token number.  */
2444   int yytoken = 0;
2445 #if YYERROR_VERBOSE
2446   /* Buffer for error messages, and its allocated size.  */
2447   char yymsgbuf[128];
2448   char *yymsg = yymsgbuf;
2449   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2450 #endif
2451
2452   /* Three stacks and their tools:
2453      `yyss': related to states,
2454      `yyvs': related to semantic values,
2455      `yyls': related to locations.
2456
2457      Refer to the stacks thru separate pointers, to allow yyoverflow
2458      to reallocate them elsewhere.  */
2459
2460   /* The state stack.  */
2461   yytype_int16 yyssa[YYINITDEPTH];
2462   yytype_int16 *yyss = yyssa;
2463   yytype_int16 *yyssp;
2464
2465   /* The semantic value stack.  */
2466   YYSTYPE yyvsa[YYINITDEPTH];
2467   YYSTYPE *yyvs = yyvsa;
2468   YYSTYPE *yyvsp;
2469
2470   /* The location stack.  */
2471   YYLTYPE yylsa[YYINITDEPTH];
2472   YYLTYPE *yyls = yylsa;
2473   YYLTYPE *yylsp;
2474   /* The locations where the error started and ended.  */
2475   YYLTYPE yyerror_range[2];
2476
2477 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2478
2479   YYSIZE_T yystacksize = YYINITDEPTH;
2480
2481   /* The variables used to return semantic value and location from the
2482      action routines.  */
2483   YYSTYPE yyval;
2484   YYLTYPE yyloc;
2485
2486   /* The number of symbols on the RHS of the reduced rule.
2487      Keep to zero when no symbol should be popped.  */
2488   int yylen = 0;
2489
2490   YYDPRINTF ((stderr, "Starting parse\n"));
2491
2492   yystate = 0;
2493   yyerrstatus = 0;
2494   yynerrs = 0;
2495   yychar = YYEMPTY;             /* Cause a token to be read.  */
2496
2497   /* Initialize stack pointers.
2498      Waste one element of value and location stack
2499      so that they stay on the same level as the state stack.
2500      The wasted elements are never initialized.  */
2501
2502   yyssp = yyss;
2503   yyvsp = yyvs;
2504   yylsp = yyls;
2505 #if YYLTYPE_IS_TRIVIAL
2506   /* Initialize the default location before parsing starts.  */
2507   yylloc.first_line   = yylloc.last_line   = 1;
2508   yylloc.first_column = yylloc.last_column = 0;
2509 #endif
2510
2511   goto yysetstate;
2512
2513 /*------------------------------------------------------------.
2514 | yynewstate -- Push a new state, which is found in yystate.  |
2515 `------------------------------------------------------------*/
2516  yynewstate:
2517   /* In all cases, when you get here, the value and location stacks
2518      have just been pushed.  So pushing a state here evens the stacks.  */
2519   yyssp++;
2520
2521  yysetstate:
2522   *yyssp = yystate;
2523
2524   if (yyss + yystacksize - 1 <= yyssp)
2525     {
2526       /* Get the current used size of the three stacks, in elements.  */
2527       YYSIZE_T yysize = yyssp - yyss + 1;
2528
2529 #ifdef yyoverflow
2530       {
2531         /* Give user a chance to reallocate the stack.  Use copies of
2532            these so that the &'s don't force the real ones into
2533            memory.  */
2534         YYSTYPE *yyvs1 = yyvs;
2535         yytype_int16 *yyss1 = yyss;
2536         YYLTYPE *yyls1 = yyls;
2537
2538         /* Each stack pointer address is followed by the size of the
2539            data in use in that stack, in bytes.  This used to be a
2540            conditional around just the two extra args, but that might
2541            be undefined if yyoverflow is a macro.  */
2542         yyoverflow (YY_("memory exhausted"),
2543                     &yyss1, yysize * sizeof (*yyssp),
2544                     &yyvs1, yysize * sizeof (*yyvsp),
2545                     &yyls1, yysize * sizeof (*yylsp),
2546                     &yystacksize);
2547         yyls = yyls1;
2548         yyss = yyss1;
2549         yyvs = yyvs1;
2550       }
2551 #else /* no yyoverflow */
2552 # ifndef YYSTACK_RELOCATE
2553       goto yyexhaustedlab;
2554 # else
2555       /* Extend the stack our own way.  */
2556       if (YYMAXDEPTH <= yystacksize)
2557         goto yyexhaustedlab;
2558       yystacksize *= 2;
2559       if (YYMAXDEPTH < yystacksize)
2560         yystacksize = YYMAXDEPTH;
2561
2562       {
2563         yytype_int16 *yyss1 = yyss;
2564         union yyalloc *yyptr =
2565           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2566         if (! yyptr)
2567           goto yyexhaustedlab;
2568         YYSTACK_RELOCATE (yyss);
2569         YYSTACK_RELOCATE (yyvs);
2570         YYSTACK_RELOCATE (yyls);
2571 #  undef YYSTACK_RELOCATE
2572         if (yyss1 != yyssa)
2573           YYSTACK_FREE (yyss1);
2574       }
2575 # endif
2576 #endif /* no yyoverflow */
2577
2578       yyssp = yyss + yysize - 1;
2579       yyvsp = yyvs + yysize - 1;
2580       yylsp = yyls + yysize - 1;
2581
2582       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2583                   (unsigned long int) yystacksize));
2584
2585       if (yyss + yystacksize - 1 <= yyssp)
2586         YYABORT;
2587     }
2588
2589   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2590
2591   goto yybackup;
2592
2593 /*-----------.
2594 | yybackup.  |
2595 `-----------*/
2596 yybackup:
2597
2598   /* Do appropriate processing given the current state.  Read a
2599      look-ahead token if we need one and don't already have one.  */
2600
2601   /* First try to decide what to do without reference to look-ahead token.  */
2602   yyn = yypact[yystate];
2603   if (yyn == YYPACT_NINF)
2604     goto yydefault;
2605
2606   /* Not known => get a look-ahead token if don't already have one.  */
2607
2608   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
2609   if (yychar == YYEMPTY)
2610     {
2611       YYDPRINTF ((stderr, "Reading a token: "));
2612       yychar = YYLEX;
2613     }
2614
2615   if (yychar <= YYEOF)
2616     {
2617       yychar = yytoken = YYEOF;
2618       YYDPRINTF ((stderr, "Now at end of input.\n"));
2619     }
2620   else
2621     {
2622       yytoken = YYTRANSLATE (yychar);
2623       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2624     }
2625
2626   /* If the proper action on seeing token YYTOKEN is to reduce or to
2627      detect an error, take that action.  */
2628   yyn += yytoken;
2629   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2630     goto yydefault;
2631   yyn = yytable[yyn];
2632   if (yyn <= 0)
2633     {
2634       if (yyn == 0 || yyn == YYTABLE_NINF)
2635         goto yyerrlab;
2636       yyn = -yyn;
2637       goto yyreduce;
2638     }
2639
2640   if (yyn == YYFINAL)
2641     YYACCEPT;
2642
2643   /* Count tokens shifted since error; after three, turn off error
2644      status.  */
2645   if (yyerrstatus)
2646     yyerrstatus--;
2647
2648   /* Shift the look-ahead token.  */
2649   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2650
2651   /* Discard the shifted token unless it is eof.  */
2652   if (yychar != YYEOF)
2653     yychar = YYEMPTY;
2654
2655   yystate = yyn;
2656   *++yyvsp = yylval;
2657   *++yylsp = yylloc;
2658   goto yynewstate;
2659
2660
2661 /*-----------------------------------------------------------.
2662 | yydefault -- do the default action for the current state.  |
2663 `-----------------------------------------------------------*/
2664 yydefault:
2665   yyn = yydefact[yystate];
2666   if (yyn == 0)
2667     goto yyerrlab;
2668   goto yyreduce;
2669
2670
2671 /*-----------------------------.
2672 | yyreduce -- Do a reduction.  |
2673 `-----------------------------*/
2674 yyreduce:
2675   /* yyn is the number of a rule to reduce with.  */
2676   yylen = yyr2[yyn];
2677
2678   /* If YYLEN is nonzero, implement the default value of the action:
2679      `$$ = $1'.
2680
2681      Otherwise, the following line sets YYVAL to garbage.
2682      This behavior is undocumented and Bison
2683      users should not rely upon it.  Assigning to YYVAL
2684      unconditionally makes the parser a bit smaller, and it avoids a
2685      GCC warning that YYVAL may be used uninitialized.  */
2686   yyval = yyvsp[1-yylen];
2687
2688   /* Default location.  */
2689   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
2690   YY_REDUCE_PRINT (yyn);
2691   switch (yyn)
2692     {
2693         case 3:
2694 #line 453 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2695     {
2696         ;}
2697     break;
2698
2699   case 4:
2700 #line 455 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2701     {
2702         ;}
2703     break;
2704
2705   case 5:
2706 #line 457 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2707     {
2708                 PARSER->error_level_ = 1;
2709         ;}
2710     break;
2711
2712   case 6:
2713 #line 460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2714     {
2715                 PARSER->error_level_ = 1;
2716         ;}
2717     break;
2718
2719   case 7:
2720 #line 467 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2721     { (yyval.scm) = (yyvsp[(2) - (2)].scm); ;}
2722     break;
2723
2724   case 8:
2725 #line 471 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2726     {
2727                 PARSER->lexer_->set_identifier (ly_symbol2scm ("$defaultheader"), (yyvsp[(1) - (1)].scm));
2728         ;}
2729     break;
2730
2731   case 9:
2732 #line 474 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2733     {
2734                 Book *book = (yyvsp[(1) - (1)].book);
2735                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-book-handler");
2736                 scm_call_2 (proc, PARSER->self_scm (), book->self_scm ());
2737                 book->unprotect ();
2738         ;}
2739     break;
2740
2741   case 10:
2742 #line 480 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2743     {
2744                 Book *bookpart = (yyvsp[(1) - (1)].book);
2745                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-bookpart-handler");
2746                 scm_call_2 (proc, PARSER->self_scm (), bookpart->self_scm ());
2747                 bookpart->unprotect ();
2748         ;}
2749     break;
2750
2751   case 11:
2752 #line 486 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2753     {
2754                 Score *score = (yyvsp[(1) - (1)].score);
2755                 
2756                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-score-handler");
2757                 scm_call_2 (proc, PARSER->self_scm (), score->self_scm ());
2758                 score->unprotect ();
2759         ;}
2760     break;
2761
2762   case 12:
2763 #line 493 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2764     {
2765                 Music *music = unsmob_music ((yyvsp[(1) - (1)].scm));
2766                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-music-handler");
2767                 scm_call_2 (proc, PARSER->self_scm (), music->self_scm ());
2768         ;}
2769     break;
2770
2771   case 13:
2772 #line 498 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2773     {
2774                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-text-handler");
2775                 scm_call_2 (proc, PARSER->self_scm (), scm_list_1 ((yyvsp[(1) - (1)].scm)));
2776         ;}
2777     break;
2778
2779   case 14:
2780 #line 502 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2781     {
2782                 SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-text-handler");
2783                 scm_call_2 (proc, PARSER->self_scm (), (yyvsp[(1) - (1)].scm));
2784         ;}
2785     break;
2786
2787   case 15:
2788 #line 506 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2789     {
2790                 SCM id = SCM_EOL;
2791                 Output_def * od = (yyvsp[(1) - (1)].outputdef);
2792
2793                 if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-paper") == SCM_BOOL_T)
2794                         id = ly_symbol2scm ("$defaultpaper");
2795                 else if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-midi") == SCM_BOOL_T)
2796                         id = ly_symbol2scm ("$defaultmidi");
2797                 else if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-layout") == SCM_BOOL_T)
2798                         id = ly_symbol2scm ("$defaultlayout");
2799
2800                 PARSER->lexer_->set_identifier (id, od->self_scm ());
2801                 od->unprotect();
2802         ;}
2803     break;
2804
2805   case 18:
2806 #line 529 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2807     {
2808                 (yyval.scm) = get_header (PARSER);
2809                 PARSER->lexer_->add_scope ((yyval.scm));
2810         ;}
2811     break;
2812
2813   case 19:
2814 #line 533 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2815     {
2816                 
2817         ;}
2818     break;
2819
2820   case 20:
2821 #line 539 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2822     {
2823                 (yyval.scm) = PARSER->lexer_->remove_scope ();
2824         ;}
2825     break;
2826
2827   case 21:
2828 #line 548 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2829     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
2830     break;
2831
2832   case 22:
2833 #line 549 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2834     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
2835     break;
2836
2837   case 23:
2838 #line 553 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2839     {
2840                 PARSER->lexer_->set_identifier ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
2841
2842 /*
2843  TODO: devise standard for protection in parser.
2844
2845   The parser stack lives on the C-stack, which means that
2846 all objects can be unprotected as soon as they're here.
2847
2848 */
2849         ;}
2850     break;
2851
2852   case 24:
2853 #line 564 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2854     { ;}
2855     break;
2856
2857   case 25:
2858 #line 569 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2859     {
2860                 (yyval.scm) = (yyvsp[(1) - (1)].score)->self_scm ();
2861                 (yyvsp[(1) - (1)].score)->unprotect ();
2862         ;}
2863     break;
2864
2865   case 26:
2866 #line 573 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2867     {
2868                 (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
2869                 (yyvsp[(1) - (1)].book)->unprotect ();
2870         ;}
2871     break;
2872
2873   case 27:
2874 #line 577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2875     {
2876                 (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
2877                 (yyvsp[(1) - (1)].book)->unprotect ();
2878         ;}
2879     break;
2880
2881   case 28:
2882 #line 581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2883     {
2884                 (yyval.scm) = (yyvsp[(1) - (1)].outputdef)->self_scm ();
2885                 (yyvsp[(1) - (1)].outputdef)->unprotect ();
2886         ;}
2887     break;
2888
2889   case 29:
2890 #line 585 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2891     {
2892                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2893         ;}
2894     break;
2895
2896   case 30:
2897 #line 588 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2898     {
2899                 /* Hack: Create event-chord around standalone events.
2900                    Prevents the identifier from being interpreted as a post-event. */
2901                 Music *mus = unsmob_music ((yyvsp[(1) - (1)].scm));
2902                 bool is_event = mus &&
2903                         (scm_memq (ly_symbol2scm ("event"), mus->get_property ("types"))
2904                                 != SCM_BOOL_F);
2905                 if (!is_event)
2906                         (yyval.scm) = (yyvsp[(1) - (1)].scm);
2907                 else
2908                         (yyval.scm) = MAKE_SYNTAX ("event-chord", (yyloc), scm_list_1 ((yyvsp[(1) - (1)].scm)));
2909         ;}
2910     break;
2911
2912   case 31:
2913 #line 600 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2914     {
2915                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2916         ;}
2917     break;
2918
2919   case 32:
2920 #line 603 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2921     {
2922                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2923         ;}
2924     break;
2925
2926   case 33:
2927 #line 606 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2928     {
2929                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2930         ;}
2931     break;
2932
2933   case 34:
2934 #line 609 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2935     {
2936                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2937         ;}
2938     break;
2939
2940   case 35:
2941 #line 612 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2942     {
2943                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2944         ;}
2945     break;
2946
2947   case 36:
2948 #line 615 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2949     {
2950                 (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
2951         ;}
2952     break;
2953
2954   case 37:
2955 #line 622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2956     {
2957                 (yyval.scm) = (yyvsp[(3) - (4)].scm);
2958         ;}
2959     break;
2960
2961   case 38:
2962 #line 628 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2963     {
2964                 (yyval.scm) = Context_def::make_scm ();
2965                 unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
2966         ;}
2967     break;
2968
2969   case 39:
2970 #line 632 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2971     {
2972                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
2973                 unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
2974         ;}
2975     break;
2976
2977   case 40:
2978 #line 636 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2979     {
2980                 Context_def*td = unsmob_context_def ((yyval.scm));
2981
2982                 for (SCM p = (yyvsp[(3) - (3)].scm); scm_is_pair (p); p = scm_cdr (p)) {
2983                         SCM tag = scm_caar (p);
2984
2985                         /* TODO: should make new tag "grob-definition" ? */
2986                         td->add_context_mod (scm_list_3 (ly_symbol2scm ("assign"),
2987                                                         tag, scm_cons (scm_cdar (p), SCM_EOL)));
2988                 }
2989         ;}
2990     break;
2991
2992   case 41:
2993 #line 647 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
2994     {
2995                 unsmob_context_def ((yyval.scm))->add_context_mod ((yyvsp[(2) - (2)].scm));             
2996         ;}
2997     break;
2998
2999   case 42:
3000 #line 655 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3001     {
3002                 (yyval.book) = (yyvsp[(3) - (4)].book);
3003                 pop_paper (PARSER);
3004         ;}
3005     break;
3006
3007   case 43:
3008 #line 665 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3009     {
3010                 (yyval.book) = new Book;
3011                 init_papers (PARSER);
3012                 (yyval.book)->origin ()->set_spot ((yyloc));
3013                 (yyval.book)->paper_ = dynamic_cast<Output_def*> (unsmob_output_def (PARSER->lexer_->lookup_identifier ("$defaultpaper"))->clone ());
3014                 (yyval.book)->paper_->unprotect ();
3015                 push_paper (PARSER, (yyval.book)->paper_);
3016                 (yyval.book)->header_ = PARSER->lexer_->lookup_identifier ("$defaultheader"); 
3017         ;}
3018     break;
3019
3020   case 44:
3021 #line 674 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3022     {
3023                 (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
3024                 (yyval.book)->protect ();
3025                 (yyval.book)->origin ()->set_spot ((yyloc));
3026         ;}
3027     break;
3028
3029   case 45:
3030 #line 679 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3031     {
3032                 (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
3033                 (yyvsp[(2) - (2)].outputdef)->unprotect ();
3034                 set_paper (PARSER, (yyvsp[(2) - (2)].outputdef));
3035         ;}
3036     break;
3037
3038   case 46:
3039 #line 684 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3040     {
3041                 Book *bookpart = (yyvsp[(2) - (2)].book);
3042                 SCM proc = PARSER->lexer_->lookup_identifier ("book-bookpart-handler");
3043                 scm_call_2 (proc, (yyval.book)->self_scm (), bookpart->self_scm ());
3044                 bookpart->unprotect ();
3045         ;}
3046     break;
3047
3048   case 47:
3049 #line 690 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3050     {
3051                 Score *score = (yyvsp[(2) - (2)].score);
3052                 SCM proc = PARSER->lexer_->lookup_identifier ("book-score-handler");
3053                 scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
3054                 score->unprotect ();
3055         ;}
3056     break;
3057
3058   case 48:
3059 #line 696 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3060     {
3061                 Music *music = unsmob_music ((yyvsp[(2) - (2)].scm));
3062                 SCM proc = PARSER->lexer_->lookup_identifier ("book-music-handler");
3063                 scm_call_3 (proc, PARSER->self_scm (), (yyval.book)->self_scm (), music->self_scm ());
3064         ;}
3065     break;
3066
3067   case 49:
3068 #line 701 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3069     {
3070                 SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
3071                 scm_call_2 (proc, (yyval.book)->self_scm (), scm_list_1 ((yyvsp[(2) - (2)].scm)));
3072         ;}
3073     break;
3074
3075   case 50:
3076 #line 705 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3077     {
3078                 SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
3079                 scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
3080         ;}
3081     break;
3082
3083   case 51:
3084 #line 709 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3085     {
3086                 (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
3087         ;}
3088     break;
3089
3090   case 52:
3091 #line 712 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3092     {
3093                 (yyval.book)->paper_ = 0;
3094                 (yyval.book)->scores_ = SCM_EOL;
3095                 (yyval.book)->bookparts_ = SCM_EOL;
3096         ;}
3097     break;
3098
3099   case 53:
3100 #line 717 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3101     {
3102                 (yyval.book)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
3103         ;}
3104     break;
3105
3106   case 54:
3107 #line 723 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3108     {
3109                 (yyval.book) = (yyvsp[(3) - (4)].book);
3110         ;}
3111     break;
3112
3113   case 55:
3114 #line 729 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3115     {
3116                 (yyval.book) = new Book;
3117                 (yyval.book)->origin ()->set_spot ((yyloc));
3118         ;}
3119     break;
3120
3121   case 56:
3122 #line 733 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3123     {
3124                 (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
3125                 (yyval.book)->protect ();
3126                 (yyval.book)->origin ()->set_spot ((yyloc));
3127         ;}
3128     break;
3129
3130   case 57:
3131 #line 738 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3132     {
3133                 (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
3134                 (yyvsp[(2) - (2)].outputdef)->unprotect ();
3135         ;}
3136     break;
3137
3138   case 58:
3139 #line 742 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3140     {
3141                 Score *score = (yyvsp[(2) - (2)].score);
3142                 SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-score-handler");
3143                 scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
3144                 score->unprotect ();
3145         ;}
3146     break;
3147
3148   case 59:
3149 #line 748 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3150     {
3151                 Music *music = unsmob_music ((yyvsp[(2) - (2)].scm));
3152                 SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-music-handler");
3153                 scm_call_3 (proc, PARSER->self_scm (), (yyval.book)->self_scm (), music->self_scm ());
3154         ;}
3155     break;
3156
3157   case 60:
3158 #line 753 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3159     {
3160                 SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
3161                 scm_call_2 (proc, (yyval.book)->self_scm (), scm_list_1 ((yyvsp[(2) - (2)].scm)));
3162         ;}
3163     break;
3164
3165   case 61:
3166 #line 757 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3167     {
3168                 SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
3169                 scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
3170         ;}
3171     break;
3172
3173   case 62:
3174 #line 761 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3175     {
3176                 (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
3177         ;}
3178     break;
3179
3180   case 63:
3181 #line 764 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3182     {
3183                 (yyval.book)->paper_ = 0;
3184                 (yyval.book)->scores_ = SCM_EOL;
3185         ;}
3186     break;
3187
3188   case 64:
3189 #line 768 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3190     {
3191                 (yyval.book)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
3192         ;}
3193     break;
3194
3195   case 65:
3196 #line 774 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3197     {
3198                 (yyval.score) = (yyvsp[(3) - (4)].score);
3199         ;}
3200     break;
3201
3202   case 66:
3203 #line 780 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3204     {
3205                 SCM m = (yyvsp[(1) - (1)].scm);
3206                 SCM scorify = ly_lily_module_constant ("scorify-music");
3207                 SCM score = scm_call_2 (scorify, m, PARSER->self_scm ());
3208
3209                 // pass ownernship to C++ again.
3210                 (yyval.score) = unsmob_score (score);
3211                 (yyval.score)->protect ();
3212                 (yyval.score)->origin ()->set_spot ((yyloc));
3213         ;}
3214     break;
3215
3216   case 67:
3217 #line 790 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3218     {
3219                 (yyval.score) = unsmob_score ((yyvsp[(1) - (1)].scm));
3220                 (yyval.score)->protect ();
3221                 (yyval.score)->origin ()->set_spot ((yyloc));
3222         ;}
3223     break;
3224
3225   case 68:
3226 #line 795 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3227     {
3228                 (yyval.score)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
3229         ;}
3230     break;
3231
3232   case 69:
3233 #line 798 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3234     {
3235                 (yyval.score)->set_header ((yyvsp[(2) - (2)].scm));
3236         ;}
3237     break;
3238
3239   case 70:
3240 #line 801 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3241     {
3242                 if ((yyvsp[(2) - (2)].outputdef)->lookup_variable (ly_symbol2scm ("is-paper")) == SCM_BOOL_T)
3243                 {
3244                         PARSER->parser_error ((yylsp[(2) - (2)]), _("\\paper cannot be used in \\score, use \\layout instead"));
3245                 
3246                 }
3247                 else
3248                 {
3249                         (yyval.score)->add_output_def ((yyvsp[(2) - (2)].outputdef));
3250                 }
3251                 (yyvsp[(2) - (2)].outputdef)->unprotect ();
3252         ;}
3253     break;
3254
3255   case 71:
3256 #line 813 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3257     {
3258                 (yyval.score)->error_found_ = true;
3259         ;}
3260     break;
3261
3262   case 72:
3263 #line 824 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3264     {
3265                 (yyval.outputdef) = (yyvsp[(1) - (1)].outputdef);
3266                 if ((yyval.outputdef)->lookup_variable (ly_symbol2scm ("is-paper")) != SCM_BOOL_T)
3267                 {
3268                         PARSER->parser_error ((yylsp[(1) - (1)]), _ ("need \\paper for paper block"));
3269                         (yyvsp[(1) - (1)].outputdef)->unprotect ();
3270                         (yyval.outputdef) = get_paper (PARSER);
3271                 }
3272         ;}
3273     break;
3274
3275   case 73:
3276 #line 837 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3277     {
3278                 (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
3279
3280                 PARSER->lexer_->remove_scope ();
3281                 PARSER->lexer_->pop_state ();
3282         ;}
3283     break;
3284
3285   case 74:
3286 #line 846 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3287     {
3288                 (yyval.outputdef) = get_paper (PARSER);
3289                 (yyval.outputdef)->input_origin_ = (yyloc);
3290                 PARSER->lexer_->add_scope ((yyval.outputdef)->scope_);
3291         ;}
3292     break;
3293
3294   case 75:
3295 #line 851 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3296     {
3297                 Output_def *p = get_midi (PARSER);
3298                 (yyval.outputdef) = p;
3299                 PARSER->lexer_->add_scope (p->scope_);
3300         ;}
3301     break;
3302
3303   case 76:
3304 #line 856 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3305     {
3306                 Output_def *p = get_layout (PARSER);
3307
3308                 PARSER->lexer_->add_scope (p->scope_);
3309                 (yyval.outputdef) = p;
3310         ;}
3311     break;
3312
3313   case 77:
3314 #line 865 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3315     {
3316                 PARSER->lexer_->push_initial_state ();
3317                 (yyval.outputdef) = (yyvsp[(1) - (1)].outputdef);
3318         ;}
3319     break;
3320
3321   case 78:
3322 #line 872 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3323     {
3324                 (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
3325                 (yyval.outputdef)->input_origin_.set_spot ((yyloc));
3326         ;}
3327     break;
3328
3329   case 79:
3330 #line 876 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3331     {
3332                 (yyvsp[(1) - (3)].outputdef)->unprotect ();
3333
3334                 Output_def *o = unsmob_output_def ((yyvsp[(3) - (3)].scm));
3335                 o->input_origin_.set_spot ((yyloc));
3336                 (yyval.outputdef) = o;
3337                 (yyval.outputdef)->protect ();
3338                 PARSER->lexer_->remove_scope ();
3339                 PARSER->lexer_->add_scope (o->scope_);
3340         ;}
3341     break;
3342
3343   case 80:
3344 #line 886 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3345     {
3346
3347         ;}
3348     break;
3349
3350   case 81:
3351 #line 889 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3352     {
3353                 assign_context_def ((yyval.outputdef), (yyvsp[(2) - (2)].scm));
3354         ;}
3355     break;
3356
3357   case 82:
3358 #line 892 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3359     {
3360
3361         ;}
3362     break;
3363
3364   case 83:
3365 #line 898 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3366     {
3367                 (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), SCM_BOOL_F, (yyvsp[(2) - (4)].scm), scm_int2num ((yyvsp[(4) - (4)].i)));
3368         ;}
3369     break;
3370
3371   case 84:
3372 #line 901 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3373     {
3374                 (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), make_simple_markup((yyvsp[(2) - (5)].scm)), (yyvsp[(3) - (5)].scm), scm_int2num ((yyvsp[(5) - (5)].i)));
3375         ;}
3376     break;
3377
3378   case 85:
3379 #line 904 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3380     {
3381                 (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), scm_int2num ((yyvsp[(5) - (5)].i)));
3382         ;}
3383     break;
3384
3385   case 86:
3386 #line 907 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3387     {
3388                 (yyval.scm) = MAKE_SYNTAX ("tempoText", (yyloc), make_simple_markup((yyvsp[(2) - (2)].scm)) );
3389         ;}
3390     break;
3391
3392   case 87:
3393 #line 910 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3394     {
3395                 (yyval.scm) = MAKE_SYNTAX ("tempoText", (yyloc), (yyvsp[(2) - (2)].scm) );
3396         ;}
3397     break;
3398
3399   case 88:
3400 #line 923 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3401     {
3402                 (yyval.scm) = scm_cons (SCM_EOL, SCM_EOL);
3403         ;}
3404     break;
3405
3406   case 89:
3407 #line 926 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3408     {
3409                 SCM s = (yyval.scm);
3410                 SCM c = scm_cons ((yyvsp[(2) - (2)].scm), SCM_EOL);
3411
3412                 if (scm_is_pair (scm_cdr (s)))
3413                         scm_set_cdr_x (scm_cdr (s), c); /* append */
3414                 else
3415                         scm_set_car_x (s, c); /* set first cons */
3416                 scm_set_cdr_x (s, c);  /* remember last cell */
3417         ;}
3418     break;
3419
3420   case 90:
3421 #line 936 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3422     {
3423
3424         ;}
3425     break;
3426
3427   case 91:
3428 #line 939 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3429     {
3430                 Music *m = MY_MAKE_MUSIC("Music", (yyloc));
3431                 // ugh. code dup 
3432                 m->set_property ("error-found", SCM_BOOL_T);
3433                 SCM s = (yyval.scm);
3434                 SCM c = scm_cons (m->self_scm (), SCM_EOL);
3435                 m->unprotect (); /* UGH */
3436
3437                 if (scm_is_pair (scm_cdr (s)))
3438                         scm_set_cdr_x (scm_cdr (s), c); /* append */
3439                 else
3440                         scm_set_car_x (s, c); /* set first cons */
3441                 scm_set_cdr_x (s, c);  /* remember last cell */
3442         ;}
3443     break;
3444
3445   case 94:
3446 #line 961 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3447     {
3448                 (yyval.scm) = SCM_EOL;
3449         ;}
3450     break;
3451
3452   case 95:
3453 #line 964 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3454     {
3455                 (yyval.scm) = scm_car ((yyvsp[(3) - (4)].scm));
3456         ;}
3457     break;
3458
3459   case 96:
3460 #line 972 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3461     {
3462                 (yyval.scm) = MAKE_SYNTAX ("repeat", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(4) - (5)].scm), (yyvsp[(5) - (5)].scm));
3463         ;}
3464     break;
3465
3466   case 97:
3467 #line 978 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3468     {
3469                 (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
3470         ;}
3471     break;
3472
3473   case 98:
3474 #line 981 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3475     {
3476                 (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
3477         ;}
3478     break;
3479
3480   case 99:
3481 #line 987 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3482     {
3483                 (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
3484         ;}
3485     break;
3486
3487   case 100:
3488 #line 990 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3489     {
3490                 (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
3491         ;}
3492     break;
3493
3494   case 105:
3495 #line 1003 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3496     { (yyval.scm) = SCM_EOL; ;}
3497     break;
3498
3499   case 106:
3500 #line 1004 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3501     { PARSER->lexer_->push_initial_state (); ;}
3502     break;
3503
3504   case 107:
3505 #line 1006 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3506     {
3507                 PARSER->lexer_->pop_state ();
3508                 (yyval.scm) = (yyvsp[(4) - (5)].scm);
3509         ;}
3510     break;
3511
3512   case 108:
3513 #line 1013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3514     { (yyval.scm) = SCM_EOL; ;}
3515     break;
3516
3517   case 109:
3518 #line 1014 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3519     {
3520                  (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
3521         ;}
3522     break;
3523
3524   case 110:
3525 #line 1020 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3526     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3527     break;
3528
3529   case 111:
3530 #line 1021 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3531     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3532     break;
3533
3534   case 112:
3535 #line 1025 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3536     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3537     break;
3538
3539   case 113:
3540 #line 1026 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3541     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3542     break;
3543
3544   case 116:
3545 #line 1039 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3546     {
3547                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
3548         ;}
3549     break;
3550
3551   case 117:
3552 #line 1045 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3553     {
3554                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
3555         ;}
3556     break;
3557
3558   case 118:
3559 #line 1048 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3560     {
3561                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
3562         ;}
3563     break;
3564
3565   case 119:
3566 #line 1053 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3567     {
3568                 (yyval.scm) = SCM_EOL;
3569         ;}
3570     break;
3571
3572   case 120:
3573 #line 1056 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3574     {
3575                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
3576         ;}
3577     break;
3578
3579   case 121:
3580 #line 1059 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3581     {
3582                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
3583         ;}
3584     break;
3585
3586   case 122:
3587 #line 1064 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3588     {
3589                 /* This is for 0-ary functions, so they don't need to
3590                    read a lookahead token */
3591                 (yyval.scm) = SCM_EOL;
3592         ;}
3593     break;
3594
3595   case 125:
3596 #line 1074 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3597     {
3598                 (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
3599         ;}
3600     break;
3601
3602   case 126:
3603 #line 1081 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3604     { (yyval.scm) = SCM_EOL; ;}
3605     break;
3606
3607   case 127:
3608 #line 1082 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3609     {
3610                 (yyval.scm) = (yyvsp[(2) - (2)].scm);
3611         ;}
3612     break;
3613
3614   case 128:
3615 #line 1089 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3616     {
3617                 (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
3618         ;}
3619     break;
3620
3621   case 129:
3622 #line 1092 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3623     {
3624                 (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), (yyvsp[(4) - (5)].scm), SCM_BOOL_F);
3625         ;}
3626     break;
3627
3628   case 130:
3629 #line 1095 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3630     {
3631                 (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), (yyvsp[(4) - (5)].scm), SCM_BOOL_T);
3632         ;}
3633     break;
3634
3635   case 131:
3636 #line 1099 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3637     {
3638                 (yyval.scm) = MAKE_SYNTAX ("time-scaled-music", (yyloc), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
3639         ;}
3640     break;
3641
3642   case 132:
3643 #line 1102 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3644     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3645     break;
3646
3647   case 133:
3648 #line 1103 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3649     {
3650                 Pitch from = *unsmob_pitch ((yyvsp[(2) - (4)].scm));
3651                 Pitch to = *unsmob_pitch ((yyvsp[(3) - (4)].scm));
3652                 SCM pitch = pitch_interval (from, to).smobbed_copy ();
3653                 (yyval.scm) = MAKE_SYNTAX ("transpose-music", (yyloc), pitch, (yyvsp[(4) - (4)].scm));
3654         ;}
3655     break;
3656
3657   case 134:
3658 #line 1109 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3659     {
3660                 if ((yyvsp[(1) - (2)].scm) == ly_symbol2scm ("chords"))
3661                 {
3662                   (yyval.scm) = MAKE_SYNTAX ("unrelativable-music", (yyloc), (yyvsp[(2) - (2)].scm));
3663                 }
3664                 else
3665                 {
3666                   (yyval.scm) = (yyvsp[(2) - (2)].scm);
3667                 }
3668                 PARSER->lexer_->pop_state ();
3669         ;}
3670     break;
3671
3672   case 135:
3673 #line 1120 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3674     {
3675                 (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(1) - (3)].scm), SCM_EOL, (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), SCM_BOOL_T);
3676                 if ((yyvsp[(1) - (3)].scm) == ly_symbol2scm ("ChordNames"))
3677                 {
3678                   (yyval.scm) = MAKE_SYNTAX ("unrelativable-music", (yyloc), (yyval.scm));
3679                 }
3680                 PARSER->lexer_->pop_state ();
3681         ;}
3682     break;
3683
3684   case 136:
3685 #line 1128 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3686     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3687     break;
3688
3689   case 137:
3690 #line 1129 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3691     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3692     break;
3693
3694   case 138:
3695 #line 1133 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3696     {
3697                 SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
3698                 PARSER->lexer_->push_note_state (alist_to_hashq (nn));
3699
3700                 (yyval.scm) = ly_symbol2scm ("notes");
3701         ;}
3702     break;
3703
3704   case 139:
3705 #line 1140 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3706     {
3707                 SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
3708                 PARSER->lexer_->push_note_state (alist_to_hashq (nn));
3709
3710                 (yyval.scm) = ly_symbol2scm ("drums");
3711         ;}
3712     break;
3713
3714   case 140:
3715 #line 1146 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3716     {
3717                 PARSER->lexer_->push_figuredbass_state ();
3718
3719                 (yyval.scm) = ly_symbol2scm ("figures");
3720         ;}
3721     break;
3722
3723   case 141:
3724 #line 1151 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3725     {
3726                 SCM nn = PARSER->lexer_->lookup_identifier ("chordmodifiers");
3727                 PARSER->lexer_->chordmodifier_tab_ = alist_to_hashq (nn);
3728                 nn = PARSER->lexer_->lookup_identifier ("pitchnames");
3729                 PARSER->lexer_->push_chord_state (alist_to_hashq (nn));
3730                 (yyval.scm) = ly_symbol2scm ("chords");
3731
3732         ;}
3733     break;
3734
3735   case 142:
3736 #line 1160 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3737     { PARSER->lexer_->push_lyric_state ();
3738                 (yyval.scm) = ly_symbol2scm ("lyrics");
3739         ;}
3740     break;
3741
3742   case 143:
3743 #line 1166 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3744     {
3745                 SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
3746                 PARSER->lexer_->push_note_state (alist_to_hashq (nn));
3747
3748                 (yyval.scm) = ly_symbol2scm ("DrumStaff");
3749         ;}
3750     break;
3751
3752   case 144:
3753 #line 1172 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3754     {
3755                 PARSER->lexer_->push_figuredbass_state ();
3756
3757                 (yyval.scm) = ly_symbol2scm ("FiguredBass");
3758         ;}
3759     break;
3760
3761   case 145:
3762 #line 1177 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3763     {
3764                 SCM nn = PARSER->lexer_->lookup_identifier ("chordmodifiers");
3765                 PARSER->lexer_->chordmodifier_tab_ = alist_to_hashq (nn);
3766                 nn = PARSER->lexer_->lookup_identifier ("pitchnames");
3767                 PARSER->lexer_->push_chord_state (alist_to_hashq (nn));
3768                 (yyval.scm) = ly_symbol2scm ("ChordNames");
3769         ;}
3770     break;
3771
3772   case 146:
3773 #line 1185 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3774     { PARSER->lexer_->push_lyric_state ();
3775                 (yyval.scm) = ly_symbol2scm ("Lyrics");
3776         ;}
3777     break;
3778
3779   case 147:
3780 #line 1192 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3781     {
3782                 Pitch start = *unsmob_pitch ((yyvsp[(2) - (3)].scm));
3783                 (yyval.scm) = make_music_relative (start, (yyvsp[(3) - (3)].scm), (yyloc));
3784         ;}
3785     break;
3786
3787   case 148:
3788 #line 1196 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3789     {
3790                 Pitch middle_c (0, 0, 0);
3791                 (yyval.scm) = make_music_relative (middle_c, (yyvsp[(2) - (2)].scm), (yyloc));
3792         ;}
3793     break;
3794
3795   case 149:
3796 #line 1203 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3797     { PARSER->lexer_->push_lyric_state (); ;}
3798     break;
3799
3800   case 150:
3801 #line 1205 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3802     {
3803         /* Can also use music at the expensive of two S/Rs similar to
3804            \repeat \alternative */
3805                 PARSER->lexer_->pop_state ();
3806
3807                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), SCM_EOL);
3808         ;}
3809     break;
3810
3811   case 151:
3812 #line 1212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3813     {
3814                 PARSER->lexer_->push_lyric_state ();
3815         ;}
3816     break;
3817
3818   case 152:
3819 #line 1214 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3820     {
3821                 PARSER->lexer_->pop_state ();
3822                 (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(1) - (4)].scm));
3823         ;}
3824     break;
3825
3826   case 153:
3827 #line 1221 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3828     {
3829                 (yyval.scm) = MAKE_SYNTAX ("add-lyrics", (yyloc), (yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
3830         ;}
3831     break;
3832
3833   case 154:
3834 #line 1224 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3835     {
3836                 PARSER->lexer_->push_lyric_state ();
3837         ;}
3838     break;
3839
3840   case 155:
3841 #line 1226 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3842     {
3843                 PARSER->lexer_->pop_state ();
3844                 (yyval.scm) = MAKE_SYNTAX ("lyric-combine", (yyloc), (yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm));
3845         ;}
3846     break;
3847
3848   case 156:
3849 #line 1233 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3850     {
3851                 (yyval.scm) = MAKE_SYNTAX ("context-change", (yyloc), scm_string_to_symbol ((yyvsp[(2) - (4)].scm)), (yyvsp[(4) - (4)].scm));
3852         ;}
3853     break;
3854
3855   case 157:
3856 #line 1240 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3857     {
3858                 (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL);
3859         ;}
3860     break;
3861
3862   case 158:
3863 #line 1243 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3864     {
3865                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
3866         ;}
3867     break;
3868
3869   case 159:
3870 #line 1249 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3871     {
3872                 (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
3873         ;}
3874     break;
3875
3876   case 160:
3877 #line 1255 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3878     {
3879                 (yyval.scm) = scm_list_3 (ly_symbol2scm ("assign"),
3880                         scm_string_to_symbol ((yyvsp[(1) - (3)].scm)), (yyvsp[(3) - (3)].scm));
3881         ;}
3882     break;
3883
3884   case 161:
3885 #line 1259 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3886     {
3887                 (yyval.scm) = scm_list_2 (ly_symbol2scm ("unset"),
3888                         scm_string_to_symbol ((yyvsp[(2) - (2)].scm)));
3889         ;}
3890     break;
3891
3892   case 162:
3893 #line 1263 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3894     {
3895                 (yyval.scm) = scm_append (scm_list_2 (scm_list_3 (ly_symbol2scm ("push"),
3896                                                         scm_string_to_symbol ((yyvsp[(2) - (5)].scm)), (yyvsp[(5) - (5)].scm)),
3897                                              (yyvsp[(3) - (5)].scm)));
3898         ;}
3899     break;
3900
3901   case 163:
3902 #line 1268 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3903     {
3904                 (yyval.scm) = scm_list_3 (ly_symbol2scm ("pop"),
3905                         scm_string_to_symbol ((yyvsp[(2) - (3)].scm)), (yyvsp[(3) - (3)].scm));
3906         ;}
3907     break;
3908
3909   case 164:
3910 #line 1275 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3911     { (yyval.scm) = ly_symbol2scm ("consists"); ;}
3912     break;
3913
3914   case 165:
3915 #line 1276 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3916     { (yyval.scm) = ly_symbol2scm ("remove"); ;}
3917     break;
3918
3919   case 166:
3920 #line 1278 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3921     { (yyval.scm) = ly_symbol2scm ("accepts"); ;}
3922     break;
3923
3924   case 167:
3925 #line 1279 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3926     { (yyval.scm) = ly_symbol2scm ("default-child"); ;}
3927     break;
3928
3929   case 168:
3930 #line 1280 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3931     { (yyval.scm) = ly_symbol2scm ("denies"); ;}
3932     break;
3933
3934   case 169:
3935 #line 1282 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3936     { (yyval.scm) = ly_symbol2scm ("alias"); ;}
3937     break;
3938
3939   case 170:
3940 #line 1283 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3941     { (yyval.scm) = ly_symbol2scm ("translator-type"); ;}
3942     break;
3943
3944   case 171:
3945 #line 1284 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3946     { (yyval.scm) = ly_symbol2scm ("description"); ;}
3947     break;
3948
3949   case 172:
3950 #line 1285 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3951     { (yyval.scm) = ly_symbol2scm ("context-name"); ;}
3952     break;
3953
3954   case 173:
3955 #line 1289 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3956     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
3957     break;
3958
3959   case 174:
3960 #line 1290 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3961     {
3962                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
3963         ;}
3964     break;
3965
3966   case 175:
3967 #line 1296 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3968     {
3969                 if (!is_regular_identifier ((yyvsp[(1) - (1)].scm)))
3970                 {
3971                         (yyloc).error (_("Grob name should be alphanumeric"));
3972                 }
3973
3974                 (yyval.scm) = scm_list_2 (ly_symbol2scm ("Bottom"),
3975                         scm_string_to_symbol ((yyvsp[(1) - (1)].scm)));
3976         ;}
3977     break;
3978
3979   case 176:
3980 #line 1305 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3981     {
3982                 (yyval.scm) = scm_list_2 (scm_string_to_symbol ((yyvsp[(1) - (3)].scm)),
3983                         scm_string_to_symbol ((yyvsp[(3) - (3)].scm)));
3984         ;}
3985     break;
3986
3987   case 177:
3988 #line 1312 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
3989     {
3990                 (yyval.scm) = scm_append (scm_list_2 (scm_list_n (scm_car ((yyvsp[(2) - (5)].scm)),                     
3991                                 ly_symbol2scm ("OverrideProperty"),
3992                                 scm_cadr ((yyvsp[(2) - (5)].scm)),
3993                                 (yyvsp[(5) - (5)].scm), SCM_UNDEFINED),
3994                                 (yyvsp[(3) - (5)].scm)));
3995         ;}
3996     break;
3997
3998   case 178:
3999 #line 1319 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4000     {
4001                 (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (3)].scm)),
4002                         ly_symbol2scm ("RevertProperty"),
4003                         scm_cadr ((yyvsp[(2) - (3)].scm)),
4004                         (yyvsp[(3) - (3)].scm));
4005         ;}
4006     break;
4007
4008   case 179:
4009 #line 1325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4010     {
4011                 (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (4)].scm)),
4012                         ly_symbol2scm ("PropertySet"),
4013                         scm_cadr ((yyvsp[(2) - (4)].scm)),
4014                         (yyvsp[(4) - (4)].scm));
4015         ;}
4016     break;
4017
4018   case 180:
4019 #line 1331 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4020     {
4021                 (yyval.scm) = scm_list_3 (scm_car ((yyvsp[(2) - (2)].scm)),
4022                         ly_symbol2scm ("PropertyUnset"),
4023                         scm_cadr ((yyvsp[(2) - (2)].scm)));
4024         ;}
4025     break;
4026
4027   case 181:
4028 #line 1339 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4029     {
4030                 (yyval.scm) = LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("property-operation"), scm_cons (PARSER->self_scm (), scm_cons2 (make_input ((yyloc)), SCM_BOOL_F, (yyvsp[(1) - (1)].scm))));
4031         ;}
4032     break;
4033
4034   case 182:
4035 #line 1342 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4036     {
4037                 (yyval.scm) = LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("property-operation"), scm_cons (PARSER->self_scm (), scm_cons2 (make_input ((yyloc)), SCM_BOOL_T, (yyvsp[(2) - (2)].scm))));
4038         ;}
4039     break;
4040
4041   case 183:
4042 #line 1348 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4043     {
4044                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4045         ;}
4046     break;
4047
4048   case 184:
4049 #line 1351 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4050     {
4051                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4052         ;}
4053     break;
4054
4055   case 185:
4056 #line 1354 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4057     {
4058                 (yyval.scm) = scm_string_append (scm_list_2 ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm)));
4059         ;}
4060     break;
4061
4062   case 186:
4063 #line 1359 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4064     {
4065                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4066         ;}
4067     break;
4068
4069   case 187:
4070 #line 1362 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4071     {
4072                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4073         ;}
4074     break;
4075
4076   case 188:
4077 #line 1365 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4078     {
4079                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4080         ;}
4081     break;
4082
4083   case 189:
4084 #line 1370 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4085     {
4086                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4087         ;}
4088     break;
4089
4090   case 190:
4091 #line 1373 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4092     {
4093                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4094         ;}
4095     break;
4096
4097   case 191:
4098 #line 1376 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4099     {
4100                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4101         ;}
4102     break;
4103
4104   case 192:
4105 #line 1379 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4106     {
4107                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4108         ;}
4109     break;
4110
4111   case 193:
4112 #line 1382 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4113     {
4114                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4115         ;}
4116     break;
4117
4118   case 194:
4119 #line 1385 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4120     {
4121                 (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
4122         ;}
4123     break;
4124
4125   case 195:
4126 #line 1394 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4127     {
4128                 SCM elts = ly_append2 ((yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
4129
4130                 Input i;
4131                 /* why is this giving wrong start location? -ns
4132                  * i = @$; */
4133                 i.set_location ((yylsp[(1) - (2)]), (yylsp[(2) - (2)]));
4134                 (yyval.scm) = MAKE_SYNTAX ("event-chord", i, elts);
4135         ;}
4136     break;
4137
4138   case 196:
4139 #line 1403 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4140     {
4141                 Input i;
4142                 i.set_location ((yylsp[(1) - (3)]), (yylsp[(3) - (3)]));
4143                 (yyval.scm) = MAKE_SYNTAX ("multi-measure-rest", i, (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
4144         ;}
4145     break;
4146
4147   case 199:
4148 #line 1415 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4149     {
4150                 Music *m = unsmob_music ((yyvsp[(1) - (3)].scm));
4151                 SCM dur = unsmob_duration ((yyvsp[(2) - (3)].scm))->smobbed_copy ();
4152                 SCM es = m->get_property ("elements");
4153                 SCM postevs = scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL);
4154                 
4155                 for (SCM s = es; scm_is_pair (s); s = scm_cdr (s))
4156                   unsmob_music (scm_car (s))->set_property ("duration", dur);
4157                 es = ly_append2 (es, postevs);
4158
4159                 m-> set_property ("elements", es);
4160                 m->set_spot ((yyloc));
4161                 (yyval.scm) = m->self_scm ();
4162         ;}
4163     break;
4164
4165   case 200:
4166 #line 1433 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4167     {
4168                 (yyval.scm) = MAKE_SYNTAX ("event-chord", (yyloc), scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL));
4169         ;}
4170     break;
4171
4172   case 201:
4173 #line 1439 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4174     { (yyval.scm) = SCM_EOL; ;}
4175     break;
4176
4177   case 202:
4178 #line 1440 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4179     {
4180                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
4181         ;}
4182     break;
4183
4184   case 203:
4185 #line 1447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4186     {
4187                 int q = (yyvsp[(3) - (5)].i);
4188                 int ex = (yyvsp[(2) - (5)].i);
4189                 SCM check = (yyvsp[(4) - (5)].scm);
4190                 SCM post = (yyvsp[(5) - (5)].scm);
4191
4192                 Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
4193                 n->set_property ("pitch", (yyvsp[(1) - (5)].scm));
4194                 if (q % 2)
4195                         n->set_property ("cautionary", SCM_BOOL_T);
4196                 if (ex % 2 || q % 2)
4197                         n->set_property ("force-accidental", SCM_BOOL_T);
4198
4199                 if (scm_is_pair (post)) {
4200                         SCM arts = scm_reverse_x (post, SCM_EOL);
4201                         n->set_property ("articulations", arts);
4202                 }
4203                 if (scm_is_number (check))
4204                 {
4205                         int q = scm_to_int (check);
4206                         n->set_property ("absolute-octave", scm_from_int (q-1));
4207                 }
4208
4209                 (yyval.scm) = n->unprotect ();
4210         ;}
4211     break;
4212
4213   case 204:
4214 #line 1472 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4215     {
4216                 Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
4217                 n->set_property ("duration", (yyvsp[(2) - (2)].scm));
4218                 n->set_property ("drum-type", (yyvsp[(1) - (2)].scm));
4219
4220                 if (scm_is_pair ((yyvsp[(2) - (2)].scm))) {
4221                         SCM arts = scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL);
4222                         n->set_property ("articulations", arts);
4223                 }
4224                 (yyval.scm) = n->unprotect ();
4225         ;}
4226     break;
4227
4228   case 205:
4229 #line 1483 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4230     { 
4231                 (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
4232         ;}
4233     break;
4234
4235   case 206:
4236 #line 1488 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4237     {
4238                 SCM sig = scm_object_property (yylval.scm, ly_symbol2scm ("music-function-signature"));
4239                 if (scm_is_pair (sig) && to_boolean (scm_memq (ly_music_p_proc, scm_cdr (scm_reverse (sig)))))
4240                 {
4241                         PARSER->parser_error ((yyloc), "Music function applied to event may not have a Music argument, except as the last argument.");
4242                 }
4243         ;}
4244     break;
4245
4246   case 207:
4247 #line 1501 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4248     {
4249                 (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (4)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(3) - (4)].scm), scm_list_1 ((yyvsp[(4) - (4)].scm))));
4250         ;}
4251     break;
4252
4253   case 208:
4254 #line 1504 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4255     {
4256                 (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
4257         ;}
4258     break;
4259
4260   case 209:
4261 #line 1513 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4262     {
4263                 (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (4)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(3) - (4)].scm), scm_list_1 ((yyvsp[(4) - (4)].scm))));
4264         ;}
4265     break;
4266
4267   case 210:
4268 #line 1516 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4269     {
4270                 (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
4271         ;}
4272     break;
4273
4274   case 211:
4275 #line 1522 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4276     {
4277                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4278         ;}
4279     break;
4280
4281   case 212:
4282 #line 1525 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4283     {
4284                 (yyval.scm) = MAKE_SYNTAX ("skip-music", (yyloc), (yyvsp[(2) - (2)].scm));
4285         ;}
4286     break;
4287
4288   case 213:
4289 #line 1528 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4290     {
4291                 Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
4292                 m->set_property ("span-direction", scm_from_int (START));
4293                 (yyval.scm) = m->unprotect();
4294         ;}
4295     break;
4296
4297   case 214:
4298 #line 1533 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4299     {
4300                 Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
4301                 m->set_property ("span-direction", scm_from_int (STOP));
4302                 (yyval.scm) = m->unprotect ();
4303         ;}
4304     break;
4305
4306   case 215:
4307 #line 1538 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4308     {
4309                 (yyval.scm) = MAKE_SYNTAX ("voice-separator", (yyloc), SCM_UNDEFINED);
4310         ;}
4311     break;
4312
4313   case 216:
4314 #line 1541 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4315     {
4316                 SCM pipe = PARSER->lexer_->lookup_identifier ("pipeSymbol");
4317
4318                 Music *m = unsmob_music (pipe);
4319                 if (m)
4320                 {
4321                         m = m->clone ();
4322                         m->set_spot ((yyloc));
4323                         (yyval.scm) = m->unprotect ();
4324                 }
4325                 else
4326                         (yyval.scm) = MAKE_SYNTAX ("bar-check", (yyloc), SCM_UNDEFINED);
4327
4328         ;}
4329     break;
4330
4331   case 217:
4332 #line 1555 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4333     {
4334                 Moment m = - unsmob_duration ((yyvsp[(2) - (2)].scm))->get_length ();
4335                 (yyval.scm) = MAKE_SYNTAX ("property-operation", (yyloc), SCM_BOOL_F, ly_symbol2scm ("Timing"), ly_symbol2scm ("PropertySet"), ly_symbol2scm ("measurePosition"), m.smobbed_copy ());
4336                 (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), ly_symbol2scm ("Score"), SCM_BOOL_F, (yyval.scm), SCM_EOL, SCM_BOOL_F);
4337         ;}
4338     break;
4339
4340   case 218:
4341 #line 1561 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4342     {
4343                 SCM proc = ly_lily_module_constant ("make-time-signature-set");
4344
4345                 (yyval.scm) = scm_apply_2   (proc, scm_car ((yyvsp[(2) - (2)].scm)), scm_cdr ((yyvsp[(2) - (2)].scm)), SCM_EOL);
4346         ;}
4347     break;
4348
4349   case 219:
4350 #line 1566 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4351     {
4352                 SCM proc = ly_lily_module_constant ("make-mark-set");
4353
4354                 (yyval.scm) = scm_call_1 (proc, (yyvsp[(2) - (2)].scm));
4355         ;}
4356     break;
4357
4358   case 220:
4359 #line 1574 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4360     {
4361                 (yyval.scm) = MY_MAKE_MUSIC ("PesOrFlexaEvent", (yyloc))->unprotect ();
4362         ;}
4363     break;
4364
4365   case 221:
4366 #line 1577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4367     {
4368                 Music *m = MY_MAKE_MUSIC ("MarkEvent", (yyloc));
4369                 (yyval.scm) = m->unprotect ();
4370         ;}
4371     break;
4372
4373   case 222:
4374 #line 1581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4375     {
4376                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4377         ;}
4378     break;
4379
4380   case 223:
4381 #line 1584 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4382     {
4383                 Music *key = MY_MAKE_MUSIC ("KeyChangeEvent", (yyloc));
4384                 (yyval.scm) = key->unprotect ();
4385         ;}
4386     break;
4387
4388   case 224:
4389 #line 1588 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4390     {
4391
4392                 Music *key = MY_MAKE_MUSIC ("KeyChangeEvent", (yyloc));
4393                 if (scm_ilength ((yyvsp[(3) - (3)].scm)) > 0)
4394                 {               
4395                         key->set_property ("pitch-alist", (yyvsp[(3) - (3)].scm));
4396                         key->set_property ("tonic", Pitch (0, 0, 0).smobbed_copy ());
4397                         key->transpose (* unsmob_pitch ((yyvsp[(2) - (3)].scm)));
4398                 } else {
4399                         PARSER->parser_error ((yylsp[(3) - (3)]), _ ("second argument must be pitch list"));
4400                 }
4401
4402                 (yyval.scm) = key->unprotect ();
4403         ;}
4404     break;
4405
4406   case 225:
4407 #line 1606 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4408     {
4409                 (yyval.scm) = SCM_EOL;
4410         ;}
4411     break;
4412
4413   case 226:
4414 #line 1609 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4415     {
4416                 unsmob_music ((yyvsp[(2) - (2)].scm))->set_spot ((yylsp[(2) - (2)]));
4417                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyval.scm));
4418         ;}
4419     break;
4420
4421   case 227:
4422 #line 1616 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4423     {
4424                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4425         ;}
4426     break;
4427
4428   case 228:
4429 #line 1619 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4430     {
4431                 (yyval.scm) = run_music_function (PARSER, (yyvsp[(2) - (2)].scm));
4432         ;}
4433     break;
4434
4435   case 229:
4436 #line 1622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4437     {
4438                 if (!PARSER->lexer_->is_lyric_state ())
4439                         PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
4440                 (yyval.scm) = MY_MAKE_MUSIC ("HyphenEvent", (yyloc))->unprotect ();
4441         ;}
4442     break;
4443
4444   case 230:
4445 #line 1627 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4446     {
4447                 if (!PARSER->lexer_->is_lyric_state ())
4448                         PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
4449                 (yyval.scm) = MY_MAKE_MUSIC ("ExtenderEvent", (yyloc))->unprotect ();
4450         ;}
4451     break;
4452
4453   case 231:
4454 #line 1632 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4455     {
4456                 if ((yyvsp[(1) - (2)].i))
4457                 {
4458                         Music *m = unsmob_music ((yyvsp[(2) - (2)].scm));
4459                         m->set_property ("direction", scm_from_int ((yyvsp[(1) - (2)].i)));
4460                 }
4461                 (yyval.scm) = (yyvsp[(2) - (2)].scm);
4462         ;}
4463     break;
4464
4465   case 232:
4466 #line 1640 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4467     {
4468                 if ((yyvsp[(1) - (2)].i))
4469                 {
4470                         Music *m = unsmob_music ((yyvsp[(2) - (2)].scm));
4471                         m->set_property ("direction", scm_from_int ((yyvsp[(1) - (2)].i)));
4472                 }
4473                 (yyval.scm) = (yyvsp[(2) - (2)].scm);
4474         ;}
4475     break;
4476
4477   case 234:
4478 #line 1652 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4479     {
4480                 Music *s = MY_MAKE_MUSIC ("StringNumberEvent", (yyloc));
4481                 s->set_property ("string-number", scm_from_int ((yyvsp[(1) - (1)].i)));
4482                 (yyval.scm) = s->unprotect ();
4483         ;}
4484     break;
4485
4486   case 235:
4487 #line 1660 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4488     {
4489                 (yyval.scm) = ly_symbol2scm ("bracketOpenSymbol");
4490         ;}
4491     break;
4492
4493   case 236:
4494 #line 1663 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4495     {
4496                 (yyval.scm) = ly_symbol2scm ("bracketCloseSymbol"); 
4497         ;}
4498     break;
4499
4500   case 237:
4501 #line 1666 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4502     {
4503                 (yyval.scm) = ly_symbol2scm ("tildeSymbol");
4504         ;}
4505     break;
4506
4507   case 238:
4508 #line 1669 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4509     {
4510                 (yyval.scm) = ly_symbol2scm ("parenthesisOpenSymbol");
4511         ;}
4512     break;
4513
4514   case 239:
4515 #line 1672 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4516     {
4517                 (yyval.scm) = ly_symbol2scm ("parenthesisCloseSymbol");
4518         ;}
4519     break;
4520
4521   case 240:
4522 #line 1675 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4523     {
4524                 (yyval.scm) = ly_symbol2scm ("escapedExclamationSymbol");
4525         ;}
4526     break;
4527
4528   case 241:
4529 #line 1678 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4530     {
4531                 (yyval.scm) = ly_symbol2scm ("escapedParenthesisOpenSymbol");
4532         ;}
4533     break;
4534
4535   case 242:
4536 #line 1681 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4537     {
4538                 (yyval.scm) = ly_symbol2scm ("escapedParenthesisCloseSymbol");
4539         ;}
4540     break;
4541
4542   case 243:
4543 #line 1684 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4544     {
4545                 (yyval.scm) = ly_symbol2scm ("escapedBiggerSymbol");
4546         ;}
4547     break;
4548
4549   case 244:
4550 #line 1687 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4551     {
4552                 (yyval.scm) = ly_symbol2scm ("escapedSmallerSymbol");
4553         ;}
4554     break;
4555
4556   case 245:
4557 #line 1693 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4558     {
4559                 SCM predefd = PARSER->lexer_->lookup_identifier_symbol ((yyvsp[(1) - (1)].scm));
4560                 Music *m = 0;
4561                 if (unsmob_music (predefd))
4562                 {
4563                         m = unsmob_music (predefd)->clone ();
4564                         m->set_spot ((yyloc));
4565                 }
4566                 else
4567                 {
4568                         m = MY_MAKE_MUSIC ("Music", (yyloc));
4569                 }
4570                 (yyval.scm) = m->unprotect ();
4571         ;}
4572     break;
4573
4574   case 246:
4575 #line 1707 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4576     {
4577                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4578         ;}
4579     break;
4580
4581   case 247:
4582 #line 1710 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4583     {
4584                Music *a = MY_MAKE_MUSIC ("TremoloEvent", (yyloc));
4585                a->set_property ("tremolo-type", scm_from_int ((yyvsp[(1) - (1)].i)));
4586                (yyval.scm) = a->unprotect ();
4587         ;}
4588     break;
4589
4590   case 248:
4591 #line 1718 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4592     {
4593                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4594         ;}
4595     break;
4596
4597   case 249:
4598 #line 1721 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4599     {
4600                 SCM s = PARSER->lexer_->lookup_identifier ("dash" + ly_scm2string ((yyvsp[(1) - (1)].scm)));
4601                 Music *a = MY_MAKE_MUSIC ("ArticulationEvent", (yyloc));
4602                 if (scm_is_string (s))
4603                         a->set_property ("articulation-type", s);
4604                 else PARSER->parser_error ((yylsp[(1) - (1)]), _ ("expecting string as script definition"));
4605                 (yyval.scm) = a->unprotect ();
4606         ;}
4607     break;
4608
4609   case 250:
4610 #line 1732 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4611     { (yyval.scm) = SCM_EOL; ;}
4612     break;
4613
4614   case 251:
4615 #line 1733 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4616     { (yyval.scm) = scm_from_int (0); ;}
4617     break;
4618
4619   case 252:
4620 #line 1734 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4621     { (yyval.scm) = scm_from_int (-(yyvsp[(2) - (2)].i)); ;}
4622     break;
4623
4624   case 253:
4625 #line 1735 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4626     { (yyval.scm) = scm_from_int ((yyvsp[(2) - (2)].i)); ;}
4627     break;
4628
4629   case 254:
4630 #line 1739 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4631     {
4632                 (yyval.i) = 1;
4633         ;}
4634     break;
4635
4636   case 255:
4637 #line 1742 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4638     {
4639                 (yyval.i) ++;
4640         ;}
4641     break;
4642
4643   case 256:
4644 #line 1748 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4645     {
4646                 (yyval.i) = 1;
4647         ;}
4648     break;
4649
4650   case 257:
4651 #line 1751 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4652     {
4653                 (yyval.i)++;
4654         ;}
4655     break;
4656
4657   case 258:
4658 #line 1757 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4659     {
4660                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4661         ;}
4662     break;
4663
4664   case 259:
4665 #line 1760 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4666     {
4667                 Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
4668                 p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
4669                 (yyval.scm) = p.smobbed_copy ();
4670         ;}
4671     break;
4672
4673   case 260:
4674 #line 1765 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4675     {
4676                 Pitch p =* unsmob_pitch ((yyvsp[(1) - (2)].scm));
4677                 p = p.transposed (Pitch (-(yyvsp[(2) - (2)].i),0,0));
4678                 (yyval.scm) = p.smobbed_copy ();
4679         ;}
4680     break;
4681
4682   case 261:
4683 #line 1777 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4684     {
4685                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4686         ;}
4687     break;
4688
4689   case 262:
4690 #line 1780 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4691     {
4692                 Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
4693                 p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
4694                 (yyval.scm) = p.smobbed_copy ();
4695         ;}
4696     break;
4697
4698   case 263:
4699 #line 1785 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4700     {
4701                 Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
4702
4703                 p = p.transposed (Pitch (-(yyvsp[(2) - (2)].i),0,0));
4704                 (yyval.scm) = p.smobbed_copy ();
4705         ;}
4706     break;
4707
4708   case 264:
4709 #line 1794 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4710     {
4711                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4712         ;}
4713     break;
4714
4715   case 267:
4716 #line 1805 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4717     {
4718                 Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
4719                 t->set_property ("text", (yyvsp[(1) - (1)].scm));
4720                 (yyval.scm) = t->unprotect ();
4721         ;}
4722     break;
4723
4724   case 268:
4725 #line 1810 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4726     {
4727                 Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
4728                 t->set_property ("text",
4729                         make_simple_markup ((yyvsp[(1) - (1)].scm)));
4730                 (yyval.scm) = t->unprotect ();
4731         ;}
4732     break;
4733
4734   case 269:
4735 #line 1816 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4736     {
4737                 Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yyloc));
4738                 t->set_property ("digit", scm_from_int ((yyvsp[(1) - (1)].i)));
4739                 (yyval.scm) = t->unprotect ();
4740         ;}
4741     break;
4742
4743   case 270:
4744 #line 1824 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4745     {
4746                 (yyval.scm) = scm_from_locale_string ("Hat");
4747         ;}
4748     break;
4749
4750   case 271:
4751 #line 1827 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4752     {
4753                 (yyval.scm) = scm_from_locale_string ("Plus");
4754         ;}
4755     break;
4756
4757   case 272:
4758 #line 1830 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4759     {
4760                 (yyval.scm) = scm_from_locale_string ("Dash");
4761         ;}
4762     break;
4763
4764   case 273:
4765 #line 1833 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4766     {
4767                 (yyval.scm) = scm_from_locale_string ("Bar");
4768         ;}
4769     break;
4770
4771   case 274:
4772 #line 1836 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4773     {
4774                 (yyval.scm) = scm_from_locale_string ("Larger");
4775         ;}
4776     break;
4777
4778   case 275:
4779 #line 1839 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4780     {
4781                 (yyval.scm) = scm_from_locale_string ("Dot");
4782         ;}
4783     break;
4784
4785   case 276:
4786 #line 1842 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4787     {
4788                 (yyval.scm) = scm_from_locale_string ("Underscore");
4789         ;}
4790     break;
4791
4792   case 277:
4793 #line 1848 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4794     { (yyval.i) = DOWN; ;}
4795     break;
4796
4797   case 278:
4798 #line 1849 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4799     { (yyval.i) = UP; ;}
4800     break;
4801
4802   case 279:
4803 #line 1850 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4804     { (yyval.i) = CENTER; ;}
4805     break;
4806
4807   case 280:
4808 #line 1855 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4809     {
4810                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4811         ;}
4812     break;
4813
4814   case 281:
4815 #line 1861 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4816     {
4817                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4818         ;}
4819     break;
4820
4821   case 282:
4822 #line 1867 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4823     {
4824                 Duration dd = PARSER->default_duration_;
4825                 (yyval.scm) = dd.smobbed_copy ();
4826         ;}
4827     break;
4828
4829   case 283:
4830 #line 1871 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4831     {
4832                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4833                 PARSER->default_duration_ = *unsmob_duration ((yyval.scm));
4834         ;}
4835     break;
4836
4837   case 284:
4838 #line 1878 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4839     {
4840                 int len = 0;
4841                 if (!is_duration ((yyvsp[(1) - (2)].i)))
4842                         PARSER->parser_error ((yylsp[(1) - (2)]), _f ("not a duration: %d", (yyvsp[(1) - (2)].i)));
4843                 else
4844                         len = intlog2 ((yyvsp[(1) - (2)].i));
4845
4846                 (yyval.scm) = Duration (len, (yyvsp[(2) - (2)].i)).smobbed_copy ();
4847         ;}
4848     break;
4849
4850   case 285:
4851 #line 1887 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4852     {
4853                 Duration *d = unsmob_duration ((yyvsp[(1) - (2)].scm));
4854                 Duration k (d->duration_log (), d->dot_count () + (yyvsp[(2) - (2)].i));
4855                 *d = k;
4856                 (yyval.scm) = (yyvsp[(1) - (2)].scm);
4857         ;}
4858     break;
4859
4860   case 286:
4861 #line 1896 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4862     {
4863                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
4864         ;}
4865     break;
4866
4867   case 287:
4868 #line 1899 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4869     {
4870                 (yyval.scm) = unsmob_duration ((yyval.scm))->compressed ( (yyvsp[(3) - (3)].i)) .smobbed_copy ();
4871         ;}
4872     break;
4873
4874   case 288:
4875 #line 1902 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4876     {
4877                 Rational  m (scm_to_int (scm_car ((yyvsp[(3) - (3)].scm))), scm_to_int (scm_cdr ((yyvsp[(3) - (3)].scm))));
4878
4879                 (yyval.scm) = unsmob_duration ((yyval.scm))->compressed (m).smobbed_copy ();
4880         ;}
4881     break;
4882
4883   case 289:
4884 #line 1910 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4885     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
4886     break;
4887
4888   case 290:
4889 #line 1911 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4890     {
4891                 (yyval.scm) = scm_cons (scm_from_int ((yyvsp[(1) - (3)].i)), scm_from_int ((yyvsp[(3) - (3)].i)));
4892         ;}
4893     break;
4894
4895   case 291:
4896 #line 1917 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4897     {
4898                 (yyval.i) = 0;
4899         ;}
4900     break;
4901
4902   case 292:
4903 #line 1920 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4904     {
4905                 (yyval.i) ++;
4906         ;}
4907     break;
4908
4909   case 293:
4910 #line 1926 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4911     {
4912                 (yyval.i) = 0;
4913         ;}
4914     break;
4915
4916   case 294:
4917 #line 1929 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4918     {
4919                 if (!is_duration ((yyvsp[(2) - (2)].i)))
4920                         PARSER->parser_error ((yylsp[(2) - (2)]), _f ("not a duration: %d", (yyvsp[(2) - (2)].i)));
4921                 (yyval.i) = (yyvsp[(2) - (2)].i);
4922         ;}
4923     break;
4924
4925   case 295:
4926 #line 1937 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4927     {
4928                 (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
4929         ;}
4930     break;
4931
4932   case 296:
4933 #line 1940 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4934     {
4935                 (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
4936         ;}
4937     break;
4938
4939   case 297:
4940 #line 1943 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4941     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
4942     break;
4943
4944   case 298:
4945 #line 1944 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4946     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
4947     break;
4948
4949   case 299:
4950 #line 1948 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4951     { (yyval.scm) = ly_rational2scm (FLAT_ALTERATION); ;}
4952     break;
4953
4954   case 300:
4955 #line 1949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4956     { (yyval.scm) = ly_rational2scm (SHARP_ALTERATION); ;}
4957     break;
4958
4959   case 301:
4960 #line 1950 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4961     { (yyval.scm) = scm_from_int (0); ;}
4962     break;
4963
4964   case 302:
4965 #line 1954 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4966     {
4967                 Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
4968                 (yyval.scm) = bfr->unprotect ();
4969         ;}
4970     break;
4971
4972   case 303:
4973 #line 1958 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4974     {
4975                 Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
4976                 (yyval.scm) = bfr->self_scm ();
4977
4978                 if (scm_is_number ((yyvsp[(1) - (1)].scm)))
4979                         bfr->set_property ("figure", (yyvsp[(1) - (1)].scm));
4980                 else if (Text_interface::is_markup ((yyvsp[(1) - (1)].scm)))
4981                         bfr->set_property ("text", (yyvsp[(1) - (1)].scm));
4982
4983                 bfr->unprotect ();
4984         ;}
4985     break;
4986
4987   case 304:
4988 #line 1969 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4989     {
4990                 (yyval.scm) = (yyvsp[(1) - (2)].scm);
4991                 unsmob_music ((yyvsp[(1) - (2)].scm))->set_property ("bracket-stop", SCM_BOOL_T);
4992         ;}
4993     break;
4994
4995   case 305:
4996 #line 1973 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
4997     {
4998                 Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
4999                 if (scm_to_double ((yyvsp[(2) - (2)].scm))) {
5000                         SCM salter = m->get_property ("alteration");
5001                         SCM alter = scm_is_number (salter) ? salter : scm_from_int (0);
5002                         m->set_property ("alteration",
5003                                          scm_sum (alter, (yyvsp[(2) - (2)].scm)));
5004                 } else {
5005                         m->set_property ("alteration", scm_from_int (0));
5006                 }
5007         ;}
5008     break;
5009
5010   case 306:
5011 #line 1984 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5012     {
5013                 Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
5014                 if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("plus"))
5015                         {
5016                         m->set_property ("augmented", SCM_BOOL_T);
5017                         }
5018                 else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("slash"))
5019                         {
5020                         m->set_property ("diminished", SCM_BOOL_T);
5021                         }
5022                 else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("exclamation"))
5023                         {
5024                         m->set_property ("no-continuation", SCM_BOOL_T);
5025                         }
5026                 else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("backslash"))
5027                         {
5028                         m->set_property ("augmented-slash", SCM_BOOL_T);
5029                         }
5030         ;}
5031     break;
5032
5033   case 307:
5034 #line 2007 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5035     {
5036                 (yyval.scm) = ly_symbol2scm ("plus");
5037         ;}
5038     break;
5039
5040   case 308:
5041 #line 2010 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5042     {
5043                 (yyval.scm) = ly_symbol2scm ("exclamation");
5044         ;}
5045     break;
5046
5047   case 309:
5048 #line 2013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5049     {
5050                 (yyval.scm) = ly_symbol2scm ("slash");
5051         ;}
5052     break;
5053
5054   case 310:
5055 #line 2016 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5056     {
5057                 (yyval.scm) = ly_symbol2scm ("backslash");
5058         ;}
5059     break;
5060
5061   case 311:
5062 #line 2022 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5063     {
5064                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5065         ;}
5066     break;
5067
5068   case 312:
5069 #line 2025 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5070     {
5071                 (yyval.scm) = (yyvsp[(2) - (2)].scm);
5072                 unsmob_music ((yyval.scm))->set_property ("bracket-start", SCM_BOOL_T);
5073         ;}
5074     break;
5075
5076   case 313:
5077 #line 2032 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5078     {
5079                 (yyval.scm) = SCM_EOL;
5080         ;}
5081     break;
5082
5083   case 314:
5084 #line 2035 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5085     {
5086                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
5087         ;}
5088     break;
5089
5090   case 315:
5091 #line 2041 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5092     {
5093                 (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
5094         ;}
5095     break;
5096
5097   case 316:
5098 #line 2048 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5099     { (yyval.i) = 0; ;}
5100     break;
5101
5102   case 317:
5103 #line 2049 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5104     { (yyval.i) = 1; ;}
5105     break;
5106
5107   case 318:
5108 #line 2053 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5109     {
5110                 if (!PARSER->lexer_->is_note_state ())
5111                         PARSER->parser_error ((yylsp[(1) - (6)]), _ ("have to be in Note mode for notes"));
5112
5113                 Music *n = 0;
5114                 if ((yyvsp[(6) - (6)].i))
5115                         n = MY_MAKE_MUSIC ("RestEvent", (yyloc));
5116                 else
5117                         n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
5118                 
5119                 n->set_property ("pitch", (yyvsp[(1) - (6)].scm));
5120                 n->set_property ("duration", (yyvsp[(5) - (6)].scm));
5121
5122                 if (scm_is_number ((yyvsp[(4) - (6)].scm)))
5123                 {
5124                         int q = scm_to_int ((yyvsp[(4) - (6)].scm));
5125                         n->set_property ("absolute-octave", scm_from_int (q-1));
5126                 }
5127
5128                 if ((yyvsp[(3) - (6)].i) % 2)
5129                         n->set_property ("cautionary", SCM_BOOL_T);
5130                 if ((yyvsp[(2) - (6)].i) % 2 || (yyvsp[(3) - (6)].i) % 2)
5131                         n->set_property ("force-accidental", SCM_BOOL_T);
5132
5133                 (yyval.scm) = n->unprotect ();
5134         ;}
5135     break;
5136
5137   case 319:
5138 #line 2079 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5139     {
5140                 Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
5141                 n->set_property ("duration", (yyvsp[(2) - (2)].scm));
5142                 n->set_property ("drum-type", (yyvsp[(1) - (2)].scm));
5143
5144                 (yyval.scm) = n->unprotect ();          
5145         ;}
5146     break;
5147
5148   case 320:
5149 #line 2086 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5150     {
5151                 Music *ev = 0;
5152                 if (ly_scm2string ((yyvsp[(1) - (2)].scm)) == "s") {
5153                         /* Space */
5154                         ev = MY_MAKE_MUSIC ("SkipEvent", (yyloc));
5155                   }
5156                 else {
5157                         ev = MY_MAKE_MUSIC ("RestEvent", (yyloc));
5158                 
5159                     }
5160                 ev->set_property ("duration", (yyvsp[(2) - (2)].scm));
5161                 (yyval.scm) = ev->unprotect ();
5162         ;}
5163     break;
5164
5165   case 321:
5166 #line 2099 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5167     {
5168                 if (!PARSER->lexer_->is_lyric_state ())
5169                         PARSER->parser_error ((yylsp[(1) - (2)]), _ ("have to be in Lyric mode for lyrics"));
5170
5171                 Music *levent = MY_MAKE_MUSIC ("LyricEvent", (yyloc));
5172                 levent->set_property ("text", (yyvsp[(1) - (2)].scm));
5173                 levent->set_property ("duration",(yyvsp[(2) - (2)].scm));
5174                 (yyval.scm)= levent->unprotect ();
5175         ;}
5176     break;
5177
5178   case 322:
5179 #line 2111 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5180     {
5181                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5182         ;}
5183     break;
5184
5185   case 323:
5186 #line 2114 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5187     {
5188                 if (!PARSER->lexer_->is_chord_state ())
5189                         PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Chord mode for chords"));
5190                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5191         ;}
5192     break;
5193
5194   case 324:
5195 #line 2119 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5196     {
5197                 for (SCM s = (yyvsp[(1) - (2)].scm); scm_is_pair (s); s = scm_cdr (s))
5198                 {
5199                         unsmob_music (scm_car (s))->set_property ("duration", (yyvsp[(2) - (2)].scm));
5200                 }
5201                 (yyval.scm) = (yyvsp[(1) - (2)].scm);
5202         ;}
5203     break;
5204
5205   case 325:
5206 #line 2129 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5207     {
5208                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5209         ;}
5210     break;
5211
5212   case 326:
5213 #line 2132 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5214     {
5215                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5216         ;}
5217     break;
5218
5219   case 327:
5220 #line 2138 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5221     {
5222                 (yyval.scm) = make_chord_elements ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm), SCM_EOL);
5223         ;}
5224     break;
5225
5226   case 328:
5227 #line 2141 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5228     {
5229                 SCM its = scm_reverse_x ((yyvsp[(4) - (4)].scm), SCM_EOL);
5230                 (yyval.scm) = make_chord_elements ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), scm_cons ((yyvsp[(3) - (4)].scm), its));
5231         ;}
5232     break;
5233
5234   case 329:
5235 #line 2148 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5236     {
5237                 (yyval.scm) = SCM_EOL;          
5238         ;}
5239     break;
5240
5241   case 330:
5242 #line 2151 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5243     {
5244                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyval.scm));
5245         ;}
5246     break;
5247
5248   case 331:
5249 #line 2157 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5250     {
5251                 (yyval.scm) = ly_symbol2scm ("chord-colon");
5252         ;}
5253     break;
5254
5255   case 332:
5256 #line 2160 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5257     {
5258                 (yyval.scm) = ly_symbol2scm ("chord-caret");
5259         ;}
5260     break;
5261
5262   case 333:
5263 #line 2163 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5264     {
5265                 (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-slash"), (yyvsp[(2) - (2)].scm));
5266         ;}
5267     break;
5268
5269   case 334:
5270 #line 2166 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5271     {
5272                 (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-bass"), (yyvsp[(2) - (2)].scm));
5273         ;}
5274     break;
5275
5276   case 335:
5277 #line 2172 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5278     {
5279                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5280         ;}
5281     break;
5282
5283   case 336:
5284 #line 2175 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5285     {
5286                 (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
5287         ;}
5288     break;
5289
5290   case 337:
5291 #line 2178 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5292     {
5293                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5294         ;}
5295     break;
5296
5297   case 338:
5298 #line 2184 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5299     { (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL); ;}
5300     break;
5301
5302   case 339:
5303 #line 2185 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5304     {
5305                 (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyval.scm));
5306         ;}
5307     break;
5308
5309   case 340:
5310 #line 2191 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5311     {
5312                 (yyval.scm) = make_chord_step ((yyvsp[(1) - (1)].i), 0);
5313         ;}
5314     break;
5315
5316   case 341:
5317 #line 2194 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5318     {
5319                 (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), SHARP_ALTERATION);
5320         ;}
5321     break;
5322
5323   case 342:
5324 #line 2197 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5325     {
5326                 (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), FLAT_ALTERATION);
5327         ;}
5328     break;
5329
5330   case 343:
5331 #line 2209 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5332     {
5333                 (yyval.scm) = scm_sum ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
5334         ;}
5335     break;
5336
5337   case 344:
5338 #line 2212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5339     {
5340                 (yyval.scm) = scm_difference ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
5341         ;}
5342     break;
5343
5344   case 346:
5345 #line 2219 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5346     {
5347                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5348         ;}
5349     break;
5350
5351   case 347:
5352 #line 2222 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5353     {
5354                 (yyval.scm) = scm_product ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
5355         ;}
5356     break;
5357
5358   case 348:
5359 #line 2225 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5360     {
5361                 (yyval.scm) = scm_divide ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
5362         ;}
5363     break;
5364
5365   case 349:
5366 #line 2231 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5367     { /* %prec UNARY_MINUS */
5368                 (yyval.scm) = scm_difference ((yyvsp[(2) - (2)].scm), SCM_UNDEFINED);
5369         ;}
5370     break;
5371
5372   case 351:
5373 #line 2239 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5374     {
5375                 (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
5376         ;}
5377     break;
5378
5379   case 352:
5380 #line 2242 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5381     {
5382                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5383         ;}
5384     break;
5385
5386   case 353:
5387 #line 2245 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5388     {
5389                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5390         ;}
5391     break;
5392
5393   case 354:
5394 #line 2248 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5395     {
5396                 (yyval.scm) = scm_from_double (scm_to_double ((yyvsp[(1) - (2)].scm)) *scm_to_double ((yyvsp[(2) - (2)].scm)));
5397         ;}
5398     break;
5399
5400   case 355:
5401 #line 2251 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5402     {
5403                 (yyval.scm) = scm_from_double ((yyvsp[(1) - (2)].i) *scm_to_double ((yyvsp[(2) - (2)].scm)));
5404         ;}
5405     break;
5406
5407   case 356:
5408 #line 2258 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5409     {
5410                         (yyval.i) = (yyvsp[(1) - (1)].i);
5411         ;}
5412     break;
5413
5414   case 357:
5415 #line 2261 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5416     {
5417                 (yyval.i) = (yyvsp[(1) - (1)].i);
5418         ;}
5419     break;
5420
5421   case 358:
5422 #line 2267 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5423     { (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i)); ;}
5424     break;
5425
5426   case 359:
5427 #line 2268 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5428     {
5429                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5430         ;}
5431     break;
5432
5433   case 360:
5434 #line 2275 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5435     { (yyval.i) = 0; ;}
5436     break;
5437
5438   case 361:
5439 #line 2276 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5440     { (yyval.i) ++; ;}
5441     break;
5442
5443   case 362:
5444 #line 2280 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5445     { (yyval.i) = 0; ;}
5446     break;
5447
5448   case 363:
5449 #line 2281 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5450     { (yyval.i) ++; ;}
5451     break;
5452
5453   case 364:
5454 #line 2289 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5455     {
5456                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5457         ;}
5458     break;
5459
5460   case 365:
5461 #line 2293 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5462     { PARSER->lexer_->push_markup_state (); ;}
5463     break;
5464
5465   case 366:
5466 #line 2294 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5467     {
5468                 (yyval.scm) = (yyvsp[(3) - (3)].scm);
5469                 PARSER->lexer_->pop_state ();
5470         ;}
5471     break;
5472
5473   case 367:
5474 #line 2302 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5475     { PARSER->lexer_->push_markup_state (); ;}
5476     break;
5477
5478   case 368:
5479 #line 2303 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5480     {
5481                 (yyval.scm) = (yyvsp[(3) - (3)].scm);
5482                 PARSER->lexer_->pop_state ();
5483         ;}
5484     break;
5485
5486   case 369:
5487 #line 2310 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5488     {
5489                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5490         ;}
5491     break;
5492
5493   case 370:
5494 #line 2314 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5495     { PARSER->lexer_->push_markup_state (); ;}
5496     break;
5497
5498   case 371:
5499 #line 2315 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5500     {
5501                 (yyval.scm) = (yyvsp[(3) - (3)].scm);
5502                 PARSER->lexer_->pop_state ();
5503         ;}
5504     break;
5505
5506   case 372:
5507 #line 2322 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5508     { 
5509                 (yyval.scm) = scm_list_2 (ly_lily_module_constant ("line-markup"),  (yyvsp[(1) - (1)].scm)); 
5510         ;}
5511     break;
5512
5513   case 373:
5514 #line 2325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5515     {
5516                 (yyval.scm) = scm_car (scm_call_2 (ly_lily_module_constant ("map-markup-command-list"), (yyvsp[(1) - (2)].scm), scm_list_1 ((yyvsp[(2) - (2)].scm))));
5517         ;}
5518     break;
5519
5520   case 374:
5521 #line 2328 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5522     {
5523                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5524         ;}
5525     break;
5526
5527   case 375:
5528 #line 2334 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5529     {
5530                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5531         ;}
5532     break;
5533
5534   case 376:
5535 #line 2337 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5536     {
5537                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5538         ;}
5539     break;
5540
5541   case 377:
5542 #line 2340 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5543     {
5544                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5545         ;}
5546     break;
5547
5548   case 378:
5549 #line 2346 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5550     {
5551                 (yyval.scm) = scm_call_2 (ly_lily_module_constant ("map-markup-command-list"), (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
5552                 
5553         ;}
5554     break;
5555
5556   case 379:
5557 #line 2353 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5558     {
5559                 (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
5560         ;}
5561     break;
5562
5563   case 380:
5564 #line 2359 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5565     {  (yyval.scm) = SCM_EOL; ;}
5566     break;
5567
5568   case 381:
5569 #line 2360 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5570     {
5571                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
5572         ;}
5573     break;
5574
5575   case 382:
5576 #line 2363 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5577     {
5578                 (yyval.scm) = scm_append_x (scm_list_2 (scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL), (yyvsp[(1) - (2)].scm)));
5579         ;}
5580     break;
5581
5582   case 383:
5583 #line 2369 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5584     {
5585                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5586         ;}
5587     break;
5588
5589   case 384:
5590 #line 2372 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5591     {
5592                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
5593         ;}
5594     break;
5595
5596   case 385:
5597 #line 2375 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5598     {
5599                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
5600         ;}
5601     break;
5602
5603   case 386:
5604 #line 2378 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5605     {
5606                 (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
5607         ;}
5608     break;
5609
5610   case 387:
5611 #line 2381 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5612     {
5613                 (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
5614         ;}
5615     break;
5616
5617   case 388:
5618 #line 2387 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5619     {
5620                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5621         ;}
5622     break;
5623
5624   case 389:
5625 #line 2390 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5626     {
5627                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
5628         ;}
5629     break;
5630
5631   case 390:
5632 #line 2393 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5633     {
5634                 (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
5635         ;}
5636     break;
5637
5638   case 391:
5639 #line 2399 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5640     {
5641                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5642         ;}
5643     break;
5644
5645   case 392:
5646 #line 2402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5647     {
5648                 (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
5649         ;}
5650     break;
5651
5652   case 393:
5653 #line 2408 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5654     {
5655                 (yyval.scm) = make_simple_markup ((yyvsp[(1) - (1)].scm));
5656         ;}
5657     break;
5658
5659   case 394:
5660 #line 2411 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5661     {
5662                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5663         ;}
5664     break;
5665
5666   case 395:
5667 #line 2414 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5668     {
5669                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5670         ;}
5671     break;
5672
5673   case 396:
5674 #line 2417 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5675     {
5676                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5677         ;}
5678     break;
5679
5680   case 397:
5681 #line 2420 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5682     {
5683                 SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
5684                 PARSER->lexer_->push_note_state (alist_to_hashq (nn));
5685         ;}
5686     break;
5687
5688   case 398:
5689 #line 2423 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5690     {
5691                 Score * sc = (yyvsp[(4) - (5)].score);
5692                 (yyval.scm) = scm_list_2 (ly_lily_module_constant ("score-markup"), sc->self_scm ());
5693                 sc->unprotect ();
5694                 PARSER->lexer_->pop_state ();
5695         ;}
5696     break;
5697
5698   case 399:
5699 #line 2429 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5700     {
5701                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
5702         ;}
5703     break;
5704
5705   case 400:
5706 #line 2432 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5707     {
5708                 (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
5709         ;}
5710     break;
5711
5712   case 401:
5713 #line 2435 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5714     {
5715                 (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
5716         ;}
5717     break;
5718
5719   case 402:
5720 #line 2438 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5721     {
5722                 (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
5723         ;}
5724     break;
5725
5726   case 403:
5727 #line 2441 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5728     {
5729                 (yyval.scm) = scm_list_5 ((yyvsp[(1) - (5)].scm), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(4) - (5)].scm), (yyvsp[(5) - (5)].scm));
5730         ;}
5731     break;
5732
5733   case 404:
5734 #line 2444 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5735     {
5736                 (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
5737         ;}
5738     break;
5739
5740   case 405:
5741 #line 2447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5742     {
5743                 (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm),(yyvsp[(2) - (2)].scm));
5744         ;}
5745     break;
5746
5747   case 406:
5748 #line 2450 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5749     {
5750                 (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
5751         ;}
5752     break;
5753
5754   case 407:
5755 #line 2456 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5756     {
5757                 SCM mapper = ly_lily_module_constant ("map-markup-command-list");
5758                 (yyval.scm) = scm_car (scm_call_2 (mapper, (yyvsp[(1) - (2)].scm), scm_list_1 ((yyvsp[(2) - (2)].scm))));
5759         ;}
5760     break;
5761
5762   case 408:
5763 #line 2460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5764     {
5765                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
5766         ;}
5767     break;
5768
5769
5770 /* Line 1267 of yacc.c.  */
5771 #line 5772 "out/parser.cc"
5772       default: break;
5773     }
5774   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5775
5776   YYPOPSTACK (yylen);
5777   yylen = 0;
5778   YY_STACK_PRINT (yyss, yyssp);
5779
5780   *++yyvsp = yyval;
5781   *++yylsp = yyloc;
5782
5783   /* Now `shift' the result of the reduction.  Determine what state
5784      that goes to, based on the state we popped back to and the rule
5785      number reduced by.  */
5786
5787   yyn = yyr1[yyn];
5788
5789   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5790   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5791     yystate = yytable[yystate];
5792   else
5793     yystate = yydefgoto[yyn - YYNTOKENS];
5794
5795   goto yynewstate;
5796
5797
5798 /*------------------------------------.
5799 | yyerrlab -- here on detecting error |
5800 `------------------------------------*/
5801 yyerrlab:
5802   /* If not already recovering from an error, report this error.  */
5803   if (!yyerrstatus)
5804     {
5805       ++yynerrs;
5806 #if ! YYERROR_VERBOSE
5807       yyerror (YY_("syntax error"));
5808 #else
5809       {
5810         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5811         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5812           {
5813             YYSIZE_T yyalloc = 2 * yysize;
5814             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5815               yyalloc = YYSTACK_ALLOC_MAXIMUM;
5816             if (yymsg != yymsgbuf)
5817               YYSTACK_FREE (yymsg);
5818             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5819             if (yymsg)
5820               yymsg_alloc = yyalloc;
5821             else
5822               {
5823                 yymsg = yymsgbuf;
5824                 yymsg_alloc = sizeof yymsgbuf;
5825               }
5826           }
5827
5828         if (0 < yysize && yysize <= yymsg_alloc)
5829           {
5830             (void) yysyntax_error (yymsg, yystate, yychar);
5831             yyerror (yymsg);
5832           }
5833         else
5834           {
5835             yyerror (YY_("syntax error"));
5836             if (yysize != 0)
5837               goto yyexhaustedlab;
5838           }
5839       }
5840 #endif
5841     }
5842
5843   yyerror_range[0] = yylloc;
5844
5845   if (yyerrstatus == 3)
5846     {
5847       /* If just tried and failed to reuse look-ahead token after an
5848          error, discard it.  */
5849
5850       if (yychar <= YYEOF)
5851         {
5852           /* Return failure if at end of input.  */
5853           if (yychar == YYEOF)
5854             YYABORT;
5855         }
5856       else
5857         {
5858           yydestruct ("Error: discarding",
5859                       yytoken, &yylval, &yylloc);
5860           yychar = YYEMPTY;
5861         }
5862     }
5863
5864   /* Else will try to reuse look-ahead token after shifting the error
5865      token.  */
5866   goto yyerrlab1;
5867
5868
5869 /*---------------------------------------------------.
5870 | yyerrorlab -- error raised explicitly by YYERROR.  |
5871 `---------------------------------------------------*/
5872 yyerrorlab:
5873
5874   /* Pacify compilers like GCC when the user code never invokes
5875      YYERROR and the label yyerrorlab therefore never appears in user
5876      code.  */
5877   if (/*CONSTCOND*/ 0)
5878      goto yyerrorlab;
5879
5880   yyerror_range[0] = yylsp[1-yylen];
5881   /* Do not reclaim the symbols of the rule which action triggered
5882      this YYERROR.  */
5883   YYPOPSTACK (yylen);
5884   yylen = 0;
5885   YY_STACK_PRINT (yyss, yyssp);
5886   yystate = *yyssp;
5887   goto yyerrlab1;
5888
5889
5890 /*-------------------------------------------------------------.
5891 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
5892 `-------------------------------------------------------------*/
5893 yyerrlab1:
5894   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5895
5896   for (;;)
5897     {
5898       yyn = yypact[yystate];
5899       if (yyn != YYPACT_NINF)
5900         {
5901           yyn += YYTERROR;
5902           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5903             {
5904               yyn = yytable[yyn];
5905               if (0 < yyn)
5906                 break;
5907             }
5908         }
5909
5910       /* Pop the current state because it cannot handle the error token.  */
5911       if (yyssp == yyss)
5912         YYABORT;
5913
5914       yyerror_range[0] = *yylsp;
5915       yydestruct ("Error: popping",
5916                   yystos[yystate], yyvsp, yylsp);
5917       YYPOPSTACK (1);
5918       yystate = *yyssp;
5919       YY_STACK_PRINT (yyss, yyssp);
5920     }
5921
5922   if (yyn == YYFINAL)
5923     YYACCEPT;
5924
5925   *++yyvsp = yylval;
5926
5927   yyerror_range[1] = yylloc;
5928   /* Using YYLLOC is tempting, but would change the location of
5929      the look-ahead.  YYLOC is available though.  */
5930   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
5931   *++yylsp = yyloc;
5932
5933   /* Shift the error token.  */
5934   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5935
5936   yystate = yyn;
5937   goto yynewstate;
5938
5939
5940 /*-------------------------------------.
5941 | yyacceptlab -- YYACCEPT comes here.  |
5942 `-------------------------------------*/
5943 yyacceptlab:
5944   yyresult = 0;
5945   goto yyreturn;
5946
5947 /*-----------------------------------.
5948 | yyabortlab -- YYABORT comes here.  |
5949 `-----------------------------------*/
5950 yyabortlab:
5951   yyresult = 1;
5952   goto yyreturn;
5953
5954 #ifndef yyoverflow
5955 /*-------------------------------------------------.
5956 | yyexhaustedlab -- memory exhaustion comes here.  |
5957 `-------------------------------------------------*/
5958 yyexhaustedlab:
5959   yyerror (YY_("memory exhausted"));
5960   yyresult = 2;
5961   /* Fall through.  */
5962 #endif
5963
5964 yyreturn:
5965   if (yychar != YYEOF && yychar != YYEMPTY)
5966      yydestruct ("Cleanup: discarding lookahead",
5967                  yytoken, &yylval, &yylloc);
5968   /* Do not reclaim the symbols of the rule which action triggered
5969      this YYABORT or YYACCEPT.  */
5970   YYPOPSTACK (yylen);
5971   YY_STACK_PRINT (yyss, yyssp);
5972   while (yyssp != yyss)
5973     {
5974       yydestruct ("Cleanup: popping",
5975                   yystos[*yyssp], yyvsp, yylsp);
5976       YYPOPSTACK (1);
5977     }
5978 #ifndef yyoverflow
5979   if (yyss != yyssa)
5980     YYSTACK_FREE (yyss);
5981 #endif
5982 #if YYERROR_VERBOSE
5983   if (yymsg != yymsgbuf)
5984     YYSTACK_FREE (yymsg);
5985 #endif
5986   /* Make sure YYID is used.  */
5987   return YYID (yyresult);
5988 }
5989
5990
5991 #line 2465 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
5992
5993
5994 void
5995 Lily_parser::set_yydebug (bool x)
5996 {
5997         yydebug = x;
5998 }
5999
6000 void
6001 Lily_parser::do_yyparse ()
6002 {
6003         yyparse ((void*)this);
6004 }
6005
6006
6007
6008
6009
6010 /*
6011
6012 It is a little strange to have this function in this file, but
6013 otherwise, we have to import music classes into the lexer.
6014
6015 */
6016 int
6017 Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
6018 {
6019         if (scm_is_string (sid)) {
6020                 *destination = sid;
6021                 return STRING_IDENTIFIER;
6022         } else if (unsmob_book (sid)) {
6023                 Book *book =  unsmob_book (sid)->clone ();
6024                 *destination = book->self_scm ();
6025                 book->unprotect ();
6026
6027                 return BOOK_IDENTIFIER;
6028         } else if (scm_is_number (sid)) {
6029                 *destination = sid;
6030                 return NUMBER_IDENTIFIER;
6031         } else if (unsmob_context_def (sid)) {
6032                 Context_def *def= unsmob_context_def (sid)->clone ();
6033
6034                 *destination = def->self_scm ();
6035                 def->unprotect ();
6036                 
6037                 return CONTEXT_DEF_IDENTIFIER;
6038         } else if (unsmob_score (sid)) {
6039                 Score *score = new Score (*unsmob_score (sid));
6040                 *destination = score->self_scm ();
6041
6042                 score->unprotect ();
6043                 return SCORE_IDENTIFIER;
6044         } else if (Music *mus = unsmob_music (sid)) {
6045                 mus = mus->clone ();
6046                 *destination = mus->self_scm ();
6047                 unsmob_music (*destination)->
6048                         set_property ("origin", make_input (last_input_));
6049
6050                 bool is_event = scm_memq (ly_symbol2scm ("event"), mus->get_property ("types"))
6051                         != SCM_BOOL_F;
6052
6053                 mus->unprotect ();
6054                 return is_event ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER;
6055         } else if (unsmob_duration (sid)) {
6056                 *destination = unsmob_duration (sid)->smobbed_copy ();
6057                 return DURATION_IDENTIFIER;
6058         } else if (unsmob_output_def (sid)) {
6059                 Output_def *p = unsmob_output_def (sid);
6060                 p = p->clone ();
6061         
6062                 *destination = p->self_scm ();
6063                 p->unprotect ();
6064                 return OUTPUT_DEF_IDENTIFIER;
6065         } else if (Text_interface::is_markup (sid)) {
6066                 *destination = sid;
6067                 if (is_lyric_state ())
6068                         return LYRIC_MARKUP_IDENTIFIER;
6069                 return MARKUP_IDENTIFIER;
6070         }
6071
6072         return -1;      
6073 }
6074
6075 SCM
6076 get_next_unique_context_id ()
6077 {
6078         return scm_from_locale_string ("$uniqueContextId");
6079 }
6080
6081
6082 SCM
6083 get_next_unique_lyrics_context_id ()
6084 {
6085         static int new_context_count;
6086         char s[128];
6087         snprintf (s, sizeof (s)-1, "uniqueContext%d", new_context_count++);
6088         return scm_from_locale_string (s);
6089 }
6090
6091
6092 SCM
6093 run_music_function (Lily_parser *parser, SCM expr)
6094 {
6095         SCM func = scm_car (expr);
6096         Input *loc = unsmob_input (scm_cadr (expr));
6097         SCM args = scm_cddr (expr);
6098         SCM sig = scm_object_property (func, ly_symbol2scm ("music-function-signature"));
6099
6100         SCM type_check_proc = ly_lily_module_constant ("type-check-list");
6101
6102         if (!to_boolean (scm_call_3  (type_check_proc, scm_cadr (expr), sig, args)))
6103         {
6104                 parser->error_level_ = 1;
6105                 return LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("void-music"), scm_list_2 (parser->self_scm (), make_input (*loc)));
6106         }
6107
6108         SCM syntax_args = scm_list_4 (parser->self_scm (), make_input (*loc), func, args);
6109         return LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("music-function"), syntax_args);
6110 }
6111
6112 bool
6113 is_regular_identifier (SCM id)
6114 {
6115   string str = ly_scm2string (id);
6116   char const *s = str.c_str ();
6117
6118   bool v = true;
6119 #if 0
6120   isalpha (*s);
6121   s++;
6122 #endif
6123   while (*s && v)
6124    {
6125         v = v && isalnum (*s);
6126         s++;
6127    }
6128   return v;
6129 }
6130
6131 Music *
6132 make_music_with_input (SCM name, Input where)
6133 {
6134        Music *m = make_music_by_name (name);
6135        m->set_spot (where);
6136        return m;
6137 }
6138
6139 SCM
6140 get_first_context_id (SCM type, Music *m)
6141 {
6142         SCM id = m->get_property ("context-id");
6143         if (SCM_BOOL_T == scm_equal_p (m->get_property ("context-type"), type)
6144             && scm_is_string (m->get_property ("context-id"))
6145             && scm_c_string_length (id) > 0)
6146         {
6147                 return id;
6148         }
6149         return SCM_EOL;
6150 }
6151
6152 SCM
6153 make_simple_markup (SCM a)
6154 {
6155         return a;
6156 }
6157
6158 bool
6159 is_duration (int t)
6160 {
6161   return t && t == 1 << intlog2 (t);
6162 }
6163
6164 void
6165 set_music_properties (Music *p, SCM a)
6166 {
6167   for (SCM k = a; scm_is_pair (k); k = scm_cdr (k))
6168         p->set_property (scm_caar (k), scm_cdar (k));
6169 }
6170
6171
6172 SCM
6173 make_chord_step (int step, Rational alter)
6174 {
6175         if (step == 7)
6176                 alter += FLAT_ALTERATION;
6177
6178         while (step < 0)
6179                 step += 7;
6180         Pitch m ((step -1) / 7, (step - 1) % 7, alter);
6181         return m.smobbed_copy ();
6182 }
6183
6184
6185 SCM
6186 make_chord_elements (SCM pitch, SCM dur, SCM modification_list)
6187 {
6188         SCM chord_ctor = ly_lily_module_constant ("construct-chord-elements");
6189         return scm_call_3 (chord_ctor, pitch, dur, modification_list);
6190 }
6191
6192
6193 /* Todo: actually also use apply iso. call too ...  */
6194 bool
6195 ly_input_procedure_p (SCM x)
6196 {
6197         return ly_is_procedure (x)
6198                 || (scm_is_pair (x) && ly_is_procedure (scm_car (x)));
6199 }
6200
6201 SCM
6202 make_music_relative (Pitch start, SCM music, Input loc)
6203 {
6204         Music *relative = MY_MAKE_MUSIC ("RelativeOctaveMusic", loc);
6205         relative->set_property ("element", music);
6206         
6207         Music *m = unsmob_music (music);
6208         Pitch last = m->to_relative_octave (start);
6209         if (lily_1_8_relative)
6210                 m->set_property ("last-pitch", last.smobbed_copy ());
6211         return relative->unprotect ();
6212 }
6213
6214 int
6215 yylex (YYSTYPE *s, YYLTYPE *loc, void *v)
6216 {
6217         Lily_parser *pars = (Lily_parser*) v;
6218         Lily_lexer *lex = pars->lexer_;
6219
6220         lex->lexval = (void*) s;
6221         lex->lexloc = loc;
6222         lex->prepare_for_next_token ();
6223         return lex->yylex ();
6224 }
6225