souffle
2.0.2-371-g6315b36
ast
Functor.h
Go to the documentation of this file.
1
/*
2
* Souffle - A Datalog Compiler
3
* Copyright (c) 2013, 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 Functor.h
12
*
13
* Defines the abstract class for functors
14
*
15
***********************************************************************/
16
17
#pragma once
18
19
#include "
ast/Term.h
"
20
#include "
souffle/TypeAttribute.h
"
21
#include <cstddef>
22
23
namespace
souffle::ast
{
24
25
/**
26
* @class Functor
27
* @brief Abstract functor class
28
*/
29
30
class
Functor :
public
Term {
31
public
:
32
Functor*
clone
()
const override
= 0;
33
34
protected
:
35
using
Term::Term
;
36
};
37
38
}
// namespace souffle::ast
souffle::ast::Functor::clone
Functor * clone() const override=0
Create clone.
Term.h
souffle::ast
Definition:
Aggregator.h:35
souffle::ast::Term::Term
Term(Operands &&... operands)
Definition:
Term.h:45
TypeAttribute.h
Generated by
1.8.17