]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/out/parser.cc
Imported Upstream version 2.16.0
[lilypond.git] / lily / out / parser.cc
index 9c1de4bdbdb082f279e8d7862f110e2790210283..b84e63d987558264a4d219f08ed03a0513b2a820 100644 (file)
    /* 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,
-     OCTAVE = 293,
-     ONCE = 294,
-     OVERRIDE = 295,
-     PAPER = 296,
-     PARTIAL = 297,
-     RELATIVE = 298,
-     REMOVE = 299,
-     REPEAT = 300,
-     REST = 301,
-     REVERT = 302,
-     SCORE = 303,
-     SEQUENTIAL = 304,
-     SET = 305,
-     SIMULTANEOUS = 306,
-     SKIP = 307,
-     TEMPO = 308,
-     TIMES = 309,
-     TRANSPOSE = 310,
-     TYPE = 311,
-     UNSET = 312,
-     WITH = 313,
-     TIME_T = 314,
-     NEWCONTEXT = 315,
-     CHORD_BASS = 316,
-     CHORD_CARET = 317,
-     CHORD_COLON = 318,
-     CHORD_MINUS = 319,
-     CHORD_SLASH = 320,
-     ANGLE_OPEN = 321,
-     ANGLE_CLOSE = 322,
-     DOUBLE_ANGLE_OPEN = 323,
-     DOUBLE_ANGLE_CLOSE = 324,
-     E_BACKSLASH = 325,
-     E_ANGLE_CLOSE = 326,
-     E_CHAR = 327,
-     E_CLOSE = 328,
-     E_EXCLAMATION = 329,
-     E_BRACKET_OPEN = 330,
-     E_OPEN = 331,
-     E_BRACKET_CLOSE = 332,
-     E_ANGLE_OPEN = 333,
-     E_PLUS = 334,
-     E_TILDE = 335,
-     EXTENDER = 336,
-     FIGURE_CLOSE = 337,
-     FIGURE_OPEN = 338,
-     FIGURE_SPACE = 339,
-     HYPHEN = 340,
-     CHORDMODIFIERS = 341,
-     LYRIC_MARKUP = 342,
-     MULTI_MEASURE_REST = 343,
-     DIGIT = 344,
-     E_UNSIGNED = 345,
-     UNSIGNED = 346,
-     EXPECT_MARKUP = 347,
-     EXPECT_MUSIC = 348,
-     EXPECT_SCM = 349,
-     EXPECT_MARKUP_LIST = 350,
+     PREC_BOT = 258,
+     REPEAT = 259,
+     ALTERNATIVE = 260,
+     COMPOSITE = 261,
+     ADDLYRICS = 262,
+     DEFAULT = 263,
+     FUNCTION_ARGLIST = 264,
+     DURATION_IDENTIFIER = 265,
+     REAL = 266,
+     UNSIGNED = 267,
+     TONICNAME_PITCH = 268,
+     NOTENAME_PITCH = 269,
+     PITCH_IDENTIFIER = 270,
+     NUMBER_IDENTIFIER = 271,
+     PREC_TOP = 272,
+     ACCEPTS = 273,
+     ALIAS = 274,
+     BOOK = 275,
+     BOOKPART = 276,
+     CHANGE = 277,
+     CHORDMODE = 278,
+     CHORDS = 279,
+     CONSISTS = 280,
+     CONTEXT = 281,
+     DEFAULTCHILD = 282,
+     DENIES = 283,
+     DESCRIPTION = 284,
+     DRUMMODE = 285,
+     DRUMS = 286,
+     FIGUREMODE = 287,
+     FIGURES = 288,
+     HEADER = 289,
+     INVALID = 290,
+     LAYOUT = 291,
+     LYRICMODE = 292,
+     LYRICS = 293,
+     LYRICSTO = 294,
+     MARKUP = 295,
+     MARKUPLIST = 296,
+     MIDI = 297,
+     NAME = 298,
+     NOTEMODE = 299,
+     OVERRIDE = 300,
+     PAPER = 301,
+     REMOVE = 302,
+     REST = 303,
+     REVERT = 304,
+     SCORE = 305,
+     SEQUENTIAL = 306,
+     SET = 307,
+     SIMULTANEOUS = 308,
+     TEMPO = 309,
+     TYPE = 310,
+     UNSET = 311,
+     WITH = 312,
+     NEWCONTEXT = 313,
+     CHORD_BASS = 314,
+     CHORD_CARET = 315,
+     CHORD_COLON = 316,
+     CHORD_MINUS = 317,
+     CHORD_SLASH = 318,
+     ANGLE_OPEN = 319,
+     ANGLE_CLOSE = 320,
+     DOUBLE_ANGLE_OPEN = 321,
+     DOUBLE_ANGLE_CLOSE = 322,
+     E_BACKSLASH = 323,
+     E_ANGLE_CLOSE = 324,
+     E_CHAR = 325,
+     E_CLOSE = 326,
+     E_EXCLAMATION = 327,
+     E_BRACKET_OPEN = 328,
+     E_OPEN = 329,
+     E_BRACKET_CLOSE = 330,
+     E_ANGLE_OPEN = 331,
+     E_PLUS = 332,
+     E_TILDE = 333,
+     EXTENDER = 334,
+     FIGURE_CLOSE = 335,
+     FIGURE_OPEN = 336,
+     FIGURE_SPACE = 337,
+     HYPHEN = 338,
+     CHORDMODIFIERS = 339,
+     LYRIC_MARKUP = 340,
+     MULTI_MEASURE_REST = 341,
+     E_UNSIGNED = 342,
+     EXPECT_MARKUP = 343,
+     EXPECT_PITCH = 344,
+     EXPECT_DURATION = 345,
+     EXPECT_SCM = 346,
+     BACKUP = 347,
+     REPARSE = 348,
+     EXPECT_MARKUP_LIST = 349,
+     EXPECT_OPTIONAL = 350,
      EXPECT_NO_MORE_ARGS = 351,
-     BOOK_IDENTIFIER = 352,
-     CHORDMODIFIER_PITCH = 353,
-     CHORD_MODIFIER = 354,
-     CHORD_REPETITION = 355,
-     CONTEXT_DEF_IDENTIFIER = 356,
-     CONTEXT_MOD_IDENTIFIER = 357,
-     DRUM_PITCH = 358,
-     DURATION_IDENTIFIER = 359,
+     EMBEDDED_LILY = 352,
+     BOOK_IDENTIFIER = 353,
+     CHORDMODIFIER_PITCH = 354,
+     CHORD_MODIFIER = 355,
+     CHORD_REPETITION = 356,
+     CONTEXT_DEF_IDENTIFIER = 357,
+     CONTEXT_MOD_IDENTIFIER = 358,
+     DRUM_PITCH = 359,
      EVENT_IDENTIFIER = 360,
-     FRACTION = 361,
-     LYRICS_STRING = 362,
-     LYRIC_MARKUP_IDENTIFIER = 363,
-     MARKUP_FUNCTION = 364,
-     MARKUP_LIST_FUNCTION = 365,
-     MARKUP_IDENTIFIER = 366,
-     MARKUPLINES_IDENTIFIER = 367,
-     MUSIC_FUNCTION = 368,
-     MUSIC_IDENTIFIER = 369,
-     NOTENAME_PITCH = 370,
-     NUMBER_IDENTIFIER = 371,
+     EVENT_FUNCTION = 361,
+     FRACTION = 362,
+     LYRICS_STRING = 363,
+     LYRIC_ELEMENT = 364,
+     LYRIC_MARKUP_IDENTIFIER = 365,
+     MARKUP_FUNCTION = 366,
+     MARKUP_LIST_FUNCTION = 367,
+     MARKUP_IDENTIFIER = 368,
+     MARKUPLIST_IDENTIFIER = 369,
+     MUSIC_FUNCTION = 370,
+     MUSIC_IDENTIFIER = 371,
      OUTPUT_DEF_IDENTIFIER = 372,
-     REAL = 373,
-     RESTNAME = 374,
+     RESTNAME = 373,
+     SCM_FUNCTION = 374,
      SCM_IDENTIFIER = 375,
      SCM_TOKEN = 376,
      SCORE_IDENTIFIER = 377,
      STRING = 378,
      STRING_IDENTIFIER = 379,
-     TONICNAME_PITCH = 380,
-     UNARY_MINUS = 381
+     UNARY_MINUS = 380
    };
 #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 OCTAVE 293
-#define ONCE 294
-#define OVERRIDE 295
-#define PAPER 296
-#define PARTIAL 297
-#define RELATIVE 298
-#define REMOVE 299
-#define REPEAT 300
-#define REST 301
-#define REVERT 302
-#define SCORE 303
-#define SEQUENTIAL 304
-#define SET 305
-#define SIMULTANEOUS 306
-#define SKIP 307
-#define TEMPO 308
-#define TIMES 309
-#define TRANSPOSE 310
-#define TYPE 311
-#define UNSET 312
-#define WITH 313
-#define TIME_T 314
-#define NEWCONTEXT 315
-#define CHORD_BASS 316
-#define CHORD_CARET 317
-#define CHORD_COLON 318
-#define CHORD_MINUS 319
-#define CHORD_SLASH 320
-#define ANGLE_OPEN 321
-#define ANGLE_CLOSE 322
-#define DOUBLE_ANGLE_OPEN 323
-#define DOUBLE_ANGLE_CLOSE 324
-#define E_BACKSLASH 325
-#define E_ANGLE_CLOSE 326
-#define E_CHAR 327
-#define E_CLOSE 328
-#define E_EXCLAMATION 329
-#define E_BRACKET_OPEN 330
-#define E_OPEN 331
-#define E_BRACKET_CLOSE 332
-#define E_ANGLE_OPEN 333
-#define E_PLUS 334
-#define E_TILDE 335
-#define EXTENDER 336
-#define FIGURE_CLOSE 337
-#define FIGURE_OPEN 338
-#define FIGURE_SPACE 339
-#define HYPHEN 340
-#define CHORDMODIFIERS 341
-#define LYRIC_MARKUP 342
-#define MULTI_MEASURE_REST 343
-#define DIGIT 344
-#define E_UNSIGNED 345
-#define UNSIGNED 346
-#define EXPECT_MARKUP 347
-#define EXPECT_MUSIC 348
-#define EXPECT_SCM 349
-#define EXPECT_MARKUP_LIST 350
+#define PREC_BOT 258
+#define REPEAT 259
+#define ALTERNATIVE 260
+#define COMPOSITE 261
+#define ADDLYRICS 262
+#define DEFAULT 263
+#define FUNCTION_ARGLIST 264
+#define DURATION_IDENTIFIER 265
+#define REAL 266
+#define UNSIGNED 267
+#define TONICNAME_PITCH 268
+#define NOTENAME_PITCH 269
+#define PITCH_IDENTIFIER 270
+#define NUMBER_IDENTIFIER 271
+#define PREC_TOP 272
+#define ACCEPTS 273
+#define ALIAS 274
+#define BOOK 275
+#define BOOKPART 276
+#define CHANGE 277
+#define CHORDMODE 278
+#define CHORDS 279
+#define CONSISTS 280
+#define CONTEXT 281
+#define DEFAULTCHILD 282
+#define DENIES 283
+#define DESCRIPTION 284
+#define DRUMMODE 285
+#define DRUMS 286
+#define FIGUREMODE 287
+#define FIGURES 288
+#define HEADER 289
+#define INVALID 290
+#define LAYOUT 291
+#define LYRICMODE 292
+#define LYRICS 293
+#define LYRICSTO 294
+#define MARKUP 295
+#define MARKUPLIST 296
+#define MIDI 297
+#define NAME 298
+#define NOTEMODE 299
+#define OVERRIDE 300
+#define PAPER 301
+#define REMOVE 302
+#define REST 303
+#define REVERT 304
+#define SCORE 305
+#define SEQUENTIAL 306
+#define SET 307
+#define SIMULTANEOUS 308
+#define TEMPO 309
+#define TYPE 310
+#define UNSET 311
+#define WITH 312
+#define NEWCONTEXT 313
+#define CHORD_BASS 314
+#define CHORD_CARET 315
+#define CHORD_COLON 316
+#define CHORD_MINUS 317
+#define CHORD_SLASH 318
+#define ANGLE_OPEN 319
+#define ANGLE_CLOSE 320
+#define DOUBLE_ANGLE_OPEN 321
+#define DOUBLE_ANGLE_CLOSE 322
+#define E_BACKSLASH 323
+#define E_ANGLE_CLOSE 324
+#define E_CHAR 325
+#define E_CLOSE 326
+#define E_EXCLAMATION 327
+#define E_BRACKET_OPEN 328
+#define E_OPEN 329
+#define E_BRACKET_CLOSE 330
+#define E_ANGLE_OPEN 331
+#define E_PLUS 332
+#define E_TILDE 333
+#define EXTENDER 334
+#define FIGURE_CLOSE 335
+#define FIGURE_OPEN 336
+#define FIGURE_SPACE 337
+#define HYPHEN 338
+#define CHORDMODIFIERS 339
+#define LYRIC_MARKUP 340
+#define MULTI_MEASURE_REST 341
+#define E_UNSIGNED 342
+#define EXPECT_MARKUP 343
+#define EXPECT_PITCH 344
+#define EXPECT_DURATION 345
+#define EXPECT_SCM 346
+#define BACKUP 347
+#define REPARSE 348
+#define EXPECT_MARKUP_LIST 349
+#define EXPECT_OPTIONAL 350
 #define EXPECT_NO_MORE_ARGS 351
-#define BOOK_IDENTIFIER 352
-#define CHORDMODIFIER_PITCH 353
-#define CHORD_MODIFIER 354
-#define CHORD_REPETITION 355
-#define CONTEXT_DEF_IDENTIFIER 356
-#define CONTEXT_MOD_IDENTIFIER 357
-#define DRUM_PITCH 358
-#define DURATION_IDENTIFIER 359
+#define EMBEDDED_LILY 352
+#define BOOK_IDENTIFIER 353
+#define CHORDMODIFIER_PITCH 354
+#define CHORD_MODIFIER 355
+#define CHORD_REPETITION 356
+#define CONTEXT_DEF_IDENTIFIER 357
+#define CONTEXT_MOD_IDENTIFIER 358
+#define DRUM_PITCH 359
 #define EVENT_IDENTIFIER 360
-#define FRACTION 361
-#define LYRICS_STRING 362
-#define LYRIC_MARKUP_IDENTIFIER 363
-#define MARKUP_FUNCTION 364
-#define MARKUP_LIST_FUNCTION 365
-#define MARKUP_IDENTIFIER 366
-#define MARKUPLINES_IDENTIFIER 367
-#define MUSIC_FUNCTION 368
-#define MUSIC_IDENTIFIER 369
-#define NOTENAME_PITCH 370
-#define NUMBER_IDENTIFIER 371
+#define EVENT_FUNCTION 361
+#define FRACTION 362
+#define LYRICS_STRING 363
+#define LYRIC_ELEMENT 364
+#define LYRIC_MARKUP_IDENTIFIER 365
+#define MARKUP_FUNCTION 366
+#define MARKUP_LIST_FUNCTION 367
+#define MARKUP_IDENTIFIER 368
+#define MARKUPLIST_IDENTIFIER 369
+#define MUSIC_FUNCTION 370
+#define MUSIC_IDENTIFIER 371
 #define OUTPUT_DEF_IDENTIFIER 372
-#define REAL 373
-#define RESTNAME 374
+#define RESTNAME 373
+#define SCM_FUNCTION 374
 #define SCM_IDENTIFIER 375
 #define SCM_TOKEN 376
 #define SCORE_IDENTIFIER 377
 #define STRING 378
 #define STRING_IDENTIFIER 379
-#define TONICNAME_PITCH 380
-#define UNARY_MINUS 381
+#define UNARY_MINUS 380
 
 
 
 
 /* Copy the first part of user declarations.  */
-#line 21 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 30 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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
+#define yyerror Lily_parser::parser_error
 
 /* We use custom location type: Input objects */
 #define YYLTYPE Input
        ((Current).set_location ((Rhs)[1], (Rhs)[N]))
 
 
-#line 67 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 108 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
  // -*-Fundamental-*-
 
 /*
@@ -371,20 +363,51 @@ using namespace std;
 #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"
 
+void
+Lily_parser::parser_error (Input const *i, Lily_parser *parser, string s)
+{
+       parser->parser_error (*i, s);
+}
+
+#define MYBACKUP(Token, Value, Location)                               \
+do                                                                     \
+       if (yychar == YYEMPTY)                                          \
+       {                                                               \
+               if (Token)                                              \
+                       parser->lexer_->push_extra_token (Token, Value); \
+               parser->lexer_->push_extra_token (BACKUP);              \
+       } else {                                                        \
+               parser->parser_error                                    \
+                       (Location, _("Too much lookahead"));            \
+       }                                                               \
+while (0)
+
+
+#define MYREPARSE(Location, Pred, Token, Value)                                \
+do                                                                     \
+       if (yychar == YYEMPTY)                                          \
+       {                                                               \
+               parser->lexer_->push_extra_token (Token, Value);        \
+               parser->lexer_->push_extra_token (REPARSE,              \
+                                                 Pred);                \
+       } else {                                                        \
+               parser->parser_error                                    \
+                       (Location, _("Too much lookahead"));            \
+       }                                                               \
+while (0)
+
 
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
-# define YYDEBUG 0
+# define YYDEBUG 1
 #endif
 
 /* Enabling verbose error messages.  */
@@ -392,7 +415,7 @@ using namespace std;
 # undef YYERROR_VERBOSE
 # define YYERROR_VERBOSE 1
 #else
-# define YYERROR_VERBOSE 0
+# define YYERROR_VERBOSE 1
 #endif
 
 /* Enabling the token table.  */
@@ -402,18 +425,17 @@ using namespace std;
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 110 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 182 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 417 "out/parser.cc"
+#line 439 "out/parser.cc"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -435,7 +457,7 @@ typedef struct YYLTYPE
 
 
 /* Copy the second part of user declarations.  */
-#line 120 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 191 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
 
 
 #define MY_MAKE_MUSIC(x, spot)  make_music_with_input (ly_symbol2scm (x), spot)
@@ -448,7 +470,11 @@ typedef struct YYLTYPE
   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));
