;;;
;;; source file of the GNU LilyPond music typesetter
;;;
-;;; (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;; (c) 2000--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
;;; Jan Nieuwenhuizen <janneke@gnu.org>
;; First level Engraver description and
;; second level Context description
(define (document-engraver where engraver-descr)
-
(let* (
(level (if (eq? where 'context) 3 2))
(props (car (cdddr engraver-descr)))
(name (car engraver-descr))
+ (name-sym (string->symbol name))
(desc (cadr engraver-descr))
- (objs (caddr engraver-descr))
+ (objs (map symbol->string (caddr engraver-descr)))
)
(string-append
(if (null? objs)
""
(string-append
- "This engraver creates \n "
- (human-listify (map reffy (map element-name objs)))
- " elements.")
+ "This engraver creates the following grobs: \n "
+ (human-listify (map ref-ify (uniq-list (sort objs string<? ))))
+ ".")
)
"\n\n"
(cdr (assoc 'consists x))
(cdr (assoc 'end-consists x)))))
- (if (member name consists)
+ (if (member name-sym consists)
(list context)
'())))
context-description-alist))))
(string-append
name " is part of contexts: "
- (human-listify (map reffy (map context-name contexts))))))))
+ (human-listify (map ref-ify (map context-name contexts))))))))
;; First level Engraver description
(cdr (assoc 'consists context-desc))
(cdr (assoc 'end-consists context-desc))
))
+ (grobs (context-grobs context-desc))
+ (grob-refs (map (lambda (x) (ref-ify x)) grobs))
)
(string-append
desc
+ "\n\nThis context creates the following grobs: \n\n"
+ (human-listify (uniq-list (sort grob-refs string<? )))
+ "."
(if (null? accepts)
"This context is a `bottom' context; it can not contain other contexts."
(string-append
+ "\n\nContext "
name " can contain \n"
- (human-listify (map reffy (map context-name accepts)))))
+ (human-listify (map ref-ify (map context-name accepts)))))
"\n\nThis context is built from the following engravers: "
(if no-copies
- (human-listify (map reffy (map engraver-name consists)))
+ (human-listify (map ref-ify (map engraver-name consists)))
(apply string-append
(map document-engraver-by-name consists))))))
+(define (engraver-grobs name)
+ (let* (
+ (eg (assoc (string->symbol name) engraver-description-alist))
+ )
+
+ (if (eq? eg #f)
+ '()
+ (map symbol->string (caddr (cdr eg)))
+ )
+ ))
+
+(define (context-grobs context-desc)
+ (let* (
+ (consists (append
+ (list (cdr (assoc 'group-type context-desc)))
+ (cdr (assoc 'consists context-desc))
+ (cdr (assoc 'end-consists context-desc))
+ ))
+ (grobs (apply append
+ (map engraver-grobs consists))
+ )
+ )
+ grobs
+ ))
+
;; First level Context description
(define (document-context top context-desc)
(texi-section 2 (context-name name) #f)
doc)))
+(define (symbol<? l r)
+ (string<? (symbol->string l) (symbol->string r)))
(define (document-paper name)
(let* ((paper-alist
(sort (My_lily_parser::paper_description)
- (lambda (x y) (string<? (car x) (car y)))))
- (names (sort (map car paper-alist) string<?))
+ (lambda (x y) (symbol<? (car x) (car y)))))
+ (names (sort (map symbol->string (map car paper-alist)) string<?))
(contexts (map cdr paper-alist))
(doc (apply string-append
(map (lambda (x) (document-context name x)) contexts))))
(define (document-all-engravers name)
(let* ((descs (map cdr engraver-description-alist))
- (names (map car engraver-description-alist))
+ (names (map symbol->string (map car engraver-description-alist)))
(doc (apply string-append
(map (lambda (x) (document-separate-engraver name x))
descs))))
-
(string-append
(texi-node-menu name (map (lambda (x) (cons (engraver-name x) ""))
names))
doc)))
(define (document-all-engraver-properties name)
- (let*
- (
- (ps (sort (map symbol->string all-translation-properties) string<?))
- (sortedsyms (map string->symbol ps))
- (propdescs (map document-translator-property sortedsyms))
- (texi (description-list->texi propdescs))
- )
+ (let* ((ps (sort (map symbol->string all-translation-properties) string<?))
+ (sortedsyms (map string->symbol ps))
+ (propdescs (map document-translator-property sortedsyms))
+ (texi (description-list->texi propdescs)))
(string-append
(node name)
(texi-section 1 name #f)
- texi
- )))
+ texi)))