// Copyright {Jagger Software Limited} 2003 #ifndef GRAMMAR_QUALIFIED_SYMBOL_DEFINITION_INCLUDED #define GRAMMAR_QUALIFIED_SYMBOL_DEFINITION_INCLUDED #include "grammar/infinity.hpp" #include "grammar/key_type.hpp" #include "grammar/multiplicity.hpp" #include namespace grammar { class symbol_definition; class visitor; class qualified_symbol_definition // <> { public: // 'tors qualified_symbol_definition ( const symbol_definition & qualified, size_t lo, size_t hi ); qualified_symbol_definition ( const symbol_definition & qualified, size_t lo, infinity_type hi ); // compiler generated copy c'tor ok // compiler generated non-virtual d'tor ok public: // attributes const grammar::symbol_definition & symbol_definition; const grammar::multiplicity multiplicity; const key_type key; public: // visiting bool accept(visitor &) const; }; // streaming ::std::ostream & operator<<(::std::ostream &, const qualified_symbol_definition &); } #endif