+  LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant (name), scm_list_n (parser->self_scm (), make_input (location) , ##__VA_ARGS__, SCM_UNDEFINED))
+#define START_MAKE_SYNTAX(name, ...)                                   \
+       scm_list_n (ly_lily_module_constant (name) , ##__VA_ARGS__, SCM_UNDEFINED)
+#define FINISH_MAKE_SYNTAX(start, location, ...)                       \
+       LOWLEVEL_MAKE_SYNTAX (scm_car (start), scm_cons2 (parser->self_scm (), make_input (location), scm_append_x (scm_list_2 (scm_cdr (start), scm_list_n (__VA_ARGS__, SCM_UNDEFINED)))))
 
 SCM get_next_unique_context_id ();
 SCM get_next_unique_lyrics_context_id ();
@@ -463,22 +489,21 @@ SCM get_next_unique_lyrics_context_id ();
 
 
 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 check_scheme_arg (Lily_parser *parser, Input loc,
+                     SCM arg, SCM args, SCM pred);
+SCM loc_on_music (Input loc, SCM arg);
+SCM make_chord_elements (Input loc, 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);
+int yylex (YYSTYPE *s, YYLTYPE *loc, Lily_parser *parser);
 void set_music_properties (Music *p, SCM a);
 
 
 
 /* Line 216 of yacc.c.  */
-#line 482 "out/parser.cc"
+#line 507 "out/parser.cc"
 
 #ifdef short
 # undef short
@@ -693,22 +718,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  2
+#define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1916
+#define YYLAST   4878
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  148
+#define YYNTOKENS  147
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  145
+#define YYNNTS  186
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  415
+#define YYNRULES  529
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  585
+#define YYNSTATES  784
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   381
+#define YYMAXUTOK   380
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -719,16 +744,16 @@ 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,   146,     2,     2,     2,     2,     2,   139,
-     137,   138,   143,   127,   140,   126,   132,   144,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   145,     2,
-       2,   131,     2,   147,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   145,     2,     2,     2,     2,     2,   142,
+     140,   141,   144,   128,   143,   127,   133,    17,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    10,     2,
+       2,   132,     2,   146,     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,   134,     2,   135,   141,   142,     2,     2,     2,     2,
+       2,   137,     2,   138,   135,   136,     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,   129,   133,   130,   136,     2,     2,     2,
+       2,     2,     2,   130,   134,   131,   139,     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,
@@ -742,19 +767,19 @@ static const yytype_uint8 yytranslate[] =
        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,   128
+       5,     6,     7,     8,     9,    11,    12,    13,    14,    15,
+      16,    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,
+     129
 };
 
 #if YYDEBUG
@@ -762,210 +787,268 @@ static const yytype_uint8 yytranslate[] =
    YYRHS.  */
 static const yytype_uint16 yyprhs[] =
 {
-       0,     0,     3,     4,     7,    10,    13,    16,    18,    20,
-      22,    24,    26,    28,    30,    32,    34,    36,    37,    40,
-      45,    47,    49,    53,    58,    60,    62,    64,    66,    68,
-      70,    72,    74,    76,    78,    80,    82,    84,    86,    88,
-      93,    94,    96,   100,   103,   106,   111,   112,   114,   117,
-     120,   123,   126,   129,   132,   135,   138,   143,   144,   146,
-     149,   152,   155,   158,   161,   164,   167,   172,   174,   176,
-     179,   182,   185,   187,   190,   192,   194,   196,   198,   201,
-     205,   208,   211,   214,   219,   225,   228,   229,   232,   235,
-     238,   240,   242,   243,   248,   254,   259,   263,   268,   272,
-     274,   276,   278,   280,   281,   287,   290,   292,   293,   295,
-     296,   299,   302,   304,   306,   308,   310,   312,   314,   318,
-     322,   326,   330,   332,   336,   340,   344,   346,   348,   350,
-     353,   354,   357,   359,   365,   371,   375,   377,   382,   385,
-     389,   391,   393,   395,   397,   399,   401,   403,   405,   407,
-     409,   411,   415,   418,   419,   423,   424,   428,   429,   434,
-     435,   440,   443,   446,   447,   452,   457,   459,   462,   464,
-     468,   471,   477,   481,   483,   485,   487,   489,   491,   493,
-     495,   497,   499,   501,   504,   507,   509,   513,   519,   523,
-     528,   531,   533,   536,   538,   540,   544,   546,   548,   550,
-     552,   554,   556,   558,   560,   562,   565,   569,   573,   575,
-     577,   581,   585,   586,   589,   595,   598,   600,   602,   607,
-     610,   615,   618,   620,   623,   625,   627,   629,   631,   634,
-     637,   640,   642,   645,   647,   650,   654,   655,   658,   660,
-     663,   665,   667,   670,   673,   675,   677,   679,   681,   683,
-     685,   687,   689,   691,   693,   695,   697,   699,   701,   703,
-     705,   707,   708,   710,   713,   716,   718,   721,   723,   726,
-     728,   731,   734,   736,   739,   742,   744,   746,   748,   750,
-     752,   754,   756,   758,   760,   762,   764,   766,   768,   770,
-     772,   774,   776,   778,   779,   781,   784,   787,   789,   793,
-     797,   799,   803,   804,   807,   809,   812,   814,   816,   818,
-     820,   822,   824,   826,   828,   830,   833,   836,   839,   841,
-     843,   845,   847,   849,   852,   853,   856,   860,   861,   863,
-     870,   873,   876,   879,   881,   883,   886,   888,   890,   893,
-     898,   899,   902,   904,   906,   909,   912,   914,   916,   918,
-     920,   924,   926,   929,   932,   934,   938,   942,   946,   948,
-     950,   954,   958,   961,   963,   965,   967,   969,   972,   975,
-     977,   979,   981,   983,   984,   987,   988,   991,   993,   994,
-     998,  1000,  1001,  1005,  1007,  1008,  1012,  1014,  1017,  1019,
-    1021,  1023,  1025,  1027,  1030,  1034,  1035,  1038,  1041,  1044,
-    1048,  1052,  1054,  1056,  1060,  1064,  1066,  1069,  1071,  1073,
-    1075,  1077,  1078,  1084,  1087,  1090
+       0,     0,     3,     5,     6,    10,    11,    14,    17,    20,
+      23,    24,    27,    29,    31,    33,    35,    37,    39,    41,
+      43,    45,    47,    49,    51,    53,    55,    57,    59,    61,
+      63,    65,    67,    69,    71,    73,    75,    77,    80,    81,
+      83,    87,    89,    92,    93,    96,   101,   103,   105,   109,
+     114,   116,   118,   120,   122,   124,   126,   128,   130,   132,
+     134,   136,   138,   140,   142,   144,   149,   151,   153,   155,
+     156,   158,   161,   164,   167,   172,   173,   175,   178,   181,
+     184,   187,   190,   193,   194,   198,   201,   204,   209,   210,
+     212,   215,   218,   221,   224,   227,   228,   232,   235,   238,
+     243,   245,   247,   248,   252,   255,   258,   260,   263,   265,
+     267,   269,   271,   273,   274,   280,   283,   287,   290,   291,
+     295,   298,   303,   309,   312,   313,   316,   319,   323,   325,
+     327,   329,   331,   333,   335,   337,   339,   341,   346,   353,
+     356,   358,   361,   365,   367,   369,   371,   372,   378,   381,
+     383,   386,   387,   389,   390,   393,   396,   399,   401,   403,
+     405,   408,   410,   412,   414,   416,   418,   420,   424,   428,
+     432,   437,   442,   447,   452,   458,   464,   470,   472,   477,
+     482,   484,   489,   494,   496,   498,   500,   502,   507,   512,
+     517,   522,   527,   532,   537,   543,   549,   555,   560,   565,
+     570,   574,   578,   580,   582,   584,   588,   592,   596,   600,
+     602,   604,   608,   612,   617,   622,   627,   631,   633,   635,
+     637,   641,   645,   650,   655,   660,   664,   668,   672,   674,
+     677,   681,   685,   687,   690,   694,   698,   700,   702,   704,
+     706,   708,   711,   713,   717,   721,   726,   731,   736,   739,
+     740,   743,   745,   747,   749,   752,   757,   762,   765,   769,
+     771,   773,   775,   777,   779,   781,   783,   785,   787,   788,
+     792,   793,   798,   801,   802,   807,   812,   814,   817,   819,
+     823,   826,   832,   836,   838,   840,   842,   844,   846,   848,
+     850,   852,   854,   856,   859,   862,   864,   868,   874,   878,
+     883,   886,   888,   890,   892,   896,   898,   900,   902,   904,
+     906,   908,   910,   912,   914,   916,   918,   921,   924,   928,
+     932,   934,   936,   940,   944,   945,   948,   954,   957,   959,
+     961,   963,   966,   969,   971,   973,   975,   977,   979,   981,
+     983,   984,   987,   989,   992,   994,   996,   999,  1002,  1004,
+    1007,  1010,  1012,  1015,  1017,  1019,  1021,  1023,  1025,  1027,
+    1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,  1045,  1047,
+    1049,  1050,  1052,  1055,  1058,  1060,  1063,  1065,  1068,  1070,
+    1073,  1076,  1078,  1081,  1084,  1086,  1088,  1090,  1092,  1094,
+    1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,
+    1116,  1118,  1120,  1121,  1123,  1125,  1128,  1131,  1133,  1137,
+    1141,  1142,  1145,  1147,  1150,  1152,  1154,  1156,  1158,  1160,
+    1162,  1164,  1166,  1169,  1172,  1175,  1177,  1179,  1181,  1183,
+    1185,  1188,  1189,  1192,  1196,  1197,  1199,  1206,  1209,  1212,
+    1214,  1217,  1219,  1221,  1223,  1227,  1231,  1235,  1239,  1242,
+    1247,  1248,  1251,  1253,  1255,  1258,  1261,  1263,  1265,  1267,
+    1269,  1273,  1275,  1278,  1281,  1283,  1287,  1291,  1295,  1297,
+    1299,  1303,  1307,  1310,  1312,  1314,  1317,  1320,  1322,  1324,
+    1326,  1328,  1330,  1332,  1333,  1336,  1337,  1340,  1342,  1343,
+    1347,  1349,  1350,  1354,  1356,  1357,  1361,  1363,  1366,  1368,
+    1369,  1373,  1375,  1377,  1379,  1381,  1384,  1387,  1391,  1392,
+    1395,  1398,  1401,  1405,  1409,  1411,  1413,  1417,  1421,  1423,
+    1426,  1428,  1430,  1432,  1434,  1435,  1441,  1444,  1447,  1450
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     149,     0,    -1,    -1,   149,   150,    -1,   149,   155,    -1,
-     149,     1,    -1,   149,    26,    -1,   153,    -1,   159,    -1,
-     161,    -1,   163,    -1,   182,    -1,   278,    -1,   276,    -1,
-     166,    -1,   121,    -1,   120,    -1,    -1,   152,   155,    -1,
-      25,   129,   152,   130,    -1,   123,    -1,   107,    -1,   154,
-     131,   156,    -1,   154,   204,   131,   156,    -1,   151,    -1,
-     163,    -1,   159,    -1,   161,    -1,   166,    -1,   157,    -1,
-     172,    -1,   225,    -1,   266,    -1,   211,    -1,   151,    -1,
-     278,    -1,   276,    -1,    89,    -1,   178,    -1,    15,   129,
-     158,   130,    -1,    -1,   101,    -1,   158,    24,   151,    -1,
-     158,   207,    -1,   158,   178,    -1,     9,   129,   160,   130,
-      -1,    -1,    97,    -1,   160,   165,    -1,   160,   161,    -1,
-     160,   163,    -1,   160,   182,    -1,   160,   278,    -1,   160,
-     276,    -1,   160,   153,    -1,   160,     1,    -1,    10,   129,
-     162,   130,    -1,    -1,    97,    -1,   162,   165,    -1,   162,
-     163,    -1,   162,   182,    -1,   162,   278,    -1,   162,   276,
-      -1,   162,   153,    -1,   162,     1,    -1,    48,   129,   164,
-     130,    -1,   172,    -1,   122,    -1,   164,   153,    -1,   164,
-     166,    -1,   164,     1,    -1,   166,    -1,   169,   130,    -1,
-      41,    -1,    35,    -1,    28,    -1,   167,    -1,   168,   129,
-      -1,   168,   129,   117,    -1,   169,   155,    -1,   169,   157,
-      -1,   169,     1,    -1,    53,   243,   131,   265,    -1,    53,
-     213,   243,   131,   265,    -1,    53,   213,    -1,    -1,   171,
-     172,    -1,   171,   151,    -1,   171,     1,    -1,   177,    -1,
-     182,    -1,    -1,     8,   129,   171,   130,    -1,    45,   212,
-     271,   172,   173,    -1,    49,   129,   171,   130,    -1,   129,
-     171,   130,    -1,    51,   129,   171,   130,    -1,    68,   171,
-      69,    -1,   214,    -1,   114,    -1,   210,    -1,   202,    -1,
-      -1,    58,   179,   129,   181,   130,    -1,    58,   102,    -1,
-     102,    -1,    -1,   178,    -1,    -1,   181,   207,    -1,   181,
-     102,    -1,   191,    -1,   183,    -1,   176,    -1,   175,    -1,
-     151,    -1,   212,    -1,    93,   188,   172,    -1,    92,   188,
-     278,    -1,    92,   188,   212,    -1,    94,   188,   184,    -1,
-      96,    -1,    92,   187,   278,    -1,    92,   187,   212,    -1,
-      94,   187,   184,    -1,    96,    -1,   185,    -1,   186,    -1,
-     113,   188,    -1,    -1,   131,   212,    -1,   189,    -1,    15,
-     212,   190,   180,   172,    -1,    60,   212,   190,   180,   172,
-      -1,    54,   245,   172,    -1,   174,    -1,    55,   236,   236,
-     172,    -1,   192,   183,    -1,   193,   180,   183,    -1,   194,
-      -1,   200,    -1,    37,    -1,    20,    -1,    22,    -1,    12,
-      -1,    29,    -1,    21,    -1,    23,    -1,    13,    -1,    30,
-      -1,    43,   240,   172,    -1,    43,   182,    -1,    -1,     4,
-     196,   183,    -1,    -1,     4,   197,   114,    -1,    -1,   195,
-       4,   198,   183,    -1,    -1,   195,     4,   199,   114,    -1,
-     183,   195,    -1,   114,   195,    -1,    -1,    31,   212,   201,
-     172,    -1,    11,   123,   131,   123,    -1,   151,    -1,   203,
-     151,    -1,   203,    -1,   123,   131,   213,    -1,    57,   212,
-      -1,    40,   212,   204,   131,   213,    -1,    47,   212,   151,
-      -1,    14,    -1,    44,    -1,     6,    -1,    17,    -1,    18,
-      -1,     7,    -1,    56,    -1,    19,    -1,    36,    -1,   205,
-      -1,   206,   123,    -1,   206,   151,    -1,   212,    -1,   212,
-     132,   212,    -1,    40,   208,   204,   131,   213,    -1,    47,
-     208,   151,    -1,    50,   208,   131,   213,    -1,    57,   208,
-      -1,   209,    -1,    39,   209,    -1,   123,    -1,   124,    -1,
-     211,   127,   211,    -1,   123,    -1,   107,    -1,   124,    -1,
-     211,    -1,   107,    -1,   269,    -1,   151,    -1,   278,    -1,
-      89,    -1,   257,   224,    -1,   100,   242,   224,    -1,    88,
-     242,   224,    -1,   222,    -1,   215,    -1,   216,   242,   224,
-      -1,    66,   217,    67,    -1,    -1,   217,   218,    -1,   235,
-     272,   273,   230,   224,    -1,   103,   224,    -1,   220,    -1,
-     113,    -1,   219,    93,   187,   218,    -1,   219,   187,    -1,
-     219,    93,   187,   225,    -1,   219,   187,    -1,   223,    -1,
-      52,   241,    -1,    75,    -1,    77,    -1,    70,    -1,   133,
-      -1,    42,   241,    -1,    59,   245,    -1,    32,   213,    -1,
-      80,    -1,    32,    16,    -1,   170,    -1,    27,    16,    -1,
-      27,   115,   120,    -1,    -1,   224,   225,    -1,   228,    -1,
-     239,   221,    -1,    85,    -1,    81,    -1,   239,   229,    -1,
-     239,   228,    -1,   226,    -1,    90,    -1,   134,    -1,   135,
-      -1,   136,    -1,   137,    -1,   138,    -1,    74,    -1,    76,
-      -1,    73,    -1,    71,    -1,    78,    -1,   227,    -1,   105,
-      -1,   247,    -1,   237,    -1,   238,    -1,    -1,   131,    -1,
-     131,   232,    -1,   131,   231,    -1,   139,    -1,   231,   139,
-      -1,   140,    -1,   232,   140,    -1,   115,    -1,   115,   231,
-      -1,   115,   232,    -1,   125,    -1,   125,   231,    -1,   125,
-     232,    -1,   233,    -1,   235,    -1,   234,    -1,   278,    -1,
-     211,    -1,    89,    -1,   141,    -1,   127,    -1,   126,    -1,
-     133,    -1,    67,    -1,   132,    -1,   142,    -1,   142,    -1,
-     141,    -1,   126,    -1,   233,    -1,   244,    -1,    -1,   244,
-      -1,   270,   246,    -1,   104,   246,    -1,   243,    -1,   244,
-     143,   270,    -1,   244,   143,   106,    -1,   106,    -1,    91,
-     144,    91,    -1,    -1,   246,   132,    -1,   145,    -1,   145,
-     270,    -1,    89,    -1,    91,    -1,   123,    -1,   278,    -1,
-     126,    -1,   127,    -1,   146,    -1,    84,    -1,   248,    -1,
-     250,   135,    -1,   250,   249,    -1,   250,   251,    -1,    79,
-      -1,    74,    -1,   144,    -1,    70,    -1,   250,    -1,   134,
-     250,    -1,    -1,   253,   252,    -1,    83,   253,    82,    -1,
-      -1,    46,    -1,   235,   272,   273,   230,   242,   255,    -1,
-     103,   242,    -1,   119,   242,    -1,   258,   242,    -1,   256,
-      -1,   259,    -1,   254,   242,    -1,   274,    -1,   107,    -1,
-     234,   242,    -1,   234,   242,   261,   260,    -1,    -1,   260,
-     262,    -1,    63,    -1,    62,    -1,    65,   234,    -1,    61,
-     234,    -1,   261,    -1,   263,    -1,    99,    -1,   264,    -1,
-     263,   132,   264,    -1,   270,    -1,   270,   127,    -1,   270,
-      64,    -1,   270,    -1,   270,   136,   270,    -1,   266,   127,
-     267,    -1,   266,   126,   267,    -1,   267,    -1,   268,    -1,
-     268,   143,   268,    -1,   268,   144,   268,    -1,   126,   268,
-      -1,   269,    -1,    91,    -1,   118,    -1,   116,    -1,   118,
-     116,    -1,    91,   116,    -1,    91,    -1,    89,    -1,   270,
-      -1,   116,    -1,    -1,   272,   146,    -1,    -1,   273,   147,
-      -1,   108,    -1,    -1,    87,   275,   280,    -1,   112,    -1,
-      -1,    34,   277,   281,    -1,   111,    -1,    -1,    33,   279,
-     280,    -1,   281,    -1,   289,   290,    -1,   290,    -1,   112,
-      -1,   282,    -1,   283,    -1,   285,    -1,   289,   283,    -1,
-     129,   284,   130,    -1,    -1,   284,   292,    -1,   284,   281,
-      -1,   110,   287,    -1,    95,   287,   281,    -1,    94,   287,
-     151,    -1,    96,    -1,   286,    -1,    92,   287,   292,    -1,
-     109,    92,   287,    -1,   288,    -1,   289,   288,    -1,   123,
-      -1,   111,    -1,   108,    -1,   124,    -1,    -1,    48,   291,
-     129,   164,   130,    -1,   109,   286,    -1,   289,   290,    -1,
-     290,    -1
+     148,     0,    -1,   150,    -1,    -1,    99,   149,   158,    -1,
+      -1,   150,   151,    -1,   150,   162,    -1,   150,     1,    -1,
+     150,    37,    -1,    -1,   152,   160,    -1,   168,    -1,   171,
+      -1,   174,    -1,   200,    -1,   316,    -1,   314,    -1,   178,
+      -1,   123,    -1,   122,    -1,   153,    -1,   125,    -1,   126,
+      -1,   316,    -1,   314,    -1,   196,    -1,   174,    -1,   164,
+      -1,   168,    -1,   171,    -1,   178,    -1,   153,    -1,   157,
+      -1,   154,    -1,   157,    -1,   190,    -1,   121,   211,    -1,
+      -1,   163,    -1,   189,   189,   186,    -1,     1,    -1,    37,
+     158,    -1,    -1,   159,   162,    -1,    36,   130,   159,   131,
+      -1,   125,    -1,   110,    -1,   161,   132,   163,    -1,   161,
+     237,   132,   163,    -1,   155,    -1,   174,    -1,   168,    -1,
+     171,    -1,   178,    -1,   164,    -1,   191,    -1,   259,    -1,
+     303,    -1,   109,    -1,   244,    -1,   155,    -1,   316,    -1,
+     314,    -1,   196,    -1,    28,   130,   167,   131,    -1,   155,
+      -1,   200,    -1,   165,    -1,    -1,   104,    -1,   167,   240,
+      -1,   167,   196,    -1,   167,   166,    -1,    22,   130,   169,
+     131,    -1,    -1,   100,    -1,   169,   177,    -1,   169,   171,
+      -1,   169,   174,    -1,   169,   200,    -1,   169,   316,    -1,
+     169,   314,    -1,    -1,   169,   170,   160,    -1,   169,   155,
+      -1,   169,     1,    -1,    23,   130,   172,   131,    -1,    -1,
+     100,    -1,   172,   177,    -1,   172,   174,    -1,   172,   200,
+      -1,   172,   316,    -1,   172,   314,    -1,    -1,   172,   173,
+     160,    -1,   172,   155,    -1,   172,     1,    -1,    52,   130,
+     175,   131,    -1,   188,    -1,   124,    -1,    -1,   175,   176,
+     160,    -1,   175,   178,    -1,   175,     1,    -1,   178,    -1,
+     183,   131,    -1,    48,    -1,    44,    -1,    38,    -1,   179,
+      -1,   190,    -1,    -1,    28,   182,   130,   167,   131,    -1,
+     180,   130,    -1,   180,   130,   119,    -1,   183,   162,    -1,
+      -1,   183,   184,   181,    -1,   183,     1,    -1,    56,   279,
+     132,   302,    -1,    56,   247,   279,   132,   302,    -1,    56,
+     246,    -1,    -1,   186,   189,    -1,   186,     1,    -1,   130,
+     186,   131,    -1,   190,    -1,   295,    -1,   188,    -1,   155,
+      -1,   195,    -1,   200,    -1,   195,    -1,   200,    -1,   295,
+      -1,     4,   245,   309,   188,    -1,     4,   245,   309,   188,
+       5,   187,    -1,    53,   187,    -1,   187,    -1,    55,   187,
+      -1,    68,   186,    69,    -1,   248,    -1,   243,    -1,   235,
+      -1,    -1,    59,   197,   130,   199,   131,    -1,    59,   105,
+      -1,   105,    -1,    59,   219,    -1,    -1,   196,    -1,    -1,
+     199,   240,    -1,   199,   105,    -1,   199,   166,    -1,   225,
+      -1,   202,    -1,   202,    -1,   226,   201,    -1,   227,    -1,
+     118,    -1,   203,    -1,   194,    -1,   193,    -1,   212,    -1,
+      97,    91,   204,    -1,    97,    92,   204,    -1,    97,    93,
+     204,    -1,    97,    91,   211,   271,    -1,    97,    92,   215,
+     276,    -1,    97,    93,   215,   109,    -1,    97,    93,   215,
+     259,    -1,    97,    93,   215,   127,    13,    -1,    97,    93,
+     215,   127,    12,    -1,    97,    93,   215,   127,    18,    -1,
+     205,    -1,    97,    93,   211,   220,    -1,    97,    93,   215,
+     307,    -1,   205,    -1,    97,    93,   211,   156,    -1,    97,
+      93,   215,   306,    -1,   212,    -1,   210,    -1,   216,    -1,
+     210,    -1,    97,    93,   208,   220,    -1,    97,    93,   209,
+     259,    -1,    97,    93,   208,   293,    -1,    97,    93,   209,
+      13,    -1,    97,    93,   209,    12,    -1,    97,    93,   209,
+      18,    -1,    97,    93,   209,   109,    -1,    97,    93,   209,
+     127,    13,    -1,    97,    93,   209,   127,    12,    -1,    97,
+      93,   209,   127,    18,    -1,    97,    91,   208,   271,    -1,
+      97,    92,   209,   276,    -1,    97,    93,   210,    94,    -1,
+     210,    95,   220,    -1,   210,    95,   306,    -1,   212,    -1,
+     207,    -1,   222,    -1,    93,   217,   156,    -1,    93,   218,
+     306,    -1,    93,   218,   109,    -1,    93,   218,   259,    -1,
+     214,    -1,   213,    -1,    93,   217,   293,    -1,   213,    95,
+     294,    -1,    93,   218,   127,    13,    -1,    93,   218,   127,
+      12,    -1,    93,   218,   127,    18,    -1,   214,    95,   306,
+      -1,   216,    -1,   206,    -1,   222,    -1,    93,   217,   220,
+      -1,    93,   218,   306,    -1,    93,   218,   127,    13,    -1,
+      93,   218,   127,    12,    -1,    93,   218,   127,    18,    -1,
+      93,   218,   259,    -1,    93,   218,   109,    -1,    93,   217,
+     293,    -1,   208,    -1,   210,    94,    -1,    97,    91,   217,
+      -1,    97,    92,   217,    -1,   209,    -1,   210,    94,    -1,
+      97,    91,   218,    -1,    97,    92,   218,    -1,   153,    -1,
+     221,    -1,   154,    -1,   221,    -1,   201,    -1,   121,   215,
+      -1,    98,    -1,    91,   217,   271,    -1,    92,   218,   276,
+      -1,    97,    91,   204,     8,    -1,    97,    92,   204,     8,
+      -1,    97,    93,   204,     8,    -1,   117,   211,    -1,    -1,
+     132,   245,    -1,   223,    -1,   192,    -1,   233,    -1,   226,
+     188,    -1,    28,   245,   224,   198,    -1,    60,   245,   224,
+     198,    -1,   228,   203,    -1,   229,   198,   203,    -1,    46,
+      -1,    32,    -1,    34,    -1,    25,    -1,    39,    -1,    33,
+      -1,    35,    -1,    26,    -1,    40,    -1,    -1,     7,   231,
+     200,    -1,    -1,   230,     7,   232,   200,    -1,   200,   230,
+      -1,    -1,    41,   245,   234,   188,    -1,    24,   125,   132,
+     125,    -1,   219,    -1,   236,   219,    -1,   236,    -1,   125,
+     132,   246,    -1,    58,   245,    -1,    47,   245,   237,   132,
+     246,    -1,    51,   245,   155,    -1,    27,    -1,    49,    -1,
+      20,    -1,    29,    -1,    30,    -1,    21,    -1,    57,    -1,
+      31,    -1,    45,    -1,   238,    -1,   239,   125,    -1,   239,
+     155,    -1,   245,    -1,   245,   133,   245,    -1,    47,   241,
+     237,   132,   246,    -1,    51,   241,   155,    -1,    54,   241,
+     132,   246,    -1,    58,   241,    -1,   242,    -1,   125,    -1,
+     126,    -1,   244,   128,   244,    -1,   125,    -1,   110,    -1,
+     126,    -1,   156,    -1,   306,    -1,   109,    -1,   293,    -1,
+     220,    -1,   306,    -1,   109,    -1,   293,    -1,   291,   258,
+      -1,   292,   258,    -1,   103,   278,   258,    -1,    88,   278,
+     258,    -1,   256,    -1,   249,    -1,   250,   278,   258,    -1,
+      66,   251,    67,    -1,    -1,   251,   252,    -1,   270,   310,
+     311,   265,   258,    -1,   106,   258,    -1,   253,    -1,   223,
+      -1,   118,    -1,   117,   215,    -1,   108,   215,    -1,   257,
+      -1,    75,    -1,    77,    -1,    70,    -1,   134,    -1,    80,
+      -1,   185,    -1,    -1,   258,   260,    -1,   263,    -1,   275,
+     254,    -1,    85,    -1,    81,    -1,   275,   264,    -1,   275,
+     263,    -1,   261,    -1,   135,   273,    -1,   136,   273,    -1,
+     259,    -1,   127,   273,    -1,    89,    -1,   137,    -1,   138,
+      -1,   139,    -1,   140,    -1,   141,    -1,    74,    -1,    76,
+      -1,    73,    -1,    71,    -1,    78,    -1,   262,    -1,   107,
+      -1,   282,    -1,   255,    -1,   272,    -1,   274,    -1,    -1,
+     132,    -1,   132,   267,    -1,   132,   266,    -1,   142,    -1,
+     266,   142,    -1,   143,    -1,   267,   143,    -1,    15,    -1,
+      15,   266,    -1,    15,   267,    -1,    14,    -1,    14,   266,
+      -1,    14,   267,    -1,   268,    -1,    16,    -1,   270,    -1,
+     269,    -1,   316,    -1,   245,    -1,    13,    -1,   135,    -1,
+     128,    -1,   127,    -1,   134,    -1,    67,    -1,   133,    -1,
+     136,    -1,   136,    -1,   135,    -1,   127,    -1,   280,    -1,
+      -1,   280,    -1,   277,    -1,   308,   281,    -1,    11,   281,
+      -1,   279,    -1,   280,   144,   308,    -1,   280,   144,   109,
+      -1,    -1,   281,   133,    -1,    10,    -1,    10,   308,    -1,
+      13,    -1,   125,    -1,   316,    -1,   127,    -1,   128,    -1,
+     145,    -1,    84,    -1,   283,    -1,   285,   138,    -1,   285,
+     284,    -1,   285,   286,    -1,    79,    -1,    74,    -1,    17,
+      -1,    70,    -1,   285,    -1,   137,   285,    -1,    -1,   288,
+     287,    -1,    83,   288,    82,    -1,    -1,    50,    -1,   270,
+     310,   311,   265,   277,   290,    -1,   106,   278,    -1,   120,
+     278,    -1,   296,    -1,   289,   278,    -1,   312,    -1,   110,
+      -1,   293,    -1,   293,   280,   258,    -1,   293,   260,   258,
+      -1,   111,   278,   258,    -1,   293,   278,   258,    -1,   269,
+     278,    -1,   269,   278,   298,   297,    -1,    -1,   297,   299,
+      -1,    63,    -1,    62,    -1,    65,   269,    -1,    61,   269,
+      -1,   298,    -1,   300,    -1,   102,    -1,   301,    -1,   300,
+     133,   301,    -1,   308,    -1,   308,   128,    -1,   308,    64,
+      -1,   308,    -1,   308,   139,   308,    -1,   303,   128,   304,
+      -1,   303,   127,   304,    -1,   304,    -1,   305,    -1,   305,
+     144,   305,    -1,   305,    17,   305,    -1,   127,   305,    -1,
+     306,    -1,   307,    -1,    13,    18,    -1,    12,    18,    -1,
+      13,    -1,    12,    -1,    18,    -1,    13,    -1,    13,    -1,
+      18,    -1,    -1,   310,   145,    -1,    -1,   311,   146,    -1,
+     112,    -1,    -1,    87,   313,   318,    -1,   116,    -1,    -1,
+      43,   315,   321,    -1,   115,    -1,    -1,    42,   317,   318,
+      -1,   321,    -1,   329,   330,    -1,   330,    -1,    -1,   153,
+     320,    94,    -1,   116,    -1,   322,    -1,   323,    -1,   325,
+      -1,   319,   116,    -1,   329,   323,    -1,   130,   324,   131,
+      -1,    -1,   324,   332,    -1,   324,   321,    -1,   114,   327,
+      -1,    96,   327,   321,    -1,    93,   327,   219,    -1,    98,
+      -1,   326,    -1,    90,   327,   332,    -1,   113,    90,   327,
+      -1,   328,    -1,   329,   328,    -1,   125,    -1,   115,    -1,
+     112,    -1,   126,    -1,    -1,    52,   331,   130,   175,   131,
+      -1,   113,   326,    -1,   319,   115,    -1,   329,   330,    -1,
+     330,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   456,   456,   457,   459,   461,   464,   471,   474,   480,
-     486,   493,   498,   502,   506,   523,   524,   529,   533,   539,
-     548,   549,   553,   556,   568,   573,   577,   581,   585,   589,
-     592,   604,   607,   610,   613,   616,   619,   622,   625,   631,
-     638,   642,   646,   657,   660,   672,   683,   695,   701,   706,
-     712,   718,   723,   727,   731,   734,   742,   749,   754,   760,
-     764,   770,   775,   779,   783,   786,   793,   799,   809,   814,
-     817,   829,   840,   853,   862,   867,   872,   881,   888,   892,
-     902,   905,   908,   914,   917,   920,   933,   936,   946,   949,
-     966,   967,   971,   974,   981,   988,   991,   997,  1000,  1006,
-    1007,  1008,  1009,  1013,  1013,  1018,  1022,  1029,  1032,  1039,
-    1042,  1045,  1053,  1054,  1058,  1059,  1063,  1064,  1072,  1078,
-    1081,  1084,  1089,  1092,  1095,  1098,  1103,  1108,  1109,  1113,
-    1120,  1121,  1128,  1131,  1138,  1146,  1149,  1150,  1156,  1167,
-    1179,  1180,  1184,  1190,  1197,  1202,  1210,  1217,  1223,  1228,
-    1235,  1243,  1247,  1254,  1254,  1263,  1263,  1269,  1269,  1275,
-    1275,  1284,  1287,  1290,  1290,  1299,  1306,  1309,  1315,  1321,
-    1325,  1329,  1334,  1341,  1342,  1344,  1345,  1346,  1348,  1349,
-    1350,  1351,  1355,  1356,  1359,  1373,  1382,  1389,  1396,  1402,
-    1408,  1416,  1419,  1425,  1428,  1431,  1436,  1439,  1442,  1447,
-    1450,  1453,  1456,  1459,  1462,  1471,  1480,  1488,  1494,  1499,
-    1506,  1524,  1531,  1532,  1538,  1564,  1575,  1580,  1593,  1596,
-    1605,  1608,  1614,  1617,  1620,  1625,  1630,  1633,  1647,  1651,
-    1656,  1662,  1665,  1669,  1672,  1676,  1694,  1697,  1704,  1707,
-    1714,  1719,  1724,  1732,  1740,  1744,  1752,  1755,  1758,  1761,
-    1764,  1767,  1770,  1773,  1776,  1779,  1785,  1799,  1802,  1810,
-    1813,  1824,  1825,  1826,  1827,  1831,  1834,  1840,  1843,  1849,
-    1852,  1857,  1869,  1872,  1877,  1886,  1892,  1893,  1897,  1902,
-    1908,  1916,  1919,  1922,  1925,  1928,  1931,  1934,  1940,  1941,
-    1942,  1947,  1953,  1959,  1963,  1970,  1979,  1989,  1992,  1995,
-    2003,  2004,  2010,  2013,  2019,  2022,  2030,  2033,  2036,  2037,
-    2041,  2042,  2043,  2047,  2051,  2062,  2066,  2077,  2100,  2103,
-    2106,  2109,  2115,  2118,  2125,  2128,  2134,  2141,  2142,  2146,
-    2172,  2179,  2192,  2204,  2207,  2212,  2222,  2225,  2231,  2234,
-    2241,  2244,  2250,  2253,  2256,  2259,  2265,  2268,  2271,  2277,
-    2278,  2284,  2287,  2290,  2296,  2299,  2311,  2314,  2317,  2321,
-    2324,  2327,  2333,  2336,  2341,  2344,  2347,  2350,  2353,  2360,
-    2363,  2369,  2370,  2376,  2377,  2381,  2382,  2390,  2394,  2393,
-    2402,  2406,  2405,  2414,  2418,  2417,  2426,  2429,  2432,  2438,
-    2441,  2444,  2447,  2453,  2460,  2466,  2467,  2470,  2476,  2482,
-    2485,  2488,  2494,  2495,  2501,  2507,  2510,  2516,  2519,  2522,
-    2525,  2528,  2528,  2537,  2543,  2547
+       0,   564,   564,   565,   565,   574,   575,   577,   579,   582,
+     589,   589,   594,   600,   606,   613,   618,   622,   626,   643,
+     647,   651,   652,   653,   654,   655,   656,   657,   662,   663,
+     668,   673,   683,   684,   688,   689,   690,   694,   702,   705,
+     706,   714,   717,   723,   725,   731,   740,   741,   745,   748,
+     760,   765,   769,   773,   777,   781,   784,   787,   790,   793,
+     796,   799,   802,   805,   808,   814,   821,   822,   826,   842,
+     846,   850,   853,   860,   872,   883,   893,   899,   904,   910,
+     916,   921,   925,   930,   929,   933,   934,   942,   949,   954,
+     960,   964,   970,   975,   979,   984,   983,   989,   990,   997,
+    1003,  1013,  1019,  1018,  1024,  1036,  1047,  1060,  1069,  1074,
+    1079,  1088,  1100,  1105,  1104,  1114,  1118,  1128,  1132,  1131,
+    1147,  1153,  1156,  1159,  1168,  1171,  1175,  1185,  1191,  1192,
+    1196,  1197,  1211,  1221,  1225,  1226,  1227,  1231,  1235,  1242,
+    1245,  1251,  1254,  1260,  1261,  1262,  1266,  1266,  1271,  1275,
+    1279,  1291,  1294,  1301,  1304,  1307,  1312,  1319,  1320,  1325,
+    1326,  1333,  1334,  1335,  1339,  1340,  1348,  1349,  1353,  1357,
+    1365,  1368,  1371,  1375,  1379,  1395,  1401,  1410,  1411,  1415,
+    1422,  1423,  1427,  1434,  1435,  1439,  1440,  1444,  1454,  1464,
+    1481,  1492,  1503,  1513,  1523,  1543,  1553,  1562,  1566,  1570,
+    1575,  1580,  1588,  1589,  1593,  1594,  1599,  1604,  1609,  1614,
+    1615,  1619,  1650,  1659,  1676,  1682,  1687,  1694,  1695,  1699,
+    1700,  1705,  1710,  1726,  1732,  1738,  1743,  1748,  1756,  1757,
+    1758,  1762,  1769,  1770,  1771,  1775,  1782,  1783,  1787,  1788,
+    1789,  1793,  1800,  1803,  1806,  1809,  1812,  1815,  1821,  1829,
+    1830,  1836,  1837,  1838,  1839,  1846,  1853,  1863,  1874,  1889,
+    1895,  1902,  1907,  1915,  1922,  1928,  1933,  1940,  1947,  1947,
+    1956,  1956,  1965,  1968,  1968,  1977,  1984,  1987,  1993,  1999,
+    2003,  2007,  2012,  2019,  2020,  2022,  2023,  2024,  2026,  2027,
+    2028,  2029,  2033,  2034,  2037,  2054,  2063,  2070,  2077,  2083,
+    2089,  2097,  2103,  2106,  2109,  2114,  2117,  2120,  2126,  2127,
+    2128,  2129,  2133,  2134,  2135,  2136,  2141,  2155,  2164,  2170,
+    2176,  2177,  2182,  2200,  2207,  2208,  2215,  2241,  2251,  2268,
+    2269,  2278,  2285,  2292,  2295,  2300,  2305,  2308,  2325,  2328,
+    2335,  2338,  2345,  2348,  2355,  2360,  2365,  2373,  2381,  2382,
+    2387,  2395,  2396,  2402,  2410,  2413,  2416,  2419,  2422,  2425,
+    2428,  2431,  2434,  2437,  2443,  2457,  2460,  2465,  2469,  2472,
+    2483,  2484,  2485,  2486,  2490,  2493,  2499,  2502,  2508,  2511,
+    2516,  2528,  2531,  2536,  2545,  2548,  2552,  2553,  2557,  2562,
+    2571,  2579,  2582,  2585,  2588,  2591,  2594,  2597,  2603,  2604,
+    2605,  2609,  2615,  2618,  2626,  2634,  2643,  2653,  2656,  2659,
+    2667,  2670,  2676,  2679,  2687,  2688,  2689,  2693,  2694,  2695,
+    2699,  2703,  2714,  2718,  2729,  2752,  2755,  2758,  2761,  2767,
+    2770,  2777,  2780,  2786,  2793,  2794,  2798,  2830,  2837,  2853,
+    2858,  2868,  2871,  2877,  2878,  2884,  2890,  2900,  2909,  2912,
+    2919,  2922,  2928,  2931,  2934,  2937,  2943,  2946,  2949,  2955,
+    2956,  2962,  2965,  2968,  2974,  2977,  2989,  2992,  2995,  2999,
+    3002,  3005,  3011,  3014,  3019,  3020,  3023,  3029,  3030,  3031,
+    3035,  3041,  3042,  3046,  3047,  3051,  3052,  3060,  3064,  3063,
+    3072,  3076,  3075,  3084,  3088,  3087,  3096,  3099,  3102,  3109,
+    3108,  3123,  3126,  3129,  3132,  3135,  3142,  3149,  3155,  3156,
+    3159,  3165,  3171,  3174,  3177,  3183,  3184,  3190,  3196,  3199,
+    3205,  3208,  3211,  3214,  3217,  3217,  3226,  3229,  3236,  3240
 };
 #endif
 
@@ -974,83 +1057,97 @@ static const yytype_uint16 yyrline[] =
    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\"",
+  "$end", "error", "$undefined", "PREC_BOT", "\"\\\\repeat\"",
+  "\"\\\\alternative\"", "COMPOSITE", "\"\\\\addlyrics\"",
+  "\"\\\\default\"", "FUNCTION_ARGLIST", "':'", "DURATION_IDENTIFIER",
+  "REAL", "UNSIGNED", "TONICNAME_PITCH", "NOTENAME_PITCH",
+  "PITCH_IDENTIFIER", "'/'", "NUMBER_IDENTIFIER", "PREC_TOP",
+  "\"\\\\accepts\"", "\"\\\\alias\"", "\"\\\\book\"", "\"\\\\bookpart\"",
+  "\"\\\\change\"", "\"\\\\chordmode\"", "\"\\\\chords\"",
+  "\"\\\\consists\"", "\"\\\\context\"", "\"\\\\defaultchild\"",
   "\"\\\\denies\"", "\"\\\\description\"", "\"\\\\drummode\"",
   "\"\\\\drums\"", "\"\\\\figuremode\"", "\"\\\\figures\"",
-  "\"\\\\grobdescriptions\"", "\"\\\\header\"", "\"\\\\invalid\"",
-  "\"\\\\key\"", "\"\\\\layout\"", "\"\\\\lyricmode\"", "\"\\\\lyrics\"",
-  "\"\\\\lyricsto\"", "\"\\\\mark\"", "\"\\\\markup\"",
-  "\"\\\\markuplines\"", "\"\\\\midi\"", "\"\\\\name\"",
-  "\"\\\\notemode\"", "\"\\\\octave\"", "\"\\\\once\"", "\"\\\\override\"",
-  "\"\\\\paper\"", "\"\\\\partial\"", "\"\\\\relative\"", "\"\\\\remove\"",
-  "\"\\\\repeat\"", "\"\\\\rest\"", "\"\\\\revert\"", "\"\\\\score\"",
+  "\"\\\\header\"", "\"\\\\version-error\"", "\"\\\\layout\"",
+  "\"\\\\lyricmode\"", "\"\\\\lyrics\"", "\"\\\\lyricsto\"",
+  "\"\\\\markup\"", "\"\\\\markuplist\"", "\"\\\\midi\"", "\"\\\\name\"",
+  "\"\\\\notemode\"", "\"\\\\override\"", "\"\\\\paper\"",
+  "\"\\\\remove\"", "\"\\\\rest\"", "\"\\\\revert\"", "\"\\\\score\"",
   "\"\\\\sequential\"", "\"\\\\set\"", "\"\\\\simultaneous\"",
-  "\"\\\\skip\"", "\"\\\\tempo\"", "\"\\\\times\"", "\"\\\\transpose\"",
-  "\"\\\\type\"", "\"\\\\unset\"", "\"\\\\with\"", "\"\\\\time\"",
+  "\"\\\\tempo\"", "\"\\\\type\"", "\"\\\\unset\"", "\"\\\\with\"",
   "\"\\\\new\"", "\"/+\"", "\"^\"", "\":\"", "\"-\"", "\"/\"", "\"<\"",
   "\">\"", "\"<<\"", "\">>\"", "\"\\\\\"", "\"\\\\>\"",
   "\"\\\\C[haracter]\"", "\"\\\\)\"", "\"\\\\!\"", "\"\\\\[\"",
   "\"\\\\(\"", "\"\\\\]\"", "\"\\\\<\"", "\"\\\\+\"", "\"\\\\~\"",
   "\"__\"", "FIGURE_CLOSE", "FIGURE_OPEN", "\"_\"", "\"--\"",
-  "CHORDMODIFIERS", "LYRIC_MARKUP", "MULTI_MEASURE_REST", "DIGIT",
-  "E_UNSIGNED", "UNSIGNED", "EXPECT_MARKUP", "EXPECT_MUSIC", "EXPECT_SCM",
-  "EXPECT_MARKUP_LIST", "EXPECT_NO_MORE_ARGS", "BOOK_IDENTIFIER",
+  "CHORDMODIFIERS", "LYRIC_MARKUP", "MULTI_MEASURE_REST", "E_UNSIGNED",
+  "\"markup?\"", "\"ly:pitch?\"", "\"ly:duration?\"", "\"scheme?\"",
+  "\"(backed-up?)\"", "\"(reparsed?)\"", "\"markup-list?\"",
+  "\"optional?\"", "EXPECT_NO_MORE_ARGS", "\"#{\"", "BOOK_IDENTIFIER",
   "CHORDMODIFIER_PITCH", "CHORD_MODIFIER", "CHORD_REPETITION",
   "CONTEXT_DEF_IDENTIFIER", "CONTEXT_MOD_IDENTIFIER", "DRUM_PITCH",
-  "DURATION_IDENTIFIER", "EVENT_IDENTIFIER", "FRACTION", "LYRICS_STRING",
-  "LYRIC_MARKUP_IDENTIFIER", "MARKUP_FUNCTION", "MARKUP_LIST_FUNCTION",
-  "MARKUP_IDENTIFIER", "MARKUPLINES_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",
-  "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",
-  "context_modification", "@1", "optional_context_mod", "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", "@4", "@5",
-  "re_rhythmed_music", "@6", "context_change", "property_path_revved",
+  "EVENT_IDENTIFIER", "EVENT_FUNCTION", "FRACTION", "LYRICS_STRING",
+  "LYRIC_ELEMENT", "LYRIC_MARKUP_IDENTIFIER", "MARKUP_FUNCTION",
+  "MARKUP_LIST_FUNCTION", "MARKUP_IDENTIFIER", "MARKUPLIST_IDENTIFIER",
+  "MUSIC_FUNCTION", "MUSIC_IDENTIFIER", "OUTPUT_DEF_IDENTIFIER",
+  "RESTNAME", "SCM_FUNCTION", "SCM_IDENTIFIER", "SCM_TOKEN",
+  "SCORE_IDENTIFIER", "STRING", "STRING_IDENTIFIER", "'-'", "'+'",
+  "UNARY_MINUS", "'{'", "'}'", "'='", "'.'", "'|'", "'^'", "'_'", "'['",
+  "']'", "'~'", "'('", "')'", "'''", "','", "'*'", "'!'", "'?'", "$accept",
+  "start_symbol", "@1", "lilypond", "toplevel_expression", "@2",
+  "embedded_scm_bare", "embedded_scm_bare_arg", "embedded_scm",
+  "embedded_scm_arg", "scm_function_call", "embedded_lilypond",
+  "lilypond_header_body", "lilypond_header", "assignment_id", "assignment",
+  "identifier_init", "context_def_spec_block", "context_mod_arg",
+  "context_mod_embedded", "context_def_spec_body", "book_block",
+  "book_body", "@3", "bookpart_block", "bookpart_body", "@4",
+  "score_block", "score_body", "@5", "paper_block", "output_def",
+  "output_def_head", "output_def_head_with_mode_switch",
+  "music_or_context_def", "@6", "output_def_body", "@7", "tempo_event",
+  "music_list", "braced_music_list", "music", "music_embedded",
+  "music_arg", "music_assign", "repeated_music", "sequential_music",
+  "simultaneous_music", "simple_music", "context_modification", "@8",
+  "optional_context_mod", "context_mod_list", "composite_music",
+  "closed_music", "music_bare", "grouped_music_list",
+  "function_arglist_skip", "function_arglist_nonbackup_common",
+  "function_arglist_closed_nonbackup", "function_arglist_nonbackup",
+  "function_arglist_keep", "function_arglist_closed_keep",
+  "function_arglist_backup", "function_arglist", "function_arglist_common",
+  "function_arglist_common_lyric", "function_arglist_common_minus",
+  "function_arglist_closed", "function_arglist_closed_common",
+  "function_arglist_optional", "function_arglist_closed_optional",
+  "embedded_scm_closed", "embedded_scm_arg_closed",
+  "scm_function_call_closed", "function_arglist_bare",
+  "music_function_call", "optional_id", "complex_music",
+  "complex_music_prefix", "mode_changed_music", "mode_changing_head",
+  "mode_changing_head_with_context", "new_lyrics", "@9", "@10",
+  "re_rhythmed_music", "@11", "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",
+  "string", "simple_string", "scalar", "scalar_closed", "event_chord",
+  "note_chord_element", "chord_body", "chord_body_elements",
+  "chord_body_element", "music_function_chord_body",
+  "music_function_event", "event_function_event", "command_element",
+  "command_event", "post_events", "post_event_nofinger", "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", "fingering", "script_abbreviation", "script_dir",
+  "duration_length", "maybe_notemode_duration",
   "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", "tempo_range", "number_expression", "number_term",
-  "number_factor", "bare_number", "bare_unsigned", "unsigned_number",
-  "exclamations", "questions", "lyric_markup", "@7", "full_markup_list",
-  "@8", "full_markup", "@9", "markup_top", "markup_list",
+  "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", "lyric_element_arg",
+  "lyric_element_music", "new_chord", "chord_items", "chord_separator",
+  "chord_item", "step_numbers", "step_number", "tempo_range",
+  "number_expression", "number_term", "number_factor", "bare_number",
+  "bare_number_closed", "bare_unsigned", "unsigned_number", "exclamations",
+  "questions", "lyric_markup", "@12", "full_markup_list", "@13",
+  "full_markup", "@14", "markup_top", "markup_scm", "@15", "markup_list",
   "markup_composed_list", "markup_braced_list", "markup_braced_list_body",
   "markup_command_list", "markup_command_basic_arguments",
   "markup_command_list_arguments", "markup_head_1_item",
-  "markup_head_1_list", "simple_markup", "@10", "markup", 0
+  "markup_head_1_list", "simple_markup", "@16", "markup", 0
 };
 #endif
 
@@ -1060,115 +1157,137 @@ static const char *const yytname[] =
 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,    45,    43,   381,   123,
-     125,    61,    46,   124,    91,    93,   126,    40,    41,    39,
-      44,    94,    95,    42,    47,    58,    33,    63
+      58,   265,   266,   267,   268,   269,   270,    47,   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,    45,    43,   380,
+     123,   125,    61,    46,   124,    94,    95,    91,    93,   126,
+      40,    41,    39,    44,    42,    33,    63
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   148,   149,   149,   149,   149,   149,   150,   150,   150,
-     150,   150,   150,   150,   150,   151,   151,   152,   152,   153,
-     154,   154,   155,   155,   155,   156,   156,   156,   156,   156,
-     156,   156,   156,   156,   156,   156,   156,   156,   156,   157,
-     158,   158,   158,   158,   158,   159,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   161,   162,   162,   162,
-     162,   162,   162,   162,   162,   162,   163,   164,   164,   164,
-     164,   164,   165,   166,   167,   167,   167,   168,   169,   169,
-     169,   169,   169,   170,   170,   170,   171,   171,   171,   171,
-     172,   172,   173,   173,   174,   175,   175,   176,   176,   177,
-     177,   177,   177,   179,   178,   178,   178,   180,   180,   181,
-     181,   181,   182,   182,   183,   183,   184,   184,   185,   186,
-     186,   186,   187,   187,   187,   187,   188,   188,   188,   189,
-     190,   190,   191,   191,   191,   191,   191,   191,   191,   191,
-     191,   191,   192,   192,   192,   192,   192,   193,   193,   193,
-     193,   194,   194,   196,   195,   197,   195,   198,   195,   199,
-     195,   200,   200,   201,   200,   202,   203,   203,   204,   205,
-     205,   205,   205,   206,   206,   206,   206,   206,   206,   206,
-     206,   206,   207,   207,   207,   208,   208,   209,   209,   209,
-     209,   210,   210,   211,   211,   211,   212,   212,   212,   213,
-     213,   213,   213,   213,   213,   214,   214,   214,   214,   214,
-     215,   216,   217,   217,   218,   218,   218,   219,   220,   220,
-     221,   221,   222,   222,   222,   222,   222,   222,   222,   222,
-     222,   223,   223,   223,   223,   223,   224,   224,   225,   225,
-     225,   225,   225,   225,   225,   226,   227,   227,   227,   227,
-     227,   227,   227,   227,   227,   227,   228,   228,   228,   229,
-     229,   230,   230,   230,   230,   231,   231,   232,   232,   233,
-     233,   233,   234,   234,   234,   235,   236,   236,   237,   237,
-     237,   238,   238,   238,   238,   238,   238,   238,   239,   239,
-     239,   240,   241,   242,   242,   243,   243,   244,   244,   244,
-     245,   245,   246,   246,   247,   247,   248,   248,   248,   248,
-     249,   249,   249,   250,   250,   250,   250,   250,   251,   251,
-     251,   251,   252,   252,   253,   253,   254,   255,   255,   256,
-     256,   256,   256,   257,   257,   257,   258,   258,   259,   259,
-     260,   260,   261,   261,   261,   261,   262,   262,   262,   263,
-     263,   264,   264,   264,   265,   265,   266,   266,   266,   267,
-     267,   267,   268,   268,   269,   269,   269,   269,   269,   270,
-     270,   271,   271,   272,   272,   273,   273,   274,   275,   274,
-     276,   277,   276,   278,   279,   278,   280,   280,   280,   281,
-     281,   281,   281,   282,   283,   284,   284,   284,   285,   286,
-     286,   286,   287,   287,   288,   289,   289,   290,   290,   290,
-     290,   291,   290,   290,   292,   292
+       0,   147,   148,   149,   148,   150,   150,   150,   150,   150,
+     152,   151,   151,   151,   151,   151,   151,   151,   151,   153,
+     153,   154,   154,   154,   154,   154,   154,   154,   154,   154,
+     154,   154,   155,   155,   156,   156,   156,   157,   158,   158,
+     158,   158,   158,   159,   159,   160,   161,   161,   162,   162,
+     162,   163,   163,   163,   163,   163,   163,   163,   163,   163,
+     163,   163,   163,   163,   163,   164,   165,   165,   166,   167,
+     167,   167,   167,   167,   168,   169,   169,   169,   169,   169,
+     169,   169,   169,   170,   169,   169,   169,   171,   172,   172,
+     172,   172,   172,   172,   172,   173,   172,   172,   172,   174,
+     175,   175,   176,   175,   175,   175,   177,   178,   179,   179,
+     179,   180,   181,   182,   181,   183,   183,   183,   184,   183,
+     183,   185,   185,   185,   186,   186,   186,   187,   188,   188,
+     189,   189,   190,   190,   191,   191,   191,   192,   192,   193,
+     193,   194,   194,   195,   195,   195,   197,   196,   196,   196,
+     196,   198,   198,   199,   199,   199,   199,   200,   200,   201,
+     201,   202,   202,   202,   203,   203,   204,   204,   204,   204,
+     205,   205,   205,   205,   205,   205,   205,   206,   206,   206,
+     207,   207,   207,   208,   208,   209,   209,   210,   210,   210,
+     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
+     210,   210,   211,   211,   212,   212,   212,   212,   212,   212,
+     212,   213,   213,   214,   214,   214,   214,   215,   215,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   217,   217,
+     217,   217,   218,   218,   218,   218,   219,   219,   220,   220,
+     220,   221,   222,   222,   222,   222,   222,   222,   223,   224,
+     224,   225,   225,   225,   225,   226,   226,   227,   227,   228,
+     228,   228,   228,   228,   229,   229,   229,   229,   231,   230,
+     232,   230,   233,   234,   233,   235,   236,   236,   237,   238,
+     238,   238,   238,   239,   239,   239,   239,   239,   239,   239,
+     239,   239,   240,   240,   240,   241,   241,   242,   242,   242,
+     242,   243,   244,   244,   244,   245,   245,   245,   246,   246,
+     246,   246,   247,   247,   247,   247,   248,   248,   248,   248,
+     248,   248,   249,   250,   251,   251,   252,   252,   252,   253,
+     253,   254,   255,   256,   256,   256,   256,   256,   257,   257,
+     258,   258,   259,   259,   259,   259,   259,   259,   259,   259,
+     259,   260,   260,   261,   262,   262,   262,   262,   262,   262,
+     262,   262,   262,   262,   263,   263,   263,   263,   264,   264,
+     265,   265,   265,   265,   266,   266,   267,   267,   268,   268,
+     268,   269,   269,   269,   270,   270,   271,   271,   272,   272,
+     273,   274,   274,   274,   274,   274,   274,   274,   275,   275,
+     275,   276,   277,   277,   278,   279,   279,   280,   280,   280,
+     281,   281,   282,   282,   283,   283,   283,   284,   284,   284,
+     285,   285,   285,   285,   285,   286,   286,   286,   286,   287,
+     287,   288,   288,   289,   290,   290,   291,   291,   291,   292,
+     292,   293,   293,   294,   294,   294,   294,   295,   296,   296,
+     297,   297,   298,   298,   298,   298,   299,   299,   299,   300,
+     300,   301,   301,   301,   302,   302,   303,   303,   303,   304,
+     304,   304,   305,   305,   306,   306,   306,   307,   307,   307,
+     308,   309,   309,   310,   310,   311,   311,   312,   313,   312,
+     314,   315,   314,   316,   317,   316,   318,   318,   318,   320,
+     319,   321,   321,   321,   321,   321,   322,   323,   324,   324,
+     324,   325,   326,   326,   326,   327,   327,   328,   329,   329,
+     330,   330,   330,   330,   331,   330,   330,   330,   332,   332
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
-       0,     2,     0,     2,     2,     2,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     2,     4,
-       1,     1,     3,     4,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
-       0,     1,     3,     2,     2,     4,     0,     1,     2,     2,
-       2,     2,     2,     2,     2,     2,     4,     0,     1,     2,
-       2,     2,     2,     2,     2,     2,     4,     1,     1,     2,
-       2,     2,     1,     2,     1,     1,     1,     1,     2,     3,
-       2,     2,     2,     4,     5,     2,     0,     2,     2,     2,
-       1,     1,     0,     4,     5,     4,     3,     4,     3,     1,
-       1,     1,     1,     0,     5,     2,     1,     0,     1,     0,
-       2,     2,     1,     1,     1,     1,     1,     1,     3,     3,
-       3,     3,     1,     3,     3,     3,     1,     1,     1,     2,
-       0,     2,     1,     5,     5,     3,     1,     4,     2,     3,
+       0,     2,     1,     0,     3,     0,     2,     2,     2,     2,
+       0,     2,     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,     2,     0,     1,
+       3,     1,     2,     0,     2,     4,     1,     1,     3,     4,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     3,     2,     0,     3,     0,     3,     0,     4,     0,
-       4,     2,     2,     0,     4,     4,     1,     2,     1,     3,
+       1,     1,     1,     1,     1,     4,     1,     1,     1,     0,
+       1,     2,     2,     2,     4,     0,     1,     2,     2,     2,
+       2,     2,     2,     0,     3,     2,     2,     4,     0,     1,
+       2,     2,     2,     2,     2,     0,     3,     2,     2,     4,
+       1,     1,     0,     3,     2,     2,     1,     2,     1,     1,
+       1,     1,     1,     0,     5,     2,     3,     2,     0,     3,
+       2,     4,     5,     2,     0,     2,     2,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     4,     6,     2,
+       1,     2,     3,     1,     1,     1,     0,     5,     2,     1,
+       2,     0,     1,     0,     2,     2,     2,     1,     1,     1,
+       2,     1,     1,     1,     1,     1,     1,     3,     3,     3,
+       4,     4,     4,     4,     5,     5,     5,     1,     4,     4,
+       1,     4,     4,     1,     1,     1,     1,     4,     4,     4,
+       4,     4,     4,     4,     5,     5,     5,     4,     4,     4,
+       3,     3,     1,     1,     1,     3,     3,     3,     3,     1,
+       1,     3,     3,     4,     4,     4,     3,     1,     1,     1,
+       3,     3,     4,     4,     4,     3,     3,     3,     1,     2,
+       3,     3,     1,     2,     3,     3,     1,     1,     1,     1,
+       1,     2,     1,     3,     3,     4,     4,     4,     2,     0,
+       2,     1,     1,     1,     2,     4,     4,     2,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     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,     2,     1,     3,     5,     3,     4,
-       2,     1,     2,     1,     1,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     3,     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,
+       2,     1,     1,     1,     3,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
+       1,     1,     3,     3,     0,     2,     5,     2,     1,     1,
+       1,     2,     2,     1,     1,     1,     1,     1,     1,     1,
+       0,     2,     1,     2,     1,     1,     2,     2,     1,     2,
+       2,     1,     2,     1,     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,
+       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,     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,
+       1,     1,     0,     1,     1,     2,     2,     1,     3,     3,
+       0,     2,     1,     2,     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,     1,
+       2,     1,     1,     1,     3,     3,     3,     3,     2,     4,
        0,     2,     1,     1,     2,     2,     1,     1,     1,     1,
        3,     1,     2,     2,     1,     3,     3,     3,     1,     1,
