kDB: Knowledge DataBase
Loading...
Searching...
No Matches
kdb
kDB
SPARQL
Token_p.h
1
/*
2
* Copyright (c) 2008,2010,2015 Cyrille Berger <cberger@cberger.net>
3
*
4
*/
5
6
#ifndef _SPARQL_TOKEN_H_
7
#define _SPARQL_TOKEN_H_
8
9
#include <QString>
10
#include <sstream>
11
12
#include <knowCore/Curie.h>
13
14
namespace
kDB
15
{
16
namespace
SPARQL
17
{
18
struct
Token
19
{
23
enum
Type
24
{
25
// Not really token
26
INVALID_BINDING = -6,
27
UNKNOWN_BINDING = -5,
28
UNFINISHED_STRING = -4,
29
END_OF_FILE = -3,
30
END_OF_LINE = -2,
31
UNKNOWN = -1,
32
// Special characters
33
SEMI
= 0,
34
COLON
,
35
COMA
,
36
DOT
,
37
STARTBRACE
,
38
ENDBRACE
,
39
STARTBRACKET
,
40
ENDBRACKET
,
41
STARTBOXBRACKET
,
42
ENDBOXBRACKET
,
43
EQUAL
,
44
DIFFERENT
,
45
AND
,
46
OR
,
47
INFERIOR
,
48
INFERIOREQUAL
,
49
SUPPERIOR
,
50
SUPPERIOREQUAL
,
51
PLUS
,
52
MINUS
,
53
MULTIPLY
,
54
DIVIDE
,
55
EXCLAMATION
,
56
UNDERSCORECOLON
,
57
CIRCUMFLEXCIRCUMFLEX
,
58
// Constants
59
FLOAT_CONSTANT,
60
INTEGER_CONSTANT,
61
STRING_CONSTANT,
62
URI_CONSTANT,
63
NAME,
64
LANG_TAG,
65
VARIABLE,
66
CURIE_CONSTANT,
67
BINDING,
68
// Special values,
69
FALSE,
70
TRUE,
71
#define KDB_SPARQL_KEYWORD(_NAME_) _NAME_,
72
// Keywords
73
A,
74
#include "Keywords.h"
75
// PL/SPARQL
76
#include "PlKeywords.h"
77
#undef KDB_SPARQL_KEYWORD
78
___
79
};
81
Type
type
;
83
int
line
;
85
int
column
;
87
QString
string
;
88
// Curie
89
knowCore::Curie
curie;
90
Token
();
91
Token
(
const
knowCore::Curie
& _curie,
int
_line,
int
_column);
95
Token
(
Type
_type,
int
_line,
int
_column);
99
Token
(
Type
_type,
const
QString& _string,
int
_line,
int
_column);
100
bool
isExpressionTerminal();
101
bool
isConstant()
const
;
102
bool
isBinaryOperator()
const
;
103
int
binaryOperationPriority()
const
;
104
bool
isUnaryOperator()
const
;
105
bool
isOperator()
const
;
106
bool
isPrimary()
const
;
107
static
QString typeToString(
Type
);
108
QString toString()
const
;
109
bool
operator==(
const
Token
& _rhs)
const
110
{
111
return
type
== _rhs.
type
and
line
== _rhs.
line
and
column
== _rhs.
column
112
and
string
== _rhs.
string
and curie == _rhs.curie;
113
}
114
};
115
}
// namespace SPARQL
116
};
// namespace kDB
117
118
#include <knowCore/Formatter.h>
119
120
clog_format_declare_formatter(
kDB::SPARQL::Token::Type
)
121
{
122
return
format_to(ctx.out(),
"{}"
, kDB::SPARQL::Token::typeToString(p));
123
}
124
125
#endif
knowCore::Curie
Definition
Curie.h:22
kDB::SPARQL::Token
Definition
Token_p.h:19
kDB::SPARQL::Token::type
Type type
type of the token
Definition
Token_p.h:81
kDB::SPARQL::Token::string
QString string
String or identifier name.
Definition
Token_p.h:87
kDB::SPARQL::Token::column
int column
Column of the token.
Definition
Token_p.h:85
kDB::SPARQL::Token::line
int line
line of the token
Definition
Token_p.h:83
kDB::SPARQL::Token::Type
Type
Definition
Token_p.h:24
kDB::SPARQL::Token::AND
@ AND
and &&
Definition
Token_p.h:45
kDB::SPARQL::Token::SUPPERIOREQUAL
@ SUPPERIOREQUAL
>=
Definition
Token_p.h:50
kDB::SPARQL::Token::COMA
@ COMA
,
Definition
Token_p.h:35
kDB::SPARQL::Token::STARTBOXBRACKET
@ STARTBOXBRACKET
[
Definition
Token_p.h:41
kDB::SPARQL::Token::DIFFERENT
@ DIFFERENT
!=
Definition
Token_p.h:44
kDB::SPARQL::Token::DIVIDE
@ DIVIDE
/
Definition
Token_p.h:54
kDB::SPARQL::Token::EXCLAMATION
@ EXCLAMATION
not !
Definition
Token_p.h:55
kDB::SPARQL::Token::MINUS
@ MINUS
Definition
Token_p.h:52
kDB::SPARQL::Token::STARTBRACE
@ STARTBRACE
{
Definition
Token_p.h:37
kDB::SPARQL::Token::INFERIOR
@ INFERIOR
<
Definition
Token_p.h:47
kDB::SPARQL::Token::PLUS
@ PLUS
Definition
Token_p.h:51
kDB::SPARQL::Token::STARTBRACKET
@ STARTBRACKET
(
Definition
Token_p.h:39
kDB::SPARQL::Token::SEMI
@ SEMI
;
Definition
Token_p.h:33
kDB::SPARQL::Token::INFERIOREQUAL
@ INFERIOREQUAL
<=
Definition
Token_p.h:48
kDB::SPARQL::Token::CIRCUMFLEXCIRCUMFLEX
@ CIRCUMFLEXCIRCUMFLEX
^^
Definition
Token_p.h:57
kDB::SPARQL::Token::MULTIPLY
@ MULTIPLY
Definition
Token_p.h:53
kDB::SPARQL::Token::UNDERSCORECOLON
@ UNDERSCORECOLON
_:
Definition
Token_p.h:56
kDB::SPARQL::Token::COLON
@ COLON
:
Definition
Token_p.h:34
kDB::SPARQL::Token::EQUAL
@ EQUAL
=
Definition
Token_p.h:43
kDB::SPARQL::Token::ENDBOXBRACKET
@ ENDBOXBRACKET
]
Definition
Token_p.h:42
kDB::SPARQL::Token::SUPPERIOR
@ SUPPERIOR
Definition
Token_p.h:49
kDB::SPARQL::Token::OR
@ OR
or ||
Definition
Token_p.h:46
kDB::SPARQL::Token::ENDBRACE
@ ENDBRACE
}
Definition
Token_p.h:38
kDB::SPARQL::Token::DOT
@ DOT
Definition
Token_p.h:36
kDB::SPARQL::Token::ENDBRACKET
@ ENDBRACKET
)
Definition
Token_p.h:40
Generated by
1.12.0