@traqula/rules-sparql-1-2 0.0.1-alpha.148 → 0.0.1-alpha.176
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/README.md +5 -3
- package/lib/grammar.d.ts +72 -31
- package/lib/grammar.js +37 -15
- package/lib/grammar.js.map +1 -1
- package/lib/index.cjs +1273 -756
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/lexer.d.ts +18 -52
- package/lib/lexer.js +2 -3
- package/lib/lexer.js.map +1 -1
- package/lib/sparql12Types.d.ts +149 -16
- package/lib/sparql12Types.js.map +1 -1
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Traqula Rules SPARQL 1.2 package
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**WARNING:** V2 will come shortly and will have lots of breaking changes.
|
|
4
|
+
|
|
5
|
+
Traqula rules SPARQL 1.2 contains additional rules required for creating a parser for SPARQL 1.2 from the SPARQL 1.1 rules.
|
|
4
6
|
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
@@ -12,4 +14,4 @@ or
|
|
|
12
14
|
|
|
13
15
|
```bash
|
|
14
16
|
yarn add @traqula/rules-sparql-1-2
|
|
15
|
-
```
|
|
17
|
+
```
|
package/lib/grammar.d.ts
CHANGED
|
@@ -5,137 +5,178 @@
|
|
|
5
5
|
* It is therefore essential that the parser retypes the rules from the core grammar.
|
|
6
6
|
*/
|
|
7
7
|
import type { RuleDefReturn } from '@traqula/core';
|
|
8
|
-
import { SparqlRuleDef } from '@traqula/rules-sparql-1-1';
|
|
9
8
|
import { gram as S11 } from '@traqula/rules-sparql-1-1';
|
|
10
9
|
import type * as T11 from '@traqula/rules-sparql-1-1';
|
|
11
10
|
import type { BaseQuadTerm, Expression, IGraphNode, Term, Triple } from './sparql12Types';
|
|
12
11
|
/**
|
|
13
12
|
* [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject
|
|
14
13
|
*/
|
|
15
|
-
export declare const reifiedTripleBlock:
|
|
14
|
+
export declare const reifiedTripleBlock: T11.SparqlGrammarRule<"reifiedTripleBlock", import("@traqula/core").Patch<T11.Triple, {
|
|
15
|
+
subject: Term;
|
|
16
|
+
object: Term;
|
|
17
|
+
}>[], undefined>;
|
|
16
18
|
/**
|
|
17
19
|
* [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath
|
|
18
20
|
*/
|
|
19
|
-
export declare const reifiedTripleBlockPath:
|
|
21
|
+
export declare const reifiedTripleBlockPath: T11.SparqlGrammarRule<"reifiedTripleBlockPath", import("@traqula/core").Patch<T11.Triple, {
|
|
22
|
+
subject: Term;
|
|
23
|
+
object: Term;
|
|
24
|
+
}>[], undefined>;
|
|
20
25
|
/**
|
|
21
26
|
* OVERRIDING RULE: {@link S11.dataBlockValue}.
|
|
22
27
|
* [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)
|
|
23
28
|
*/
|
|
24
|
-
export declare const dataBlockValue:
|
|
29
|
+
export declare const dataBlockValue: T11.SparqlRule<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>;
|
|
25
30
|
/**
|
|
26
31
|
* [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)
|
|
27
32
|
*/
|
|
28
|
-
export declare const reifier:
|
|
33
|
+
export declare const reifier: T11.SparqlGrammarRule<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm>;
|
|
29
34
|
/**
|
|
30
35
|
* [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)
|
|
31
36
|
*/
|
|
32
|
-
export declare const varOrReifierId:
|
|
37
|
+
export declare const varOrReifierId: T11.SparqlGrammarRule<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm>;
|
|
33
38
|
/**
|
|
34
39
|
* OVERRIDING RULE {@link S11.triplesSameSubject}
|
|
35
40
|
* [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)
|
|
36
41
|
*/
|
|
37
|
-
export declare const triplesSameSubject:
|
|
42
|
+
export declare const triplesSameSubject: T11.SparqlGrammarRule<"triplesSameSubject", import("@traqula/core").Patch<T11.Triple, {
|
|
43
|
+
subject: Term;
|
|
44
|
+
object: Term;
|
|
45
|
+
}>[], undefined>;
|
|
38
46
|
/**
|
|
39
47
|
* OVERRIDING RULE {@link S11.triplesSameSubjectPath}
|
|
40
48
|
* [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)
|
|
41
49
|
*/
|
|
42
|
-
export declare const triplesSameSubjectPath:
|
|
50
|
+
export declare const triplesSameSubjectPath: T11.SparqlGrammarRule<"triplesSameSubjectPath", import("@traqula/core").Patch<T11.Triple, {
|
|
51
|
+
subject: Term;
|
|
52
|
+
object: Term;
|
|
53
|
+
}>[], undefined>;
|
|
43
54
|
/**
|
|
44
55
|
* OVERRIDING RULE: {@link S11.object}.
|
|
45
56
|
* [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList
|
|
46
57
|
*/
|
|
47
|
-
export declare const object:
|
|
58
|
+
export declare const object: T11.SparqlGrammarRule<"object", import("@traqula/core").Patch<T11.Triple, {
|
|
59
|
+
subject: Term;
|
|
60
|
+
object: Term;
|
|
61
|
+
}>[], Pick<import("@traqula/core").Patch<T11.Triple, {
|
|
62
|
+
subject: Term;
|
|
63
|
+
object: Term;
|
|
64
|
+
}>, "subject" | "predicate">>;
|
|
48
65
|
/**
|
|
49
66
|
* OVERRIDING RULE: {@link S11.objectPath}.
|
|
50
67
|
* [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath
|
|
51
68
|
*/
|
|
52
|
-
export declare const objectPath:
|
|
69
|
+
export declare const objectPath: T11.SparqlGrammarRule<"objectPath", import("@traqula/core").Patch<T11.Triple, {
|
|
70
|
+
subject: Term;
|
|
71
|
+
object: Term;
|
|
72
|
+
}>[], Pick<import("@traqula/core").Patch<T11.Triple, {
|
|
73
|
+
subject: Term;
|
|
74
|
+
object: Term;
|
|
75
|
+
}>, "subject" | "predicate">>;
|
|
53
76
|
/**
|
|
54
77
|
* [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)
|
|
55
78
|
*/
|
|
56
|
-
export declare const annotationPath:
|
|
79
|
+
export declare const annotationPath: T11.SparqlGrammarRule<"annotationPath", import("@traqula/core").Patch<T11.IGraphNode, {
|
|
80
|
+
triples: Triple[];
|
|
81
|
+
node: import("./sparql12Types").ITriplesNode["node"] | Term;
|
|
82
|
+
}>[], undefined>;
|
|
57
83
|
/**
|
|
58
84
|
* [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)
|
|
59
85
|
*/
|
|
60
|
-
export declare const annotation:
|
|
86
|
+
export declare const annotation: T11.SparqlGrammarRule<"annotation", import("@traqula/core").Patch<T11.IGraphNode, {
|
|
87
|
+
triples: Triple[];
|
|
88
|
+
node: import("./sparql12Types").ITriplesNode["node"] | Term;
|
|
89
|
+
}>[], undefined>;
|
|
61
90
|
/**
|
|
62
91
|
* [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)
|
|
63
92
|
*/
|
|
64
|
-
export declare const annotationBlockPath:
|
|
93
|
+
export declare const annotationBlockPath: T11.SparqlGrammarRule<"annotationBlockPath", import("@traqula/core").Patch<T11.Triple, {
|
|
94
|
+
subject: Term;
|
|
95
|
+
object: Term;
|
|
96
|
+
}>[], Pick<import("@traqula/core").Patch<T11.Triple, {
|
|
97
|
+
subject: Term;
|
|
98
|
+
object: Term;
|
|
99
|
+
}>, "subject">>;
|
|
65
100
|
/**
|
|
66
101
|
* [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)
|
|
67
102
|
*/
|
|
68
|
-
export declare const annotationBlock:
|
|
103
|
+
export declare const annotationBlock: T11.SparqlGrammarRule<"annotationBlock", import("@traqula/core").Patch<T11.Triple, {
|
|
104
|
+
subject: Term;
|
|
105
|
+
object: Term;
|
|
106
|
+
}>[], Pick<import("@traqula/core").Patch<T11.Triple, {
|
|
107
|
+
subject: Term;
|
|
108
|
+
object: Term;
|
|
109
|
+
}>, "subject">>;
|
|
69
110
|
/**
|
|
70
111
|
* OVERRIDING RULE: {@link S11.graphNode}.
|
|
71
112
|
* [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)
|
|
72
113
|
*/
|
|
73
|
-
export declare const graphNode:
|
|
114
|
+
export declare const graphNode: T11.SparqlGrammarRule<'graphNode', IGraphNode>;
|
|
74
115
|
/**
|
|
75
116
|
* OVERRIDING RULE: {@link S11.graphNodePath}.
|
|
76
117
|
* [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)
|
|
77
118
|
*/
|
|
78
|
-
export declare const graphNodePath:
|
|
119
|
+
export declare const graphNodePath: T11.SparqlGrammarRule<'graphNodePath', IGraphNode>;
|
|
79
120
|
/**
|
|
80
121
|
* OVERRIDING RULE: {@link S11.varOrTerm}.
|
|
81
122
|
* [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)
|
|
82
123
|
*/
|
|
83
|
-
export declare const varOrTerm:
|
|
124
|
+
export declare const varOrTerm: T11.SparqlRule<'varOrTerm', Term>;
|
|
84
125
|
/**
|
|
85
126
|
* [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)
|
|
86
127
|
*/
|
|
87
|
-
export declare const reifiedTriple:
|
|
128
|
+
export declare const reifiedTriple: T11.SparqlGrammarRule<'reifiedTriple', IGraphNode & {
|
|
88
129
|
node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm;
|
|
89
130
|
}>;
|
|
90
131
|
/**
|
|
91
132
|
* [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)
|
|
92
133
|
*/
|
|
93
|
-
export declare const reifiedTripleSubject:
|
|
134
|
+
export declare const reifiedTripleSubject: T11.SparqlGrammarRule<'reifiedTripleSubject', IGraphNode>;
|
|
94
135
|
/**
|
|
95
136
|
* [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)
|
|
96
137
|
*/
|
|
97
|
-
export declare const reifiedTripleObject:
|
|
138
|
+
export declare const reifiedTripleObject: T11.SparqlGrammarRule<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>>;
|
|
98
139
|
/**
|
|
99
140
|
* [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)
|
|
100
141
|
*/
|
|
101
|
-
export declare const tripleTerm:
|
|
142
|
+
export declare const tripleTerm: T11.SparqlRule<'tripleTerm', BaseQuadTerm>;
|
|
102
143
|
/**
|
|
103
144
|
* [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)
|
|
104
145
|
*/
|
|
105
|
-
export declare const tripleTermSubject:
|
|
146
|
+
export declare const tripleTermSubject: T11.SparqlGrammarRule<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>;
|
|
106
147
|
/**
|
|
107
148
|
* [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)
|
|
108
149
|
*/
|
|
109
|
-
export declare const tripleTermObject:
|
|
150
|
+
export declare const tripleTermObject: T11.SparqlGrammarRule<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm>;
|
|
110
151
|
/**
|
|
111
152
|
* [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)
|
|
112
153
|
*/
|
|
113
|
-
export declare const tripleTermData:
|
|
154
|
+
export declare const tripleTermData: T11.SparqlGrammarRule<'tripleTermData', BaseQuadTerm>;
|
|
114
155
|
/**
|
|
115
156
|
* [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)
|
|
116
157
|
*/
|
|
117
|
-
export declare const tripleTermDataSubject:
|
|
158
|
+
export declare const tripleTermDataSubject: T11.SparqlGrammarRule<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm>;
|
|
118
159
|
/**
|
|
119
160
|
* [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)
|
|
120
161
|
*/
|
|
121
|
-
export declare const tripleTermDataObject:
|
|
162
|
+
export declare const tripleTermDataObject: T11.SparqlGrammarRule<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm>;
|
|
122
163
|
/**
|
|
123
164
|
* OVERRIDING RULE: {@link S11.primaryExpression}.
|
|
124
165
|
* [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)
|
|
125
166
|
*/
|
|
126
|
-
export declare const primaryExpression:
|
|
167
|
+
export declare const primaryExpression: T11.SparqlGrammarRule<'primaryExpression', Expression>;
|
|
127
168
|
/**
|
|
128
169
|
* [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)
|
|
129
170
|
*/
|
|
130
|
-
export declare const exprTripleTerm:
|
|
171
|
+
export declare const exprTripleTerm: T11.SparqlGrammarRule<'exprTripleTerm', BaseQuadTerm>;
|
|
131
172
|
/**
|
|
132
173
|
* [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)
|
|
133
174
|
*/
|
|
134
|
-
export declare const exprTripleTermSubject:
|
|
175
|
+
export declare const exprTripleTermSubject: T11.SparqlGrammarRule<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>;
|
|
135
176
|
/**
|
|
136
177
|
* [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)
|
|
137
178
|
*/
|
|
138
|
-
export declare const exprTripleTermObject:
|
|
179
|
+
export declare const exprTripleTermObject: T11.SparqlGrammarRule<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm>;
|
|
139
180
|
export declare const builtinLangDir: S11.RuleDefExpressionFunctionX<"builtInLangdir", [T11.Expression]>;
|
|
140
181
|
export declare const builtinLangStrDir: S11.RuleDefExpressionFunctionX<"builtInStrLangdir", [T11.Expression, T11.Expression, T11.Expression]>;
|
|
141
182
|
export declare const builtinHasLang: S11.RuleDefExpressionFunctionX<"builtInHasLang", [T11.Expression]>;
|
|
@@ -155,4 +196,4 @@ export declare const builtInCall: typeof S11.builtInCall;
|
|
|
155
196
|
* No retyping is needed since the return type is the same
|
|
156
197
|
* [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)
|
|
157
198
|
*/
|
|
158
|
-
export declare const rdfLiteral:
|
|
199
|
+
export declare const rdfLiteral: T11.SparqlGrammarRule<'rdfLiteral', T11.LiteralTerm>;
|
package/lib/grammar.js
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
* Rules in this module redefine the return type of core grammar rules.
|
|
5
5
|
* It is therefore essential that the parser retypes the rules from the core grammar.
|
|
6
6
|
*/
|
|
7
|
+
import { funcExpr1, funcExpr3, gram as S11, lex as l11, CommonIRIs } from '@traqula/rules-sparql-1-1';
|
|
7
8
|
import * as l12 from './lexer';
|
|
8
|
-
import { funcExpr1, funcExpr3 } from '@traqula/rules-sparql-1-1';
|
|
9
|
-
import { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';
|
|
10
|
-
import { CommonIRIs } from '@traqula/core';
|
|
11
9
|
function reifiedTripleBlockImpl(name, allowPath) {
|
|
12
10
|
return {
|
|
13
11
|
name,
|
|
@@ -35,10 +33,16 @@ export const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlock
|
|
|
35
33
|
*/
|
|
36
34
|
export const dataBlockValue = {
|
|
37
35
|
name: 'dataBlockValue',
|
|
38
|
-
impl: $ =>
|
|
36
|
+
impl: $ => C => $.OR2([
|
|
39
37
|
{ ALT: () => S11.dataBlockValue.impl($)(C, undefined) },
|
|
40
38
|
{ ALT: () => $.SUBRULE(tripleTermData, undefined) },
|
|
41
39
|
]),
|
|
40
|
+
gImpl: ({ SUBRULE }) => (ast) => {
|
|
41
|
+
if (ast) {
|
|
42
|
+
return SUBRULE(varOrTerm, ast, undefined);
|
|
43
|
+
}
|
|
44
|
+
return 'UNDEF';
|
|
45
|
+
},
|
|
42
46
|
};
|
|
43
47
|
/**
|
|
44
48
|
* [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)
|
|
@@ -70,8 +74,10 @@ export const varOrReifierId = {
|
|
|
70
74
|
function triplesSameSubjectImpl(name, allowPaths) {
|
|
71
75
|
return {
|
|
72
76
|
name,
|
|
73
|
-
impl: $ =>
|
|
74
|
-
{ ALT: () => allowPaths ?
|
|
77
|
+
impl: $ => C => $.OR2([
|
|
78
|
+
{ ALT: () => allowPaths ?
|
|
79
|
+
S11.triplesSameSubjectPath.impl($)(C, undefined) :
|
|
80
|
+
S11.triplesSameSubject.impl($)(C, undefined) },
|
|
75
81
|
{ ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock, undefined) },
|
|
76
82
|
]),
|
|
77
83
|
};
|
|
@@ -202,7 +208,7 @@ export const annotationBlock = annotationBlockImpl('annotationBlock', false);
|
|
|
202
208
|
*/
|
|
203
209
|
export const graphNode = {
|
|
204
210
|
name: 'graphNode',
|
|
205
|
-
impl: $ =>
|
|
211
|
+
impl: $ => C => $.OR2([
|
|
206
212
|
{ ALT: () => S11.graphNode.impl($)(C, undefined) },
|
|
207
213
|
{ ALT: () => $.SUBRULE(reifiedTriple, undefined) },
|
|
208
214
|
]),
|
|
@@ -213,7 +219,7 @@ export const graphNode = {
|
|
|
213
219
|
*/
|
|
214
220
|
export const graphNodePath = {
|
|
215
221
|
name: 'graphNodePath',
|
|
216
|
-
impl: $ =>
|
|
222
|
+
impl: $ => C => $.OR2([
|
|
217
223
|
{ ALT: () => S11.graphNodePath.impl($)(C, undefined) },
|
|
218
224
|
{ ALT: () => $.SUBRULE(reifiedTriple, undefined) },
|
|
219
225
|
]),
|
|
@@ -224,7 +230,7 @@ export const graphNodePath = {
|
|
|
224
230
|
*/
|
|
225
231
|
export const varOrTerm = {
|
|
226
232
|
name: 'varOrTerm',
|
|
227
|
-
impl: ({ ACTION, SUBRULE, OR, CONSUME }) =>
|
|
233
|
+
impl: ({ ACTION, SUBRULE, OR, CONSUME }) => C => OR([
|
|
228
234
|
{ ALT: () => SUBRULE(S11.var_, undefined) },
|
|
229
235
|
{ ALT: () => SUBRULE(S11.iri, undefined) },
|
|
230
236
|
{ ALT: () => SUBRULE(rdfLiteral, undefined) },
|
|
@@ -237,6 +243,21 @@ export const varOrTerm = {
|
|
|
237
243
|
} },
|
|
238
244
|
{ ALT: () => SUBRULE(tripleTerm, undefined) },
|
|
239
245
|
]),
|
|
246
|
+
gImpl: ({ SUBRULE }) => (ast) => {
|
|
247
|
+
if (ast.termType === 'Variable') {
|
|
248
|
+
return SUBRULE(S11.var_, ast, undefined);
|
|
249
|
+
}
|
|
250
|
+
if (ast.termType === 'NamedNode') {
|
|
251
|
+
return SUBRULE(S11.iri, ast, undefined);
|
|
252
|
+
}
|
|
253
|
+
if (ast.termType === 'BlankNode') {
|
|
254
|
+
return SUBRULE(S11.blankNode, ast, undefined);
|
|
255
|
+
}
|
|
256
|
+
if (ast.termType === 'Quad') {
|
|
257
|
+
return SUBRULE(tripleTerm, ast, undefined);
|
|
258
|
+
}
|
|
259
|
+
return SUBRULE(S11.rdfLiteral, ast, undefined);
|
|
260
|
+
},
|
|
240
261
|
};
|
|
241
262
|
/**
|
|
242
263
|
* [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)
|
|
@@ -287,7 +308,7 @@ export const reifiedTripleSubject = {
|
|
|
287
308
|
*/
|
|
288
309
|
export const reifiedTripleObject = {
|
|
289
310
|
name: 'reifiedTripleObject',
|
|
290
|
-
impl: $ =>
|
|
311
|
+
impl: $ => C => $.OR2([
|
|
291
312
|
{ ALT: () => reifiedTripleSubject.impl($)(C, undefined) },
|
|
292
313
|
{ ALT: () => ({ node: $.SUBRULE(tripleTerm, undefined), triples: [] }) },
|
|
293
314
|
]),
|
|
@@ -305,6 +326,7 @@ export const tripleTerm = {
|
|
|
305
326
|
CONSUME(l12.tripleTermClose);
|
|
306
327
|
return ACTION(() => C.dataFactory.quad(subject, predicate, object));
|
|
307
328
|
},
|
|
329
|
+
gImpl: ({ SUBRULE }) => ast => `<<( ${SUBRULE(varOrTerm, ast.subject, undefined)} ${SUBRULE(varOrTerm, ast.predicate, undefined)} ${SUBRULE(varOrTerm, ast.object, undefined)} )>>`,
|
|
308
330
|
};
|
|
309
331
|
/**
|
|
310
332
|
* [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)
|
|
@@ -325,7 +347,7 @@ export const tripleTermSubject = {
|
|
|
325
347
|
*/
|
|
326
348
|
export const tripleTermObject = {
|
|
327
349
|
name: 'tripleTermObject',
|
|
328
|
-
impl: $ =>
|
|
350
|
+
impl: $ => C => $.OR2([
|
|
329
351
|
{ ALT: () => tripleTermSubject.impl($)(C, undefined) },
|
|
330
352
|
{ ALT: () => $.SUBRULE(tripleTerm, undefined) },
|
|
331
353
|
]),
|
|
@@ -367,7 +389,7 @@ export const tripleTermDataSubject = {
|
|
|
367
389
|
*/
|
|
368
390
|
export const tripleTermDataObject = {
|
|
369
391
|
name: 'tripleTermDataObject',
|
|
370
|
-
impl: $ =>
|
|
392
|
+
impl: $ => C => $.OR2([
|
|
371
393
|
{ ALT: () => tripleTermDataSubject.impl($)(C, undefined) },
|
|
372
394
|
{ ALT: () => $.SUBRULE(tripleTermData, undefined) },
|
|
373
395
|
]),
|
|
@@ -378,7 +400,7 @@ export const tripleTermDataObject = {
|
|
|
378
400
|
*/
|
|
379
401
|
export const primaryExpression = {
|
|
380
402
|
name: 'primaryExpression',
|
|
381
|
-
impl: $ =>
|
|
403
|
+
impl: $ => C => $.OR2([
|
|
382
404
|
{ ALT: () => S11.primaryExpression.impl($)(C, undefined) },
|
|
383
405
|
{ ALT: () => $.SUBRULE(exprTripleTerm, undefined) },
|
|
384
406
|
]),
|
|
@@ -415,7 +437,7 @@ export const exprTripleTermSubject = {
|
|
|
415
437
|
*/
|
|
416
438
|
export const exprTripleTermObject = {
|
|
417
439
|
name: 'exprTripleTermObject',
|
|
418
|
-
impl: $ =>
|
|
440
|
+
impl: $ => C => $.OR2([
|
|
419
441
|
{ ALT: () => exprTripleTermSubject.impl($)(C, undefined) },
|
|
420
442
|
{ ALT: () => $.SUBRULE(exprTripleTerm, undefined) },
|
|
421
443
|
]),
|
|
@@ -435,7 +457,7 @@ export const builtinObject = funcExpr1(l12.builtinOBJECT);
|
|
|
435
457
|
*/
|
|
436
458
|
export const builtInCall = {
|
|
437
459
|
name: 'builtInCall',
|
|
438
|
-
impl: $ =>
|
|
460
|
+
impl: $ => C => $.OR2([
|
|
439
461
|
{ ALT: () => S11.builtInCall.impl($)(C, undefined) },
|
|
440
462
|
{ ALT: () => $.SUBRULE(builtinLangDir, undefined) },
|
|
441
463
|
{ ALT: () => $.SUBRULE(builtinLangStrDir, undefined) },
|
package/lib/grammar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,GAAG,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAE,SAAS,EAAgB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,SAAS,sBAAsB,CAAmB,IAAO,EAAE,SAAkB;IAC3E,OAAe;QACb,IAAI;QACJ,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAE1G,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;gBAClB,GAAG,MAAM,CAAC,OAAO;gBACjB,GAAG,UAAU;aACd,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACtF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AAE7F;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GACwE;IACjG,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAA0D;QAC/E,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QACvD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;KACpD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAqF;IACvG,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,GAAG,EAAE;YACjB,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4F;IACrH,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAiD;QAClF,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QAC3C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;QAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;KACjD,CAAC;CACH,CAAC;AAEF,SAAS,sBAAsB,CAAmB,IAAO,EAAE,UAAmB;IAC5E,OAAe;QACb,IAAI;QACJ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;YAC3H,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE;SAC9F,CAAC;KACH,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACtF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AAE7F,SAAS,UAAU,CAAmB,IAAO,EAAE,UAAmB;IAChE,OAAc;QACZ,IAAI;QACJ,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7E,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAEnF,0FAA0F;YAC1F,oDAAoD;YAEpD,OAAO,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,EAAC,OAAO,EAAE,SAAS,EAAC,GAAG,GAAG,CAAC;gBACjC,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,MAAM,GAAa;oBACvB,uBAAuB;oBACvB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE;oBAC9C,8FAA8F;oBAC9F,GAAG,SAAS,CAAC,OAAO;iBACrB,CAAC;gBACF,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAU,CAAC,CAAC,WAAW,CAAC,IAAI,CACrC,UAAU,CAAC,IAAI,EACf,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAC3C,CAAC,CAAC,WAAW,CAAC,IAAI,CAChB,OAAO,EACsC,SAAS,EACtD,SAAS,CAAC,IAAI,CACf,CACF,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAEzD,SAAS,cAAc,CAAmB,IAAO,EAAE,UAAmB;IACpE,OAAe;QACb,IAAI;QACJ,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,cAA0E,CAAC;YAE/E,SAAS,KAAK;gBACZ,IAAI,cAAc,EAAE,CAAC;oBACnB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,CAAC;oBACvD,cAAc,GAAG,SAAS,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,GAAG,EAAE;gBACR,EAAE,CAAC;oBACD,EAAE,GAAG,EAAE,GAAG,EAAE;4BACV,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;4BACzC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;4BACtB,cAAc,GAAG,IAAI,CAAC;wBACxB,CAAC,EAAE;oBACH,EAAE,GAAG,EAAE,GAAG,EAAE;4BACV,IAAI,IAAuB,CAAC;4BAC5B,MAAM,KAAK,GAAG,OAAO,CACnB,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,EAClD,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE;oCACnB,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;wCAC5E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oCACpE,CAAC;oCACD,IAAI,GAAG,cAAc,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oCACnD,OAAO,IAAI,CAAC;gCACd,CAAC,CAAC,EAAE,CACP,CAAC;4BACF,MAAM,CAAC,GAAG,EAAE;gCACV,WAAW,CAAC,IAAI,CAAC;oCACf,IAAI;oCACJ,OAAO,EAAE,KAAK;iCACf,CAAC,CAAC;gCACH,cAAc,GAAG,SAAS,CAAA;4BAC5B,CAAC,CAAC,CAAC;wBACL,CAAC,EAAE;iBACJ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,GAAG,EAAE;gBACjB,KAAK,EAAE,CAAC;gBACR,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AACrE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAE9D,SAAS,mBAAmB,CAAmB,IAAO,EAAE,UAAmB;IACzE,OAAe;QACb,IAAI;QACJ,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAa,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7I,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAE7B,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AACpF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAmD;IACvE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAc;QACnC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QAClD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;KACnD,CAAC;CACH,CAAC;AACF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAuD;IAC/E,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa;QAClC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QACtD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;KACnD,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAO;QAC1D,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QAC3C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;QAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;QAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;QAChD,EAAE,GAAG,EAAE,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,CAAC,EAAE;QACH,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;KAC9C,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GACsF;IAC9G,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9B,OAAO,MAAM,CAAC,GAAG,EAAE;YACjB,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5E,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE;oBACP,GAAG,OAAO,CAAC,OAAO;oBACT,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;oBAC7F,GAAG,MAAM,CAAC,OAAO;iBAClB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAEvB;IACN,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAa;QAC9C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QACnE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QAClE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QACrE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QAC7E,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QAC7E,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;QACxE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;KACjD,CAAC;CACH,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAEtB;IACN,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACtB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QACzD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE;KACxE,CAAC;CACH,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAsD;IAC3E,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GACiF;IAC7G,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAmE;QACpG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QAC3C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;QAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;QAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;KACjD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GACuE;IAClG,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAkF;QACvG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QACtD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;KAChD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA0D;IACnF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,EAAE,CAAC;YACnB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;YAC1C,EAAE,GAAG,EAAE,GAAG,EAAE;oBACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,CAAC,EAAE;SACJ,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7B,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkF;IAClH,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAgC;QACjE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;QAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;QAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;KACtD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC2E;IAC1G,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAA+C;QACpE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QAC1D,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;KACpD,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2D;IACvF,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa;QAClC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QAC1D,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;KACpD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA0D;IACnF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7B,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GACiE;IACjG,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAC9B,EAAE,CAAmD;QACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;QAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;QAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;KAC5C,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC2E;IAC1G,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,GAAG,CAAkE;QACrE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QAC1D,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;KACpD,CAAC;CACL,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAmC;IACzD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAiB;QACtC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;QACpD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE;QACtD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE;QACtD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE;QACpD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;QAClD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE;QACnD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;KACnD,CAAC;CACH,CAAC;AAEF,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkC;IACvD,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAA2C;YAC/E,EAAE,GAAG,EAAE,GAAG,EAAE;oBACV,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAErD,OAAO,MAAM,CAAC,GAAG,EAAE;wBACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACxB,MAAM,CAAE,QAAQ,EAAE,SAAS,CAAE,GAAG,QAAQ,CAAC;4BACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,iBAAiB,KAAK,IAAI,OAAO,2CAA2C,CAAC,CAAC;4BAChI,CAAC;4BACD,OAAO;gCACL,QAAQ;gCACR,SAAS;6BACV,CAAC;wBACJ,CAAC;wBACD,OAAO,OAAO,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE;YACH,EAAE,GAAG,EAAE,GAAG,EAAE;oBACV,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrC,CAAC,EAAE;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IACpE,CAAC;CACF,CAAC","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type { RuleDefReturn } from '@traqula/core';\nimport {funcExpr1, funcExpr3, SparqlRuleDef} from '@traqula/rules-sparql-1-1';\nimport { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { CommonIRIs } from '@traqula/core';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): SparqlRuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple, undefined);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, { subject: triple.node });\n\n return ACTION(() => [\n ...triple.triples,\n ...properties,\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nSparqlRuleDef<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => (C) => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTermData, undefined) },\n ]),\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: SparqlRuleDef<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId, undefined));\n return ACTION(() => {\n if (reifier === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? C.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: SparqlRuleDef<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n ]),\n};\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): SparqlRuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: $ => (C) => $.OR2([\n { ALT: () => allowPaths ? S11.triplesSameSubjectPath.impl($)(C, undefined) : S11.triplesSameSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock, undefined) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean): SparqlRuleDef<T, Triple[], Pick<Triple, 'subject' | 'predicate'>> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE }) => (C, arg) => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode, undefined);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation, undefined);\n\n // This rule knows the annotation. And for each annotation node, we need to make a triple:\n // <annotationNode, reifies, parsedSubjectAndObject>\n\n return ACTION(() => {\n const {subject, predicate} = arg;\n if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {\n throw new Error('Note 17 violation');\n }\n\n const result: Triple[] = [\n // You parse the object\n { subject, predicate, object: objectVal.node },\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples,\n ];\n for (const annotation of annotationVal) {\n result.push(<Triple> C.dataFactory.quad(\n annotation.node,\n C.dataFactory.namedNode(CommonIRIs.REIFIES),\n C.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n ));\n result.push(...annotation.triples);\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): SparqlRuleDef<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY }) => (C) => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier, undefined);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n let node: Triple['subject'];\n const block = SUBRULE(\n allowPaths ? annotationBlockPath : annotationBlock,\n { subject: ACTION(() => {\n if (currentReifier === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n node = currentReifier ?? C.dataFactory.blankNode();\n return node;\n }) },\n );\n ACTION(() => {\n annotations.push({\n node,\n triples: block,\n });\n currentReifier = undefined\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean): SparqlRuleDef<T, Triple[], Pick<Triple, 'subject'>> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, CONSUME }) => (_, arg) => {\n CONSUME(l12.annotationOpen);\n const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty, { subject: <T11.Term> ACTION(() => arg.subject) });\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: SparqlRuleDef<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => (C) => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(reifiedTriple, undefined) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: SparqlRuleDef<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => (C) => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(reifiedTriple, undefined) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: SparqlRuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ ACTION, SUBRULE, OR, CONSUME }) => (C) => OR<Term>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return ACTION(() => C.dataFactory.namedNode(CommonIRIs.NIL));\n } },\n { ALT: () => SUBRULE(tripleTerm, undefined) },\n ]),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple:\nSparqlRuleDef<'reifiedTriple', IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(reifiedTripleObject, undefined);\n const reifierVal = OPTION(() => SUBRULE(reifier, undefined));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? C.dataFactory.blankNode();\n const tripleTerm = C.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> C.dataFactory.quad(reifier, C.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nSparqlRuleDef<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode, undefined), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple, undefined) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nSparqlRuleDef<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => (C) => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)(C, undefined) },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm, undefined), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: SparqlRuleDef<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(tripleTermObject, undefined);\n CONSUME(l12.tripleTermClose);\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nSparqlRuleDef<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nSparqlRuleDef<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => (C) => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTerm, undefined) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: SparqlRuleDef<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject, undefined);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => C.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject, undefined);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: SparqlRuleDef<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> = <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n ]),\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nSparqlRuleDef<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => (C) => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTermData, undefined) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: SparqlRuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => (C) => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(exprTripleTerm, undefined) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: SparqlRuleDef<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(exprTripleTermObject, undefined);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nSparqlRuleDef<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.var_, undefined) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nSparqlRuleDef<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => (C) =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(exprTripleTerm, undefined) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => (C) => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(builtinLangDir, undefined) },\n { ALT: () => $.SUBRULE(builtinLangStrDir, undefined) },\n { ALT: () => $.SUBRULE(builtinHasLang, undefined) },\n { ALT: () => $.SUBRULE(builtinHasLangDir, undefined) },\n { ALT: () => $.SUBRULE(builtinIsTriple, undefined) },\n { ALT: () => $.SUBRULE(builtinTriple, undefined) },\n { ALT: () => $.SUBRULE(builtinSubject, undefined) },\n { ALT: () => $.SUBRULE(builtinPredicate, undefined) },\n { ALT: () => $.SUBRULE(builtinObject, undefined) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: typeof S11.rdfLiteral = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR }) => (C) => {\n const value = SUBRULE(S11.string, undefined);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri, undefined);\n } },\n ]));\n return ACTION(() => C.dataFactory.literal(value, langOrDataType));\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { RuleDefReturn } from '@traqula/core';\nimport { funcExpr1, funcExpr3, gram as S11, lex as l11, CommonIRIs } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): T11.SparqlGrammarRule<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple, undefined);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, { subject: triple.node });\n\n return ACTION(() => [\n ...triple.triples,\n ...properties,\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nT11.SparqlRule<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => C => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTermData, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n if (ast) {\n return SUBRULE(varOrTerm, ast, undefined);\n }\n return 'UNDEF';\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: T11.SparqlGrammarRule<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId, undefined));\n return ACTION(() => {\n if (reifier === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? C.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: T11.SparqlGrammarRule<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> =\n <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n ]),\n };\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): T11.SparqlGrammarRule<T, Triple[]> {\n return <const> {\n name,\n impl: $ => C => $.OR2([\n { ALT: () => allowPaths ?\n S11.triplesSameSubjectPath.impl($)(C, undefined) :\n S11.triplesSameSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock, undefined) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean):\nT11.SparqlGrammarRule<T, Triple[], Pick<Triple, 'subject' | 'predicate'>> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE }) => (C, arg) => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode, undefined);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation, undefined);\n\n // This rule knows the annotation. And for each annotation node, we need to make a triple:\n // <annotationNode, reifies, parsedSubjectAndObject>\n\n return ACTION(() => {\n const { subject, predicate } = arg;\n if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {\n throw new Error('Note 17 violation');\n }\n\n const result: Triple[] = [\n // You parse the object\n { subject, predicate, object: objectVal.node },\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples,\n ];\n for (const annotation of annotationVal) {\n result.push(<Triple> C.dataFactory.quad(\n annotation.node,\n C.dataFactory.namedNode(CommonIRIs.REIFIES),\n C.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n ));\n result.push(...annotation.triples);\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): T11.SparqlGrammarRule<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY }) => (C) => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier, undefined);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n let node: Triple['subject'];\n const block = SUBRULE(\n allowPaths ? annotationBlockPath : annotationBlock,\n { subject: ACTION(() => {\n if (currentReifier === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n node = currentReifier ?? C.dataFactory.blankNode();\n return node;\n }) },\n );\n ACTION(() => {\n annotations.push({\n node,\n triples: block,\n });\n currentReifier = undefined;\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean):\nT11.SparqlGrammarRule<T, Triple[], Pick<Triple, 'subject'>> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, CONSUME }) => (_, arg) => {\n CONSUME(l12.annotationOpen);\n const res = SUBRULE(\n allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty,\n { subject: <T11.Term> ACTION(() => arg.subject) },\n );\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: T11.SparqlGrammarRule<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => C => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(reifiedTriple, undefined) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: T11.SparqlGrammarRule<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => C => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(reifiedTriple, undefined) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: T11.SparqlRule<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ ACTION, SUBRULE, OR, CONSUME }) => C => OR<Term>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return ACTION(() => C.dataFactory.namedNode(CommonIRIs.NIL));\n } },\n { ALT: () => SUBRULE(tripleTerm, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n if (ast.termType === 'Variable') {\n return SUBRULE(S11.var_, ast, undefined);\n }\n if (ast.termType === 'NamedNode') {\n return SUBRULE(S11.iri, ast, undefined);\n }\n if (ast.termType === 'BlankNode') {\n return SUBRULE(S11.blankNode, ast, undefined);\n }\n if (ast.termType === 'Quad') {\n return SUBRULE(tripleTerm, ast, undefined);\n }\n return SUBRULE(S11.rdfLiteral, ast, undefined);\n },\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple: T11.SparqlGrammarRule<\n 'reifiedTriple',\n IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }\n> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(reifiedTripleObject, undefined);\n const reifierVal = OPTION(() => SUBRULE(reifier, undefined));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !C.parseMode.has('canCreateBlankNodes')) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? C.dataFactory.blankNode();\n const tripleTerm = C.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> C.dataFactory.quad(reifier, C.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nT11.SparqlGrammarRule<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral, undefined), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode, undefined), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple, undefined) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nT11.SparqlGrammarRule<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => C => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)(C, undefined) },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm, undefined), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: T11.SparqlRule<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(tripleTermObject, undefined);\n CONSUME(l12.tripleTermClose);\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n gImpl: ({ SUBRULE }) => ast =>\n `<<( ${SUBRULE(varOrTerm, ast.subject, undefined)} ${SUBRULE(varOrTerm, ast.predicate, undefined)} ${SUBRULE(varOrTerm, ast.object, undefined)} )>>`,\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nT11.SparqlGrammarRule<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_, undefined) },\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.blankNode, undefined) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nT11.SparqlGrammarRule<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => C => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTerm, undefined) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: T11.SparqlGrammarRule<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject, undefined);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => C.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject, undefined);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: T11.SparqlGrammarRule<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> =\n <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n ]),\n };\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nT11.SparqlGrammarRule<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => C => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(tripleTermData, undefined) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: T11.SparqlGrammarRule<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => C => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(exprTripleTerm, undefined) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: T11.SparqlGrammarRule<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject, undefined);\n const predicate = SUBRULE(S11.verb, undefined);\n const object = SUBRULE(exprTripleTermObject, undefined);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => C.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nT11.SparqlGrammarRule<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri, undefined) },\n { ALT: () => SUBRULE(rdfLiteral, undefined) },\n { ALT: () => SUBRULE(S11.numericLiteral, undefined) },\n { ALT: () => SUBRULE(S11.booleanLiteral, undefined) },\n { ALT: () => SUBRULE(S11.var_, undefined) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nT11.SparqlGrammarRule<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => C =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(exprTripleTerm, undefined) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => C => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)(C, undefined) },\n { ALT: () => $.SUBRULE(builtinLangDir, undefined) },\n { ALT: () => $.SUBRULE(builtinLangStrDir, undefined) },\n { ALT: () => $.SUBRULE(builtinHasLang, undefined) },\n { ALT: () => $.SUBRULE(builtinHasLangDir, undefined) },\n { ALT: () => $.SUBRULE(builtinIsTriple, undefined) },\n { ALT: () => $.SUBRULE(builtinTriple, undefined) },\n { ALT: () => $.SUBRULE(builtinSubject, undefined) },\n { ALT: () => $.SUBRULE(builtinPredicate, undefined) },\n { ALT: () => $.SUBRULE(builtinObject, undefined) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: T11.SparqlGrammarRule<'rdfLiteral', T11.LiteralTerm> = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR }) => (C) => {\n const value = SUBRULE(S11.string, undefined);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri, undefined);\n } },\n ]));\n return ACTION(() => C.dataFactory.literal(value, langOrDataType));\n },\n};\n"]}
|