-       3,     3,     2,     1,     1,     1,     1,     2,     2,     1,
+       3,     3,     2,     1,     1,     2,     2,     1,     1,     1,
        1,     1,     1,     0,     2,     0,     2,     1,     0,     3,
-       1,     0,     3,     1,     0,     3,     1,     2,     1,     1,
-       1,     1,     1,     2,     3,     0,     2,     2,     2,     3,
-       3,     1,     1,     3,     3,     1,     2,     1,     1,     1,
-       1,     0,     5,     2,     2,     1
+       1,     0,     3,     1,     0,     3,     1,     2,     1,     0,
+       3,     1,     1,     1,     1,     2,     2,     3,     0,     2,
+       2,     2,     3,     3,     1,     1,     3,     3,     1,     2,
+       1,     1,     1,     1,     0,     5,     2,     2,     2,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1176,633 +1295,1293 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       2,     0,     1,     5,     0,     0,   145,   149,     0,   143,
-     147,   144,   148,     0,     6,    76,   146,   150,     0,   384,
-     381,    75,   142,    74,     0,     0,     0,     0,     0,     0,
-       0,     0,    86,    21,   383,   380,     0,     0,    16,    15,
-      20,    86,     3,    24,     7,     0,     4,     8,     9,    10,
-      14,    77,     0,     0,   136,   115,   114,    11,   113,   132,
-     112,     0,   107,   140,   141,    13,    12,    46,    57,   197,
-     196,   198,   130,    17,   163,     0,     0,   269,   152,   291,
-       0,     0,     0,    86,    86,     0,   300,     0,   272,   275,
-     277,   276,     0,   130,     0,     0,     0,     0,   126,   127,
-     128,   129,   153,   162,     0,     0,   166,   168,     0,    78,
-      82,     0,    73,    80,    81,   161,   138,   103,   106,   108,
-       0,    47,     0,    58,     0,     0,   107,     0,     0,   411,
-     409,     0,     0,   408,   389,   407,   410,   395,   385,   386,
-     390,   391,   392,   405,     0,   388,     0,   382,     0,   265,
-     267,   270,   271,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   212,   226,   224,   225,   231,
-     324,   378,   293,   293,   293,   337,   377,   100,   293,   227,
-     233,   151,    90,    91,   102,   191,   101,    99,   209,   293,
-     208,   222,   293,   373,   293,   333,   236,   293,   334,   336,
-     370,   369,   372,   371,     0,    68,     0,    67,     0,     0,
-       0,   135,   273,   274,     0,   107,    89,    98,    88,    87,
-       0,     0,     0,     0,     0,   157,    96,     0,   254,   253,
-     251,   252,   255,   241,   240,    37,   245,   364,   257,   366,
-     365,   193,   194,   290,   246,   247,   248,   249,   250,   289,
-     288,   304,    34,    22,    29,    26,    27,    25,    28,    30,
-      38,    33,    31,   244,   256,   238,     0,   258,    32,   358,
-     359,   363,    36,    35,   167,     0,    79,    40,   105,     0,
-     139,    55,    45,    54,    49,    50,    48,    72,    51,    53,
-      52,    65,    56,    64,    60,    59,    61,    63,    62,   131,
-       0,    19,    18,   164,     0,     0,     0,     0,   401,   413,
-       0,   402,   398,     0,   393,   406,   387,   266,   268,     0,
-     234,     0,   232,   204,   200,   202,   199,   230,   201,   203,
-     192,     0,   185,   302,   228,   297,   292,   302,     0,     0,
-     223,   204,   364,    85,     0,   190,   229,     0,     0,     0,
-     236,   294,   236,   330,   331,   236,   338,   375,   335,   205,
-     332,    92,    71,    66,    69,    70,    95,    97,   301,   137,
-       0,   120,   119,   118,   116,   121,   117,   154,   156,     0,
-       0,   368,   367,     0,   362,   305,     0,   285,   280,   217,
-     283,   282,   286,   284,   281,   287,   279,     0,   239,   243,
-     242,   259,   260,   278,     0,     0,     0,     0,    23,    41,
-       0,   109,   133,     0,   404,     0,     0,     0,   394,   397,
-       0,   415,   396,     0,   235,     0,     0,   296,     0,   295,
-     188,     0,     0,     0,   211,   236,   213,     0,   216,   373,
-     326,   313,   306,   307,   308,     0,   314,   322,   325,   309,
-     379,   207,   206,   210,     0,   343,   342,     0,   340,   374,
-     261,   290,   237,     0,    94,   134,   158,   160,   195,     0,
-       0,     0,   122,   221,   357,   356,   360,   361,   175,   178,
-     173,   176,   177,   180,     0,   181,     0,   174,     0,   179,
-       0,     0,    39,    44,   182,     0,    43,     0,     0,   400,
-     399,     0,   403,   414,   165,     0,   186,   303,   299,   298,
-     189,     0,    83,   354,   215,     0,   219,   375,   323,   321,
-     319,   318,   310,   311,   315,   320,   312,   316,   317,   345,
-     344,   339,   262,   376,   293,    86,     0,     0,     0,    42,
-       0,     0,   170,     0,   183,   184,   111,   104,   110,   412,
-     187,    84,     0,     0,   261,   348,   346,   341,   347,   349,
-     351,   264,   263,   327,     0,   124,   123,   220,   125,     0,
-     172,   169,   355,   218,   236,     0,   353,   352,   328,   329,
-      93,     0,   214,   350,   171
+       5,     3,     0,     0,     0,     1,     8,     0,     0,     0,
+     262,   266,     0,   260,   264,   261,   265,     9,   110,   263,
+     267,     0,   494,   491,   109,   259,   108,     0,     0,     0,
+       0,   124,    47,   493,   490,     0,   162,     0,    20,    19,
+      46,   124,     6,     0,    32,    50,    33,     0,     7,    12,
+      13,    14,    18,   111,     0,     0,   140,   252,   165,   164,
+      15,   158,   163,   251,   157,     0,   161,     0,   151,   253,
+      17,    16,    41,   412,   478,   477,   381,   378,   385,   479,
+       0,     0,     0,     0,     0,     0,     0,     0,   146,   324,
+     336,   362,   361,   359,   334,   360,   335,   363,   338,   345,
+     431,   344,   488,   402,   353,   402,   149,   402,   365,     0,
+      59,   442,   487,   402,   302,   303,   400,   337,   399,   398,
+     354,   355,   356,   357,   358,   131,     4,    39,    55,    52,
+      53,    51,    54,   339,   130,     0,   128,    56,   132,    64,
+     133,   145,   301,   144,    60,   143,   321,   402,   367,   320,
+     333,    57,   348,   364,   342,   384,   402,   483,     0,   366,
+     402,   340,   340,   402,   129,   439,    58,   468,   469,   473,
+     474,   441,    63,    62,   306,   305,   307,     0,    75,    88,
+     249,   273,     0,     0,     0,   139,   141,   249,     0,     0,
+       0,     0,     0,   242,   180,   203,   248,   202,   210,   209,
+     204,    37,     0,     0,    11,     0,     0,   236,   276,   237,
+     278,     0,   115,   120,   107,   117,     0,   268,   272,   254,
+     132,   133,   129,   257,   152,     0,   480,   413,   476,   475,
+     374,   376,   382,   383,   379,   380,     0,    69,    42,     0,
+     295,     0,     0,   410,   477,   310,     0,    22,    23,    21,
+      34,   308,    35,    28,    29,    30,    27,    31,    36,    26,
+     240,   158,   312,   239,     0,   123,     0,     0,   311,   309,
+     410,    25,    24,   300,   148,     0,   150,     0,     0,     0,
+     404,   340,   407,   403,   340,   437,     0,     0,   177,   218,
+     332,   217,   219,   438,     0,   472,   390,   349,   350,   131,
+     124,     0,   340,   448,   485,   395,     0,   393,   392,   396,
+     394,   391,   397,   389,   343,   347,   346,   368,   369,   388,
+     440,   316,   317,   340,     0,     0,     0,     0,   481,   482,
+       0,    76,     0,    89,     0,     0,   151,     0,   524,   522,
+       0,     0,   521,   501,   520,   523,   508,   499,   495,     0,
+     496,   502,   503,   504,   518,     0,   498,     0,     0,   492,
+       0,   101,     0,   100,   151,   126,   142,   125,     0,   228,
+     184,   183,     0,     0,   232,   186,   185,     0,     0,     0,
+     184,     0,     0,   204,     0,     0,     0,     0,     0,   127,
+      43,   241,    61,    48,   134,   135,   136,   277,     0,   116,
+     113,   119,   112,     0,   270,   258,   375,   377,     0,    70,
+       0,     0,     0,   298,     0,   406,     0,   180,   160,     0,
+       0,   405,   153,   323,   340,   330,   329,   325,   328,   483,
+     414,   433,   420,   415,     0,   421,   429,   432,   416,   489,
+     319,     0,   318,     0,     0,     0,     0,   304,   322,     0,
+     453,   452,     0,   450,   484,   370,   331,   400,   351,   341,
+     447,   467,   466,   471,   470,   137,    86,    74,    85,     0,
+      78,    79,    77,   106,    80,    82,    81,    98,    87,    97,
+       0,    91,    90,    92,    94,    93,   250,   255,   274,     0,
+       0,     0,     0,   514,   526,     0,   515,   511,     0,     0,
+     527,   505,     0,   506,   519,   497,   105,    99,     0,   104,
+     256,     0,     0,     0,   229,     0,   387,   386,   243,     0,
+       0,   233,   244,   401,     0,     0,     0,     0,   229,    34,
+     205,   211,   207,   400,   208,   206,     0,     0,     0,   202,
+       0,     0,   166,     0,     0,     0,     0,     0,   402,   443,
+     212,   216,     0,    49,     0,   269,     0,   275,   285,   288,
+     283,   286,   287,   290,   291,     0,   284,     0,   289,     0,
+       0,    65,    66,    68,    73,    72,    67,   292,     0,    71,
+       0,   296,   310,   299,   311,   309,   411,     0,     0,   121,
+     464,     0,   327,   485,   430,   427,   428,   426,   425,   417,
+     418,   422,   419,   423,   424,   409,   408,   238,   159,   220,
+       0,   227,   226,   400,   225,   221,     0,     0,   455,   454,
+     449,   371,   486,   402,   352,     0,    84,    96,     0,   517,
+       0,     0,     0,   507,   510,     0,   529,   509,   500,   103,
+       0,   228,   183,   230,     0,   184,   231,     0,     0,     0,
+     184,   200,   201,     0,     0,   184,   234,   232,   235,   211,
+     207,   400,   208,   206,     0,   214,   213,   215,     0,     0,
+       0,   245,   170,     0,   246,   171,     0,   247,   181,   172,
+     400,   173,   182,   340,   340,   340,    45,    44,    69,   271,
+       0,     0,   280,     0,   293,   294,   297,     0,     0,   122,
+       0,   155,   147,   156,   154,   370,   223,   222,   224,   178,
+     478,   477,   179,   458,   456,   451,   457,   459,   461,   373,
+     372,   434,   138,     0,   513,   512,     0,   516,   528,     0,
+       0,     0,   197,   198,     0,     0,   187,   189,   191,   190,
+     192,   193,   400,   188,   199,     0,     0,   214,   213,   215,
+       0,     0,   167,   168,   169,   175,   174,   176,   446,   445,
+     444,     0,     0,   282,   279,   474,   465,   340,     0,   463,
+     462,   435,   436,   525,   184,   186,   195,   194,   196,   114,
+       0,   326,   460,   281
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,    42,   325,   127,   364,    45,    46,   253,   254,
-     410,   255,   122,   256,   124,   257,   206,   286,   258,    51,
-      52,    53,   180,    94,   219,   464,    54,    55,    56,   182,
-     119,   279,   120,   497,   183,    58,   375,    99,   100,   473,
-     101,    59,   126,    60,    61,    62,    63,   103,   223,   224,
-     379,   380,    64,   128,   184,   107,   108,   494,   495,   496,
-     331,   185,   186,   326,   332,   327,   187,   188,   189,   347,
-     436,   437,   438,   398,   190,   191,   359,   462,   263,   264,
-     265,   400,   534,   151,   152,    89,   192,   193,    92,   401,
-     402,   266,    80,   334,   350,   335,   351,    87,   427,   267,
-     446,   527,   447,   528,   448,   348,   194,   579,   195,   196,
-     197,   198,   531,   458,   557,   558,   559,   512,   268,   269,
-     270,   271,   337,   204,   357,   460,   199,   349,   272,    76,
-     329,    75,   138,   139,   140,   141,   313,   142,   311,   312,
-     143,   144,   145,   304,   422
+      -1,     2,     4,     3,    42,    43,    44,   529,   299,   251,
+      46,   126,   552,   204,    47,    48,   127,   253,   573,   574,
+     410,   254,   332,   469,   255,   334,   480,   256,   362,   508,
+     472,   257,    53,    54,   401,   554,    55,   216,   133,   188,
+      56,   134,   367,   136,   137,    57,    58,    59,   220,   259,
+     275,   225,   591,   221,   260,    61,    62,   752,   417,   289,
+     195,   369,   374,   380,   201,   642,   198,   199,   391,   376,
+     643,   656,   208,   609,   263,   383,    63,   336,    64,    65,
+      66,    67,    68,   218,   403,   556,    69,   337,   141,   210,
+     211,   577,   578,   579,   239,   142,   143,   144,   240,   265,
+     266,   145,   146,   147,   277,   427,   428,   314,   148,   149,
+     150,   321,   458,   459,   152,   153,   154,   316,   623,   232,
+     233,   155,   156,   157,   732,   317,   297,   318,   158,   733,
+     280,   281,   282,   283,   415,   159,   435,   603,   436,   604,
+     437,   278,   160,   772,   161,   162,   163,   550,   222,   165,
+     620,   453,   715,   716,   717,   589,   166,   167,   168,   169,
+     170,   270,   330,   304,   455,   171,   279,   271,   183,   272,
+     182,   348,   502,   499,   350,   351,   352,   498,   353,   496,
+     497,   354,   355,   356,   489,   637
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -370
+#define YYPACT_NINF -542
 static const yytype_int16 yypact[] =
 {
-    -370,  1281,  -370,  -370,   -66,   -58,  -370,  -370,    -8,  -370,
-    -370,  -370,  -370,    -9,  -370,  -370,  -370,  -370,    -8,  -370,
-    -370,  -370,  -370,  -370,  1758,    -8,    15,    18,    34,    50,
-      75,    -8,  -370,  -370,  -370,  -370,   285,   168,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,   150,  -370,  -370,  -370,  -370,
-    -370,  -370,    48,    41,  -370,  -370,  -370,  -370,   168,  -370,
-    -370,    16,    -5,  -370,  -370,  -370,  -370,    84,    91,  -370,
-    -370,  -370,    74,  -370,  -370,   777,   -35,   -52,  -370,  -370,
-    1643,     7,  1528,  -370,  -370,    95,  -370,  1643,   -52,  -370,
-    -370,  -370,    75,    74,   675,   285,   285,   285,  -370,  -370,
-    -370,  -370,   117,   239,   790,   537,  -370,    10,   125,   131,
-    -370,   139,  -370,  -370,  -370,   239,  -370,   185,  -370,  -370,
-      16,  -370,  1330,  -370,  1433,    -8,    -5,   115,  1643,  -370,
-    -370,   310,   362,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,   260,  -370,   180,  -370,   -19,  -370,
-    -370,   166,   167,   187,    25,   126,    78,    -8,   106,    -8,
-      -8,   106,   355,    -8,    50,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,   106,   106,   106,  -370,  -370,   168,   106,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,   106,
-    -370,  -370,   106,  -370,   106,  -370,  -370,   106,  -370,  -370,
-    -370,  -370,  -370,  -370,  1643,  -370,    45,  -370,   913,  1036,
-     221,  -370,   166,   167,  1643,    -5,  -370,  -370,  -370,  -370,
-      26,  1643,   220,    16,   201,   207,  -370,   -15,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,   208,  -370,  -370,
-     210,  -370,  -370,    20,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,   -13,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,   211,  -370,  -370,  -370,  -370,  1757,  -370,    87,  -370,
-     135,  -370,  -370,  -370,  -370,   537,  -370,   231,  -370,   217,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    1643,  -370,  -370,  -370,   218,   362,   362,   362,  -370,  -370,
-     362,  -370,  -370,   153,  -370,  -370,  -370,  -370,  -370,   228,
-    -370,   219,  -370,  -370,  -370,  -370,   211,  -370,  -370,  -370,
-    -370,    10,   229,  -370,  -370,  -370,   224,  -370,    10,   233,
-    -370,   120,    60,   106,   234,  -370,  -370,    40,   222,   777,
-    -370,   224,  -370,  -370,  -370,  -370,   366,   214,  -370,  1771,
-    -370,   364,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    1643,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,    16,
-     259,  -370,  -370,   108,  -370,  -370,   205,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,   211,   324,  -370,  -370,
-    -370,  -370,  -370,  -370,   108,   108,   108,   108,  -370,  -370,
-     278,  -370,  -370,  1528,  -370,    10,   -35,   301,  -370,  -370,
-     260,  -370,  -370,   251,  -370,   263,    -8,   250,    63,   250,
-    -370,   399,   264,   -13,  -370,  -370,  -370,   371,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,    28,  -370,   672,  -370,  -370,
-    -370,  1771,  1771,  1771,   262,  -370,  -370,   262,  -370,  -370,
-     -62,  -370,  -370,   261,  -370,  -370,  -370,  -370,  -370,   133,
-     133,   133,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,    10,  -370,    -8,  -370,    -8,  -370,
-      -8,   268,  -370,  -370,  -370,   170,  -370,   379,    54,  -370,
-    -370,   301,  -370,  -370,  -370,   399,  -370,  -370,  -370,  -370,
-    -370,   -13,  -370,   255,  1771,   133,  -370,   214,   672,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,   141,   -52,  -370,   106,  -370,    26,  1771,   220,  -370,
-      10,    10,  -370,   399,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,   -13,   154,   -62,  -370,  -370,  -370,   271,  -370,
-     -14,   166,   167,   361,  1159,  -370,  -370,  -370,  -370,   280,
-    -370,  -370,  -370,  -370,  -370,   -13,  -370,  -370,  -370,  -370,
-    -370,   399,  1771,  -370,  -370
+      12,  -542,   128,  4145,   877,  -542,  -542,    54,    17,    48,
+    -542,  -542,    54,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,    54,  -542,  -542,  -542,  -542,  -542,    64,    75,    75,
+      54,  -542,  -542,  -542,  -542,   480,  -542,   480,  -542,  -542,
+    -542,  -542,  -542,   135,  -542,  -542,  -542,   292,  -542,  -542,
+    -542,  -542,  -542,  -542,   139,  1505,  -542,  -542,  -542,  -542,
+     136,  -542,  -542,  -542,  -542,  3928,  -542,   209,    22,  -542,
+    -542,  -542,  -542,   161,   211,   254,    92,    92,  -542,  -542,
+     151,    23,   877,    54,    54,    54,  2972,    54,   168,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,  -542,  -542,   107,  -542,   107,  -542,   107,  -542,   600,
+    -542,  -542,  -542,   107,  -542,  -542,   308,  -542,   266,   266,
+    -542,  -542,  -542,  -542,  -542,   293,  -542,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,  3710,  -542,  -542,   299,  -542,
+      89,  -542,  -542,  -542,   179,  -542,  -542,   107,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,   107,  -542,  1567,  -542,
+     107,  -542,  -542,   107,   317,  -542,   245,  -542,    73,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,   118,   219,   224,
+     213,  -542,  1260,   411,  3821,  -542,  -542,   213,  1281,   626,
+     706,   733,   163,  -542,  -542,  -542,  -542,  -542,   246,   255,
+    -542,  -542,  1393,   253,  -542,   600,  1041,  -542,  -542,  -542,
+     485,   222,   271,  -542,  -542,  -542,  4035,  -542,   378,  -542,
+    -542,   136,  -542,  -542,  -542,   209,  -542,  -542,  -542,  -542,
+    -542,  -542,   252,   257,   252,   257,   265,   316,  -542,   485,
+     303,   581,   313,  -542,    59,   148,   766,  -542,  -542,  -542,
+    1751,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,  1792,  -542,  -542,  3928,  -542,   107,   314,   202,   291,
+    -542,  -542,  -542,  -542,  -542,   295,  -542,   633,   210,  1260,
+    -542,  -542,  -542,   306,  -542,  -542,   733,   656,  -542,  -542,
+    -542,  -542,  -542,  -542,   112,  -542,  -542,  -542,  -542,  -542,
+    -542,   279,  -542,   675,   312,  -542,   600,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,  1525,  1525,  -542,   112,   112,   112,   112,  -542,  -542,
+    3928,  -542,  4191,  -542,  4291,    54,    22,  3928,  -542,  -542,
+     405,   433,  -542,  -542,  -542,  -542,  -542,  -542,  -542,   212,
+    -542,  -542,  -542,  -542,  -542,  1362,  -542,   370,   352,  -542,
+     -14,  -542,   122,  -542,    22,  -542,  -542,  -542,   685,  -542,
+     323,  -542,   802,   744,  -542,   335,  -542,   107,   733,   748,
+    1638,  3218,  2448,  1884,   777,   928,   951,   200,   308,  -542,
+    -542,  -542,  -542,  -542,  -542,   136,  -542,  -542,  1041,  -542,
+      54,  -542,  -542,   755,  -542,  -542,  -542,  -542,   344,  -542,
+    4336,   343,    54,  -542,  3095,   346,   774,  1905,  -542,   351,
+     161,   346,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,   156,  -542,   158,  -542,  -542,  -542,
+    1525,    45,  1525,  4642,  2528,   951,  1169,  -542,  1525,   477,
+    -542,  -542,   477,  -542,  -542,   -17,  -542,   266,  -542,  -542,
+    1525,  -542,  -542,  -542,  -542,   488,  -542,  -542,  -542,   135,
+    -542,  -542,  -542,  -542,   136,  -542,  -542,  -542,  -542,  -542,
+     135,  -542,  -542,   136,  -542,  -542,  -542,  -542,  -542,   374,
+     433,   433,   433,  -542,  -542,   433,  -542,  -542,   730,   406,
+    -542,  -542,   390,  -542,  -542,  -542,  -542,  -542,   135,  -542,
+    -542,  1040,  1043,  1114,  -542,  4601,  -542,  -542,  -542,  1167,
+    1167,  -542,  -542,   306,  3341,  2602,  1226,  1226,  2641,  -542,
+    -542,  -542,  -542,   440,  -542,  -542,   791,   499,   802,   505,
+     805,   508,  -542,   107,   815,   509,  3464,  2680,   107,  2834,
+    -542,  -542,   632,  -542,   400,  -542,   755,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,    54,  -542,    54,  -542,    54,
+     388,  -542,  -542,  -542,  -542,  -542,   136,  -542,   684,  -542,
+    3095,  -542,  -542,  -542,  -542,  -542,  -542,   951,   161,  -542,
+     393,  4487,  1525,   312,   158,  -542,  -542,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    1208,  -542,  -542,   452,  -542,  -542,  4748,  2754,  -542,  -542,
+     196,    92,  -542,   107,  -542,    75,  -542,  -542,  3821,  -542,
+     485,   411,   915,  -542,  -542,  1362,  -542,  -542,  -542,  -542,
+     847,   802,   505,  -542,   107,   173,  -542,   917,  4642,  2793,
+    1712,  -542,  -542,   931,   802,   188,  -542,   107,  -542,  1985,
+    2065,   464,  2086,  2166,   942,  -542,  -542,  -542,   777,   928,
+     951,  -542,  -542,   951,  -542,  -542,   951,  -542,  -542,  -542,
+     533,  -542,  -542,  -542,  -542,   306,  -542,  -542,   316,  -542,
+     485,   581,  -542,  3095,  -542,  -542,  -542,  3587,  2680,  -542,
+     161,  -542,  -542,  -542,  -542,   -17,  -542,  -542,  -542,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,   403,  -542,    27,   252,
+     257,   494,  -542,   149,  -542,  -542,   915,  -542,  -542,  1040,
+    1043,  1114,  -542,  -542,  1262,  1114,  -542,  -542,  -542,  -542,
+    -542,  -542,   592,  -542,  -542,  1167,  1167,  2246,  2267,  2347,
+    1226,  1226,  -542,  -542,  -542,  -542,  -542,  -542,  1525,  1525,
+    1525,  4443,   415,  -542,  -542,  2427,  -542,  -542,   161,  -542,
+    -542,  -542,  -542,  -542,   460,   460,  -542,  -542,  -542,  -542,
+    3095,  1525,  -542,  -542
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -370,  -370,  -370,    -1,  -370,    44,  -370,    38,   138,   368,
-    -370,   438,  -370,    65,  -370,    56,    27,   318,     5,  -370,
-    -370,  -370,  -370,   -36,   -47,  -370,  -370,  -370,  -370,  -370,
-     -79,  -370,   -83,  -370,    36,   -37,   -95,  -370,  -370,  -369,
-     256,  -370,   354,  -370,  -370,  -370,  -370,   390,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -299,  -370,  -370,   -48,
-     157,   294,  -370,   -77,    -4,  -151,  -370,  -370,  -370,  -370,
-     -98,   194,  -370,  -370,  -370,  -370,  -301,   -96,  -370,  -370,
-     195,  -370,   -86,   -81,   -80,   445,   -20,   -28,   378,  -370,
-    -370,  -370,  -370,   311,  -158,  -124,    51,   313,   143,  -370,
-    -370,  -370,    42,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,   -46,  -370,  -370,   -84,   -22,  -370,  -146,
-    -213,  -143,   -78,  -370,    53,   -24,  -370,  -370,    61,  -370,
-       0,  -370,   146,   -53,  -370,  -119,  -370,  -370,   365,    -7,
-    -126,   -59,  -131,  -370,    81
+    -542,  -542,  -542,  -542,  -542,  -542,   -37,   -16,    -3,  -276,
+     -58,   481,  -542,  -374,  -542,   -24,  -135,    18,  -542,   -29,
+    -123,    69,  -542,  -542,    44,  -542,  -542,    94,   -59,  -542,
+     240,     4,  -542,  -542,  -542,  -542,  -542,  -542,  -542,    13,
+       9,   -42,    90,   -84,  -542,  -542,  -542,  -542,    25,     1,
+    -542,  -227,  -542,     0,  -214,   -68,    11,   301,    -5,  -542,
+    -542,    41,   103,    -1,    -2,   -26,  -542,  -542,    95,     3,
+    -164,  -134,   -71,   -66,   -28,   -22,   304,   389,  -542,   -52,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -204,  -542,  -542,    -7,   134,  -542,  -542,   288,    32,  -306,
+    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
+    -542,  -146,    10,    43,  -542,  -542,   445,  -542,   -91,   -53,
+     -51,  -542,  -308,  -232,  -287,  -542,   -45,  -542,  -542,  -297,
+       2,   -46,   -40,  -302,   348,  -542,  -542,  -542,   186,  -542,
+    -542,  -542,  -542,  -542,  -542,  -542,   -65,  -542,    39,  -542,
+    -542,     6,  -542,  -542,  -128,    34,  -542,   114,   -61,   -74,
+    -541,   -67,  -542,   223,    58,  -542,  -542,    99,  -542,    37,
+    -542,   375,  -117,  -542,  -141,  -542,  -267,  -542,  -542,   315,
+     146,  -292,  -147,  -271,  -542,    26
 };
 
 /* 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 -371
+#define YYTABLE_NINF -481
 static const yytype_int16 yytable[] =
 {
-      43,    66,    91,   203,    72,   104,    50,   212,   213,   262,
-      90,   343,   328,   316,    74,   352,   353,   148,   315,   328,
-     354,    81,   315,   147,   116,   314,   260,    93,   261,   314,
-     384,   355,   425,   181,   356,   207,   358,    57,   344,   360,
-     211,   320,   110,   300,   106,    44,   362,   208,   209,   451,
-     576,   452,    43,   117,   453,   362,   111,    49,   259,    19,
-      78,    19,    65,    67,    91,    27,    48,    28,   516,   532,
-      13,    68,    90,    15,   146,   132,   200,   134,   201,    13,
-      21,   303,    15,   280,    32,   533,    23,   149,   150,    21,
-     146,   113,    69,   218,   137,    23,   200,   118,   201,    69,
-     536,   537,   538,   218,   252,   273,   274,   434,    70,    71,
-     137,   237,   441,   577,   277,    70,    71,   442,   157,   443,
-      73,   299,   290,   202,   298,   159,    43,   287,   160,   287,
-      38,    39,   370,    69,   514,   163,   239,    34,   240,    34,
-     321,    85,   322,   435,    82,    41,   553,    83,    33,    70,
-      71,   444,   200,   389,   201,    77,    86,   361,   288,    19,
-     296,    38,    39,    84,    40,   302,   283,   369,   293,   508,
-     384,   112,   102,   385,   373,   363,   381,   109,   285,   262,
-     294,   121,   421,   289,   549,   297,   377,   284,   123,   396,
-      77,  -369,  -369,   476,   477,   200,   260,   201,   261,   237,
-      88,   129,   454,   455,   456,   125,   457,   218,   218,   336,
-     333,   365,   336,   404,   405,   323,   371,   237,   376,   432,
-     372,   374,    33,    72,   239,   469,   240,   471,   259,   472,
-     200,  -155,   201,   324,   383,    38,    39,    34,    40,   210,
-     555,   569,   239,   225,   240,   301,    38,    39,   276,   241,
-     242,  -370,  -370,   412,   420,    19,   275,   435,   474,   475,
-     419,   130,   131,   132,   133,   134,   403,   389,   277,    77,
-      38,    39,   305,   582,   252,   273,   135,   136,   406,   407,
-     510,   105,   137,   418,   478,   479,   421,   278,   328,   503,
-      38,    39,   480,   544,   315,   481,   482,   483,   414,   415,
-     416,   314,   484,   417,   440,   317,   441,   318,   129,   468,
-     319,   442,   368,   443,   485,   378,   338,   339,   486,   439,
-     345,  -159,   487,   465,   381,   488,   382,    69,   241,   242,
-     106,   493,   409,    34,   489,   490,   117,   430,   386,   424,
-      38,    39,   466,    70,    71,   444,   411,   413,   449,   129,
-     509,   220,   221,   222,   550,   513,   445,   148,   501,   423,
-     459,   426,   328,   500,   431,   433,   207,   428,   130,   131,
-     503,   133,   463,   467,   504,   315,   563,    95,    96,    97,
-     118,    98,   507,   135,   136,   478,   479,    88,    19,   137,
-     535,   552,   571,   480,   505,   511,   481,   482,   483,   543,
-     328,   491,   305,   575,   306,   307,   308,   578,   492,   130,
-     131,   581,   133,   408,   499,   485,   469,   470,   471,   486,
-     472,   114,   506,   487,   135,   136,   488,   454,   455,   456,
-     584,   457,    19,   513,   529,   489,   490,   530,   328,    47,
-     498,   567,   295,   568,   341,   449,   342,   215,   115,   548,
-     330,   561,   562,   560,   310,   573,   306,   307,   308,   333,
-     397,   399,   324,   469,   515,   471,    34,   472,   574,    79,
-     214,   239,   340,   240,   572,    38,    39,   346,   241,   242,
-     429,   546,   540,   539,   541,   556,   542,   518,   323,   551,
-     237,   583,   517,   554,   545,   450,   309,   560,   502,   564,
-       0,     0,   491,   365,     0,     0,   324,     0,     0,   547,
-      34,     0,     0,     0,     0,   239,     0,   240,     0,    38,
-      39,     0,   241,   242,     0,   439,     0,     0,     0,     0,
-       0,     0,   565,     0,   376,     0,   566,   374,     0,   106,
-     570,     0,     0,     0,     0,     0,     4,     5,   153,     6,
-       7,     0,   227,     0,     0,     0,     0,     9,    10,    11,
-      12,     0,     0,   218,   154,    15,    16,    17,    18,   155,
-      19,    20,    21,     0,    22,     0,   156,   157,    23,   158,
-      24,     0,    25,     0,   159,    26,    27,   160,    28,   161,
-     162,    29,    30,     0,   163,   117,   164,    31,     0,     0,
-       0,     0,     0,   165,     0,    32,     0,   166,   228,     0,
-     229,   230,   167,   231,   168,   232,     0,   169,   233,     0,
-     170,     0,   234,     0,   171,   172,   235,   236,   237,     0,
-       0,     0,     0,     0,     0,     0,     0,   173,     0,   118,
-     174,     0,   238,     0,   175,   176,     0,     0,    34,    35,
-      36,   177,    77,   239,     0,   240,   178,    38,    39,     0,
-     241,   242,    88,   243,     0,     0,    41,     0,     0,     0,
-     179,   244,   245,   246,   247,   248,   216,     0,   249,   250,
-       0,     0,   251,     0,     0,     0,   153,     6,     7,     0,
-       8,     0,     0,     0,     0,     9,    10,    11,    12,     0,
-       0,     0,   154,     0,    16,    17,    18,   155,     0,     0,
-       0,     0,    22,     0,   156,   157,     0,   158,    24,     0,
-      25,     0,   159,     0,    27,   160,    28,   161,   162,    29,
-      30,     0,   163,     0,   164,    31,     0,     0,     0,     0,
-       0,   165,   519,    32,   217,   166,   520,     0,     0,     0,
-     167,   521,   168,     0,     0,   169,     0,     0,   170,     0,
-       0,     0,   171,   172,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   173,     0,     0,   174,     0,
-       0,     0,   175,   176,     0,     0,     0,     0,    36,   177,
-      77,   216,     0,     0,   178,    38,    39,     0,   522,   523,
-      88,   153,     6,     7,    41,     8,     0,   524,   179,     0,
-       9,    10,    11,    12,     0,     0,   525,   154,   526,    16,
-      17,    18,   155,     0,     0,   129,     0,    22,     0,   156,
-     157,     0,   158,    24,     0,    25,     0,   159,     0,    27,
-     160,    28,   161,   162,    29,    30,     0,   163,     0,   164,
-      31,     0,     0,     0,     0,     0,   165,     0,    32,     0,
-     166,     0,     0,     0,     0,   167,     0,   168,     0,     0,
-     169,     0,     0,   170,     0,     0,     0,   171,   172,     0,
-       0,     0,     0,     0,     0,   130,   131,   132,   133,   134,
-     173,     0,     0,   174,     0,     0,     0,   175,   176,     0,
-     135,   136,     0,    36,   177,    77,   137,     0,     0,   178,
-      38,    39,     0,     0,   216,    88,     0,     0,     0,    41,
-     226,     0,     0,   179,   153,     6,     7,     0,     8,     0,
-       0,     0,     0,     9,    10,    11,    12,     0,     0,     0,
-     154,     0,    16,    17,    18,   155,     0,     0,     0,     0,
-      22,     0,   156,   157,     0,   158,    24,     0,    25,     0,
-     159,     0,    27,   160,    28,   161,   162,    29,    30,     0,
-     163,     0,   164,    31,     0,     0,     0,     0,     0,   165,
-       0,    32,     0,   166,     0,     0,     0,     0,   167,     0,
-     168,     0,     0,   169,     0,     0,   170,     0,     0,     0,
-     171,   172,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   173,     0,     0,   174,     0,     0,     0,
-     175,   176,     0,     0,     0,     0,    36,   177,    77,     0,
-       0,     0,   178,    38,    39,     0,     0,   216,    88,     0,
-       0,     0,    41,   366,     0,     0,   179,   153,     6,     7,
-       0,     8,     0,     0,     0,     0,     9,    10,    11,    12,
-       0,     0,     0,   154,     0,    16,    17,    18,   155,     0,
-       0,     0,     0,    22,     0,   156,   157,     0,   158,    24,
-       0,    25,     0,   159,     0,    27,   160,    28,   161,   162,
-      29,    30,     0,   163,     0,   164,    31,     0,     0,     0,
-       0,     0,   165,     0,    32,     0,   166,     0,     0,     0,
-       0,   167,     0,   168,     0,     0,   169,     0,     0,   170,
-       0,     0,     0,   171,   172,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   173,     0,     0,   174,
-       0,     0,     0,   175,   176,     0,     0,     0,     0,    36,
-     177,    77,     0,     0,     0,   178,    38,    39,     0,     0,
-     216,    88,     0,     0,     0,    41,   367,     0,     0,   179,
-     153,     6,     7,     0,     8,     0,     0,     0,     0,     9,
-      10,    11,    12,     0,     0,     0,   154,     0,    16,    17,
-      18,   155,     0,     0,     0,     0,    22,     0,   156,   157,
-       0,   158,    24,     0,    25,     0,   159,     0,    27,   160,
-      28,   161,   162,    29,    30,     0,   163,     0,   164,    31,
-       0,     0,     0,     0,     0,   165,     0,    32,     0,   166,
-       0,     0,     0,     0,   167,     0,   168,     0,     0,   169,
-       0,     0,   170,     0,     0,     0,   171,   172,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   173,
-       0,     0,   174,     0,     0,     0,   175,   176,     0,     0,
-       0,     0,    36,   177,    77,     0,     0,     0,   178,    38,
-      39,     2,     3,     0,    88,     0,     0,     0,    41,   580,
-       4,     5,   179,     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,    23,     0,    24,     0,    25,     0,     0,    26,
-      27,   281,    28,     0,     0,    29,    30,     0,     0,     0,
-       5,    31,     6,     7,     0,     8,     0,     0,     0,    32,
-       9,    10,    11,    12,     0,    13,     0,     0,    15,    16,
-      17,    18,     0,    19,    20,    21,     0,    22,     0,     0,
-       0,    23,     0,    24,     0,    25,     0,     0,    26,    27,
-       0,    28,     0,     0,    29,    30,     0,     0,    33,     0,
-      31,     0,    34,    35,    36,    37,     0,     0,    32,     0,
-       0,    38,    39,     0,    40,     0,     0,     0,     0,     0,
-      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      45,   125,   258,    60,   140,   139,   227,    52,   132,   197,
+     207,   197,   269,   200,   151,   200,   322,   276,   261,   209,
+     262,   268,   128,   219,   234,   372,   235,   381,   252,   138,
+     194,   215,   194,   196,   264,   411,   360,   185,   186,   177,
+      71,   173,   359,   164,   180,   429,   267,    50,   130,   249,
+     418,   207,    45,   181,   202,   295,   377,   382,   226,   284,
+     209,   285,   187,   504,   516,   349,   358,   293,   504,   224,
+     250,   393,    49,   129,   298,   523,   712,   229,   223,   125,
+     522,    88,   140,   139,   505,   518,   132,   292,   503,  -135,
+     326,   769,   151,   503,   135,   626,   217,    51,   131,   357,
+     128,   302,    70,   172,   288,   530,   627,   138,   583,   487,
+     303,     1,   291,   180,   320,   621,   346,   323,   243,   173,
+     226,   164,   443,   506,    74,    75,   130,   106,     5,   622,
+      79,   328,   402,   174,   639,   440,   329,   510,   442,   397,
+     517,   618,   363,   217,   619,   347,   347,   178,   175,   176,
+     506,   129,   444,   237,   605,   770,   448,   765,  -102,  -314,
+      18,  -314,   349,   371,   174,   371,    24,   200,   292,   430,
+      26,   203,   135,   207,   226,   595,   131,   460,   179,   175,
+     176,   172,   209,   292,  -186,  -102,  -186,    18,   370,   375,
+     313,  -480,  -480,    24,   184,   319,   261,    26,    22,  -186,
+     288,  -186,   207,   392,   290,    41,   395,   139,   291,   226,
+     132,   209,   264,  -315,   524,  -315,   151,   327,   241,   242,
+     197,   273,   219,   430,   128,   300,   419,   636,   596,   228,
+     516,   394,   597,   295,   230,   231,   405,   598,   413,   294,
+     432,   523,   347,   173,   525,   396,   675,   685,   530,   291,
+     130,   672,    22,   507,   384,   385,   386,   449,   450,   451,
+     371,   452,    28,   553,    29,   463,   464,   514,   515,   212,
+     678,    33,   229,   274,   696,   129,   236,    31,   592,   296,
+     773,   433,   521,   515,   292,   599,   600,   102,   465,   205,
+      38,    39,   431,   -61,   432,   488,   601,   258,   713,  -134,
+     131,   288,  -313,   602,  -313,   172,   517,   301,   535,   291,
+     111,   548,   112,   446,   551,   438,   531,  -136,   347,   331,
+      74,    75,   549,   252,   333,    33,    79,   500,   501,   468,
+     258,   479,   474,   516,   483,   433,   473,   224,   473,    41,
+     585,   387,   523,   504,   249,   335,   516,   434,   646,   584,
+     388,   635,   371,   590,   398,   523,   252,   634,   539,   542,
+     539,   636,   200,   646,   728,   224,   509,   486,   503,   476,
+     615,   485,   324,   325,   606,   608,   470,   249,   611,   194,
+     288,   349,   538,   390,   546,   404,   658,   764,   291,   291,
+     399,   610,   534,   658,   406,   392,   418,   408,   395,   139,
+     407,   456,   132,   555,   114,   115,   249,   572,   151,   517,
+     576,   575,   624,   205,    38,    39,   128,   514,   515,   539,
+     409,   678,   517,   394,   206,   422,   471,   607,   481,   521,
+     515,   475,   180,   484,   504,   173,   412,   396,   461,   462,
+     258,   652,   130,   616,   581,   414,   420,   608,   291,   651,
+     441,   663,   665,   666,   614,   728,   261,   454,   667,   659,
+     490,   347,   258,   610,   706,   707,   252,   129,   501,   557,
+     708,   438,   264,   682,   783,   580,   747,   748,   249,   586,
+     543,   547,   749,   588,   360,   726,   762,   249,   252,   200,
+     725,    76,   131,   625,   542,   490,   258,   172,   491,   607,
+     638,   492,   683,   493,   628,   500,   585,   671,   250,   249,
+     370,   645,   650,  -166,   358,   584,   674,   677,   655,   375,
+     693,   590,   252,   495,   357,   341,   491,   343,   687,   492,
+     688,   493,   700,    38,    39,   662,   768,   758,   759,   760,
+     617,   346,   608,   249,   771,   755,   756,   780,   608,    45,
+     709,   757,   641,   718,   648,   515,   689,   681,   610,   724,
+     654,   539,   703,   238,   610,   761,   646,   641,   719,   723,
+     720,   189,   190,   191,   482,   695,   364,   192,   193,   249,
+     608,   426,   736,   737,   704,   697,   363,   646,   572,   447,
+     291,   576,   684,   207,   347,   347,   610,   690,   347,   691,
+     607,   692,   209,   315,   776,   777,   205,    38,    39,   258,
+     778,   249,   658,   258,   767,   644,   649,   658,   421,   585,
+     594,   781,   699,   657,   682,   721,   714,   681,   584,   261,
+     657,   709,   607,   766,   722,   252,   629,   630,   631,   252,
+     782,   632,   539,   542,   539,   264,   200,   539,    77,    78,
+     539,   705,   593,   207,   439,   494,   249,     0,   727,   743,
+     249,     0,   209,   194,   288,     0,   538,     0,   546,     0,
+       0,   616,   291,   291,   697,     0,   291,     0,     0,   291,
+       0,   250,   698,     0,     0,   537,   541,   545,   763,   347,
+       0,   189,   190,   286,     0,     0,   258,   287,   193,     0,
+     423,   718,    37,    38,    39,     0,   585,   200,   681,   542,
+       0,     0,   200,     0,     0,   584,     0,   189,   190,   191,
+     542,     0,   252,   368,   193,     0,     0,   509,   370,   645,
+     650,     0,     0,   774,   775,     0,   449,   450,   451,   424,
+     452,     0,    32,   249,   655,   375,   545,   384,   385,   445,
+      35,   425,     0,    37,    38,    39,     0,    40,   572,     7,
+       0,   576,   575,   686,   543,   547,     0,     0,   617,     0,
+     641,   698,   648,     0,     0,   654,   511,   512,   513,     0,
+      10,    11,   338,    12,     0,     0,   654,    13,    14,    15,
+      16,   641,     0,     0,    19,    20,    21,   189,   190,   286,
+       0,    25,     0,   373,   193,    37,    38,    39,    28,   694,
+      29,     0,   537,   541,   545,    30,    76,    77,    78,     0,
+     537,   541,     0,    31,   189,   190,   378,   537,   541,     0,
+     379,   193,     0,   644,   649,   519,   520,   513,   644,   526,
+     527,   513,   339,   340,   341,   342,   343,     0,     0,   657,
+       0,     0,    38,    39,   657,   344,   345,   189,   190,   378,
+     346,   633,     0,   416,   193,   384,   385,   587,   189,   190,
+     191,     0,    35,    36,   536,   193,     0,   -38,    72,     0,
+       0,     7,   668,   669,   670,    41,     0,    73,   545,    74,
+      75,    76,    77,    78,     0,    79,   668,   669,   673,     8,
+       9,    80,    10,    11,     0,    81,   668,   669,   676,    13,
+      14,    15,    16,     0,    82,    18,    19,    20,    21,    22,
+      23,    24,     0,    25,    83,    26,     0,     0,    84,    27,
+      28,    85,    29,    86,     0,    87,    88,    30,   729,   730,
+     731,     0,     0,    89,     0,    31,     0,    90,    91,     0,
+      92,    93,    94,    95,    96,    97,     0,    98,    99,     0,
+     100,     0,   101,     0,   102,   103,   104,   338,     0,     0,
+     753,   754,     0,     0,   754,     0,     0,   754,     0,     0,
+     105,     0,   106,   107,   108,   109,   110,   111,     0,   112,
+       0,     0,    33,    34,    35,    36,     0,   113,    37,    38,
+      39,     0,   114,   115,   116,     0,     0,    41,   734,   735,
+     731,   117,   118,   119,   120,   121,   122,   123,   124,   189,
+     190,   378,   745,   746,   731,   540,   193,   339,   340,     0,
+     342,   753,   754,   750,   751,   731,   753,    38,    39,     0,
+     344,   345,   189,   190,   378,     7,     0,   753,   544,   193,
+       0,    73,   753,    74,    75,    76,    77,    78,     0,    79,
+       0,     0,     0,     8,     9,    80,    10,    11,     0,    81,
+       0,     0,     0,    13,    14,    15,    16,     0,     0,    18,
+      19,    20,    21,    22,    23,    24,     0,    25,    83,    26,
+       0,     0,    84,    27,    28,    85,    29,    86,     0,    87,
+      88,    30,     0,     0,     0,     0,     0,    89,     0,    31,
+       0,    90,    91,     0,    92,    93,    94,    95,    96,    97,
+       0,    98,    99,     0,   100,     0,   101,     0,   102,   103,
+     104,   189,   190,   191,   189,   190,   378,   640,   193,     0,
+     640,   193,     0,     0,   105,     0,   106,   107,   108,   109,
+     110,   111,     0,   112,     0,     0,    33,    34,    35,    36,
+       0,   113,    37,    38,    39,     0,   114,   115,   116,   -40,
+     365,    41,     0,     7,     0,   117,   118,   119,   120,   121,
+     122,   123,   124,    76,    77,    78,     0,     0,     0,     0,
+       0,     0,     0,    80,    10,    11,     0,    12,     0,     0,
+       0,    13,    14,    15,    16,   189,   190,   378,    19,    20,
+      21,   647,   193,     0,     0,    25,    83,     0,     0,     0,
+      84,     0,    28,    85,    29,    86,     0,    87,     0,    30,
+       0,     0,     0,    10,    11,    89,    12,    31,     0,    90,
+      13,    14,    15,    16,    94,     0,    96,    19,    20,    98,
+       0,     0,   100,     0,    25,     0,   102,   103,   189,   190,
+     378,    28,     0,    29,   653,   193,     0,     0,    30,     0,
+       0,     0,   105,     0,     0,   107,    31,     0,     0,   111,
+       0,   112,   365,     0,     0,     7,    35,    36,     0,   113,
+      37,    38,    39,     0,     0,    76,    77,    78,     0,    41,
+       0,     0,     0,   117,     0,    80,    10,    11,     0,    12,
+       0,     0,   338,    13,    14,    15,    16,   189,   190,   378,
+      19,    20,    21,   664,   193,     0,    36,    25,    83,     0,
+       0,     0,    84,     0,    28,    85,    29,    86,    41,    87,
+       0,    30,     0,     0,     0,     0,     0,    89,     0,    31,
+     366,    90,     0,   189,   190,   191,    94,     0,    96,   647,
+     193,    98,     0,     0,   100,     0,     0,     0,   102,   103,
+       0,     0,   339,   340,   341,   342,   343,     0,     0,     0,
+       0,     0,    38,    39,   105,   344,   345,   107,     0,     0,
+     346,   111,     0,   112,   365,     0,     0,     7,    35,    36,
+       0,   113,    37,    38,    39,     0,     0,    76,    77,    78,
+       0,    41,     0,     0,   338,   117,     0,    80,    10,    11,
+       0,    12,     0,     0,     0,    13,    14,    15,    16,     0,
+       0,     0,    19,    20,    21,     0,     0,     0,     0,    25,
+      83,     0,     0,     0,    84,     0,    28,    85,    29,    86,
+       0,    87,     0,    30,     0,     0,     0,     0,     0,    89,
+       0,    31,     0,    90,     0,     0,     0,     0,    94,     0,
+      96,     0,     0,    98,   339,   340,   100,   342,     0,     0,
+     102,   103,     0,     0,    38,    39,     0,   344,   345,     0,
+       0,     0,   346,     0,     0,     0,   105,     0,     0,   107,
+       0,     0,     0,   111,     0,   112,   213,     0,     0,  -118,
+      35,    36,     0,   113,    37,    38,    39,     0,     0,  -118,
+    -118,  -118,     0,    41,   389,     0,     0,   117,     0,  -118,
+    -118,  -118,     0,  -118,     0,    73,     0,  -118,  -118,  -118,
+    -118,     0,     0,     0,  -118,  -118,  -118,     0,     0,     0,
+       0,  -118,  -118,     0,     0,     0,  -118,     0,  -118,  -118,
+    -118,  -118,     0,  -118,     0,  -118,     0,     0,     0,     0,
+       0,  -118,     0,  -118,     0,  -118,     0,    73,     0,     0,
+    -118,     0,  -118,     0,     0,  -118,     0,     0,  -118,     0,
+       0,     0,     0,  -118,     0,     0,    91,     0,    92,    93,
+       0,    95,     0,    97,     0,     0,    99,     0,  -118,    22,
+     101,  -118,     0,     0,   104,    32,     0,     0,     0,     0,
+       0,     0,  -118,  -118,     0,  -118,    37,    38,    39,     0,
+      40,     0,   108,   109,   305,  -118,   214,     0,    91,  -118,
+      92,    93,     0,    95,     0,    97,     0,     0,  -186,  -186,
+    -186,  -186,   457,     0,     0,     0,  -186,     0,     0,     0,
+     118,   119,   120,   121,   122,   123,   124,     0,     0,     0,
+       0,     0,     0,     0,   108,   109,     0,   174,     0,     0,
+       0,     0,    33,     0,   306,     0,     0,     0,     0,     0,
+       0,     0,   175,   176,   307,   308,     0,     0,     0,     0,
+     309,   310,   311,   312,   120,   121,   122,   123,   124,  -186,
+       0,  -186,  -186,     0,  -186,     0,  -186,     0,     0,  -186,
+       0,     0,  -186,  -186,  -186,  -186,     0,  -186,     0,     0,
+    -186,     0,   528,   515,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  -186,  -186,  -186,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   291,     0,     0,     0,     0,     0,
-       0,    34,    35,    36,    37,     6,     7,     0,     8,     0,
-       0,     0,     0,     9,    10,    11,    12,     0,    13,    41,
-     282,    15,    16,    17,    18,     0,    19,    20,    21,     0,
-      22,     0,     0,     0,    23,     0,    24,     0,    25,     0,
-       0,    26,    27,     0,    28,     0,     0,    29,    30,     0,
-       0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
-       0,    32,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,  -238,  -238,  -238,  -238,  -186,     0,     0,     0,  -238,
+       0,     0,     0,  -186,  -186,  -186,  -186,  -186,  -186,  -186,
+       0,     0,     0,  -186,     0,  -186,  -186,     0,  -186,     0,
+    -186,     0,     0,  -186,     0,     0,     0,  -186,     0,     0,
+       0,  -186,  -159,  -159,  -159,  -159,   744,   515,     0,     0,
+    -159,     0,     0,     0,     0,     0,     0,     0,     0,  -186,
+    -186,  -186,  -238,     0,  -238,  -238,     0,  -238,     0,  -238,
+       0,     0,  -238,     0,     0,     0,  -238,     0,     0,  -186,
+    -238,     0,     0,     0,     0,     0,     0,  -186,  -186,  -186,
+    -186,  -186,  -186,  -186,     0,     0,     0,     0,  -238,  -238,
+    -238,     0,     0,  -159,     0,  -159,  -159,     0,  -159,     0,
+    -159,     0,     0,  -159,     0,     0,     0,  -159,  -238,     0,
+       0,  -159,     0,     0,     0,     0,  -238,  -238,  -238,  -238,
+    -238,  -238,  -238,     0,  -219,  -219,  -219,  -219,     0,  -159,
+    -159,  -159,  -219,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  -177,  -177,  -177,  -177,  -159,
+       0,     0,     0,  -177,     0,     0,     0,  -159,  -159,  -159,
+    -159,  -159,  -159,  -159,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  -219,     0,  -219,  -219,     0,
+    -219,     0,  -219,     0,     0,  -219,     0,     0,     0,  -219,
+       0,     0,     0,  -219,     0,     0,  -177,     0,  -177,  -177,
+       0,  -177,     0,  -177,     0,     0,  -177,     0,     0,     0,
+    -177,  -219,  -219,  -219,  -177,  -227,  -227,  -227,  -227,     0,
+       0,     0,     0,  -227,     0,     0,     0,     0,     0,     0,
+       0,  -219,  -177,  -177,  -177,     0,     0,     0,     0,  -219,
+    -219,  -219,  -219,  -219,  -219,  -219,     0,     0,     0,     0,
+       0,     0,  -177,     0,     0,     0,     0,     0,     0,     0,
+    -177,  -177,  -177,  -177,  -177,  -177,  -177,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  -227,     0,  -227,  -227,
+       0,  -227,     0,  -227,     0,     0,  -227,     0,     0,     0,
+    -227,     0,     0,     0,  -227,  -226,  -226,  -226,  -226,     0,
+       0,     0,     0,  -226,     0,     0,     0,     0,     0,     0,
+       0,     0,  -227,  -227,  -227,     0,  -225,  -225,  -225,  -225,
+       0,     0,     0,     0,  -225,     0,     0,     0,     0,     0,
+       0,     0,  -227,     0,     0,     0,     0,     0,     0,     0,
+    -227,  -227,  -227,  -227,  -227,  -227,  -227,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  -226,     0,  -226,  -226,
+       0,  -226,     0,  -226,     0,     0,  -226,     0,     0,     0,
+    -226,     0,     0,     0,  -226,     0,     0,  -225,     0,  -225,
+    -225,     0,  -225,     0,  -225,     0,     0,  -225,     0,     0,
+       0,  -225,  -226,  -226,  -226,  -225,  -221,  -221,  -221,  -221,
+       0,     0,     0,     0,  -221,     0,     0,     0,     0,     0,
+       0,     0,  -226,  -225,  -225,  -225,     0,     0,     0,     0,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,     0,     0,     0,
+       0,     0,     0,  -225,     0,     0,     0,     0,     0,     0,
+       0,  -225,  -225,  -225,  -225,  -225,  -225,  -225,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  -221,     0,  -221,
+    -221,     0,  -221,     0,  -221,     0,     0,  -221,     0,     0,
+       0,  -221,     0,     0,     0,  -221,  -223,  -223,  -223,  -223,
+       0,     0,     0,     0,  -223,     0,     0,     0,     0,     0,
+       0,     0,     0,  -221,  -221,  -221,     0,  -222,  -222,  -222,
+    -222,     0,     0,     0,     0,  -222,     0,     0,     0,     0,
+       0,     0,     0,  -221,     0,     0,     0,     0,     0,     0,
+       0,  -221,  -221,  -221,  -221,  -221,  -221,  -221,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  -223,     0,  -223,
+    -223,     0,  -223,     0,  -223,     0,     0,  -223,     0,     0,
+       0,  -223,     0,     0,     0,  -223,     0,     0,  -222,     0,
+    -222,  -222,     0,  -222,     0,  -222,     0,     0,  -222,     0,
+       0,     0,  -222,  -223,  -223,  -223,  -222,  -224,  -224,  -224,
+    -224,     0,     0,     0,     0,  -224,     0,     0,     0,     0,
+       0,     0,     0,  -223,  -222,  -222,  -222,     0,     0,     0,
+       0,  -223,  -223,  -223,  -223,  -223,  -223,  -223,     0,     0,
+       0,     0,     0,     0,  -222,     0,     0,     0,     0,     0,
+       0,     0,  -222,  -222,  -222,  -222,  -222,  -222,  -222,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  -224,     0,
+    -224,  -224,     0,  -224,     0,  -224,     0,     0,  -224,     0,
+       0,     0,  -224,     0,     0,     0,  -224,  -179,  -179,  -179,
+    -179,     0,     0,     0,     0,  -179,     0,     0,     0,     0,
+       0,     0,     0,     0,  -224,  -224,  -224,     0,    73,     0,
+      74,    75,     0,     0,     0,     0,    79,     0,     0,     0,
+       0,     0,     0,     0,  -224,     0,     0,     0,     0,     0,
+       0,     0,  -224,  -224,  -224,  -224,  -224,  -224,  -224,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  -179,     0,
+    -179,  -179,     0,  -179,     0,  -179,     0,     0,  -179,     0,
+       0,     0,  -179,     0,     0,     0,  -179,     0,     0,    91,
+       0,    92,    93,     0,    95,     0,    97,     0,     0,    99,
+       0,     0,     0,   101,  -179,  -179,  -179,   104,    73,     0,
+      74,    75,     0,     0,     0,     0,    79,     0,     0,     0,
+       0,     0,     0,     0,  -179,   108,   109,   532,     0,     0,
+       0,     0,  -179,  -179,  -179,  -179,  -179,  -179,  -179,     0,
+       0,     0,     0,     0,     0,   533,     0,     0,     0,     0,
+       0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    91,
+       0,    92,    93,     0,    95,     0,    97,     0,     0,    99,
+       0,     0,    73,   101,    74,    75,     0,   104,     0,     0,
+      79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   108,   109,   612,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   153,
-       6,     7,     0,     8,    34,    35,    36,    37,     9,    10,
-      11,    12,     0,     0,     0,   154,     0,    16,    17,    18,
-     155,     0,    41,   292,     0,    22,     0,   156,   157,     0,
-     158,    24,     0,    25,     0,   159,     0,    27,   160,    28,
-     161,   162,    29,    30,     0,   163,     0,   164,    31,     0,
-       0,     0,     0,     0,   165,     0,    32,     0,   166,     0,
-       0,     0,     0,   167,     0,   168,     0,     0,   169,     0,
-       0,   170,     0,     0,     0,   171,   172,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   173,     0,
-       0,   174,     0,     0,     0,   175,   176,     0,     0,     0,
-       0,    36,   177,    77,     0,     0,     0,   178,     0,     0,
-     205,     0,     0,    88,   153,     6,     7,    41,     8,     0,
-       0,   179,     0,     9,    10,    11,    12,     0,     0,     0,
-     154,     0,    16,    17,    18,   155,     0,     0,     0,     0,
-      22,     0,   156,   157,     0,   158,    24,     0,    25,     0,
-     159,     0,    27,   160,    28,   161,   162,    29,    30,     0,
-     163,     0,   164,    31,     0,     0,     0,     0,     0,   165,
-       0,    32,     0,   166,     0,     0,     0,     0,   167,     0,
-     168,     0,     0,   169,     0,     0,   170,     0,     0,     0,
-     171,   172,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   173,     0,     0,   174,     0,     0,     0,
-     175,   176,     0,     0,     0,     0,    36,   177,    77,     0,
-       0,     0,   178,     0,     0,     0,     0,     0,    88,     0,
-       6,     7,    41,     8,     0,     0,   179,     0,     9,    10,
-      11,    12,     0,     0,     0,     0,     0,    16,    17,    18,
-      19,     0,     0,     0,     0,    22,     0,     0,     0,     0,
-       0,    24,     0,    25,     0,     0,     0,    27,     0,    28,
-       0,     0,    29,    30,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,   387,     0,    32,     0,   228,     0,
-     229,   230,     0,   231,     0,   232,     0,     0,     0,     0,
-       0,     0,   228,     0,   229,   230,   388,   231,     0,   232,
-       0,     0,   233,     0,     0,     0,   234,     0,     0,     0,
-       0,   236,   238,     0,     0,     0,     0,     0,    34,     0,
-     389,    36,    37,    77,     0,     0,   238,     0,     0,     0,
-     241,   242,     0,   390,   391,     0,     0,    41,     0,   392,
-     393,   244,   245,   246,   247,   248,     0,   461,   394,   395,
-       0,     0,   251,     0,     0,   244,   245,   246,   247,   248,
-       0,     0,   249,   250,     0,     0,   251
+       0,  -233,     0,  -233,  -233,   613,     0,     0,     0,  -233,
+       0,     0,     0,   118,   119,   120,   121,   122,   123,   124,
+       0,     0,     0,    91,     0,    92,    93,     0,    95,     0,
+      97,     0,     0,    99,     0,     0,     0,   101,     0,     0,
+      73,   104,    74,    75,     0,     0,     0,     0,    79,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   108,
+     109,   660,  -233,     0,  -233,  -233,     0,  -233,     0,  -233,
+       0,     0,  -233,     0,     0,     0,  -233,     0,     0,   661,
+    -233,     0,     0,     0,     0,     0,     0,   118,   119,   120,
+     121,   122,   123,   124,     0,     0,     0,     0,  -233,  -233,
+    -233,    91,     0,    92,    93,     0,    95,     0,    97,     0,
+       0,    99,     0,     0,    73,   101,   710,   711,  -233,   104,
+       0,     0,    79,     0,     0,     0,  -233,  -233,  -233,  -233,
+    -233,  -233,  -233,     0,     0,     0,     0,   108,   109,   679,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    73,     0,   738,   739,   680,     0,     0,
+       0,   740,     0,     0,     0,   118,   119,   120,   121,   122,
+     123,   124,     0,     0,     0,    91,     0,    92,    93,     0,
+      95,     0,    97,     0,     0,    99,     0,     0,     0,   101,
+       0,     0,     0,   104,    73,   243,     0,   226,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   108,   109,   679,    91,     0,    92,    93,     0,    95,
+       0,    97,     0,     0,    99,     0,     0,     0,   101,     0,
+       0,   680,   104,     0,     0,     0,     0,     0,     0,   118,
+     119,   120,   121,   122,   123,   124,     0,     0,     0,     0,
+     108,   109,   741,     0,     0,    91,     0,    92,    93,     0,
+      95,     0,    97,     0,     0,    99,     0,     0,     0,   101,
+     742,     0,     0,   104,     0,     0,     0,     0,   118,   119,
+     120,   121,   122,   123,   124,     0,     0,     0,     0,     0,
+       0,   108,   109,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   457,     0,     0,     0,     0,     0,     0,     0,   118,
+     119,   120,   121,   122,   123,   124,     7,     0,     0,     0,
+       0,     0,     0,   243,    74,   244,    76,    77,    78,     0,
+      79,     0,     0,     0,     8,     9,    80,    10,    11,     0,
+      81,     0,     0,     0,    13,    14,    15,    16,     0,     0,
+      18,    19,    20,    21,    22,    23,    24,     0,    25,    83,
+      26,     0,     0,    84,    27,    28,    85,    29,    86,     0,
+      87,    88,    30,     0,     0,     0,     0,     0,    89,     0,
+      31,     0,    90,     0,     0,     0,     0,    94,     0,    96,
+       0,     0,    98,     0,     0,   100,     0,     0,     0,   102,
+     103,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   105,     0,   106,   107,     0,
+       0,   245,   111,     0,   112,     0,     0,    33,    34,    35,
+      36,     0,   113,   246,    38,    39,     0,   247,   248,     7,
+       0,     0,    41,     0,     0,     0,   117,    74,    75,    76,
+      77,    78,     0,    79,     0,     0,     0,     8,     9,    80,
+      10,    11,     0,    81,     0,     0,     0,    13,    14,    15,
+      16,     0,     0,    18,    19,    20,    21,    22,    23,    24,
+       0,    25,    83,    26,     0,     0,    84,    27,    28,    85,
+      29,    86,     0,    87,    88,    30,     0,     0,     0,     0,
+       0,    89,     0,    31,     0,    90,     0,     0,     0,     0,
+      94,     0,    96,     0,     0,    98,     0,     0,   100,     0,
+       0,     0,   102,   103,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   105,     0,
+     106,   107,     0,     0,   582,   111,     0,   112,     0,     0,
+      33,    34,    35,    36,     0,   113,    37,    38,    39,     0,
+     247,   248,     7,     0,     0,    41,     0,     0,     0,   117,
+       0,     0,    76,    77,    78,     0,     0,     0,     0,     0,
+       8,     9,    80,    10,    11,     0,    81,     0,     0,     0,
+      13,    14,    15,    16,     0,     0,    18,    19,    20,    21,
+      22,    23,    24,     0,    25,    83,    26,     0,     0,    84,
+      27,    28,    85,    29,    86,     0,    87,    88,    30,     0,
+       0,     0,     0,     0,    89,     0,    31,     0,    90,     0,
+       0,     0,     0,    94,     0,    96,     0,     0,    98,     0,
+       0,   100,     0,     0,     0,   102,   103,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   105,     0,   106,   107,     0,     0,     0,   111,     0,
+     112,     0,     0,    33,    34,    35,    36,     0,   113,    37,
+      38,    39,     0,   247,   248,     7,     0,     0,    41,     0,
+       0,     0,   117,     0,     0,    76,    77,    78,     0,     0,
+       0,     0,     0,     8,     9,    80,    10,    11,     0,    81,
+       0,     0,     0,    13,    14,    15,    16,     0,     0,    18,
+      19,    20,    21,    22,    23,    24,     0,    25,    83,    26,
+       0,     0,    84,    27,    28,    85,    29,    86,     0,    87,
+      88,    30,     0,     0,     0,     0,     0,    89,     0,    31,
+       0,    90,     0,     0,     0,     0,    94,     0,    96,     0,
+       0,    98,     0,     0,   100,     0,     0,     0,   102,   103,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   105,     0,   106,   107,     0,     0,
+       0,   111,     0,   112,     0,     0,    33,    34,    35,    36,
+       0,   113,   246,    38,    39,     0,   247,   248,     7,     0,
+       0,    41,     0,     0,     0,   117,     0,     0,    76,    77,
+      78,     0,     0,     0,     0,     0,     8,     9,    80,    10,
+      11,     0,    81,     0,     0,     0,    13,    14,    15,    16,
+       0,     0,    18,    19,    20,    21,    22,    23,    24,     0,
+      25,    83,    26,     0,     0,    84,    27,    28,    85,    29,
+      86,     0,    87,    88,    30,     0,     0,     0,     0,     0,
+      89,     0,    31,     0,    90,     0,     0,     0,     0,    94,
+       0,    96,     0,     0,    98,     0,     0,   100,     0,     0,
+       0,     0,   103,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   105,     0,   106,
+     107,     0,     0,     0,     0,     0,     0,     0,     0,    33,
+      34,    35,    36,     0,   113,    37,    38,    39,     0,   247,
+     248,     7,     0,     0,    41,     0,     0,     0,   117,     0,
+       0,    76,    77,    78,     0,     0,     0,     0,     0,     8,
+       9,    80,    10,    11,     0,    81,     0,     0,     0,    13,
+      14,    15,    16,     0,     0,    18,    19,    20,    21,    22,
+      23,    24,     0,    25,    83,    26,     0,     0,    84,    27,
+      28,    85,    29,    86,     0,    87,    88,    30,     0,     0,
+       0,     0,     0,    89,     0,    31,     0,    90,     0,     0,
+       0,     0,    94,     0,    96,     0,     0,    98,     0,     0,
+     100,     0,     0,     0,     0,   103,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     105,     0,   106,   107,     0,     0,     0,     0,     0,     0,
+       0,     0,    33,    34,    35,    36,     0,   113,   246,    38,
+      39,     0,   247,   248,     7,     0,     0,    41,     0,     0,
+       0,   117,     0,     0,    76,    77,    78,     0,     0,     0,
+       0,     0,     0,     0,    80,    10,    11,     0,    12,     0,
+       0,     0,    13,    14,    15,    16,     0,     0,     0,    19,
+      20,    21,     0,     0,     0,     0,    25,    83,     0,     0,
+       0,    84,     0,    28,    85,    29,    86,     0,    87,     0,
+      30,     0,     0,     0,     0,     0,    89,     0,    31,     0,
+      90,     0,     0,     0,     0,    94,     0,    96,     0,     0,
+      98,     0,     0,   100,     0,     0,     0,   102,   103,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   105,     0,     0,   107,     0,     0,     0,
+     111,     0,   112,     0,     0,     7,     0,    35,    36,     0,
+     113,    37,    38,    39,     0,    76,    77,    78,     0,     0,
+      41,     0,     0,     0,   117,    80,    10,    11,     0,    12,
+       0,     0,     0,    13,    14,    15,    16,     0,     0,     0,
+      19,    20,    21,     0,     0,     0,     0,    25,    83,     0,
+       0,     0,    84,     0,    28,    85,    29,    86,     0,    87,
+       0,    30,     0,     0,     0,     0,     0,    89,     0,    31,
+       0,    90,     0,     0,     0,     0,    94,     0,    96,     0,
+       0,    98,     0,     0,   100,     0,     0,     0,   102,   103,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   105,     0,     0,   107,     0,     0,
+       0,   111,     7,   112,     0,     0,     0,     0,    35,    36,
+       0,   113,    76,    77,    78,   361,     0,     0,     0,     0,
+       0,    41,    80,    10,    11,   117,    12,     0,     0,     0,
+      13,    14,    15,    16,     0,     0,     0,    19,    20,    21,
+       0,     0,     0,     0,    25,    83,     0,     0,     0,    84,
+       0,    28,    85,    29,    86,     0,    87,     0,    30,     0,
+       0,     0,     0,     0,    89,     0,    31,     0,    90,     0,
+       0,     0,     0,    94,     0,    96,     0,     0,    98,     0,
+       0,   100,     0,     0,     0,   102,   103,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   105,     0,     0,   107,     0,     0,     0,   111,     7,
+     112,     0,     0,     0,     0,    35,    36,     0,   113,    76,
+      77,    78,     0,     0,     0,     0,     0,     0,    41,    80,
+      10,    11,   117,   400,     0,     0,     0,    13,    14,    15,
+      16,     0,     0,     0,    19,    20,    21,     0,     0,     0,
+       0,    25,    83,     0,     0,     0,    84,     0,    28,    85,
+      29,    86,     0,    87,     0,    30,     0,     0,     0,     0,
+       0,    89,     0,    31,     0,    90,     0,     0,     0,     0,
+      94,     0,    96,     0,     0,    98,     0,     0,   100,     0,
+       0,     0,     0,   103,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   105,     0,
+       0,   107,     0,     0,     0,    -2,     6,     0,     0,     7,
+       0,     0,    35,    36,     0,   113,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    41,     0,     8,     9,   117,
+      10,    11,     0,    12,     0,     0,     0,    13,    14,    15,
+      16,   -10,    17,    18,    19,    20,    21,    22,    23,    24,
+       0,    25,   466,    26,     0,     7,     0,    27,    28,     0,
+      29,     0,     0,     0,     0,    30,     0,     0,     0,     0,
+       0,     0,     0,    31,     9,     0,    10,    11,     0,    12,
+       0,     0,     0,    13,    14,    15,    16,   -83,     0,    18,
+      19,    20,    21,    22,    23,    24,     0,    25,     0,    26,
+       0,     0,     0,    27,    28,     0,    29,     0,     0,     0,
+       0,    30,     0,     0,     0,    32,     0,     0,     0,    31,
+      33,    34,    35,    36,     0,     0,    37,    38,    39,     0,
+      40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   477,     0,     0,     7,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    33,    34,    35,    36,
+       0,     0,    37,    38,    39,     0,    10,    11,     0,    12,
+       0,    41,   467,    13,    14,    15,    16,   -95,     0,    18,
+      19,    20,    21,    22,    23,    24,     0,    25,     0,    26,
+       7,     0,     0,    27,    28,     0,    29,     0,     0,     0,
+       0,    30,     0,     0,     0,     0,   558,   559,     0,    31,
+       0,    10,    11,   560,    12,   561,   562,   563,    13,    14,
+      15,    16,     0,     0,     0,    19,    20,    21,     0,     0,
+       0,   564,    25,   565,     0,   566,     0,   567,     0,    28,
+       0,    29,     0,   568,   569,    88,    30,     0,     0,     0,
+       0,     0,     0,     0,    31,     0,    33,    34,    35,    36,
+       0,     0,    37,    38,    39,     0,     0,     0,     0,     0,
+       0,    41,   478,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   106,     0,     0,     0,     0,     0,     7,     0,     0,
+       0,     0,     0,    35,    36,     0,     0,    37,    38,    39,
+       0,   570,     0,   558,   559,     0,    41,   571,    10,    11,
+     560,    12,   561,   562,   563,    13,    14,    15,    16,     0,
+       0,     0,    19,    20,    21,     0,     0,     0,   564,    25,
+     565,     7,   566,     0,   567,     0,    28,     0,    29,     0,
+     568,   569,    88,    30,     0,     0,     0,   558,   559,     0,
+       0,    31,    10,    11,   560,    12,   561,   562,   563,    13,
+      14,    15,    16,     0,     0,     0,    19,    20,    21,     0,
+       0,     0,   564,    25,   565,     0,   566,     0,   567,     0,
+      28,     0,    29,     0,   568,   569,     0,    30,   106,     0,
+       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
+      35,    36,     0,     0,    37,    38,    39,     0,   570,     0,
+       0,     0,     0,    41,   779,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   701,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    35,    36,     0,     0,    37,    38,
+      39,     0,   570,    74,    75,     0,     0,    41,   702,    79,
+       0,     0,     0,     8,     9,     0,    10,    11,     0,    81,
+       0,     0,     0,    13,    14,    15,    16,     0,     0,    18,
+      19,    20,     0,    22,    23,    24,     0,    25,     0,    26,
+       0,     0,     0,    27,    28,     0,    29,     0,     0,     0,
+      88,    30,     0,     0,     8,     9,     0,    10,    11,    31,
+      81,     0,     0,     0,    13,    14,    15,    16,     0,     0,
+      18,    19,    20,     0,    22,    23,    24,     0,    25,     0,
+      26,     0,     0,     0,    27,    28,     0,    29,     0,     0,
+       0,    88,    30,     0,     0,     0,   106,     0,     0,     0,
+      31,     0,     0,     0,     0,     0,    33,    34,     0,    36,
+       0,     0,   205,    38,    39,     0,   247,   248,     0,   102,
+       0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
+       0,     0,   111,     0,   112,     0,     0,    33,    34,     0,
+      36,     0,     0,   205,    38,    39,     0,   247,   248,     0,
+       8,     9,    41,    10,    11,     0,    81,     0,     0,     0,
+      13,    14,    15,    16,     0,     0,    18,    19,    20,     0,
+      22,    23,    24,     0,    25,     0,    26,     0,     0,     0,
+      27,    28,     0,    29,     0,     0,     0,    88,    30,     0,
+       0,     0,     0,     0,     0,     0,    31,     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,
+       0,     0,     0,   106,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    33,    34,     0,    36,     0,     0,   205,
+      38,    39,     0,   247,   248,     0,     0,     0,    41
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,     1,    30,    81,     8,    41,     1,    88,    88,   105,
-      30,   162,   155,   144,    18,   173,   174,    76,   144,   162,
-     178,    25,   148,    76,    61,   144,   105,    31,   105,   148,
-     243,   189,   331,    80,   192,    82,   194,     1,   162,   197,
-      87,    16,     1,   126,    45,     1,     1,    83,    84,   350,
-      64,   352,    53,    58,   355,     1,    15,     1,   105,    33,
-      24,    33,     1,   129,    92,    49,     1,    51,   437,   131,
-      25,   129,    92,    28,   109,   110,    89,   112,    91,    25,
-      35,   128,    28,   120,    68,   147,    41,   139,   140,    35,
-     109,    53,   107,    94,   129,    41,    89,   102,    91,   107,
-     469,   470,   471,   104,   105,   105,   107,    67,   123,   124,
-     129,    91,    84,   127,   129,   123,   124,    89,    40,    91,
-     129,   125,   122,   116,   124,    47,   127,   122,    50,   124,
-     120,   121,   215,   107,   435,    57,   116,   111,   118,   111,
-     115,    91,    16,   103,   129,   129,   515,   129,   107,   123,
-     124,   123,    89,   113,    91,   115,   106,   204,   122,    33,
-     124,   120,   121,   129,   123,   127,   122,   214,   124,   106,
-     383,   130,     4,   251,   221,   130,   116,   129,   122,   275,
-     124,    97,   313,   122,   130,   124,   223,   122,    97,   266,
-     115,   131,   132,   406,   407,    89,   275,    91,   275,    91,
-     125,    48,    61,    62,    63,   131,    65,   208,   209,   158,
-     104,   206,   161,   126,   127,    89,   220,    91,   222,   343,
-     220,   222,   107,   227,   116,    92,   118,    94,   275,    96,
-      89,   114,    91,   107,   126,   120,   121,   111,   123,   144,
-      99,   540,   116,     4,   118,   130,   120,   121,   117,   123,
-     124,   131,   132,   300,   313,    33,   131,   103,   404,   405,
-     313,   108,   109,   110,   111,   112,   266,   113,   129,   115,
-     120,   121,    92,   574,   275,   275,   123,   124,   143,   144,
-     431,   131,   129,   130,     6,     7,   417,   102,   431,   420,
-     120,   121,    14,   123,   420,    17,    18,    19,   305,   306,
-     307,   420,    24,   310,    82,   139,    84,   140,    48,   386,
-     123,    89,    91,    91,    36,   114,   159,   160,    40,   347,
-     163,   114,    44,   370,   116,    47,   116,   107,   123,   124,
-     331,   410,   101,   111,    56,    57,    58,   338,   127,   120,
-     120,   121,   379,   123,   124,   123,   129,   129,   348,    48,
-     428,    95,    96,    97,   505,   433,   134,   416,   417,   131,
-     146,   132,   505,   416,   131,   131,   413,   143,   108,   109,
-     501,   111,     8,   114,   123,   501,   534,    92,    93,    94,
-     102,    96,   132,   123,   124,     6,     7,   125,    33,   129,
-     129,   136,   543,    14,   131,   131,    17,    18,    19,   131,
-     543,   123,    92,   132,    94,    95,    96,    46,   130,   108,
-     109,   131,   111,   275,   415,    36,    92,    93,    94,    40,
-      96,    53,   426,    44,   123,   124,    47,    61,    62,    63,
-     581,    65,    33,   511,   454,    56,    57,   457,   581,     1,
-     413,   537,   124,   538,    89,   445,    91,    93,    58,   497,
-     156,   532,   532,   531,    92,   553,    94,    95,    96,   104,
-     266,   266,   107,    92,    93,    94,   111,    96,   554,    24,
-      92,   116,   161,   118,   552,   120,   121,   164,   123,   124,
-     337,   102,   486,   484,   488,   531,   490,   445,    89,   511,
-      91,   575,   439,   517,   495,   349,   131,   575,   417,   535,
-      -1,    -1,   123,   498,    -1,    -1,   107,    -1,    -1,   130,
-     111,    -1,    -1,    -1,    -1,   116,    -1,   118,    -1,   120,
-     121,    -1,   123,   124,    -1,   553,    -1,    -1,    -1,    -1,
-      -1,    -1,   536,    -1,   538,    -1,   536,   538,    -1,   540,
-     541,    -1,    -1,    -1,    -1,    -1,     9,    10,    11,    12,
-      13,    -1,    15,    -1,    -1,    -1,    -1,    20,    21,    22,
-      23,    -1,    -1,   564,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    -1,    37,    -1,    39,    40,    41,    42,
-      43,    -1,    45,    -1,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    -1,    57,    58,    59,    60,    -1,    -1,
-      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    71,    -1,
+       3,     4,    86,     3,     4,     4,    73,     3,     4,    35,
+      47,    37,    86,    35,     4,    37,   162,    88,    86,    47,
+      86,    86,     4,    65,    77,   189,    77,   191,    86,     4,
+      35,    55,    37,    35,    86,   239,   183,    28,    29,     7,
+       3,     4,   183,     4,    12,   277,    86,     3,     4,    86,
+     264,    88,    55,    21,    41,   116,   190,   191,    13,   105,
+      88,   107,    30,   355,   372,   182,   183,   113,   360,    68,
+      86,   206,     3,     4,   119,   377,   617,    18,    67,    82,
+     377,    59,    82,    82,   355,   372,    82,   109,   355,     0,
+      17,    64,    82,   360,     4,   469,     7,     3,     4,   113,
+      82,   147,     3,     4,   109,   381,   480,    82,   414,   336,
+     156,    99,   109,    81,   160,   132,   130,   163,    11,    82,
+      13,    82,   286,     1,    12,    13,    82,   105,     0,   146,
+      18,    13,   216,   110,   508,   281,    18,   364,   284,   210,
+     372,   449,   184,     7,   452,   182,   183,   130,   125,   126,
+       1,    82,   286,   130,   109,   128,   302,   698,    36,    11,
+      38,    13,   279,   189,   110,   191,    44,   189,   190,    13,
+      48,    36,    82,   210,    13,    17,    82,   323,   130,   125,
+     126,    82,   210,   205,    11,    36,    13,    38,   189,   190,
+     158,   132,   133,    44,   130,   158,   264,    48,    42,    11,
+     205,    13,   239,   206,   109,   130,   206,   206,   205,    13,
+     206,   239,   264,    11,   378,    13,   206,   144,    84,    85,
+     246,    87,   264,    13,   206,   135,   266,   498,    70,    18,
+     538,   206,    74,   294,   142,   143,   225,    79,   241,   127,
+      84,   543,   279,   206,   378,   206,   543,   549,   524,   246,
+     206,   538,    42,   131,    91,    92,    93,    61,    62,    63,
+     286,    65,    53,   398,    55,   326,   327,    94,    95,   130,
+     546,   115,    18,   105,   580,   206,   125,    68,   424,    13,
+     131,   125,    94,    95,   306,   127,   128,    87,   330,   121,
+     122,   123,    82,     0,    84,   337,   138,   381,   102,     0,
+     206,   306,    11,   145,    13,   206,   538,   128,   382,   306,
+     110,   111,   112,   300,   388,   278,   381,     0,   355,   100,
+      12,    13,   387,   381,   100,   115,    18,   115,   116,   332,
+     414,   334,   332,   641,   334,   125,   332,   336,   334,   130,
+     414,    95,   644,   635,   381,   132,   654,   137,   512,   414,
+      95,   498,   378,   420,   132,   657,   414,   498,   384,   385,
+     386,   632,   384,   527,   635,   364,   362,   335,   635,   332,
+     444,   334,   127,   128,   441,   443,   332,   414,   443,   384,
+     385,   498,   384,   130,   386,     7,   520,   693,   385,   386,
+     119,   443,   382,   527,   142,   398,   610,   132,   398,   398,
+     143,   306,   398,   403,   125,   126,   443,   410,   398,   641,
+     410,   410,   457,   121,   122,   123,   398,    94,    95,   445,
+     104,   697,   654,   398,   132,   130,   332,   443,   334,    94,
+      95,   332,   400,   334,   726,   398,   133,   398,   324,   325,
+     524,   515,   398,   445,   412,   132,   132,   515,   445,   515,
+     144,   525,    12,    13,   444,   726,   524,   145,    18,   524,
+      90,   498,   546,   515,    12,    13,   524,   398,   116,   125,
+      18,   434,   524,   547,   780,   132,    12,    13,   515,   133,
+     385,   386,    18,   132,   631,   632,   690,   524,   546,   511,
+     631,    14,   398,     5,   520,    90,   580,   398,    93,   515,
+      94,    96,   548,    98,   130,   115,   580,     8,   524,   546,
+     511,   512,   513,     8,   631,   580,     8,     8,   519,   520,
+     132,   588,   580,    90,   113,   114,    93,   116,   552,    96,
+     130,    98,   139,   122,   123,   525,   133,   683,   684,   685,
+     445,   130,   610,   580,    50,    12,    13,   132,   616,   552,
+     616,    18,   511,   620,   513,    95,   556,   547,   610,   630,
+     519,   587,   591,    82,   616,   688,   730,   526,   621,   628,
+     621,    91,    92,    93,   334,   578,   187,    97,    98,   616,
+     648,   277,   648,   648,   591,   587,   628,   751,   591,   301,
+     587,   591,   549,   630,   631,   632,   648,   565,   635,   567,
+     616,   569,   630,   158,    12,    13,   121,   122,   123,   693,
+      18,   648,   746,   697,   705,   512,   513,   751,   270,   693,
+     434,   767,   588,   520,   698,   623,   620,   617,   693,   697,
+     527,   697,   648,   700,   625,   693,   490,   491,   492,   697,
+     768,   495,   668,   669,   670,   697,   668,   673,    15,    16,
+     676,   593,   429,   690,   279,   340,   693,    -1,   632,   649,
+     697,    -1,   690,   668,   669,    -1,   668,    -1,   670,    -1,
+      -1,   673,   669,   670,   676,    -1,   673,    -1,    -1,   676,
+      -1,   697,   587,    -1,    -1,   384,   385,   386,   691,   726,
+      -1,    91,    92,    93,    -1,    -1,   780,    97,    98,    -1,
+      67,   768,   121,   122,   123,    -1,   780,   729,   698,   735,
+      -1,    -1,   734,    -1,    -1,   780,    -1,    91,    92,    93,
+     746,    -1,   780,    97,    98,    -1,    -1,   723,   729,   730,
+     731,    -1,    -1,   734,   735,    -1,    61,    62,    63,   106,
+      65,    -1,   110,   780,   745,   746,   445,    91,    92,    93,
+     117,   118,    -1,   121,   122,   123,    -1,   125,   761,     4,
+      -1,   761,   761,   131,   669,   670,    -1,    -1,   673,    -1,
+     729,   676,   731,    -1,    -1,   734,    91,    92,    93,    -1,
+      25,    26,    52,    28,    -1,    -1,   745,    32,    33,    34,
+      35,   750,    -1,    -1,    39,    40,    41,    91,    92,    93,
+      -1,    46,    -1,    97,    98,   121,   122,   123,    53,   125,
+      55,    -1,   511,   512,   513,    60,    14,    15,    16,    -1,
+     519,   520,    -1,    68,    91,    92,    93,   526,   527,    -1,
+      97,    98,    -1,   730,   731,    91,    92,    93,   735,    91,
+      92,    93,   112,   113,   114,   115,   116,    -1,    -1,   746,
+      -1,    -1,   122,   123,   751,   125,   126,    91,    92,    93,
+     130,   131,    -1,    97,    98,    91,    92,    93,    91,    92,
+      93,    -1,   117,   118,    97,    98,    -1,     0,     1,    -1,
+      -1,     4,    91,    92,    93,   130,    -1,    10,   587,    12,
+      13,    14,    15,    16,    -1,    18,    91,    92,    93,    22,
+      23,    24,    25,    26,    -1,    28,    91,    92,    93,    32,
+      33,    34,    35,    -1,    37,    38,    39,    40,    41,    42,
+      43,    44,    -1,    46,    47,    48,    -1,    -1,    51,    52,
+      53,    54,    55,    56,    -1,    58,    59,    60,    91,    92,
+      93,    -1,    -1,    66,    -1,    68,    -1,    70,    71,    -1,
       73,    74,    75,    76,    77,    78,    -1,    80,    81,    -1,
-      83,    -1,    85,    -1,    87,    88,    89,    90,    91,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,   102,
-     103,    -1,   105,    -1,   107,   108,    -1,    -1,   111,   112,
-     113,   114,   115,   116,    -1,   118,   119,   120,   121,    -1,
-     123,   124,   125,   126,    -1,    -1,   129,    -1,    -1,    -1,
-     133,   134,   135,   136,   137,   138,     1,    -1,   141,   142,
-      -1,    -1,   145,    -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,    39,    40,    -1,    42,    43,    -1,
-      45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
-      55,    -1,    57,    -1,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    66,    70,    68,    69,    70,    74,    -1,    -1,    -1,
-      75,    79,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,
+      83,    -1,    85,    -1,    87,    88,    89,    52,    -1,    -1,
+     669,   670,    -1,    -1,   673,    -1,    -1,   676,    -1,    -1,
+     103,    -1,   105,   106,   107,   108,   109,   110,    -1,   112,
+      -1,    -1,   115,   116,   117,   118,    -1,   120,   121,   122,
+     123,    -1,   125,   126,   127,    -1,    -1,   130,    91,    92,
+      93,   134,   135,   136,   137,   138,   139,   140,   141,    91,
+      92,    93,    91,    92,    93,    97,    98,   112,   113,    -1,
+     115,   730,   731,    91,    92,    93,   735,   122,   123,    -1,
+     125,   126,    91,    92,    93,     4,    -1,   746,    97,    98,
+      -1,    10,   751,    12,    13,    14,    15,    16,    -1,    18,
+      -1,    -1,    -1,    22,    23,    24,    25,    26,    -1,    28,
+      -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,    38,
+      39,    40,    41,    42,    43,    44,    -1,    46,    47,    48,
+      -1,    -1,    51,    52,    53,    54,    55,    56,    -1,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
+      -1,    70,    71,    -1,    73,    74,    75,    76,    77,    78,
+      -1,    80,    81,    -1,    83,    -1,    85,    -1,    87,    88,
+      89,    91,    92,    93,    91,    92,    93,    97,    98,    -1,
+      97,    98,    -1,    -1,   103,    -1,   105,   106,   107,   108,
+     109,   110,    -1,   112,    -1,    -1,   115,   116,   117,   118,
+      -1,   120,   121,   122,   123,    -1,   125,   126,   127,     0,
+       1,   130,    -1,     4,    -1,   134,   135,   136,   137,   138,
+     139,   140,   141,    14,    15,    16,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    24,    25,    26,    -1,    28,    -1,    -1,
+      -1,    32,    33,    34,    35,    91,    92,    93,    39,    40,
+      41,    97,    98,    -1,    -1,    46,    47,    -1,    -1,    -1,
+      51,    -1,    53,    54,    55,    56,    -1,    58,    -1,    60,
+      -1,    -1,    -1,    25,    26,    66,    28,    68,    -1,    70,
+      32,    33,    34,    35,    75,    -1,    77,    39,    40,    80,
+      -1,    -1,    83,    -1,    46,    -1,    87,    88,    91,    92,
+      93,    53,    -1,    55,    97,    98,    -1,    -1,    60,    -1,
+      -1,    -1,   103,    -1,    -1,   106,    68,    -1,    -1,   110,
+      -1,   112,     1,    -1,    -1,     4,   117,   118,    -1,   120,
+     121,   122,   123,    -1,    -1,    14,    15,    16,    -1,   130,
+      -1,    -1,    -1,   134,    -1,    24,    25,    26,    -1,    28,
+      -1,    -1,    52,    32,    33,    34,    35,    91,    92,    93,
+      39,    40,    41,    97,    98,    -1,   118,    46,    47,    -1,
+      -1,    -1,    51,    -1,    53,    54,    55,    56,   130,    58,
+      -1,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
+      69,    70,    -1,    91,    92,    93,    75,    -1,    77,    97,
+      98,    80,    -1,    -1,    83,    -1,    -1,    -1,    87,    88,
+      -1,    -1,   112,   113,   114,   115,   116,    -1,    -1,    -1,
+      -1,    -1,   122,   123,   103,   125,   126,   106,    -1,    -1,
+     130,   110,    -1,   112,     1,    -1,    -1,     4,   117,   118,
+      -1,   120,   121,   122,   123,    -1,    -1,    14,    15,    16,
+      -1,   130,    -1,    -1,    52,   134,    -1,    24,    25,    26,
+      -1,    28,    -1,    -1,    -1,    32,    33,    34,    35,    -1,
+      -1,    -1,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+      47,    -1,    -1,    -1,    51,    -1,    53,    54,    55,    56,
+      -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    66,
+      -1,    68,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,
+      77,    -1,    -1,    80,   112,   113,    83,   115,    -1,    -1,
+      87,    88,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
+      -1,    -1,   130,    -1,    -1,    -1,   103,    -1,    -1,   106,
+      -1,    -1,    -1,   110,    -1,   112,     1,    -1,    -1,     4,
+     117,   118,    -1,   120,   121,   122,   123,    -1,    -1,    14,
+      15,    16,    -1,   130,   131,    -1,    -1,   134,    -1,    24,
+      25,    26,    -1,    28,    -1,    10,    -1,    32,    33,    34,
+      35,    -1,    -1,    -1,    39,    40,    41,    -1,    -1,    -1,
+      -1,    46,    47,    -1,    -1,    -1,    51,    -1,    53,    54,
+      55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
+      -1,    66,    -1,    68,    -1,    70,    -1,    10,    -1,    -1,
+      75,    -1,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,
+      -1,    -1,    -1,    88,    -1,    -1,    71,    -1,    73,    74,
+      -1,    76,    -1,    78,    -1,    -1,    81,    -1,   103,    42,
+      85,   106,    -1,    -1,    89,   110,    -1,    -1,    -1,    -1,
+      -1,    -1,   117,   118,    -1,   120,   121,   122,   123,    -1,
+     125,    -1,   107,   108,    67,   130,   131,    -1,    71,   134,
+      73,    74,    -1,    76,    -1,    78,    -1,    -1,    10,    11,
+      12,    13,   127,    -1,    -1,    -1,    18,    -1,    -1,    -1,
+     135,   136,   137,   138,   139,   140,   141,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   107,   108,    -1,   110,    -1,    -1,
+      -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,    71,
+      -1,    73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,
+      -1,    -1,    10,    85,    12,    13,    -1,    89,    -1,    -1,
+      18,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    10,    11,    12,    13,   127,    -1,    -1,    -1,    18,
+      -1,    -1,    -1,   135,   136,   137,   138,   139,   140,   141,
+      -1,    -1,    -1,    71,    -1,    73,    74,    -1,    76,    -1,
+      78,    -1,    -1,    81,    -1,    -1,    -1,    85,    -1,    -1,
+      -1,    89,    10,    11,    12,    13,    94,    95,    -1,    -1,
+      18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
+     108,   109,    71,    -1,    73,    74,    -1,    76,    -1,    78,
+      -1,    -1,    81,    -1,    -1,    -1,    85,    -1,    -1,   127,
+      89,    -1,    -1,    -1,    -1,    -1,    -1,   135,   136,   137,
+     138,   139,   140,   141,    -1,    -1,    -1,    -1,   107,   108,
+     109,    -1,    -1,    71,    -1,    73,    74,    -1,    76,    -1,
+      78,    -1,    -1,    81,    -1,    -1,    -1,    85,   127,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,   135,   136,   137,   138,
+     139,   140,   141,    -1,    10,    11,    12,    13,    -1,   107,
+     108,   109,    18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,   127,
+      -1,    -1,    -1,    18,    -1,    -1,    -1,   135,   136,   137,
+     138,   139,   140,   141,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,    -1,
+      76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,    85,
+      -1,    -1,    -1,    89,    -1,    -1,    71,    -1,    73,    74,
+      -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,
+      85,   107,   108,   109,    89,    10,    11,    12,    13,    -1,
+      -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   127,   107,   108,   109,    -1,    -1,    -1,    -1,   135,
+     136,   137,   138,   139,   140,   141,    -1,    -1,    -1,    -1,
+      -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     135,   136,   137,   138,   139,   140,   141,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
+      -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,
+      85,    -1,    -1,    -1,    89,    10,    11,    12,    13,    -1,
+      -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   107,   108,   109,    -1,    10,    11,    12,    13,
+      -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     135,   136,   137,   138,   139,   140,   141,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
+      -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,
+      85,    -1,    -1,    -1,    89,    -1,    -1,    71,    -1,    73,
+      74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,
+      -1,    85,   107,   108,   109,    89,    10,    11,    12,    13,
+      -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   127,   107,   108,   109,    -1,    -1,    -1,    -1,
+     135,   136,   137,   138,   139,   140,   141,    -1,    -1,    -1,
+      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   135,   136,   137,   138,   139,   140,   141,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,
+      74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,
+      -1,    85,    -1,    -1,    -1,    89,    10,    11,    12,    13,
+      -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   107,   108,   109,    -1,    10,    11,    12,
+      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   135,   136,   137,   138,   139,   140,   141,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,
+      74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,    -1,
+      -1,    85,    -1,    -1,    -1,    89,    -1,    -1,    71,    -1,
+      73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,
+      -1,    -1,    85,   107,   108,   109,    89,    10,    11,    12,
+      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   127,   107,   108,   109,    -1,    -1,    -1,
+      -1,   135,   136,   137,   138,   139,   140,   141,    -1,    -1,
+      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   135,   136,   137,   138,   139,   140,   141,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
+      73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,
+      -1,    -1,    85,    -1,    -1,    -1,    89,    10,    11,    12,
+      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    10,    -1,
+      12,    13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   135,   136,   137,   138,   139,   140,   141,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
+      73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,    -1,
+      -1,    -1,    85,    -1,    -1,    -1,    89,    -1,    -1,    71,
+      -1,    73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,
+      -1,    -1,    -1,    85,   107,   108,   109,    89,    10,    -1,
+      12,    13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   127,   107,   108,   109,    -1,    -1,
+      -1,    -1,   135,   136,   137,   138,   139,   140,   141,    -1,
+      -1,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   135,   136,   137,   138,   139,   140,   141,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
+      -1,    73,    74,    -1,    76,    -1,    78,    -1,    -1,    81,
+      -1,    -1,    10,    85,    12,    13,    -1,    89,    -1,    -1,
+      18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    10,    -1,    12,    13,   127,    -1,    -1,    -1,    18,
+      -1,    -1,    -1,   135,   136,   137,   138,   139,   140,   141,
+      -1,    -1,    -1,    71,    -1,    73,    74,    -1,    76,    -1,
+      78,    -1,    -1,    81,    -1,    -1,    -1,    85,    -1,    -1,
+      10,    89,    12,    13,    -1,    -1,    -1,    -1,    18,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
+     108,   109,    71,    -1,    73,    74,    -1,    76,    -1,    78,
+      -1,    -1,    81,    -1,    -1,    -1,    85,    -1,    -1,   127,
+      89,    -1,    -1,    -1,    -1,    -1,    -1,   135,   136,   137,
+     138,   139,   140,   141,    -1,    -1,    -1,    -1,   107,   108,
+     109,    71,    -1,    73,    74,    -1,    76,    -1,    78,    -1,
+      -1,    81,    -1,    -1,    10,    85,    12,    13,   127,    89,
+      -1,    -1,    18,    -1,    -1,    -1,   135,   136,   137,   138,
+     139,   140,   141,    -1,    -1,    -1,    -1,   107,   108,   109,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    10,    -1,    12,    13,   127,    -1,    -1,
+      -1,    18,    -1,    -1,    -1,   135,   136,   137,   138,   139,
+     140,   141,    -1,    -1,    -1,    71,    -1,    73,    74,    -1,
+      76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,    85,
+      -1,    -1,    -1,    89,    10,    11,    -1,    13,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   107,   108,   109,    71,    -1,    73,    74,    -1,    76,
+      -1,    78,    -1,    -1,    81,    -1,    -1,    -1,    85,    -1,
+      -1,   127,    89,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+     136,   137,   138,   139,   140,   141,    -1,    -1,    -1,    -1,
+     107,   108,   109,    -1,    -1,    71,    -1,    73,    74,    -1,
+      76,    -1,    78,    -1,    -1,    81,    -1,    -1,    -1,    85,
+     127,    -1,    -1,    89,    -1,    -1,    -1,    -1,   135,   136,
+     137,   138,   139,   140,   141,    -1,    -1,    -1,    -1,    -1,
+      -1,   107,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+     136,   137,   138,   139,   140,   141,     4,    -1,    -1,    -1,
+      -1,    -1,    -1,    11,    12,    13,    14,    15,    16,    -1,
+      18,    -1,    -1,    -1,    22,    23,    24,    25,    26,    -1,
+      28,    -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,
+      38,    39,    40,    41,    42,    43,    44,    -1,    46,    47,
+      48,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
+      58,    59,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,
+      68,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,
+      -1,    -1,    80,    -1,    -1,    83,    -1,    -1,    -1,    87,
+      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   103,    -1,   105,   106,    -1,
+      -1,   109,   110,    -1,   112,    -1,    -1,   115,   116,   117,
+     118,    -1,   120,   121,   122,   123,    -1,   125,   126,     4,
+      -1,    -1,   130,    -1,    -1,    -1,   134,    12,    13,    14,
+      15,    16,    -1,    18,    -1,    -1,    -1,    22,    23,    24,
+      25,    26,    -1,    28,    -1,    -1,    -1,    32,    33,    34,
+      35,    -1,    -1,    38,    39,    40,    41,    42,    43,    44,
+      -1,    46,    47,    48,    -1,    -1,    51,    52,    53,    54,
+      55,    56,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
+      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    -1,    -1,
+      75,    -1,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,
       -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,    -1,
-      -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,
-     115,     1,    -1,    -1,   119,   120,   121,    -1,   126,   127,
-     125,    11,    12,    13,   129,    15,    -1,   135,   133,    -1,
-      20,    21,    22,    23,    -1,    -1,   144,    27,   146,    29,
-      30,    31,    32,    -1,    -1,    48,    -1,    37,    -1,    39,
-      40,    -1,    42,    43,    -1,    45,    -1,    47,    -1,    49,
-      50,    51,    52,    53,    54,    55,    -1,    57,    -1,    59,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
+     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
+     115,   116,   117,   118,    -1,   120,   121,   122,   123,    -1,
+     125,   126,     4,    -1,    -1,   130,    -1,    -1,    -1,   134,
+      -1,    -1,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,
+      22,    23,    24,    25,    26,    -1,    28,    -1,    -1,    -1,
+      32,    33,    34,    35,    -1,    -1,    38,    39,    40,    41,
+      42,    43,    44,    -1,    46,    47,    48,    -1,    -1,    51,
+      52,    53,    54,    55,    56,    -1,    58,    59,    60,    -1,
+      -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
+      -1,    -1,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
+      -1,    83,    -1,    -1,    -1,    87,    88,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   103,    -1,   105,   106,    -1,    -1,    -1,   110,    -1,
+     112,    -1,    -1,   115,   116,   117,   118,    -1,   120,   121,
+     122,   123,    -1,   125,   126,     4,    -1,    -1,   130,    -1,
+      -1,    -1,   134,    -1,    -1,    14,    15,    16,    -1,    -1,
+      -1,    -1,    -1,    22,    23,    24,    25,    26,    -1,    28,
+      -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,    38,
+      39,    40,    41,    42,    43,    44,    -1,    46,    47,    48,
+      -1,    -1,    51,    52,    53,    54,    55,    56,    -1,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
+      -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    -1,
+      -1,    80,    -1,    -1,    83,    -1,    -1,    -1,    87,    88,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   103,    -1,   105,   106,    -1,    -1,
+      -1,   110,    -1,   112,    -1,    -1,   115,   116,   117,   118,
+      -1,   120,   121,   122,   123,    -1,   125,   126,     4,    -1,
+      -1,   130,    -1,    -1,    -1,   134,    -1,    -1,    14,    15,
+      16,    -1,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
+      26,    -1,    28,    -1,    -1,    -1,    32,    33,    34,    35,
+      -1,    -1,    38,    39,    40,    41,    42,    43,    44,    -1,
+      46,    47,    48,    -1,    -1,    51,    52,    53,    54,    55,
+      56,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      66,    -1,    68,    -1,    70,    -1,    -1,    -1,    -1,    75,
+      -1,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,    -1,
+      -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,
+     116,   117,   118,    -1,   120,   121,   122,   123,    -1,   125,
+     126,     4,    -1,    -1,   130,    -1,    -1,    -1,   134,    -1,
+      -1,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,    22,
+      23,    24,    25,    26,    -1,    28,    -1,    -1,    -1,    32,
+      33,    34,    35,    -1,    -1,    38,    39,    40,    41,    42,
+      43,    44,    -1,    46,    47,    48,    -1,    -1,    51,    52,
+      53,    54,    55,    56,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
+      -1,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,    -1,
+      83,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     103,    -1,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   115,   116,   117,   118,    -1,   120,   121,   122,
+     123,    -1,   125,   126,     4,    -1,    -1,   130,    -1,    -1,
+      -1,   134,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    24,    25,    26,    -1,    28,    -1,
+      -1,    -1,    32,    33,    34,    35,    -1,    -1,    -1,    39,
+      40,    41,    -1,    -1,    -1,    -1,    46,    47,    -1,    -1,
+      -1,    51,    -1,    53,    54,    55,    56,    -1,    58,    -1,
       60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
       70,    -1,    -1,    -1,    -1,    75,    -1,    77,    -1,    -1,
       80,    -1,    -1,    83,    -1,    -1,    -1,    87,    88,    -1,
-      -1,    -1,    -1,    -1,    -1,   108,   109,   110,   111,   112,
-     100,    -1,    -1,   103,    -1,    -1,    -1,   107,   108,    -1,
-     123,   124,    -1,   113,   114,   115,   129,    -1,    -1,   119,
-     120,   121,    -1,    -1,     1,   125,    -1,    -1,    -1,   129,
-     130,    -1,    -1,   133,    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,    39,    40,    -1,    42,    43,    -1,    45,    -1,
-      47,    -1,    49,    50,    51,    52,    53,    54,    55,    -1,
-      57,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    66,
-      -1,    68,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,
-      77,    -1,    -1,    80,    -1,    -1,    83,    -1,    -1,    -1,
-      87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,
-     107,   108,    -1,    -1,    -1,    -1,   113,   114,   115,    -1,
-      -1,    -1,   119,   120,   121,    -1,    -1,     1,   125,    -1,
-      -1,    -1,   129,   130,    -1,    -1,   133,    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,    39,    40,    -1,    42,    43,
-      -1,    45,    -1,    47,    -1,    49,    50,    51,    52,    53,
-      54,    55,    -1,    57,    -1,    59,    60,    -1,    -1,    -1,
-      -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    -1,
-      -1,    75,    -1,    77,    -1,    -1,    80,    -1,    -1,    83,
-      -1,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,    -1,   103,
-      -1,    -1,    -1,   107,   108,    -1,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,    -1,   119,   120,   121,    -1,    -1,
-       1,   125,    -1,    -1,    -1,   129,   130,    -1,    -1,   133,
-      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,    39,    40,
-      -1,    42,    43,    -1,    45,    -1,    47,    -1,    49,    50,
-      51,    52,    53,    54,    55,    -1,    57,    -1,    59,    60,
-      -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,
-      -1,    -1,    -1,    -1,    75,    -1,    77,    -1,    -1,    80,
-      -1,    -1,    83,    -1,    -1,    -1,    87,    88,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,
-      -1,    -1,   103,    -1,    -1,    -1,   107,   108,    -1,    -1,
-      -1,    -1,   113,   114,   115,    -1,    -1,    -1,   119,   120,
-     121,     0,     1,    -1,   125,    -1,    -1,    -1,   129,   130,
-       9,    10,   133,    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,    41,    -1,    43,    -1,    45,    -1,    -1,    48,
-      49,     1,    51,    -1,    -1,    54,    55,    -1,    -1,    -1,
-      10,    60,    12,    13,    -1,    15,    -1,    -1,    -1,    68,
-      20,    21,    22,    23,    -1,    25,    -1,    -1,    28,    29,
-      30,    31,    -1,    33,    34,    35,    -1,    37,    -1,    -1,
-      -1,    41,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
-      -1,    51,    -1,    -1,    54,    55,    -1,    -1,   107,    -1,
-      60,    -1,   111,   112,   113,   114,    -1,    -1,    68,    -1,
-      -1,   120,   121,    -1,   123,    -1,    -1,    -1,    -1,    -1,
-     129,    -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,   111,   112,   113,   114,    12,    13,    -1,    15,    -1,
-      -1,    -1,    -1,    20,    21,    22,    23,    -1,    25,   129,
-     130,    28,    29,    30,    31,    -1,    33,    34,    35,    -1,
-      37,    -1,    -1,    -1,    41,    -1,    43,    -1,    45,    -1,
-      -1,    48,    49,    -1,    51,    -1,    -1,    54,    55,    -1,
-      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
+     110,    -1,   112,    -1,    -1,     4,    -1,   117,   118,    -1,
+     120,   121,   122,   123,    -1,    14,    15,    16,    -1,    -1,
+     130,    -1,    -1,    -1,   134,    24,    25,    26,    -1,    28,
+      -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,    -1,
+      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    -1,
+      -1,    -1,    51,    -1,    53,    54,    55,    56,    -1,    58,
+      -1,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,
+      -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    -1,
+      -1,    80,    -1,    -1,    83,    -1,    -1,    -1,    87,    88,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    11,
-      12,    13,    -1,    15,   111,   112,   113,   114,    20,    21,
-      22,    23,    -1,    -1,    -1,    27,    -1,    29,    30,    31,
-      32,    -1,   129,   130,    -1,    37,    -1,    39,    40,    -1,
-      42,    43,    -1,    45,    -1,    47,    -1,    49,    50,    51,
-      52,    53,    54,    55,    -1,    57,    -1,    59,    60,    -1,
+      -1,    -1,    -1,    -1,   103,    -1,    -1,   106,    -1,    -1,
+      -1,   110,     4,   112,    -1,    -1,    -1,    -1,   117,   118,
+      -1,   120,    14,    15,    16,   124,    -1,    -1,    -1,    -1,
+      -1,   130,    24,    25,    26,   134,    28,    -1,    -1,    -1,
+      32,    33,    34,    35,    -1,    -1,    -1,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    47,    -1,    -1,    -1,    51,
+      -1,    53,    54,    55,    56,    -1,    58,    -1,    60,    -1,
       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
       -1,    -1,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
       -1,    83,    -1,    -1,    -1,    87,    88,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
-      -1,   103,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
-      -1,   113,   114,   115,    -1,    -1,    -1,   119,    -1,    -1,
-     122,    -1,    -1,   125,    11,    12,    13,   129,    15,    -1,
-      -1,   133,    -1,    20,    21,    22,    23,    -1,    -1,    -1,
-      27,    -1,    29,    30,    31,    32,    -1,    -1,    -1,    -1,
-      37,    -1,    39,    40,    -1,    42,    43,    -1,    45,    -1,
-      47,    -1,    49,    50,    51,    52,    53,    54,    55,    -1,
-      57,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    66,
-      -1,    68,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,
-      77,    -1,    -1,    80,    -1,    -1,    83,    -1,    -1,    -1,
-      87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   100,    -1,    -1,   103,    -1,    -1,    -1,
-     107,   108,    -1,    -1,    -1,    -1,   113,   114,   115,    -1,
-      -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,   125,    -1,
-      12,    13,   129,    15,    -1,    -1,   133,    -1,    20,    21,
-      22,    23,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
-      33,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
-      -1,    43,    -1,    45,    -1,    -1,    -1,    49,    -1,    51,
-      -1,    -1,    54,    55,    -1,    -1,    -1,    -1,    60,    -1,
-      -1,    -1,    -1,    -1,    67,    -1,    68,    -1,    71,    -1,
-      73,    74,    -1,    76,    -1,    78,    -1,    -1,    -1,    -1,
-      -1,    -1,    71,    -1,    73,    74,    89,    76,    -1,    78,
-      -1,    -1,    81,    -1,    -1,    -1,    85,    -1,    -1,    -1,
-      -1,    90,   105,    -1,    -1,    -1,    -1,    -1,   111,    -1,
-     113,   113,   114,   115,    -1,    -1,   105,    -1,    -1,    -1,
-     123,   124,    -1,   126,   127,    -1,    -1,   129,    -1,   132,
-     133,   134,   135,   136,   137,   138,    -1,   126,   141,   142,
-      -1,    -1,   145,    -1,    -1,   134,   135,   136,   137,   138,
-      -1,    -1,   141,   142,    -1,    -1,   145
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,     4,
+     112,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,    14,
+      15,    16,    -1,    -1,    -1,    -1,    -1,    -1,   130,    24,
+      25,    26,   134,    28,    -1,    -1,    -1,    32,    33,    34,
+      35,    -1,    -1,    -1,    39,    40,    41,    -1,    -1,    -1,
+      -1,    46,    47,    -1,    -1,    -1,    51,    -1,    53,    54,
+      55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
+      -1,    66,    -1,    68,    -1,    70,    -1,    -1,    -1,    -1,
+      75,    -1,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,
+      -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
+      -1,   106,    -1,    -1,    -1,     0,     1,    -1,    -1,     4,
+      -1,    -1,   117,   118,    -1,   120,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   130,    -1,    22,    23,   134,
+      25,    26,    -1,    28,    -1,    -1,    -1,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      -1,    46,     1,    48,    -1,     4,    -1,    52,    53,    -1,
+      55,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    68,    23,    -1,    25,    26,    -1,    28,
+      -1,    -1,    -1,    32,    33,    34,    35,    36,    -1,    38,
+      39,    40,    41,    42,    43,    44,    -1,    46,    -1,    48,
+      -1,    -1,    -1,    52,    53,    -1,    55,    -1,    -1,    -1,
+      -1,    60,    -1,    -1,    -1,   110,    -1,    -1,    -1,    68,
+     115,   116,   117,   118,    -1,    -1,   121,   122,   123,    -1,
+     125,    -1,    -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,     1,    -1,    -1,     4,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
+      -1,    -1,   121,   122,   123,    -1,    25,    26,    -1,    28,
+      -1,   130,   131,    32,    33,    34,    35,    36,    -1,    38,
+      39,    40,    41,    42,    43,    44,    -1,    46,    -1,    48,
+       4,    -1,    -1,    52,    53,    -1,    55,    -1,    -1,    -1,
+      -1,    60,    -1,    -1,    -1,    -1,    20,    21,    -1,    68,
+      -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,    -1,    -1,    -1,    39,    40,    41,    -1,    -1,
+      -1,    45,    46,    47,    -1,    49,    -1,    51,    -1,    53,
+      -1,    55,    -1,    57,    58,    59,    60,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    68,    -1,   115,   116,   117,   118,
+      -1,    -1,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,
+      -1,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   105,    -1,    -1,    -1,    -1,    -1,     4,    -1,    -1,
+      -1,    -1,    -1,   117,   118,    -1,    -1,   121,   122,   123,
+      -1,   125,    -1,    20,    21,    -1,   130,   131,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    -1,
+      -1,    -1,    39,    40,    41,    -1,    -1,    -1,    45,    46,
+      47,     4,    49,    -1,    51,    -1,    53,    -1,    55,    -1,
+      57,    58,    59,    60,    -1,    -1,    -1,    20,    21,    -1,
+      -1,    68,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    -1,    -1,    -1,    39,    40,    41,    -1,
+      -1,    -1,    45,    46,    47,    -1,    49,    -1,    51,    -1,
+      53,    -1,    55,    -1,    57,    58,    -1,    60,   105,    -1,
+      -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,
+     117,   118,    -1,    -1,   121,   122,   123,    -1,   125,    -1,
+      -1,    -1,    -1,   130,   131,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,   121,   122,
+     123,    -1,   125,    12,    13,    -1,    -1,   130,   131,    18,
+      -1,    -1,    -1,    22,    23,    -1,    25,    26,    -1,    28,
+      -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,    38,
+      39,    40,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      -1,    -1,    -1,    52,    53,    -1,    55,    -1,    -1,    -1,
+      59,    60,    -1,    -1,    22,    23,    -1,    25,    26,    68,
+      28,    -1,    -1,    -1,    32,    33,    34,    35,    -1,    -1,
+      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    -1,    -1,    -1,    52,    53,    -1,    55,    -1,    -1,
+      -1,    59,    60,    -1,    -1,    -1,   105,    -1,    -1,    -1,
+      68,    -1,    -1,    -1,    -1,    -1,   115,   116,    -1,   118,
+      -1,    -1,   121,   122,   123,    -1,   125,   126,    -1,    87,
+      -1,   130,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,    -1,
+      -1,    -1,   110,    -1,   112,    -1,    -1,   115,   116,    -1,
+     118,    -1,    -1,   121,   122,   123,    -1,   125,   126,    -1,
+      22,    23,   130,    25,    26,    -1,    28,    -1,    -1,    -1,
+      32,    33,    34,    35,    -1,    -1,    38,    39,    40,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    -1,    -1,    -1,
+      52,    53,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    68,    -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,
+      -1,    -1,    -1,   105,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   115,   116,    -1,   118,    -1,    -1,   121,
+     122,   123,    -1,   125,   126,    -1,    -1,    -1,   130
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   149,     0,     1,     9,    10,    12,    13,    15,    20,
-      21,    22,    23,    25,    26,    28,    29,    30,    31,    33,
-      34,    35,    37,    41,    43,    45,    48,    49,    51,    54,
-      55,    60,    68,   107,   111,   112,   113,   114,   120,   121,
-     123,   129,   150,   151,   153,   154,   155,   159,   161,   163,
-     166,   167,   168,   169,   174,   175,   176,   182,   183,   189,
-     191,   192,   193,   194,   200,   276,   278,   129,   129,   107,
-     123,   124,   212,   129,   212,   279,   277,   115,   182,   233,
-     240,   212,   129,   129,   129,    91,   106,   245,   125,   233,
-     234,   235,   236,   212,   171,    92,    93,    94,    96,   185,
-     186,   188,     4,   195,   171,   131,   151,   203,   204,   129,
-       1,    15,   130,   155,   157,   195,   183,    58,   102,   178,
-     180,    97,   160,    97,   162,   131,   190,   152,   201,    48,
-     108,   109,   110,   111,   112,   123,   124,   129,   280,   281,
-     282,   283,   285,   288,   289,   290,   109,   281,   289,   139,
-     140,   231,   232,    11,    27,    32,    39,    40,    42,    47,
-      50,    52,    53,    57,    59,    66,    70,    75,    77,    80,
-      83,    87,    88,   100,   103,   107,   108,   114,   119,   133,
-     170,   172,   177,   182,   202,   209,   210,   214,   215,   216,
-     222,   223,   234,   235,   254,   256,   257,   258,   259,   274,
-      89,    91,   116,   270,   271,   122,   164,   172,   171,   171,
-     144,   172,   231,   232,   236,   190,     1,    69,   151,   172,
-     188,   188,   188,   196,   197,     4,   130,    15,    71,    73,
-      74,    76,    78,    81,    85,    89,    90,    91,   105,   116,
-     118,   123,   124,   126,   134,   135,   136,   137,   138,   141,
-     142,   145,   151,   156,   157,   159,   161,   163,   166,   172,
-     178,   211,   225,   226,   227,   228,   239,   247,   266,   267,
-     268,   269,   276,   278,   151,   131,   117,   129,   102,   179,
-     183,     1,   130,   153,   161,   163,   165,   166,   182,   276,
-     278,     1,   130,   153,   163,   165,   182,   276,   278,   212,
-     180,   130,   155,   172,   291,    92,    94,    95,    96,   286,
-      92,   286,   287,   284,   283,   288,   290,   139,   140,   123,
-      16,   115,    16,    89,   107,   151,   211,   213,   269,   278,
-     209,   208,   212,   104,   241,   243,   244,   270,   208,   208,
-     241,    89,    91,   213,   243,   208,   245,   217,   253,   275,
-     242,   244,   242,   242,   242,   242,   242,   272,   242,   224,
-     242,   172,     1,   130,   153,   166,   130,   130,    91,   172,
-     180,   212,   278,   172,   151,   184,   212,   183,   114,   198,
-     199,   116,   116,   126,   268,   270,   127,    67,    89,   113,
-     126,   127,   132,   133,   141,   142,   211,   219,   221,   228,
-     229,   237,   238,   278,   126,   127,   143,   144,   156,   101,
-     158,   129,   172,   129,   287,   287,   287,   287,   130,   281,
-     289,   290,   292,   131,   120,   204,   132,   246,   143,   246,
-     151,   131,   243,   131,    67,   103,   218,   219,   220,   235,
-      82,    84,    89,    91,   123,   134,   248,   250,   252,   278,
-     280,   224,   224,   224,    61,    62,    63,    65,   261,   146,
-     273,   126,   225,     8,   173,   172,   183,   114,   211,    92,
-      93,    94,    96,   187,   267,   267,   268,   268,     6,     7,
-      14,    17,    18,    19,    24,    36,    40,    44,    47,    56,
-      57,   123,   130,   178,   205,   206,   207,   181,   164,   151,
-     281,   289,   292,   290,   123,   131,   212,   132,   106,   270,
-     213,   131,   265,   270,   224,    93,   187,   272,   250,    70,
-      74,    79,   126,   127,   135,   144,   146,   249,   251,   234,
-     234,   260,   131,   147,   230,   129,   187,   187,   187,   151,
-     212,   212,   212,   131,   123,   151,   102,   130,   207,   130,
-     213,   265,   136,   187,   273,    99,   261,   262,   263,   264,
-     270,   231,   232,   242,   171,   212,   278,   225,   184,   204,
-     151,   213,   270,   218,   230,   132,    64,   127,    46,   255,
-     130,   131,   224,   264,   213
+       0,    99,   148,   150,   149,     0,     1,     4,    22,    23,
+      25,    26,    28,    32,    33,    34,    35,    37,    38,    39,
+      40,    41,    42,    43,    44,    46,    48,    52,    53,    55,
+      60,    68,   110,   115,   116,   117,   118,   121,   122,   123,
+     125,   130,   151,   152,   153,   155,   157,   161,   162,   168,
+     171,   174,   178,   179,   180,   183,   187,   192,   193,   194,
+     200,   202,   203,   223,   225,   226,   227,   228,   229,   233,
+     314,   316,     1,    10,    12,    13,    14,    15,    16,    18,
+      24,    28,    37,    47,    51,    54,    56,    58,    59,    66,
+      70,    71,    73,    74,    75,    76,    77,    78,    80,    81,
+      83,    85,    87,    88,    89,   103,   105,   106,   107,   108,
+     109,   110,   112,   120,   125,   126,   127,   134,   135,   136,
+     137,   138,   139,   140,   141,   155,   158,   163,   164,   168,
+     171,   174,   178,   185,   188,   189,   190,   191,   195,   196,
+     200,   235,   242,   243,   244,   248,   249,   250,   255,   256,
+     257,   259,   261,   262,   263,   268,   269,   270,   275,   282,
+     289,   291,   292,   293,   295,   296,   303,   304,   305,   306,
+     307,   312,   314,   316,   110,   125,   126,   245,   130,   130,
+     245,   245,   317,   315,   130,   187,   187,   245,   186,    91,
+      92,    93,    97,    98,   205,   207,   211,   212,   213,   214,
+     222,   211,   186,    36,   160,   121,   132,   153,   219,   221,
+     236,   237,   130,     1,   131,   162,   184,     7,   230,   188,
+     195,   200,   295,   203,   196,   198,    13,   308,    18,    18,
+     142,   143,   266,   267,   266,   267,   125,   130,   158,   241,
+     245,   241,   241,    11,    13,   109,   121,   125,   126,   153,
+     154,   156,   157,   164,   168,   171,   174,   178,   190,   196,
+     201,   202,   220,   221,   226,   246,   247,   279,   293,   306,
+     308,   314,   316,   241,   105,   197,   219,   251,   288,   313,
+     277,   278,   279,   280,   278,   278,    93,    97,   205,   206,
+     215,   216,   222,   278,   127,   305,    13,   273,   273,   155,
+     189,   128,   278,   278,   310,    67,   117,   127,   128,   133,
+     134,   135,   136,   245,   254,   263,   264,   272,   274,   316,
+     278,   258,   258,   278,   127,   128,    17,   144,    13,    18,
+     309,   100,   169,   100,   172,   132,   224,   234,    52,   112,
+     113,   114,   115,   116,   125,   126,   130,   153,   318,   319,
+     321,   322,   323,   325,   328,   329,   330,   113,   319,   321,
+     329,   124,   175,   188,   224,     1,    69,   189,    97,   208,
+     210,   212,   217,    97,   209,   210,   216,   218,    93,    97,
+     210,   217,   218,   222,    91,    92,    93,    95,    95,   131,
+     130,   215,   155,   163,   195,   200,   295,   219,   132,   119,
+      28,   181,   190,   231,     7,   203,   142,   143,   132,   104,
+     167,   237,   133,   155,   132,   281,    97,   205,   201,   279,
+     132,   281,   130,    67,   106,   118,   223,   252,   253,   270,
+      13,    82,    84,   125,   137,   283,   285,   287,   316,   318,
+     258,   144,   258,   217,   218,    93,   186,   244,   258,    61,
+      62,    63,    65,   298,   145,   311,   215,   127,   259,   260,
+     258,   304,   304,   305,   305,   188,     1,   131,   155,   170,
+     171,   174,   177,   178,   200,   314,   316,     1,   131,   155,
+     173,   174,   177,   200,   314,   316,   245,   198,   188,   331,
+      90,    93,    96,    98,   326,    90,   326,   327,   324,   320,
+     115,   116,   319,   323,   328,   330,     1,   131,   176,   178,
+     198,    91,    92,    93,    94,    95,   269,   270,   271,    91,
+      92,    94,   276,   280,   217,   218,    91,    92,    94,   154,
+     156,   293,   109,   127,   259,   306,    97,   204,   211,   212,
+      97,   204,   212,   215,    97,   204,   211,   215,   111,   293,
+     294,   306,   159,   163,   182,   200,   232,   125,    20,    21,
+      27,    29,    30,    31,    45,    47,    49,    51,    57,    58,
+     125,   131,   155,   165,   166,   196,   200,   238,   239,   240,
+     132,   245,   109,   246,   293,   306,   133,    93,   132,   302,
+     308,   199,   258,   310,   285,    17,    70,    74,    79,   127,
+     128,   138,   145,   284,   286,   109,   308,   154,   202,   220,
+     226,   293,   109,   127,   259,   306,   211,   215,   269,   269,
+     297,   132,   146,   265,   273,     5,   160,   160,   130,   327,
+     327,   327,   327,   131,   321,   329,   330,   332,    94,   160,
+      97,   208,   212,   217,   209,   210,   217,    97,   208,   209,
+     210,   220,   306,    97,   208,   210,   218,   209,   218,   293,
+     109,   127,   259,   306,    97,    12,    13,    18,    91,    92,
+      93,     8,   271,    93,     8,   276,    93,     8,   156,   109,
+     127,   259,   306,   278,   260,   280,   131,   162,   130,   200,
+     245,   245,   245,   132,   125,   155,   246,   211,   215,   302,
+     139,   105,   131,   166,   240,   311,    12,    13,    18,   220,
+      12,    13,   307,   102,   298,   299,   300,   301,   308,   266,
+     267,   277,   187,   175,   219,   321,   329,   332,   330,    91,
+      92,    93,   271,   276,    91,    92,   220,   293,    12,    13,
+      18,   109,   127,   259,    94,    91,    92,    12,    13,    18,
+      91,    92,   204,   204,   204,    12,    13,    18,   258,   258,
+     258,   167,   237,   155,   246,   307,   308,   265,   133,    64,
+     128,    50,   290,   131,   210,   210,    12,    13,    18,   131,
+     132,   258,   301,   246
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1835,7 +2614,7 @@ do                                                                \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror (YY_("syntax error: cannot back up")); \
+      yyerror (&yylloc, parser, YY_("syntax error: cannot back up")); \
       YYERROR;                                                 \
     }                                                          \
 while (YYID (0))
@@ -1892,7 +2671,7 @@ while (YYID (0))
 #ifdef YYLEX_PARAM
 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
 #else
-# define YYLEX yylex (&yylval, &yylloc)
+# define YYLEX yylex (&yylval, &yylloc, parser)
 #endif
 
 /* Enable debugging if requested.  */
