X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fparser.yy;h=0bb4c152f273455dd1e02f201803e66d8eeaa685;hb=f3961fcc4d9b694786d3004b1f83862cc957051c;hp=031e117e9022e7aff87bda04900b30f4f1a0df38;hpb=1c846b2c2348b4e0ca4a3c2e8fb267047ba2d203;p=lilypond.git diff --git a/lily/parser.yy b/lily/parser.yy index 031e117e90..0bb4c152f2 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -290,6 +290,7 @@ If we give names, Bison complains. %token MARKUP_FUNCTION %token MARKUP_LIST_FUNCTION %token MARKUP_IDENTIFIER +%token MARKUPLINES_IDENTIFIER %token MUSIC_FUNCTION %token MUSIC_IDENTIFIER %token NOTENAME_PITCH @@ -615,6 +616,9 @@ identifier_init: | full_markup { $$ = $1; } + | full_markup_list { + $$ = $1; + } | DIGIT { $$ = scm_from_int ($1); } @@ -908,19 +912,13 @@ output_def_body: tempo_event: TEMPO steno_duration '=' tempo_range { - $$ = MAKE_SYNTAX ("tempo", @$, SCM_BOOL_F, $2, $4); + $$ = MAKE_SYNTAX ("tempo", @$, SCM_EOL, $2, $4); } - | TEMPO string steno_duration '=' tempo_range { - $$ = MAKE_SYNTAX ("tempo", @$, make_simple_markup($2), $3, $5); - } - | TEMPO full_markup steno_duration '=' tempo_range { + | TEMPO scalar steno_duration '=' tempo_range { $$ = MAKE_SYNTAX ("tempo", @$, $2, $3, $5); } - | TEMPO string { - $$ = MAKE_SYNTAX ("tempoText", @$, make_simple_markup($2) ); - } - | TEMPO full_markup { - $$ = MAKE_SYNTAX ("tempoText", @$, $2 ); + | TEMPO scalar { + $$ = MAKE_SYNTAX ("tempo", @$, $2); } ; @@ -2401,7 +2399,10 @@ lyric_markup: ; full_markup_list: - MARKUPLINES + MARKUPLINES_IDENTIFIER { + $$ = $1; + } + | MARKUPLINES { PARSER->lexer_->push_markup_state (); } markup_list { $$ = $3; @@ -2434,7 +2435,10 @@ markup_top: ; markup_list: - markup_composed_list { + MARKUPLINES_IDENTIFIER { + $$ = $1; + } + | markup_composed_list { $$ = $1; } | markup_braced_list { @@ -2627,6 +2631,9 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid) if (is_lyric_state ()) return LYRIC_MARKUP_IDENTIFIER; return MARKUP_IDENTIFIER; + } else if (Text_interface::is_markup_list (sid)) { + *destination = sid; + return MARKUPLINES_IDENTIFIER; } return -1;