From 0718677f18d8611a3976dee93785a5264869f69b Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Mon, 17 Oct 2011 01:42:50 +0200 Subject: [PATCH] programming-interface.itely: explain extended function argument semantics --- .../extending/programming-interface.itely | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index 4870be7345..aaca71c9b3 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -146,20 +146,21 @@ given the correct @code{origin}. @end multitable @noindent -Some type predicates are specially recognized by the parser and will -make the parser look for the respective arguments in LilyPond syntax -rather than in Scheme syntax. Currently these are @code{ly:music?}, -@code{markup?}, @code{ly:pitch?}, and @code{ly:duration?}. +Some type predicates are specially handled by the parser since it +can't recognize the arguments reliably otherwise. Currently these are +@code{ly:music?}, @code{ly:pitch?}, and @code{ly:duration?}. + +All other predicates can be specified in Scheme syntax if desired +(introduced with @code{#} or as the result of calling a scheme +function), but Lilypond will also accept a number of Lilypond +constructs it can recognize fully without lookahead. Currently, those +include simple strings (with or without quotes), context +modifications, full markups and markup lists. If you really want to input one of the special items as a Scheme rather than a LilyPond expression, you may write them as a Scheme expression that calls @code{ly:export} at its outermost level. -Other type predicates, including user-defined ones, will make the -respective argument only be accepted as a Scheme expression, usually -introduced with @code{#} or as the result of calling a scheme function -itself. - For a list of available type predicates, see @ruser{Predefined type predicates}. -- 2.39.5