]> git.donarmstrong.com Git - lilypond.git/commitdiff
parser: more specific error messages; issue 3300
authorKeith OHara <k-ohara5a5a@oco.net>
Mon, 8 Apr 2013 01:18:02 +0000 (18:18 -0700)
committerKeith OHara <k-ohara5a5a@oco.net>
Wed, 4 Sep 2013 21:18:49 +0000 (14:18 -0700)
lily/parser.yy

index 48dc5680b3bc5cae6b1d16fa962a50b68e2e8d96..e6eb1c7435dd5242263f9f2b046cd38f4ea0a6ea 100644 (file)
@@ -2328,7 +2328,8 @@ scalar:
        | SCM_IDENTIFIER
        | bare_number
        | FRACTION
-       | lyric_element
+       | STRING
+       | full_markup
        ;
 
 scalar_closed:
@@ -2336,7 +2337,8 @@ scalar_closed:
        | SCM_IDENTIFIER
        | bare_number
        | FRACTION
-       | lyric_element
+       | STRING
+       | full_markup
        ;
 
 
@@ -3016,9 +3018,13 @@ simple_chord_elements:
 
 lyric_element:
        full_markup {
+               if (!parser->lexer_->is_lyric_state ())
+                       parser->parser_error (@1, _ ("markup outside of text script or \\lyricmode"));
                $$ = $1;
        }
        | STRING {
+               if (!parser->lexer_->is_lyric_state ())
+                       parser->parser_error (@1, _ ("unrecognized string, not in text script or \\lyricmode"));
                $$ = $1;
        }
        | LYRIC_ELEMENT
@@ -3026,8 +3032,6 @@ 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