@@ -1915,7 +2694,7 @@ do {                                                                        \
     {                                                                    \
       YYFPRINTF (stderr, "%s ", Title);                                          \
       yy_symbol_print (stderr,                                           \
-                 Type, Value, Location); \
+                 Type, Value, Location, parser); \
       YYFPRINTF (stderr, "\n");                                                  \
     }                                                                    \
 } while (YYID (0))
@@ -1929,19 +2708,21 @@ do {                                                                      \
 #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)
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, Lily_parser *parser)
 #else
 static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
+yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
     FILE *yyoutput;
     int yytype;
     YYSTYPE const * const yyvaluep;
     YYLTYPE const * const yylocationp;
+    Lily_parser *parser;
 #endif
 {
   if (!yyvaluep)
     return;
   YYUSE (yylocationp);
+  YYUSE (parser);
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
@@ -1963,14 +2744,15 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
 #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)
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, Lily_parser *parser)
 #else
 static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
+yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parser)
     FILE *yyoutput;
     int yytype;
     YYSTYPE const * const yyvaluep;
     YYLTYPE const * const yylocationp;
+    Lily_parser *parser;
 #endif
 {
   if (yytype < YYNTOKENS)
@@ -1980,7 +2762,7 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
 
   YY_LOCATION_PRINT (yyoutput, *yylocationp);
   YYFPRINTF (yyoutput, ": ");
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser);
   YYFPRINTF (yyoutput, ")");
 }
 
