kDB: Knowledge DataBase
Loading...
Searching...
No Matches
ExpressionType.h
1#include <kDB/SPARQL/Algebra/NodeVisitorImplementation.h>
2
3#include <knowCore/UriList.h>
4
5namespace kDB::SPARQL::Algebra::Visitors
6{
8 {
10 virtual knowCore::Uri type(const knowCore::Uri& _name, const knowCore::UriList& _list) const = 0;
11 };
12#undef __KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD
13#define __KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD(_NAME_, _I_) \
14 knowCore::Uri visit(_NAME_ ## CSP _node, const FunctionTypeInterface* const&) override;
15
19 class ExpressionType : public kDB::SPARQL::Algebra::NodeVisitorImplementation<knowCore::Uri, const FunctionTypeInterface*>
20 {
21 public:
29 static knowCore::Uri type(NodeCSP _node, const FunctionTypeInterface* _interface);
30 private:
31 protected:
32 knowCore::Uri visitDefault(NodeCSP _node, const FunctionTypeInterface* const& _interface) override;
33 KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD(FunctionCall, Term, Triple, Value, VariableReference,
34 LogicalOr, LogicalAnd, RelationalEqual, RelationalDifferent, RelationalInferior, RelationalSuperior,
35 RelationalInferiorEqual, RelationalSuperiorEqual, Addition, Substraction, Multiplication, Division,
36 RelationalIn, RelationalNotIn, LogicalNegation, Negation)
37 knowCore::Uri visit(const knowCore::Uri& _uri, const FunctionTypeInterface* _interface);
38 private:
39 struct Private;
40 Private* const d;
41 };
42}
43
44#undef __KDB_SPARQL_ALGEBRA_NODE_VISITOR_OVERLOAD
Definition NodeVisitorImplementation.h:22
static knowCore::Uri type(NodeCSP _node, const FunctionTypeInterface *_interface)
Definition ExpressionType.cpp:24
Definition UriList.h:9
Definition Uri.h:15