souffle  2.0.2-371-g6315b36
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