@@ -2020,13 +2802,14 @@ do {                                                            \
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, Lily_parser *parser)
 #else
 static void
-yy_reduce_print (yyvsp, yylsp, yyrule)
+yy_reduce_print (yyvsp, yylsp, yyrule, parser)
     YYSTYPE *yyvsp;
     YYLTYPE *yylsp;
     int yyrule;
+    Lily_parser *parser;
 #endif
 {
   int yynrhs = yyr2[yyrule];
@@ -2040,7 +2823,7 @@ yy_reduce_print (yyvsp, yylsp, yyrule)
       fprintf (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                      , &(yylsp[(yyi + 1) - (yynrhs)])                );
+                      , &(yylsp[(yyi + 1) - (yynrhs)])                , parser);
       fprintf (stderr, "\n");
     }
 }
@@ -2048,7 +2831,7 @@ yy_reduce_print (yyvsp, yylsp, yyrule)
 # define YY_REDUCE_PRINT(Rule)         \
 do {                                   \
   if (yydebug)                         \
-    yy_reduce_print (yyvsp, yylsp, Rule); \
+    yy_reduce_print (yyvsp, yylsp, Rule, parser); \
 } while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
@@ -2299,18 +3082,20 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, Lily_parser *parser)
 #else
 static void
-yydestruct (yymsg, yytype, yyvaluep, yylocationp)
+yydestruct (yymsg, yytype, yyvaluep, yylocationp, parser)
     const char *yymsg;
     int yytype;
     YYSTYPE *yyvaluep;
     YYLTYPE *yylocationp;
