(define (compile-all-markup-expressions expr)
- "Return a list of canonical markups expressions, eg:
+ "Return a list of canonical markups expressions, e.g.:
(#:COMMAND1 arg11 arg12 #:COMMAND2 arg21 arg22 arg23)
===>
((make-COMMAND1-markup arg11 arg12)
(set! rest r))))
(define (keyword->make-markup key)
- "Transform a keyword, eg. #:COMMAND, in a make-COMMAND-markup symbol."
+ "Transform a keyword, e.g. #:COMMAND, in a make-COMMAND-markup symbol."
(string->symbol (string-append "make-" (symbol->string (keyword->symbol key)) "-markup")))
(define (compile-markup-expression expr)
"Return two values: the first complete canonical markup expression found in `expr',
-eg (make-COMMAND-markup arg1 arg2 ...), and the rest expression."
+e.g. (make-COMMAND-markup arg1 arg2 ...), and the rest expression."
(cond ((and (pair? expr)
(keyword? (car expr)))
;; expr === (#:COMMAND arg1 ...)
;; expr === ((#:COMMAND arg1 ...) ...)
(receive (m r) (compile-markup-expression (car expr))
(values m (cdr expr))))
+ ((and (pair? expr)
+ (string? (car expr))) ;; expr === ("string" ...)
+ (values `(make-simple-markup ,(car expr)) (cdr expr)))
(else
- ;; expr === (symbol ...) or ("string" ...) or ((funcall ...) ...)
+ ;; expr === (symbol ...) or ((funcall ...) ...)
(values (car expr)
(cdr expr)))))
(ly:stencil? (cadr stencils)))
(let* ((tail (stack-stencil-line space (cdr stencils)))
(head (car stencils))
- (xoff (+ space (cdr (ly:stencil-get-extent head X)))))
+ (xoff (+ space (cdr (ly:stencil-extent head X)))))
(ly:stencil-add head
(ly:stencil-translate-axis tail xoff X)))
(car stencils))