#ifndef _CONCEPT_H #define _CONCEPT_H #include #include #include #include namespace smo { namespace concepts { class Comparator : public MentalEntity, public logic::Operand { public: /** EXPLANATION: * The reference for a Comparator is the fixed mentity or range of mentities * that this comparator is intended to validate a match against. * * There are several mentities against which a comparator can match. At the * time of writing, we're fairly sure that these will be at minimum, * qualia, chronomena and mentena. */ std::shared_ptr reference; }; class ComparatorExpression : public logic::UnaryExpression { public: ComparatorExpression( logic::Operator &op, std::shared_ptr &comparator ) : logic::UnaryExpression( op, std::static_pointer_cast(comparator)) {} }; class CombinatorialLogicExpression : public MentalEntity, public logic::Expression { public: }; typedef CombinatorialLogicExpression Concept; } // namespace concept } // namespace smo #endif