From: Carl Sorensen Date: Fri, 13 Nov 2009 19:00:31 +0000 (-0700) Subject: DOC -- Updtates to programming section of CG X-Git-Tag: release/2.13.8-1~42 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0ee593365a6f758c0e4d76c548a086bca3e9740b;p=lilypond.git DOC -- Updtates to programming section of CG --- diff --git a/Documentation/contributor/programming-work.itexi b/Documentation/contributor/programming-work.itexi index a5d38360de..142201214f 100644 --- a/Documentation/contributor/programming-work.itexi +++ b/Documentation/contributor/programming-work.itexi @@ -1065,6 +1065,7 @@ of the following: @item @code{stop_translation_timestep ()} @item @code{derived_mark ()} @item @code{try_music ()} +@item @code{finalize ()} @end itemize There are also protected functions that are specific to particular @@ -1079,12 +1080,38 @@ macros including one or more of the following: @item @code{DECLARE_END_ACKNOWLEDGER (grob)} @end itemize +@noindent where @var{grob} is the type of grob with which the engraver works. These macros declare the kinds of grobs that will be processed by the engraver. +An engraver will also generally have a public macro + +@itemize +@item @code{TRANSLATOR_DECLARATIONS (Engraver_name)} +@end itemize + +@noindent +where @code{Engraver_name} is the name of the engraver. + +At the end of the engraver file, the following macros are generally +called: + +@itemize +@item @code{ADD_ACKNOWLEDGER (Engraver_name, grob)} +@item @code{ADD_TRANSLATOR (Engraver_name, Engraver_doc, + Engraver_creates, Engraver_reads, Engraver_writes)} +@end itemize +@noindent +where @code{Engraver_name} is the name of the engraver, @code{grob} +is a placeholder for a grob that will be acknowledged, +@code{Engraver_doc} is a docstring for the engraver, +@code{Engraver_creates} is the grob created by the engraver, +@code{Engraver_reads} is the set of properties read by the engraver, +and @code{Engraver_writes} is the set of properties written by +the engraver. @node Callback tutorial @section Callback tutorial