+    Lily_parser *parser;
 #endif
 {
   YYUSE (yyvaluep);
   YYUSE (yylocationp);
+  YYUSE (parser);
 
   if (!yymsg)
     yymsg = "Deleting";
@@ -2335,7 +3120,7 @@ int yyparse ();
 #endif
 #else /* ! YYPARSE_PARAM */
 #if defined __STDC__ || defined __cplusplus
-int yyparse (void);
+int yyparse (Lily_parser *parser);
 #else
 int yyparse ();
 #endif
@@ -2364,11 +3149,11 @@ yyparse (YYPARSE_PARAM)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 int
-yyparse (void)
+yyparse (Lily_parser *parser)
 #else
 int
-yyparse ()
-
+yyparse (parser)
+    Lily_parser *parser;
 #endif
 #endif
 {
@@ -2639,96 +3424,124 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 457 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 565 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
+               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
+               parser->lexer_->push_note_state (nn);
        ;}
     break;
 
   case 4:
-#line 459 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 568 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-       ;}
+               parser->lexer_->pop_state ();
+               parser->lexer_->set_identifier (ly_symbol2scm ("parseStringResult"), (yyvsp[(3) - (3)].scm));
+       ;}
     break;
 
   case 5:
-#line 461 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->error_level_ = 1;
-       ;}
+#line 574 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { ;}
     break;
 
   case 6:
-#line 464 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 575 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->error_level_ = 1;
        ;}
     break;
 
   case 7:
-#line 471 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$defaultheader"), (yyvsp[(1) - (1)].scm));
        ;}
     break;
 
   case 8:
-#line 474 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 579 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->error_level_ = 1;
+       ;}
+    break;
+
+  case 9:
+#line 582 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->error_level_ = 1;
+       ;}
+    break;
+
+  case 10:
+#line 589 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->lexer_->add_scope (get_header (parser));
+       ;}
+    break;
+
+  case 11:
+#line 591 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->lexer_->set_identifier (ly_symbol2scm ("$defaultheader"), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 12:
+#line 594 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               SCM proc = parser->lexer_->lookup_identifier ("toplevel-book-handler");
+               scm_call_2 (proc, parser->self_scm (), book->self_scm ());
                book->unprotect ();
        ;}
     break;
 
-  case 9:
-#line 480 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 13:
+#line 600 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               SCM proc = parser->lexer_->lookup_identifier ("toplevel-bookpart-handler");
+               scm_call_2 (proc, parser->self_scm (), bookpart->self_scm ());
                bookpart->unprotect ();
        ;}
     break;
 
-  case 10:
-#line 486 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 14:
+#line 606 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               SCM proc = parser->lexer_->lookup_identifier ("toplevel-score-handler");
+               scm_call_2 (proc, parser->self_scm (), score->self_scm ());
                score->unprotect ();
        ;}
     break;
 
-  case 11:
-#line 493 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 15:
+#line 613 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               SCM proc = parser->lexer_->lookup_identifier ("toplevel-music-handler");
+               scm_call_2 (proc, parser->self_scm (), music->self_scm ());
        ;}
     break;
 
-  case 12:
-#line 498 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 16:
+#line 618 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)));
+               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 13:
-#line 502 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 17:
+#line 622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM proc = PARSER->lexer_->lookup_identifier ("toplevel-text-handler");
-               scm_call_2 (proc, PARSER->self_scm (), (yyvsp[(1) - (1)].scm));
+               SCM proc = parser->lexer_->lookup_identifier ("toplevel-text-handler");
+               scm_call_2 (proc, parser->self_scm (), (yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 14:
-#line 506 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 18:
+#line 626 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                SCM id = SCM_EOL;
                Output_def * od = (yyvsp[(1) - (1)].outputdef);
@@ -2740,55 +3553,127 @@ yyreduce:
                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 ());
+               parser->lexer_->set_identifier (id, od->self_scm ());
                od->unprotect();
        ;}
     break;
 
-  case 17:
-#line 529 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 19:
+#line 644 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = get_header (PARSER);
-               PARSER->lexer_->add_scope ((yyval.scm));
+               (yyval.scm) = parser->lexer_->eval_scm_token ((yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 18:
-#line 533 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 27:
+#line 658 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
+               (yyval.scm) = (yyvsp[(1) - (1)].score)->self_scm ();
+               (yyvsp[(1) - (1)].score)->unprotect ();
+       ;}
+    break;
+
+  case 29:
+#line 664 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
+               (yyvsp[(1) - (1)].book)->unprotect ();
+       ;}
+    break;
 
+  case 30:
+#line 669 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
+               (yyvsp[(1) - (1)].book)->unprotect ();
        ;}
     break;
 
-  case 19:
-#line 539 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 31:
+#line 674 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].outputdef)->self_scm ();
+               (yyvsp[(1) - (1)].outputdef)->unprotect ();
+       ;}
+    break;
+
+  case 37:
+#line 694 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("music-function", (yyloc),
+                                        (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 38:
+#line 702 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("void-music", (yyloc));
+       ;}
+    break;
+
+  case 40:
+#line 706 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyvsp[(3) - (3)].scm) = scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL);
+               if (unsmob_music ((yyvsp[(2) - (3)].scm)))
+                       (yyvsp[(3) - (3)].scm) = scm_cons ((yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
+               if (unsmob_music ((yyvsp[(1) - (3)].scm)))
+                       (yyvsp[(3) - (3)].scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 41:
+#line 714 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->error_level_ = 1;
+       ;}
+    break;
+
+  case 42:
+#line 717 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->error_level_ = 1;
+       ;}
+    break;
+
+  case 44:
+#line 725 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+
+       ;}
+    break;
+
+  case 45:
+#line 731 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = PARSER->lexer_->remove_scope ();
+               (yyval.scm) = parser->lexer_->remove_scope ();
        ;}
     break;
 
-  case 20:
-#line 548 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 46:
+#line 740 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 21:
-#line 549 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 47:
+#line 741 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 22:
-#line 553 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 48:
+#line 745 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->set_identifier ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+               parser->lexer_->set_identifier ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 23:
-#line 556 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 49:
+#line 748 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                SCM path = scm_cons (scm_string_to_symbol ((yyvsp[(1) - (4)].scm)), (yyvsp[(2) - (4)].scm));
-               PARSER->lexer_->set_identifier (path, (yyvsp[(4) - (4)].scm));
+               parser->lexer_->set_identifier (path, (yyvsp[(4) - (4)].scm));
        ;
 /*
  TODO: devise standard for protection in parser.
@@ -2800,169 +3685,171 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 24:
-#line 568 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 50:
+#line 760 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { ;}
     break;
 
-  case 25:
-#line 573 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 51:
+#line 765 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].score)->self_scm ();
                (yyvsp[(1) - (1)].score)->unprotect ();
        ;}
     break;
 
-  case 26:
-#line 577 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 52:
+#line 769 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
                (yyvsp[(1) - (1)].book)->unprotect ();
        ;}
     break;
 
-  case 27:
-#line 581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 53:
+#line 773 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].book)->self_scm ();
                (yyvsp[(1) - (1)].book)->unprotect ();
        ;}
     break;
 
-  case 28:
-#line 585 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 54:
+#line 777 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].outputdef)->self_scm ();
                (yyvsp[(1) - (1)].outputdef)->unprotect ();
        ;}
     break;
 
-  case 29:
-#line 589 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 55:
+#line 781 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 30:
-#line 592 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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)));
+  case 56:
+#line 784 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 31:
-#line 604 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 57:
+#line 787 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 32:
-#line 607 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 58:
+#line 790 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 33:
-#line 610 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 59:
+#line 793 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 34:
-#line 613 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 60:
+#line 796 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 35:
-#line 616 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 61:
+#line 799 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 36:
-#line 619 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 62:
+#line 802 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 37:
-#line 622 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 63:
+#line 805 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 38:
-#line 625 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 64:
+#line 808 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                 (yyval.scm) = (yyvsp[(1) - (1)].scm);
         ;}
     break;
 
-  case 39:
-#line 632 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 65:
+#line 815 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(3) - (4)].scm);
        ;}
     break;
 
-  case 40:
-#line 638 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 68:
+#line 827 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (unsmob_music ((yyvsp[(1) - (1)].scm))) {
+                       SCM proc = parser->lexer_->lookup_identifier ("context-mod-music-handler");
+                       (yyvsp[(1) - (1)].scm) = scm_call_2 (proc, parser->self_scm (), (yyvsp[(1) - (1)].scm));
+               }
+               if (unsmob_context_mod ((yyvsp[(1) - (1)].scm)))
+                       (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               else {
+                       parser->parser_error ((yylsp[(1) - (1)]), _ ("not a context mod"));
+               }
+       ;}
+    break;
+
+  case 69:
+#line 842 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = Context_def::make_scm ();
                unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
        ;}
     break;
 
-  case 41:
-#line 642 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 70:
+#line 846 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
                unsmob_context_def ((yyval.scm))->origin ()->set_spot ((yyloc));
        ;}
     break;
 
-  case 42:
-#line 646 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 71:
+#line 850 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)));
-               }
+               unsmob_context_def ((yyval.scm))->add_context_mod ((yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 43:
-#line 657 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 72:
+#line 853 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               unsmob_context_def ((yyval.scm))->add_context_mod ((yyvsp[(2) - (2)].scm));
+                Context_def *td = unsmob_context_def ((yyval.scm));
+                SCM new_mods = unsmob_context_mod ((yyvsp[(2) - (2)].scm))->get_mods ();
+                for (SCM m = new_mods; scm_is_pair (m); m = scm_cdr (m)) {
+                    td->add_context_mod (scm_car (m));
+                }
        ;}
     break;
 
-  case 44:
-#line 660 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 73:
+#line 860 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                 Context_def *td = unsmob_context_def ((yyval.scm));
                 SCM new_mods = unsmob_context_mod ((yyvsp[(2) - (2)].scm))->get_mods ();
@@ -2972,104 +3859,107 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 45:
-#line 672 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 74:
+#line 872 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = (yyvsp[(3) - (4)].book);
-               pop_paper (PARSER);
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-book"), SCM_BOOL_F);
+               pop_paper (parser);
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), SCM_BOOL_F);
        ;}
     break;
 
-  case 46:
-#line 683 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 75:
+#line 883 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = new Book;
-               init_papers (PARSER);
+               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_ = 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");
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-book"), (yyval.book)->self_scm ());
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("book-output-suffix"), SCM_BOOL_F);
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("book-filename"), SCM_BOOL_F);
+               push_paper (parser, (yyval.book)->paper_);
+               (yyval.book)->header_ = get_header (parser);
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), (yyval.book)->self_scm ());
        ;}
     break;
 
-  case 47:
-#line 695 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 76:
+#line 893 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
                (yyval.book)->protect ();
                (yyval.book)->origin ()->set_spot ((yyloc));
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-book"), (yyvsp[(1) - (1)].scm));
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), (yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 48:
-#line 701 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 77:
+#line 899 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
                (yyvsp[(2) - (2)].outputdef)->unprotect ();
-               set_paper (PARSER, (yyvsp[(2) - (2)].outputdef));
+               set_paper (parser, (yyvsp[(2) - (2)].outputdef));
        ;}
     break;
 
-  case 49:
-#line 706 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 78:
+#line 904 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Book *bookpart = (yyvsp[(2) - (2)].book);
-               SCM proc = PARSER->lexer_->lookup_identifier ("book-bookpart-handler");
+               SCM proc = parser->lexer_->lookup_identifier ("book-bookpart-handler");
                scm_call_2 (proc, (yyval.book)->self_scm (), bookpart->self_scm ());
                bookpart->unprotect ();
        ;}
     break;
 
-  case 50:
-#line 712 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 79:
+#line 910 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Score *score = (yyvsp[(2) - (2)].score);
-               SCM proc = PARSER->lexer_->lookup_identifier ("book-score-handler");
+               SCM proc = parser->lexer_->lookup_identifier ("book-score-handler");
                scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
                score->unprotect ();
        ;}
     break;
 
-  case 51:
-#line 718 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 80:
+#line 916 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               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 52:
-#line 723 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 81:
+#line 921 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
+               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 53:
-#line 727 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 82:
+#line 925 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM proc = PARSER->lexer_->lookup_identifier ("book-text-handler");
+               SCM proc = parser->lexer_->lookup_identifier ("book-text-handler");
                scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 54:
-#line 731 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 83:
+#line 930 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
+               parser->lexer_->add_scope ((yyvsp[(1) - (1)].book)->header_);
        ;}
     break;
 
-  case 55:
-#line 734 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 85:
+#line 933 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { ;}
+    break;
+
+  case 86:
+#line 934 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book)->paper_ = 0;
                (yyval.book)->scores_ = SCM_EOL;
@@ -3077,104 +3967,111 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 56:
-#line 742 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 87:
+#line 942 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = (yyvsp[(3) - (4)].book);
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), SCM_BOOL_F);
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), SCM_BOOL_F);
        ;}
     break;
 
-  case 57:
-#line 749 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 88:
+#line 949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = new Book;
                (yyval.book)->origin ()->set_spot ((yyloc));
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), (yyval.book)->self_scm ());
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), (yyval.book)->self_scm ());
        ;}
     break;
 
-  case 58:
-#line 754 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 89:
+#line 954 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book) = unsmob_book ((yyvsp[(1) - (1)].scm));
                (yyval.book)->protect ();
                (yyval.book)->origin ()->set_spot ((yyloc));
-               PARSER->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), (yyvsp[(1) - (1)].scm));
+               parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), (yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 59:
-#line 760 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 90:
+#line 960 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book)->paper_ = (yyvsp[(2) - (2)].outputdef);
                (yyvsp[(2) - (2)].outputdef)->unprotect ();
        ;}
     break;
 
-  case 60:
-#line 764 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 91:
+#line 964 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Score *score = (yyvsp[(2) - (2)].score);
-               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-score-handler");
+               SCM proc = parser->lexer_->lookup_identifier ("bookpart-score-handler");
                scm_call_2 (proc, (yyval.book)->self_scm (), score->self_scm ());
                score->unprotect ();
        ;}
     break;
 
-  case 61:
-#line 770 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 92:
+#line 970 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               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 62:
-#line 775 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 93:
+#line 975 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
+               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 63:
-#line 779 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 94:
+#line 979 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM proc = PARSER->lexer_->lookup_identifier ("bookpart-text-handler");
+               SCM proc = parser->lexer_->lookup_identifier ("bookpart-text-handler");
                scm_call_2 (proc, (yyval.book)->self_scm (), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 64:
-#line 783 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 95:
+#line 984 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.book)->header_ = (yyvsp[(2) - (2)].scm);
+               if (!ly_is_module ((yyvsp[(1) - (1)].book)->header_))
+                       (yyvsp[(1) - (1)].book)->header_ = ly_make_module (false);
+               parser->lexer_->add_scope ((yyvsp[(1) - (1)].book)->header_);
        ;}
     break;
 
-  case 65:
-#line 786 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 97:
+#line 989 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { ;}
+    break;
+
+  case 98:
+#line 990 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.book)->paper_ = 0;
                (yyval.book)->scores_ = SCM_EOL;
        ;}
     break;
 
-  case 66:
-#line 793 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 99:
+#line 997 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.score) = (yyvsp[(3) - (4)].score);
        ;}
     break;
 
-  case 67:
-#line 799 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 100:
+#line 1003 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ());
+               SCM score = scm_call_2 (scorify, m, parser->self_scm ());
 
                // pass ownernship to C++ again.
                (yyval.score) = unsmob_score (score);
@@ -3183,8 +4080,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 68:
-#line 809 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 101:
+#line 1013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.score) = unsmob_score ((yyvsp[(1) - (1)].scm));
                (yyval.score)->protect ();
@@ -3192,19 +4089,21 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 69:
-#line 814 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 102:
+#line 1019 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.score)->set_header ((yyvsp[(2) - (2)].scm));
+               if (!ly_is_module ((yyvsp[(1) - (1)].score)->get_header ()))
+                       (yyvsp[(1) - (1)].score)->set_header (ly_make_module (false));
+               parser->lexer_->add_scope ((yyvsp[(1) - (1)].score)->get_header ());
        ;}
     break;
 
-  case 70:
-#line 817 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 104:
+#line 1024 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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"));
+                       parser->parser_error ((yylsp[(2) - (2)]), _("\\paper cannot be used in \\score, use \\layout instead"));
 
                }
                else
@@ -3215,82 +4114,103 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 71:
-#line 829 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 105:
+#line 1036 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.score)->error_found_ = true;
        ;}
     break;
 
-  case 72:
-#line 840 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 106:
+#line 1047 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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"));
+                       parser->parser_error ((yylsp[(1) - (1)]), _ ("need \\paper for paper block"));
                        (yyvsp[(1) - (1)].outputdef)->unprotect ();
-                       (yyval.outputdef) = get_paper (PARSER);
+                       (yyval.outputdef) = get_paper (parser);
                }
        ;}
     break;
 
-  case 73:
-#line 853 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 107:
+#line 1060 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
 
-               PARSER->lexer_->remove_scope ();
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->remove_scope ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 74:
-#line 862 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 108:
+#line 1069 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.outputdef) = get_paper (PARSER);
+               (yyval.outputdef) = get_paper (parser);
                (yyval.outputdef)->input_origin_ = (yyloc);
-               PARSER->lexer_->add_scope ((yyval.outputdef)->scope_);
+               parser->lexer_->add_scope ((yyval.outputdef)->scope_);
        ;}
     break;
 
-  case 75:
-#line 867 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 109:
+#line 1074 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               Output_def *p = get_midi (PARSER);
+               Output_def *p = get_midi (parser);
                (yyval.outputdef) = p;
-               PARSER->lexer_->add_scope (p->scope_);
+               parser->lexer_->add_scope (p->scope_);
        ;}
     break;
 
-  case 76:
-#line 872 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 110:
+#line 1079 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               Output_def *p = get_layout (PARSER);
+               Output_def *p = get_layout (parser);
 
-               PARSER->lexer_->add_scope (p->scope_);
+               parser->lexer_->add_scope (p->scope_);
                (yyval.outputdef) = p;
        ;}
     break;
 
-  case 77:
-#line 881 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 111:
+#line 1088 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->push_initial_state ();
+               parser->lexer_->push_initial_state ();
                (yyval.outputdef) = (yyvsp[(1) - (1)].outputdef);
        ;}
     break;
 
-  case 78:
-#line 888 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 112:
+#line 1101 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 113:
+#line 1105 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               parser->lexer_->pop_state ();
+       ;}
+    break;
+
+  case 114:
+#line 1108 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(4) - (5)].scm);
+       ;}
+    break;
+
+  case 115:
+#line 1114 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.outputdef) = (yyvsp[(1) - (2)].outputdef);
                (yyval.outputdef)->input_origin_.set_spot ((yyloc));
        ;}
     break;
 
-  case 79:
-#line 892 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 116:
+#line 1118 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyvsp[(1) - (3)].outputdef)->unprotect ();
 
@@ -3298,369 +4218,907 @@ all objects can be unprotected as soon as they're here.
                o->input_origin_.set_spot ((yyloc));
                (yyval.outputdef) = o;
                (yyval.outputdef)->protect ();
-               PARSER->lexer_->remove_scope ();
-               PARSER->lexer_->add_scope (o->scope_);
+               parser->lexer_->remove_scope ();
+               parser->lexer_->add_scope (o->scope_);
        ;}
     break;
 
-  case 80:
-#line 902 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 117:
+#line 1128 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
 
        ;}
     break;
 
-  case 81:
-#line 905 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 118:
+#line 1132 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               assign_context_def ((yyval.outputdef), (yyvsp[(2) - (2)].scm));
+               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
+               parser->lexer_->push_note_state (nn);
        ;}
     break;
 
-  case 82:
-#line 908 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 119:
+#line 1136 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
+               if (unsmob_context_def ((yyvsp[(3) - (3)].scm)))
+                       assign_context_def ((yyval.outputdef), (yyvsp[(3) - (3)].scm));
+               else {
 
+                       SCM proc = parser->lexer_->lookup_identifier
+                                    ("output-def-music-handler");
+                       scm_call_3 (proc, parser->self_scm (),
+                                   (yyvsp[(1) - (3)].outputdef)->self_scm (), (yyvsp[(3) - (3)].scm));
+               }
        ;}
     break;
 
-  case 83:
-#line 914 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 120:
+#line 1147 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+
+       ;}
+    break;
+
+  case 121:
+#line 1153 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), SCM_EOL, (yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm));
        ;}
     break;
 
-  case 84:
-#line 917 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 122:
+#line 1156 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm));
        ;}
     break;
 
-  case 85:
-#line 920 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 123:
+#line 1159 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MAKE_SYNTAX ("tempo", (yyloc), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 86:
-#line 933 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 124:
+#line 1168 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons (SCM_EOL, SCM_EOL);
+               (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 87:
-#line 936 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 125:
+#line 1171 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM s = (yyval.scm);
-               SCM c = scm_cons ((yyvsp[(2) - (2)].scm), SCM_EOL);
+               if (unsmob_music ((yyvsp[(2) - (2)].scm)))
+                       (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+       ;}
+    break;
 
-               if (scm_is_pair (scm_cdr (s)))
-                       scm_set_cdr_x (scm_cdr (s), c); /* append */
+  case 126:
+#line 1175 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               Music *m = MY_MAKE_MUSIC("Music", (yyloc));
+               // ugh. code dup
+               m->set_property ("error-found", SCM_BOOL_T);
+               (yyval.scm) = scm_cons (m->self_scm (), (yyvsp[(1) - (2)].scm));
+               m->unprotect (); /* UGH */
+       ;}
+    break;
+
+  case 127:
+#line 1186 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
+       ;}
+    break;
+
+  case 131:
+#line 1198 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (unsmob_music ((yyvsp[(1) - (1)].scm))
+                   || scm_is_eq ((yyvsp[(1) - (1)].scm), SCM_UNSPECIFIED))
+                       (yyval.scm) = (yyvsp[(1) - (1)].scm);
                else
