Issue 3401: Parser error with void function in music list
Problem code fixed:
test =
(symbol-list?))
{
\test Symbol
}
This patch is sort of a so-so fix for the problem: for one thing,
embedded_scm_closed should not have been able to end in a symbol list
in the first place since parsing those requires lookahead for '.'.
The grammar has now been changed to use embedded_scm, and just backs
up in the case a scheme function/identifier returns a markup in lyrics
mode (which can then be assembled with duration and post-events into a
more complex music expression). If parsing the source for the markup
required lookahead, the same error will be thrown.
But that use case of Scheme functions in Lyrics mode for generating
markups to be turned into lyric events is a lot more exotic than the
one triggering this issue. The current fix at least results in
predictable behavior outside of using Lyrics mode, and in particular
for uses of define-void-function.