// Copyright {Jagger Software Limited} 2003 #ifndef GRAMMAR_PREDICATE_SYMBOL_DEFINITION_INCLUDED #define GRAMMAR_PREDICATE_SYMBOL_DEFINITION_INCLUDED #include "grammar/symbol_definition.hpp" namespace grammar { template class predicate_symbol_definition // <> : public symbol_definition // {abstract} { public: // 'tors typedef bool (visitor_type::*named_method)(const symbol_definition &); predicate_symbol_definition(const key_type & key, const char * name, named_method ptr); // compiler generated non-virtual d'tor ok public: // visiting virtual bool accept(visitor &) const; private: // streaming virtual void write(::std::ostream &) const; private: // inappropriate predicate_symbol_definition(const predicate_symbol_definition &); void operator=(const predicate_symbol_definition &); private: // representation const named_method predicate; }; } #include "grammar/predicate_symbol_definition-template.hpp" #endif