#include "pitch.hh"
/**
- State for the parser. Do not ever add any variables to parse
- musical content here. We still have to remove default_duration_.
+ State for the parser.
TODO: interface is too complicated
*/
-class Lily_parser
+class Lily_parser : public Smob<Lily_parser>
{
- DECLARE_SMOBS (Lily_parser);
-
- char const *here_str0 () const;
- Simultaneous_music *get_chord (Pitch tonic,
- vector<Pitch> *adds, vector<Pitch> *subs,
- Pitch *inversion, Pitch *bass, Duration d);
- void set_chord_tremolo (int type);
- void set_last_duration (Duration const *);
- void set_last_pitch (Pitch const *);
-
public:
+ static int print_smob (SCM, SCM, scm_print_state *);
+ static SCM mark_smob (SCM);
+ static const char type_p_name_[];
+ virtual ~Lily_parser ();
Lily_lexer *lexer_;
Sources *sources_;
Duration default_duration_;
+ int default_tremolo_type_;
string output_basename_;
SCM closures_;
SCM make_scope () const;
};
-DECLARE_UNSMOB (Lily_parser, lily_parser);
Output_def *get_layout (Lily_parser *parser);
Output_def *get_midi (Lily_parser *parser);