+#include "context.hh"
+
+#include "engraver.hh"
+#include "spanner.hh"
+
+/*
+ TODO: junk nested slur functionality.
+ */
+class Slur_engraver : public Engraver
+{
+ Link_array<Music> events_;
+ Link_array<Music> new_slur_evs_;
+ Link_array<Grob> slur_stack_;
+ Link_array<Grob> end_slurs_;
+ Moment last_start_;
+
+ void set_melisma (bool);
+
+protected:
+ virtual bool try_music (Music*);
+ virtual void acknowledge_grob (Grob_info);
+ virtual void stop_translation_timestep ();
+ virtual void finalize ();
+ virtual void process_music ();
+
+public:
+ TRANSLATOR_DECLARATIONS (Slur_engraver);
+};
+
+Slur_engraver::Slur_engraver ()
+{
+ last_start_ = Moment (-1);
+}