Restore logic.h which was unintentionally deleted previously

This commit is contained in:
2025-12-02 14:11:20 -04:00
parent 30f599cde3
commit 33681059b0
2 changed files with 67 additions and 2 deletions
+2 -2
View File
@@ -3,10 +3,10 @@
#include <vector>
#include <memory>
#include <user/logic.h>
#include <mentalEntity.h>
#include <concept.h>
#include <user/stimFrame.h>
#include <user/logic.h>
#include <user/stimulusFrame.h>
namespace smo {
namespace cologex {
+65
View File
@@ -0,0 +1,65 @@
#ifndef _LOGIC_H
#define _LOGIC_H
#include <memory>
#include <vector>
namespace smo {
namespace logic {
class ExpressionPart
{
};
class Operator
: public ExpressionPart
{
};
class OperatorAnd
: public Operator
{
};
class OperatorOr
: public Operator
{
};
class OperatorNot
: public Operator
{
};
class Operand
: public ExpressionPart
{
};
class UnaryExpression
: public ExpressionPart
{
public:
UnaryExpression(Operator &op, const std::shared_ptr<Operand> &operand)
: parts(std::make_pair(op, operand))
{}
public:
std::pair<Operator, std::shared_ptr<Operand>> parts;
};
// Expressions can be chained as parts of a larger expression
class Expression
: public ExpressionPart
{
public:
// This will eventually take in some data to be evaluated for a match.
virtual bool evaluate(void) = 0;
public:
std::vector<std::shared_ptr<ExpressionPart>> parts;
};
} // namespace logic
} // namespace smo
#endif