Implement knowledge base.

This commit is contained in:
chriseth
2019-06-20 18:43:37 +02:00
parent 1f9d11c644
commit 8572600401
3 changed files with 90 additions and 5 deletions
+6 -2
View File
@@ -27,7 +27,7 @@
namespace yul
{
class Dialect;
struct Dialect;
/**
* Class that can answer questions about values of variables and their relations.
@@ -42,12 +42,16 @@ public:
m_variableValues(_variableValues)
{}
bool knownToBeDifferent(YulString _a, YulString _b) const;
bool knownToBeDifferent(YulString _a, YulString _b);
bool knownToBeDifferentByAtLeast32(YulString _a, YulString _b);
bool knownToBeEqual(YulString _a, YulString _b) const { return _a == _b; }
private:
Expression simplify(Expression _expression);
Dialect const& m_dialect;
std::map<YulString, Expression const*> const& m_variableValues;
size_t m_recursionCounter = 0;
};
}