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