]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/parser.yy
Doc: simplify example changing default fonts (3027)
[lilypond.git] / lily / parser.yy
index 0804ce575b59f240ff3b43fcd1487ad7c9511fe0..37d5fa4e770c4d954375bc584b899a75d4f6c499 100644 (file)
@@ -328,7 +328,6 @@ If we give names, Bison complains.
 %token HYPHEN "--"
 
 %token CHORDMODIFIERS
-%token LYRIC_MARKUP
 %token MULTI_MEASURE_REST
 
 
@@ -362,7 +361,6 @@ If we give names, Bison complains.
 %token EVENT_IDENTIFIER
 %token EVENT_FUNCTION
 %token FRACTION
-%token LYRICS_STRING
 %token LYRIC_ELEMENT
 %token MARKUP_FUNCTION
 %token MARKUP_LIST_FUNCTION
@@ -499,7 +497,6 @@ embedded_scm_bare_arg:
        {
                $$ = parser->lexer_->eval_scm_token ($1);
        }
-       | full_markup
        | full_markup_list
        | context_modification
        | score_block
@@ -575,7 +572,6 @@ lilypond_header:
 */
 assignment_id:
        STRING          { $$ = $1; }
-       | LYRICS_STRING { $$ = $1; }
        ;
 
 assignment:
@@ -1021,13 +1017,24 @@ music:  music_arg
 
 music_embedded:
        music
+       {
+               if (unsmob_music ($1)->is_mus_type ("post-event")) {
+                       parser->parser_error (@1, _ ("unexpected post-event"));
+                       $$ = SCM_UNSPECIFIED;
+               }
+       }
        | embedded_scm
        {
-               if (unsmob_music ($1)
-                   || scm_is_eq ($1, SCM_UNSPECIFIED))
+               if (scm_is_eq ($1, SCM_UNSPECIFIED))
                        $$ = $1;
-               else
-               {
+               else if (Music *m = unsmob_music ($1)) {
+                       if (m->is_mus_type ("post-event")) {
+                               parser->parser_error
+                                       (@1, _ ("unexpected post-event"));
+                               $$ = SCM_UNSPECIFIED;
+                       } else
+                               $$ = $1;
+               } else {
                        @$.warning (_ ("Ignoring non-music expression"));
                        $$ = SCM_UNSPECIFIED;
                }
@@ -1277,13 +1284,7 @@ function_arglist_closed_nonbackup:
                                       try_string_variants ($2, $4),
                                       $3, $2, $4);
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist LYRICS_STRING
-       {
-               $$ = check_scheme_arg (parser, @4,
-                                      try_string_variants ($2, $4),
-                                      $3, $2, $4);
-       }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist lyric_markup
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist full_markup
        {
                $$ = check_scheme_arg (parser, @4, $4, $3, $2);
        }
@@ -1323,7 +1324,6 @@ symbol_list_part:
 
 symbol_list_element:
        STRING
-       | LYRICS_STRING
        | embedded_scm_bare
        ;
 
@@ -1366,11 +1366,11 @@ function_arglist_nonbackup_reparse:
                         (scm_call_1
                          ($2, make_music_from_simple
                           (parser, @4, $4))))
-                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+                       MYREPARSE (@4, $2, STRING, $4);
                else
                        MYREPARSE (@4, $2, SCM_ARG, $4);
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist LYRICS_STRING
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist STRING
        {
                $$ = $3;
                SCM res = try_string_variants ($2, $4);
@@ -1383,23 +1383,11 @@ function_arglist_nonbackup_reparse:
                         (scm_call_1
                          ($2, make_music_from_simple
                           (parser, @4, $4))))
-                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+                       MYREPARSE (@4, $2, STRING, $4);
                else
                        MYREPARSE (@4, $2, SCM_ARG, $4);
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist STRING
-       {
-               $$ = $3;
-               SCM res = try_string_variants ($2, $4);
-               if (!SCM_UNBNDP (res))
-                       if (scm_is_pair (res))
-                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
-                       else
-                               MYREPARSE (@4, $2, SCM_ARG, res);
-               else
-                       MYREPARSE (@4, $2, SCM_ARG, $4);
-       }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist lyric_markup
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist full_markup
        {
                $$ = $3;
                if (scm_is_true (scm_call_1 ($2, $4)))
@@ -1408,7 +1396,7 @@ function_arglist_nonbackup_reparse:
                         (scm_call_1
                          ($2, make_music_from_simple
                           (parser, @4, $4))))
-                       MYREPARSE (@4, $2, LYRICS_STRING, $4);
+                       MYREPARSE (@4, $2, STRING, $4);
                else
                        MYREPARSE (@4, $2, SCM_ARG, $4);
        }
