]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/identifier.hh
release: 0.1.11
[lilypond.git] / lily / include / identifier.hh
index 1fca04eee3f4f780c390d2602352026aa47f9b46..935f962e39df71e631c85714755f154c34295025 100644 (file)
 #include "input.hh"
 #include "virtual-methods.hh"
 
-/* boolean argument to accesor is copy_b..*/
 #define IDACCESSOR( Input_staff, staff)\
-    virtual Input_staff * staff(bool) { error(#Input_staff); return 0; }
+    virtual Input_staff * staff () { error (#Input_staff); return 0; }
 
+/**
+   A declarable data structure in mudela. 
 
+
+   */
 struct Identifier : public Input {
-    void *data;
-    String name_str_;
     bool init_b_;
     bool accessed_b_;
     int token_code_i_;
     
-    Identifier(String n, int code) ;
+    Identifier (int code) ;
     virtual ~Identifier() ;
 
-    void print()const;
-    NAME_MEMBERS();
-    void error(String);
+    void print() const;
+    DECLARE_MY_RUNTIME_TYPEINFO;
+    void error (String);
+    IDACCESSOR(Input_translator, input_translator)
     IDACCESSOR(Music, music)
-    IDACCESSOR(Input_engraver, igravs) 
     IDACCESSOR(General_script_def, script)
     IDACCESSOR(Symtables, symtables)
+    IDACCESSOR(Midi_def, mididef)
     IDACCESSOR(Paper_def, paperdef)
     IDACCESSOR(Lookup,lookup)
     IDACCESSOR(Real,real)
     IDACCESSOR(Request, request)
     IDACCESSOR(Score, score)
     IDACCESSOR(int, intid)
+    IDACCESSOR(Duration, duration)
 
 protected:
-    virtual void do_print()const=0;
+    virtual void do_print() const=0;
 private:
-    Identifier(Identifier const&);
+    Identifier (Identifier const&);
 };
 
-#define declare_id_class(Idclass, Class, accessor)     \
+#define DECLARE_ID_CLASS(Idclass, Class, accessor)     \
 struct Idclass : Identifier {\
-        NAME_MEMBERS();                            \
-       Idclass(String s, Class*st, int code);\
-       virtual Class* accessor(bool copy);\
+       Class *data_p_;              \
+        DECLARE_MY_RUNTIME_TYPEINFO;                       \
+       Idclass (Class*st, int code);\
+       virtual Class* accessor ();\
        ~Idclass();\
-       virtual void do_print()const; \
+       virtual void do_print() const; \
 }\
 
 
-
-declare_id_class(Real_id, Real, real);
-declare_id_class(Script_id, General_script_def, script);
-declare_id_class(Lookup_id, Lookup, lookup);
-declare_id_class(Symtables_id, Symtables, symtables);
-declare_id_class(Music_id, Music, music);
-declare_id_class(Int_id, int, intid);
-declare_id_class(Score_id, Score, score);
-declare_id_class(Request_id, Request, request);
-declare_id_class(Input_gravs_id, Input_engraver, igravs);
-declare_id_class(Paper_def_id,Paper_def, paperdef);
+DECLARE_ID_CLASS(Input_translator_id, Input_translator, input_translator);
+DECLARE_ID_CLASS(Duration_id, Duration, duration);
+DECLARE_ID_CLASS(Real_id, Real, real);
+DECLARE_ID_CLASS(Script_id, General_script_def, script);
+DECLARE_ID_CLASS(Lookup_id, Lookup, lookup);
+DECLARE_ID_CLASS(Symtables_id, Symtables, symtables);
+DECLARE_ID_CLASS(Music_id, Music, music);
+DECLARE_ID_CLASS(Int_id, int, intid);
+DECLARE_ID_CLASS(Score_id, Score, score);
+DECLARE_ID_CLASS(Request_id, Request, request);
+DECLARE_ID_CLASS(Paper_def_id,Paper_def, paperdef);
+DECLARE_ID_CLASS(Midi_def_id,Midi_def, mididef);
 #endif // IDENTIFIER_