souffle
2.0.2-371-g6315b36
ast
transform
ReduceExistentials.h
Go to the documentation of this file.
1
/*
2
* Souffle - A Datalog Compiler
3
* Copyright (c) 2015, Oracle and/or its affiliates. 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 ReduceExistentials.h
12
*
13
* Transformation pass to reduce unnecessary computation for
14
* relations that only appear in the form A(_,...,_).
15
*
16
***********************************************************************/
17
18
#pragma once
19
20
#include "
ast/TranslationUnit.h
"
21
#include "
ast/transform/Transformer.h
"
22
#include <string>
23
24
namespace
souffle::ast::transform
{
25
26
/**
27
* Transformation pass to reduce unnecessary computation for
28
* relations that only appear in the form A(_,...,_).
29
*/
30
class
ReduceExistentialsTransformer :
public
Transformer {
31
public
:
32
std::string
getName
()
const override
{
33
return
"ReduceExistentialsTransformer"
;
34
}
35
36
ReduceExistentialsTransformer*
clone
()
const override
{
37
return
new
ReduceExistentialsTransformer
();
38
}
39
40
private
:
41
bool
transform
(
TranslationUnit
& translationUnit)
override
;
42
};
43
44
}
// namespace souffle::ast::transform
TranslationUnit.h
souffle::ast::transform::ReduceExistentialsTransformer::getName
std::string getName() const override
Definition:
ReduceExistentials.h:46
souffle::ast::transform::ReduceExistentialsTransformer::transform
bool transform(TranslationUnit &translationUnit) override
Definition:
ReduceExistentials.cpp:48
Transformer.h
souffle::ast::transform::ReduceExistentialsTransformer
Transformation pass to reduce unnecessary computation for relations that only appear in the form A(_,...
Definition:
ReduceExistentials.h:37
souffle::ast::TranslationUnit
Translation unit class for the translation pipeline.
Definition:
TranslationUnit.h:51
souffle::ast::transform
Definition:
Program.h:45
souffle::ast::transform::ReduceExistentialsTransformer::clone
ReduceExistentialsTransformer * clone() const override
Definition:
ReduceExistentials.h:50
Generated by
1.8.17