@@ -1445,7 +1433,7 @@ function_arglist_backup:
                        MYBACKUP (EVENT_IDENTIFIER, $4, @4);
                }
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep lyric_markup
+       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep full_markup
        {
                if (scm_is_true (scm_call_1 ($2, $4)))
                        $$ = scm_cons ($4, $3);
@@ -1575,21 +1563,6 @@ function_arglist_backup:
                        MYBACKUP (STRING, $4, @4);
                }
        }
-       | EXPECT_OPTIONAL EXPECT_SCM function_arglist_keep LYRICS_STRING
-       {
-               SCM res = try_string_variants ($2, $4);
-               if (!SCM_UNBNDP (res))
-                       if (scm_is_pair (res)) {
-                               $$ = $3;
-                               MYREPARSE (@4, $2, SYMBOL_LIST, res);
-                       }
-                       else
-                               $$ = scm_cons (res, $3);
-               else {
-                       $$ = scm_cons (loc_on_music (@3, $1), $3);
-                       MYBACKUP (LYRICS_STRING, $4, @4);
-               }
-       }
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup BACKUP
        {
                $$ = scm_cons ($1, $3);
@@ -1679,20 +1652,6 @@ function_arglist_common_reparse:
                        MYREPARSE (@3, $1, SCM_ARG, $3);
        }
        | EXPECT_SCM function_arglist_optional STRING
-       {
-               $$ = $2;
-               SCM res = try_string_variants ($1, $3);
-               if (!SCM_UNBNDP (res))
-                       if (scm_is_pair (res))
-                               MYREPARSE (@3, $1, SYMBOL_LIST, res);
-                       else
-                               MYREPARSE (@3, $1, SCM_ARG, res);
-               else
-                       // This is going to flag a syntax error, we
-                       // know the predicate to be false.
-                       MYREPARSE (@3, $1, SCM_ARG, $3);
-       }
-       | EXPECT_SCM function_arglist_optional LYRICS_STRING
        {
                $$ = $2;
                SCM res = try_string_variants ($1, $3);
@@ -1710,7 +1669,7 @@ function_arglist_common_reparse:
                        // know the predicate to be false.
                        MYREPARSE (@3, $1, SCM_ARG, $3);
        }
-       | EXPECT_SCM function_arglist_optional lyric_markup
+       | EXPECT_SCM function_arglist_optional full_markup
        {
                $$ = $2;
                if (scm_is_true (scm_call_1 ($1, $3)))
@@ -2056,9 +2015,7 @@ property_operation:
                }
        }
        | REVERT revert_arg {
-               $$ = scm_list_3 (ly_symbol2scm ("pop"),
-                                scm_car ($2),
-                                scm_cdr ($2));
+               $$ = scm_cons (ly_symbol2scm ("pop"), $2);
        }
        ;
 
@@ -2307,9 +2264,6 @@ string:
 simple_string: STRING {
                $$ = $1;
        }
-       | LYRICS_STRING {
-               $$ = $1;
-       }
        | embedded_scm_bare
        {
                if (scm_is_string ($1)) {
@@ -2327,7 +2281,6 @@ scalar:
        | bare_number
        | FRACTION
        | lyric_element
-       | STRING
        ;
 
 scalar_closed:
@@ -2336,7 +2289,6 @@ scalar_closed:
        | bare_number
        | FRACTION
        | lyric_element
-       | STRING
        ;
 
 
@@ -2759,12 +2711,6 @@ gen_text_def:
                        make_simple_markup ($1));
                $$ = t->unprotect ();
        }
-       | LYRICS_STRING {
-               Music *t = MY_MAKE_MUSIC ("TextScriptEvent", @$);
-               t->set_property ("text",
-                       make_simple_markup ($1));
-               $$ = t->unprotect ();
-       }
        | embedded_scm_closed
        {
                Music *m = unsmob_music ($1);
@@ -3096,10 +3042,10 @@ simple_chord_elements:
        ;
 
 lyric_element:
-       lyric_markup {
+       full_markup {
                $$ = $1;
        }
-       | LYRICS_STRING {
+       | STRING {
                $$ = $1;
        }
        | LYRIC_ELEMENT
@@ -3107,6 +3053,8 @@ lyric_element:
 
 lyric_element_music:
        lyric_element optional_notemode_duration post_events {
+               if (!parser->lexer_->is_lyric_state ())
+                       parser->parser_error (@1, _ ("have to be in Lyric mode for lyrics"));
                $$ = MAKE_SYNTAX ("lyric-event", @$, $1, $2);
                if (scm_is_pair ($3))
                        unsmob_music ($$)->set_property
@@ -3267,19 +3215,6 @@ questions:
         }
        ;
 
-/*
-This should be done more dynamically if possible.
-*/
-
-lyric_markup:
-       LYRIC_MARKUP
-               { parser->lexer_->push_markup_state (); }
-       markup_top {
-               $$ = $3;
-               parser->lexer_->pop_state ();
-       }
-       ;
-
 full_markup_list:
        MARKUPLIST
                { parser->lexer_->push_markup_state (); }