]> git.donarmstrong.com Git - lilypond.git/commit
Add basic scheme programmable engravers.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 31 Dec 2009 04:49:04 +0000 (02:49 -0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 9 Jan 2010 03:38:01 +0000 (01:38 -0200)
commitddd59edaae68e71d5d3ea2576b3d0d25807fb500
tree42519bc11cb270c3f24d2d59d4d74811b81036ac
parente817ee7b3df9586086d7ac2689f3b6a4cc92d2d2
Add basic scheme programmable engravers.

* input/regression/scheme-engraver.ly shows a basic example.

* extend \consists syntax to accept an alist of callables.

* add Scheme_engraver which is the C++ glue to the Scheme callables.

* Make get_listener_ in translator_listener_record also pass the
  listened class, so we can use generic infrastructure for hooking
  scheme functions to event listeners.

* add scheme bindings:

  - ly:translator-context
  - ly:context-moment
  - ly:engraver-make-grob

* Remove Translator::must_be_last_.  Use virtual method must_be_last
  () const instead.
17 files changed:
input/regression/scheme-engraver.ly [new file with mode: 0644]
lily/axis-group-engraver.cc
lily/context-def.cc
lily/context-scheme.cc
lily/engraver-scheme.cc [new file with mode: 0644]
lily/engraver.cc
lily/include/axis-group-engraver.hh
lily/include/engraver.hh
lily/include/lily-proto.hh
lily/include/scheme-engraver.hh [new file with mode: 0644]
lily/include/translator.hh
lily/include/translator.icc
lily/parser.yy
lily/scheme-engraver.cc [new file with mode: 0644]
lily/translator-group.cc
lily/translator-scheme.cc
lily/translator.cc