-IMPLEMENT_IS_TYPE_B1(Score_engraver,Engraver_group_engraver);
-ADD_THIS_TRANSLATOR(Score_engraver);
-
-void
-Score_engraver::do_add_processing ()
-{
- Translator_group::do_add_processing ();
- assert (output_def_l_->is_type_b (Paper_def::static_name ()));
- assert (!daddy_trans_l_);
- pscore_p_ = new Paper_score;
- pscore_p_->paper_l_ = (Paper_def*)output_def_l_;
-}
+bool
+Score_engraver::try_music (Music *m)
+{
+ if (Engraver_group::try_music (m))
+ return true;
+
+ return false;
+}
+
+ADD_TRANSLATOR_GROUP (Score_engraver,
+ /* doc */ "Top level engraver. Takes care of generating columns and the complete system (ie. System) "
+ "\n\n "
+ "This engraver decides whether a column is breakable. The default is "
+ "that a column is always breakable. However, when every Bar_engraver "
+ "that does not have a barline at a certain point will call "
+ "Score_engraver::forbid_breaks to stop linebreaks. In practice, this "
+ "means that you can make a breakpoint by creating a barline (assuming "
+ "that there are no beams or notes that prevent a breakpoint.) ",
+ /* create */
+ "System ",
+
+ /* accept */
+ "break-event",
+ /* read */
+ "currentMusicalColumn "
+ "currentCommandColumn "
+ "verticallySpacedContexts",
+ /* write */
+ "");