-                       scm_set_car_x (s, c); /* set first cons */
-               scm_set_cdr_x (s, c);  /* remember last cell */
+               {
+                       (yyloc).warning (_ ("Ignoring non-music expression"));
+                       (yyval.scm) = SCM_UNSPECIFIED;
+               }
        ;}
     break;
 
-  case 88:
-#line 946 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 132:
+#line 1212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (unsmob_pitch ((yyvsp[(1) - (1)].scm))) {
+                       Music *n = MY_MAKE_MUSIC ("NoteEvent", (yylsp[(1) - (1)]));
+                       n->set_property ("pitch", (yyvsp[(1) - (1)].scm));
+                       n->set_property ("duration",
+                                        parser->default_duration_.smobbed_copy ());
+                       (yyval.scm) = n->unprotect ();
+               }
+       ;}
+    break;
+
+  case 137:
+#line 1232 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
+               (yyval.scm) = MAKE_SYNTAX ("repeat", (yyloc), (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(4) - (4)].scm), SCM_EOL);
+       ;}
+    break;
 
+  case 138:
+#line 1236 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("repeat", (yyloc), (yyvsp[(2) - (6)].scm), (yyvsp[(3) - (6)].scm), (yyvsp[(4) - (6)].scm), (yyvsp[(6) - (6)].scm));
        ;}
     break;
 
-  case 89:
-#line 949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 139:
+#line 1242 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 */
+               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
 
-               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 */
+  case 140:
+#line 1245 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), (yyvsp[(1) - (1)].scm));
+       ;}
+    break;
+
+  case 141:
+#line 1251 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 142:
+#line 1254 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL));
+       ;}
+    break;
+
+  case 146:
+#line 1266 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_initial_state (); ;}
+    break;
+
+  case 147:
+#line 1267 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+                parser->lexer_->pop_state ();
+                (yyval.scm) = (yyvsp[(4) - (5)].scm);
+        ;}
+    break;
+
+  case 148:
+#line 1272 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+                (yyval.scm) = (yyvsp[(2) - (2)].scm);
+        ;}
+    break;
+
+  case 149:
+#line 1276 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+                (yyval.scm) = (yyvsp[(1) - (1)].scm);
+        ;}
+    break;
+
+  case 150:
+#line 1280 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (unsmob_context_mod ((yyvsp[(2) - (2)].scm)))
+                       (yyval.scm) = (yyvsp[(2) - (2)].scm);
+               else {
+                       parser->parser_error ((yylsp[(2) - (2)]), _ ("not a context mod"));
+                       (yyval.scm) = Context_mod ().smobbed_copy ();
+               }
+       ;}
+    break;
+
+  case 151:
+#line 1291 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+            (yyval.scm) = SCM_EOL;
+        ;}
+    break;
+
+  case 152:
+#line 1295 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+              (yyval.scm) = (yyvsp[(1) - (1)].scm);
+        ;}
+    break;
+
+  case 153:
+#line 1301 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+            (yyval.scm) = Context_mod ().smobbed_copy ();
+        ;}
+    break;
+
+  case 154:
+#line 1304 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+                 unsmob_context_mod ((yyvsp[(1) - (2)].scm))->add_context_mod ((yyvsp[(2) - (2)].scm));
+        ;}
+    break;
+
+  case 155:
+#line 1307 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+                 Context_mod *md = unsmob_context_mod ((yyvsp[(2) - (2)].scm));
+                 if (md)
+                     unsmob_context_mod ((yyvsp[(1) - (2)].scm))->add_context_mods (md->get_mods ());
+        ;}
+    break;
+
+  case 156:
+#line 1312 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               unsmob_context_mod ((yyvsp[(1) - (2)].scm))->add_context_mods
+                       (unsmob_context_mod ((yyvsp[(2) - (2)].scm))->get_mods ());
+        ;}
+    break;
+
+  case 160:
+#line 1327 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = FINISH_MAKE_SYNTAX ((yyvsp[(1) - (2)].scm), (yyloc), (yyvsp[(2) - (2)].scm));
+       ;}
+    break;
+
+  case 164:
+#line 1339 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 165:
+#line 1340 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 167:
+#line 1350 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 168:
+#line 1354 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 169:
+#line 1358 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
+    break;
+
+  case 170:
+#line 1365 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 171:
+#line 1368 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 172:
+#line 1372 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 173:
+#line 1376 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 174:
+#line 1380 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               SCM n = scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), n)))
+                       (yyval.scm) = scm_cons (n, (yyvsp[(3) - (5)].scm));
+               else {
+                       Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yylsp[(5) - (5)]));
+                       t->set_property ("digit", (yyvsp[(5) - (5)].scm));
+                       (yyval.scm) = t->unprotect ();
+                       if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), (yyval.scm))))
+                               (yyval.scm) = scm_cons ((yyval.scm), (yyvsp[(3) - (5)].scm));
+                       else
+                               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (5)]), n, (yyvsp[(3) - (5)].scm), (yyvsp[(2) - (5)].scm));
+               }
+               
+       ;}
+    break;
+
+  case 175:
+#line 1396 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (5)]),
+                                      scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED),
+                                      (yyvsp[(3) - (5)].scm), (yyvsp[(2) - (5)].scm));
+       ;}
+    break;
+
+  case 176:
+#line 1402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (5)]),
+                                      scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED),
+                                      (yyvsp[(3) - (5)].scm), (yyvsp[(2) - (5)].scm));
+       ;}
+    break;
+
+  case 178:
+#line 1412 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 179:
+#line 1416 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 181:
+#line 1424 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 182:
+#line 1428 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), (yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm), (yyvsp[(2) - (4)].scm));
+       ;}
+    break;
+
+  case 187:
+#line 1445 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (SCM_IDENTIFIER, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 188:
+#line 1455 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (EVENT_IDENTIFIER, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 189:
+#line 1465 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               // There is no point interpreting a lyrics string as
+               // an event, since we don't allow music possibly
+               // followed by durations or postevent into closed
+               // music, and we only accept closed music in optional
+               // arguments at the moment.  If this changes, more
+               // complex schemes might become interesting here as
+               // well: see how we do this at the mandatory argument
+               // point.
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+                       (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (LYRICS_STRING, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 190:
+#line 1482 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = (yyvsp[(3) - (4)].scm);
+                       MYREPARSE ((yylsp[(4) - (4)]), (yyvsp[(2) - (4)].scm), UNSIGNED, (yyvsp[(4) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (UNSIGNED, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 191:
+#line 1493 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = (yyvsp[(3) - (4)].scm);
+                       MYREPARSE ((yylsp[(4) - (4)]), (yyvsp[(2) - (4)].scm), REAL, (yyvsp[(4) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (REAL, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 192:
+#line 1504 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (NUMBER_IDENTIFIER, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 193:
+#line 1514 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm))))
+               {
+                       (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               } else {
+                       (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (4)]), (yyvsp[(1) - (4)].scm)), (yyvsp[(3) - (4)].scm));
+                       MYBACKUP (FRACTION, (yyvsp[(4) - (4)].scm), (yylsp[(4) - (4)]));
+               }
+       ;}
+    break;
+
+  case 194:
+#line 1524 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               SCM n = scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), n))) {
+                       (yyval.scm) = (yyvsp[(3) - (5)].scm);
+                       MYREPARSE ((yylsp[(5) - (5)]), (yyvsp[(2) - (5)].scm), REAL, n);
+               } else {
+                       Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yylsp[(5) - (5)]));
+                       t->set_property ("digit", (yyvsp[(5) - (5)].scm));
+                       (yyval.scm) = t->unprotect ();
+                       if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), (yyval.scm))))
+                               (yyval.scm) = scm_cons ((yyval.scm), (yyvsp[(3) - (5)].scm));
+                       else {
+                               (yyval.scm) = scm_cons (loc_on_music ((yylsp[(3) - (5)]), (yyvsp[(1) - (5)].scm)), (yyvsp[(3) - (5)].scm));
+                               MYBACKUP (UNSIGNED, (yyvsp[(5) - (5)].scm), (yylsp[(5) - (5)]));
+                               parser->lexer_->push_extra_token ('-');
+                       }
+               }
+               
+       ;}
+    break;
+
+  case 195:
+#line 1544 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               SCM n = scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), n))) {
+                       MYREPARSE ((yylsp[(5) - (5)]), (yyvsp[(2) - (5)].scm), REAL, n);
+                       (yyval.scm) = (yyvsp[(3) - (5)].scm);
+               } else {
+                       MYBACKUP (REAL, n, (yylsp[(5) - (5)]));
+               }
+       ;}
+    break;
+
+  case 196:
+#line 1554 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               SCM n = scm_difference ((yyvsp[(5) - (5)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(2) - (5)].scm), n))) {
+                       (yyval.scm) = scm_cons (n, (yyvsp[(3) - (5)].scm));
+               } else {
+                       MYBACKUP (NUMBER_IDENTIFIER, n, (yylsp[(5) - (5)]));
+               }
+       ;}
+    break;
+
+  case 197:
+#line 1563 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 198:
+#line 1567 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 199:
+#line 1571 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (4)].scm), (yyvsp[(3) - (4)].scm));
+               MYBACKUP(0, SCM_UNDEFINED, (yylsp[(3) - (4)]));
+       ;}
+    break;
+
+  case 200:
+#line 1576 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 92:
-#line 971 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 201:
+#line 1581 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = SCM_EOL;
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 93:
-#line 974 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 205:
+#line 1595 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_car ((yyvsp[(3) - (4)].scm));
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
        ;}
     break;
 
-  case 94:
-#line 982 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 206:
+#line 1600 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
        ;}
     break;
 
-  case 95:
-#line 988 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 207:
+#line 1605 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
        ;}
     break;
 
-  case 96:
-#line 991 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 208:
+#line 1610 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = MAKE_SYNTAX ("sequential-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
        ;}
     break;
 
-  case 97:
-#line 997 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(3) - (4)].scm)));
+  case 211:
+#line 1620 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               // We check how the predicate thinks about a lyrics
+               // event or about a markup.  If it accepts neither, we
+               // backup the original token.  Otherwise we commit to
+               // taking the token.  Depending on what the predicate
+               // is willing to accept, we interpret as a string, as
+               // a lyric event, or ambiguously (meaning that if
+               // something looking like a duration or post event
+               // follows, we take the event, otherwise the string).
+               SCM lyric_event = MAKE_SYNTAX ("lyric-event", (yylsp[(3) - (3)]), (yyvsp[(3) - (3)].scm),
+                                              parser->default_duration_.smobbed_copy ());
+               if (scm_is_true (scm_call_1 ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm))))
+                       if (scm_is_true (scm_call_1 ((yyvsp[(1) - (3)].scm), lyric_event)))
+                       {
+                               (yyval.scm) = (yyvsp[(2) - (3)].scm);
+                               MYREPARSE ((yylsp[(3) - (3)]), (yyvsp[(1) - (3)].scm), LYRICS_STRING, (yyvsp[(3) - (3)].scm));
+                       } else {
+                               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+                       }
+               else if (scm_is_true (scm_call_1 ((yyvsp[(1) - (3)].scm), lyric_event)))
+               {
+                       (yyval.scm) = (yyvsp[(2) - (3)].scm);
+                       MYREPARSE ((yylsp[(3) - (3)]), (yyvsp[(1) - (3)].scm), LYRIC_ELEMENT, (yyvsp[(3) - (3)].scm));
+               } else {
+                       // This is going to flag a syntax error, we
+                       // know the predicate to be false.
+                       check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                         (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+               }
        ;}
     break;
 
-  case 98:
-#line 1000 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 212:
+#line 1651 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = MAKE_SYNTAX ("simultaneous-music", (yyloc), scm_car ((yyvsp[(2) - (3)].scm)));
+               // This should never be false
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 103:
-#line 1013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_initial_state (); ;}
+  case 213:
+#line 1660 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               SCM n = scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(1) - (4)].scm), n))) {
+                       (yyval.scm) = (yyvsp[(2) - (4)].scm);
+                       MYREPARSE ((yylsp[(4) - (4)]), (yyvsp[(1) - (4)].scm), REAL, n);
+               } else {
+                       Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yylsp[(4) - (4)]));
+                       t->set_property ("digit", (yyvsp[(4) - (4)].scm));
+                       (yyval.scm) = t->unprotect ();
+                       if (scm_is_true (scm_call_1 ((yyvsp[(1) - (4)].scm), (yyval.scm))))
+                               (yyval.scm) = scm_cons ((yyval.scm), (yyvsp[(2) - (4)].scm));
+                       else
+                               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (4)]), n, (yyvsp[(2) - (4)].scm), (yyvsp[(1) - (4)].scm));
+               }
+               
+       ;}
     break;
 
-  case 104:
-#line 1014 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 214:
+#line 1677 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                PARSER->lexer_->pop_state ();
-                (yyval.scm) = (yyvsp[(4) - (5)].scm);
-        ;}
+               (yyval.scm) = (yyvsp[(2) - (4)].scm);
+               SCM n = scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED);
+               MYREPARSE ((yylsp[(4) - (4)]), (yyvsp[(1) - (4)].scm), REAL, n);
+       ;}
     break;
 
-  case 105:
-#line 1019 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 215:
+#line 1683 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                (yyval.scm) = (yyvsp[(2) - (2)].scm);
-        ;}
+               SCM n = scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED);
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(4) - (4)]), n, (yyvsp[(2) - (4)].scm), (yyvsp[(1) - (4)].scm));
+       ;}
     break;
 
-  case 106:
-#line 1023 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 216:
+#line 1688 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                (yyval.scm) = (yyvsp[(1) - (1)].scm);
-        ;}
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]), (yyvsp[(3) - (3)].scm), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
+       ;}
     break;
 
-  case 107:
-#line 1029 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 220:
+#line 1701 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-            (yyval.scm) = SCM_EOL;
-        ;}
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+       ;}
     break;
 
-  case 108:
-#line 1033 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 221:
+#line 1706 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-              (yyval.scm) = (yyvsp[(1) - (1)].scm);
-        ;}
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+       ;}
     break;
 
-  case 109:
-#line 1039 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 222:
+#line 1711 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-            (yyval.scm) = Context_mod ().smobbed_copy ();
-        ;}
+               SCM n = scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED);
+               if (scm_is_true (scm_call_1 ((yyvsp[(1) - (4)].scm), n))) {
+                       (yyval.scm) = scm_cons (n, (yyvsp[(2) - (4)].scm));
+               } else {
+                       Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yylsp[(4) - (4)]));
+                       t->set_property ("digit", (yyvsp[(4) - (4)].scm));
+                       (yyval.scm) = t->unprotect ();
+                       if (scm_is_true (scm_call_1 ((yyvsp[(1) - (4)].scm), (yyval.scm))))
+                               (yyval.scm) = scm_cons ((yyval.scm), (yyvsp[(2) - (4)].scm));
+                       else
+                               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (4)]), n, (yyvsp[(2) - (4)].scm), (yyvsp[(1) - (4)].scm));
+               }
+               
+       ;}
     break;
 
-  case 110:
-#line 1042 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 223:
+#line 1727 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                 unsmob_context_mod ((yyvsp[(1) - (2)].scm))->add_context_mod ((yyvsp[(2) - (2)].scm));
-        ;}
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (4)]),
+                                      scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED),
+                                      (yyvsp[(2) - (4)].scm), (yyvsp[(1) - (4)].scm));
+       ;}
     break;
 
-  case 111:
-#line 1045 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 224:
+#line 1733 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                 Context_mod *md = unsmob_context_mod ((yyvsp[(2) - (2)].scm));
-                 if (md)
-                     unsmob_context_mod ((yyvsp[(1) - (2)].scm))->add_context_mods (md->get_mods ());
-        ;}
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (4)]),
+                                      scm_difference ((yyvsp[(4) - (4)].scm), SCM_UNDEFINED),
+                                      (yyvsp[(2) - (4)].scm), (yyvsp[(1) - (4)].scm));
+       ;}
     break;
 
-  case 112:
-#line 1053 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+  case 225:
+#line 1739 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+       ;}
     break;
 
-  case 113:
-#line 1054 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+  case 226:
+#line 1744 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+       ;}
     break;
 
-  case 114:
-#line 1058 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+  case 227:
+#line 1749 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]),
+                                      (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
+       ;}
     break;
 
-  case 115:
-#line 1059 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+  case 230:
+#line 1759 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
+       ;}
     break;
 
-  case 118:
-#line 1072 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 231:
+#line 1763 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 119:
-#line 1078 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 234:
+#line 1772 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 120:
-#line 1081 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 235:
+#line 1776 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 121:
-#line 1084 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 241:
+#line 1793 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               (yyval.scm) = MAKE_SYNTAX ("music-function", (yyloc),
+                                        (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 122:
-#line 1089 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 242:
+#line 1800 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 123:
-#line 1092 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 243:
+#line 1803 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 124:
-#line 1095 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 244:
+#line 1806 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 125:
-#line 1098 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 245:
+#line 1809 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (4)].scm), (yyvsp[(3) - (4)].scm));
        ;}
     break;
 
-  case 126:
-#line 1103 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 246:
+#line 1812 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               /* This is for 0-ary functions, so they don't need to
-                  read a lookahead token */
-               (yyval.scm) = SCM_EOL;
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (4)].scm), (yyvsp[(3) - (4)].scm));
+       ;}
+    break;
+
+  case 247:
+#line 1815 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = scm_cons ((yyvsp[(1) - (4)].scm), (yyvsp[(3) - (4)].scm));
        ;}
     break;
 
-  case 129:
-#line 1113 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 248:
+#line 1821 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               (yyval.scm) = MAKE_SYNTAX ("music-function", (yyloc),
+                                        (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 130:
-#line 1120 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 249:
+#line 1829 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = SCM_EOL; ;}
     break;
 
-  case 131:
-#line 1121 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 250:
+#line 1830 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(2) - (2)].scm);
        ;}
     break;
 
-  case 132:
-#line 1128 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 252:
+#line 1837 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 253:
+#line 1838 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
+    break;
+
+  case 254:
+#line 1840 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
+               (yyval.scm) = FINISH_MAKE_SYNTAX ((yyvsp[(1) - (2)].scm), (yyloc), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 133:
-#line 1131 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 255:
+#line 1846 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                Context_mod *ctxmod = unsmob_context_mod ((yyvsp[(4) - (5)].scm));
+                Context_mod *ctxmod = unsmob_context_mod ((yyvsp[(4) - (4)].scm));
                 SCM mods = SCM_EOL;
                 if (ctxmod)
                         mods = ctxmod->get_mods ();
-               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), mods, SCM_BOOL_F);
+               (yyval.scm) = START_MAKE_SYNTAX ("context-specification", (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), mods, SCM_BOOL_F);
        ;}
     break;
 
-  case 134:
-#line 1138 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 256:
+#line 1853 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                Context_mod *ctxmod = unsmob_context_mod ((yyvsp[(4) - (5)].scm));
+                Context_mod *ctxmod = unsmob_context_mod ((yyvsp[(4) - (4)].scm));
                 SCM mods = SCM_EOL;
                 if (ctxmod)
                         mods = ctxmod->get_mods ();
-               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(2) - (5)].scm), (yyvsp[(3) - (5)].scm), (yyvsp[(5) - (5)].scm), mods, SCM_BOOL_T);
-       ;}
-    break;
-
-  case 135:
-#line 1146 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-                (yyval.scm) = MAKE_SYNTAX ("time-scaled-music", (yyloc), (yyvsp[(2) - (3)].scm), (yyvsp[(3) - (3)].scm));
-       ;}
-    break;
-
-  case 136:
-#line 1149 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
-    break;
-
-  case 137:
-#line 1150 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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));
+               (yyval.scm) = START_MAKE_SYNTAX ("context-specification", (yyvsp[(2) - (4)].scm), (yyvsp[(3) - (4)].scm), mods, SCM_BOOL_T);
        ;}
     break;
 
-  case 138:
-#line 1156 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 257:
+#line 1863 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                if ((yyvsp[(1) - (2)].scm) == ly_symbol2scm ("chords"))
                {
@@ -3670,272 +5128,210 @@ all objects can be unprotected as soon as they're here.
                {
                  (yyval.scm) = (yyvsp[(2) - (2)].scm);
                }
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 139:
-#line 1167 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 258:
+#line 1874 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                 Context_mod *ctxmod = unsmob_context_mod ((yyvsp[(2) - (3)].scm));
                 SCM mods = SCM_EOL;
                 if (ctxmod)
                         mods = ctxmod->get_mods ();
-               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(1) - (3)].scm), SCM_EOL, (yyvsp[(3) - (3)].scm), mods, SCM_BOOL_T);
+               (yyval.scm) = MAKE_SYNTAX ("context-specification", (yyloc), (yyvsp[(1) - (3)].scm), SCM_EOL, mods, SCM_BOOL_T, (yyvsp[(3) - (3)].scm));
                if ((yyvsp[(1) - (3)].scm) == ly_symbol2scm ("ChordNames"))
                {
                  (yyval.scm) = MAKE_SYNTAX ("unrelativable-music", (yyloc), (yyval.scm));
                }
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 140:
-#line 1179 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
-    break;
-
-  case 141:
-#line 1180 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
-    break;
-
-  case 142:
-#line 1184 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 259:
+#line 1889 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
-               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
+               parser->lexer_->push_note_state (nn);
 
                (yyval.scm) = ly_symbol2scm ("notes");
        ;}
     break;
 
-  case 143:
-#line 1191 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 260:
+#line 1896 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
-               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+               SCM nn = parser->lexer_->lookup_identifier ("drumPitchNames");
+               parser->lexer_->push_note_state (nn);
 
                (yyval.scm) = ly_symbol2scm ("drums");
        ;}
     break;
 
-  case 144:
-#line 1197 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 261:
+#line 1902 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->push_figuredbass_state ();
+               parser->lexer_->push_figuredbass_state ();
 
                (yyval.scm) = ly_symbol2scm ("figures");
        ;}
     break;
 
-  case 145:
-#line 1202 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 262:
+#line 1907 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               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 (nn);
                (yyval.scm) = ly_symbol2scm ("chords");
 
        ;}
     break;
 
-  case 146:
-#line 1211 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_lyric_state ();
+  case 263:
+#line 1916 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_lyric_state ();
                (yyval.scm) = ly_symbol2scm ("lyrics");
        ;}
     break;
 
-  case 147:
-#line 1217 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 264:
+#line 1922 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM nn = PARSER->lexer_->lookup_identifier ("drumPitchNames");
-               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+               SCM nn = parser->lexer_->lookup_identifier ("drumPitchNames");
+               parser->lexer_->push_note_state (nn);
 
                (yyval.scm) = ly_symbol2scm ("DrumStaff");
        ;}
     break;
 
-  case 148:
-#line 1223 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 265:
+#line 1928 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->push_figuredbass_state ();
+               parser->lexer_->push_figuredbass_state ();
 
                (yyval.scm) = ly_symbol2scm ("FiguredBass");
        ;}
     break;
 
-  case 149:
-#line 1228 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 266:
+#line 1933 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               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 (nn);
                (yyval.scm) = ly_symbol2scm ("ChordNames");
        ;}
     break;
 
-  case 150:
-#line 1236 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_lyric_state ();
+  case 267:
+#line 1941 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_lyric_state ();
                (yyval.scm) = ly_symbol2scm ("Lyrics");
        ;}
     break;
 
-  case 151:
-#line 1243 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               Pitch start = *unsmob_pitch ((yyvsp[(2) - (3)].scm));
-               (yyval.scm) = make_music_relative (start, (yyvsp[(3) - (3)].scm), (yyloc));
-       ;}
-    break;
-
-  case 152:
-#line 1247 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               Pitch middle_c (0, 0, 0);
-               (yyval.scm) = make_music_relative (middle_c, (yyvsp[(2) - (2)].scm), (yyloc));
-       ;}
-    break;
-
-  case 153:
-#line 1254 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_lyric_state (); ;}
+  case 268:
+#line 1947 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_lyric_state (); ;}
     break;
 
-  case 154:
-#line 1256 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 269:
+#line 1949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 155:
-#line 1263 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->lexer_->push_lyric_state (); ;}
-    break;
+               parser->lexer_->pop_state ();
 
-  case 156:
-#line 1265 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->lexer_->pop_state ();
                (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), SCM_EOL);
        ;}
     break;
 
-  case 157:
-#line 1269 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->lexer_->push_lyric_state ();
-       ;}
-    break;
-
-  case 158:
-#line 1271 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->lexer_->pop_state ();
-               (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(1) - (4)].scm));
-       ;}
-    break;
-
-  case 159:
-#line 1275 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 270:
+#line 1956 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->push_lyric_state ();
+               parser->lexer_->push_lyric_state ();
        ;}
     break;
 
-  case 160:
-#line 1277 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 271:
+#line 1958 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
                (yyval.scm) = scm_cons ((yyvsp[(4) - (4)].scm), (yyvsp[(1) - (4)].scm));
        ;}
     break;
 
-  case 161:
-#line 1284 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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 162:
-#line 1287 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 272:
+#line 1965 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 163:
-#line 1290 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 273:
+#line 1968 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->push_lyric_state ();
+               parser->lexer_->push_lyric_state ();
        ;}
     break;
 
-  case 164:
-#line 1292 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 274:
+#line 1970 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
                (yyval.scm) = MAKE_SYNTAX ("lyric-combine", (yyloc), (yyvsp[(2) - (4)].scm), (yyvsp[(4) - (4)].scm));
        ;}
     break;
 
-  case 165:
-#line 1299 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 275:
+#line 1977 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MAKE_SYNTAX ("context-change", (yyloc), scm_string_to_symbol ((yyvsp[(2) - (4)].scm)), (yyvsp[(4) - (4)].scm));
        ;}
     break;
 
-  case 166:
-#line 1306 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 276:
+#line 1984 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL);
        ;}
     break;
 
-  case 167:
-#line 1309 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 277:
+#line 1987 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 168:
-#line 1315 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 278:
+#line 1993 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
        ;}
     break;
 
-  case 169:
-#line 1321 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 279:
+#line 1999 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 170:
-#line 1325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 280:
+#line 2003 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_2 (ly_symbol2scm ("unset"),
                        scm_string_to_symbol ((yyvsp[(2) - (2)].scm)));
        ;}
     break;
 
-  case 171:
-#line 1329 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 281:
+#line 2007 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)),
@@ -3943,88 +5339,90 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 172:
-#line 1334 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 282:
+#line 2012 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 173:
-#line 1341 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 283:
+#line 2019 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("consists"); ;}
     break;
 
-  case 174:
-#line 1342 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 284:
+#line 2020 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("remove"); ;}
     break;
 
-  case 175:
-#line 1344 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 285:
+#line 2022 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("accepts"); ;}
     break;
 
-  case 176:
-#line 1345 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 286:
+#line 2023 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("default-child"); ;}
     break;
 
-  case 177:
-#line 1346 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 287:
+#line 2024 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("denies"); ;}
     break;
 
-  case 178:
-#line 1348 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 288:
+#line 2026 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("alias"); ;}
     break;
 
-  case 179:
-#line 1349 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 289:
+#line 2027 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("translator-type"); ;}
     break;
 
-  case 180:
-#line 1350 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 290:
+#line 2028 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("description"); ;}
     break;
 
-  case 181:
-#line 1351 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 291:
+#line 2029 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_symbol2scm ("context-name"); ;}
     break;
 
-  case 182:
-#line 1355 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 292:
+#line 2033 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 183:
-#line 1356 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 293:
+#line 2034 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 184:
-#line 1359 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 294:
+#line 2038 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-          if (ly_symbol2scm ("consists") != (yyvsp[(1) - (2)].scm))
-          {
-            (yyval.scm) = SCM_EOL;
-             PARSER->parser_error ((yylsp[(1) - (2)]), _ ("only \\consists takes non-string argument."));
-          }
-          else
-          {
-            (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
-          }
+               if (!scm_is_string ((yyvsp[(2) - (2)].scm))
+                   && ly_symbol2scm ("consists") != (yyvsp[(1) - (2)].scm)
+                   && ly_symbol2scm ("remove") != (yyvsp[(1) - (2)].scm))
+               {
+                       (yyval.scm) = SCM_EOL;
+                       parser->parser_error ((yylsp[(1) - (2)]), _ ("only \\consists and \\remove take non-string argument."));
+               }
+               else
+               {
+                       (yyval.scm) = scm_list_2 ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
+               }
        ;}
     break;
 
-  case 185:
-#line 1373 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 295:
+#line 2054 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                if (!is_regular_identifier ((yyvsp[(1) - (1)].scm)))
                {
@@ -4036,16 +5434,16 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 186:
-#line 1382 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 296:
+#line 2063 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 187:
-#line 1389 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 297:
+#line 2070 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_append (scm_list_2 (scm_list_n (scm_car ((yyvsp[(2) - (5)].scm)),
                                ly_symbol2scm ("OverrideProperty"),
@@ -4055,8 +5453,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 188:
-#line 1396 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 298:
+#line 2077 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (3)].scm)),
                        ly_symbol2scm ("RevertProperty"),
@@ -4065,8 +5463,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 189:
-#line 1402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 299:
+#line 2083 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_4 (scm_car ((yyvsp[(2) - (4)].scm)),
                        ly_symbol2scm ("PropertySet"),
@@ -4075,8 +5473,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 190:
-#line 1408 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 300:
+#line 2089 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_3 (scm_car ((yyvsp[(2) - (2)].scm)),
                        ly_symbol2scm ("PropertyUnset"),
@@ -4084,106 +5482,75 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 191:
-#line 1416 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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 192:
-#line 1419 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 301:
+#line 2097 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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))));
+               (yyval.scm) = LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("property-operation"), scm_cons2 (parser->self_scm (), make_input ((yyloc)), (yyvsp[(1) - (1)].scm)));
        ;}
     break;
 
-  case 193:
-#line 1425 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 302:
+#line 2103 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 194:
-#line 1428 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 303:
+#line 2106 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 195:
-#line 1431 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 304:
+#line 2109 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_string_append (scm_list_2 ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm)));
        ;}
     break;
 
-  case 196:
-#line 1436 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 197:
-#line 1439 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 198:
-#line 1442 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 199:
-#line 1447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 200:
-#line 1450 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 201:
-#line 1453 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 305:
+#line 2114 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 202:
-#line 1456 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 306:
+#line 2117 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 203:
-#line 1459 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 307:
+#line 2120 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 204:
-#line 1462 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 316:
+#line 2141 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
+               // Let the rhythmic music iterator sort this mess out.
+               if (scm_is_pair ((yyvsp[(2) - (2)].scm))) {
+                       if (unsmob_pitch ((yyvsp[(1) - (2)].scm))) {
+                               Music *n = MY_MAKE_MUSIC ("NoteEvent", (yylsp[(1) - (2)]));
+                               n->set_property ("pitch", (yyvsp[(1) - (2)].scm));
+                               n->set_property ("duration",
+                                                parser->default_duration_.smobbed_copy ());
+                               (yyval.scm) = n->unprotect ();
+                       }
+                       unsmob_music ((yyval.scm))->set_property ("articulations",
+                                                        scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
+               }
        ;}
     break;
 
-  case 205:
-#line 1471 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 317:
+#line 2155 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                SCM elts = ly_append2 ((yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
 
@@ -4195,20 +5562,18 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 206:
-#line 1480 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 318:
+#line 2164 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Input i;
                i.set_location ((yylsp[(1) - (3)]), (yylsp[(3) - (3)]));
                (yyval.scm) = MAKE_SYNTAX ("repetition-chord", i,
-                                 PARSER->lexer_->chord_repetition_.last_chord_,
-                                 PARSER->lexer_->chord_repetition_.repetition_function_,
                                  (yyvsp[(2) - (3)].scm), scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 207:
-#line 1488 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 319:
+#line 2170 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Input i;
                i.set_location ((yylsp[(1) - (3)]), (yylsp[(3) - (3)]));
@@ -4217,15 +5582,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 209:
-#line 1499 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               PARSER->lexer_->chord_repetition_.last_chord_ = (yyval.scm);
-       ;}
-    break;
-
-  case 210:
-#line 1507 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 322:
+#line 2183 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *m = unsmob_music ((yyvsp[(1) - (3)].scm));
                SCM dur = unsmob_duration ((yyvsp[(2) - (3)].scm))->smobbed_copy ();
