]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/identifier.hh
release: 0.1.11
[lilypond.git] / lily / include / identifier.hh
index 49c7b954db0c86b4daedb71492f4fbc03c341a5b..935f962e39df71e631c85714755f154c34295025 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  identifier.hh -- part of LilyPond
+  identifier.hh -- part of GNU LilyPond
 
   (c) 1996,97 Han-Wen Nienhuys
 */
@@ -7,67 +7,70 @@
 #ifndef IDENTIFIER_HH
 #define IDENTIFIER_HH
 
-#include "proto.hh"
+#include "lily-proto.hh"
 #include "string.hh"
 #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;
-    virtual char const *classname() const{ return "new Identifier"; }
-    void error(String);
-    IDACCESSOR(Input_staff, staff)
-    IDACCESSOR(Input_music, music)
-    IDACCESSOR(Music_voice, mvoice)
-    IDACCESSOR(Input_register, iregs)  
-              
-    IDACCESSOR(Script_def, script)
+    void print() const;
+    DECLARE_MY_RUNTIME_TYPEINFO;
+    void error (String);
+    IDACCESSOR(Input_translator, input_translator)
+    IDACCESSOR(Music, music)
+    IDACCESSOR(General_script_def, script)
     IDACCESSOR(Symtables, symtables)
-    IDACCESSOR(Music_general_chord, mchord)
+    IDACCESSOR(Midi_def, mididef)
+    IDACCESSOR(Paper_def, paperdef)
     IDACCESSOR(Lookup,lookup)
     IDACCESSOR(Real,real)
     IDACCESSOR(Request, request)
-    IDACCESSOR(Input_score, score)
+    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 {\
-       virtual char const *classname()const;\
-       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, Script_def, script);
-declare_id_class(Lookup_id, Lookup, lookup);
-declare_id_class(Symtables_id, Symtables, symtables);
-declare_id_class(Staff_id, Input_staff, staff);
-declare_id_class(M_chord_id, Music_general_chord, mchord);
-declare_id_class(M_voice_id, Music_voice, mvoice);
-declare_id_class(Score_id, Input_score, score);
-declare_id_class(Request_id, Request, request);
-declare_id_class(Input_regs_id, Input_register, iregs);
-
+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_