Skip to content

Commit

Permalink
Moved value translator instantation into itself.
Browse files Browse the repository at this point in the history
  • Loading branch information
azreika committed Oct 16, 2020
1 parent 16ea32d commit 48ccaca
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/ast2ram/AstToRamTranslator.cpp
Expand Up @@ -221,7 +221,7 @@ std::string AstToRamTranslator::getNewRelationName(const ast::Relation* rel) {

Own<ram::Expression> AstToRamTranslator::translateValue(const ast::Argument* arg, const ValueIndex& index) {
if (arg == nullptr) return nullptr;
return ValueTranslator(*this, index, getSymbolTable())(*arg);
return ValueTranslator::translate(*this, index, getSymbolTable(), *arg);
}

SymbolTable& AstToRamTranslator::getSymbolTable() {
Expand Down
5 changes: 5 additions & 0 deletions src/ast2ram/ValueTranslator.cpp
Expand Up @@ -37,6 +37,11 @@

namespace souffle::ast2ram {

Own<ram::Expression> ValueTranslator::translate(AstToRamTranslator& translator, const ValueIndex& index,
SymbolTable& symTab, const ast::Argument& arg) {
return ValueTranslator(translator, index, symTab)(arg);
}

Own<ram::Expression> ValueTranslator::visitVariable(const ast::Variable& var) {
assert(index.isDefined(var) && "variable not grounded");
return translator.makeRamTupleElement(index.getDefinitionPoint(var));
Expand Down
3 changes: 3 additions & 0 deletions src/ast2ram/ValueTranslator.h
Expand Up @@ -48,6 +48,9 @@ class ValueTranslator : public ast::Visitor<Own<ram::Expression>> {
ValueTranslator(AstToRamTranslator& translator, const ValueIndex& index, SymbolTable& symTab)
: translator(translator), index(index), symTab(symTab) {}

static Own<ram::Expression> translate(AstToRamTranslator& translator, const ValueIndex& index,
SymbolTable& symTab, const ast::Argument& arg);

Own<ram::Expression> visitVariable(const ast::Variable& var) override;
Own<ram::Expression> visitUnnamedVariable(const ast::UnnamedVariable& var) override;
Own<ram::Expression> visitNumericConstant(const ast::NumericConstant& c) override;
Expand Down

0 comments on commit 48ccaca

Please sign in to comment.