]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/out/parser.cc
Imported Upstream version 2.12.3
[lilypond.git] / lily / out / parser.cc
diff --git a/lily/out/parser.cc b/lily/out/parser.cc
new file mode 100644 (file)
index 0000000..e17a8f0
--- /dev/null
@@ -0,0 +1,6225 @@
+/* A Bison parser, made by GNU Bison 2.3.  */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.3"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 1
+
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     PREC_TOP = 258,
+     ADDLYRICS = 259,
+     PREC_BOT = 260,
+     ACCEPTS = 261,
+     ALIAS = 262,
+     ALTERNATIVE = 263,
+     BOOK = 264,
+     BOOKPART = 265,
+     CHANGE = 266,
+     CHORDMODE = 267,
+     CHORDS = 268,
+     CONSISTS = 269,
+     CONTEXT = 270,
+     DEFAULT = 271,
+     DEFAULTCHILD = 272,
+     DENIES = 273,
+     DESCRIPTION = 274,
+     DRUMMODE = 275,
+     DRUMS = 276,
+     FIGUREMODE = 277,
+     FIGURES = 278,
+     GROBDESCRIPTIONS = 279,
+     HEADER = 280,
+     INVALID = 281,
+     KEY = 282,
+     LAYOUT = 283,
+     LYRICMODE = 284,
+     LYRICS = 285,
+     LYRICSTO = 286,
+     MARK = 287,
+     MARKUP = 288,
+     MARKUPLINES = 289,
+     MIDI = 290,
+     NAME = 291,
+     NOTEMODE = 292,
+     OBJECTID = 293,
+     OCTAVE = 294,
+     ONCE = 295,
+     OVERRIDE = 296,
+     PAPER = 297,
+     PARTIAL = 298,
+     RELATIVE = 299,
+     REMOVE = 300,
+     REPEAT = 301,
+     REST = 302,
+     REVERT = 303,
+     SCORE = 304,
+     SEQUENTIAL = 305,
+     SET = 306,
+     SIMULTANEOUS = 307,
+     SKIP = 308,
+     TEMPO = 309,
+     TIMES = 310,
+     TRANSPOSE = 311,
+     TYPE = 312,
+     UNSET = 313,
+     WITH = 314,
+     TIME_T = 315,
+     NEWCONTEXT = 316,
+     CHORD_BASS = 317,
+     CHORD_CARET = 318,
+     CHORD_COLON = 319,
+     CHORD_MINUS = 320,
+     CHORD_SLASH = 321,
+     ANGLE_OPEN = 322,
+     ANGLE_CLOSE = 323,
+     DOUBLE_ANGLE_OPEN = 324,
+     DOUBLE_ANGLE_CLOSE = 325,
+     E_BACKSLASH = 326,
+     E_ANGLE_CLOSE = 327,
+     E_CHAR = 328,
+     E_CLOSE = 329,
+     E_EXCLAMATION = 330,
+     E_BRACKET_OPEN = 331,
+     E_OPEN = 332,
+     E_BRACKET_CLOSE = 333,
+     E_ANGLE_OPEN = 334,
+     E_PLUS = 335,
+     E_TILDE = 336,
+     EXTENDER = 337,
+     FIGURE_CLOSE = 338,
+     FIGURE_OPEN = 339,
+     FIGURE_SPACE = 340,
+     HYPHEN = 341,
+     CHORDMODIFIERS = 342,
+     LYRIC_MARKUP = 343,
+     MULTI_MEASURE_REST = 344,
+     DIGIT = 345,
+     E_UNSIGNED = 346,
+     UNSIGNED = 347,
+     EXPECT_MARKUP = 348,
+     EXPECT_MUSIC = 349,
+     EXPECT_SCM = 350,
+     EXPECT_NO_MORE_ARGS = 351,
+     BOOK_IDENTIFIER = 352,
+     CHORDMODIFIER_PITCH = 353,
+     CHORD_MODIFIER = 354,
+     CONTEXT_DEF_IDENTIFIER = 355,
+     DRUM_PITCH = 356,
+     DURATION_IDENTIFIER = 357,
+     EVENT_IDENTIFIER = 358,
+     FRACTION = 359,
+     LYRICS_STRING = 360,
+     LYRIC_MARKUP_IDENTIFIER = 361,
+     MARKUP_HEAD_EMPTY = 362,
+     MARKUP_HEAD_LIST0 = 363,
+     MARKUP_HEAD_MARKUP0 = 364,
+     MARKUP_HEAD_MARKUP0_MARKUP1 = 365,
+     MARKUP_HEAD_SCM0 = 366,
+     MARKUP_HEAD_SCM0_MARKUP1 = 367,
+     MARKUP_HEAD_SCM0_SCM1 = 368,
+     MARKUP_HEAD_SCM0_SCM1_MARKUP2 = 369,
+     MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3 = 370,
+     MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 = 371,
+     MARKUP_HEAD_SCM0_SCM1_SCM2 = 372,
+     MARKUP_LIST_HEAD_EMPTY = 373,
+     MARKUP_LIST_HEAD_LIST0 = 374,
+     MARKUP_LIST_HEAD_SCM0 = 375,
+     MARKUP_LIST_HEAD_SCM0_LIST1 = 376,
+     MARKUP_LIST_HEAD_SCM0_SCM1_LIST2 = 377,
+     MARKUP_IDENTIFIER = 378,
+     MUSIC_FUNCTION = 379,
+     MUSIC_IDENTIFIER = 380,
+     NOTENAME_PITCH = 381,
+     NUMBER_IDENTIFIER = 382,
+     OUTPUT_DEF_IDENTIFIER = 383,
+     REAL = 384,
+     RESTNAME = 385,
+     SCM_IDENTIFIER = 386,
+     SCM_TOKEN = 387,
+     SCORE_IDENTIFIER = 388,
+     STRING = 389,
+     STRING_IDENTIFIER = 390,
+     TONICNAME_PITCH = 391,
+     UNARY_MINUS = 392
+   };
+#endif
+/* Tokens.  */
+#define PREC_TOP 258
+#define ADDLYRICS 259
+#define PREC_BOT 260
+#define ACCEPTS 261
+#define ALIAS 262
+#define ALTERNATIVE 263
+#define BOOK 264
+#define BOOKPART 265
+#define CHANGE 266
+#define CHORDMODE 267
+#define CHORDS 268
+#define CONSISTS 269
+#define CONTEXT 270
+#define DEFAULT 271
+#define DEFAULTCHILD 272
+#define DENIES 273
+#define DESCRIPTION 274
+#define DRUMMODE 275
+#define DRUMS 276
+#define FIGUREMODE 277
+#define FIGURES 278
+#define GROBDESCRIPTIONS 279
+#define HEADER 280
+#define INVALID 281
+#define KEY 282
+#define LAYOUT 283
+#define LYRICMODE 284
+#define LYRICS 285
+#define LYRICSTO 286
+#define MARK 287
+#define MARKUP 288
+#define MARKUPLINES 289
+#define MIDI 290
+#define NAME 291
+#define NOTEMODE 292
+#define OBJECTID 293
+#define OCTAVE 294
+#define ONCE 295
+#define OVERRIDE 296
+#define PAPER 297
+#define PARTIAL 298
+#define RELATIVE 299
+#define REMOVE 300
+#define REPEAT 301
+#define REST 302
+#define REVERT 303
+#define SCORE 304
+#define SEQUENTIAL 305
+#define SET 306
+#define SIMULTANEOUS 307
+#define SKIP 308
+#define TEMPO 309
+#define TIMES 310
+#define TRANSPOSE 311
+#define TYPE 312
+#define UNSET 313
+#define WITH 314
+#define TIME_T 315
+#define NEWCONTEXT 316
+#define CHORD_BASS 317
+#define CHORD_CARET 318
+#define CHORD_COLON 319
+#define CHORD_MINUS 320
+#define CHORD_SLASH 321
+#define ANGLE_OPEN 322
+#define ANGLE_CLOSE 323
+#define DOUBLE_ANGLE_OPEN 324
+#define DOUBLE_ANGLE_CLOSE 325
+#define E_BACKSLASH 326
+#define E_ANGLE_CLOSE 327
+#define E_CHAR 328
+#define E_CLOSE 329
+#define E_EXCLAMATION 330
+#define E_BRACKET_OPEN 331
+#define E_OPEN 332
+#define E_BRACKET_CLOSE 333
+#define E_ANGLE_OPEN 334
+#define E_PLUS 335
+#define E_TILDE 336
+#define EXTENDER 337
+#define FIGURE_CLOSE 338
+#define FIGURE_OPEN 339
+#define FIGURE_SPACE 340
+#define HYPHEN 341
+#define CHORDMODIFIERS 342
+#define LYRIC_MARKUP 343
+#define MULTI_MEASURE_REST 344
+#define DIGIT 345
+#define E_UNSIGNED 346
+#define UNSIGNED 347
+#define EXPECT_MARKUP 348
+#define EXPECT_MUSIC 349
+#define EXPECT_SCM 350
+#define EXPECT_NO_MORE_ARGS 351
+#define BOOK_IDENTIFIER 352
+#define CHORDMODIFIER_PITCH 353
+#define CHORD_MODIFIER 354
+#define CONTEXT_DEF_IDENTIFIER 355
+#define DRUM_PITCH 356
+#define DURATION_IDENTIFIER 357
+#define EVENT_IDENTIFIER 358
+#define FRACTION 359
+#define LYRICS_STRING 360
+#define LYRIC_MARKUP_IDENTIFIER 361
+#define MARKUP_HEAD_EMPTY 362
+#define MARKUP_HEAD_LIST0 363
+#define MARKUP_HEAD_MARKUP0 364
+#define MARKUP_HEAD_MARKUP0_MARKUP1 365
+#define MARKUP_HEAD_SCM0 366
+#define MARKUP_HEAD_SCM0_MARKUP1 367
+#define MARKUP_HEAD_SCM0_SCM1 368
+#define MARKUP_HEAD_SCM0_SCM1_MARKUP2 369
+#define MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3 370
+#define MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 371
+#define MARKUP_HEAD_SCM0_SCM1_SCM2 372
+#define MARKUP_LIST_HEAD_EMPTY 373
+#define MARKUP_LIST_HEAD_LIST0 374
+#define MARKUP_LIST_HEAD_SCM0 375
+#define MARKUP_LIST_HEAD_SCM0_LIST1 376
+#define MARKUP_LIST_HEAD_SCM0_SCM1_LIST2 377
+#define MARKUP_IDENTIFIER 378
+#define MUSIC_FUNCTION 379
+#define MUSIC_IDENTIFIER 380
+#define NOTENAME_PITCH 381
+#define NUMBER_IDENTIFIER 382
+#define OUTPUT_DEF_IDENTIFIER 383
+#define REAL 384
+#define RESTNAME 385
+#define SCM_IDENTIFIER 386
+#define SCM_TOKEN 387
+#define SCORE_IDENTIFIER 388
+#define STRING 389
+#define STRING_IDENTIFIER 390
+#define TONICNAME_PITCH 391
+#define UNARY_MINUS 392
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 10 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+
+
+#define YYDEBUG 1
+#define YYERROR_VERBOSE 1
+#define YYPARSE_PARAM my_lily_parser
+#define YYLEX_PARAM my_lily_parser
+#define PARSER ((Lily_parser *) my_lily_parser)
+
+#define yyerror PARSER->parser_error
+
+/* We use custom location type: Input objects */
+#define YYLTYPE Input
+#define YYLLOC_DEFAULT(Current,Rhs,N) \
+       ((Current).set_location ((Rhs)[1], (Rhs)[N]))
+
+
+#line 56 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+ // -*-Fundamental-*-
+
+/*
+FIXME:
+
+   * The rules for who is protecting what are very shady.  Uniformise
+     this.
+
+   * There are too many lexical modes?
+*/
+
+#include "config.hh"
+
+#include <cctype>
+#include <cstdlib>
+#include <cstdio>
+using namespace std;
+
+#include "book.hh"
+#include "context-def.hh"
+#include "dimensions.hh"
+#include "file-path.hh"
+#include "input.hh"
+#include "international.hh"
+#include "lily-guile.hh"
+#include "lily-lexer.hh"
+#include "lily-parser.hh"
+#include "main.hh"
+#include "misc.hh"
+#include "music.hh"
+#include "music.hh"
+#include "output-def.hh"
+#include "paper-book.hh"
+#include "program-option.hh"
+#include "scm-hash.hh"
+#include "score.hh"
+#include "text-interface.hh"
+#include "warn.hh"
+
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 98 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+{
+       Book *book;
+       Output_def *outputdef;
+       SCM scm;
+       std::string *string;
+       Music *music;
+       Score *score;
+       int i;
+}
+/* Line 187 of yacc.c.  */
+#line 438 "out/parser.cc"
+       YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
+typedef struct YYLTYPE
+{
+  int first_line;
+  int first_column;
+  int last_line;
+  int last_column;
+} YYLTYPE;
+# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+# define YYLTYPE_IS_DECLARED 1
+# define YYLTYPE_IS_TRIVIAL 1
+#endif
+
+
+/* Copy the second part of user declarations.  */
+#line 108 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+
+
+#define MY_MAKE_MUSIC(x, spot)  make_music_with_input (ly_symbol2scm (x), spot)
+
+/* ES TODO:
+- Don't use lily module, create a new module instead.
+- delay application of the function
+*/
+#define LOWLEVEL_MAKE_SYNTAX(proc, args)       \
+  scm_apply_0 (proc, args)
+/* Syntactic Sugar. */
+#define MAKE_SYNTAX(name, location, ...)       \
+  LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant (name), scm_list_n (PARSER->self_scm (), make_input (location), __VA_ARGS__, SCM_UNDEFINED));
+
+SCM get_next_unique_context_id ();
+SCM get_next_unique_lyrics_context_id ();
+
+#undef _
+#if !HAVE_GETTEXT
+#define _(x) x
+#else
+#include <libintl.h>
+#define _(x) gettext (x)
+#endif
+
+
+static Music *make_music_with_input (SCM name, Input where);
+SCM make_music_relative (Pitch start, SCM music, Input loc);
+SCM run_music_function (Lily_parser *, SCM expr);
+SCM get_first_context_id (SCM type, Music *m);
+SCM make_chord_elements (SCM pitch, SCM dur, SCM modification_list);
+SCM make_chord_step (int step, Rational alter);
+SCM make_simple_markup (SCM a);
+bool is_duration (int t);
+bool is_regular_identifier (SCM id);
+bool ly_input_procedure_p (SCM x);
+int yylex (YYSTYPE *s, YYLTYPE *loc, void *v);
+void set_music_properties (Music *p, SCM a);
+
+
+
+/* Line 216 of yacc.c.  */
+#line 503 "out/parser.cc"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined _STDLIB_H \
+       && ! ((defined YYMALLOC || defined malloc) \
+            && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef _STDLIB_H
+#    define _STDLIB_H 1
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+        || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
+            && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  yytype_int16 yyss;
+  YYSTYPE yyvs;
+    YYLTYPE yyls;
+};
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+      + 2 * YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         YYSIZE_T yyi;                         \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (YYID (0))
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state.  */
+#define YYFINAL  2
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   2076
+
+/* YYNTOKENS -- Number of terminals.  */
+#define YYNTOKENS  159
+/* YYNNTS -- Number of nonterminals.  */
+#define YYNNTS  140
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  408
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  589
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   392
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const yytype_uint8 yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   157,     2,     2,     2,     2,     2,   150,
+     148,   149,   154,   138,   151,   137,   143,   155,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   156,     2,
+       2,   142,     2,   158,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   145,     2,   146,   152,   153,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   140,   144,   141,   147,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   139
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint16 yyprhs[] =
+{
+       0,     0,     3,     4,     7,    10,    13,    16,    19,    21,
+      23,    25,    27,    29,    31,    33,    35,    37,    39,    40,
+      43,    48,    50,    52,    56,    58,    60,    62,    64,    66,
+      68,    70,    72,    74,    76,    78,    80,    82,    87,    88,
+      90,    94,    97,   102,   103,   105,   108,   111,   114,   117,
+     120,   123,   126,   129,   132,   137,   138,   140,   143,   146,
+     149,   152,   155,   158,   161,   164,   169,   171,   173,   176,
+     179,   182,   185,   187,   190,   192,   194,   196,   198,   201,
+     205,   208,   211,   214,   219,   225,   231,   234,   237,   238,
+     241,   244,   247,   249,   251,   252,   257,   263,   268,   272,
+     277,   281,   283,   285,   287,   289,   290,   291,   297,   298,
+     301,   303,   305,   307,   309,   311,   313,   317,   321,   325,
+     327,   331,   335,   337,   339,   341,   344,   345,   348,   350,
+     356,   362,   366,   368,   373,   376,   380,   382,   384,   386,
+     388,   390,   392,   394,   396,   398,   400,   402,   406,   409,
+     410,   414,   415,   420,   423,   424,   429,   434,   436,   439,
+     441,   445,   448,   454,   458,   460,   462,   464,   466,   468,
+     470,   472,   474,   476,   478,   481,   483,   487,   493,   497,
+     502,   505,   507,   510,   512,   514,   518,   520,   522,   524,
+     526,   528,   530,   532,   534,   536,   539,   543,   545,   547,
+     551,   555,   556,   559,   565,   568,   570,   572,   577,   580,
+     585,   588,   590,   593,   595,   597,   599,   601,   604,   607,
+     610,   612,   615,   617,   620,   624,   625,   628,   630,   633,
+     635,   637,   640,   643,   645,   647,   649,   651,   653,   655,
+     657,   659,   661,   663,   665,   667,   669,   671,   673,   675,
+     677,   678,   680,   683,   686,   688,   691,   693,   696,   698,
+     701,   704,   706,   709,   712,   714,   716,   718,   720,   722,
+     724,   726,   728,   730,   732,   734,   736,   738,   740,   742,
+     744,   746,   748,   749,   751,   754,   757,   759,   763,   767,
+     769,   773,   774,   777,   779,   782,   784,   786,   788,   790,
+     792,   794,   796,   798,   800,   803,   806,   809,   811,   813,
+     815,   817,   819,   822,   823,   826,   830,   831,   833,   840,
+     843,   846,   849,   851,   853,   856,   858,   860,   863,   868,
+     869,   872,   874,   876,   879,   882,   884,   886,   888,   890,
+     894,   896,   899,   902,   906,   910,   912,   914,   918,   922,
+     925,   927,   929,   931,   933,   936,   939,   941,   943,   945,
+     947,   948,   951,   952,   955,   957,   958,   962,   963,   967,
+     969,   970,   974,   976,   979,   981,   983,   985,   987,   990,
+     994,   995,   998,  1001,  1003,  1006,  1009,  1013,  1018,  1020,
+    1023,  1027,  1029,  1032,  1034,  1036,  1038,  1040,  1041,  1047,
+    1050,  1055,  1059,  1064,  1070,  1072,  1075,  1079,  1082
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int16 yyrhs[] =
+{
+     160,     0,    -1,    -1,   160,   162,    -1,   160,   167,    -1,
+     160,     1,    -1,   160,    26,    -1,    38,   134,    -1,   165,
+      -1,   171,    -1,   173,    -1,   175,    -1,   193,    -1,   286,
+      -1,   284,    -1,   178,    -1,   132,    -1,   131,    -1,    -1,
+     164,   167,    -1,    25,   140,   164,   141,    -1,   134,    -1,
+     105,    -1,   166,   142,   168,    -1,   163,    -1,   175,    -1,
+     171,    -1,   173,    -1,   178,    -1,   169,    -1,   184,    -1,
+     234,    -1,   274,    -1,   220,    -1,   163,    -1,   286,    -1,
+      90,    -1,    15,   140,   170,   141,    -1,    -1,   100,    -1,
+     170,    24,   163,    -1,   170,   216,    -1,     9,   140,   172,
+     141,    -1,    -1,    97,    -1,   172,   177,    -1,   172,   173,
+      -1,   172,   175,    -1,   172,   193,    -1,   172,   286,    -1,
+     172,   284,    -1,   172,   165,    -1,   172,     1,    -1,   172,
+     161,    -1,    10,   140,   174,   141,    -1,    -1,    97,    -1,
+     174,   177,    -1,   174,   175,    -1,   174,   193,    -1,   174,
+     286,    -1,   174,   284,    -1,   174,   165,    -1,   174,     1,
+      -1,   174,   161,    -1,    49,   140,   176,   141,    -1,   184,
+      -1,   133,    -1,   176,   161,    -1,   176,   165,    -1,   176,
+     178,    -1,   176,     1,    -1,   178,    -1,   181,   141,    -1,
+      42,    -1,    35,    -1,    28,    -1,   179,    -1,   180,   140,
+      -1,   180,   140,   128,    -1,   181,   167,    -1,   181,   169,
+      -1,   181,     1,    -1,    54,   252,   142,   278,    -1,    54,
+     220,   252,   142,   278,    -1,    54,   286,   252,   142,   278,
+      -1,    54,   220,    -1,    54,   286,    -1,    -1,   183,   184,
+      -1,   183,   163,    -1,   183,     1,    -1,   189,    -1,   193,
+      -1,    -1,     8,   140,   183,   141,    -1,    46,   221,   279,
+     184,   185,    -1,    50,   140,   183,   141,    -1,   140,   183,
+     141,    -1,    52,   140,   183,   141,    -1,    69,   183,    70,
+      -1,   223,    -1,   125,    -1,   219,    -1,   211,    -1,    -1,
+      -1,    59,   191,   140,   192,   141,    -1,    -1,   192,   216,
+      -1,   202,    -1,   194,    -1,   188,    -1,   187,    -1,   163,
+      -1,   221,    -1,    94,   199,   184,    -1,    93,   199,   286,
+      -1,    95,   199,   195,    -1,    96,    -1,    93,   198,   286,
+      -1,    95,   198,   195,    -1,    96,    -1,   196,    -1,   197,
+      -1,   124,   199,    -1,    -1,   142,   221,    -1,   200,    -1,
+      15,   221,   201,   190,   184,    -1,    61,   221,   201,   190,
+     184,    -1,    55,   254,   184,    -1,   186,    -1,    56,   245,
+     245,   184,    -1,   203,   194,    -1,   204,   190,   194,    -1,
+     205,    -1,   209,    -1,    37,    -1,    20,    -1,    22,    -1,
+      12,    -1,    29,    -1,    21,    -1,    23,    -1,    13,    -1,
+      30,    -1,    44,   249,   184,    -1,    44,   193,    -1,    -1,
+       4,   207,   194,    -1,    -1,   206,     4,   208,   194,    -1,
+     194,   206,    -1,    -1,    31,   221,   210,   184,    -1,    11,
+     134,   142,   134,    -1,   163,    -1,   212,   163,    -1,   212,
+      -1,   134,   142,   222,    -1,    58,   221,    -1,    41,   221,
+     213,   142,   163,    -1,    48,   221,   163,    -1,    14,    -1,
+      45,    -1,     6,    -1,    17,    -1,    18,    -1,     7,    -1,
+      57,    -1,    19,    -1,    36,    -1,   214,    -1,   215,   134,
+      -1,   221,    -1,   221,   143,   221,    -1,    41,   217,   213,
+     142,   222,    -1,    48,   217,   163,    -1,    51,   217,   142,
+     222,    -1,    58,   217,    -1,   218,    -1,    40,   218,    -1,
+     134,    -1,   135,    -1,   220,   138,   220,    -1,   134,    -1,
+     105,    -1,   135,    -1,   220,    -1,   105,    -1,   277,    -1,
+     163,    -1,   286,    -1,    90,    -1,   266,   233,    -1,    89,
+     251,   233,    -1,   231,    -1,   224,    -1,   225,   251,   233,
+      -1,    67,   226,    68,    -1,    -1,   226,   227,    -1,   244,
+     280,   281,   239,   233,    -1,   101,   233,    -1,   229,    -1,
+     124,    -1,   228,    94,   198,   227,    -1,   228,   198,    -1,
+     228,    94,   198,   234,    -1,   228,   198,    -1,   232,    -1,
+      53,   250,    -1,    76,    -1,    78,    -1,    71,    -1,   144,
+      -1,    43,   250,    -1,    60,   254,    -1,    32,   222,    -1,
+      81,    -1,    32,    16,    -1,   182,    -1,    27,    16,    -1,
+      27,   126,   131,    -1,    -1,   233,   234,    -1,   237,    -1,
+     137,   230,    -1,    86,    -1,    82,    -1,   248,   238,    -1,
+     248,   237,    -1,   235,    -1,    91,    -1,   145,    -1,   146,
+      -1,   147,    -1,   148,    -1,   149,    -1,    75,    -1,    77,
+      -1,    74,    -1,    72,    -1,    79,    -1,   236,    -1,   103,
+      -1,   256,    -1,   246,    -1,   247,    -1,    -1,   142,    -1,
+     142,   241,    -1,   142,   240,    -1,   150,    -1,   240,   150,
+      -1,   151,    -1,   241,   151,    -1,   126,    -1,   126,   240,
+      -1,   126,   241,    -1,   136,    -1,   136,   240,    -1,   136,
+     241,    -1,   242,    -1,   244,    -1,   243,    -1,   286,    -1,
+     220,    -1,    90,    -1,   152,    -1,   138,    -1,   137,    -1,
+     144,    -1,    68,    -1,   143,    -1,   153,    -1,   153,    -1,
+     152,    -1,   137,    -1,   242,    -1,   253,    -1,    -1,   253,
+      -1,   278,   255,    -1,   102,   255,    -1,   252,    -1,   253,
+     154,   278,    -1,   253,   154,   104,    -1,   104,    -1,    92,
+     155,    92,    -1,    -1,   255,   143,    -1,   156,    -1,   156,
+     278,    -1,    90,    -1,    92,    -1,   134,    -1,   286,    -1,
+     137,    -1,   138,    -1,   157,    -1,    85,    -1,   257,    -1,
+     259,   146,    -1,   259,   258,    -1,   259,   260,    -1,    80,
+      -1,    75,    -1,   155,    -1,    71,    -1,   259,    -1,   145,
+     259,    -1,    -1,   262,   261,    -1,    84,   262,    83,    -1,
+      -1,    47,    -1,   244,   280,   281,   239,   251,   264,    -1,
+     101,   251,    -1,   130,   251,    -1,   267,   251,    -1,   265,
+      -1,   268,    -1,   263,   251,    -1,   282,    -1,   105,    -1,
+     243,   251,    -1,   243,   251,   270,   269,    -1,    -1,   269,
+     271,    -1,    64,    -1,    63,    -1,    66,   243,    -1,    62,
+     243,    -1,   270,    -1,   272,    -1,    99,    -1,   273,    -1,
+     272,   143,   273,    -1,   278,    -1,   278,   138,    -1,   278,
+      65,    -1,   274,   138,   275,    -1,   274,   137,   275,    -1,
+     275,    -1,   276,    -1,   276,   154,   276,    -1,   276,   155,
+     276,    -1,   137,   276,    -1,   277,    -1,    92,    -1,   129,
+      -1,   127,    -1,   129,   127,    -1,    92,   127,    -1,    92,
+      -1,    90,    -1,   278,    -1,   127,    -1,    -1,   280,   157,
+      -1,    -1,   281,   158,    -1,   106,    -1,    -1,    88,   283,
+     288,    -1,    -1,    34,   285,   289,    -1,   123,    -1,    -1,
+      33,   287,   288,    -1,   289,    -1,   295,   296,    -1,   296,
+      -1,   290,    -1,   291,    -1,   293,    -1,   295,   291,    -1,
+     140,   292,   141,    -1,    -1,   292,   298,    -1,   292,   289,
+      -1,   118,    -1,   119,   289,    -1,   120,   163,    -1,   121,
+     163,   289,    -1,   122,   163,   163,   289,    -1,   109,    -1,
+     112,   163,    -1,   114,   163,   163,    -1,   294,    -1,   295,
+     294,    -1,   134,    -1,   123,    -1,   106,    -1,   135,    -1,
+      -1,    49,   297,   140,   176,   141,    -1,   111,   163,    -1,
+     117,   163,   163,   163,    -1,   113,   163,   163,    -1,   116,
+     163,   298,   298,    -1,   115,   163,   163,   298,   298,    -1,
+     107,    -1,   108,   289,    -1,   110,   298,   298,    -1,   295,
+     296,    -1,   296,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,   452,   452,   453,   455,   457,   460,   467,   471,   474,
+     480,   486,   493,   498,   502,   506,   523,   524,   529,   533,
+     539,   548,   549,   553,   564,   569,   573,   577,   581,   585,
+     588,   600,   603,   606,   609,   612,   615,   621,   628,   632,
+     636,   647,   655,   665,   674,   679,   684,   690,   696,   701,
+     705,   709,   712,   717,   723,   729,   733,   738,   742,   748,
+     753,   757,   761,   764,   768,   774,   780,   790,   795,   798,
+     801,   813,   824,   837,   846,   851,   856,   865,   872,   876,
+     886,   889,   892,   898,   901,   904,   907,   910,   923,   926,
+     936,   939,   956,   957,   961,   964,   971,   978,   981,   987,
+     990,   996,   997,   998,   999,  1003,  1004,  1004,  1013,  1014,
+    1020,  1021,  1025,  1026,  1030,  1031,  1039,  1045,  1048,  1053,
+    1056,  1059,  1064,  1069,  1070,  1074,  1081,  1082,  1089,  1092,
+    1095,  1099,  1102,  1103,  1109,  1120,  1128,  1129,  1133,  1139,
+    1146,  1151,  1159,  1166,  1172,  1177,  1184,  1192,  1196,  1203,
+    1203,  1212,  1212,  1221,  1224,  1224,  1233,  1240,  1243,  1249,
+    1255,  1259,  1263,  1268,  1275,  1276,  1278,  1279,  1280,  1282,
+    1283,  1284,  1285,  1289,  1290,  1296,  1305,  1312,  1319,  1325,
+    1331,  1339,  1342,  1348,  1351,  1354,  1359,  1362,  1365,  1370,
+    1373,  1376,  1379,  1382,  1385,  1394,  1403,  1408,  1409,  1414,
+    1432,  1439,  1440,  1446,  1472,  1483,  1488,  1501,  1504,  1513,
+    1516,  1522,  1525,  1528,  1533,  1538,  1541,  1555,  1561,  1566,
+    1574,  1577,  1581,  1584,  1588,  1606,  1609,  1616,  1619,  1622,
+    1627,  1632,  1640,  1648,  1652,  1660,  1663,  1666,  1669,  1672,
+    1675,  1678,  1681,  1684,  1687,  1693,  1707,  1710,  1718,  1721,
+    1732,  1733,  1734,  1735,  1739,  1742,  1748,  1751,  1757,  1760,
+    1765,  1777,  1780,  1785,  1794,  1800,  1801,  1805,  1810,  1816,
+    1824,  1827,  1830,  1833,  1836,  1839,  1842,  1848,  1849,  1850,
+    1855,  1861,  1867,  1871,  1878,  1887,  1896,  1899,  1902,  1910,
+    1911,  1917,  1920,  1926,  1929,  1937,  1940,  1943,  1944,  1948,
+    1949,  1950,  1954,  1958,  1969,  1973,  1984,  2007,  2010,  2013,
+    2016,  2022,  2025,  2032,  2035,  2041,  2048,  2049,  2053,  2079,
+    2086,  2099,  2111,  2114,  2119,  2129,  2132,  2138,  2141,  2148,
+    2151,  2157,  2160,  2163,  2166,  2172,  2175,  2178,  2184,  2185,
+    2191,  2194,  2197,  2209,  2212,  2215,  2219,  2222,  2225,  2231,
+    2234,  2239,  2242,  2245,  2248,  2251,  2258,  2261,  2267,  2268,
+    2275,  2276,  2280,  2281,  2289,  2293,  2292,  2302,  2301,  2310,
+    2314,  2313,  2322,  2325,  2328,  2334,  2337,  2340,  2346,  2353,
+    2359,  2360,  2363,  2369,  2372,  2375,  2378,  2381,  2387,  2390,
+    2393,  2399,  2402,  2408,  2411,  2414,  2417,  2420,  2420,  2429,
+    2432,  2435,  2438,  2441,  2444,  2447,  2450,  2456,  2460
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "PREC_TOP", "\"\\\\addlyrics\"",
+  "PREC_BOT", "\"\\\\accepts\"", "\"\\\\alias\"", "\"\\\\alternative\"",
+  "\"\\\\book\"", "\"\\\\bookpart\"", "\"\\\\change\"",
+  "\"\\\\chordmode\"", "\"\\\\chords\"", "\"\\\\consists\"",
+  "\"\\\\context\"", "\"\\\\default\"", "\"\\\\defaultchild\"",
+  "\"\\\\denies\"", "\"\\\\description\"", "\"\\\\drummode\"",
+  "\"\\\\drums\"", "\"\\\\figuremode\"", "\"\\\\figures\"",
+  "\"\\\\grobdescriptions\"", "\"\\\\header\"", "\"\\\\invalid\"",
+  "\"\\\\key\"", "\"\\\\layout\"", "\"\\\\lyricmode\"", "\"\\\\lyrics\"",
+  "\"\\\\lyricsto\"", "\"\\\\mark\"", "\"\\\\markup\"",
+  "\"\\\\markuplines\"", "\"\\\\midi\"", "\"\\\\name\"",
+  "\"\\\\notemode\"", "\"\\\\objectid\"", "\"\\\\octave\"", "\"\\\\once\"",
+  "\"\\\\override\"", "\"\\\\paper\"", "\"\\\\partial\"",
+  "\"\\\\relative\"", "\"\\\\remove\"", "\"\\\\repeat\"", "\"\\\\rest\"",
+  "\"\\\\revert\"", "\"\\\\score\"", "\"\\\\sequential\"", "\"\\\\set\"",
+  "\"\\\\simultaneous\"", "\"\\\\skip\"", "\"\\\\tempo\"", "\"\\\\times\"",
+  "\"\\\\transpose\"", "\"\\\\type\"", "\"\\\\unset\"", "\"\\\\with\"",
+  "\"\\\\time\"", "\"\\\\new\"", "\"/+\"", "\"^\"", "\":\"", "\"-\"",
+  "\"/\"", "\"<\"", "\">\"", "\"<<\"", "\">>\"", "\"\\\\\"", "\"\\\\>\"",
+  "\"\\\\C[haracter]\"", "\"\\\\)\"", "\"\\\\!\"", "\"\\\\[\"",
+  "\"\\\\(\"", "\"\\\\]\"", "\"\\\\<\"", "\"\\\\+\"", "\"\\\\~\"",
+  "\"__\"", "FIGURE_CLOSE", "FIGURE_OPEN", "\"_\"", "\"--\"",
+  "CHORDMODIFIERS", "LYRIC_MARKUP", "MULTI_MEASURE_REST", "DIGIT",
+  "E_UNSIGNED", "UNSIGNED", "EXPECT_MARKUP", "EXPECT_MUSIC", "EXPECT_SCM",
+  "EXPECT_NO_MORE_ARGS", "BOOK_IDENTIFIER", "CHORDMODIFIER_PITCH",
+  "CHORD_MODIFIER", "CONTEXT_DEF_IDENTIFIER", "DRUM_PITCH",
+  "DURATION_IDENTIFIER", "EVENT_IDENTIFIER", "FRACTION", "LYRICS_STRING",
+  "LYRIC_MARKUP_IDENTIFIER", "MARKUP_HEAD_EMPTY", "MARKUP_HEAD_LIST0",
+  "MARKUP_HEAD_MARKUP0", "MARKUP_HEAD_MARKUP0_MARKUP1", "MARKUP_HEAD_SCM0",
+  "MARKUP_HEAD_SCM0_MARKUP1", "MARKUP_HEAD_SCM0_SCM1",
+  "MARKUP_HEAD_SCM0_SCM1_MARKUP2", "MARKUP_HEAD_SCM0_SCM1_MARKUP2_MARKUP3",
+  "MARKUP_HEAD_SCM0_MARKUP1_MARKUP2", "MARKUP_HEAD_SCM0_SCM1_SCM2",
+  "MARKUP_LIST_HEAD_EMPTY", "MARKUP_LIST_HEAD_LIST0",
+  "MARKUP_LIST_HEAD_SCM0", "MARKUP_LIST_HEAD_SCM0_LIST1",
+  "MARKUP_LIST_HEAD_SCM0_SCM1_LIST2", "MARKUP_IDENTIFIER",
+  "MUSIC_FUNCTION", "MUSIC_IDENTIFIER", "NOTENAME_PITCH",
+  "NUMBER_IDENTIFIER", "OUTPUT_DEF_IDENTIFIER", "REAL", "RESTNAME",
+  "SCM_IDENTIFIER", "SCM_TOKEN", "SCORE_IDENTIFIER", "STRING",
+  "STRING_IDENTIFIER", "TONICNAME_PITCH", "'-'", "'+'", "UNARY_MINUS",
+  "'{'", "'}'", "'='", "'.'", "'|'", "'['", "']'", "'~'", "'('", "')'",
+  "'''", "','", "'^'", "'_'", "'*'", "'/'", "':'", "'!'", "'?'", "$accept",
+  "lilypond", "object_id_setting", "toplevel_expression", "embedded_scm",
+  "lilypond_header_body", "lilypond_header", "assignment_id", "assignment",
+  "identifier_init", "context_def_spec_block", "context_def_spec_body",
+  "book_block", "book_body", "bookpart_block", "bookpart_body",
+  "score_block", "score_body", "paper_block", "output_def",
+  "output_def_head", "output_def_head_with_mode_switch", "output_def_body",
+  "tempo_event", "music_list", "music", "alternative_music",
+  "repeated_music", "sequential_music", "simultaneous_music",
+  "simple_music", "optional_context_mod", "@1", "context_mod_list",
+  "composite_music", "grouped_music_list", "function_scm_argument",
+  "function_arglist_music_last", "function_arglist_nonmusic_last",
+  "function_arglist_nonmusic", "function_arglist",
+  "generic_prefix_music_scm", "optional_id", "prefix_composite_music",
+  "mode_changing_head", "mode_changing_head_with_context",
+  "relative_music", "new_lyrics", "@2", "@3", "re_rhythmed_music", "@4",
+  "context_change", "property_path_revved", "property_path",
+  "property_operation", "context_def_mod", "context_mod",
+  "context_prop_spec", "simple_music_property_def", "music_property_def",
+  "string", "simple_string", "scalar", "event_chord", "note_chord_element",
+  "chord_body", "chord_body_elements", "chord_body_element",
+  "music_function_identifier_musicless_prefix",
+  "music_function_chord_body", "music_function_event", "command_element",
+  "command_event", "post_events", "post_event", "string_number_event",
+  "direction_less_char", "direction_less_event", "direction_reqd_event",
+  "octave_check", "sup_quotes", "sub_quotes", "steno_pitch",
+  "steno_tonic_pitch", "pitch", "pitch_also_in_chords", "gen_text_def",
+  "script_abbreviation", "script_dir", "absolute_pitch", "duration_length",
+  "optional_notemode_duration", "steno_duration", "multiplied_duration",
+  "fraction", "dots", "tremolo_type", "bass_number",
+  "figured_bass_alteration", "bass_figure", "figured_bass_modification",
+  "br_bass_figure", "figure_list", "figure_spec", "optional_rest",
+  "simple_element", "simple_chord_elements", "lyric_element", "new_chord",
+  "chord_items", "chord_separator", "chord_item", "step_numbers",
+  "step_number", "number_expression", "number_term", "number_factor",
+  "bare_number", "bare_unsigned", "unsigned_number", "exclamations",
+  "questions", "lyric_markup", "@5", "full_markup_list", "@6",
+  "full_markup", "@7", "markup_top", "markup_list", "markup_composed_list",
+  "markup_braced_list", "markup_braced_list_body", "markup_command_list",
+  "markup_head_1_item", "markup_head_1_list", "simple_markup", "@8",
+  "markup", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const yytype_uint16 yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391,    45,    43,   392,
+     123,   125,    61,    46,   124,    91,    93,   126,    40,    41,
+      39,    44,    94,    95,    42,    47,    58,    33,    63
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint16 yyr1[] =
+{
+       0,   159,   160,   160,   160,   160,   160,   161,   162,   162,
+     162,   162,   162,   162,   162,   162,   163,   163,   164,   164,
+     165,   166,   166,   167,   167,   168,   168,   168,   168,   168,
+     168,   168,   168,   168,   168,   168,   168,   169,   170,   170,
+     170,   170,   171,   172,   172,   172,   172,   172,   172,   172,
+     172,   172,   172,   172,   173,   174,   174,   174,   174,   174,
+     174,   174,   174,   174,   174,   175,   176,   176,   176,   176,
+     176,   176,   177,   178,   179,   179,   179,   180,   181,   181,
+     181,   181,   181,   182,   182,   182,   182,   182,   183,   183,
+     183,   183,   184,   184,   185,   185,   186,   187,   187,   188,
+     188,   189,   189,   189,   189,   190,   191,   190,   192,   192,
+     193,   193,   194,   194,   195,   195,   196,   197,   197,   198,
+     198,   198,   199,   199,   199,   200,   201,   201,   202,   202,
+     202,   202,   202,   202,   202,   202,   202,   202,   203,   203,
+     203,   203,   203,   204,   204,   204,   204,   205,   205,   207,
+     206,   208,   206,   209,   210,   209,   211,   212,   212,   213,
+     214,   214,   214,   214,   215,   215,   215,   215,   215,   215,
+     215,   215,   215,   216,   216,   217,   217,   218,   218,   218,
+     218,   219,   219,   220,   220,   220,   221,   221,   221,   222,
+     222,   222,   222,   222,   222,   223,   223,   223,   223,   224,
+     225,   226,   226,   227,   227,   227,   228,   229,   229,   230,
+     230,   231,   231,   231,   231,   231,   231,   231,   231,   231,
+     232,   232,   232,   232,   232,   233,   233,   234,   234,   234,
+     234,   234,   234,   234,   235,   236,   236,   236,   236,   236,
+     236,   236,   236,   236,   236,   237,   237,   237,   238,   238,
+     239,   239,   239,   239,   240,   240,   241,   241,   242,   242,
+     242,   243,   243,   243,   244,   245,   245,   246,   246,   246,
+     247,   247,   247,   247,   247,   247,   247,   248,   248,   248,
+     249,   250,   251,   251,   252,   252,   253,   253,   253,   254,
+     254,   255,   255,   256,   256,   257,   257,   257,   257,   258,
+     258,   258,   259,   259,   259,   259,   259,   260,   260,   260,
+     260,   261,   261,   262,   262,   263,   264,   264,   265,   265,
+     265,   265,   266,   266,   266,   267,   267,   268,   268,   269,
+     269,   270,   270,   270,   270,   271,   271,   271,   272,   272,
+     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
+     276,   277,   277,   277,   277,   277,   278,   278,   279,   279,
+     280,   280,   281,   281,   282,   283,   282,   285,   284,   286,
+     287,   286,   288,   288,   288,   289,   289,   289,   290,   291,
+     292,   292,   292,   293,   293,   293,   293,   293,   294,   294,
+     294,   295,   295,   296,   296,   296,   296,   297,   296,   296,
+     296,   296,   296,   296,   296,   296,   296,   298,   298
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     0,     2,     2,     2,     2,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     2,
+       4,     1,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     4,     0,     1,
+       3,     2,     4,     0,     1,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     4,     0,     1,     2,     2,     2,
+       2,     2,     2,     2,     2,     4,     1,     1,     2,     2,
+       2,     2,     1,     2,     1,     1,     1,     1,     2,     3,
+       2,     2,     2,     4,     5,     5,     2,     2,     0,     2,
+       2,     2,     1,     1,     0,     4,     5,     4,     3,     4,
+       3,     1,     1,     1,     1,     0,     0,     5,     0,     2,
+       1,     1,     1,     1,     1,     1,     3,     3,     3,     1,
+       3,     3,     1,     1,     1,     2,     0,     2,     1,     5,
+       5,     3,     1,     4,     2,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     3,     2,     0,
+       3,     0,     4,     2,     0,     4,     4,     1,     2,     1,
+       3,     2,     5,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     1,     3,     5,     3,     4,
+       2,     1,     2,     1,     1,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     3,     1,     1,     3,
+       3,     0,     2,     5,     2,     1,     1,     4,     2,     4,
+       2,     1,     2,     1,     1,     1,     1,     2,     2,     2,
+       1,     2,     1,     2,     3,     0,     2,     1,     2,     1,
+       1,     2,     2,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     1,     2,     2,     1,     2,     1,     2,     1,     2,
+       2,     1,     2,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     0,     1,     2,     2,     1,     3,     3,     1,
+       3,     0,     2,     1,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     2,     2,     1,     1,     1,
+       1,     1,     2,     0,     2,     3,     0,     1,     6,     2,
+       2,     2,     1,     1,     2,     1,     1,     2,     4,     0,
+       2,     1,     1,     2,     2,     1,     1,     1,     1,     3,
+       1,     2,     2,     3,     3,     1,     1,     3,     3,     2,
+       1,     1,     1,     1,     2,     2,     1,     1,     1,     1,
+       0,     2,     0,     2,     1,     0,     3,     0,     3,     1,
+       0,     3,     1,     2,     1,     1,     1,     1,     2,     3,
+       0,     2,     2,     1,     2,     2,     3,     4,     1,     2,
+       3,     1,     2,     1,     1,     1,     1,     0,     5,     2,
+       4,     3,     4,     5,     1,     2,     3,     2,     1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const yytype_uint16 yydefact[] =
+{
+       2,     0,     1,     5,     0,     0,   141,   145,     0,   139,
+     143,   140,   144,     0,     6,    76,   142,   146,     0,   370,
+     367,    75,   138,    74,     0,     0,     0,     0,     0,     0,
+       0,     0,    88,    22,   369,     0,    17,    16,    21,    88,
+       3,    24,     8,     0,     4,     9,    10,    11,    15,    77,
+       0,     0,   132,   113,   112,    12,   111,   128,   110,     0,
+     105,   136,   137,    14,    13,    43,    55,   187,   186,   188,
+     126,    18,   154,     0,     0,   258,   148,   280,     0,     0,
+       0,    88,    88,     0,   289,     0,   261,   264,   266,   265,
+       0,   126,     0,     0,     0,     0,   122,   123,   124,   125,
+       0,     0,    78,    82,     0,    73,    80,    81,   149,   153,
+     134,   106,     0,    44,     0,    56,     0,     0,   105,     0,
+       0,   397,   395,   404,     0,   388,     0,     0,     0,     0,
+       0,     0,     0,     0,   383,     0,     0,     0,     0,   394,
+     393,   396,   380,   371,   372,   375,   376,   377,   391,     0,
+     374,   368,     0,   254,   256,   259,   260,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   201,
+     215,   213,   214,   220,   313,   365,   282,   282,   326,   364,
+     102,   282,   216,   222,   147,    92,    93,   104,   181,   103,
+     101,   198,   282,   197,   211,   282,   360,   282,   322,   225,
+     282,   323,   325,   357,   356,   359,   358,     0,    67,     0,
+      66,     0,     0,     0,   131,   262,   263,     0,   105,    91,
+     100,    90,    89,     0,     0,     0,    98,     0,   243,   242,
+     240,   241,   244,   230,   229,    36,   234,   351,   246,   353,
+     352,   183,   184,   279,   235,   236,   237,   238,   239,   278,
+     277,   293,    34,    23,    29,    26,    27,    25,    28,    30,
+      33,    31,   233,   245,   227,     0,   247,    32,   345,   346,
+     350,    35,    79,    38,     0,   151,     0,   135,    52,     0,
+      42,    53,    51,    46,    47,    45,    72,    48,    50,    49,
+      63,    54,    64,    62,    58,    57,    59,    61,    60,   127,
+       0,    20,    19,   155,     0,   405,     0,   408,     0,   399,
+     389,     0,     0,     0,     0,     0,   384,   385,     0,     0,
+       0,   378,   392,   373,   255,   257,     0,   223,     0,   221,
+     194,   190,   192,   189,   219,   191,   193,   182,     0,   175,
+     291,   217,   286,   281,   291,     0,     0,   212,    86,     0,
+      87,   180,   218,     0,     0,     0,   225,   283,   319,   320,
+     225,   327,   362,   324,   195,   321,    94,    71,    65,    68,
+      69,    70,    97,    99,   290,   133,     0,   117,   116,   114,
+     118,   115,   355,   354,   206,     0,     0,   228,   349,   294,
+       0,   274,   269,   272,   271,   275,   273,   270,   276,   268,
+     232,   231,   248,   249,   267,     0,     0,     0,     0,    39,
+       0,   150,     0,   108,     7,   129,     0,   407,   406,   401,
+     390,     0,     0,     0,   386,     0,   379,   382,     0,   381,
+       0,   224,   157,   159,     0,     0,   285,     0,   284,   178,
+       0,     0,     0,     0,   200,   225,   202,     0,   205,   360,
+     315,   302,   295,   296,   297,     0,   303,   311,   314,   298,
+     366,   196,   199,     0,   332,   331,     0,   329,   361,   250,
+     279,   226,     0,    96,   130,     0,     0,     0,   119,   210,
+     185,   344,   343,   347,   348,   166,   169,   164,   167,   168,
+     171,     0,   172,     0,   165,     0,   170,     0,     0,    37,
+     173,     0,    41,   152,     0,     0,     0,   402,   400,   387,
+     156,   158,     0,   176,   292,   288,   287,   179,     0,    83,
+       0,   204,     0,   208,   362,   312,   310,   308,   307,   299,
+     300,   304,   309,   301,   305,   306,   334,   333,   328,   251,
+     363,   282,    88,     0,     0,     0,    40,     0,     0,   161,
+       0,   174,   107,   109,   398,   403,   177,    84,    85,     0,
+     250,   337,   335,   330,   336,   338,   340,   253,   252,   316,
+       0,   120,   209,   121,     0,   163,   160,   207,   225,     0,
+     342,   341,   317,   318,    95,     0,   203,   339,   162
+};
+
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,     1,   369,    40,   221,   119,   370,    43,    44,   253,
+     107,   410,    45,   114,    46,   116,    47,   209,   285,   286,
+      49,    50,    51,   183,    92,   222,   473,    52,    53,    54,
+     185,   112,   276,   504,   186,    56,   380,    97,    98,   479,
+      99,    57,   118,    58,    59,    60,    61,   109,   274,   412,
+      62,   120,   187,   433,   434,   500,   501,   502,   338,   188,
+     189,   333,   339,   334,   190,   191,   192,   353,   446,   386,
+     448,   387,   193,   194,   364,   471,   262,   263,   264,   401,
+     541,   155,   156,    87,   195,   196,    90,   402,   403,   265,
+      78,   341,   356,   342,   357,    85,   436,   266,   456,   534,
+     457,   535,   458,   354,   197,   583,   198,   199,   200,   201,
+     538,   467,   563,   564,   565,   267,   268,   269,   270,   344,
+     207,   362,   469,   202,   355,    63,    74,   336,    73,   143,
+     144,   145,   146,   320,   147,   148,   306,   307,   304,   308
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -396
+static const yytype_int16 yypact[] =
+{
+    -396,  1355,  -396,  -396,   -53,     5,  -396,  -396,   166,  -396,
+    -396,  -396,  -396,    39,  -396,  -396,  -396,  -396,   166,  -396,
+    -396,  -396,  -396,  -396,  1803,   166,    56,   102,   123,    57,
+     -70,   166,  -396,  -396,  -396,   291,  -396,  -396,  -396,  -396,
+    -396,  -396,  -396,   -91,  -396,  -396,  -396,  -396,  -396,  -396,
+     129,    63,  -396,  -396,  -396,  -396,    66,  -396,  -396,    29,
+      75,  -396,  -396,  -396,  -396,    46,    73,  -396,  -396,  -396,
+     -35,  -396,  -396,  1838,   227,    50,  -396,  -396,  1677,   -37,
+    1551,  -396,  -396,     1,  -396,  1677,    50,  -396,  -396,  -396,
+     -70,   -35,   694,   291,   291,   291,  -396,  -396,  -396,  -396,
+     820,   545,    94,  -396,   135,  -396,  -396,  -396,  -396,   199,
+    -396,  -396,    29,  -396,  1407,  -396,  1490,   166,    75,    58,
+    1677,  -396,  -396,  -396,   227,  -396,   407,    55,    55,    55,
+      55,    55,    55,    55,  -396,   227,    55,    55,    55,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  1873,
+    -396,  -396,   243,  -396,  -396,   131,   136,   159,    16,   266,
+     193,   166,   229,   166,   166,   229,   160,   166,    57,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,   229,   229,  -396,  -396,
+    -396,   229,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,  -396,   229,  -396,  -396,   229,  -396,   229,  -396,  -396,
+     229,  -396,  -396,  -396,  -396,  -396,  -396,  1677,  -396,    61,
+    -396,   954,  1088,   204,  -396,   131,   136,  1677,    75,  -396,
+    -396,  -396,  -396,    10,  1677,    83,  -396,   105,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,   171,  -396,  -396,
+     180,  -396,  -396,    30,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,    33,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+     185,  -396,  -396,  -396,  -396,  1767,  -396,    69,  -396,    74,
+    -396,  -396,  -396,   234,    29,  -396,   192,  -396,  -396,   206,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    1677,  -396,  -396,  -396,   198,  -396,   407,  -396,   407,  -396,
+    -396,    55,    55,    55,   407,    55,  -396,  -396,   227,    55,
+     359,  -396,  -396,  -396,  -396,  -396,   200,  -396,   212,  -396,
+    -396,  -396,  -396,   185,  -396,  -396,  -396,  -396,    55,   208,
+    -396,  -396,  -396,   205,  -396,    55,   220,  -396,   -25,   223,
+     229,  -396,  -396,    20,    82,  1838,  -396,   205,  -396,  -396,
+    -396,   312,   209,  -396,  1920,  -396,   364,  -396,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  1677,  -396,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,   143,   332,  -396,  -396,  -396,
+     112,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   185,
+    -396,  -396,  -396,  -396,  -396,   143,   143,   143,   143,  -396,
+     219,  -396,    29,  -396,  -396,  -396,  1551,  -396,  -396,  -396,
+    -396,   407,   407,    55,  -396,   227,  -396,  -396,  1873,  -396,
+     246,  -396,  -396,    55,   240,   166,   245,   169,   245,  -396,
+     289,   249,    33,   250,  -396,  -396,  -396,   342,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,    86,  -396,   178,  -396,  -396,
+    -396,  1920,  1920,   260,  -396,  -396,   260,  -396,  -396,  -100,
+     275,  -396,   274,  -396,  -396,   232,   232,   232,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,    55,  -396,   166,  -396,   166,  -396,   166,   273,  -396,
+    -396,   283,  -396,  -396,   272,    67,   407,  -396,  -396,  -396,
+    -396,  -396,   289,  -396,  -396,  -396,  -396,  -396,    33,  -396,
+      33,  1920,   232,  -396,   209,   178,  -396,  -396,  -396,  -396,
+    -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   341,    50,
+    -396,   229,  -396,    10,  1920,    83,  -396,    55,    55,  -396,
+     289,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,   -44,
+    -100,  -396,  -396,  -396,   276,  -396,   -18,   131,   136,   383,
+    1222,  -396,  -396,  -396,   292,  -396,  -396,  -396,  -396,    33,
+    -396,  -396,  -396,  -396,  -396,    55,  1920,  -396,  -396
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
+{
+    -396,  -396,    48,  -396,    -1,  -396,    36,  -396,    -7,  -396,
+     340,  -396,   344,  -396,   -17,  -396,    -8,    26,   327,     3,
+    -396,  -396,  -396,  -396,   -33,   -26,  -396,  -396,  -396,  -396,
+    -396,   -77,  -396,  -396,    37,   -43,   -97,  -396,  -396,  -337,
+     316,  -396,   358,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,  -396,  -396,  -396,   -96,  -396,  -396,   -51,   121,   294,
+    -396,   -81,    -6,  -395,  -396,  -396,  -396,  -396,  -102,  -329,
+    -396,  -396,  -396,  -396,  -321,   -92,  -396,  -396,   194,  -396,
+     -98,   -79,   -78,   434,   -16,   -27,   373,  -396,  -396,  -396,
+    -396,   318,  -164,  -137,   -89,   317,   140,  -396,  -396,  -396,
+      31,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,  -396,
+    -396,   -50,  -396,  -396,   -87,  -396,  -101,  -225,  -148,   -74,
+    -396,    47,   -29,  -396,  -396,    59,  -396,     0,  -396,   142,
+     -64,  -396,  -122,  -396,  -396,  -126,   -52,   -58,  -396,  -274
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const yytype_uint16 yytable[] =
+{
+      41,    64,    70,    89,    48,   206,   100,   215,   216,   261,
+     151,   335,    72,   358,    88,   150,   110,   359,   388,    79,
+     260,   149,   152,   322,   447,    91,   322,   321,   360,   349,
+     321,   361,   327,   363,   418,   461,   365,    42,    55,   462,
+     422,   300,   539,    19,   106,   517,   429,   580,   211,   212,
+      41,   101,   184,   203,   210,   204,    75,   445,   540,   214,
+     305,    76,   367,    89,   103,   203,    86,   204,   367,   277,
+     108,   316,   152,   343,    88,   259,   343,   340,   104,    27,
+     384,    28,    75,   152,   256,   348,    13,    65,   444,    15,
+     205,   323,    13,   257,   303,    15,    21,   283,    32,   279,
+     252,   271,    21,    23,   258,   279,   284,   117,   294,    23,
+     523,   299,   302,   390,   289,    19,   298,   556,    41,    19,
+     581,   445,   237,   203,   521,   204,   309,   310,   311,   312,
+     313,   314,   315,    34,   111,   317,   318,   319,   543,   544,
+     545,   376,   328,   113,   384,    66,    75,   506,   507,    83,
+     282,   287,   293,   296,   384,   576,   213,   239,   332,   240,
+     388,    84,   281,    33,   292,   450,   350,   451,    33,    39,
+     115,   451,   452,   288,   453,   297,   452,   389,   453,    71,
+     322,   366,   483,   484,   399,   559,    36,    37,    67,    36,
+      37,   375,    38,    19,    36,    37,    80,    38,   378,   301,
+     153,   154,   368,   275,   105,    34,   405,   406,   554,    34,
+      67,   441,   371,   443,    36,    37,   454,    68,    69,   381,
+     454,    70,   272,   377,   379,   485,   486,   455,   407,   408,
+     447,   411,   555,   487,   161,   237,   488,   489,   490,    68,
+      69,   163,    81,   491,   164,   273,   241,   242,   417,   526,
+     203,   167,   204,   527,   424,   492,   427,   586,   528,   203,
+     493,   204,   340,    82,   494,   404,   152,   495,   428,   102,
+     239,    67,   240,   515,   415,   273,   496,   497,   485,   486,
+     385,   324,   329,    34,   345,   346,   487,   325,   351,   488,
+     489,   490,   335,   326,   241,   242,   374,   150,   382,    19,
+      68,    69,   322,   149,   481,   482,   321,   383,   492,   480,
+     419,   420,   421,   493,   423,   529,   530,   494,   425,   203,
+     495,   204,    19,   390,   531,   475,   449,   477,   478,   496,
+     497,   340,   413,   532,   409,   533,   125,   432,   416,   128,
+     414,   130,   430,   431,   439,   134,   135,   136,   137,   138,
+     474,   435,   125,   498,   459,   128,   330,   130,   237,   437,
+     499,   509,   440,   516,   335,   442,   468,   142,   519,   503,
+     417,   331,   472,   152,   463,   464,   465,   569,   466,   330,
+     510,   237,   512,   142,    93,    94,    95,    96,   514,    34,
+     210,   518,   520,   239,   331,   240,    86,    36,    37,   384,
+     241,   242,   335,   463,   464,   465,   498,   466,   121,   223,
+     224,   225,    34,   552,   542,   550,   239,   551,   240,   579,
+      36,    37,   508,   241,   242,   475,   476,   477,   478,   513,
+     582,   203,   511,   204,   585,   475,   522,   477,   478,   332,
+     561,   254,   505,   295,   557,   255,   558,   536,   573,   218,
+     537,   574,   572,   553,   337,   459,   121,   577,    77,   400,
+     567,   568,   578,   217,   566,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
+     137,   138,   139,   347,   438,   352,   525,   547,   562,   548,
+     546,   549,   587,   140,   141,   560,   524,   460,     0,   142,
+     426,     0,     0,     0,     0,   566,     0,     0,   371,   570,
+       0,   332,     0,   122,   123,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,     0,     0,     0,     0,     0,
+     139,     0,   449,     0,     0,     0,     0,     0,     0,   381,
+       0,   140,   141,   571,   379,     0,   432,   575,     0,   332,
+       0,     0,     0,     0,     4,     5,   157,     6,     7,     0,
+     227,     0,     0,     0,     0,     9,    10,    11,    12,     0,
+       0,     0,   158,    15,    16,    17,    18,   159,    19,     0,
+      21,     0,    22,     0,   588,   160,   161,    23,   162,    24,
+       0,    25,     0,   163,    26,    27,   164,    28,   165,   166,
+      29,    30,     0,   167,     0,   168,    31,     0,     0,     0,
+       0,     0,   169,     0,    32,     0,   170,   228,     0,   229,
+     230,   171,   231,   172,   232,     0,   173,   233,     0,   174,
+       0,   234,     0,   175,   176,   235,   236,   237,     0,     0,
+       0,     0,     0,     0,     0,     0,   177,     0,   238,     0,
+     178,   179,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    34,    35,
+     180,    75,   239,     0,   240,   181,    36,    37,     0,   241,
+     242,    86,   243,     0,     0,    39,     0,     0,     0,   182,
+     244,   245,   246,   247,   248,   219,     0,   249,   250,     0,
+       0,   251,     0,     0,     0,   157,     6,     7,     0,     8,
+       0,     0,     0,     0,     9,    10,    11,    12,     0,     0,
+       0,   158,     0,    16,    17,    18,   159,     0,     0,     0,
+       0,    22,     0,     0,   160,   161,     0,   162,    24,     0,
+      25,     0,   163,     0,    27,   164,    28,   165,   166,    29,
+      30,     0,   167,     0,   168,    31,     0,     0,     0,     0,
+       0,   169,     0,    32,   220,   170,     0,     0,     0,     0,
+     171,     0,   172,     0,     0,   173,     0,     0,   174,     0,
+       0,     0,   175,   176,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   177,     0,     0,     0,   178,
+     179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    35,   180,
+      75,   219,     0,     0,   181,    36,    37,     0,     0,     0,
+      86,   157,     6,     7,    39,     8,     0,     0,   182,     0,
+       9,    10,    11,    12,     0,     0,     0,   158,     0,    16,
+      17,    18,   159,     0,     0,     0,     0,    22,     0,     0,
+     160,   161,     0,   162,    24,     0,    25,     0,   163,     0,
+      27,   164,    28,   165,   166,    29,    30,     0,   167,     0,
+     168,    31,     0,     0,     0,     0,     0,   169,     0,    32,
+       0,   170,     0,     0,     0,     0,   171,     0,   172,     0,
+       0,   173,     0,     0,   174,     0,     0,     0,   175,   176,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   177,     0,     0,     0,   178,   179,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    35,   180,    75,     0,     0,     0,
+     181,    36,    37,     0,     0,   219,    86,     0,     0,     0,
+      39,   226,     0,     0,   182,   157,     6,     7,     0,     8,
+       0,     0,     0,     0,     9,    10,    11,    12,     0,     0,
+       0,   158,     0,    16,    17,    18,   159,     0,     0,     0,
+       0,    22,     0,     0,   160,   161,     0,   162,    24,     0,
+      25,     0,   163,     0,    27,   164,    28,   165,   166,    29,
+      30,     0,   167,     0,   168,    31,     0,     0,     0,     0,
+       0,   169,     0,    32,     0,   170,     0,     0,     0,     0,
+     171,     0,   172,     0,     0,   173,     0,     0,   174,     0,
+       0,     0,   175,   176,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   177,     0,     0,     0,   178,
+     179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    35,   180,
+      75,     0,     0,     0,   181,    36,    37,     0,     0,   219,
+      86,     0,     0,     0,    39,   372,     0,     0,   182,   157,
+       6,     7,     0,     8,     0,     0,     0,     0,     9,    10,
+      11,    12,     0,     0,     0,   158,     0,    16,    17,    18,
+     159,     0,     0,     0,     0,    22,     0,     0,   160,   161,
+       0,   162,    24,     0,    25,     0,   163,     0,    27,   164,
+      28,   165,   166,    29,    30,     0,   167,     0,   168,    31,
+       0,     0,     0,     0,     0,   169,     0,    32,     0,   170,
+       0,     0,     0,     0,   171,     0,   172,     0,     0,   173,
+       0,     0,   174,     0,     0,     0,   175,   176,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
+       0,     0,     0,   178,   179,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    35,   180,    75,     0,     0,     0,   181,    36,
+      37,     0,     0,   219,    86,     0,     0,     0,    39,   373,
+       0,     0,   182,   157,     6,     7,     0,     8,     0,     0,
+       0,     0,     9,    10,    11,    12,     0,     0,     0,   158,
+       0,    16,    17,    18,   159,     0,     0,     0,     0,    22,
+       0,     0,   160,   161,     0,   162,    24,     0,    25,     0,
+     163,     0,    27,   164,    28,   165,   166,    29,    30,     0,
+     167,     0,   168,    31,     0,     0,     0,     0,     0,   169,
+       0,    32,     0,   170,     0,     0,     0,     0,   171,     0,
+     172,     0,     0,   173,     0,     0,   174,     0,     0,     0,
+     175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   177,     0,     0,     0,   178,   179,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    35,   180,    75,     0,
+       0,     0,   181,    36,    37,     2,     3,     0,    86,     0,
+       0,     0,    39,   584,     4,     5,   182,     6,     7,     0,
+       8,     0,     0,     0,     0,     9,    10,    11,    12,     0,
+      13,    14,     0,    15,    16,    17,    18,     0,    19,    20,
+      21,     0,    22,     0,     0,     0,     0,    23,     0,    24,
+       0,    25,     0,     0,    26,    27,     0,    28,   278,     0,
+      29,    30,     0,     0,     0,     0,    31,     5,     0,     6,
+       7,     0,     8,     0,    32,     0,     0,     9,    10,    11,
+      12,     0,    13,     0,     0,    15,    16,    17,    18,     0,
+      19,    20,    21,     0,    22,   279,     0,     0,     0,    23,
+       0,    24,     0,    25,     0,     0,    26,    27,     0,    28,
+      33,     0,    29,    30,     0,     0,     0,     0,    31,     0,
+       0,     0,     0,     0,     0,     0,    32,     0,    34,    35,
+       0,     0,     0,     0,     0,     0,    36,    37,     0,    38,
+       0,   290,     0,     0,     0,    39,     0,     0,     0,     0,
+       0,     0,     6,     7,     0,     8,     0,     0,     0,     0,
+       9,    10,    11,    12,     0,    13,     0,     0,    15,    16,
+      17,    18,     0,    19,    20,    21,     0,    22,   279,     0,
+      34,    35,    23,     0,    24,     0,    25,     0,     0,    26,
+      27,     0,    28,     0,     0,    29,    30,    39,   280,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,   157,     6,     7,     0,     8,     0,     0,     0,
+       0,     9,    10,    11,    12,     0,     0,     0,   158,     0,
+      16,    17,    18,   159,     0,     0,     0,     0,    22,     0,
+       0,   160,   161,     0,   162,    24,     0,    25,     0,   163,
+       0,    27,   164,    28,   165,   166,    29,    30,     0,   167,
+       0,   168,    31,    34,    35,     0,     0,     0,   169,     0,
+      32,     0,   170,     0,     0,     0,     0,   171,     0,   172,
+      39,   291,   173,     0,     0,   174,     0,     0,     0,   175,
+     176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   177,     0,     0,     0,   178,   179,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    35,   180,    75,     0,     0,
+       0,   181,     0,     0,   208,     0,     0,    86,   157,     6,
+       7,    39,     8,     0,     0,   182,     0,     9,    10,    11,
+      12,     0,     0,     0,   158,     0,    16,    17,    18,   159,
+       0,     0,     0,     0,    22,     0,     0,   160,   161,     0,
+     162,    24,     0,    25,     0,   163,     0,    27,   164,    28,
+     165,   166,    29,    30,     0,   167,     0,   168,    31,     0,
+       0,     0,     0,     0,   169,     0,    32,     0,   170,     0,
+       0,     0,     0,   171,     0,   172,     0,     0,   173,     0,
+       0,   174,     0,     0,     0,   175,   176,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   177,     0,
+       0,     0,   178,   179,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      19,    35,   180,    75,     0,     0,     0,   181,     0,     0,
+       0,     0,     0,    86,     0,     6,     7,    39,     8,     0,
+       0,   182,     0,     9,    10,    11,    12,     0,     0,     0,
+       0,     0,    16,    17,    18,   391,     0,     0,     0,   228,
+      22,   229,   230,     0,   231,     0,   232,    24,     0,    25,
+       0,     0,     0,    27,     0,    28,     0,   392,    29,    30,
+       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
+     238,     0,    32,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   121,     0,     0,
+      34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   241,   242,     0,   393,   394,     0,     0,     0,     0,
+     395,   396,   244,   245,   246,   247,   248,     0,     0,   397,
+     398,     0,   121,   251,     0,     0,     0,    35,     0,    75,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    39,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   140,   141,     0,     0,     0,     0,   142,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,     0,   228,     0,   229,   230,   139,   231,     0,   232,
+       0,     0,   233,     0,     0,     0,   234,   140,   141,     0,
+       0,   236,     0,   142,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   238,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   470,     0,     0,
+       0,     0,     0,     0,     0,   244,   245,   246,   247,   248,
+       0,     0,   249,   250,     0,     0,   251
+};
+
+static const yytype_int16 yycheck[] =
+{
+       1,     1,     8,    30,     1,    79,    39,    86,    86,   101,
+      74,   159,    18,   177,    30,    73,    59,   181,   243,    25,
+     101,    73,    74,   149,   353,    31,   152,   149,   192,   166,
+     152,   195,    16,   197,   308,   356,   200,     1,     1,   360,
+     314,   118,   142,    33,    51,   440,   320,    65,    81,    82,
+      51,   142,    78,    90,    80,    92,   126,   101,   158,    85,
+     124,    24,     1,    90,     1,    90,   136,    92,     1,   112,
+       4,   135,   124,   162,    90,   101,   165,   102,    15,    50,
+     124,    52,   126,   135,   101,   166,    25,   140,    68,    28,
+     127,   149,    25,   101,   120,    28,    35,   114,    69,    38,
+     101,   101,    35,    42,   101,    38,   114,   142,   116,    42,
+     447,   117,   119,   138,   114,    33,   116,   512,   119,    33,
+     138,   101,    92,    90,   445,    92,   127,   128,   129,   130,
+     131,   132,   133,   123,    59,   136,   137,   138,   475,   476,
+     477,   218,   126,    97,   124,   140,   126,   421,   422,    92,
+     114,   114,   116,   116,   124,   550,   155,   127,   159,   129,
+     385,   104,   114,   105,   116,    83,   166,    85,   105,   140,
+      97,    85,    90,   114,    92,   116,    90,   251,    92,   140,
+     306,   207,   407,   408,   265,   522,   131,   132,   105,   131,
+     132,   217,   134,    33,   131,   132,   140,   134,   224,   141,
+     150,   151,   141,     4,   141,   123,   137,   138,   141,   123,
+     105,   348,   209,   350,   131,   132,   134,   134,   135,   225,
+     134,   227,   128,   223,   225,     6,     7,   145,   154,   155,
+     559,   274,   506,    14,    41,    92,    17,    18,    19,   134,
+     135,    48,   140,    24,    51,   140,   134,   135,   306,    71,
+      90,    58,    92,    75,   318,    36,   320,   578,    80,    90,
+      41,    92,   102,   140,    45,   265,   318,    48,   320,   140,
+     127,   105,   129,   104,   300,   140,    57,    58,     6,     7,
+     137,   150,    16,   123,   163,   164,    14,   151,   167,    17,
+      18,    19,   440,   134,   134,   135,    92,   355,   127,    33,
+     134,   135,   428,   355,   405,   406,   428,   127,    36,   390,
+     311,   312,   313,    41,   315,   137,   138,    45,   319,    90,
+      48,    92,    33,   138,   146,    93,   353,    95,    96,    57,
+      58,   102,   140,   155,   100,   157,   109,   338,   140,   112,
+     134,   114,   142,   131,   345,   118,   119,   120,   121,   122,
+     376,   143,   109,   134,   354,   112,    90,   114,    92,   154,
+     141,   425,   142,   437,   512,   142,   157,   140,   442,   412,
+     428,   105,     8,   425,    62,    63,    64,   541,    66,    90,
+     134,    92,   142,   140,    93,    94,    95,    96,   143,   123,
+     416,   142,   142,   127,   105,   129,   136,   131,   132,   124,
+     134,   135,   550,    62,    63,    64,   134,    66,    49,    93,
+      94,    95,   123,   141,   140,   142,   127,   134,   129,   143,
+     131,   132,   423,   134,   135,    93,    94,    95,    96,   435,
+      47,    90,   433,    92,   142,    93,    94,    95,    96,   440,
+      99,   101,   416,   116,   518,   101,   520,   463,   545,    91,
+     466,   547,   544,   504,   160,   455,    49,   559,    24,   265,
+     539,   539,   560,    90,   538,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   123,   165,   344,   168,   455,   493,   538,   495,
+     491,   497,   579,   134,   135,   524,   449,   355,    -1,   140,
+     141,    -1,    -1,    -1,    -1,   579,    -1,    -1,   505,   542,
+      -1,   512,    -1,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,    -1,    -1,    -1,    -1,    -1,
+     123,    -1,   559,    -1,    -1,    -1,    -1,    -1,    -1,   545,
+      -1,   134,   135,   543,   545,    -1,   547,   548,    -1,   550,
+      -1,    -1,    -1,    -1,     9,    10,    11,    12,    13,    -1,
+      15,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,
+      -1,    -1,    27,    28,    29,    30,    31,    32,    33,    -1,
+      35,    -1,    37,    -1,   585,    40,    41,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,
+      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    -1,    84,
+      -1,    86,    -1,    88,    89,    90,    91,    92,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
+     105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,   124,
+     125,   126,   127,    -1,   129,   130,   131,   132,    -1,   134,
+     135,   136,   137,    -1,    -1,   140,    -1,    -1,    -1,   144,
+     145,   146,   147,   148,   149,     1,    -1,   152,   153,    -1,
+      -1,   156,    -1,    -1,    -1,    11,    12,    13,    -1,    15,
+      -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,    -1,
+      -1,    27,    -1,    29,    30,    31,    32,    -1,    -1,    -1,
+      -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,    -1,
+      46,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
+      56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,
+      76,    -1,    78,    -1,    -1,    81,    -1,    -1,    84,    -1,
+      -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   125,
+     126,     1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,
+     136,    11,    12,    13,   140,    15,    -1,    -1,   144,    -1,
+      20,    21,    22,    23,    -1,    -1,    -1,    27,    -1,    29,
+      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
+      40,    41,    -1,    43,    44,    -1,    46,    -1,    48,    -1,
+      50,    51,    52,    53,    54,    55,    56,    -1,    58,    -1,
+      60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
+      -1,    71,    -1,    -1,    -1,    -1,    76,    -1,    78,    -1,
+      -1,    81,    -1,    -1,    84,    -1,    -1,    -1,    88,    89,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   101,    -1,    -1,    -1,   105,   106,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,    -1,
+     130,   131,   132,    -1,    -1,     1,   136,    -1,    -1,    -1,
+     140,   141,    -1,    -1,   144,    11,    12,    13,    -1,    15,
+      -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,    -1,
+      -1,    27,    -1,    29,    30,    31,    32,    -1,    -1,    -1,
+      -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,    -1,
+      46,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
+      56,    -1,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    -1,    -1,
+      76,    -1,    78,    -1,    -1,    81,    -1,    -1,    84,    -1,
+      -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,   125,
+     126,    -1,    -1,    -1,   130,   131,   132,    -1,    -1,     1,
+     136,    -1,    -1,    -1,   140,   141,    -1,    -1,   144,    11,
+      12,    13,    -1,    15,    -1,    -1,    -1,    -1,    20,    21,
+      22,    23,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
+      32,    -1,    -1,    -1,    -1,    37,    -1,    -1,    40,    41,
+      -1,    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,
+      52,    53,    54,    55,    56,    -1,    58,    -1,    60,    61,
+      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
+      -1,    -1,    -1,    -1,    76,    -1,    78,    -1,    -1,    81,
+      -1,    -1,    84,    -1,    -1,    -1,    88,    89,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
+      -1,    -1,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   124,   125,   126,    -1,    -1,    -1,   130,   131,
+     132,    -1,    -1,     1,   136,    -1,    -1,    -1,   140,   141,
+      -1,    -1,   144,    11,    12,    13,    -1,    15,    -1,    -1,
+      -1,    -1,    20,    21,    22,    23,    -1,    -1,    -1,    27,
+      -1,    29,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
+      -1,    -1,    40,    41,    -1,    43,    44,    -1,    46,    -1,
+      48,    -1,    50,    51,    52,    53,    54,    55,    56,    -1,
+      58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
+      -1,    69,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,
+      78,    -1,    -1,    81,    -1,    -1,    84,    -1,    -1,    -1,
+      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   101,    -1,    -1,    -1,   105,   106,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   124,   125,   126,    -1,
+      -1,    -1,   130,   131,   132,     0,     1,    -1,   136,    -1,
+      -1,    -1,   140,   141,     9,    10,   144,    12,    13,    -1,
+      15,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    -1,
+      25,    26,    -1,    28,    29,    30,    31,    -1,    33,    34,
+      35,    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    44,
+      -1,    46,    -1,    -1,    49,    50,    -1,    52,     1,    -1,
+      55,    56,    -1,    -1,    -1,    -1,    61,    10,    -1,    12,
+      13,    -1,    15,    -1,    69,    -1,    -1,    20,    21,    22,
+      23,    -1,    25,    -1,    -1,    28,    29,    30,    31,    -1,
+      33,    34,    35,    -1,    37,    38,    -1,    -1,    -1,    42,
+      -1,    44,    -1,    46,    -1,    -1,    49,    50,    -1,    52,
+     105,    -1,    55,    56,    -1,    -1,    -1,    -1,    61,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,   123,   124,
+      -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,   134,
+      -1,     1,    -1,    -1,    -1,   140,    -1,    -1,    -1,    -1,
+      -1,    -1,    12,    13,    -1,    15,    -1,    -1,    -1,    -1,
+      20,    21,    22,    23,    -1,    25,    -1,    -1,    28,    29,
+      30,    31,    -1,    33,    34,    35,    -1,    37,    38,    -1,
+     123,   124,    42,    -1,    44,    -1,    46,    -1,    -1,    49,
+      50,    -1,    52,    -1,    -1,    55,    56,   140,   141,    -1,
+      -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
+      -1,    -1,    11,    12,    13,    -1,    15,    -1,    -1,    -1,
+      -1,    20,    21,    22,    23,    -1,    -1,    -1,    27,    -1,
+      29,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,
+      -1,    40,    41,    -1,    43,    44,    -1,    46,    -1,    48,
+      -1,    50,    51,    52,    53,    54,    55,    56,    -1,    58,
+      -1,    60,    61,   123,   124,    -1,    -1,    -1,    67,    -1,
+      69,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,    78,
+     140,   141,    81,    -1,    -1,    84,    -1,    -1,    -1,    88,
+      89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   101,    -1,    -1,    -1,   105,   106,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   124,   125,   126,    -1,    -1,
+      -1,   130,    -1,    -1,   133,    -1,    -1,   136,    11,    12,
+      13,   140,    15,    -1,    -1,   144,    -1,    20,    21,    22,
+      23,    -1,    -1,    -1,    27,    -1,    29,    30,    31,    32,
+      -1,    -1,    -1,    -1,    37,    -1,    -1,    40,    41,    -1,
+      43,    44,    -1,    46,    -1,    48,    -1,    50,    51,    52,
+      53,    54,    55,    56,    -1,    58,    -1,    60,    61,    -1,
+      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
+      -1,    -1,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,
+      -1,    84,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
+      -1,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      33,   124,   125,   126,    -1,    -1,    -1,   130,    -1,    -1,
+      -1,    -1,    -1,   136,    -1,    12,    13,   140,    15,    -1,
+      -1,   144,    -1,    20,    21,    22,    23,    -1,    -1,    -1,
+      -1,    -1,    29,    30,    31,    68,    -1,    -1,    -1,    72,
+      37,    74,    75,    -1,    77,    -1,    79,    44,    -1,    46,
+      -1,    -1,    -1,    50,    -1,    52,    -1,    90,    55,    56,
+      -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
+     103,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,
+     123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   134,   135,    -1,   137,   138,    -1,    -1,    -1,    -1,
+     143,   144,   145,   146,   147,   148,   149,    -1,    -1,   152,
+     153,    -1,    49,   156,    -1,    -1,    -1,   124,    -1,   126,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   140,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   134,   135,    -1,    -1,    -1,    -1,   140,   106,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,    -1,    72,    -1,    74,    75,   123,    77,    -1,    79,
+      -1,    -1,    82,    -1,    -1,    -1,    86,   134,   135,    -1,
+      -1,    91,    -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   145,   146,   147,   148,   149,
+      -1,    -1,   152,   153,    -1,    -1,   156
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const yytype_uint16 yystos[] =
+{
+       0,   160,     0,     1,     9,    10,    12,    13,    15,    20,
+      21,    22,    23,    25,    26,    28,    29,    30,    31,    33,
+      34,    35,    37,    42,    44,    46,    49,    50,    52,    55,
+      56,    61,    69,   105,   123,   124,   131,   132,   134,   140,
+     162,   163,   165,   166,   167,   171,   173,   175,   178,   179,
+     180,   181,   186,   187,   188,   193,   194,   200,   202,   203,
+     204,   205,   209,   284,   286,   140,   140,   105,   134,   135,
+     221,   140,   221,   287,   285,   126,   193,   242,   249,   221,
+     140,   140,   140,    92,   104,   254,   136,   242,   243,   244,
+     245,   221,   183,    93,    94,    95,    96,   196,   197,   199,
+     183,   142,   140,     1,    15,   141,   167,   169,     4,   206,
+     194,    59,   190,    97,   172,    97,   174,   142,   201,   164,
+     210,    49,   106,   107,   108,   109,   110,   111,   112,   113,
+     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+     134,   135,   140,   288,   289,   290,   291,   293,   294,   295,
+     296,   289,   295,   150,   151,   240,   241,    11,    27,    32,
+      40,    41,    43,    48,    51,    53,    54,    58,    60,    67,
+      71,    76,    78,    81,    84,    88,    89,   101,   105,   106,
+     125,   130,   144,   182,   184,   189,   193,   211,   218,   219,
+     223,   224,   225,   231,   232,   243,   244,   263,   265,   266,
+     267,   268,   282,    90,    92,   127,   278,   279,   133,   176,
+     184,   183,   183,   155,   184,   240,   241,   245,   201,     1,
+      70,   163,   184,   199,   199,   199,   141,    15,    72,    74,
+      75,    77,    79,    82,    86,    90,    91,    92,   103,   127,
+     129,   134,   135,   137,   145,   146,   147,   148,   149,   152,
+     153,   156,   163,   168,   169,   171,   173,   175,   178,   184,
+     220,   234,   235,   236,   237,   248,   256,   274,   275,   276,
+     277,   286,   128,   140,   207,     4,   191,   194,     1,    38,
+     141,   161,   165,   173,   175,   177,   178,   193,   284,   286,
+       1,   141,   161,   165,   175,   177,   193,   284,   286,   221,
+     190,   141,   167,   184,   297,   289,   295,   296,   298,   163,
+     163,   163,   163,   163,   163,   163,   289,   163,   163,   163,
+     292,   291,   294,   296,   150,   151,   134,    16,   126,    16,
+      90,   105,   163,   220,   222,   277,   286,   218,   217,   221,
+     102,   250,   252,   253,   278,   217,   217,   250,   220,   252,
+     286,   217,   254,   226,   262,   283,   251,   253,   251,   251,
+     251,   251,   280,   251,   233,   251,   184,     1,   141,   161,
+     165,   178,   141,   141,    92,   184,   190,   286,   184,   163,
+     195,   221,   127,   127,   124,   137,   228,   230,   276,   278,
+     138,    68,    90,   137,   138,   143,   144,   152,   153,   220,
+     237,   238,   246,   247,   286,   137,   138,   154,   155,   100,
+     170,   194,   208,   140,   134,   184,   140,   296,   298,   163,
+     163,   163,   298,   163,   289,   163,   141,   289,   295,   298,
+     142,   131,   163,   212,   213,   143,   255,   154,   255,   163,
+     142,   252,   142,   252,    68,   101,   227,   228,   229,   244,
+      83,    85,    90,    92,   134,   145,   257,   259,   261,   286,
+     288,   233,   233,    62,    63,    64,    66,   270,   157,   281,
+     137,   234,     8,   185,   184,    93,    94,    95,    96,   198,
+     220,   275,   275,   276,   276,     6,     7,    14,    17,    18,
+      19,    24,    36,    41,    45,    48,    57,    58,   134,   141,
+     214,   215,   216,   194,   192,   176,   298,   298,   163,   289,
+     134,   163,   142,   221,   143,   104,   278,   222,   142,   278,
+     142,   233,    94,   198,   280,   259,    71,    75,    80,   137,
+     138,   146,   155,   157,   258,   260,   243,   243,   269,   142,
+     158,   239,   140,   198,   198,   198,   163,   221,   221,   221,
+     142,   134,   141,   216,   141,   298,   222,   278,   278,   198,
+     281,    99,   270,   271,   272,   273,   278,   240,   241,   251,
+     183,   286,   234,   195,   213,   163,   222,   227,   239,   143,
+      65,   138,    47,   264,   141,   142,   233,   273,   163
+};
+
+#define yyerrok                (yyerrstatus = 0)
+#define yyclearin      (yychar = YYEMPTY)
+#define YYEMPTY                (-2)
+#define YYEOF          0
+
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT                goto yyabortlab
+#define YYERROR                goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+
+#define YYFAIL         goto yyerrlab
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)                                 \
+do                                                             \
+  if (yychar == YYEMPTY && yylen == 1)                         \
+    {                                                          \
+      yychar = (Token);                                                \
+      yylval = (Value);                                                \
+      yytoken = YYTRANSLATE (yychar);                          \
+      YYPOPSTACK (1);                                          \
+      goto yybackup;                                           \
+    }                                                          \
+  else                                                         \
+    {                                                          \
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;                                                 \
+    }                                                          \
+while (YYID (0))
+
+
+#define YYTERROR       1
+#define YYERRCODE      256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
+    do                                                                 \
+      if (YYID (N))                                                    \
+       {                                                               \
+         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
+         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
+         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
+         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
+       }                                                               \
+      else                                                             \
+       {                                                               \
+         (Current).first_line   = (Current).last_line   =              \
+           YYRHSLOC (Rhs, 0).last_line;                                \
+         (Current).first_column = (Current).last_column =              \
+           YYRHSLOC (Rhs, 0).last_column;                              \
+       }                                                               \
+    while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)                 \
+     fprintf (File, "%d.%d-%d.%d",                     \
+             (Loc).first_line, (Loc).first_column,     \
+             (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval, &yylloc)
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)                       \
+do {                                           \
+  if (yydebug)                                 \
+    YYFPRINTF Args;                            \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yy_symbol_print (stderr,                                           \
+                 Type, Value, Location); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+    YYLTYPE const * const yylocationp;
+#endif
+{
+  if (!yyvaluep)
+    return;
+  YYUSE (yylocationp);
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+       break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+    YYLTYPE const * const yylocationp;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  YY_LOCATION_PRINT (yyoutput, *yylocationp);
+  YYFPRINTF (yyoutput, ": ");
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
+  YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    yytype_int16 *bottom;
+    yytype_int16 *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yylsp, yyrule)
+    YYSTYPE *yyvsp;
+    YYLTYPE *yylsp;
+    int yyrule;
+#endif
+{
+  int yynrhs = yyr2[yyrule];
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+            yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+                      &(yyvsp[(yyi + 1) - (yynrhs)])
+                      , &(yylsp[(yyi + 1) - (yynrhs)])                );
+      fprintf (stderr, "\n");
+    }
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (yyvsp, yylsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef        YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+\f
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+       switch (*++yyp)
+         {
+         case '\'':
+         case ',':
+           goto do_not_strip_quotes;
+
+         case '\\':
+           if (*++yyp != '\\')
+             goto do_not_strip_quotes;
+           /* Fall through.  */
+         default:
+           if (yyres)
+             yyres[yyn] = *yyp;
+           yyn++;
+           break;
+
+         case '"':
+           if (yyres)
+             yyres[yyn] = '\0';
+           return yyn;
+         }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+  int yyn = yypact[yystate];
+
+  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+    return 0;
+  else
+    {
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+        constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+                   + sizeof yyexpecting - 1
+                   + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+                      * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+        YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn + 1;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
+
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
+
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+       if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+         {
+           if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+             {
+               yycount = 1;
+               yysize = yysize0;
+               yyformat[sizeof yyunexpected - 1] = '\0';
+               break;
+             }
+           yyarg[yycount++] = yytname[yyx];
+           yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+           yysize_overflow |= (yysize1 < yysize);
+           yysize = yysize1;
+           yyfmt = yystpcpy (yyfmt, yyprefix);
+           yyprefix = yyor;
+         }
+
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
+
+      if (yysize_overflow)
+       return YYSIZE_MAXIMUM;
+
+      if (yyresult)
+       {
+         /* Avoid sprintf, as that infringes on the user's name space.
+            Don't have undefined behavior even if the translation
+            produced a string with the wrong number of "%s"s.  */
+         char *yyp = yyresult;
+         int yyi = 0;
+         while ((*yyp = *yyf) != '\0')
+           {
+             if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+               {
+                 yyp += yytnamerr (yyp, yyarg[yyi++]);
+                 yyf += 2;
+               }
+             else
+               {
+                 yyp++;
+                 yyf++;
+               }
+           }
+       }
+      return yysize;
+    }
+}
+#endif /* YYERROR_VERBOSE */
+\f
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep, yylocationp)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+    YYLTYPE *yylocationp;
+#endif
+{
+  YYUSE (yyvaluep);
+  YYUSE (yylocationp);
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
+    {
+
+      default:
+       break;
+    }
+}
+\f
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+  /* The look-ahead symbol.  */
+int yychar;
+
+/* The semantic value of the look-ahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+/* Location data for the look-ahead symbol.  */
+YYLTYPE yylloc;
+
+  int yystate;
+  int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Look-ahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  yytype_int16 yyssa[YYINITDEPTH];
+  yytype_int16 *yyss = yyssa;
+  yytype_int16 *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  YYSTYPE *yyvsp;
+
+  /* The location stack.  */
+  YYLTYPE yylsa[YYINITDEPTH];
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+  /* The locations where the error started and ended.  */
+  YYLTYPE yyerror_range[2];
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+  YYLTYPE yyloc;
+
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;            /* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss;
+  yyvsp = yyvs;
+  yylsp = yyls;
+#if YYLTYPE_IS_TRIVIAL
+  /* Initialize the default location before parsing starts.  */
+  yylloc.first_line   = yylloc.last_line   = 1;
+  yylloc.first_column = yylloc.last_column = 0;
+#endif
+
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed.  So pushing a state here evens the stacks.  */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+       /* Give user a chance to reallocate the stack.  Use copies of
+          these so that the &'s don't force the real ones into
+          memory.  */
+       YYSTYPE *yyvs1 = yyvs;
+       yytype_int16 *yyss1 = yyss;
+       YYLTYPE *yyls1 = yyls;
+
+       /* Each stack pointer address is followed by the size of the
+          data in use in that stack, in bytes.  This used to be a
+          conditional around just the two extra args, but that might
+          be undefined if yyoverflow is a macro.  */
+       yyoverflow (YY_("memory exhausted"),
+                   &yyss1, yysize * sizeof (*yyssp),
+                   &yyvs1, yysize * sizeof (*yyvsp),
+                   &yyls1, yysize * sizeof (*yylsp),
+                   &yystacksize);
+       yyls = yyls1;
+       yyss = yyss1;
+       yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+       goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+       yystacksize = YYMAXDEPTH;
+
+      {
+       yytype_int16 *yyss1 = yyss;
+       union yyalloc *yyptr =
+         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+       if (! yyptr)
+         goto yyexhaustedlab;
+       YYSTACK_RELOCATE (yyss);
+       YYSTACK_RELOCATE (yyvs);
+       YYSTACK_RELOCATE (yyls);
+#  undef YYSTACK_RELOCATE
+       if (yyss1 != yyssa)
+         YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+      yylsp = yyls + yysize - 1;
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+                 (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+       YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+  /* Do appropriate processing given the current state.  Read a
+     look-ahead token if we need one and don't already have one.  */
+
+  /* First try to decide what to do without reference to look-ahead token.  */
+  yyn = yypact[yystate];
+  if (yyn == YYPACT_NINF)
+    goto yydefault;
+
+  /* Not known => get a look-ahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+       goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  yystate = yyn;
+  *++yyvsp = yylval;
+  *++yylsp = yylloc;
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+  /* Default location.  */
+  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 3:
+#line 453 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+       ;}
+    break;
+
+  case 4:
+#line 455 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+       ;}
+    break;
+
+  case 5:
+#line 457 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->error_level_ = 1;
+       ;}
+    break;
+
+  case 6:
+#line 460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->error_level_ = 1;
+       ;}
+    break;
+
+  case 7:
+#line 467 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(2) - (2)].scm); ;}
+    break;
+
+  case 8:
+#line 471 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->set_identifier (ly_symbol2scm ("$defaultheader"), (yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 9:
+#line 474 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Book *book = (yyvsp[(1) - (1)].book);
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-book-handler");
+               scm_call_2 (proc, PARSER->self_scm (), book->self_scm ());
+               book->unprotect ();
+       ;}
+    break;
+
+  case 10:
+#line 480 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Book *bookpart = (yyvsp[(1) - (1)].book);
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-bookpart-handler");
+               scm_call_2 (proc, PARSER->self_scm (), bookpart->self_scm ());
+               bookpart->unprotect ();
+       ;}
+    break;
+
+  case 11:
+#line 486 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Score *score = (yyvsp[(1) - (1)].score);
+               
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-score-handler");
+               scm_call_2 (proc, PARSER->self_scm (), score->self_scm ());
+               score->unprotect ();
+       ;}
+    break;
+
+  case 12:
+#line 493 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *music = unsmob_music ((yyvsp[(1) - (1)].scm));
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-music-handler");
+               scm_call_2 (proc, PARSER->self_scm (), music->self_scm ());
+       ;}
+    break;
+
+  case 13:
+#line 498 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-text-handler");
+               scm_call_2 (proc, PARSER->self_scm (), scm_list_1 ((yyvsp[(1) - (1)].scm)));
+       ;}
+    break;
+
+  case 14:
+#line 502 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-text-handler");
+               scm_call_2 (proc, PARSER->self_scm (), (yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 15:
+#line 506 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM id = SCM_EOL;
+               Output_def * od = (yyvsp[(1) - (1)].outputdef);
+
+               if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-paper") == SCM_BOOL_T)
+                       id = ly_symbol2scm ("$defaultpaper");
+               else if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-midi") == SCM_BOOL_T)
+                       id = ly_symbol2scm ("$defaultmidi");
+               else if ((yyvsp[(1) - (1)].outputdef)->c_variable ("is-layout") == SCM_BOOL_T)
+                       id = ly_symbol2scm ("$defaultlayout");
+
+               PARSER->lexer_->set_identifier (id, od->self_scm ());
+               od->unprotect();
+       ;}
+    break;
+
+  case 18:
+#line 529 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = get_header (PARSER);
+               PARSER->lexer_->add_scope ((yyval.scm));
+       ;}
+    break;
+
+  case 19:
+#line 533 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               
+       ;}
+    break;
+
+  case 20:
+#line 539 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = PARSER->lexer_->remove_scope ();
+       ;}
+    break;
+
+  case 21:
+#line 548 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 22:
+#line 549 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 23:
+#line 553 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->set_identifier ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+
+/*
+ TODO: devise standard for protection in parser.
+
+  The parser stack lives on the C-stack, which means that
+all objects can be unprotected as soon as they're here.
+
+*/
+       ;}
+    break;
+
+  case 24:
+#line 564 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { ;}
+    break;
+
+  case 25:
+#line 569 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].score)->self_scm ();
+               (yyvsp[(1) - (1)].score)->unprotect ();
+       ;}
+    break;
+
+  case 26:
+#line 573 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
+               (yyvsp[(1) - (1)].book)->unprotect ();
+       ;}
+    break;
+
+  case 27:
+#line 577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
+               (yyvsp[(1) - (1)].book)->unprotect ();
+       ;}
+    break;
+
+  case 28:
+#line 581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].outputdef)->self_scm ();
+               (yyvsp[(1) - (1)].outputdef)->unprotect ();
+       ;}
+    break;
+
+  case 29:
+#line 585 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 30:
+#line 588 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               /* Hack: Create event-chord around standalone events.
+                  Prevents the identifier from being interpreted as a post-event. */
+               Music *mus = unsmob_music ((yyvsp[(1) - (1)].scm));
+               bool is_event = mus &&
+                       (scm_memq (ly_symbol2scm ("event"), mus->get_property ("types"))
+                               != SCM_BOOL_F);
+               if (!is_event)
+                       (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               else
+                       (yyval.scm) = MAKE_SYNTAX ("event-chord", (yyloc), scm_list_1 ((yyvsp[(1) - (1)].scm)));
+       ;}
+    break;
+
+  case 31:
+#line 600 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 32:
+#line 603 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 33:
+#line 606 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 34:
+#line 609 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 35:
+#line 612 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 36:
+#line 615 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+       ;}
+    break;
+
+  case 37:
+#line 622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(3) - (4)].scm);
+       ;}
+    break;
+
+  case 38:
+#line 628 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = Context_def::make_scm ();
+               unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 39:
+#line 632 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 40:
+#line 636 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Context_def*td = unsmob_context_def ((yyval.scm));
+
+               for (SCM p = (yyvsp[(3) - (3)].scm); scm_is_pair (p); p = scm_cdr (p)) {
+                       SCM tag = scm_caar (p);
+
+                       /* TODO: should make new tag "grob-definition" ? */
+                       td->add_context_mod (scm_list_3 (ly_symbol2scm ("assign"),
+                                                       tag, scm_cons (scm_cdar (p), SCM_EOL)));
+               }
+       ;}
+    break;
+
+  case 41:
+#line 647 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               unsmob_context_def ((yyval.scm))->add_context_mod ((yyvsp[(2) - (2)].scm));             
+       ;}
+    break;
+
+  case 42:
+#line 655 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = (yyvsp[(3) - (4)].book);
+               pop_paper (PARSER);
+       ;}
+    break;
+
+  case 43:
+#line 665 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = new Book;
+               init_papers (PARSER);
+               (yyval.book)->origin ()->set_spot ((yyloc));
+               (yyval.book)->paper_ = dynamic_cast<Output_def*> (unsmob_output_def (PARSER->lexer_->lookup_identifier ("$defaultpaper"))->clone ());
+               (yyval.book)->paper_->unprotect ();
+               push_paper (PARSER, (yyval.book)->paper_);
+               (yyval.book)->header_ = PARSER->lexer_->lookup_identifier ("$defaultheader"); 
+       ;}
+    break;
+
+  case 44:
+#line 674 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
+               (yyval.book)->protect ();
+               (yyval.book)->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 45:
+#line 679 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
+               (yyvsp[(2) - (2)].outputdef)->unprotect ();
+               set_paper (PARSER, (yyvsp[(2) - (2)].outputdef));
+       ;}
+    break;
+
+  case 46:
+#line 684 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Book *bookpart = (yyvsp[(2) - (2)].book);
+               SCM proc = PARSER->lexer_->lookup_identifier ("book-bookpart-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), bookpart->self_scm ());
+               bookpart->unprotect ();
+       ;}
+    break;
+
+  case 47:
+#line 690 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Score *score = (yyvsp[(2) - (2)].score);
+               SCM proc = PARSER->lexer_->lookup_identifier ("book-score-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
+               score->unprotect ();
+       ;}
+    break;
+
+  case 48:
+#line 696 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *music = unsmob_music ((yyvsp[(2) - (2)].scm));
+               SCM proc = PARSER->lexer_->lookup_identifier ("book-music-handler");
+               scm_call_3 (proc, PARSER->self_scm (), (yyval.book)->self_scm (), music->self_scm ());
+       ;}
+    break;
+
+  case 49:
+#line 701 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), scm_list_1 ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 50:
+#line 705 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 51:
+#line 709 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 52:
+#line 712 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->paper_ = 0;
+               (yyval.book)->scores_ = SCM_EOL;
+               (yyval.book)->bookparts_ = SCM_EOL;
+       ;}
+    break;
+
+  case 53:
+#line 717 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 54:
+#line 723 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = (yyvsp[(3) - (4)].book);
+       ;}
+    break;
+
+  case 55:
+#line 729 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = new Book;
+               (yyval.book)->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 56:
+#line 733 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
+               (yyval.book)->protect ();
+               (yyval.book)->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 57:
+#line 738 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
+               (yyvsp[(2) - (2)].outputdef)->unprotect ();
+       ;}
+    break;
+
+  case 58:
+#line 742 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Score *score = (yyvsp[(2) - (2)].score);
+               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-score-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
+               score->unprotect ();
+       ;}
+    break;
+
+  case 59:
+#line 748 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *music = unsmob_music ((yyvsp[(2) - (2)].scm));
+               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-music-handler");
+               scm_call_3 (proc, PARSER->self_scm (), (yyval.book)->self_scm (), music->self_scm ());
+       ;}
+    break;
+
+  case 60:
+#line 753 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), scm_list_1 ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 61:
+#line 757 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
+               scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 62:
+#line 761 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 63:
+#line 764 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->paper_ = 0;
+               (yyval.book)->scores_ = SCM_EOL;
+       ;}
+    break;
+
+  case 64:
+#line 768 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.book)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 65:
+#line 774 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.score) = (yyvsp[(3) - (4)].score);
+       ;}
+    break;
+
+  case 66:
+#line 780 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM m = (yyvsp[(1) - (1)].scm);
+               SCM scorify = ly_lily_module_constant ("scorify-music");
+               SCM score = scm_call_2 (scorify, m, PARSER->self_scm ());
+
+               // pass ownernship to C++ again.
+               (yyval.score) = unsmob_score (score);
+               (yyval.score)->protect ();
+               (yyval.score)->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 67:
+#line 790 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.score) = unsmob_score ((yyvsp[(1) - (1)].scm));
+               (yyval.score)->protect ();
+               (yyval.score)->origin ()->set_spot ((yyloc));
+       ;}
+    break;
+
+  case 68:
+#line 795 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.score)->user_key_ = ly_scm2string ((yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 69:
+#line 798 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.score)->set_header ((yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 70:
+#line 801 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if ((yyvsp[(2) - (2)].outputdef)->lookup_variable (ly_symbol2scm ("is-paper")) == SCM_BOOL_T)
+               {
+                       PARSER->parser_error ((yylsp[(2) - (2)]), _("\\paper cannot be used in \\score, use \\layout instead"));
+               
+               }
+               else
+               {
+                       (yyval.score)->add_output_def ((yyvsp[(2) - (2)].outputdef));
+               }
+               (yyvsp[(2) - (2)].outputdef)->unprotect ();
+       ;}
+    break;
+
+  case 71:
+#line 813 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.score)->error_found_ = true;
+       ;}
+    break;
+
+  case 72:
+#line 824 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.outputdef) = (yyvsp[(1) - (1)].outputdef);
+               if ((yyval.outputdef)->lookup_variable (ly_symbol2scm ("is-paper")) != SCM_BOOL_T)
+               {
+                       PARSER->parser_error ((yylsp[(1) - (1)]), _ ("need \\paper for paper block"));
+                       (yyvsp[(1) - (1)].outputdef)->unprotect ();
+                       (yyval.outputdef) = get_paper (PARSER);
+               }
+       ;}
+    break;
+
+  case 73:
+#line 837 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
+
+               PARSER->lexer_->remove_scope ();
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 74:
+#line 846 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.outputdef) = get_paper (PARSER);
+               (yyval.outputdef)->input_origin_ = (yyloc);
+               PARSER->lexer_->add_scope ((yyval.outputdef)->scope_);
+       ;}
+    break;
+
+  case 75:
+#line 851 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Output_def *p = get_midi (PARSER);
+               (yyval.outputdef) = p;
+               PARSER->lexer_->add_scope (p->scope_);
+       ;}
+    break;
+
+  case 76:
+#line 856 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Output_def *p = get_layout (PARSER);
+
+               PARSER->lexer_->add_scope (p->scope_);
+               (yyval.outputdef) = p;
+       ;}
+    break;
+
+  case 77:
+#line 865 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->push_initial_state ();
+               (yyval.outputdef) = (yyvsp[(1) - (1)].outputdef);
+       ;}
+    break;
+
+  case 78:
+#line 872 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
+               (yyval.outputdef)->input_origin_.set_spot ((yyloc));
+       ;}
+    break;
+
+  case 79:
+#line 876 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyvsp[(1) - (3)].outputdef)->unprotect ();
+
+               Output_def *o = unsmob_output_def ((yyvsp[(3) - (3)].scm));
+               o->input_origin_.set_spot ((yyloc));
+               (yyval.outputdef) = o;
+               (yyval.outputdef)->protect ();
+               PARSER->lexer_->remove_scope ();
+               PARSER->lexer_->add_scope (o->scope_);
+       ;}
+    break;
+
+  case 80:
+#line 886 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+
+       ;}
+    break;
+
+  case 81:
+#line 889 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               assign_context_def ((yyval.outputdef), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 82:
+#line 892 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+
+       ;}
+    break;
+
+  case 83:
+#line 898 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), SCM_BOOL_F, (yyvsp[(2) - (4)].scm), scm_int2num ((yyvsp[(4) - (4)].i)));
+       ;}
+    break;
+
+  case 84:
+#line 901 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), make_simple_markup((yyvsp[(2) - (5)].scm)), (yyvsp[(3) - (5)].scm), scm_int2num ((yyvsp[(5) - (5)].i)));
+       ;}
+    break;
+
+  case 85:
+#line 904 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), scm_int2num ((yyvsp[(5) - (5)].i)));
+       ;}
+    break;
+
+  case 86:
+#line 907 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("tempoText", (yyloc), make_simple_markup((yyvsp[(2) - (2)].scm)) );
+       ;}
+    break;
+
+  case 87:
+#line 910 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("tempoText", (yyloc), (yyvsp[(2) - (2)].scm) );
+       ;}
+    break;
+
+  case 88:
+#line 923 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons (SCM_EOL, SCM_EOL);
+       ;}
+    break;
+
+  case 89:
+#line 926 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM s = (yyval.scm);
+               SCM c = scm_cons ((yyvsp[(2) - (2)].scm), SCM_EOL);
+
+               if (scm_is_pair (scm_cdr (s)))
+                       scm_set_cdr_x (scm_cdr (s), c); /* append */
+               else
+                       scm_set_car_x (s, c); /* set first cons */
+               scm_set_cdr_x (s, c);  /* remember last cell */
+       ;}
+    break;
+
+  case 90:
+#line 936 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+
+       ;}
+    break;
+
+  case 91:
+#line 939 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = MY_MAKE_MUSIC("Music", (yyloc));
+               // ugh. code dup 
+               m->set_property ("error-found", SCM_BOOL_T);
+               SCM s = (yyval.scm);
+               SCM c = scm_cons (m->self_scm (), SCM_EOL);
+               m->unprotect (); /* UGH */
+
+               if (scm_is_pair (scm_cdr (s)))
+                       scm_set_cdr_x (scm_cdr (s), c); /* append */
+               else
+                       scm_set_car_x (s, c); /* set first cons */
+               scm_set_cdr_x (s, c);  /* remember last cell */
+       ;}
+    break;
+
+  case 94:
+#line 961 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = SCM_EOL;
+       ;}
+    break;
+
+  case 95:
+#line 964 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_car ((yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 96:
+#line 972 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("repeat", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(4) - (5)].scm), (yyvsp[(5) - (5)].scm));
+       ;}
+    break;
+
+  case 97:
+#line 978 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
+       ;}
+    break;
+
+  case 98:
+#line 981 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
+       ;}
+    break;
+
+  case 99:
+#line 987 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
+       ;}
+    break;
+
+  case 100:
+#line 990 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
+       ;}
+    break;
+
+  case 105:
+#line 1003 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 106:
+#line 1004 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_initial_state (); ;}
+    break;
+
+  case 107:
+#line 1006 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->pop_state ();
+               (yyval.scm) = (yyvsp[(4) - (5)].scm);
+       ;}
+    break;
+
+  case 108:
+#line 1013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 109:
+#line 1014 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 110:
+#line 1020 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 111:
+#line 1021 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 112:
+#line 1025 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 113:
+#line 1026 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 116:
+#line 1039 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
+    break;
+
+  case 117:
+#line 1045 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
+    break;
+
+  case 118:
+#line 1048 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
+    break;
+
+  case 119:
+#line 1053 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = SCM_EOL;
+       ;}
+    break;
+
+  case 120:
+#line 1056 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
+    break;
+
+  case 121:
+#line 1059 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
+    break;
+
+  case 122:
+#line 1064 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               /* This is for 0-ary functions, so they don't need to
+                  read a lookahead token */
+               (yyval.scm) = SCM_EOL;
+       ;}
+    break;
+
+  case 125:
+#line 1074 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 126:
+#line 1081 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 127:
+#line 1082 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 128:
+#line 1089 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 129:
+#line 1092 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), (yyvsp[(4) - (5)].scm), SCM_BOOL_F);
+       ;}
+    break;
+
+  case 130:
+#line 1095 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), (yyvsp[(4) - (5)].scm), SCM_BOOL_T);
+       ;}
+    break;
+
+  case 131:
+#line 1099 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+                (yyval.scm) = MAKE_SYNTAX ("time-scaled-music", (yyloc), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 132:
+#line 1102 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 133:
+#line 1103 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch from = *unsmob_pitch ((yyvsp[(2) - (4)].scm));
+               Pitch to = *unsmob_pitch ((yyvsp[(3) - (4)].scm));
+               SCM pitch = pitch_interval (from, to).smobbed_copy ();
+               (yyval.scm) = MAKE_SYNTAX ("transpose-music", (yyloc), pitch, (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 134:
+#line 1109 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if ((yyvsp[(1) - (2)].scm) == ly_symbol2scm ("chords"))
+               {
+                 (yyval.scm) = MAKE_SYNTAX ("unrelativable-music", (yyloc), (yyvsp[(2) - (2)].scm));
+               }
+               else
+               {
+                 (yyval.scm) = (yyvsp[(2) - (2)].scm);
+               }
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 135:
+#line 1120 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(1) - (3)].scm), SCM_EOL, (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), SCM_BOOL_T);
+               if ((yyvsp[(1) - (3)].scm) == ly_symbol2scm ("ChordNames"))
+               {
+                 (yyval.scm) = MAKE_SYNTAX ("unrelativable-music", (yyloc), (yyval.scm));
+               }
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 136:
+#line 1128 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 137:
+#line 1129 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 138:
+#line 1133 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
+               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+
+               (yyval.scm) = ly_symbol2scm ("notes");
+       ;}
+    break;
+
+  case 139:
+#line 1140 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
+               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+
+               (yyval.scm) = ly_symbol2scm ("drums");
+       ;}
+    break;
+
+  case 140:
+#line 1146 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->push_figuredbass_state ();
+
+               (yyval.scm) = ly_symbol2scm ("figures");
+       ;}
+    break;
+
+  case 141:
+#line 1151 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("chordmodifiers");
+               PARSER->lexer_->chordmodifier_tab_ = alist_to_hashq (nn);
+               nn = PARSER->lexer_->lookup_identifier ("pitchnames");
+               PARSER->lexer_->push_chord_state (alist_to_hashq (nn));
+               (yyval.scm) = ly_symbol2scm ("chords");
+
+       ;}
+    break;
+
+  case 142:
+#line 1160 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_lyric_state ();
+               (yyval.scm) = ly_symbol2scm ("lyrics");
+       ;}
+    break;
+
+  case 143:
+#line 1166 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
+               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+
+               (yyval.scm) = ly_symbol2scm ("DrumStaff");
+       ;}
+    break;
+
+  case 144:
+#line 1172 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->push_figuredbass_state ();
+
+               (yyval.scm) = ly_symbol2scm ("FiguredBass");
+       ;}
+    break;
+
+  case 145:
+#line 1177 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("chordmodifiers");
+               PARSER->lexer_->chordmodifier_tab_ = alist_to_hashq (nn);
+               nn = PARSER->lexer_->lookup_identifier ("pitchnames");
+               PARSER->lexer_->push_chord_state (alist_to_hashq (nn));
+               (yyval.scm) = ly_symbol2scm ("ChordNames");
+       ;}
+    break;
+
+  case 146:
+#line 1185 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_lyric_state ();
+               (yyval.scm) = ly_symbol2scm ("Lyrics");
+       ;}
+    break;
+
+  case 147:
+#line 1192 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch start = *unsmob_pitch ((yyvsp[(2) - (3)].scm));
+               (yyval.scm) = make_music_relative (start, (yyvsp[(3) - (3)].scm), (yyloc));
+       ;}
+    break;
+
+  case 148:
+#line 1196 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch middle_c (0, 0, 0);
+               (yyval.scm) = make_music_relative (middle_c, (yyvsp[(2) - (2)].scm), (yyloc));
+       ;}
+    break;
+
+  case 149:
+#line 1203 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_lyric_state (); ;}
+    break;
+
+  case 150:
+#line 1205 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+       /* Can also use music at the expensive of two S/Rs similar to
+           \repeat \alternative */
+               PARSER->lexer_->pop_state ();
+
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 151:
+#line 1212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->push_lyric_state ();
+       ;}
+    break;
+
+  case 152:
+#line 1214 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->pop_state ();
+               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(1) - (4)].scm));
+       ;}
+    break;
+
+  case 153:
+#line 1221 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("add-lyrics", (yyloc), (yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 154:
+#line 1224 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->push_lyric_state ();
+       ;}
+    break;
+
+  case 155:
+#line 1226 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               PARSER->lexer_->pop_state ();
+               (yyval.scm) = MAKE_SYNTAX ("lyric-combine", (yyloc), (yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 156:
+#line 1233 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("context-change", (yyloc), scm_string_to_symbol ((yyvsp[(2) - (4)].scm)), (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 157:
+#line 1240 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 158:
+#line 1243 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 159:
+#line 1249 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 160:
+#line 1255 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 (ly_symbol2scm ("assign"),
+                       scm_string_to_symbol ((yyvsp[(1) - (3)].scm)), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 161:
+#line 1259 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 (ly_symbol2scm ("unset"),
+                       scm_string_to_symbol ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 162:
+#line 1263 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_append (scm_list_2 (scm_list_3 (ly_symbol2scm ("push"),
+                                                       scm_string_to_symbol ((yyvsp[(2) - (5)].scm)), (yyvsp[(5) - (5)].scm)),
+                                            (yyvsp[(3) - (5)].scm)));
+       ;}
+    break;
+
+  case 163:
+#line 1268 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 (ly_symbol2scm ("pop"),
+                       scm_string_to_symbol ((yyvsp[(2) - (3)].scm)), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 164:
+#line 1275 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("consists"); ;}
+    break;
+
+  case 165:
+#line 1276 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("remove"); ;}
+    break;
+
+  case 166:
+#line 1278 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("accepts"); ;}
+    break;
+
+  case 167:
+#line 1279 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("default-child"); ;}
+    break;
+
+  case 168:
+#line 1280 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("denies"); ;}
+    break;
+
+  case 169:
+#line 1282 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("alias"); ;}
+    break;
+
+  case 170:
+#line 1283 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("translator-type"); ;}
+    break;
+
+  case 171:
+#line 1284 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("description"); ;}
+    break;
+
+  case 172:
+#line 1285 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_symbol2scm ("context-name"); ;}
+    break;
+
+  case 173:
+#line 1289 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 174:
+#line 1290 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 175:
+#line 1296 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!is_regular_identifier ((yyvsp[(1) - (1)].scm)))
+               {
+                       (yyloc).error (_("Grob name should be alphanumeric"));
+               }
+
+               (yyval.scm) = scm_list_2 (ly_symbol2scm ("Bottom"),
+                       scm_string_to_symbol ((yyvsp[(1) - (1)].scm)));
+       ;}
+    break;
+
+  case 176:
+#line 1305 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 (scm_string_to_symbol ((yyvsp[(1) - (3)].scm)),
+                       scm_string_to_symbol ((yyvsp[(3) - (3)].scm)));
+       ;}
+    break;
+
+  case 177:
+#line 1312 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_append (scm_list_2 (scm_list_n (scm_car ((yyvsp[(2) - (5)].scm)),                     
+                               ly_symbol2scm ("OverrideProperty"),
+                               scm_cadr ((yyvsp[(2) - (5)].scm)),
+                               (yyvsp[(5) - (5)].scm), SCM_UNDEFINED),
+                               (yyvsp[(3) - (5)].scm)));
+       ;}
+    break;
+
+  case 178:
+#line 1319 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (3)].scm)),
+                       ly_symbol2scm ("RevertProperty"),
+                       scm_cadr ((yyvsp[(2) - (3)].scm)),
+                       (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 179:
+#line 1325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (4)].scm)),
+                       ly_symbol2scm ("PropertySet"),
+                       scm_cadr ((yyvsp[(2) - (4)].scm)),
+                       (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 180:
+#line 1331 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 (scm_car ((yyvsp[(2) - (2)].scm)),
+                       ly_symbol2scm ("PropertyUnset"),
+                       scm_cadr ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 181:
+#line 1339 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (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))));
+       ;}
+    break;
+
+  case 182:
+#line 1342 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (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))));
+       ;}
+    break;
+
+  case 183:
+#line 1348 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 184:
+#line 1351 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 185:
+#line 1354 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_string_append (scm_list_2 ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm)));
+       ;}
+    break;
+
+  case 186:
+#line 1359 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 187:
+#line 1362 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 188:
+#line 1365 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 189:
+#line 1370 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 190:
+#line 1373 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 191:
+#line 1376 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 192:
+#line 1379 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 193:
+#line 1382 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 194:
+#line 1385 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+       ;}
+    break;
+
+  case 195:
+#line 1394 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM elts = ly_append2 ((yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+
+               Input i;
+               /* why is this giving wrong start location? -ns
+                * i = @$; */
+               i.set_location ((yylsp[(1) - (2)]), (yylsp[(2) - (2)]));
+               (yyval.scm) = MAKE_SYNTAX ("event-chord", i, elts);
+       ;}
+    break;
+
+  case 196:
+#line 1403 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Input i;
+               i.set_location ((yylsp[(1) - (3)]), (yylsp[(3) - (3)]));
+               (yyval.scm) = MAKE_SYNTAX ("multi-measure-rest", i, (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 199:
+#line 1415 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = unsmob_music ((yyvsp[(1) - (3)].scm));
+               SCM dur = unsmob_duration ((yyvsp[(2) - (3)].scm))->smobbed_copy ();
+               SCM es = m->get_property ("elements");
+               SCM postevs = scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL);
+               
+               for (SCM s = es; scm_is_pair (s); s = scm_cdr (s))
+                 unsmob_music (scm_car (s))->set_property ("duration", dur);
+               es = ly_append2 (es, postevs);
+
+               m-> set_property ("elements", es);
+               m->set_spot ((yyloc));
+               (yyval.scm) = m->self_scm ();
+       ;}
+    break;
+
+  case 200:
+#line 1433 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("event-chord", (yyloc), scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 201:
+#line 1439 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 202:
+#line 1440 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 203:
+#line 1447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               int q = (yyvsp[(3) - (5)].i);
+               int ex = (yyvsp[(2) - (5)].i);
+               SCM check = (yyvsp[(4) - (5)].scm);
+               SCM post = (yyvsp[(5) - (5)].scm);
+
+               Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
+               n->set_property ("pitch", (yyvsp[(1) - (5)].scm));
+               if (q % 2)
+                       n->set_property ("cautionary", SCM_BOOL_T);
+               if (ex % 2 || q % 2)
+                       n->set_property ("force-accidental", SCM_BOOL_T);
+
+               if (scm_is_pair (post)) {
+                       SCM arts = scm_reverse_x (post, SCM_EOL);
+                       n->set_property ("articulations", arts);
+               }
+               if (scm_is_number (check))
+               {
+                       int q = scm_to_int (check);
+                       n->set_property ("absolute-octave", scm_from_int (q-1));
+               }
+
+               (yyval.scm) = n->unprotect ();
+       ;}
+    break;
+
+  case 204:
+#line 1472 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
+               n->set_property ("duration", (yyvsp[(2) - (2)].scm));
+               n->set_property ("drum-type", (yyvsp[(1) - (2)].scm));
+
+               if (scm_is_pair ((yyvsp[(2) - (2)].scm))) {
+                       SCM arts = scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL);
+                       n->set_property ("articulations", arts);
+               }
+               (yyval.scm) = n->unprotect ();
+       ;}
+    break;
+
+  case 205:
+#line 1483 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { 
+               (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 206:
+#line 1488 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM sig = scm_object_property (yylval.scm, ly_symbol2scm ("music-function-signature"));
+               if (scm_is_pair (sig) && to_boolean (scm_memq (ly_music_p_proc, scm_cdr (scm_reverse (sig)))))
+               {
+                       PARSER->parser_error ((yyloc), "Music function applied to event may not have a Music argument, except as the last argument.");
+               }
+       ;}
+    break;
+
+  case 207:
+#line 1501 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (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))));
+       ;}
+    break;
+
+  case 208:
+#line 1504 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 209:
+#line 1513 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (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))));
+       ;}
+    break;
+
+  case 210:
+#line 1516 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_append2 (scm_list_2 ((yyvsp[(1) - (2)].scm), make_input ((yyloc))), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 211:
+#line 1522 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 212:
+#line 1525 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("skip-music", (yyloc), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 213:
+#line 1528 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
+               m->set_property ("span-direction", scm_from_int (START));
+               (yyval.scm) = m->unprotect();
+       ;}
+    break;
+
+  case 214:
+#line 1533 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
+               m->set_property ("span-direction", scm_from_int (STOP));
+               (yyval.scm) = m->unprotect ();
+       ;}
+    break;
+
+  case 215:
+#line 1538 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("voice-separator", (yyloc), SCM_UNDEFINED);
+       ;}
+    break;
+
+  case 216:
+#line 1541 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM pipe = PARSER->lexer_->lookup_identifier ("pipeSymbol");
+
+               Music *m = unsmob_music (pipe);
+               if (m)
+               {
+                       m = m->clone ();
+                       m->set_spot ((yyloc));
+                       (yyval.scm) = m->unprotect ();
+               }
+               else
+                       (yyval.scm) = MAKE_SYNTAX ("bar-check", (yyloc), SCM_UNDEFINED);
+
+       ;}
+    break;
+
+  case 217:
+#line 1555 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Moment m = - unsmob_duration ((yyvsp[(2) - (2)].scm))->get_length ();
+               (yyval.scm) = MAKE_SYNTAX ("property-operation", (yyloc), SCM_BOOL_F, ly_symbol2scm ("Timing"), ly_symbol2scm ("PropertySet"), ly_symbol2scm ("measurePosition"), m.smobbed_copy ());
+               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), ly_symbol2scm ("Score"), SCM_BOOL_F, (yyval.scm), SCM_EOL, SCM_BOOL_F);
+       ;}
+    break;
+
+  case 218:
+#line 1561 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = ly_lily_module_constant ("make-time-signature-set");
+
+               (yyval.scm) = scm_apply_2   (proc, scm_car ((yyvsp[(2) - (2)].scm)), scm_cdr ((yyvsp[(2) - (2)].scm)), SCM_EOL);
+       ;}
+    break;
+
+  case 219:
+#line 1566 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM proc = ly_lily_module_constant ("make-mark-set");
+
+               (yyval.scm) = scm_call_1 (proc, (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 220:
+#line 1574 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = MY_MAKE_MUSIC ("PesOrFlexaEvent", (yyloc))->unprotect ();
+       ;}
+    break;
+
+  case 221:
+#line 1577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = MY_MAKE_MUSIC ("MarkEvent", (yyloc));
+               (yyval.scm) = m->unprotect ();
+       ;}
+    break;
+
+  case 222:
+#line 1581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 223:
+#line 1584 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *key = MY_MAKE_MUSIC ("KeyChangeEvent", (yyloc));
+               (yyval.scm) = key->unprotect ();
+       ;}
+    break;
+
+  case 224:
+#line 1588 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+
+               Music *key = MY_MAKE_MUSIC ("KeyChangeEvent", (yyloc));
+               if (scm_ilength ((yyvsp[(3) - (3)].scm)) > 0)
+               {               
+                       key->set_property ("pitch-alist", (yyvsp[(3) - (3)].scm));
+                       key->set_property ("tonic", Pitch (0, 0, 0).smobbed_copy ());
+                       key->transpose (* unsmob_pitch ((yyvsp[(2) - (3)].scm)));
+               } else {
+                       PARSER->parser_error ((yylsp[(3) - (3)]), _ ("second argument must be pitch list"));
+               }
+
+               (yyval.scm) = key->unprotect ();
+       ;}
+    break;
+
+  case 225:
+#line 1606 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = SCM_EOL;
+       ;}
+    break;
+
+  case 226:
+#line 1609 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               unsmob_music ((yyvsp[(2) - (2)].scm))->set_spot ((yylsp[(2) - (2)]));
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyval.scm));
+       ;}
+    break;
+
+  case 227:
+#line 1616 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 228:
+#line 1619 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = run_music_function (PARSER, (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 229:
+#line 1622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!PARSER->lexer_->is_lyric_state ())
+                       PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
+               (yyval.scm) = MY_MAKE_MUSIC ("HyphenEvent", (yyloc))->unprotect ();
+       ;}
+    break;
+
+  case 230:
+#line 1627 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!PARSER->lexer_->is_lyric_state ())
+                       PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
+               (yyval.scm) = MY_MAKE_MUSIC ("ExtenderEvent", (yyloc))->unprotect ();
+       ;}
+    break;
+
+  case 231:
+#line 1632 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if ((yyvsp[(1) - (2)].i))
+               {
+                       Music *m = unsmob_music ((yyvsp[(2) - (2)].scm));
+                       m->set_property ("direction", scm_from_int ((yyvsp[(1) - (2)].i)));
+               }
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 232:
+#line 1640 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if ((yyvsp[(1) - (2)].i))
+               {
+                       Music *m = unsmob_music ((yyvsp[(2) - (2)].scm));
+                       m->set_property ("direction", scm_from_int ((yyvsp[(1) - (2)].i)));
+               }
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 234:
+#line 1652 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *s = MY_MAKE_MUSIC ("StringNumberEvent", (yyloc));
+               s->set_property ("string-number", scm_from_int ((yyvsp[(1) - (1)].i)));
+               (yyval.scm) = s->unprotect ();
+       ;}
+    break;
+
+  case 235:
+#line 1660 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("bracketOpenSymbol");
+       ;}
+    break;
+
+  case 236:
+#line 1663 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("bracketCloseSymbol"); 
+       ;}
+    break;
+
+  case 237:
+#line 1666 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("tildeSymbol");
+       ;}
+    break;
+
+  case 238:
+#line 1669 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("parenthesisOpenSymbol");
+       ;}
+    break;
+
+  case 239:
+#line 1672 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("parenthesisCloseSymbol");
+       ;}
+    break;
+
+  case 240:
+#line 1675 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("escapedExclamationSymbol");
+       ;}
+    break;
+
+  case 241:
+#line 1678 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("escapedParenthesisOpenSymbol");
+       ;}
+    break;
+
+  case 242:
+#line 1681 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("escapedParenthesisCloseSymbol");
+       ;}
+    break;
+
+  case 243:
+#line 1684 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("escapedBiggerSymbol");
+       ;}
+    break;
+
+  case 244:
+#line 1687 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("escapedSmallerSymbol");
+       ;}
+    break;
+
+  case 245:
+#line 1693 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM predefd = PARSER->lexer_->lookup_identifier_symbol ((yyvsp[(1) - (1)].scm));
+               Music *m = 0;
+               if (unsmob_music (predefd))
+               {
+                       m = unsmob_music (predefd)->clone ();
+                       m->set_spot ((yyloc));
+               }
+               else
+               {
+                       m = MY_MAKE_MUSIC ("Music", (yyloc));
+               }
+               (yyval.scm) = m->unprotect ();
+       ;}
+    break;
+
+  case 246:
+#line 1707 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 247:
+#line 1710 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *a = MY_MAKE_MUSIC ("TremoloEvent", (yyloc));
+               a->set_property ("tremolo-type", scm_from_int ((yyvsp[(1) - (1)].i)));
+               (yyval.scm) = a->unprotect ();
+        ;}
+    break;
+
+  case 248:
+#line 1718 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 249:
+#line 1721 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM s = PARSER->lexer_->lookup_identifier ("dash" + ly_scm2string ((yyvsp[(1) - (1)].scm)));
+               Music *a = MY_MAKE_MUSIC ("ArticulationEvent", (yyloc));
+               if (scm_is_string (s))
+                       a->set_property ("articulation-type", s);
+               else PARSER->parser_error ((yylsp[(1) - (1)]), _ ("expecting string as script definition"));
+               (yyval.scm) = a->unprotect ();
+       ;}
+    break;
+
+  case 250:
+#line 1732 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 251:
+#line 1733 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_from_int (0); ;}
+    break;
+
+  case 252:
+#line 1734 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_from_int (-(yyvsp[(2) - (2)].i)); ;}
+    break;
+
+  case 253:
+#line 1735 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_from_int ((yyvsp[(2) - (2)].i)); ;}
+    break;
+
+  case 254:
+#line 1739 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) = 1;
+       ;}
+    break;
+
+  case 255:
+#line 1742 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) ++;
+       ;}
+    break;
+
+  case 256:
+#line 1748 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) = 1;
+       ;}
+    break;
+
+  case 257:
+#line 1751 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i)++;
+       ;}
+    break;
+
+  case 258:
+#line 1757 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 259:
+#line 1760 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
+               p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
+               (yyval.scm) = p.smobbed_copy ();
+       ;}
+    break;
+
+  case 260:
+#line 1765 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch p =* unsmob_pitch ((yyvsp[(1) - (2)].scm));
+               p = p.transposed (Pitch (-(yyvsp[(2) - (2)].i),0,0));
+               (yyval.scm) = p.smobbed_copy ();
+       ;}
+    break;
+
+  case 261:
+#line 1777 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 262:
+#line 1780 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
+               p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
+               (yyval.scm) = p.smobbed_copy ();
+       ;}
+    break;
+
+  case 263:
+#line 1785 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
+
+               p = p.transposed (Pitch (-(yyvsp[(2) - (2)].i),0,0));
+               (yyval.scm) = p.smobbed_copy ();
+       ;}
+    break;
+
+  case 264:
+#line 1794 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 267:
+#line 1805 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
+               t->set_property ("text", (yyvsp[(1) - (1)].scm));
+               (yyval.scm) = t->unprotect ();
+       ;}
+    break;
+
+  case 268:
+#line 1810 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
+               t->set_property ("text",
+                       make_simple_markup ((yyvsp[(1) - (1)].scm)));
+               (yyval.scm) = t->unprotect ();
+       ;}
+    break;
+
+  case 269:
+#line 1816 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yyloc));
+               t->set_property ("digit", scm_from_int ((yyvsp[(1) - (1)].i)));
+               (yyval.scm) = t->unprotect ();
+       ;}
+    break;
+
+  case 270:
+#line 1824 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Hat");
+       ;}
+    break;
+
+  case 271:
+#line 1827 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Plus");
+       ;}
+    break;
+
+  case 272:
+#line 1830 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Dash");
+       ;}
+    break;
+
+  case 273:
+#line 1833 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Bar");
+       ;}
+    break;
+
+  case 274:
+#line 1836 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Larger");
+       ;}
+    break;
+
+  case 275:
+#line 1839 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Dot");
+       ;}
+    break;
+
+  case 276:
+#line 1842 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_locale_string ("Underscore");
+       ;}
+    break;
+
+  case 277:
+#line 1848 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = DOWN; ;}
+    break;
+
+  case 278:
+#line 1849 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = UP; ;}
+    break;
+
+  case 279:
+#line 1850 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = CENTER; ;}
+    break;
+
+  case 280:
+#line 1855 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 281:
+#line 1861 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 282:
+#line 1867 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Duration dd = PARSER->default_duration_;
+               (yyval.scm) = dd.smobbed_copy ();
+       ;}
+    break;
+
+  case 283:
+#line 1871 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               PARSER->default_duration_ = *unsmob_duration ((yyval.scm));
+       ;}
+    break;
+
+  case 284:
+#line 1878 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               int len = 0;
+               if (!is_duration ((yyvsp[(1) - (2)].i)))
+                       PARSER->parser_error ((yylsp[(1) - (2)]), _f ("not a duration: %d", (yyvsp[(1) - (2)].i)));
+               else
+                       len = intlog2 ((yyvsp[(1) - (2)].i));
+
+               (yyval.scm) = Duration (len, (yyvsp[(2) - (2)].i)).smobbed_copy ();
+       ;}
+    break;
+
+  case 285:
+#line 1887 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Duration *d = unsmob_duration ((yyvsp[(1) - (2)].scm));
+               Duration k (d->duration_log (), d->dot_count () + (yyvsp[(2) - (2)].i));
+               *d = k;
+               (yyval.scm) = (yyvsp[(1) - (2)].scm);
+       ;}
+    break;
+
+  case 286:
+#line 1896 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 287:
+#line 1899 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = unsmob_duration ((yyval.scm))->compressed ( (yyvsp[(3) - (3)].i)) .smobbed_copy ();
+       ;}
+    break;
+
+  case 288:
+#line 1902 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Rational  m (scm_to_int (scm_car ((yyvsp[(3) - (3)].scm))), scm_to_int (scm_cdr ((yyvsp[(3) - (3)].scm))));
+
+               (yyval.scm) = unsmob_duration ((yyval.scm))->compressed (m).smobbed_copy ();
+       ;}
+    break;
+
+  case 289:
+#line 1910 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 290:
+#line 1911 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons (scm_from_int ((yyvsp[(1) - (3)].i)), scm_from_int ((yyvsp[(3) - (3)].i)));
+       ;}
+    break;
+
+  case 291:
+#line 1917 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) = 0;
+       ;}
+    break;
+
+  case 292:
+#line 1920 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) ++;
+       ;}
+    break;
+
+  case 293:
+#line 1926 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) = 0;
+       ;}
+    break;
+
+  case 294:
+#line 1929 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!is_duration ((yyvsp[(2) - (2)].i)))
+                       PARSER->parser_error ((yylsp[(2) - (2)]), _f ("not a duration: %d", (yyvsp[(2) - (2)].i)));
+               (yyval.i) = (yyvsp[(2) - (2)].i);
+       ;}
+    break;
+
+  case 295:
+#line 1937 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+       ;}
+    break;
+
+  case 296:
+#line 1940 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+       ;}
+    break;
+
+  case 297:
+#line 1943 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 298:
+#line 1944 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 299:
+#line 1948 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_rational2scm (FLAT_ALTERATION); ;}
+    break;
+
+  case 300:
+#line 1949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = ly_rational2scm (SHARP_ALTERATION); ;}
+    break;
+
+  case 301:
+#line 1950 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_from_int (0); ;}
+    break;
+
+  case 302:
+#line 1954 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
+               (yyval.scm) = bfr->unprotect ();
+       ;}
+    break;
+
+  case 303:
+#line 1958 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
+               (yyval.scm) = bfr->self_scm ();
+
+               if (scm_is_number ((yyvsp[(1) - (1)].scm)))
+                       bfr->set_property ("figure", (yyvsp[(1) - (1)].scm));
+               else if (Text_interface::is_markup ((yyvsp[(1) - (1)].scm)))
+                       bfr->set_property ("text", (yyvsp[(1) - (1)].scm));
+
+               bfr->unprotect ();
+       ;}
+    break;
+
+  case 304:
+#line 1969 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (2)].scm);
+               unsmob_music ((yyvsp[(1) - (2)].scm))->set_property ("bracket-stop", SCM_BOOL_T);
+       ;}
+    break;
+
+  case 305:
+#line 1973 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
+               if (scm_to_double ((yyvsp[(2) - (2)].scm))) {
+                       SCM salter = m->get_property ("alteration");
+                       SCM alter = scm_is_number (salter) ? salter : scm_from_int (0);
+                       m->set_property ("alteration",
+                                        scm_sum (alter, (yyvsp[(2) - (2)].scm)));
+               } else {
+                       m->set_property ("alteration", scm_from_int (0));
+               }
+       ;}
+    break;
+
+  case 306:
+#line 1984 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
+               if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("plus"))
+                       {
+                       m->set_property ("augmented", SCM_BOOL_T);
+                       }
+               else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("slash"))
+                       {
+                       m->set_property ("diminished", SCM_BOOL_T);
+                       }
+               else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("exclamation"))
+                       {
+                       m->set_property ("no-continuation", SCM_BOOL_T);
+                       }
+               else if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("backslash"))
+                       {
+                       m->set_property ("augmented-slash", SCM_BOOL_T);
+                       }
+       ;}
+    break;
+
+  case 307:
+#line 2007 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("plus");
+       ;}
+    break;
+
+  case 308:
+#line 2010 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("exclamation");
+       ;}
+    break;
+
+  case 309:
+#line 2013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("slash");
+       ;}
+    break;
+
+  case 310:
+#line 2016 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("backslash");
+       ;}
+    break;
+
+  case 311:
+#line 2022 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 312:
+#line 2025 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+               unsmob_music ((yyval.scm))->set_property ("bracket-start", SCM_BOOL_T);
+       ;}
+    break;
+
+  case 313:
+#line 2032 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = SCM_EOL;
+       ;}
+    break;
+
+  case 314:
+#line 2035 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 315:
+#line 2041 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 316:
+#line 2048 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = 0; ;}
+    break;
+
+  case 317:
+#line 2049 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = 1; ;}
+    break;
+
+  case 318:
+#line 2053 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!PARSER->lexer_->is_note_state ())
+                       PARSER->parser_error ((yylsp[(1) - (6)]), _ ("have to be in Note mode for notes"));
+
+               Music *n = 0;
+               if ((yyvsp[(6) - (6)].i))
+                       n = MY_MAKE_MUSIC ("RestEvent", (yyloc));
+               else
+                       n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
+               
+               n->set_property ("pitch", (yyvsp[(1) - (6)].scm));
+               n->set_property ("duration", (yyvsp[(5) - (6)].scm));
+
+               if (scm_is_number ((yyvsp[(4) - (6)].scm)))
+               {
+                       int q = scm_to_int ((yyvsp[(4) - (6)].scm));
+                       n->set_property ("absolute-octave", scm_from_int (q-1));
+               }
+
+               if ((yyvsp[(3) - (6)].i) % 2)
+                       n->set_property ("cautionary", SCM_BOOL_T);
+               if ((yyvsp[(2) - (6)].i) % 2 || (yyvsp[(3) - (6)].i) % 2)
+                       n->set_property ("force-accidental", SCM_BOOL_T);
+
+               (yyval.scm) = n->unprotect ();
+       ;}
+    break;
+
+  case 319:
+#line 2079 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
+               n->set_property ("duration", (yyvsp[(2) - (2)].scm));
+               n->set_property ("drum-type", (yyvsp[(1) - (2)].scm));
+
+               (yyval.scm) = n->unprotect ();          
+       ;}
+    break;
+
+  case 320:
+#line 2086 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Music *ev = 0;
+               if (ly_scm2string ((yyvsp[(1) - (2)].scm)) == "s") {
+                       /* Space */
+                       ev = MY_MAKE_MUSIC ("SkipEvent", (yyloc));
+                 }
+               else {
+                       ev = MY_MAKE_MUSIC ("RestEvent", (yyloc));
+               
+                   }
+               ev->set_property ("duration", (yyvsp[(2) - (2)].scm));
+               (yyval.scm) = ev->unprotect ();
+       ;}
+    break;
+
+  case 321:
+#line 2099 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               if (!PARSER->lexer_->is_lyric_state ())
+                       PARSER->parser_error ((yylsp[(1) - (2)]), _ ("have to be in Lyric mode for lyrics"));
+
+               Music *levent = MY_MAKE_MUSIC ("LyricEvent", (yyloc));
+               levent->set_property ("text", (yyvsp[(1) - (2)].scm));
+               levent->set_property ("duration",(yyvsp[(2) - (2)].scm));
+               (yyval.scm)= levent->unprotect ();
+       ;}
+    break;
+
+  case 322:
+#line 2111 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 323:
+#line 2114 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+                if (!PARSER->lexer_->is_chord_state ())
+                        PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Chord mode for chords"));
+                (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 324:
+#line 2119 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               for (SCM s = (yyvsp[(1) - (2)].scm); scm_is_pair (s); s = scm_cdr (s))
+               {
+                       unsmob_music (scm_car (s))->set_property ("duration", (yyvsp[(2) - (2)].scm));
+               }
+               (yyval.scm) = (yyvsp[(1) - (2)].scm);
+       ;}
+    break;
+
+  case 325:
+#line 2129 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 326:
+#line 2132 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 327:
+#line 2138 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = make_chord_elements ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 328:
+#line 2141 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM its = scm_reverse_x ((yyvsp[(4) - (4)].scm), SCM_EOL);
+               (yyval.scm) = make_chord_elements ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), scm_cons ((yyvsp[(3) - (4)].scm), its));
+       ;}
+    break;
+
+  case 329:
+#line 2148 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = SCM_EOL;          
+       ;}
+    break;
+
+  case 330:
+#line 2151 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyval.scm));
+       ;}
+    break;
+
+  case 331:
+#line 2157 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("chord-colon");
+       ;}
+    break;
+
+  case 332:
+#line 2160 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = ly_symbol2scm ("chord-caret");
+       ;}
+    break;
+
+  case 333:
+#line 2163 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-slash"), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 334:
+#line 2166 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-bass"), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 335:
+#line 2172 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 336:
+#line 2175 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 337:
+#line 2178 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 338:
+#line 2184 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL); ;}
+    break;
+
+  case 339:
+#line 2185 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyval.scm));
+       ;}
+    break;
+
+  case 340:
+#line 2191 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = make_chord_step ((yyvsp[(1) - (1)].i), 0);
+        ;}
+    break;
+
+  case 341:
+#line 2194 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), SHARP_ALTERATION);
+       ;}
+    break;
+
+  case 342:
+#line 2197 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), FLAT_ALTERATION);
+       ;}
+    break;
+
+  case 343:
+#line 2209 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_sum ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 344:
+#line 2212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_difference ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 346:
+#line 2219 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 347:
+#line 2222 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_product ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 348:
+#line 2225 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_divide ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 349:
+#line 2231 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { /* %prec UNARY_MINUS */
+               (yyval.scm) = scm_difference ((yyvsp[(2) - (2)].scm), SCM_UNDEFINED);
+       ;}
+    break;
+
+  case 351:
+#line 2239 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+       ;}
+    break;
+
+  case 352:
+#line 2242 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 353:
+#line 2245 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 354:
+#line 2248 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_double (scm_to_double ((yyvsp[(1) - (2)].scm)) *scm_to_double ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 355:
+#line 2251 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_from_double ((yyvsp[(1) - (2)].i) *scm_to_double ((yyvsp[(2) - (2)].scm)));
+       ;}
+    break;
+
+  case 356:
+#line 2258 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+                       (yyval.i) = (yyvsp[(1) - (1)].i);
+       ;}
+    break;
+
+  case 357:
+#line 2261 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.i) = (yyvsp[(1) - (1)].i);
+       ;}
+    break;
+
+  case 358:
+#line 2267 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i)); ;}
+    break;
+
+  case 359:
+#line 2268 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 360:
+#line 2275 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = 0; ;}
+    break;
+
+  case 361:
+#line 2276 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) ++; ;}
+    break;
+
+  case 362:
+#line 2280 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) = 0; ;}
+    break;
+
+  case 363:
+#line 2281 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { (yyval.i) ++; ;}
+    break;
+
+  case 364:
+#line 2289 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 365:
+#line 2293 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_markup_state (); ;}
+    break;
+
+  case 366:
+#line 2294 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(3) - (3)].scm);
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 367:
+#line 2302 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_markup_state (); ;}
+    break;
+
+  case 368:
+#line 2303 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(3) - (3)].scm);
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 369:
+#line 2310 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 370:
+#line 2314 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { PARSER->lexer_->push_markup_state (); ;}
+    break;
+
+  case 371:
+#line 2315 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(3) - (3)].scm);
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 372:
+#line 2322 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    { 
+               (yyval.scm) = scm_list_2 (ly_lily_module_constant ("line-markup"),  (yyvsp[(1) - (1)].scm)); 
+       ;}
+    break;
+
+  case 373:
+#line 2325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (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))));
+       ;}
+    break;
+
+  case 374:
+#line 2328 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 375:
+#line 2334 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 376:
+#line 2337 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 377:
+#line 2340 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 378:
+#line 2346 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_call_2 (ly_lily_module_constant ("map-markup-command-list"), (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+               
+       ;}
+    break;
+
+  case 379:
+#line 2353 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 380:
+#line 2359 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {  (yyval.scm) = SCM_EOL; ;}
+    break;
+
+  case 381:
+#line 2360 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 382:
+#line 2363 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_append_x (scm_list_2 (scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL), (yyvsp[(1) - (2)].scm)));
+       ;}
+    break;
+
+  case 383:
+#line 2369 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 384:
+#line 2372 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 385:
+#line 2375 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 386:
+#line 2378 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 387:
+#line 2381 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 388:
+#line 2387 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 389:
+#line 2390 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 390:
+#line 2393 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 391:
+#line 2399 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 392:
+#line 2402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
+
+  case 393:
+#line 2408 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = make_simple_markup ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 394:
+#line 2411 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 395:
+#line 2414 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 396:
+#line 2417 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+  case 397:
+#line 2420 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
+               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+       ;}
+    break;
+
+  case 398:
+#line 2423 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               Score * sc = (yyvsp[(4) - (5)].score);
+               (yyval.scm) = scm_list_2 (ly_lily_module_constant ("score-markup"), sc->self_scm ());
+               sc->unprotect ();
+               PARSER->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 399:
+#line 2429 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 400:
+#line 2432 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 401:
+#line 2435 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 402:
+#line 2438 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_4 ((yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm));
+       ;}
+    break;
+
+  case 403:
+#line 2441 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_5 ((yyvsp[(1) - (5)].scm), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(4) - (5)].scm), (yyvsp[(5) - (5)].scm));
+       ;}
+    break;
+
+  case 404:
+#line 2444 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 405:
+#line 2447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm),(yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 406:
+#line 2450 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = scm_list_3 ((yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 407:
+#line 2456 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               SCM mapper = ly_lily_module_constant ("map-markup-command-list");
+               (yyval.scm) = scm_car (scm_call_2 (mapper, (yyvsp[(1) - (2)].scm), scm_list_1 ((yyvsp[(2) - (2)].scm))));
+       ;}
+    break;
+
+  case 408:
+#line 2460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+       ;}
+    break;
+
+
+/* Line 1267 of yacc.c.  */
+#line 5772 "out/parser.cc"
+      default: break;
+    }
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+  *++yylsp = yyloc;
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+      {
+       YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+       if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+         {
+           YYSIZE_T yyalloc = 2 * yysize;
+           if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+             yyalloc = YYSTACK_ALLOC_MAXIMUM;
+           if (yymsg != yymsgbuf)
+             YYSTACK_FREE (yymsg);
+           yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+           if (yymsg)
+             yymsg_alloc = yyalloc;
+           else
+             {
+               yymsg = yymsgbuf;
+               yymsg_alloc = sizeof yymsgbuf;
+             }
+         }
+
+       if (0 < yysize && yysize <= yymsg_alloc)
+         {
+           (void) yysyntax_error (yymsg, yystate, yychar);
+           yyerror (yymsg);
+         }
+       else
+         {
+           yyerror (YY_("syntax error"));
+           if (yysize != 0)
+             goto yyexhaustedlab;
+         }
+      }
+#endif
+    }
+
+  yyerror_range[0] = yylloc;
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse look-ahead token after an
+        error, discard it.  */
+
+      if (yychar <= YYEOF)
+       {
+         /* Return failure if at end of input.  */
+         if (yychar == YYEOF)
+           YYABORT;
+       }
+      else
+       {
+         yydestruct ("Error: discarding",
+                     yytoken, &yylval, &yylloc);
+         yychar = YYEMPTY;
+       }
+    }
+
+  /* Else will try to reuse look-ahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  yyerror_range[0] = yylsp[1-yylen];
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
+
+      yyerror_range[0] = *yylsp;
+      yydestruct ("Error: popping",
+                 yystos[yystate], yyvsp, yylsp);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  *++yyvsp = yylval;
+
+  yyerror_range[1] = yylloc;
+  /* Using YYLLOC is tempting, but would change the location of
+     the look-ahead.  YYLOC is available though.  */
+  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
+  *++yylsp = yyloc;
+
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+                yytoken, &yylval, &yylloc);
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+                 yystos[*yyssp], yyvsp, yylsp);
+      YYPOPSTACK (1);
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
+}
+
+
+#line 2465 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.12/lily/parser.yy"
+
+
+void
+Lily_parser::set_yydebug (bool x)
+{
+       yydebug = x;
+}
+
+void
+Lily_parser::do_yyparse ()
+{
+       yyparse ((void*)this);
+}
+
+
+
+
+
+/*
+
+It is a little strange to have this function in this file, but
+otherwise, we have to import music classes into the lexer.
+
+*/
+int
+Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
+{
+       if (scm_is_string (sid)) {
+               *destination = sid;
+               return STRING_IDENTIFIER;
+       } else if (unsmob_book (sid)) {
+               Book *book =  unsmob_book (sid)->clone ();
+               *destination = book->self_scm ();
+               book->unprotect ();
+
+               return BOOK_IDENTIFIER;
+       } else if (scm_is_number (sid)) {
+               *destination = sid;
+               return NUMBER_IDENTIFIER;
+       } else if (unsmob_context_def (sid)) {
+               Context_def *def= unsmob_context_def (sid)->clone ();
+
+               *destination = def->self_scm ();
+               def->unprotect ();
+               
+               return CONTEXT_DEF_IDENTIFIER;
+       } else if (unsmob_score (sid)) {
+               Score *score = new Score (*unsmob_score (sid));
+               *destination = score->self_scm ();
+
+               score->unprotect ();
+               return SCORE_IDENTIFIER;
+       } else if (Music *mus = unsmob_music (sid)) {
+               mus = mus->clone ();
+               *destination = mus->self_scm ();
+               unsmob_music (*destination)->
+                       set_property ("origin", make_input (last_input_));
+
+               bool is_event = scm_memq (ly_symbol2scm ("event"), mus->get_property ("types"))
+                       != SCM_BOOL_F;
+
+               mus->unprotect ();
+               return is_event ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER;
+       } else if (unsmob_duration (sid)) {
+               *destination = unsmob_duration (sid)->smobbed_copy ();
+               return DURATION_IDENTIFIER;
+       } else if (unsmob_output_def (sid)) {
+               Output_def *p = unsmob_output_def (sid);
+               p = p->clone ();
+       
+               *destination = p->self_scm ();
+               p->unprotect ();
+               return OUTPUT_DEF_IDENTIFIER;
+       } else if (Text_interface::is_markup (sid)) {
+               *destination = sid;
+               if (is_lyric_state ())
+                       return LYRIC_MARKUP_IDENTIFIER;
+               return MARKUP_IDENTIFIER;
+       }
+
+       return -1;      
+}
+
+SCM
+get_next_unique_context_id ()
+{
+       return scm_from_locale_string ("$uniqueContextId");
+}
+
+
+SCM
+get_next_unique_lyrics_context_id ()
+{
+       static int new_context_count;
+       char s[128];
+       snprintf (s, sizeof (s)-1, "uniqueContext%d", new_context_count++);
+       return scm_from_locale_string (s);
+}
+
+
+SCM
+run_music_function (Lily_parser *parser, SCM expr)
+{
+       SCM func = scm_car (expr);
+       Input *loc = unsmob_input (scm_cadr (expr));
+       SCM args = scm_cddr (expr);
+       SCM sig = scm_object_property (func, ly_symbol2scm ("music-function-signature"));
+
+       SCM type_check_proc = ly_lily_module_constant ("type-check-list");
+
+       if (!to_boolean (scm_call_3  (type_check_proc, scm_cadr (expr), sig, args)))
+       {
+               parser->error_level_ = 1;
+               return LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("void-music"), scm_list_2 (parser->self_scm (), make_input (*loc)));
+       }
+
+       SCM syntax_args = scm_list_4 (parser->self_scm (), make_input (*loc), func, args);
+       return LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("music-function"), syntax_args);
+}
+
+bool
+is_regular_identifier (SCM id)
+{
+  string str = ly_scm2string (id);
+  char const *s = str.c_str ();
+
+  bool v = true;
+#if 0
+  isalpha (*s);
+  s++;
+#endif
+  while (*s && v)
+   {
+        v = v && isalnum (*s);
+        s++;
+   }
+  return v;
+}
+
+Music *
+make_music_with_input (SCM name, Input where)
+{
+       Music *m = make_music_by_name (name);
+       m->set_spot (where);
+       return m;
+}
+
+SCM
+get_first_context_id (SCM type, Music *m)
+{
+       SCM id = m->get_property ("context-id");
+       if (SCM_BOOL_T == scm_equal_p (m->get_property ("context-type"), type)
+           && scm_is_string (m->get_property ("context-id"))
+           && scm_c_string_length (id) > 0)
+       {
+               return id;
+       }
+       return SCM_EOL;
+}
+
+SCM
+make_simple_markup (SCM a)
+{
+       return a;
+}
+
+bool
+is_duration (int t)
+{
+  return t && t == 1 << intlog2 (t);
+}
+
+void
+set_music_properties (Music *p, SCM a)
+{
+  for (SCM k = a; scm_is_pair (k); k = scm_cdr (k))
+       p->set_property (scm_caar (k), scm_cdar (k));
+}
+
+
+SCM
+make_chord_step (int step, Rational alter)
+{
+       if (step == 7)
+               alter += FLAT_ALTERATION;
+
+       while (step < 0)
+               step += 7;
+       Pitch m ((step -1) / 7, (step - 1) % 7, alter);
+       return m.smobbed_copy ();
+}
+
+
+SCM
+make_chord_elements (SCM pitch, SCM dur, SCM modification_list)
+{
+       SCM chord_ctor = ly_lily_module_constant ("construct-chord-elements");
+       return scm_call_3 (chord_ctor, pitch, dur, modification_list);
+}
+
+
+/* Todo: actually also use apply iso. call too ...  */
+bool
+ly_input_procedure_p (SCM x)
+{
+       return ly_is_procedure (x)
+               || (scm_is_pair (x) && ly_is_procedure (scm_car (x)));
+}
+
+SCM
+make_music_relative (Pitch start, SCM music, Input loc)
+{
+       Music *relative = MY_MAKE_MUSIC ("RelativeOctaveMusic", loc);
+       relative->set_property ("element", music);
+       
+       Music *m = unsmob_music (music);
+       Pitch last = m->to_relative_octave (start);
+       if (lily_1_8_relative)
+               m->set_property ("last-pitch", last.smobbed_copy ());
+       return relative->unprotect ();
+}
+
+int
+yylex (YYSTYPE *s, YYLTYPE *loc, void *v)
+{
+       Lily_parser *pars = (Lily_parser*) v;
+       Lily_lexer *lex = pars->lexer_;
+
+       lex->lexval = (void*) s;
+       lex->lexloc = loc;
+       lex->prepare_for_next_token ();
+       return lex->yylex ();
+}
+