[Top][All Lists]
[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