X-Git-Url: https://git.donarmstrong.com/?p=lilypond.git;a=blobdiff_plain;f=lily%2Flexer.ll;h=19f84616f36ca3d38179f397daddfb1291a1d9ab;hp=93184ebe085dc2d432274a06d4eeb887e565fe01;hb=da2cbdd4623e5ea51a2a99de4f2935b37195136e;hpb=3278a7a8108ffdd2da3d1b58d05aba7c1b2a5707 diff --git a/lily/lexer.ll b/lily/lexer.ll index 93184ebe08..19f84616f3 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -684,18 +684,8 @@ BOM_UTF8 \357\273\277 // value (for token type MARKUP_FUNCTION or // MARKUP_LIST_FUNCTION). - push_extra_token (here_input (), EXPECT_NO_MORE_ARGS); - s = scm_cdr(s); - for (; scm_is_pair(s); s = scm_cdr(s)) { - SCM predicate = scm_car(s); - - if (scm_is_eq (predicate, SCM (Lily::markup_list_p))) - push_extra_token (here_input (), EXPECT_MARKUP_LIST); - else if (scm_is_eq (predicate, SCM (Lily::markup_p))) - push_extra_token (here_input (), EXPECT_MARKUP); - else - push_extra_token (here_input (), EXPECT_SCM, predicate); - } + push_markup_predicates (scm_cdr (s)); + return token_type; } [^$#{}\"\\ \t\n\r\f]+ { @@ -892,6 +882,23 @@ Lily_lexer::pop_state () } +void +Lily_lexer::push_markup_predicates (SCM sig) +{ + push_extra_token (here_input (), EXPECT_NO_MORE_ARGS); + for (SCM s = sig; scm_is_pair(s); s = scm_cdr(s)) { + SCM predicate = scm_car(s); + + if (scm_is_eq (predicate, SCM (Lily::markup_list_p))) + push_extra_token (here_input (), EXPECT_MARKUP_LIST); + else if (scm_is_eq (predicate, SCM (Lily::markup_p))) + push_extra_token (here_input (), EXPECT_MARKUP); + else + push_extra_token (here_input (), EXPECT_SCM, predicate); + } +} + + int Lily_lexer::identifier_type (SCM sid) {