]> git.donarmstrong.com Git - lilypond.git/blob - identifier.hh
release: 0.0.8
[lilypond.git] / identifier.hh
1
2 /*
3   identifier.hh -- part of LilyPond
4
5   (c) 1996 Han-Wen Nienhuys
6 */
7
8 #ifndef IDENTIFIER_HH
9 #define IDENTIFIER_HH
10 #include "proto.hh"
11 #include "string.hh"
12
13 struct Identifier
14 {
15     void *data;
16     String name;
17     
18     Identifier(String n) ;
19     virtual ~Identifier();
20     virtual Staff * staff() { assert(false); }
21     virtual Voice * voice() { assert(false); }
22 };
23
24 struct Staff_id : Identifier {
25     Staff_id(String s, Staff*st):Identifier(s) { data = st; }
26     virtual Staff* staff() { return (Staff*) data; }
27     ~Staff_id();
28 };
29
30 struct Voice_id : Identifier {
31     Voice_id(String s, Voice*st):Identifier(s) { data = st; }
32     virtual Voice * voice() { return (Voice*)data; }
33     ~Voice_id();
34 };
35 #endif // IDENTIFIER_HH
36