Skip to content

Commit

Permalink
Added interface for constraint translation that should be used.
Browse files Browse the repository at this point in the history
  • Loading branch information
azreika committed Oct 19, 2020
1 parent 2a5642e commit 9d70b53
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/ast2ram/AstToRamTranslator.cpp
Expand Up @@ -226,7 +226,8 @@ SymbolTable& AstToRamTranslator::getSymbolTable() {

Own<ram::Condition> AstToRamTranslator::translateConstraint(
const ast::Literal* lit, const ValueIndex& index) {
return ConstraintTranslator(*this, index)(*lit);
assert(lit != nullptr && "literal should be defined");
return ConstraintTranslator::translate(*this, index, *lit);
}

RamDomain AstToRamTranslator::getConstantRamRepresentation(const ast::Constant& constant) {
Expand Down
5 changes: 5 additions & 0 deletions src/ast2ram/ConstraintTranslator.cpp
Expand Up @@ -28,6 +28,11 @@

namespace souffle::ast2ram {

Own<ram::Condition> ConstraintTranslator::translate(
AstToRamTranslator& translator, const ValueIndex& index, const ast::Literal& lit) {
return ConstraintTranslator(translator, index)(lit);
}

Own<ram::Condition> ConstraintTranslator::visitAtom(const ast::Atom&) {
return nullptr; // covered already within the scan/lookup generation step
}
Expand Down
2 changes: 2 additions & 0 deletions src/ast2ram/ConstraintTranslator.h
Expand Up @@ -38,6 +38,8 @@ class ConstraintTranslator : public ast::Visitor<Own<ram::Condition>> {
ConstraintTranslator(AstToRamTranslator& translator, const ValueIndex& index)
: translator(translator), index(index) {}

static Own<ram::Condition> translate(AstToRamTranslator& translator, const ValueIndex& index, const ast::Literal& lit);

/** -- Visitors -- */
Own<ram::Condition> visitAtom(const ast::Atom&) override;
Own<ram::Condition> visitBinaryConstraint(const ast::BinaryConstraint& binRel) override;
Expand Down

0 comments on commit 9d70b53

Please sign in to comment.