lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parser error with self-defined predicate symbol-or-markup? in markup


From: Carl Sorensen
Subject: Re: Parser error with self-defined predicate symbol-or-markup? in markup function
Date: Mon, 31 Jan 2011 13:38:29 -0700

On 1/31/11 1:27 PM, "Reinhold Kainhofer" <address@hidden> wrote:

> Am Mittwoch, 26. Januar 2011, um 20:00:31 schrieb David Kastrup:
>> Reinhold Kainhofer <address@hidden> writes:
>>> I'm defining my own predicate symbol-or-markup? for the argument of a
>>> markup function.
> [...]
>>> but, as soon as I try to pass a markup, the parser complains that it
>>> expects an SCM_IDENTIFIER or SCM_TOKEN:
>>>     \markup \mytest "test" \bold "f"
>>> 
>>> markup-or-symbol.ly:15:21: Fehler: syntax error, unexpected STRING,
>>> expecting SCM_IDENTIFIER or SCM_TOKEN
>>> \markup \mytest "test
>>>                      " \bold "f"
>> 
>> markup? is specially detected and implemented in the parser.  It is
>> never actually called but rather used as a switch.
>> 
>> markup-or-symbol? isn't.  All predicates not recognized as markup? or
>> markup-list? expect a Scheme expression that will then be checked for
>> validity using the respective predicate.
> 
> Okay, so it is currently not possible to write a markup function that takes a
> markup or symbol (or any other scheme expression) as its argument?

It's possible to write a function that takes an argument of scheme? type,
and then see if it's a markup? inside the markup function.  You will just
need to generate your own warning message if the type isn't either a markup?
or a symbol?

HTH,

Carl




reply via email to

[Prev in Thread] Current Thread [Next in Thread]