@@ -4242,27 +5600,28 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 211:
-#line 1525 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 323:
+#line 2201 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MAKE_SYNTAX ("event-chord", (yyloc), scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 212:
-#line 1531 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 324:
+#line 2207 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = SCM_EOL; ;}
     break;
 
-  case 213:
-#line 1532 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 325:
+#line 2208 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
+               if (!SCM_UNBNDP ((yyvsp[(2) - (2)].scm)))
+                       (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 214:
-#line 1539 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 326:
+#line 2216 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                int q = (yyvsp[(3) - (5)].i);
                int ex = (yyvsp[(2) - (5)].i);
@@ -4290,11 +5649,10 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 215:
-#line 1564 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 327:
+#line 2241 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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))) {
@@ -4305,68 +5663,48 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 216:
-#line 1575 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 328:
+#line 2252 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = run_music_function (PARSER, (yyvsp[(1) - (1)].scm));
-       ;}
-    break;
+               Music *m = unsmob_music ((yyvsp[(1) - (1)].scm));
 
-  case 217:
-#line 1580 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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.");
+               while (m && m->is_mus_type ("music-wrapper-music")) {
+                       (yyval.scm) = m->get_property ("element");
+                       m = unsmob_music ((yyval.scm));
                }
-       ;}
-    break;
-
-  case 218:
-#line 1593 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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 219:
-#line 1596 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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));
+               if (!(m && m->is_mus_type ("rhythmic-event"))) {
+                       parser->parser_error ((yyloc), _ ("not a rhythmic event"));
+                       (yyval.scm) = SCM_UNDEFINED;
+               }
        ;}
     break;
 
-  case 220:
-#line 1605 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 331:
+#line 2278 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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))));
+               (yyval.scm) = MAKE_SYNTAX ("music-function", (yyloc),
+                                        (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 221:
-#line 1608 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 332:
+#line 2285 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               (yyval.scm) = MAKE_SYNTAX ("music-function", (yyloc),
+                                        (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 222:
-#line 1614 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 333:
+#line 2292 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 223:
-#line 1617 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = MAKE_SYNTAX ("skip-music", (yyloc), (yyvsp[(2) - (2)].scm));
-       ;}
-    break;
-
-  case 224:
-#line 1620 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 334:
+#line 2295 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
                m->set_property ("span-direction", scm_from_int (START));
@@ -4374,8 +5712,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 225:
-#line 1625 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 335:
+#line 2300 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *m = MY_MAKE_MUSIC ("LigatureEvent", (yyloc));
                m->set_property ("span-direction", scm_from_int (STOP));
@@ -4383,17 +5721,17 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 226:
-#line 1630 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 336:
+#line 2305 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = MAKE_SYNTAX ("voice-separator", (yyloc), SCM_UNDEFINED);
+               (yyval.scm) = MAKE_SYNTAX ("voice-separator", (yyloc));
        ;}
     break;
 
-  case 227:
-#line 1633 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 337:
+#line 2308 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM pipe = PARSER->lexer_->lookup_identifier ("pipeSymbol");
+               SCM pipe = parser->lexer_->lookup_identifier ("pipeSymbol");
 
                Music *m = unsmob_music (pipe);
                if (m)
@@ -4403,108 +5741,51 @@ all objects can be unprotected as soon as they're here.
                        (yyval.scm) = m->unprotect ();
                }
                else
-                       (yyval.scm) = MAKE_SYNTAX ("bar-check", (yyloc), SCM_UNDEFINED);
-
-       ;}
-    break;
-
-  case 228:
-#line 1647 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = MAKE_SYNTAX ("partial", (yyloc), (yyvsp[(2) - (2)].scm));
-       ;}
-    break;
-
-  case 229:
-#line 1651 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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;
+                       (yyval.scm) = MAKE_SYNTAX ("bar-check", (yyloc));
 
-  case 230:
-#line 1656 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = MAKE_SYNTAX ("make-mark-set", (yyloc), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 231:
-#line 1662 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 338:
+#line 2325 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = MY_MAKE_MUSIC ("PesOrFlexaEvent", (yyloc))->unprotect ();
        ;}
     break;
 
-  case 232:
-#line 1665 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               Music *m = MY_MAKE_MUSIC ("MarkEvent", (yyloc));
-               (yyval.scm) = m->unprotect ();
-       ;}
-    break;
-
-  case 233:
-#line 1669 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 339:
+#line 2328 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 234:
-#line 1672 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               Music *key = MY_MAKE_MUSIC ("KeyChangeEvent", (yyloc));
-               (yyval.scm) = key->unprotect ();
-       ;}
-    break;
-
-  case 235:
-#line 1676 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/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 236:
-#line 1694 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 340:
+#line 2335 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 237:
-#line 1697 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 341:
+#line 2338 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 238:
-#line 1704 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 342:
+#line 2345 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 239:
-#line 1707 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 343:
+#line 2348 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = run_music_function (PARSER, (yyvsp[(2) - (2)].scm));
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
                if ((yyvsp[(1) - (2)].i))
                {
                        unsmob_music ((yyval.scm))->set_property ("direction", scm_from_int ((yyvsp[(1) - (2)].i)));
@@ -4512,26 +5793,26 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 240:
-#line 1714 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 344:
+#line 2355 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               if (!PARSER->lexer_->is_lyric_state ())
-                       PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
+               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 241:
-#line 1719 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 345:
+#line 2360 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               if (!PARSER->lexer_->is_lyric_state ())
-                       PARSER->parser_error ((yylsp[(1) - (1)]), _ ("have to be in Lyric mode for lyrics"));
+               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 242:
-#line 1724 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 346:
+#line 2365 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                if ((yyvsp[(1) - (2)].i))
                {
@@ -4542,8 +5823,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 243:
-#line 1732 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 347:
+#line 2373 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                if ((yyvsp[(1) - (2)].i))
                {
@@ -4554,8 +5835,31 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 245:
-#line 1744 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 349:
+#line 2383 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+               unsmob_music ((yyval.scm))->set_property ("direction", scm_from_int (UP));
+       ;}
+    break;
+
+  case 350:
+#line 2388 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+               unsmob_music ((yyval.scm))->set_property ("direction", scm_from_int (DOWN));
+       ;}
+    break;
+
+  case 352:
+#line 2396 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 353:
+#line 2402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *s = MY_MAKE_MUSIC ("StringNumberEvent", (yyloc));
                s->set_property ("string-number", scm_from_int ((yyvsp[(1) - (1)].i)));
@@ -4563,80 +5867,80 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 246:
-#line 1752 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 354:
+#line 2410 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("bracketOpenSymbol");
        ;}
     break;
 
-  case 247:
-#line 1755 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 355:
+#line 2413 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("bracketCloseSymbol");
        ;}
     break;
 
-  case 248:
-#line 1758 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 356:
+#line 2416 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("tildeSymbol");
        ;}
     break;
 
-  case 249:
-#line 1761 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 357:
+#line 2419 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("parenthesisOpenSymbol");
        ;}
     break;
 
-  case 250:
-#line 1764 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 358:
+#line 2422 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("parenthesisCloseSymbol");
        ;}
     break;
 
-  case 251:
-#line 1767 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 359:
+#line 2425 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("escapedExclamationSymbol");
        ;}
     break;
 
-  case 252:
-#line 1770 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 360:
+#line 2428 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("escapedParenthesisOpenSymbol");
        ;}
     break;
 
-  case 253:
-#line 1773 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 361:
+#line 2431 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("escapedParenthesisCloseSymbol");
        ;}
     break;
 
-  case 254:
-#line 1776 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 362:
+#line 2434 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("escapedBiggerSymbol");
        ;}
     break;
 
-  case 255:
-#line 1779 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 363:
+#line 2437 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("escapedSmallerSymbol");
        ;}
     break;
 
-  case 256:
-#line 1785 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 364:
+#line 2443 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM predefd = PARSER->lexer_->lookup_identifier_symbol ((yyvsp[(1) - (1)].scm));
+               SCM predefd = parser->lexer_->lookup_identifier_symbol ((yyvsp[(1) - (1)].scm));
                Music *m = 0;
                if (unsmob_music (predefd))
                {
@@ -4651,15 +5955,15 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 257:
-#line 1799 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 365:
+#line 2457 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 258:
-#line 1802 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 366:
+#line 2460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *a = MY_MAKE_MUSIC ("TremoloEvent", (yyloc));
                a->set_property ("tremolo-type", scm_from_int ((yyvsp[(1) - (1)].i)));
@@ -4667,82 +5971,82 @@ all objects can be unprotected as soon as they're here.
         ;}
     break;
 
-  case 259:
-#line 1810 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 368:
+#line 2469 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 260:
-#line 1813 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 369:
+#line 2472 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM s = PARSER->lexer_->lookup_identifier ("dash" + ly_scm2string ((yyvsp[(1) - (1)].scm)));
+               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"));
+               else parser->parser_error ((yylsp[(1) - (1)]), _ ("expecting string as script definition"));
                (yyval.scm) = a->unprotect ();
        ;}
     break;
 
-  case 261:
-#line 1824 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 370:
+#line 2483 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = SCM_EOL; ;}
     break;
 
-  case 262:
-#line 1825 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 371:
+#line 2484 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = scm_from_int (0); ;}
     break;
 
-  case 263:
-#line 1826 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 372:
+#line 2485 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = scm_from_int (-(yyvsp[(2) - (2)].i)); ;}
     break;
 
-  case 264:
-#line 1827 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 373:
+#line 2486 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = scm_from_int ((yyvsp[(2) - (2)].i)); ;}
     break;
 
-  case 265:
-#line 1831 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 374:
+#line 2490 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) = 1;
        ;}
     break;
 
-  case 266:
-#line 1834 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 375:
+#line 2493 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) ++;
        ;}
     break;
 
-  case 267:
-#line 1840 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 376:
+#line 2499 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) = 1;
        ;}
     break;
 
-  case 268:
-#line 1843 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 377:
+#line 2502 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i)++;
        ;}
     break;
 
-  case 269:
-#line 1849 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 378:
+#line 2508 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 270:
-#line 1852 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 379:
+#line 2511 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
                p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
@@ -4750,8 +6054,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 271:
-#line 1857 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 380:
+#line 2516 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Pitch p =* unsmob_pitch ((yyvsp[(1) - (2)].scm));
                p = p.transposed (Pitch (-(yyvsp[(2) - (2)].i),0,0));
@@ -4759,15 +6063,15 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 272:
-#line 1869 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 381:
+#line 2528 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 273:
-#line 1872 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 382:
+#line 2531 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
                p = p.transposed (Pitch ((yyvsp[(2) - (2)].i),0,0));
@@ -4775,8 +6079,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 274:
-#line 1877 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 383:
+#line 2536 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Pitch p = *unsmob_pitch ((yyvsp[(1) - (2)].scm));
 
@@ -4785,15 +6089,15 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 275:
-#line 1886 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 384:
+#line 2545 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 278:
-#line 1897 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 388:
+#line 2557 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
                t->set_property ("text", (yyvsp[(1) - (1)].scm));
@@ -4801,8 +6105,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 279:
-#line 1902 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 389:
+#line 2562 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *t = MY_MAKE_MUSIC ("TextScriptEvent", (yyloc));
                t->set_property ("text",
@@ -4811,115 +6115,115 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 280:
-#line 1908 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 390:
+#line 2571 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *t = MY_MAKE_MUSIC ("FingeringEvent", (yyloc));
-               t->set_property ("digit", scm_from_int ((yyvsp[(1) - (1)].i)));
+               t->set_property ("digit", (yyvsp[(1) - (1)].scm));
                (yyval.scm) = t->unprotect ();
        ;}
     break;
 
-  case 281:
-#line 1916 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 391:
+#line 2579 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Hat");
        ;}
     break;
 
-  case 282:
-#line 1919 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 392:
+#line 2582 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Plus");
        ;}
     break;
 
-  case 283:
-#line 1922 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 393:
+#line 2585 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Dash");
        ;}
     break;
 
-  case 284:
-#line 1925 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 394:
+#line 2588 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Bar");
        ;}
     break;
 
-  case 285:
-#line 1928 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 395:
+#line 2591 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Larger");
        ;}
     break;
 
-  case 286:
-#line 1931 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 396:
+#line 2594 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Dot");
        ;}
     break;
 
-  case 287:
-#line 1934 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 397:
+#line 2597 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_locale_string ("Underscore");
        ;}
     break;
 
-  case 288:
-#line 1940 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 398:
+#line 2603 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = DOWN; ;}
     break;
 
-  case 289:
-#line 1941 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 399:
+#line 2604 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = UP; ;}
     break;
 
-  case 290:
-#line 1942 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 400:
+#line 2605 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = CENTER; ;}
     break;
 
-  case 291:
-#line 1947 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 401:
+#line 2609 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 292:
-#line 1953 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 402:
+#line 2615 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               (yyval.scm) = SCM_UNDEFINED;
        ;}
     break;
 
-  case 293:
-#line 1959 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 403:
+#line 2618 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               Duration dd = PARSER->default_duration_;
-               (yyval.scm) = dd.smobbed_copy ();
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               parser->default_duration_ = *unsmob_duration ((yyval.scm));
        ;}
     break;
 
-  case 294:
-#line 1963 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 404:
+#line 2627 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-               PARSER->default_duration_ = *unsmob_duration ((yyval.scm));
+               if (SCM_UNBNDP ((yyval.scm)))
+                       (yyval.scm) = parser->default_duration_.smobbed_copy ();
        ;}
     break;
 
-  case 295:
-#line 1970 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 405:
+#line 2634 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)));
+                       parser->parser_error ((yylsp[(1) - (2)]), _f ("not a duration: %d", (yyvsp[(1) - (2)].i)));
                else
                        len = intlog2 ((yyvsp[(1) - (2)].i));
 
@@ -4927,8 +6231,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 296:
-#line 1979 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 406:
+#line 2643 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Duration *d = unsmob_duration ((yyvsp[(1) - (2)].scm));
                Duration k (d->duration_log (), d->dot_count () + (yyvsp[(2) - (2)].i));
@@ -4938,22 +6242,22 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 297:
-#line 1989 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 407:
+#line 2653 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 298:
-#line 1992 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 408:
+#line 2656 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = unsmob_duration ((yyval.scm))->compressed ( (yyvsp[(3) - (3)].i)) .smobbed_copy ();
        ;}
     break;
 
-  case 299:
-#line 1995 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 409:
+#line 2659 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Rational  m (scm_to_int (scm_car ((yyvsp[(3) - (3)].scm))), scm_to_int (scm_cdr ((yyvsp[(3) - (3)].scm))));
 
@@ -4961,97 +6265,76 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 300:
-#line 2003 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
-    break;
-
-  case 301:
-#line 2004 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_cons (scm_from_int ((yyvsp[(1) - (3)].i)), scm_from_int ((yyvsp[(3) - (3)].i)));
-       ;}
-    break;
-
-  case 302:
-#line 2010 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 410:
+#line 2667 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) = 0;
        ;}
     break;
 
-  case 303:
-#line 2013 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 411:
+#line 2670 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) ++;
        ;}
     break;
 
-  case 304:
-#line 2019 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 412:
+#line 2676 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.i) = 0;
        ;}
     break;
 
-  case 305:
-#line 2022 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 413:
+#line 2679 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)));
+                       parser->parser_error ((yylsp[(2) - (2)]), _f ("not a duration: %d", (yyvsp[(2) - (2)].i)));
                (yyval.i) = (yyvsp[(2) - (2)].i);
        ;}
     break;
 
-  case 306:
-#line 2030 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
-       ;}
-    break;
-
-  case 307:
-#line 2033 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
-       ;}
+  case 414:
+#line 2687 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 308:
-#line 2036 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 415:
+#line 2688 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 309:
-#line 2037 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 416:
+#line 2689 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 310:
-#line 2041 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 417:
+#line 2693 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_rational2scm (FLAT_ALTERATION); ;}
     break;
 
-  case 311:
-#line 2042 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 418:
+#line 2694 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = ly_rational2scm (SHARP_ALTERATION); ;}
     break;
 
-  case 312:
-#line 2043 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 419:
+#line 2695 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = scm_from_int (0); ;}
     break;
 
-  case 313:
-#line 2047 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 420:
+#line 2699 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
                (yyval.scm) = bfr->unprotect ();
        ;}
     break;
 
-  case 314:
-#line 2051 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 421:
+#line 2703 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *bfr = MY_MAKE_MUSIC ("BassFigureEvent", (yyloc));
                (yyval.scm) = bfr->self_scm ();
@@ -5065,16 +6348,16 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 315:
-#line 2062 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 422:
+#line 2714 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (2)].scm);
                unsmob_music ((yyvsp[(1) - (2)].scm))->set_property ("bracket-stop", SCM_BOOL_T);
        ;}
     break;
 
-  case 316:
-#line 2066 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 423:
+#line 2718 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
                if (scm_to_double ((yyvsp[(2) - (2)].scm))) {
@@ -5088,8 +6371,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 317:
-#line 2077 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 424:
+#line 2729 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *m = unsmob_music ((yyvsp[(1) - (2)].scm));
                if ((yyvsp[(2) - (2)].scm) == ly_symbol2scm ("plus"))
@@ -5111,112 +6394,118 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 318:
-#line 2100 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 425:
+#line 2752 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("plus");
        ;}
     break;
 
-  case 319:
-#line 2103 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 426:
+#line 2755 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("exclamation");
        ;}
     break;
 
-  case 320:
-#line 2106 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 427:
+#line 2758 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("slash");
        ;}
     break;
 
-  case 321:
-#line 2109 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 428:
+#line 2761 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("backslash");
        ;}
     break;
 
-  case 322:
-#line 2115 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 429:
+#line 2767 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 323:
-#line 2118 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 430:
+#line 2770 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(2) - (2)].scm);
                unsmob_music ((yyval.scm))->set_property ("bracket-start", SCM_BOOL_T);
        ;}
     break;
 
-  case 324:
-#line 2125 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 431:
+#line 2777 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 325:
-#line 2128 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 432:
+#line 2780 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 326:
-#line 2134 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 433:
+#line 2786 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
        ;}
     break;
 
-  case 327:
-#line 2141 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 434:
+#line 2793 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = 0; ;}
     break;
 
-  case 328:
-#line 2142 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 435:
+#line 2794 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = 1; ;}
     break;
 
-  case 329:
-#line 2146 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 436:
+#line 2798 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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)))
+               if (!parser->lexer_->is_note_state ())
+                       parser->parser_error ((yylsp[(1) - (6)]), _ ("have to be in Note mode for notes"));
+               if ((yyvsp[(2) - (6)].i) || (yyvsp[(3) - (6)].i) || scm_is_number ((yyvsp[(4) - (6)].scm)) || !SCM_UNBNDP ((yyvsp[(5) - (6)].scm)) || (yyvsp[(6) - (6)].i))
                {
-                       int q = scm_to_int ((yyvsp[(4) - (6)].scm));
-                       n->set_property ("absolute-octave", scm_from_int (q-1));
+                       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));
+                       if (SCM_UNBNDP ((yyvsp[(5) - (6)].scm)))
+                               n->set_property ("duration",
+                                                parser->default_duration_.smobbed_copy ());
+                       else
+                               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 ();
                }
-
-               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 330:
-#line 2172 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 437:
+#line 2830 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *n = MY_MAKE_MUSIC ("NoteEvent", (yyloc));
                n->set_property ("duration", (yyvsp[(2) - (2)].scm));
@@ -5226,8 +6515,8 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 331:
-#line 2179 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 438:
+#line 2837 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                Music *ev = 0;
                if (ly_scm2string ((yyvsp[(1) - (2)].scm)) == "s") {
@@ -5243,575 +6532,583 @@ all objects can be unprotected as soon as they're here.
        ;}
     break;
 
-  case 332:
-#line 2192 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 439:
+#line 2853 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 440:
+#line 2858 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               if (!PARSER->lexer_->is_lyric_state ())
-                       PARSER->parser_error ((yylsp[(1) - (2)]), _ ("have to be in Lyric mode for lyrics"));
+               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;
 
-               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 ();
+  case 441:
+#line 2868 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 333:
-#line 2204 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 442:
+#line 2871 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
+               (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 334:
-#line 2207 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 444:
+#line 2878 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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);
+               (yyval.scm) = MAKE_SYNTAX ("lyric-event", (yyloc), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               if (scm_is_pair ((yyvsp[(3) - (3)].scm)))
+                       unsmob_music ((yyval.scm))->set_property
+                               ("articulations", scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 335:
-#line 2212 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 445:
+#line 2884 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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);
+               (yyval.scm) = MAKE_SYNTAX ("lyric-event", (yyloc), (yyvsp[(1) - (3)].scm),
+                                 parser->default_duration_.smobbed_copy ());
+               unsmob_music ((yyval.scm))->set_property
+                       ("articulations", scm_cons ((yyvsp[(2) - (3)].scm), scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL)));
        ;}
     break;
 
-  case 336:
-#line 2222 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 446:
+#line 2890 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               (yyval.scm) = MAKE_SYNTAX ("lyric-event", (yyloc), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               if (scm_is_pair ((yyvsp[(3) - (3)].scm)))
+                       unsmob_music ((yyval.scm))->set_property
+                               ("articulations", scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 337:
-#line 2225 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 447:
+#line 2900 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               (yyval.scm) = MAKE_SYNTAX ("lyric-event", (yyloc), (yyvsp[(1) - (3)].scm), (yyvsp[(2) - (3)].scm));
+               if (scm_is_pair ((yyvsp[(3) - (3)].scm)))
+                       unsmob_music ((yyval.scm))->set_property
+                               ("articulations", scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 338:
-#line 2231 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 448:
+#line 2909 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = make_chord_elements ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm), SCM_EOL);
+               (yyval.scm) = make_chord_elements ((yyloc), (yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm), SCM_EOL);
        ;}
     break;
 
-  case 339:
-#line 2234 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 449:
+#line 2912 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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));
+               (yyval.scm) = make_chord_elements ((yyloc), (yyvsp[(1) - (4)].scm), (yyvsp[(2) - (4)].scm), scm_cons ((yyvsp[(3) - (4)].scm), its));
        ;}
     break;
 
-  case 340:
-#line 2241 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 450:
+#line 2919 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 341:
-#line 2244 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 451:
+#line 2922 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyval.scm));
        ;}
     break;
 
-  case 342:
-#line 2250 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 452:
+#line 2928 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("chord-colon");
        ;}
     break;
 
-  case 343:
-#line 2253 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 453:
+#line 2931 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = ly_symbol2scm ("chord-caret");
        ;}
     break;
 
-  case 344:
-#line 2256 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 454:
+#line 2934 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-slash"), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 345:
-#line 2259 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 455:
+#line 2937 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_2 (ly_symbol2scm ("chord-bass"), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 346:
-#line 2265 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 456:
+#line 2943 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 347:
-#line 2268 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 457:
+#line 2946 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_reverse_x ((yyvsp[(1) - (1)].scm), SCM_EOL);
        ;}
     break;
 
-  case 348:
-#line 2271 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 458:
+#line 2949 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 349:
-#line 2277 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 459:
+#line 2955 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = scm_cons ((yyvsp[(1) - (1)].scm), SCM_EOL); ;}
     break;
 
-  case 350:
-#line 2278 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 460:
+#line 2956 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyval.scm));
        ;}
     break;
 
-  case 351:
-#line 2284 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 461:
+#line 2962 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = make_chord_step ((yyvsp[(1) - (1)].i), 0);
         ;}
     break;
 
-  case 352:
-#line 2287 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 462:
+#line 2965 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), SHARP_ALTERATION);
        ;}
     break;
 
-  case 353:
-#line 2290 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 463:
+#line 2968 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = make_chord_step ((yyvsp[(1) - (2)].i), FLAT_ALTERATION);
        ;}
     break;
 
-  case 354:
-#line 2296 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 464:
+#line 2974 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
        ;}
     break;
 
-  case 355:
-#line 2299 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 465:
+#line 2977 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons (scm_from_int ((yyvsp[(1) - (3)].i)), scm_from_int ((yyvsp[(3) - (3)].i)));
        ;}
     break;
 
-  case 356:
-#line 2311 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 466:
+#line 2989 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_sum ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 357:
-#line 2314 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 467:
+#line 2992 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_difference ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 359:
-#line 2321 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 469:
+#line 2999 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 360:
-#line 2324 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 470:
+#line 3002 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_product ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 361:
-#line 2327 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 471:
+#line 3005 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_divide ((yyvsp[(1) - (3)].scm), (yyvsp[(3) - (3)].scm));
        ;}
     break;
 
-  case 362:
-#line 2333 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 472:
+#line 3011 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { /* %prec UNARY_MINUS */
                (yyval.scm) = scm_difference ((yyvsp[(2) - (2)].scm), SCM_UNDEFINED);
        ;}
     break;
 
-  case 364:
-#line 2341 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i));
-       ;}
-    break;
-
-  case 365:
-#line 2344 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 366:
-#line 2347 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
-       ;}
-    break;
-
-  case 367:
-#line 2350 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_from_double (scm_to_double ((yyvsp[(1) - (2)].scm)) *scm_to_double ((yyvsp[(2) - (2)].scm)));
-       ;}
-    break;
-
-  case 368:
-#line 2353 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    {
-               (yyval.scm) = scm_from_double ((yyvsp[(1) - (2)].i) *scm_to_double ((yyvsp[(2) - (2)].scm)));
-       ;}
-    break;
-
-  case 369:
-#line 2360 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 475:
+#line 3020 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-                       (yyval.i) = (yyvsp[(1) - (1)].i);
+               (yyval.scm) = scm_product ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 370:
-#line 2363 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 476:
+#line 3023 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.i) = (yyvsp[(1) - (1)].i);
+               (yyval.scm) = scm_product ((yyvsp[(1) - (2)].scm), (yyvsp[(2) - (2)].scm));
        ;}
     break;
 
-  case 371:
-#line 2369 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { (yyval.scm) = scm_from_int ((yyvsp[(1) - (1)].i)); ;}
-    break;
-
-  case 372:
-#line 2370 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 480:
+#line 3035 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               (yyval.scm) = (yyvsp[(1) - (1)].scm);
+               (yyval.i) = scm_to_int ((yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 373:
-#line 2376 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 483:
+#line 3046 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = 0; ;}
     break;
 
-  case 374:
-#line 2377 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 484:
+#line 3047 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) ++; ;}
     break;
 
-  case 375:
-#line 2381 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 485:
+#line 3051 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) = 0; ;}
     break;
 
-  case 376:
-#line 2382 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 486:
+#line 3052 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.i) ++; ;}
     break;
 
-  case 377:
-#line 2390 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 487:
+#line 3060 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 378:
-#line 2394 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_markup_state (); ;}
+  case 488:
+#line 3064 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_markup_state (); ;}
     break;
 
-  case 379:
-#line 2395 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 489:
+#line 3065 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(3) - (3)].scm);
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 380:
-#line 2402 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 490:
+#line 3072 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 381:
-#line 2406 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_markup_state (); ;}
+  case 491:
+#line 3076 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_markup_state (); ;}
     break;
 
-  case 382:
-#line 2407 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 492:
+#line 3077 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(3) - (3)].scm);
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 383:
-#line 2414 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 493:
+#line 3084 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 384:
-#line 2418 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
-    { PARSER->lexer_->push_markup_state (); ;}
+  case 494:
+#line 3088 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    { parser->lexer_->push_markup_state (); ;}
     break;
 
-  case 385:
-#line 2419 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 495:
+#line 3089 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(3) - (3)].scm);
-               PARSER->lexer_->pop_state ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 386:
-#line 2426 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 496:
+#line 3096 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_2 (ly_lily_module_constant ("line-markup"),  (yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 387:
-#line 2429 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 497:
+#line 3099 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 388:
-#line 2432 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 498:
+#line 3102 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 389:
-#line 2438 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 499:
+#line 3109 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               if (Text_interface::is_markup ((yyvsp[(1) - (1)].scm)))
+                       MYBACKUP (MARKUP_IDENTIFIER, (yyvsp[(1) - (1)].scm), (yylsp[(1) - (1)]));
+               else if (Text_interface::is_markup_list ((yyvsp[(1) - (1)].scm)))
+                       MYBACKUP (MARKUPLIST_IDENTIFIER, (yyvsp[(1) - (1)].scm), (yylsp[(1) - (1)]));
+               else {
+                       parser->parser_error ((yylsp[(1) - (1)]), _ ("not a markup"));
+                       MYBACKUP (MARKUP_IDENTIFIER, scm_string (SCM_EOL), (yylsp[(1) - (1)]));
+               }
+       ;}
+    break;
+
+  case 501:
+#line 3123 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 390:
-#line 2441 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 502:
+#line 3126 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 391:
-#line 2444 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 503:
+#line 3129 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 392:
-#line 2447 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 504:
+#line 3132 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 393:
-#line 2453 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 505:
+#line 3136 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 506:
+#line 3142 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 394:
-#line 2460 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 507:
+#line 3149 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (3)].scm), SCM_EOL);
        ;}
     break;
 
-  case 395:
-#line 2466 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 508:
+#line 3155 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {  (yyval.scm) = SCM_EOL; ;}
     break;
 
-  case 396:
-#line 2467 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 509:
+#line 3156 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 397:
-#line 2470 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 510:
+#line 3159 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_reverse_x ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 398:
-#line 2476 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 511:
+#line 3165 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
          (yyval.scm) = scm_cons ((yyvsp[(1) - (2)].scm), scm_reverse_x((yyvsp[(2) - (2)].scm), SCM_EOL));
        ;}
     break;
 
-  case 399:
-#line 2482 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 512:
+#line 3171 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
          (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 400:
-#line 2485 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 513:
+#line 3174 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-         (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
+         (yyval.scm) = check_scheme_arg (parser, (yylsp[(3) - (3)]), (yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm), (yyvsp[(1) - (3)].scm));
        ;}
     break;
 
-  case 401:
-#line 2488 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 514:
+#line 3177 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
          (yyval.scm) = SCM_EOL;
        ;}
     break;
 
-  case 402:
-#line 2494 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 515:
+#line 3183 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     { (yyval.scm) = (yyvsp[(1) - (1)].scm); ;}
     break;
 
-  case 403:
-#line 2495 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 516:
+#line 3184 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
          (yyval.scm) = scm_cons ((yyvsp[(3) - (3)].scm), (yyvsp[(2) - (3)].scm));
        ;}
     break;
 
-  case 404:
-#line 2501 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 517:
+#line 3190 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
          (yyval.scm) = scm_cons ((yyvsp[(1) - (3)].scm), scm_reverse_x ((yyvsp[(3) - (3)].scm), SCM_EOL));
        ;}
     break;
 
-  case 405:
-#line 2507 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 518:
+#line 3196 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_list_1 ((yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 406:
-#line 2510 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 519:
+#line 3199 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(2) - (2)].scm), (yyvsp[(1) - (2)].scm));
        ;}
     break;
 
-  case 407:
-#line 2516 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 520:
+#line 3205 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = make_simple_markup ((yyvsp[(1) - (1)].scm));
        ;}
     break;
 
-  case 408:
-#line 2519 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 521:
+#line 3208 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 409:
-#line 2522 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 522:
+#line 3211 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 410:
-#line 2525 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 523:
+#line 3214 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
     break;
 
-  case 411:
-#line 2528 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 524:
+#line 3217 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
-               SCM nn = PARSER->lexer_->lookup_identifier ("pitchnames");
-               PARSER->lexer_->push_note_state (alist_to_hashq (nn));
+               SCM nn = parser->lexer_->lookup_identifier ("pitchnames");
+               parser->lexer_->push_note_state (nn);
        ;}
     break;
 
-  case 412:
-#line 2531 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 525:
+#line 3220 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 ();
+               parser->lexer_->pop_state ();
        ;}
     break;
 
-  case 413:
-#line 2537 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 526:
+#line 3226 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = scm_cons ((yyvsp[(1) - (2)].scm), scm_reverse_x ((yyvsp[(2) - (2)].scm), SCM_EOL));
        ;}
     break;
 
-  case 414:
-#line 2543 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 527:
+#line 3230 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
+    {
+               (yyval.scm) = (yyvsp[(2) - (2)].scm);
+       ;}
+    break;
+
+  case 528:
+#line 3236 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/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 415:
-#line 2547 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+  case 529:
+#line 3240 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
     {
                (yyval.scm) = (yyvsp[(1) - (1)].scm);
        ;}
@@ -5819,7 +7116,7 @@ all objects can be unprotected as soon as they're here.
 
 
 /* Line 1267 of yacc.c.  */
-#line 5823 "out/parser.cc"
+#line 7120 "out/parser.cc"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5855,7 +7152,7 @@ yyerrlab:
     {
       ++yynerrs;
 #if ! YYERROR_VERBOSE
-      yyerror (YY_("syntax error"));
+      yyerror (&yylloc, parser, YY_("syntax error"));
 #else
       {
        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
@@ -5879,11 +7176,11 @@ yyerrlab:
        if (0 < yysize && yysize <= yymsg_alloc)
          {
            (void) yysyntax_error (yymsg, yystate, yychar);
-           yyerror (yymsg);
+           yyerror (&yylloc, parser, yymsg);
          }
        else
          {
-           yyerror (YY_("syntax error"));
+           yyerror (&yylloc, parser, YY_("syntax error"));
            if (yysize != 0)
              goto yyexhaustedlab;
          }
@@ -5907,7 +7204,7 @@ yyerrlab:
       else
        {
          yydestruct ("Error: discarding",
-                     yytoken, &yylval, &yylloc);
+                     yytoken, &yylval, &yylloc, parser);
          yychar = YYEMPTY;
        }
     }
@@ -5964,7 +7261,7 @@ yyerrlab1:
 
       yyerror_range[0] = *yylsp;
       yydestruct ("Error: popping",
-                 yystos[yystate], yyvsp, yylsp);
+                 yystos[yystate], yyvsp, yylsp, parser);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -6007,7 +7304,7 @@ yyabortlab:
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
 yyexhaustedlab:
-  yyerror (YY_("memory exhausted"));
+  yyerror (&yylloc, parser, YY_("memory exhausted"));
   yyresult = 2;
   /* Fall through.  */
 #endif
@@ -6015,7 +7312,7 @@ yyexhaustedlab:
 yyreturn:
   if (yychar != YYEOF && yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
-                yytoken, &yylval, &yylloc);
+                yytoken, &yylval, &yylloc, parser);
   /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
@@ -6023,7 +7320,7 @@ yyreturn:
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp, yylsp);
+                 yystos[*yyssp], yyvsp, yylsp, parser);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -6039,7 +7336,7 @@ yyreturn:
 }
 
 
-#line 2552 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.14/lily/parser.yy"
+#line 3245 "/main/src/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.16/lily/parser.yy"
 
 
 void
@@ -6051,7 +7348,7 @@ Lily_parser::set_yydebug (bool x)
 void
 Lily_parser::do_yyparse ()
 {
-       yyparse ((void*)this);
+       yyparse (this);
 }
 
 
@@ -6102,11 +7399,12 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
                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;
-
+               bool is_event = mus->is_mus_type ("post-event");
                mus->unprotect ();
                return is_event ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER;
+       } else if (unsmob_pitch (sid)) {
+               *destination = unsmob_pitch (sid)->smobbed_copy ();
+               return PITCH_IDENTIFIER;
        } else if (unsmob_duration (sid)) {
                *destination = unsmob_duration (sid)->smobbed_copy ();
                return DURATION_IDENTIFIER;
@@ -6124,7 +7422,7 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
                return MARKUP_IDENTIFIER;
        } else if (Text_interface::is_markup_list (sid)) {
                *destination = sid;
-               return MARKUPLINES_IDENTIFIER;
+               return MARKUPLIST_IDENTIFIER;
        }
 
        return -1;
@@ -6146,25 +7444,27 @@ get_next_unique_lyrics_context_id ()
        return scm_from_locale_string (s);
 }
 
-
-SCM
-run_music_function (Lily_parser *parser, SCM expr)
+SCM check_scheme_arg (Lily_parser *parser, Input loc,
+                     SCM arg, SCM args, SCM pred)
 {
-       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");
+       args = scm_cons (arg, args);
+       if (scm_is_true (scm_call_1 (pred, arg)))
+               return args;
+       scm_set_cdr_x (scm_last_pair (args), SCM_EOL);
+       MAKE_SYNTAX ("argument-error", loc, scm_length (args), pred, arg);
+       scm_set_cdr_x (scm_last_pair (args), SCM_BOOL_F);
+       return args;
+}
 
-       if (!to_boolean (scm_call_3  (type_check_proc, scm_cadr (expr), sig, args)))
+SCM loc_on_music (Input loc, SCM arg)
+{
+       if (Music *m = unsmob_music (arg))
        {
-               parser->error_level_ = 1;
-               return LOWLEVEL_MAKE_SYNTAX (ly_lily_module_constant ("void-music"), scm_list_2 (parser->self_scm (), make_input (*loc)));
+               m = m->clone ();
+               m->set_spot (loc);
+               return m->unprotect ();
        }
-
-       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);
+       return arg;
 }
 
 bool
@@ -6194,19 +7494,6 @@ make_music_with_input (SCM name, Input 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)
 {
@@ -6241,41 +7528,23 @@ make_chord_step (int step, Rational alter)
 
 
 SCM
-make_chord_elements (SCM pitch, SCM dur, SCM modification_list)
+make_chord_elements (Input loc, 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 ();
+       SCM res = scm_call_3 (chord_ctor, pitch, dur, modification_list);
+       for (SCM s = res; scm_is_pair (s); s = scm_cdr (s))
+       {
+               unsmob_music (scm_car (s))->set_spot (loc);
+       }
+       return res;
 }
 
 int
-yylex (YYSTYPE *s, YYLTYPE *loc, void *v)
+yylex (YYSTYPE *s, YYLTYPE *loc, Lily_parser *parser)
 {
-       Lily_parser *pars = (Lily_parser*) v;
-       Lily_lexer *lex = pars->lexer_;
+       Lily_lexer *lex = parser->lexer_;
 
-       lex->lexval_ = (void*) s;
+       lex->lexval_ = s;
        lex->lexloc_ = loc;
        lex->prepare_for_next_token ();
        return lex->yylex ();