@traqula/rules-sparql-1-1 0.0.1-alpha.176 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/RoundTripTypes.d.ts +379 -0
- package/lib/RoundTripTypes.js +2 -0
- package/lib/RoundTripTypes.js.map +1 -0
- package/lib/Sparql11types.d.ts +18 -245
- package/lib/Sparql11types.js.map +1 -1
- package/lib/SparqlParser.d.ts +13 -4
- package/lib/SparqlParser.js +7 -4
- package/lib/SparqlParser.js.map +1 -1
- package/lib/expressionHelpers.d.ts +8 -19
- package/lib/expressionHelpers.js +40 -103
- package/lib/expressionHelpers.js.map +1 -1
- package/lib/factory.d.ts +447 -0
- package/lib/factory.js +105 -0
- package/lib/factory.js.map +1 -0
- package/lib/factoryMixins/ContextFactory.d.ts +38 -0
- package/lib/factoryMixins/ContextFactory.js +30 -0
- package/lib/factoryMixins/ContextFactory.js.map +1 -0
- package/lib/factoryMixins/ExpressionFactory.d.ts +60 -0
- package/lib/factoryMixins/ExpressionFactory.js +83 -0
- package/lib/factoryMixins/ExpressionFactory.js.map +1 -0
- package/lib/factoryMixins/GraphRefFactory.d.ts +43 -0
- package/lib/factoryMixins/GraphRefFactory.js +51 -0
- package/lib/factoryMixins/GraphRefFactory.js.map +1 -0
- package/lib/factoryMixins/PathFactory.d.ts +51 -0
- package/lib/factoryMixins/PathFactory.js +68 -0
- package/lib/factoryMixins/PathFactory.js.map +1 -0
- package/lib/factoryMixins/Patternfactory.d.ts +55 -0
- package/lib/factoryMixins/Patternfactory.js +98 -0
- package/lib/factoryMixins/Patternfactory.js.map +1 -0
- package/lib/factoryMixins/QueryFactory.d.ts +41 -0
- package/lib/factoryMixins/QueryFactory.js +43 -0
- package/lib/factoryMixins/QueryFactory.js.map +1 -0
- package/lib/factoryMixins/SolutionModifiersFactory.d.ts +43 -0
- package/lib/factoryMixins/SolutionModifiersFactory.js +55 -0
- package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -0
- package/lib/factoryMixins/TermFactory.d.ts +76 -0
- package/lib/factoryMixins/TermFactory.js +84 -0
- package/lib/factoryMixins/TermFactory.js.map +1 -0
- package/lib/factoryMixins/UpdateOperationFactory.d.ts +68 -0
- package/lib/factoryMixins/UpdateOperationFactory.js +126 -0
- package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -0
- package/lib/factoryMixins/mixins.d.ts +14 -0
- package/lib/factoryMixins/mixins.js +20 -0
- package/lib/factoryMixins/mixins.js.map +1 -0
- package/lib/grammar/builtIn.d.ts +59 -59
- package/lib/grammar/builtIn.js +50 -57
- package/lib/grammar/builtIn.js.map +1 -1
- package/lib/grammar/dataSetClause.d.ts +22 -9
- package/lib/grammar/dataSetClause.js +57 -14
- package/lib/grammar/dataSetClause.js.map +1 -1
- package/lib/grammar/expression.d.ts +12 -16
- package/lib/grammar/expression.js +224 -296
- package/lib/grammar/expression.js.map +1 -1
- package/lib/grammar/general.d.ts +8 -8
- package/lib/grammar/general.js +59 -94
- package/lib/grammar/general.js.map +1 -1
- package/lib/grammar/literals.d.ts +16 -13
- package/lib/grammar/literals.js +161 -144
- package/lib/grammar/literals.js.map +1 -1
- package/lib/grammar/propertyPaths.d.ts +16 -12
- package/lib/grammar/propertyPaths.js +100 -129
- package/lib/grammar/propertyPaths.js.map +1 -1
- package/lib/grammar/queryUnit/queryUnit.d.ts +13 -17
- package/lib/grammar/queryUnit/queryUnit.js +195 -329
- package/lib/grammar/queryUnit/queryUnit.js.map +1 -1
- package/lib/grammar/solutionModifier.d.ts +12 -11
- package/lib/grammar/solutionModifier.js +125 -109
- package/lib/grammar/solutionModifier.js.map +1 -1
- package/lib/grammar/tripleBlock.d.ts +24 -33
- package/lib/grammar/tripleBlock.js +172 -126
- package/lib/grammar/tripleBlock.js.map +1 -1
- package/lib/grammar/updateUnit/updateUnit.d.ts +28 -33
- package/lib/grammar/updateUnit/updateUnit.js +282 -367
- package/lib/grammar/updateUnit/updateUnit.js.map +1 -1
- package/lib/grammar/whereClause.d.ts +20 -19
- package/lib/grammar/whereClause.js +232 -245
- package/lib/grammar/whereClause.js.map +1 -1
- package/lib/grammar-helpers/utils.d.ts +0 -4
- package/lib/grammar-helpers/utils.js +0 -37
- package/lib/grammar-helpers/utils.js.map +1 -1
- package/lib/index.cjs +3061 -2438
- package/lib/index.d.ts +4 -2
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/lexer/lexer.d.ts +4 -3
- package/lib/lexer/lexer.js +11 -7
- package/lib/lexer/lexer.js.map +1 -1
- package/lib/lexer/terminals.d.ts +0 -34
- package/lib/lexer/terminals.js +35 -37
- package/lib/lexer/terminals.js.map +1 -1
- package/lib/utils.d.ts +0 -3
- package/lib/utils.js +0 -6
- package/lib/utils.js.map +1 -1
- package/lib/validation/validators.d.ts +14 -0
- package/lib/validation/validators.js +235 -0
- package/lib/validation/validators.js.map +1 -0
- package/package.json +6 -8
- package/lib/Wildcard.d.ts +0 -9
- package/lib/Wildcard.js +0 -19
- package/lib/Wildcard.js.map +0 -1
package/lib/grammar/literals.js
CHANGED
|
@@ -1,33 +1,58 @@
|
|
|
1
|
-
import { CommonIRIs
|
|
1
|
+
import { CommonIRIs } from '../grammar-helpers/utils';
|
|
2
2
|
import * as l from '../lexer';
|
|
3
|
+
export function stringEscapedLexical(str) {
|
|
4
|
+
const lexical = str.replaceAll(/["\\\t\n\r\b\f]/gu, (char) => {
|
|
5
|
+
switch (char) {
|
|
6
|
+
case '\t':
|
|
7
|
+
return '\\t';
|
|
8
|
+
case '\n':
|
|
9
|
+
return '\\n';
|
|
10
|
+
case '\r':
|
|
11
|
+
return '\\r';
|
|
12
|
+
case '\b':
|
|
13
|
+
return '\\b';
|
|
14
|
+
case '\f':
|
|
15
|
+
return '\\f';
|
|
16
|
+
case '"':
|
|
17
|
+
return '\\"';
|
|
18
|
+
case '\\':
|
|
19
|
+
return '\\\\';
|
|
20
|
+
default:
|
|
21
|
+
return char;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return `"${lexical}"`;
|
|
25
|
+
}
|
|
3
26
|
/**
|
|
4
|
-
*
|
|
5
|
-
* [[129]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)
|
|
27
|
+
* [[120]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)
|
|
6
28
|
*/
|
|
7
29
|
export const rdfLiteral = {
|
|
8
30
|
name: 'rdfLiteral',
|
|
9
|
-
impl: ({ ACTION,
|
|
10
|
-
const value =
|
|
11
|
-
|
|
12
|
-
{ ALT: () =>
|
|
13
|
-
|
|
14
|
-
|
|
31
|
+
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
|
|
32
|
+
const value = SUBRULE1(string, undefined);
|
|
33
|
+
return OPTION(() => OR([
|
|
34
|
+
{ ALT: () => {
|
|
35
|
+
const lang = CONSUME(l.terminals.langTag);
|
|
36
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang), value.value, lang.image.slice(1).toLowerCase()));
|
|
37
|
+
} },
|
|
38
|
+
{ ALT: () => {
|
|
15
39
|
CONSUME(l.symbols.hathat);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
]));
|
|
20
|
-
return ACTION(() => C.dataFactory.literal(value, languageOrDatatype));
|
|
40
|
+
const iriVal = SUBRULE1(iri, undefined);
|
|
41
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
|
|
42
|
+
} },
|
|
43
|
+
])) ?? value;
|
|
21
44
|
},
|
|
22
|
-
gImpl: ({ SUBRULE }) => (ast) => {
|
|
23
|
-
|
|
24
|
-
if (ast.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
45
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
|
|
46
|
+
factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
|
|
47
|
+
if (ast.langOrIri) {
|
|
48
|
+
if (typeof ast.langOrIri === 'string') {
|
|
49
|
+
factory.printFilter(ast, () => PRINT('@', ast.langOrIri));
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
factory.printFilter(ast, () => PRINT('^^'));
|
|
53
|
+
SUBRULE(iri, ast.langOrIri, undefined);
|
|
54
|
+
}
|
|
29
55
|
}
|
|
30
|
-
return `${lexical}^^<${ast.datatype.value}>`;
|
|
31
56
|
},
|
|
32
57
|
};
|
|
33
58
|
/**
|
|
@@ -48,20 +73,14 @@ export const numericLiteral = {
|
|
|
48
73
|
*/
|
|
49
74
|
export const numericLiteralUnsigned = {
|
|
50
75
|
name: 'numericLiteralUnsigned',
|
|
51
|
-
impl: ({ ACTION, CONSUME, OR }) => C =>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
} },
|
|
60
|
-
{ ALT: () => {
|
|
61
|
-
const val = CONSUME(l.terminals.double).image;
|
|
62
|
-
return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));
|
|
63
|
-
} },
|
|
64
|
-
]),
|
|
76
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
77
|
+
const parsed = OR([
|
|
78
|
+
{ ALT: () => [CONSUME(l.terminals.integer), CommonIRIs.INTEGER] },
|
|
79
|
+
{ ALT: () => [CONSUME(l.terminals.decimal), CommonIRIs.DECIMAL] },
|
|
80
|
+
{ ALT: () => [CONSUME(l.terminals.double), CommonIRIs.DOUBLE] },
|
|
81
|
+
]);
|
|
82
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
|
|
83
|
+
},
|
|
65
84
|
};
|
|
66
85
|
/**
|
|
67
86
|
* Parses a positive numeric literal.
|
|
@@ -69,20 +88,14 @@ export const numericLiteralUnsigned = {
|
|
|
69
88
|
*/
|
|
70
89
|
export const numericLiteralPositive = {
|
|
71
90
|
name: 'numericLiteralPositive',
|
|
72
|
-
impl: ({ ACTION, CONSUME, OR }) => C =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
} },
|
|
81
|
-
{ ALT: () => {
|
|
82
|
-
const val = CONSUME(l.terminals.doublePositive).image;
|
|
83
|
-
return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));
|
|
84
|
-
} },
|
|
85
|
-
]),
|
|
91
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
92
|
+
const parsed = OR([
|
|
93
|
+
{ ALT: () => [CONSUME(l.terminals.integerPositive), CommonIRIs.INTEGER] },
|
|
94
|
+
{ ALT: () => [CONSUME(l.terminals.decimalPositive), CommonIRIs.DECIMAL] },
|
|
95
|
+
{ ALT: () => [CONSUME(l.terminals.doublePositive), CommonIRIs.DOUBLE] },
|
|
96
|
+
]);
|
|
97
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
|
|
98
|
+
},
|
|
86
99
|
};
|
|
87
100
|
/**
|
|
88
101
|
* Parses a negative numeric literal.
|
|
@@ -90,20 +103,14 @@ export const numericLiteralPositive = {
|
|
|
90
103
|
*/
|
|
91
104
|
export const numericLiteralNegative = {
|
|
92
105
|
name: 'numericLiteralNegative',
|
|
93
|
-
impl: ({ ACTION, CONSUME, OR }) => C =>
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
} },
|
|
102
|
-
{ ALT: () => {
|
|
103
|
-
const val = CONSUME(l.terminals.doubleNegative).image;
|
|
104
|
-
return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));
|
|
105
|
-
} },
|
|
106
|
-
]),
|
|
106
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
107
|
+
const parsed = OR([
|
|
108
|
+
{ ALT: () => [CONSUME(l.terminals.integerNegative), CommonIRIs.INTEGER] },
|
|
109
|
+
{ ALT: () => [CONSUME(l.terminals.decimalNegative), CommonIRIs.DECIMAL] },
|
|
110
|
+
{ ALT: () => [CONSUME(l.terminals.doubleNegative), CommonIRIs.DOUBLE] },
|
|
111
|
+
]);
|
|
112
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
|
|
113
|
+
},
|
|
107
114
|
};
|
|
108
115
|
/**
|
|
109
116
|
* Parses a boolean literal.
|
|
@@ -111,16 +118,13 @@ export const numericLiteralNegative = {
|
|
|
111
118
|
*/
|
|
112
119
|
export const booleanLiteral = {
|
|
113
120
|
name: 'booleanLiteral',
|
|
114
|
-
impl: ({ ACTION, CONSUME, OR }) => C =>
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.BOOLEAN)));
|
|
122
|
-
} },
|
|
123
|
-
]),
|
|
121
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
122
|
+
const token = OR([
|
|
123
|
+
{ ALT: () => CONSUME(l.true_) },
|
|
124
|
+
{ ALT: () => CONSUME(l.false_) },
|
|
125
|
+
]);
|
|
126
|
+
return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
|
|
127
|
+
},
|
|
124
128
|
};
|
|
125
129
|
/**
|
|
126
130
|
* Parses a string literal.
|
|
@@ -128,47 +132,46 @@ export const booleanLiteral = {
|
|
|
128
132
|
*/
|
|
129
133
|
export const string = {
|
|
130
134
|
name: 'string',
|
|
131
|
-
impl: ({ ACTION, CONSUME, OR }) => () => {
|
|
132
|
-
const
|
|
133
|
-
{ ALT: () =>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
136
|
+
const x = OR([
|
|
137
|
+
{ ALT: () => {
|
|
138
|
+
const token = CONSUME(l.terminals.stringLiteral1);
|
|
139
|
+
return [token, token.image.slice(1, -1)];
|
|
140
|
+
} },
|
|
141
|
+
{ ALT: () => {
|
|
142
|
+
const token = CONSUME(l.terminals.stringLiteral2);
|
|
143
|
+
return [token, token.image.slice(1, -1)];
|
|
144
|
+
} },
|
|
145
|
+
{ ALT: () => {
|
|
146
|
+
const token = CONSUME(l.terminals.stringLiteralLong1);
|
|
147
|
+
return [token, token.image.slice(3, -3)];
|
|
148
|
+
} },
|
|
149
|
+
{ ALT: () => {
|
|
150
|
+
const token = CONSUME(l.terminals.stringLiteralLong2);
|
|
151
|
+
return [token, token.image.slice(3, -3)];
|
|
152
|
+
} },
|
|
137
153
|
]);
|
|
138
154
|
// Handle string escapes (19.7). (19.2 is handled at input level.)
|
|
139
|
-
return ACTION(() =>
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return '\\r';
|
|
159
|
-
case '\b':
|
|
160
|
-
return '\\b';
|
|
161
|
-
case '\f':
|
|
162
|
-
return '\\f';
|
|
163
|
-
case '"':
|
|
164
|
-
return '\\"';
|
|
165
|
-
case '\\':
|
|
166
|
-
return '\\\\';
|
|
167
|
-
default:
|
|
168
|
-
return char;
|
|
169
|
-
}
|
|
155
|
+
return ACTION(() => {
|
|
156
|
+
const F = C.factory;
|
|
157
|
+
const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
|
|
158
|
+
switch (char) {
|
|
159
|
+
case 't':
|
|
160
|
+
return '\t';
|
|
161
|
+
case 'n':
|
|
162
|
+
return '\n';
|
|
163
|
+
case 'r':
|
|
164
|
+
return '\r';
|
|
165
|
+
case 'b':
|
|
166
|
+
return '\b';
|
|
167
|
+
case 'f':
|
|
168
|
+
return '\f';
|
|
169
|
+
default:
|
|
170
|
+
return char;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return F.literalTerm(F.sourceLocation(x[0]), value);
|
|
170
174
|
});
|
|
171
|
-
return `"${lexical}"`;
|
|
172
175
|
},
|
|
173
176
|
};
|
|
174
177
|
/**
|
|
@@ -177,14 +180,21 @@ export const string = {
|
|
|
177
180
|
*/
|
|
178
181
|
export const iri = {
|
|
179
182
|
name: 'iri',
|
|
180
|
-
impl: ({
|
|
181
|
-
{ ALT: () =>
|
|
182
|
-
const iriVal = CONSUME(l.terminals.iriRef).image.slice(1, -1);
|
|
183
|
-
return ACTION(() => C.dataFactory.namedNode(resolveIRI(iriVal, C.baseIRI)));
|
|
184
|
-
} },
|
|
183
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
184
|
+
{ ALT: () => SUBRULE(iriFull, undefined) },
|
|
185
185
|
{ ALT: () => SUBRULE(prefixedName, undefined) },
|
|
186
186
|
]),
|
|
187
|
-
gImpl: () => ast =>
|
|
187
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F }) => F.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, undefined) : SUBRULE(iriFull, ast, undefined),
|
|
188
|
+
};
|
|
189
|
+
export const iriFull = {
|
|
190
|
+
name: 'iriFull',
|
|
191
|
+
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
192
|
+
const iriToken = CONSUME(l.terminals.iriRef);
|
|
193
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
|
|
194
|
+
},
|
|
195
|
+
gImpl: ({ PRINT }) => (ast, { factory }) => {
|
|
196
|
+
factory.printFilter(ast, () => PRINT('<', ast.value, '>'));
|
|
197
|
+
},
|
|
188
198
|
};
|
|
189
199
|
/**
|
|
190
200
|
* Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.
|
|
@@ -192,19 +202,21 @@ export const iri = {
|
|
|
192
202
|
*/
|
|
193
203
|
export const prefixedName = {
|
|
194
204
|
name: 'prefixedName',
|
|
195
|
-
impl: ({ ACTION, CONSUME, OR }) =>
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
205
|
+
impl: ({ ACTION, CONSUME, OR }) => C => OR([
|
|
206
|
+
{ ALT: () => {
|
|
207
|
+
const longName = CONSUME(l.terminals.pNameLn);
|
|
208
|
+
return ACTION(() => {
|
|
209
|
+
const [prefix, localName] = longName.image.split(':');
|
|
210
|
+
return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
|
|
211
|
+
});
|
|
212
|
+
} },
|
|
213
|
+
{ ALT: () => {
|
|
214
|
+
const shortName = CONSUME(l.terminals.pNameNs);
|
|
215
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));
|
|
216
|
+
} },
|
|
217
|
+
]),
|
|
218
|
+
gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
|
|
219
|
+
factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ':', ast.value));
|
|
208
220
|
},
|
|
209
221
|
};
|
|
210
222
|
export const canCreateBlankNodes = Symbol('canCreateBlankNodes');
|
|
@@ -216,18 +228,14 @@ export const blankNode = {
|
|
|
216
228
|
name: 'blankNode',
|
|
217
229
|
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
218
230
|
const result = OR([
|
|
219
|
-
{
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
CONSUME(l.terminals.anon);
|
|
228
|
-
return ACTION(() => C.dataFactory.blankNode());
|
|
229
|
-
},
|
|
230
|
-
},
|
|
231
|
+
{ ALT: () => {
|
|
232
|
+
const labelToken = CONSUME(l.terminals.blankNodeLabel);
|
|
233
|
+
return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
|
|
234
|
+
} },
|
|
235
|
+
{ ALT: () => {
|
|
236
|
+
const anonToken = CONSUME(l.terminals.anon);
|
|
237
|
+
return ACTION(() => C.factory.blankNode(undefined, C.factory.sourceLocation(anonToken)));
|
|
238
|
+
} },
|
|
231
239
|
]);
|
|
232
240
|
ACTION(() => {
|
|
233
241
|
if (!C.parseMode.has('canCreateBlankNodes')) {
|
|
@@ -236,6 +244,15 @@ export const blankNode = {
|
|
|
236
244
|
});
|
|
237
245
|
return result;
|
|
238
246
|
},
|
|
239
|
-
gImpl: () => ast =>
|
|
247
|
+
gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
|
|
248
|
+
factory.printFilter(ast, () => PRINT_WORD('_:', ast.label.replace(/^e_/u, '')));
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
export const verbA = {
|
|
252
|
+
name: 'VerbA',
|
|
253
|
+
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
254
|
+
const token = CONSUME(l.a);
|
|
255
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, undefined));
|
|
256
|
+
},
|
|
240
257
|
};
|
|
241
258
|
//# sourceMappingURL=literals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["literals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NamedNode } from 'rdf-data-factory';\nimport { CommonIRIs, resolveIRI } from '../grammar-helpers/utils';\nimport * as l from '../lexer';\nimport type { BlankTerm, IriTerm, LiteralTerm, SparqlGrammarRule, SparqlRule } from '../Sparql11types';\n\n/**\n * Parses an RDF literal, in the form of {value}@{lang} or {value}^^{datatype}.\n * [[129]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)\n */\nexport const rdfLiteral: SparqlRule<'rdfLiteral', LiteralTerm> = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION, OR }) => (C) => {\n const value = SUBRULE(string, undefined);\n const languageOrDatatype = OPTION(() => OR<string | NamedNode>([\n { ALT: () => CONSUME(l.terminals.langTag).image.slice(1) },\n {\n ALT: () => {\n CONSUME(l.symbols.hathat);\n return SUBRULE(iri, undefined);\n },\n },\n ]));\n return ACTION(() => C.dataFactory.literal(value, languageOrDatatype));\n },\n gImpl: ({ SUBRULE }) => (ast) => {\n const lexical = SUBRULE(string, ast.value, undefined);\n if (ast.direction) {\n return `${lexical}@${ast.language}--${ast.direction}`;\n }\n if (ast.language) {\n return `${lexical}@${ast.language}`;\n }\n return `${lexical}^^<${ast.datatype.value}>`;\n },\n};\n\n/**\n * Parses a numeric literal.\n * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)\n */\nexport const numericLiteral: SparqlGrammarRule<'numericLiteral', LiteralTerm> = <const> {\n name: 'numericLiteral',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(numericLiteralUnsigned, undefined) },\n { ALT: () => SUBRULE(numericLiteralPositive, undefined) },\n { ALT: () => SUBRULE(numericLiteralNegative, undefined) },\n ]),\n};\n\n/**\n * Parses an unsigned numeric literal.\n * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)\n */\nexport const numericLiteralUnsigned: SparqlGrammarRule<'numericLiteralUnsigned', LiteralTerm> = <const> {\n name: 'numericLiteralUnsigned',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const val = CONSUME(l.terminals.integer).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.INTEGER)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.decimal).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DECIMAL)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.double).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));\n } },\n ]),\n};\n\n/**\n * Parses a positive numeric literal.\n * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)\n */\nexport const numericLiteralPositive: SparqlGrammarRule<'numericLiteralPositive', LiteralTerm> = <const> {\n name: 'numericLiteralPositive',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const val = CONSUME(l.terminals.integerPositive).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.INTEGER)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.decimalPositive).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DECIMAL)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.doublePositive).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));\n } },\n ]),\n};\n\n/**\n * Parses a negative numeric literal.\n * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)\n */\nexport const numericLiteralNegative: SparqlGrammarRule<'numericLiteralNegative', LiteralTerm> = <const> {\n name: 'numericLiteralNegative',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const val = CONSUME(l.terminals.integerNegative).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.INTEGER)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.decimalNegative).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DECIMAL)));\n } },\n { ALT: () => {\n const val = CONSUME(l.terminals.doubleNegative).image;\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.DOUBLE)));\n } },\n ]),\n};\n\n/**\n * Parses a boolean literal.\n * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)\n */\nexport const booleanLiteral: SparqlGrammarRule<'booleanLiteral', LiteralTerm> = <const> {\n name: 'booleanLiteral',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const val = CONSUME(l.true_).image.toLowerCase();\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.BOOLEAN)));\n } },\n { ALT: () => {\n const val = CONSUME(l.false_).image.toLowerCase();\n return ACTION(() => C.dataFactory.literal(val, C.dataFactory.namedNode(CommonIRIs.BOOLEAN)));\n } },\n ]),\n};\n\n/**\n * Parses a string literal.\n * [[135]](https://www.w3.org/TR/sparql11-query/#rString)\n */\nexport const string: SparqlRule<'string', string> = <const> {\n name: 'string',\n impl: ({ ACTION, CONSUME, OR }) => () => {\n const rawString = OR([\n { ALT: () => CONSUME(l.terminals.stringLiteral1).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteral2).image.slice(1, -1) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong1).image.slice(3, -3) },\n { ALT: () => CONSUME(l.terminals.stringLiteralLong2).image.slice(3, -3) },\n ]);\n // Handle string escapes (19.7). (19.2 is handled at input level.)\n return ACTION(() => rawString.replaceAll(/\\\\([tnrbf\"'\\\\])/gu, (_, char: string) => {\n switch (char) {\n case 't': return '\\t';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 'b': return '\\b';\n case 'f': return '\\f';\n default: return char;\n }\n }));\n },\n gImpl: () => (ast) => {\n const lexical = ast.replaceAll(/[\"\\\\\\t\\n\\r\\b\\f]/gu, (char) => {\n switch (char) {\n case '\\t':\n return '\\\\t';\n case '\\n':\n return '\\\\n';\n case '\\r':\n return '\\\\r';\n case '\\b':\n return '\\\\b';\n case '\\f':\n return '\\\\f';\n case '\"':\n return '\\\\\"';\n case '\\\\':\n return '\\\\\\\\';\n default:\n return char;\n }\n });\n return `\"${lexical}\"`;\n },\n};\n\n/**\n * Parses a named node, either as an IRI or as a prefixed name.\n * [[136]](https://www.w3.org/TR/sparql11-query/#riri)\n */\nexport const iri: SparqlRule<'iri', IriTerm> = <const> {\n name: 'iri',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const iriVal = CONSUME(l.terminals.iriRef).image.slice(1, -1);\n return ACTION(() => C.dataFactory.namedNode(resolveIRI(iriVal, C.baseIRI)));\n } },\n { ALT: () => SUBRULE(prefixedName, undefined) },\n ]),\n gImpl: () => ast => `<${ast.value}>`,\n};\n\n/**\n * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.\n * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)\n */\nexport const prefixedName: SparqlGrammarRule<'prefixedName', IriTerm> = <const> {\n name: 'prefixedName',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const fullStr = OR([\n { ALT: () => CONSUME(l.terminals.pNameLn).image },\n { ALT: () => CONSUME(l.terminals.pNameNs).image },\n ]);\n return ACTION(() => {\n const [ prefix, localName ] = fullStr.split(':');\n const value = C.prefixes[prefix];\n if (value === undefined) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return C.dataFactory.namedNode(resolveIRI(value + localName, C.baseIRI));\n });\n },\n};\n\nexport const canCreateBlankNodes = Symbol('canCreateBlankNodes');\n\n/**\n * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.\n * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)\n */\nexport const blankNode: SparqlRule<'blankNode', BlankTerm> = <const> {\n name: 'blankNode',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const result = OR([\n {\n ALT: () => {\n const label = CONSUME(l.terminals.blankNodeLabel).image;\n return ACTION(() => C.dataFactory.blankNode(label.replace('_:', 'e_')));\n },\n },\n {\n ALT: () => {\n CONSUME(l.terminals.anon);\n return ACTION(() => C.dataFactory.blankNode());\n },\n },\n ]);\n ACTION(() => {\n if (!C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Blank nodes are not allowed in this context');\n }\n });\n return result;\n },\n gImpl: () => ast => `_:${ast.value}`,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["literals.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IToken } from 'chevrotain';\nimport { CommonIRIs } from '../grammar-helpers/utils';\nimport * as l from '../lexer';\nimport type {\n TermBlank,\n TermIri,\n TermIriFull,\n TermIriPrefixed,\n TermLiteral,\n TermLiteralStr,\n TermLiteralTyped,\n} from '../RoundTripTypes';\n\nimport type { SparqlGrammarRule, SparqlRule } from '../Sparql11types';\n\nexport function stringEscapedLexical(str: string): string {\n const lexical = str.replaceAll(/[\"\\\\\\t\\n\\r\\b\\f]/gu, (char) => {\n switch (char) {\n case '\\t':\n return '\\\\t';\n case '\\n':\n return '\\\\n';\n case '\\r':\n return '\\\\r';\n case '\\b':\n return '\\\\b';\n case '\\f':\n return '\\\\f';\n case '\"':\n return '\\\\\"';\n case '\\\\':\n return '\\\\\\\\';\n default:\n return char;\n }\n });\n return `\"${lexical}\"`;\n}\n\n/**\n * [[120]](https://www.w3.org/TR/sparql11-query/#rRDFLiteral)\n */\nexport const rdfLiteral: SparqlRule<'rdfLiteral', TermLiteral> = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {\n const value = SUBRULE1(string, undefined);\n return OPTION(() => OR<TermLiteral>([\n { ALT: () => {\n const lang = CONSUME(l.terminals.langTag);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(value, lang),\n value.value,\n lang.image.slice(1).toLowerCase(),\n ));\n } },\n { ALT: () => {\n CONSUME(l.symbols.hathat);\n const iriVal = SUBRULE1(iri, undefined);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(value, iriVal),\n value.value,\n iriVal,\n ));\n } },\n ])) ?? value;\n },\n gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));\n\n if (ast.langOrIri) {\n if (typeof ast.langOrIri === 'string') {\n factory.printFilter(ast, () => PRINT('@', ast.langOrIri));\n } else {\n factory.printFilter(ast, () => PRINT('^^'));\n SUBRULE(iri, ast.langOrIri, undefined);\n }\n }\n },\n};\n\n/**\n * Parses a numeric literal.\n * [[130]](https://www.w3.org/TR/sparql11-query/#rNumericLiteral)\n */\nexport const numericLiteral: SparqlGrammarRule<'numericLiteral', TermLiteralTyped> = <const> {\n name: 'numericLiteral',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(numericLiteralUnsigned, undefined) },\n { ALT: () => SUBRULE(numericLiteralPositive, undefined) },\n { ALT: () => SUBRULE(numericLiteralNegative, undefined) },\n ]),\n};\n\n/**\n * Parses an unsigned numeric literal.\n * [[131]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralUnsigned)\n */\nexport const numericLiteralUnsigned: SparqlGrammarRule<'numericLiteralUnsigned', TermLiteralTyped> = <const> {\n name: 'numericLiteralUnsigned',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integer), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimal), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.double), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a positive numeric literal.\n * [[132]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralPositive)\n */\nexport const numericLiteralPositive: SparqlGrammarRule<'numericLiteralPositive', TermLiteralTyped> = <const> {\n name: 'numericLiteralPositive',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integerPositive), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimalPositive), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.doublePositive), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a negative numeric literal.\n * [[133]](https://www.w3.org/TR/sparql11-query/#rNumericLiteralNegative)\n */\nexport const numericLiteralNegative: SparqlGrammarRule<'numericLiteralNegative', TermLiteralTyped> = <const> {\n name: 'numericLiteralNegative',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const parsed = OR<[IToken, string]>([\n { ALT: () => <const> [ CONSUME(l.terminals.integerNegative), CommonIRIs.INTEGER ]},\n { ALT: () => <const> [ CONSUME(l.terminals.decimalNegative), CommonIRIs.DECIMAL ]},\n { ALT: () => <const> [ CONSUME(l.terminals.doubleNegative), CommonIRIs.DOUBLE ]},\n ]);\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(parsed[0]),\n parsed[0].image,\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1]),\n ));\n },\n};\n\n/**\n * Parses a boolean literal.\n * [[134]](https://www.w3.org/TR/sparql11-query/#rBooleanLiteral)\n */\nexport const booleanLiteral: SparqlGrammarRule<'booleanLiteral', TermLiteralTyped> = <const> {\n name: 'booleanLiteral',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const token = OR([\n { ALT: () => CONSUME(l.true_) },\n { ALT: () => CONSUME(l.false_) },\n ]);\n\n return ACTION(() => C.factory.literalTerm(\n C.factory.sourceLocation(token),\n token.image.toLowerCase(),\n C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN),\n ));\n },\n};\n\n/**\n * Parses a string literal.\n * [[135]](https://www.w3.org/TR/sparql11-query/#rString)\n */\nexport const string: SparqlGrammarRule<'string', TermLiteralStr> = <const> {\n name: 'string',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const x = OR([\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteral1);\n return <const>[ token, token.image.slice(1, -1) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteral2);\n return <const>[ token, token.image.slice(1, -1) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteralLong1);\n return <const>[ token, token.image.slice(3, -3) ];\n } },\n { ALT: () => {\n const token = CONSUME(l.terminals.stringLiteralLong2);\n return <const>[ token, token.image.slice(3, -3) ];\n } },\n ]);\n // Handle string escapes (19.7). (19.2 is handled at input level.)\n return ACTION(() => {\n const F = C.factory;\n const value = x[1].replaceAll(/\\\\([tnrbf\"'\\\\])/gu, (_, char: string) => {\n switch (char) {\n case 't':\n return '\\t';\n case 'n':\n return '\\n';\n case 'r':\n return '\\r';\n case 'b':\n return '\\b';\n case 'f':\n return '\\f';\n default:\n return char;\n }\n });\n return F.literalTerm(F.sourceLocation(x[0]), value);\n });\n },\n};\n\n/**\n * Parses a named node, either as an IRI or as a prefixed name.\n * [[136]](https://www.w3.org/TR/sparql11-query/#riri)\n */\nexport const iri: SparqlRule<'iri', TermIri> = <const> {\n name: 'iri',\n impl: ({ SUBRULE, OR }) => () => OR<TermIri>([\n { ALT: () => SUBRULE(iriFull, undefined) },\n { ALT: () => SUBRULE(prefixedName, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) =>\n F.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, undefined) : SUBRULE(iriFull, ast, undefined),\n};\n\nexport const iriFull: SparqlRule<'iriFull', TermIriFull> = <const> {\n name: 'iriFull',\n impl: ({ ACTION, CONSUME }) => (C) => {\n const iriToken = CONSUME(l.terminals.iriRef);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));\n },\n gImpl: ({ PRINT }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT('<', ast.value, '>'));\n },\n};\n\n/**\n * Parses a named node with a prefix. Looks up the prefix in the context and returns the full IRI.\n * [[137]](https://www.w3.org/TR/sparql11-query/#rPrefixedName)\n */\nexport const prefixedName: SparqlRule<'prefixedName', TermIriPrefixed> = <const> {\n name: 'prefixedName',\n impl: ({ ACTION, CONSUME, OR }) => C => OR([\n { ALT: () => {\n const longName = CONSUME(l.terminals.pNameLn);\n return ACTION(() => {\n const [ prefix, localName ] = longName.image.split(':');\n return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);\n });\n } },\n { ALT: () => {\n const shortName = CONSUME(l.terminals.pNameNs);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), '', shortName.image.slice(0, -1)));\n } },\n ]),\n gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ':', ast.value));\n },\n};\n\nexport const canCreateBlankNodes = Symbol('canCreateBlankNodes');\n\n/**\n * Parses blank note and throws an error if 'canCreateBlankNodes' is not in the current parserMode.\n * [[138]](https://www.w3.org/TR/sparql11-query/#rBlankNode)\n */\nexport const blankNode: SparqlRule<'blankNode', TermBlank> = <const> {\n name: 'blankNode',\n impl: ({ ACTION, CONSUME, OR }) => (C) => {\n const result = OR([\n { ALT: () => {\n const labelToken = CONSUME(l.terminals.blankNodeLabel);\n return ACTION(() =>\n C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));\n } },\n { ALT: () => {\n const anonToken = CONSUME(l.terminals.anon);\n return ACTION(() => C.factory.blankNode(undefined, C.factory.sourceLocation(anonToken)));\n } },\n ]);\n ACTION(() => {\n if (!C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Blank nodes are not allowed in this context');\n }\n });\n return result;\n },\n gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {\n factory.printFilter(ast, () => PRINT_WORD('_:', ast.label.replace(/^e_/u, '')));\n },\n};\n\nexport const verbA: SparqlGrammarRule<'VerbA', TermIriFull> = <const> {\n name: 'VerbA',\n impl: ({ ACTION, CONSUME }) => (C) => {\n const token = CONSUME(l.a);\n return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, undefined));\n },\n};\n"]}
|
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
import type { TokenType } from 'chevrotain';
|
|
2
|
-
import type {
|
|
1
|
+
import type { IToken, TokenType } from 'chevrotain';
|
|
2
|
+
import type { TermIri, PathNegatedElt, Path, PathModified, PathNegated } from '../RoundTripTypes';
|
|
3
|
+
import type { SparqlGeneratorRule, SparqlGrammarRule } from '../Sparql11types';
|
|
3
4
|
/**
|
|
4
5
|
* [[88]](https://www.w3.org/TR/sparql11-query/#rPath)
|
|
5
6
|
*/
|
|
6
|
-
export declare const path:
|
|
7
|
-
export declare
|
|
7
|
+
export declare const path: SparqlGrammarRule<'path', Path>;
|
|
8
|
+
export declare const pathGenerator: SparqlGeneratorRule<'path', Path, boolean | undefined>;
|
|
9
|
+
export declare function pathChainHelper<T extends string>(name: T, SEP: TokenType, subType: '|' | '/', subRule: SparqlGrammarRule<string, Path>): SparqlGrammarRule<T, Path | TermIri>;
|
|
8
10
|
/**
|
|
9
11
|
* [[92]](https://www.w3.org/TR/sparql11-query/#rPathEltOrInverse)
|
|
10
12
|
*/
|
|
11
|
-
export declare const pathEltOrInverse: SparqlGrammarRule<'pathEltOrInverse',
|
|
13
|
+
export declare const pathEltOrInverse: SparqlGrammarRule<'pathEltOrInverse', PathModified | Path>;
|
|
12
14
|
/**
|
|
13
15
|
* [[90]](https://www.w3.org/TR/sparql11-query/#rPathSequence)
|
|
14
16
|
*/
|
|
15
|
-
export declare const pathSequence: SparqlGrammarRule<"pathSequence",
|
|
17
|
+
export declare const pathSequence: SparqlGrammarRule<"pathSequence", import("..").TermIriFull | import("..").TermIriPrefixed | import("..").PropertyPathChain | PathModified | PathNegated>;
|
|
16
18
|
/**
|
|
17
19
|
* [[89]](https://www.w3.org/TR/sparql11-query/#rPathAlternative)
|
|
18
20
|
*/
|
|
19
|
-
export declare const pathAlternative: SparqlGrammarRule<"pathAlternative",
|
|
21
|
+
export declare const pathAlternative: SparqlGrammarRule<"pathAlternative", import("..").TermIriFull | import("..").TermIriPrefixed | import("..").PropertyPathChain | PathModified | PathNegated>;
|
|
20
22
|
/**
|
|
21
23
|
* [[91]](https://www.w3.org/TR/sparql11-query/#rPathElt)
|
|
22
24
|
*/
|
|
23
|
-
export declare const pathElt: SparqlGrammarRule<'pathElt',
|
|
25
|
+
export declare const pathElt: SparqlGrammarRule<'pathElt', PathModified | Path>;
|
|
24
26
|
/**
|
|
25
27
|
* [[93]](https://www.w3.org/TR/sparql11-query/#rPathMod)
|
|
26
28
|
*/
|
|
27
|
-
export declare const pathMod: SparqlGrammarRule<'pathMod',
|
|
29
|
+
export declare const pathMod: SparqlGrammarRule<'pathMod', IToken & {
|
|
30
|
+
image: '*' | '+' | '?';
|
|
31
|
+
}>;
|
|
28
32
|
/**
|
|
29
33
|
* [[94]](https://www.w3.org/TR/sparql11-query/#rPathPrimary)
|
|
30
34
|
*/
|
|
31
|
-
export declare const pathPrimary: SparqlGrammarRule<'pathPrimary',
|
|
35
|
+
export declare const pathPrimary: SparqlGrammarRule<'pathPrimary', Path>;
|
|
32
36
|
/**
|
|
33
37
|
* [[95]](https://www.w3.org/TR/sparql11-query/#rPathNegatedPropertySet)
|
|
34
38
|
*/
|
|
35
|
-
export declare const pathNegatedPropertySet: SparqlGrammarRule<'pathNegatedPropertySet',
|
|
39
|
+
export declare const pathNegatedPropertySet: SparqlGrammarRule<'pathNegatedPropertySet', PathNegated>;
|
|
36
40
|
/**
|
|
37
41
|
* [[96]](https://www.w3.org/TR/sparql11-query/#rPathOneInPropertySet)
|
|
38
42
|
*/
|
|
39
|
-
export declare const pathOneInPropertySet: SparqlGrammarRule<'pathOneInPropertySet',
|
|
43
|
+
export declare const pathOneInPropertySet: SparqlGrammarRule<'pathOneInPropertySet', TermIri | PathNegatedElt>;
|