kDB: Knowledge DataBase
Loading...
Searching...
No Matches
kDB
SPARQL
Algebra
NodeVisitorImplementation.h
1
#pragma once
2
3
#include "AbstractNodeVisitor.h"
4
5
#include <knowCore/Global.h>
6
7
#define __KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD(_NAME_, _I_) \
8
Return visit(_NAME_##CSP _node, const Parameter& _parameter);
9
10
#define KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD(...) \
11
KNOWCORE_FOREACH(__KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD, __VA_ARGS__)
12
13
namespace
kDB::SPARQL::Algebra
14
{
19
// TODO rename to DefaultNodeVisitor?
20
template
<
typename
_TR_,
typename
... _TArgs_>
21
class
NodeVisitorImplementation
:
public
AbstractNodeVisitor
<_TR_, _TArgs_...>
22
{
23
protected
:
24
virtual
_TR_ visitDefault(NodeCSP _node,
const
_TArgs_&...) = 0;
25
#define KDB_SPARQL_ALGEBRA_GENERATE(_KLASS_NAME_, _MEMBER_DEF_) \
26
_TR_ visit(_KLASS_NAME_##CSP _node, const _TArgs_&... _args) override \
27
{ \
28
return visitDefault(_node, _args...); \
29
}
30
#include "NodesDefs.h"
31
#undef KDB_SPARQL_ALGEBRA_GENERATE
32
};
33
}
// namespace kDB::SPARQL::Algebra
kDB::SPARQL::Algebra::AbstractNodeVisitor
Definition
Node.h:14
kDB::SPARQL::Algebra::NodeVisitorImplementation
Definition
NodeVisitorImplementation.h:22
Generated by
1.12.0