souffle  2.0.2-371-g6315b36
ProvenanceClauseTranslator.h
Go to the documentation of this file.
1 /*
2  * Souffle - A Datalog Compiler
3  * Copyright (c) 2018 The Souffle Developers. All rights reserved
4  * Licensed under the Universal Permissive License v 1.0 as shown at:
5  * - https://opensource.org/licenses/UPL
6  * - <souffle root>/licenses/SOUFFLE-UPL.txt
7  */
8 
9 /************************************************************************
10  *
11  * @file ProvenanceClauseTranslator.h
12  *
13  * Clause translator when provenance is used
14  *
15  ***********************************************************************/
16 
17 #pragma once
18 
20 
21 namespace souffle::ast {
22 class Clause;
23 }
24 
25 namespace souffle::ram {
26 class Condition;
27 class Operation;
28 } // namespace souffle::ram
29 
30 namespace souffle::ast2ram {
31 
32 class AstToRamTranslator;
33 
35 public:
37 
38 protected:
39  Own<ram::Operation> createOperation(const ast::Clause& clause) override;
40  Own<ram::Condition> createCondition(const ast::Clause& originalClause) override;
41 };
42 } // namespace souffle::ast2ram
souffle::ast2ram::ClauseTranslator::translator
AstToRamTranslator & translator
Definition: ClauseTranslator.h:49
souffle::Own
std::unique_ptr< A > Own
Definition: ContainerUtil.h:42
souffle::ast::Clause
Intermediate representation of a horn clause.
Definition: Clause.h:51
souffle::ast2ram::ProvenanceClauseTranslator::createCondition
Own< ram::Condition > createCondition(const ast::Clause &originalClause) override
Definition: ProvenanceClauseTranslator.cpp:37
souffle::ram
Definition: AstToRamTranslator.h:54
souffle::ast2ram::ProvenanceClauseTranslator::createOperation
Own< ram::Operation > createOperation(const ast::Clause &clause) override
Definition: ProvenanceClauseTranslator.cpp:41
souffle::ast2ram::ClauseTranslator
Definition: ClauseTranslator.h:41
souffle::ast2ram::ProvenanceClauseTranslator
Definition: ProvenanceClauseTranslator.h:34
souffle::ast2ram::AstToRamTranslator
Main class for the AST->RAM translator.
Definition: AstToRamTranslator.h:71
souffle::ast2ram
Definition: AstToRamTranslator.cpp:132
souffle::ast
Definition: Aggregator.h:35
ClauseTranslator.h
souffle::ast2ram::ProvenanceClauseTranslator::ProvenanceClauseTranslator
ProvenanceClauseTranslator(AstToRamTranslator &translator)
Definition: ProvenanceClauseTranslator.h:36