@traqula/rules-sparql-1-1-adjust 0.0.2 → 0.0.4
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 +0 -2
- package/lib/index.cjs +1445 -1444
- package/package.json +4 -4
package/lib/index.cjs
CHANGED
|
@@ -11337,7 +11337,7 @@ function stringEscapedLexical(str2) {
|
|
|
11337
11337
|
var rdfLiteral = {
|
|
11338
11338
|
name: "rdfLiteral",
|
|
11339
11339
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
|
|
11340
|
-
const value = SUBRULE1(string
|
|
11340
|
+
const value = SUBRULE1(string);
|
|
11341
11341
|
return OPTION(() => OR([
|
|
11342
11342
|
{ ALT: () => {
|
|
11343
11343
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
@@ -11349,7 +11349,7 @@ var rdfLiteral = {
|
|
|
11349
11349
|
} },
|
|
11350
11350
|
{ ALT: () => {
|
|
11351
11351
|
CONSUME(symbols_exports.hathat);
|
|
11352
|
-
const iriVal = SUBRULE1(iri2
|
|
11352
|
+
const iriVal = SUBRULE1(iri2);
|
|
11353
11353
|
return ACTION(() => C.factory.literalTerm(
|
|
11354
11354
|
C.factory.sourceLocation(value, iriVal),
|
|
11355
11355
|
value.value,
|
|
@@ -11365,7 +11365,7 @@ var rdfLiteral = {
|
|
|
11365
11365
|
factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
11366
11366
|
} else {
|
|
11367
11367
|
factory.printFilter(ast, () => PRINT("^^"));
|
|
11368
|
-
SUBRULE(iri2, ast.langOrIri
|
|
11368
|
+
SUBRULE(iri2, ast.langOrIri);
|
|
11369
11369
|
}
|
|
11370
11370
|
}
|
|
11371
11371
|
}
|
|
@@ -11373,9 +11373,9 @@ var rdfLiteral = {
|
|
|
11373
11373
|
var numericLiteral = {
|
|
11374
11374
|
name: "numericLiteral",
|
|
11375
11375
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11376
|
-
{ ALT: () => SUBRULE(numericLiteralUnsigned
|
|
11377
|
-
{ ALT: () => SUBRULE(numericLiteralPositive
|
|
11378
|
-
{ ALT: () => SUBRULE(numericLiteralNegative
|
|
11376
|
+
{ ALT: () => SUBRULE(numericLiteralUnsigned) },
|
|
11377
|
+
{ ALT: () => SUBRULE(numericLiteralPositive) },
|
|
11378
|
+
{ ALT: () => SUBRULE(numericLiteralNegative) }
|
|
11379
11379
|
])
|
|
11380
11380
|
};
|
|
11381
11381
|
var numericLiteralUnsigned = {
|
|
@@ -11483,10 +11483,10 @@ var string = {
|
|
|
11483
11483
|
var iri2 = {
|
|
11484
11484
|
name: "iri",
|
|
11485
11485
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11486
|
-
{ ALT: () => SUBRULE(iriFull
|
|
11487
|
-
{ ALT: () => SUBRULE(prefixedName
|
|
11486
|
+
{ ALT: () => SUBRULE(iriFull) },
|
|
11487
|
+
{ ALT: () => SUBRULE(prefixedName) }
|
|
11488
11488
|
]),
|
|
11489
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast
|
|
11489
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
|
|
11490
11490
|
};
|
|
11491
11491
|
var iriFull = {
|
|
11492
11492
|
name: "iriFull",
|
|
@@ -11558,11 +11558,11 @@ function datasetClauseUsing(name, token) {
|
|
|
11558
11558
|
const start = CONSUME(token);
|
|
11559
11559
|
return OR([
|
|
11560
11560
|
{ ALT: () => {
|
|
11561
|
-
const iri3 = SUBRULE(defaultGraphClause
|
|
11561
|
+
const iri3 = SUBRULE(defaultGraphClause);
|
|
11562
11562
|
return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
|
|
11563
11563
|
} },
|
|
11564
11564
|
{ ALT: () => {
|
|
11565
|
-
const namedClause = SUBRULE(namedGraphClause
|
|
11565
|
+
const namedClause = SUBRULE(namedGraphClause);
|
|
11566
11566
|
return ACTION(() => C.factory.wrap({
|
|
11567
11567
|
clauseType: "named",
|
|
11568
11568
|
value: namedClause.val
|
|
@@ -11575,7 +11575,7 @@ function datasetClauseUsing(name, token) {
|
|
|
11575
11575
|
var datasetClause = datasetClauseUsing("datasetClause", from);
|
|
11576
11576
|
var defaultGraphClause = {
|
|
11577
11577
|
name: "defaultGraphClause",
|
|
11578
|
-
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector
|
|
11578
|
+
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
|
|
11579
11579
|
};
|
|
11580
11580
|
var usingClause2 = datasetClauseUsing("usingClause", usingClause);
|
|
11581
11581
|
function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
@@ -11584,7 +11584,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11584
11584
|
impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
|
|
11585
11585
|
const clauses = [];
|
|
11586
11586
|
MANY(() => {
|
|
11587
|
-
const clause = SUBRULE(subRule
|
|
11587
|
+
const clause = SUBRULE(subRule);
|
|
11588
11588
|
clauses.push(clause);
|
|
11589
11589
|
});
|
|
11590
11590
|
return ACTION(() => C.factory.datasetClauses(
|
|
@@ -11598,7 +11598,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11598
11598
|
if (clause.clauseType === "named") {
|
|
11599
11599
|
F2.printFilter(ast, () => PRINT_WORD("NAMED"));
|
|
11600
11600
|
}
|
|
11601
|
-
SUBRULE(iri2, clause.value
|
|
11601
|
+
SUBRULE(iri2, clause.value);
|
|
11602
11602
|
}
|
|
11603
11603
|
}
|
|
11604
11604
|
};
|
|
@@ -11609,1389 +11609,1390 @@ var namedGraphClause = {
|
|
|
11609
11609
|
name: "namedGraphClause",
|
|
11610
11610
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11611
11611
|
const named2 = CONSUME(graph_exports.named);
|
|
11612
|
-
const iri3 = SUBRULE(sourceSelector
|
|
11612
|
+
const iri3 = SUBRULE(sourceSelector);
|
|
11613
11613
|
return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
|
|
11614
11614
|
}
|
|
11615
11615
|
};
|
|
11616
11616
|
var sourceSelector = {
|
|
11617
11617
|
name: "sourceSelector",
|
|
11618
|
-
impl: ({ SUBRULE }) => () => SUBRULE(iri2
|
|
11618
|
+
impl: ({ SUBRULE }) => () => SUBRULE(iri2)
|
|
11619
11619
|
};
|
|
11620
11620
|
|
|
11621
|
-
// ../rules-sparql-1-1/lib/
|
|
11622
|
-
|
|
11623
|
-
name: "prologue",
|
|
11624
|
-
impl: ({ SUBRULE, MANY, OR }) => () => {
|
|
11625
|
-
const result = [];
|
|
11626
|
-
MANY(() => OR([
|
|
11627
|
-
{ ALT: () => result.push(SUBRULE(baseDecl2, void 0)) },
|
|
11628
|
-
// TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
|
|
11629
|
-
// We might need to check this.
|
|
11630
|
-
{ ALT: () => result.push(SUBRULE(prefixDecl2, void 0)) }
|
|
11631
|
-
]));
|
|
11632
|
-
return result;
|
|
11633
|
-
},
|
|
11634
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11635
|
-
for (const context of ast) {
|
|
11636
|
-
if (F2.isContextDefinitionBase(context)) {
|
|
11637
|
-
SUBRULE(baseDecl2, context, void 0);
|
|
11638
|
-
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
11639
|
-
SUBRULE(prefixDecl2, context, void 0);
|
|
11640
|
-
}
|
|
11641
|
-
}
|
|
11642
|
-
}
|
|
11643
|
-
};
|
|
11644
|
-
var baseDecl2 = {
|
|
11645
|
-
name: "baseDecl",
|
|
11646
|
-
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11647
|
-
const base = CONSUME(baseDecl);
|
|
11648
|
-
const val = SUBRULE(iriFull, void 0);
|
|
11649
|
-
return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
|
|
11650
|
-
},
|
|
11651
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
11652
|
-
F2.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
11653
|
-
SUBRULE(iri2, ast.value, void 0);
|
|
11654
|
-
}
|
|
11655
|
-
};
|
|
11656
|
-
var prefixDecl2 = {
|
|
11657
|
-
name: "prefixDecl",
|
|
11658
|
-
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11659
|
-
const prefix = CONSUME(prefixDecl);
|
|
11660
|
-
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
11661
|
-
const value = SUBRULE(iriFull, void 0);
|
|
11662
|
-
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
11663
|
-
},
|
|
11664
|
-
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
11665
|
-
F2.printFilter(ast, () => {
|
|
11666
|
-
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
11667
|
-
});
|
|
11668
|
-
SUBRULE(iri2, ast.value, void 0);
|
|
11669
|
-
}
|
|
11670
|
-
};
|
|
11671
|
-
var verb = {
|
|
11672
|
-
name: "verb",
|
|
11673
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11674
|
-
{ ALT: () => SUBRULE(varOrIri, void 0) },
|
|
11675
|
-
{ ALT: () => SUBRULE(verbA, void 0) }
|
|
11676
|
-
])
|
|
11677
|
-
};
|
|
11678
|
-
var varOrTerm = {
|
|
11679
|
-
name: "varOrTerm",
|
|
11680
|
-
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
11681
|
-
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
|
|
11682
|
-
{ ALT: () => SUBRULE(graphTerm, void 0) }
|
|
11683
|
-
]),
|
|
11684
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11685
|
-
if (F2.isTermVariable(ast)) {
|
|
11686
|
-
return SUBRULE(var_, ast, void 0);
|
|
11687
|
-
}
|
|
11688
|
-
return SUBRULE(graphTerm, ast, void 0);
|
|
11689
|
-
}
|
|
11690
|
-
};
|
|
11691
|
-
var varOrIri = {
|
|
11692
|
-
name: "varOrIri",
|
|
11693
|
-
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
11694
|
-
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
|
|
11695
|
-
{ ALT: () => SUBRULE(iri2, void 0) }
|
|
11696
|
-
])
|
|
11697
|
-
};
|
|
11698
|
-
var var_ = {
|
|
11699
|
-
name: "var",
|
|
11700
|
-
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
11701
|
-
const varToken = OR([
|
|
11702
|
-
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
11703
|
-
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
11704
|
-
]);
|
|
11705
|
-
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
11706
|
-
},
|
|
11707
|
-
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
11708
|
-
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
11709
|
-
}
|
|
11710
|
-
};
|
|
11711
|
-
var graphTerm = {
|
|
11712
|
-
name: "graphTerm",
|
|
11713
|
-
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
11714
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
11715
|
-
{ ALT: () => SUBRULE(rdfLiteral, void 0) },
|
|
11716
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
11717
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
11718
|
-
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
|
|
11719
|
-
{ ALT: () => {
|
|
11720
|
-
const tokenNil = CONSUME(terminals_exports.nil);
|
|
11721
|
-
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
11722
|
-
} }
|
|
11723
|
-
]),
|
|
11724
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11725
|
-
if (F2.isTermNamed(ast)) {
|
|
11726
|
-
SUBRULE(iri2, ast, void 0);
|
|
11727
|
-
} else if (F2.isTermLiteral(ast)) {
|
|
11728
|
-
SUBRULE(rdfLiteral, ast, void 0);
|
|
11729
|
-
} else if (F2.isTermBlank(ast)) {
|
|
11730
|
-
SUBRULE(blankNode, ast, void 0);
|
|
11731
|
-
}
|
|
11732
|
-
}
|
|
11733
|
-
};
|
|
11734
|
-
|
|
11735
|
-
// ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
|
|
11736
|
-
var path = {
|
|
11737
|
-
name: "path",
|
|
11738
|
-
impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
|
|
11739
|
-
};
|
|
11740
|
-
var pathGenerator = {
|
|
11741
|
-
name: "path",
|
|
11742
|
-
gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
|
|
11743
|
-
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
11744
|
-
SUBRULE(iri2, ast, void 0);
|
|
11745
|
-
} else {
|
|
11746
|
-
F2.printFilter(ast, () => braces && PRINT("("));
|
|
11747
|
-
switch (ast.subType) {
|
|
11748
|
-
case "|":
|
|
11749
|
-
case "/": {
|
|
11750
|
-
const [head2, ...tail] = ast.items;
|
|
11751
|
-
SUBRULE(pathGenerator, head2, braces);
|
|
11752
|
-
for (const val of tail) {
|
|
11753
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
11754
|
-
SUBRULE(pathGenerator, val, braces);
|
|
11755
|
-
}
|
|
11756
|
-
break;
|
|
11757
|
-
}
|
|
11758
|
-
case "^":
|
|
11759
|
-
F2.printFilter(ast, () => PRINT("^"));
|
|
11760
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
11761
|
-
break;
|
|
11762
|
-
case "?":
|
|
11763
|
-
case "*":
|
|
11764
|
-
case "+":
|
|
11765
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
11766
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
11767
|
-
break;
|
|
11768
|
-
case "!":
|
|
11769
|
-
F2.printFilter(ast, () => PRINT("!"));
|
|
11770
|
-
F2.printFilter(ast, () => PRINT("("));
|
|
11771
|
-
SUBRULE(pathGenerator, ast.items[0], false);
|
|
11772
|
-
F2.printFilter(ast, () => PRINT(")"));
|
|
11773
|
-
break;
|
|
11774
|
-
}
|
|
11775
|
-
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
11776
|
-
}
|
|
11777
|
-
}
|
|
11778
|
-
};
|
|
11779
|
-
function pathChainHelper(name, SEP, subType, subRule) {
|
|
11621
|
+
// ../rules-sparql-1-1/lib/expressionHelpers.ts
|
|
11622
|
+
function funcExpr1(func) {
|
|
11780
11623
|
return {
|
|
11781
|
-
name,
|
|
11782
|
-
impl: ({ ACTION,
|
|
11783
|
-
const
|
|
11784
|
-
|
|
11785
|
-
const
|
|
11786
|
-
|
|
11787
|
-
|
|
11788
|
-
tailEnd = SUBRULE2(subRule, void 0);
|
|
11789
|
-
tail.push(tailEnd);
|
|
11790
|
-
});
|
|
11791
|
-
return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
|
|
11624
|
+
name: unCapitalize(func.name),
|
|
11625
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11626
|
+
const operator = CONSUME(func);
|
|
11627
|
+
CONSUME(symbols_exports.LParen);
|
|
11628
|
+
const arg = SUBRULE(expression);
|
|
11629
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11630
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11792
11631
|
}
|
|
11793
11632
|
};
|
|
11794
11633
|
}
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
const hat2 = CONSUME(symbols_exports.hat);
|
|
11801
|
-
const item = SUBRULE2(pathElt, void 0);
|
|
11802
|
-
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
11803
|
-
} }
|
|
11804
|
-
])
|
|
11805
|
-
};
|
|
11806
|
-
var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
|
|
11807
|
-
var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
|
|
11808
|
-
var pathElt = {
|
|
11809
|
-
name: "pathElt",
|
|
11810
|
-
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
11811
|
-
const item = SUBRULE(pathPrimary, void 0);
|
|
11812
|
-
const modification = OPTION(() => SUBRULE(pathMod, void 0));
|
|
11813
|
-
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
11814
|
-
}
|
|
11815
|
-
};
|
|
11816
|
-
var pathMod = {
|
|
11817
|
-
name: "pathMod",
|
|
11818
|
-
impl: ({ CONSUME, OR }) => () => OR([
|
|
11819
|
-
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
11820
|
-
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
11821
|
-
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
11822
|
-
])
|
|
11823
|
-
};
|
|
11824
|
-
var pathPrimary = {
|
|
11825
|
-
name: "pathPrimary",
|
|
11826
|
-
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
11827
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
11828
|
-
{ ALT: () => SUBRULE(verbA, void 0) },
|
|
11829
|
-
{ ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
|
|
11830
|
-
{ ALT: () => {
|
|
11634
|
+
function funcExpr2(func) {
|
|
11635
|
+
return {
|
|
11636
|
+
name: unCapitalize(func.name),
|
|
11637
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
|
|
11638
|
+
const operator = CONSUME(func);
|
|
11831
11639
|
CONSUME(symbols_exports.LParen);
|
|
11832
|
-
const
|
|
11833
|
-
CONSUME(symbols_exports.
|
|
11834
|
-
|
|
11835
|
-
|
|
11836
|
-
|
|
11837
|
-
};
|
|
11838
|
-
var pathNegatedPropertySet = {
|
|
11839
|
-
name: "pathNegatedPropertySet",
|
|
11840
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
11841
|
-
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
11842
|
-
return OR([
|
|
11843
|
-
{ ALT: () => {
|
|
11844
|
-
const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
|
|
11845
|
-
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
11846
|
-
} },
|
|
11847
|
-
{ ALT: () => {
|
|
11848
|
-
const open = CONSUME(symbols_exports.LParen);
|
|
11849
|
-
const head2 = SUBRULE2(pathOneInPropertySet, void 0);
|
|
11850
|
-
const tail = [];
|
|
11851
|
-
MANY(() => {
|
|
11852
|
-
CONSUME(symbols_exports.pipe);
|
|
11853
|
-
const item = SUBRULE3(pathOneInPropertySet, void 0);
|
|
11854
|
-
tail.push(item);
|
|
11855
|
-
});
|
|
11856
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
11857
|
-
return ACTION(() => {
|
|
11858
|
-
const F2 = C.factory;
|
|
11859
|
-
if (tail.length === 0) {
|
|
11860
|
-
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
11861
|
-
}
|
|
11862
|
-
return F2.path(
|
|
11863
|
-
"!",
|
|
11864
|
-
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
11865
|
-
F2.sourceLocation(exclamation2, close)
|
|
11866
|
-
);
|
|
11867
|
-
});
|
|
11868
|
-
} }
|
|
11869
|
-
]);
|
|
11870
|
-
}
|
|
11871
|
-
};
|
|
11872
|
-
var pathOneInPropertySet = {
|
|
11873
|
-
name: "pathOneInPropertySet",
|
|
11874
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
11875
|
-
{ ALT: () => SUBRULE1(iri2, void 0) },
|
|
11876
|
-
{ ALT: () => SUBRULE1(verbA, void 0) },
|
|
11877
|
-
{ ALT: () => {
|
|
11878
|
-
const hat2 = CONSUME(symbols_exports.hat);
|
|
11879
|
-
const item = OR2([
|
|
11880
|
-
{ ALT: () => SUBRULE2(iri2, void 0) },
|
|
11881
|
-
{ ALT: () => SUBRULE2(verbA, void 0) }
|
|
11882
|
-
]);
|
|
11883
|
-
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
11884
|
-
} }
|
|
11885
|
-
])
|
|
11886
|
-
};
|
|
11887
|
-
|
|
11888
|
-
// ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
|
|
11889
|
-
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
11890
|
-
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
11891
|
-
const triples = [];
|
|
11892
|
-
let parsedDot = true;
|
|
11893
|
-
let dotToken;
|
|
11894
|
-
AT_LEAST_ONE({
|
|
11895
|
-
GATE: () => parsedDot,
|
|
11896
|
-
DEF: () => {
|
|
11897
|
-
parsedDot = false;
|
|
11898
|
-
const template = SUBRULE(triplesSameSubjectSubrule, void 0);
|
|
11899
|
-
ACTION(() => {
|
|
11900
|
-
triples.push(...template);
|
|
11901
|
-
});
|
|
11902
|
-
OPTION(() => {
|
|
11903
|
-
dotToken = CONSUME(symbols_exports.dot);
|
|
11904
|
-
parsedDot = true;
|
|
11905
|
-
});
|
|
11906
|
-
}
|
|
11907
|
-
});
|
|
11908
|
-
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
11909
|
-
};
|
|
11910
|
-
}
|
|
11911
|
-
var triplesBlock = {
|
|
11912
|
-
name: "triplesBlock",
|
|
11913
|
-
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
|
|
11914
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
11915
|
-
for (const [index, triple] of ast.triples.entries()) {
|
|
11916
|
-
HANDLE_LOC(triple, () => {
|
|
11917
|
-
const nextTriple = ast.triples.at(index);
|
|
11918
|
-
if (F2.isTripleCollection(triple)) {
|
|
11919
|
-
SUBRULE(graphNodePath, triple, void 0);
|
|
11920
|
-
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
11921
|
-
} else {
|
|
11922
|
-
SUBRULE(graphNodePath, triple.subject, void 0);
|
|
11923
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
11924
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
11925
|
-
} else {
|
|
11926
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
11927
|
-
}
|
|
11928
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
11929
|
-
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
11930
|
-
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
11931
|
-
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
11932
|
-
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
11933
|
-
} else {
|
|
11934
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
11935
|
-
}
|
|
11936
|
-
}
|
|
11937
|
-
});
|
|
11640
|
+
const arg1 = SUBRULE1(expression);
|
|
11641
|
+
CONSUME(symbols_exports.comma);
|
|
11642
|
+
const arg2 = SUBRULE2(expression);
|
|
11643
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11644
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
|
|
11938
11645
|
}
|
|
11939
|
-
}
|
|
11940
|
-
};
|
|
11941
|
-
function triplesSameSubjectImpl(name, allowPaths) {
|
|
11942
|
-
return {
|
|
11943
|
-
name,
|
|
11944
|
-
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
11945
|
-
{ ALT: () => {
|
|
11946
|
-
const subject = SUBRULE(varOrTerm, void 0);
|
|
11947
|
-
const res = SUBRULE(
|
|
11948
|
-
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
11949
|
-
{ subject: ACTION(() => C.factory.dematerialized(subject)) }
|
|
11950
|
-
);
|
|
11951
|
-
return ACTION(() => {
|
|
11952
|
-
if (res.length > 0) {
|
|
11953
|
-
res[0].subject = subject;
|
|
11954
|
-
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
11955
|
-
}
|
|
11956
|
-
return res;
|
|
11957
|
-
});
|
|
11958
|
-
} },
|
|
11959
|
-
{ ALT: () => {
|
|
11960
|
-
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
|
|
11961
|
-
const restNode = SUBRULE(
|
|
11962
|
-
allowPaths ? propertyListPath : propertyList,
|
|
11963
|
-
{ subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
|
|
11964
|
-
);
|
|
11965
|
-
return ACTION(() => {
|
|
11966
|
-
if (restNode.length === 0) {
|
|
11967
|
-
return [subjectNode];
|
|
11968
|
-
}
|
|
11969
|
-
restNode[0].subject = subjectNode;
|
|
11970
|
-
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
11971
|
-
return restNode;
|
|
11972
|
-
});
|
|
11973
|
-
} }
|
|
11974
|
-
])
|
|
11975
11646
|
};
|
|
11976
11647
|
}
|
|
11977
|
-
|
|
11978
|
-
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
11979
|
-
var triplesTemplate = {
|
|
11980
|
-
name: "triplesTemplate",
|
|
11981
|
-
impl: triplesDotSeperated(triplesSameSubject)
|
|
11982
|
-
};
|
|
11983
|
-
function propertyListImpl(name, allowPaths) {
|
|
11648
|
+
function funcExpr3(func) {
|
|
11984
11649
|
return {
|
|
11985
|
-
name,
|
|
11986
|
-
impl: ({
|
|
11650
|
+
name: unCapitalize(func.name),
|
|
11651
|
+
impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
|
|
11652
|
+
const operator = CONSUME(func);
|
|
11653
|
+
CONSUME(symbols_exports.LParen);
|
|
11654
|
+
const arg1 = SUBRULE1(expression);
|
|
11655
|
+
CONSUME1(symbols_exports.comma);
|
|
11656
|
+
const arg2 = SUBRULE2(expression);
|
|
11657
|
+
CONSUME2(symbols_exports.comma);
|
|
11658
|
+
const arg3 = SUBRULE3(expression);
|
|
11659
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11660
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
|
|
11661
|
+
}
|
|
11987
11662
|
};
|
|
11988
11663
|
}
|
|
11989
|
-
|
|
11990
|
-
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
11991
|
-
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
11664
|
+
function funcVar1(func) {
|
|
11992
11665
|
return {
|
|
11993
|
-
name,
|
|
11994
|
-
impl: ({ ACTION,
|
|
11995
|
-
const
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
11999
|
-
|
|
12000
|
-
parsedSemi = false;
|
|
12001
|
-
const predicate = allowPaths ? OR1([
|
|
12002
|
-
{ ALT: () => SUBRULE1(verbPath, void 0) },
|
|
12003
|
-
{ ALT: () => SUBRULE1(verbSimple, void 0) }
|
|
12004
|
-
]) : SUBRULE1(verb, void 0);
|
|
12005
|
-
const triples = SUBRULE1(
|
|
12006
|
-
allowPaths ? objectListPath : objectList,
|
|
12007
|
-
ACTION(() => ({ subject: arg.subject, predicate }))
|
|
12008
|
-
);
|
|
12009
|
-
MANY2(() => {
|
|
12010
|
-
CONSUME(symbols_exports.semi);
|
|
12011
|
-
parsedSemi = true;
|
|
12012
|
-
});
|
|
12013
|
-
ACTION(() => {
|
|
12014
|
-
result.push(...triples);
|
|
12015
|
-
});
|
|
12016
|
-
}
|
|
12017
|
-
});
|
|
12018
|
-
return result;
|
|
11666
|
+
name: unCapitalize(func.name),
|
|
11667
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11668
|
+
const operator = CONSUME(func);
|
|
11669
|
+
CONSUME(symbols_exports.LParen);
|
|
11670
|
+
const arg = SUBRULE(var_);
|
|
11671
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11672
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12019
11673
|
}
|
|
12020
11674
|
};
|
|
12021
11675
|
}
|
|
12022
|
-
|
|
12023
|
-
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12024
|
-
var verbPath = {
|
|
12025
|
-
name: "verbPath",
|
|
12026
|
-
impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
|
|
12027
|
-
};
|
|
12028
|
-
var verbSimple = {
|
|
12029
|
-
name: "verbSimple",
|
|
12030
|
-
impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
|
|
12031
|
-
};
|
|
12032
|
-
function objectListImpl(name, allowPaths) {
|
|
11676
|
+
function funcExprOrNil1(func) {
|
|
12033
11677
|
return {
|
|
12034
|
-
name,
|
|
12035
|
-
impl: ({ ACTION,
|
|
12036
|
-
const
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
const
|
|
12041
|
-
|
|
12042
|
-
|
|
12043
|
-
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
11678
|
+
name: unCapitalize(func.name),
|
|
11679
|
+
impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
|
|
11680
|
+
const operator = CONSUME(func);
|
|
11681
|
+
return OR([
|
|
11682
|
+
{ ALT: () => {
|
|
11683
|
+
CONSUME(symbols_exports.LParen);
|
|
11684
|
+
const arg = SUBRULE(expression);
|
|
11685
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11686
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11687
|
+
} },
|
|
11688
|
+
{ ALT: () => {
|
|
11689
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
11690
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
11691
|
+
} }
|
|
11692
|
+
]);
|
|
12047
11693
|
}
|
|
12048
11694
|
};
|
|
12049
11695
|
}
|
|
12050
|
-
|
|
12051
|
-
var objectListPath = objectListImpl("objectListPath", true);
|
|
12052
|
-
function objectImpl(name, allowPaths) {
|
|
11696
|
+
function funcNil1(func) {
|
|
12053
11697
|
return {
|
|
12054
|
-
name,
|
|
12055
|
-
impl: ({ ACTION,
|
|
12056
|
-
const
|
|
12057
|
-
|
|
11698
|
+
name: unCapitalize(func.name),
|
|
11699
|
+
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11700
|
+
const operator = CONSUME(func);
|
|
11701
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
11702
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
12058
11703
|
}
|
|
12059
11704
|
};
|
|
12060
11705
|
}
|
|
12061
|
-
|
|
12062
|
-
var objectPath = objectImpl("objectPath", true);
|
|
12063
|
-
function collectionImpl(name, allowPaths) {
|
|
11706
|
+
function funcExprList1(func) {
|
|
12064
11707
|
return {
|
|
12065
|
-
name,
|
|
12066
|
-
impl: ({ ACTION,
|
|
12067
|
-
const
|
|
12068
|
-
const
|
|
12069
|
-
|
|
12070
|
-
|
|
12071
|
-
|
|
12072
|
-
|
|
12073
|
-
|
|
12074
|
-
|
|
12075
|
-
|
|
12076
|
-
|
|
12077
|
-
|
|
12078
|
-
|
|
12079
|
-
|
|
12080
|
-
|
|
12081
|
-
|
|
12082
|
-
|
|
12083
|
-
|
|
12084
|
-
|
|
12085
|
-
predFirst,
|
|
12086
|
-
term
|
|
12087
|
-
);
|
|
12088
|
-
triples.push(headTriple);
|
|
12089
|
-
if (lastInList) {
|
|
12090
|
-
const nilTriple = F2.triple(iterHead, predRest, predNil);
|
|
12091
|
-
triples.push(nilTriple);
|
|
12092
|
-
} else {
|
|
12093
|
-
const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12094
|
-
const linkTriple = F2.triple(iterHead, predRest, tail);
|
|
12095
|
-
triples.push(linkTriple);
|
|
12096
|
-
iterHead = tail;
|
|
12097
|
-
}
|
|
12098
|
-
}
|
|
12099
|
-
return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
|
|
11708
|
+
name: unCapitalize(func.name),
|
|
11709
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11710
|
+
const operator = CONSUME(func);
|
|
11711
|
+
const args = SUBRULE(expressionList);
|
|
11712
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
11713
|
+
}
|
|
11714
|
+
};
|
|
11715
|
+
}
|
|
11716
|
+
function funcExpr2or3(func) {
|
|
11717
|
+
return {
|
|
11718
|
+
name: unCapitalize(func.name),
|
|
11719
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
|
|
11720
|
+
const operator = CONSUME(func);
|
|
11721
|
+
CONSUME(symbols_exports.LParen);
|
|
11722
|
+
const arg1 = SUBRULE1(expression);
|
|
11723
|
+
CONSUME1(symbols_exports.comma);
|
|
11724
|
+
const arg2 = SUBRULE2(expression);
|
|
11725
|
+
const arg3 = OPTION(() => {
|
|
11726
|
+
CONSUME2(symbols_exports.comma);
|
|
11727
|
+
return SUBRULE3(expression);
|
|
12100
11728
|
});
|
|
12101
|
-
|
|
12102
|
-
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
|
|
12107
|
-
}
|
|
12108
|
-
}
|
|
12109
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
11729
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11730
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
11731
|
+
operator.image,
|
|
11732
|
+
arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
|
|
11733
|
+
C.factory.sourceLocation(operator, close)
|
|
11734
|
+
));
|
|
12110
11735
|
}
|
|
12111
11736
|
};
|
|
12112
11737
|
}
|
|
12113
|
-
|
|
12114
|
-
var collectionPath = collectionImpl("collectionPath", true);
|
|
12115
|
-
function triplesNodeImpl(name, allowPaths) {
|
|
11738
|
+
function funcExpr3or4(func) {
|
|
12116
11739
|
return {
|
|
12117
|
-
name,
|
|
12118
|
-
impl: ({
|
|
12119
|
-
|
|
12120
|
-
|
|
12121
|
-
|
|
12122
|
-
|
|
11740
|
+
name: unCapitalize(func.name),
|
|
11741
|
+
impl: ({
|
|
11742
|
+
ACTION,
|
|
11743
|
+
CONSUME,
|
|
11744
|
+
SUBRULE1,
|
|
11745
|
+
SUBRULE2,
|
|
11746
|
+
SUBRULE3,
|
|
11747
|
+
SUBRULE4,
|
|
11748
|
+
CONSUME1,
|
|
11749
|
+
OPTION,
|
|
11750
|
+
CONSUME2,
|
|
11751
|
+
CONSUME3
|
|
11752
|
+
}) => (C) => {
|
|
11753
|
+
const operator = CONSUME(func);
|
|
11754
|
+
CONSUME(symbols_exports.LParen);
|
|
11755
|
+
const arg1 = SUBRULE1(expression);
|
|
11756
|
+
CONSUME1(symbols_exports.comma);
|
|
11757
|
+
const arg2 = SUBRULE2(expression);
|
|
11758
|
+
CONSUME2(symbols_exports.comma);
|
|
11759
|
+
const arg3 = SUBRULE3(expression);
|
|
11760
|
+
const arg4 = OPTION(() => {
|
|
11761
|
+
CONSUME3(symbols_exports.comma);
|
|
11762
|
+
return SUBRULE4(expression);
|
|
11763
|
+
});
|
|
11764
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11765
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
11766
|
+
operator.image,
|
|
11767
|
+
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
11768
|
+
C.factory.sourceLocation(operator, close)
|
|
11769
|
+
));
|
|
11770
|
+
}
|
|
12123
11771
|
};
|
|
12124
11772
|
}
|
|
12125
|
-
|
|
12126
|
-
var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
|
|
12127
|
-
function blankNodePropertyListImpl(name, allowPaths) {
|
|
12128
|
-
const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
|
|
11773
|
+
function funcGroupGraphPattern(func) {
|
|
12129
11774
|
return {
|
|
12130
|
-
name,
|
|
11775
|
+
name: unCapitalize(func.name),
|
|
12131
11776
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12132
|
-
const
|
|
12133
|
-
const
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
propList,
|
|
12139
|
-
C.factory.sourceLocation(startToken, endToken)
|
|
11777
|
+
const operator = CONSUME(func);
|
|
11778
|
+
const group = SUBRULE(groupGraphPattern);
|
|
11779
|
+
return ACTION(() => C.factory.expressionPatternOperation(
|
|
11780
|
+
operator.image,
|
|
11781
|
+
group,
|
|
11782
|
+
C.factory.sourceLocation(operator, group)
|
|
12140
11783
|
));
|
|
12141
|
-
},
|
|
12142
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12143
|
-
F2.printFilter(ast, () => PRINT("["));
|
|
12144
|
-
for (const triple of ast.triples) {
|
|
12145
|
-
HANDLE_LOC(triple, () => {
|
|
12146
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12147
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
12148
|
-
} else {
|
|
12149
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12150
|
-
}
|
|
12151
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
12152
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12153
|
-
});
|
|
12154
|
-
}
|
|
12155
|
-
F2.printFilter(ast, () => PRINT("]"));
|
|
12156
11784
|
}
|
|
12157
11785
|
};
|
|
12158
11786
|
}
|
|
12159
|
-
|
|
12160
|
-
var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
|
|
12161
|
-
function graphNodeImpl(name, allowPaths) {
|
|
12162
|
-
const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
|
|
11787
|
+
function baseAggregateFunc(func) {
|
|
12163
11788
|
return {
|
|
12164
|
-
name,
|
|
12165
|
-
impl: ({ SUBRULE,
|
|
12166
|
-
|
|
12167
|
-
|
|
12168
|
-
|
|
12169
|
-
|
|
12170
|
-
|
|
12171
|
-
|
|
12172
|
-
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
|
|
11789
|
+
name: unCapitalize(func.name),
|
|
11790
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
|
|
11791
|
+
const operator = CONSUME(func);
|
|
11792
|
+
CONSUME(symbols_exports.LParen);
|
|
11793
|
+
const distinct2 = OPTION(() => CONSUME(distinct));
|
|
11794
|
+
const expr1 = SUBRULE(expression);
|
|
11795
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11796
|
+
return ACTION(() => C.factory.aggregate(
|
|
11797
|
+
operator.image,
|
|
11798
|
+
distinct2 !== void 0,
|
|
11799
|
+
expr1,
|
|
11800
|
+
void 0,
|
|
11801
|
+
C.factory.sourceLocation(operator, close)
|
|
11802
|
+
));
|
|
12178
11803
|
}
|
|
12179
11804
|
};
|
|
12180
11805
|
}
|
|
12181
|
-
var graphNode = graphNodeImpl("graphNode", false);
|
|
12182
|
-
var graphNodePath = graphNodeImpl("graphNodePath", true);
|
|
12183
11806
|
|
|
12184
|
-
// ../rules-sparql-1-1/lib/grammar/
|
|
12185
|
-
var
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
12194
|
-
|
|
11807
|
+
// ../rules-sparql-1-1/lib/grammar/builtIn.ts
|
|
11808
|
+
var builtInStr = funcExpr1(BuildinCalls_exports.str);
|
|
11809
|
+
var builtInLang = funcExpr1(BuildinCalls_exports.lang);
|
|
11810
|
+
var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
|
|
11811
|
+
var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
|
|
11812
|
+
var builtInBound = funcVar1(BuildinCalls_exports.bound);
|
|
11813
|
+
var builtInIri = funcExpr1(BuildinCalls_exports.iri);
|
|
11814
|
+
var builtInUri = funcExpr1(BuildinCalls_exports.uri);
|
|
11815
|
+
var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
|
|
11816
|
+
var builtInRand = funcNil1(BuildinCalls_exports.rand);
|
|
11817
|
+
var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
|
|
11818
|
+
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
11819
|
+
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
11820
|
+
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
11821
|
+
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
11822
|
+
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
11823
|
+
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
11824
|
+
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
11825
|
+
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
11826
|
+
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
11827
|
+
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
11828
|
+
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
11829
|
+
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
11830
|
+
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
11831
|
+
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
11832
|
+
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
11833
|
+
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
11834
|
+
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
11835
|
+
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
11836
|
+
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
11837
|
+
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
11838
|
+
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
11839
|
+
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
11840
|
+
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
11841
|
+
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
11842
|
+
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
11843
|
+
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
11844
|
+
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
11845
|
+
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
11846
|
+
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
11847
|
+
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
11848
|
+
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
11849
|
+
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
11850
|
+
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
11851
|
+
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
11852
|
+
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
11853
|
+
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
11854
|
+
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
11855
|
+
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
11856
|
+
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
11857
|
+
function builtInCallList(SUBRULE) {
|
|
11858
|
+
return [
|
|
11859
|
+
{ ALT: () => SUBRULE(aggregate) },
|
|
11860
|
+
{ ALT: () => SUBRULE(builtInStr) },
|
|
11861
|
+
{ ALT: () => SUBRULE(builtInLang) },
|
|
11862
|
+
{ ALT: () => SUBRULE(builtInLangmatches) },
|
|
11863
|
+
{ ALT: () => SUBRULE(builtInDatatype) },
|
|
11864
|
+
{ ALT: () => SUBRULE(builtInBound) },
|
|
11865
|
+
{ ALT: () => SUBRULE(builtInIri) },
|
|
11866
|
+
{ ALT: () => SUBRULE(builtInUri) },
|
|
11867
|
+
{ ALT: () => SUBRULE(builtInBnodeSparqlJs) },
|
|
11868
|
+
{ ALT: () => SUBRULE(builtInRand) },
|
|
11869
|
+
{ ALT: () => SUBRULE(builtInAbs) },
|
|
11870
|
+
{ ALT: () => SUBRULE(builtInCeil) },
|
|
11871
|
+
{ ALT: () => SUBRULE(builtInFloor) },
|
|
11872
|
+
{ ALT: () => SUBRULE(builtInRound) },
|
|
11873
|
+
{ ALT: () => SUBRULE(builtInConcat) },
|
|
11874
|
+
{ ALT: () => SUBRULE(substringExpression) },
|
|
11875
|
+
{ ALT: () => SUBRULE(builtInStrlen) },
|
|
11876
|
+
{ ALT: () => SUBRULE(strReplaceExpression) },
|
|
11877
|
+
{ ALT: () => SUBRULE(builtInUcase) },
|
|
11878
|
+
{ ALT: () => SUBRULE(builtInLcase) },
|
|
11879
|
+
{ ALT: () => SUBRULE(builtInEncode_for_uri) },
|
|
11880
|
+
{ ALT: () => SUBRULE(builtInContains) },
|
|
11881
|
+
{ ALT: () => SUBRULE(builtInStrstarts) },
|
|
11882
|
+
{ ALT: () => SUBRULE(builtInStrends) },
|
|
11883
|
+
{ ALT: () => SUBRULE(builtInStrbefore) },
|
|
11884
|
+
{ ALT: () => SUBRULE(builtInStrafter) },
|
|
11885
|
+
{ ALT: () => SUBRULE(builtInYear) },
|
|
11886
|
+
{ ALT: () => SUBRULE(builtInMonth) },
|
|
11887
|
+
{ ALT: () => SUBRULE(builtInDay) },
|
|
11888
|
+
{ ALT: () => SUBRULE(builtInHours) },
|
|
11889
|
+
{ ALT: () => SUBRULE(builtInMinutes) },
|
|
11890
|
+
{ ALT: () => SUBRULE(builtInSeconds) },
|
|
11891
|
+
{ ALT: () => SUBRULE(builtInTimezone) },
|
|
11892
|
+
{ ALT: () => SUBRULE(builtInTz) },
|
|
11893
|
+
{ ALT: () => SUBRULE(builtInNow) },
|
|
11894
|
+
{ ALT: () => SUBRULE(builtInUuid) },
|
|
11895
|
+
{ ALT: () => SUBRULE(builtInStruuid) },
|
|
11896
|
+
{ ALT: () => SUBRULE(builtInMd5) },
|
|
11897
|
+
{ ALT: () => SUBRULE(builtInSha1) },
|
|
11898
|
+
{ ALT: () => SUBRULE(builtInSha256) },
|
|
11899
|
+
{ ALT: () => SUBRULE(builtInSha384) },
|
|
11900
|
+
{ ALT: () => SUBRULE(builtInSha512) },
|
|
11901
|
+
{ ALT: () => SUBRULE(builtInCoalesce) },
|
|
11902
|
+
{ ALT: () => SUBRULE(builtInIf) },
|
|
11903
|
+
{ ALT: () => SUBRULE(builtInStrlang) },
|
|
11904
|
+
{ ALT: () => SUBRULE(builtInStrdt) },
|
|
11905
|
+
{ ALT: () => SUBRULE(builtInSameterm) },
|
|
11906
|
+
{ ALT: () => SUBRULE(builtInIsiri) },
|
|
11907
|
+
{ ALT: () => SUBRULE(builtInIsuri) },
|
|
11908
|
+
{ ALT: () => SUBRULE(builtInIsblank) },
|
|
11909
|
+
{ ALT: () => SUBRULE(builtInIsliteral) },
|
|
11910
|
+
{ ALT: () => SUBRULE(builtInIsnumeric) },
|
|
11911
|
+
{ ALT: () => SUBRULE(regexExpression) },
|
|
11912
|
+
{ ALT: () => SUBRULE(existsFunc) },
|
|
11913
|
+
{ ALT: () => SUBRULE(notExistsFunc) }
|
|
11914
|
+
];
|
|
11915
|
+
}
|
|
11916
|
+
var builtInCall = {
|
|
11917
|
+
name: "builtInCall",
|
|
11918
|
+
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
11919
|
+
const cached = cache.get(builtInCall);
|
|
11920
|
+
if (cached) {
|
|
11921
|
+
return OR(cached);
|
|
11922
|
+
}
|
|
11923
|
+
const builtIns = builtInCallList(SUBRULE);
|
|
11924
|
+
cache.set(builtInCall, builtIns);
|
|
11925
|
+
return OR(builtIns);
|
|
11926
|
+
}
|
|
11927
|
+
};
|
|
11928
|
+
var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
|
|
11929
|
+
var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
|
|
11930
|
+
var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
|
|
11931
|
+
var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
|
|
11932
|
+
var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
|
|
11933
|
+
var aggregateCount = {
|
|
11934
|
+
name: unCapitalize(BuildinCalls_exports.count.name),
|
|
11935
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
11936
|
+
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
11937
|
+
CONSUME(symbols_exports.LParen);
|
|
11938
|
+
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
11939
|
+
const expressionVal = OR([
|
|
11940
|
+
{ ALT: () => {
|
|
11941
|
+
const starToken = CONSUME(symbols_exports.star);
|
|
11942
|
+
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
11943
|
+
} },
|
|
11944
|
+
{ ALT: () => SUBRULE(expression) }
|
|
11945
|
+
]);
|
|
11946
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
11947
|
+
return ACTION(() => {
|
|
11948
|
+
const F2 = C.factory;
|
|
11949
|
+
if (C.factory.isWildcard(expressionVal)) {
|
|
11950
|
+
return F2.aggregate(
|
|
11951
|
+
operatorToken.image,
|
|
11952
|
+
Boolean(distinctToken),
|
|
11953
|
+
expressionVal,
|
|
11954
|
+
void 0,
|
|
11955
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
11956
|
+
);
|
|
11957
|
+
}
|
|
11958
|
+
return F2.aggregate(
|
|
11959
|
+
operatorToken.image,
|
|
11960
|
+
Boolean(distinctToken),
|
|
11961
|
+
expressionVal,
|
|
11962
|
+
void 0,
|
|
11963
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
11964
|
+
);
|
|
11965
|
+
});
|
|
11966
|
+
}
|
|
11967
|
+
};
|
|
11968
|
+
var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
|
|
11969
|
+
var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
|
|
11970
|
+
var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
|
|
11971
|
+
var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
|
|
11972
|
+
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
11973
|
+
var aggregateGroup_concat = {
|
|
11974
|
+
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
11975
|
+
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
11976
|
+
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
11977
|
+
CONSUME(symbols_exports.LParen);
|
|
11978
|
+
const distinctToken = OPTION1(() => CONSUME(distinct));
|
|
11979
|
+
const expr = SUBRULE(expression);
|
|
11980
|
+
const sep = OPTION2(() => {
|
|
11981
|
+
CONSUME(symbols_exports.semi);
|
|
11982
|
+
CONSUME(separator);
|
|
11983
|
+
CONSUME(symbols_exports.equal);
|
|
11984
|
+
return SUBRULE(string);
|
|
11985
|
+
});
|
|
11986
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
11987
|
+
return ACTION(() => {
|
|
11988
|
+
const F2 = C.factory;
|
|
11989
|
+
return F2.aggregate(
|
|
11990
|
+
operatorToken.image,
|
|
11991
|
+
Boolean(distinctToken),
|
|
11992
|
+
expr,
|
|
11993
|
+
sep?.value ?? " ",
|
|
11994
|
+
F2.sourceLocation(operatorToken, closeToken)
|
|
11995
|
+
);
|
|
11996
|
+
});
|
|
12195
11997
|
}
|
|
12196
11998
|
};
|
|
12197
|
-
var
|
|
12198
|
-
name: "
|
|
12199
|
-
impl: ({ ACTION, SUBRULE,
|
|
12200
|
-
const
|
|
12201
|
-
|
|
12202
|
-
|
|
12203
|
-
{ ALT: () => SUBRULE(
|
|
11999
|
+
var aggregate = {
|
|
12000
|
+
name: "aggregate",
|
|
12001
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
12002
|
+
const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
|
|
12003
|
+
ACTION(() => C.parseMode.add("inAggregate"));
|
|
12004
|
+
const result = OR([
|
|
12005
|
+
{ ALT: () => SUBRULE(aggregateCount) },
|
|
12006
|
+
{ ALT: () => SUBRULE(aggregateSum) },
|
|
12007
|
+
{ ALT: () => SUBRULE(aggregateMin) },
|
|
12008
|
+
{ ALT: () => SUBRULE(aggregateMax) },
|
|
12009
|
+
{ ALT: () => SUBRULE(aggregateAvg) },
|
|
12010
|
+
{ ALT: () => SUBRULE(aggregateSample) },
|
|
12011
|
+
{ ALT: () => SUBRULE(aggregateGroup_concat) }
|
|
12204
12012
|
]);
|
|
12205
|
-
|
|
12206
|
-
|
|
12013
|
+
ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
|
|
12014
|
+
ACTION(() => {
|
|
12015
|
+
if (!C.parseMode.has("canParseAggregate")) {
|
|
12016
|
+
throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
|
|
12017
|
+
}
|
|
12018
|
+
if (C.parseMode.has("inAggregate")) {
|
|
12019
|
+
throw new Error("An aggregate function is not allowed within an aggregate function.");
|
|
12020
|
+
}
|
|
12021
|
+
});
|
|
12022
|
+
return result;
|
|
12207
12023
|
},
|
|
12208
12024
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12209
|
-
F2.printFilter(ast, () =>
|
|
12210
|
-
|
|
12211
|
-
|
|
12025
|
+
F2.printFilter(ast, () => {
|
|
12026
|
+
PRINT_WORD(ast.aggregation, "(");
|
|
12027
|
+
if (ast.distinct) {
|
|
12028
|
+
PRINT_WORD("DISTINCT");
|
|
12029
|
+
}
|
|
12030
|
+
});
|
|
12031
|
+
const arg = ast.expression[0];
|
|
12032
|
+
if (F2.isWildcard(arg)) {
|
|
12033
|
+
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
12034
|
+
} else {
|
|
12035
|
+
SUBRULE(expression, arg);
|
|
12212
12036
|
}
|
|
12213
|
-
F2.
|
|
12037
|
+
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
12038
|
+
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
12039
|
+
}
|
|
12040
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12214
12041
|
}
|
|
12215
12042
|
};
|
|
12216
|
-
|
|
12217
|
-
|
|
12043
|
+
|
|
12044
|
+
// ../rules-sparql-1-1/lib/grammar/general.ts
|
|
12045
|
+
var prologue = {
|
|
12046
|
+
name: "prologue",
|
|
12047
|
+
impl: ({ SUBRULE, MANY, OR }) => () => {
|
|
12048
|
+
const result = [];
|
|
12049
|
+
MANY(() => OR([
|
|
12050
|
+
{ ALT: () => result.push(SUBRULE(baseDecl2)) },
|
|
12051
|
+
// TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
|
|
12052
|
+
// We might need to check this.
|
|
12053
|
+
{ ALT: () => result.push(SUBRULE(prefixDecl2)) }
|
|
12054
|
+
]));
|
|
12055
|
+
return result;
|
|
12056
|
+
},
|
|
12218
12057
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12219
|
-
|
|
12220
|
-
|
|
12221
|
-
context
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12225
|
-
solutionModifiers: ast.solutionModifiers,
|
|
12226
|
-
values: ast.values,
|
|
12227
|
-
distinct: ast.distinct,
|
|
12228
|
-
reduced: ast.reduced
|
|
12229
|
-
}, ast.loc), void 0);
|
|
12230
|
-
} else if (ast.subType === "group") {
|
|
12231
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12232
|
-
} else if (ast.subType === "bgp") {
|
|
12233
|
-
SUBRULE(triplesBlock, ast, void 0);
|
|
12234
|
-
} else {
|
|
12235
|
-
SUBRULE(graphPatternNotTriples, ast, void 0);
|
|
12058
|
+
for (const context of ast) {
|
|
12059
|
+
if (F2.isContextDefinitionBase(context)) {
|
|
12060
|
+
SUBRULE(baseDecl2, context);
|
|
12061
|
+
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
12062
|
+
SUBRULE(prefixDecl2, context);
|
|
12063
|
+
}
|
|
12236
12064
|
}
|
|
12237
12065
|
}
|
|
12238
12066
|
};
|
|
12239
|
-
var
|
|
12240
|
-
name: "
|
|
12241
|
-
impl: ({ ACTION,
|
|
12242
|
-
const
|
|
12243
|
-
const
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
|
|
12248
|
-
|
|
12249
|
-
|
|
12250
|
-
|
|
12251
|
-
|
|
12252
|
-
|
|
12253
|
-
|
|
12254
|
-
|
|
12067
|
+
var baseDecl2 = {
|
|
12068
|
+
name: "baseDecl",
|
|
12069
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12070
|
+
const base = CONSUME(baseDecl);
|
|
12071
|
+
const val = SUBRULE(iriFull);
|
|
12072
|
+
return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
|
|
12073
|
+
},
|
|
12074
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12075
|
+
F2.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
12076
|
+
SUBRULE(iri2, ast.value);
|
|
12077
|
+
}
|
|
12078
|
+
};
|
|
12079
|
+
var prefixDecl2 = {
|
|
12080
|
+
name: "prefixDecl",
|
|
12081
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12082
|
+
const prefix = CONSUME(prefixDecl);
|
|
12083
|
+
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
12084
|
+
const value = SUBRULE(iriFull);
|
|
12085
|
+
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
12086
|
+
},
|
|
12087
|
+
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
12088
|
+
F2.printFilter(ast, () => {
|
|
12089
|
+
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
12255
12090
|
});
|
|
12256
|
-
|
|
12257
|
-
return patterns;
|
|
12091
|
+
SUBRULE(iri2, ast.value);
|
|
12258
12092
|
}
|
|
12259
12093
|
};
|
|
12260
|
-
var
|
|
12261
|
-
name: "
|
|
12094
|
+
var verb = {
|
|
12095
|
+
name: "verb",
|
|
12262
12096
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12263
|
-
{ ALT: () => SUBRULE(
|
|
12264
|
-
{ ALT: () => SUBRULE(
|
|
12265
|
-
|
|
12266
|
-
|
|
12267
|
-
|
|
12268
|
-
|
|
12269
|
-
|
|
12270
|
-
{
|
|
12097
|
+
{ ALT: () => SUBRULE(varOrIri) },
|
|
12098
|
+
{ ALT: () => SUBRULE(verbA) }
|
|
12099
|
+
])
|
|
12100
|
+
};
|
|
12101
|
+
var varOrTerm = {
|
|
12102
|
+
name: "varOrTerm",
|
|
12103
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12104
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12105
|
+
{ ALT: () => SUBRULE(graphTerm) }
|
|
12271
12106
|
]),
|
|
12272
|
-
gImpl: ({ SUBRULE }) => (ast) => {
|
|
12273
|
-
|
|
12274
|
-
|
|
12275
|
-
case "union":
|
|
12276
|
-
SUBRULE(groupOrUnionGraphPattern, ast, void 0);
|
|
12277
|
-
break;
|
|
12278
|
-
case "optional":
|
|
12279
|
-
SUBRULE(optionalGraphPattern, ast, void 0);
|
|
12280
|
-
break;
|
|
12281
|
-
case "minus":
|
|
12282
|
-
SUBRULE(minusGraphPattern, ast, void 0);
|
|
12283
|
-
break;
|
|
12284
|
-
case "graph":
|
|
12285
|
-
SUBRULE(graphGraphPattern, ast, void 0);
|
|
12286
|
-
break;
|
|
12287
|
-
case "service":
|
|
12288
|
-
SUBRULE(serviceGraphPattern, ast, void 0);
|
|
12289
|
-
break;
|
|
12290
|
-
case "filter":
|
|
12291
|
-
SUBRULE(filter3, ast, void 0);
|
|
12292
|
-
break;
|
|
12293
|
-
case "bind":
|
|
12294
|
-
SUBRULE(bind2, ast, void 0);
|
|
12295
|
-
break;
|
|
12296
|
-
case "values":
|
|
12297
|
-
SUBRULE(inlineData, ast, void 0);
|
|
12298
|
-
break;
|
|
12107
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12108
|
+
if (F2.isTermVariable(ast)) {
|
|
12109
|
+
return SUBRULE(var_, ast);
|
|
12299
12110
|
}
|
|
12111
|
+
return SUBRULE(graphTerm, ast);
|
|
12300
12112
|
}
|
|
12301
12113
|
};
|
|
12302
|
-
var
|
|
12303
|
-
name: "
|
|
12304
|
-
impl: ({
|
|
12305
|
-
|
|
12306
|
-
|
|
12307
|
-
|
|
12308
|
-
},
|
|
12309
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12310
|
-
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12311
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12312
|
-
}
|
|
12114
|
+
var varOrIri = {
|
|
12115
|
+
name: "varOrIri",
|
|
12116
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12117
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12118
|
+
{ ALT: () => SUBRULE(iri2) }
|
|
12119
|
+
])
|
|
12313
12120
|
};
|
|
12314
|
-
var
|
|
12315
|
-
name: "
|
|
12316
|
-
impl: ({ ACTION,
|
|
12317
|
-
const
|
|
12318
|
-
|
|
12319
|
-
|
|
12320
|
-
|
|
12121
|
+
var var_ = {
|
|
12122
|
+
name: "var",
|
|
12123
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
12124
|
+
const varToken = OR([
|
|
12125
|
+
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
12126
|
+
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
12127
|
+
]);
|
|
12128
|
+
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
12321
12129
|
},
|
|
12322
|
-
gImpl: ({
|
|
12323
|
-
F2.printFilter(ast, () => PRINT_WORD(
|
|
12324
|
-
SUBRULE(varOrTerm, ast.name, void 0);
|
|
12325
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12130
|
+
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12131
|
+
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
12326
12132
|
}
|
|
12327
12133
|
};
|
|
12328
|
-
var
|
|
12329
|
-
name: "
|
|
12330
|
-
impl: ({ ACTION,
|
|
12331
|
-
|
|
12332
|
-
|
|
12333
|
-
|
|
12334
|
-
|
|
12335
|
-
|
|
12336
|
-
|
|
12337
|
-
|
|
12338
|
-
|
|
12339
|
-
|
|
12340
|
-
|
|
12341
|
-
|
|
12342
|
-
|
|
12343
|
-
|
|
12344
|
-
|
|
12345
|
-
|
|
12346
|
-
})
|
|
12347
|
-
|
|
12348
|
-
|
|
12134
|
+
var graphTerm = {
|
|
12135
|
+
name: "graphTerm",
|
|
12136
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
12137
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12138
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
12139
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
12140
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
12141
|
+
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
12142
|
+
{ ALT: () => {
|
|
12143
|
+
const tokenNil = CONSUME(terminals_exports.nil);
|
|
12144
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
12145
|
+
} }
|
|
12146
|
+
]),
|
|
12147
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12148
|
+
if (F2.isTermNamed(ast)) {
|
|
12149
|
+
SUBRULE(iri2, ast);
|
|
12150
|
+
} else if (F2.isTermLiteral(ast)) {
|
|
12151
|
+
SUBRULE(rdfLiteral, ast);
|
|
12152
|
+
} else if (F2.isTermBlank(ast)) {
|
|
12153
|
+
SUBRULE(blankNode, ast);
|
|
12154
|
+
}
|
|
12349
12155
|
}
|
|
12350
12156
|
};
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
|
|
12355
|
-
|
|
12356
|
-
const expressionVal = SUBRULE(expression, void 0);
|
|
12357
|
-
CONSUME(as);
|
|
12358
|
-
const variable = SUBRULE(var_, void 0);
|
|
12359
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12360
|
-
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
12361
|
-
},
|
|
12362
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12363
|
-
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12364
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12365
|
-
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12366
|
-
SUBRULE(var_, ast.variable, void 0);
|
|
12367
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12368
|
-
}
|
|
12157
|
+
|
|
12158
|
+
// ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
|
|
12159
|
+
var path = {
|
|
12160
|
+
name: "path",
|
|
12161
|
+
impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
|
|
12369
12162
|
};
|
|
12370
|
-
var
|
|
12371
|
-
name: "
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12388
|
-
for (const variable of variables) {
|
|
12389
|
-
if (mapping[variable] === void 0) {
|
|
12390
|
-
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
12391
|
-
} else {
|
|
12392
|
-
SUBRULE(graphNodePath, mapping[variable], void 0);
|
|
12163
|
+
var pathGenerator = {
|
|
12164
|
+
name: "path",
|
|
12165
|
+
gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
|
|
12166
|
+
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
12167
|
+
SUBRULE(iri2, ast);
|
|
12168
|
+
} else {
|
|
12169
|
+
F2.printFilter(ast, () => braces && PRINT("("));
|
|
12170
|
+
switch (ast.subType) {
|
|
12171
|
+
case "|":
|
|
12172
|
+
case "/": {
|
|
12173
|
+
const [head2, ...tail] = ast.items;
|
|
12174
|
+
SUBRULE(pathGenerator, head2, braces);
|
|
12175
|
+
for (const val of tail) {
|
|
12176
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12177
|
+
SUBRULE(pathGenerator, val, braces);
|
|
12178
|
+
}
|
|
12179
|
+
break;
|
|
12393
12180
|
}
|
|
12181
|
+
case "^":
|
|
12182
|
+
F2.printFilter(ast, () => PRINT("^"));
|
|
12183
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12184
|
+
break;
|
|
12185
|
+
case "?":
|
|
12186
|
+
case "*":
|
|
12187
|
+
case "+":
|
|
12188
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12189
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12190
|
+
break;
|
|
12191
|
+
case "!":
|
|
12192
|
+
F2.printFilter(ast, () => PRINT("!"));
|
|
12193
|
+
F2.printFilter(ast, () => PRINT("("));
|
|
12194
|
+
SUBRULE(pathGenerator, ast.items[0], false);
|
|
12195
|
+
F2.printFilter(ast, () => PRINT(")"));
|
|
12196
|
+
break;
|
|
12394
12197
|
}
|
|
12395
|
-
F2.printFilter(ast, () =>
|
|
12198
|
+
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
12396
12199
|
}
|
|
12397
|
-
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12398
12200
|
}
|
|
12399
12201
|
};
|
|
12400
|
-
|
|
12401
|
-
|
|
12402
|
-
|
|
12403
|
-
{
|
|
12404
|
-
|
|
12202
|
+
function pathChainHelper(name, SEP, subType, subRule) {
|
|
12203
|
+
return {
|
|
12204
|
+
name,
|
|
12205
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
|
|
12206
|
+
const head2 = SUBRULE1(subRule);
|
|
12207
|
+
let tailEnd = head2;
|
|
12208
|
+
const tail = [];
|
|
12209
|
+
MANY(() => {
|
|
12210
|
+
CONSUME(SEP);
|
|
12211
|
+
tailEnd = SUBRULE2(subRule);
|
|
12212
|
+
tail.push(tailEnd);
|
|
12213
|
+
});
|
|
12214
|
+
return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
|
|
12215
|
+
}
|
|
12216
|
+
};
|
|
12217
|
+
}
|
|
12218
|
+
var pathEltOrInverse = {
|
|
12219
|
+
name: "pathEltOrInverse",
|
|
12220
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
|
|
12221
|
+
{ ALT: () => SUBRULE1(pathElt) },
|
|
12222
|
+
{ ALT: () => {
|
|
12223
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12224
|
+
const item = SUBRULE2(pathElt);
|
|
12225
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12226
|
+
} }
|
|
12405
12227
|
])
|
|
12406
12228
|
};
|
|
12407
|
-
var
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
ACTION(() => {
|
|
12416
|
-
res.push({ [varVal.value]: value });
|
|
12417
|
-
});
|
|
12418
|
-
});
|
|
12419
|
-
const close = CONSUME(symbols_exports.RCurly);
|
|
12420
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
12229
|
+
var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
|
|
12230
|
+
var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
|
|
12231
|
+
var pathElt = {
|
|
12232
|
+
name: "pathElt",
|
|
12233
|
+
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
12234
|
+
const item = SUBRULE(pathPrimary);
|
|
12235
|
+
const modification = OPTION(() => SUBRULE(pathMod));
|
|
12236
|
+
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
12421
12237
|
}
|
|
12422
12238
|
};
|
|
12423
|
-
var
|
|
12424
|
-
name: "
|
|
12425
|
-
impl: ({
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12239
|
+
var pathMod = {
|
|
12240
|
+
name: "pathMod",
|
|
12241
|
+
impl: ({ CONSUME, OR }) => () => OR([
|
|
12242
|
+
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
12243
|
+
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
12244
|
+
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
12245
|
+
])
|
|
12246
|
+
};
|
|
12247
|
+
var pathPrimary = {
|
|
12248
|
+
name: "pathPrimary",
|
|
12249
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
12250
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12251
|
+
{ ALT: () => SUBRULE(verbA) },
|
|
12252
|
+
{ ALT: () => SUBRULE(pathNegatedPropertySet) },
|
|
12253
|
+
{ ALT: () => {
|
|
12254
|
+
CONSUME(symbols_exports.LParen);
|
|
12255
|
+
const resRecursive = SUBRULE(path);
|
|
12256
|
+
CONSUME(symbols_exports.RParen);
|
|
12257
|
+
return resRecursive;
|
|
12258
|
+
} }
|
|
12259
|
+
])
|
|
12260
|
+
};
|
|
12261
|
+
var pathNegatedPropertySet = {
|
|
12262
|
+
name: "pathNegatedPropertySet",
|
|
12263
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
12264
|
+
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
12438
12265
|
return OR([
|
|
12439
12266
|
{ ALT: () => {
|
|
12440
|
-
const
|
|
12441
|
-
|
|
12442
|
-
MANY1(() => {
|
|
12443
|
-
CONSUME2(terminals_exports.nil);
|
|
12444
|
-
res.push({});
|
|
12445
|
-
});
|
|
12446
|
-
const close = CONSUME1(symbols_exports.RCurly);
|
|
12447
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
12267
|
+
const noAlternative = SUBRULE1(pathOneInPropertySet);
|
|
12268
|
+
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
12448
12269
|
} },
|
|
12449
12270
|
{ ALT: () => {
|
|
12450
|
-
const open =
|
|
12451
|
-
|
|
12452
|
-
|
|
12271
|
+
const open = CONSUME(symbols_exports.LParen);
|
|
12272
|
+
const head2 = SUBRULE2(pathOneInPropertySet);
|
|
12273
|
+
const tail = [];
|
|
12274
|
+
MANY(() => {
|
|
12275
|
+
CONSUME(symbols_exports.pipe);
|
|
12276
|
+
const item = SUBRULE3(pathOneInPropertySet);
|
|
12277
|
+
tail.push(item);
|
|
12453
12278
|
});
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12458
|
-
|
|
12459
|
-
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
ACTION(() => {
|
|
12466
|
-
currentRow[vars[parsedValues].value] = value;
|
|
12467
|
-
parsedValues++;
|
|
12468
|
-
});
|
|
12469
|
-
});
|
|
12470
|
-
CONSUME2(symbols_exports.RParen);
|
|
12471
|
-
ACTION(() => {
|
|
12472
|
-
res.push(currentRow);
|
|
12473
|
-
if (vars.length !== parsedValues) {
|
|
12474
|
-
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
12475
|
-
}
|
|
12476
|
-
});
|
|
12279
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12280
|
+
return ACTION(() => {
|
|
12281
|
+
const F2 = C.factory;
|
|
12282
|
+
if (tail.length === 0) {
|
|
12283
|
+
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
12284
|
+
}
|
|
12285
|
+
return F2.path(
|
|
12286
|
+
"!",
|
|
12287
|
+
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
12288
|
+
F2.sourceLocation(exclamation2, close)
|
|
12289
|
+
);
|
|
12477
12290
|
});
|
|
12478
|
-
const close = CONSUME2(symbols_exports.RCurly);
|
|
12479
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
12480
12291
|
} }
|
|
12481
12292
|
]);
|
|
12482
12293
|
}
|
|
12483
12294
|
};
|
|
12484
|
-
var
|
|
12485
|
-
name: "
|
|
12486
|
-
impl: ({
|
|
12487
|
-
{ ALT: () =>
|
|
12488
|
-
{ ALT: () =>
|
|
12489
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
12490
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
12295
|
+
var pathOneInPropertySet = {
|
|
12296
|
+
name: "pathOneInPropertySet",
|
|
12297
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
12298
|
+
{ ALT: () => SUBRULE1(iri2) },
|
|
12299
|
+
{ ALT: () => SUBRULE1(verbA) },
|
|
12491
12300
|
{ ALT: () => {
|
|
12492
|
-
CONSUME(
|
|
12493
|
-
|
|
12301
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12302
|
+
const item = OR2([
|
|
12303
|
+
{ ALT: () => SUBRULE2(iri2) },
|
|
12304
|
+
{ ALT: () => SUBRULE2(verbA) }
|
|
12305
|
+
]);
|
|
12306
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12494
12307
|
} }
|
|
12495
12308
|
])
|
|
12496
12309
|
};
|
|
12497
|
-
var minusGraphPattern = {
|
|
12498
|
-
name: "minusGraphPattern",
|
|
12499
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12500
|
-
const minus2 = CONSUME(minus);
|
|
12501
|
-
const group = SUBRULE(groupGraphPattern, void 0);
|
|
12502
|
-
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
12503
|
-
},
|
|
12504
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12505
|
-
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12506
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12507
|
-
}
|
|
12508
|
-
};
|
|
12509
|
-
var groupOrUnionGraphPattern = {
|
|
12510
|
-
name: "groupOrUnionGraphPattern",
|
|
12511
|
-
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
12512
|
-
const groups = [];
|
|
12513
|
-
const group = SUBRULE1(groupGraphPattern, void 0);
|
|
12514
|
-
groups.push(group);
|
|
12515
|
-
MANY(() => {
|
|
12516
|
-
CONSUME(union);
|
|
12517
|
-
const group2 = SUBRULE2(groupGraphPattern, void 0);
|
|
12518
|
-
groups.push(group2);
|
|
12519
|
-
});
|
|
12520
|
-
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
12521
|
-
groups,
|
|
12522
|
-
C.factory.sourceLocation(group, groups.at(-1))
|
|
12523
|
-
));
|
|
12524
|
-
},
|
|
12525
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12526
|
-
if (F2.isPatternUnion(ast)) {
|
|
12527
|
-
const [head2, ...tail] = ast.patterns;
|
|
12528
|
-
SUBRULE(groupGraphPattern, head2, void 0);
|
|
12529
|
-
for (const pattern of tail) {
|
|
12530
|
-
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
12531
|
-
SUBRULE(groupGraphPattern, pattern, void 0);
|
|
12532
|
-
}
|
|
12533
|
-
} else {
|
|
12534
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12535
|
-
}
|
|
12536
|
-
}
|
|
12537
|
-
};
|
|
12538
|
-
var filter3 = {
|
|
12539
|
-
name: "filter",
|
|
12540
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12541
|
-
const filterToken = CONSUME(filter2);
|
|
12542
|
-
const expression2 = SUBRULE(constraint, void 0);
|
|
12543
|
-
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
12544
|
-
},
|
|
12545
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12546
|
-
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
12547
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12548
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12549
|
-
}
|
|
12550
|
-
};
|
|
12551
|
-
var constraint = {
|
|
12552
|
-
name: "constraint",
|
|
12553
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12554
|
-
{ ALT: () => SUBRULE(brackettedExpression, void 0) },
|
|
12555
|
-
{ ALT: () => SUBRULE(builtInCall, void 0) },
|
|
12556
|
-
{ ALT: () => SUBRULE(functionCall, void 0) }
|
|
12557
|
-
])
|
|
12558
|
-
};
|
|
12559
|
-
var functionCall = {
|
|
12560
|
-
name: "functionCall",
|
|
12561
|
-
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
12562
|
-
const func = SUBRULE(iri2, void 0);
|
|
12563
|
-
const args = SUBRULE(argList, void 0);
|
|
12564
|
-
return ACTION(() => C.factory.expressionFunctionCall(
|
|
12565
|
-
func,
|
|
12566
|
-
args.val.args,
|
|
12567
|
-
args.val.distinct,
|
|
12568
|
-
C.factory.sourceLocation(func, args)
|
|
12569
|
-
));
|
|
12570
|
-
}
|
|
12571
|
-
};
|
|
12572
12310
|
|
|
12573
|
-
// ../rules-sparql-1-1/lib/
|
|
12574
|
-
function
|
|
12575
|
-
return {
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12583
|
-
|
|
12311
|
+
// ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
|
|
12312
|
+
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
12313
|
+
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12314
|
+
const triples = [];
|
|
12315
|
+
let parsedDot = true;
|
|
12316
|
+
let dotToken;
|
|
12317
|
+
AT_LEAST_ONE({
|
|
12318
|
+
GATE: () => parsedDot,
|
|
12319
|
+
DEF: () => {
|
|
12320
|
+
parsedDot = false;
|
|
12321
|
+
const template = SUBRULE(triplesSameSubjectSubrule);
|
|
12322
|
+
ACTION(() => {
|
|
12323
|
+
triples.push(...template);
|
|
12324
|
+
});
|
|
12325
|
+
OPTION(() => {
|
|
12326
|
+
dotToken = CONSUME(symbols_exports.dot);
|
|
12327
|
+
parsedDot = true;
|
|
12328
|
+
});
|
|
12329
|
+
}
|
|
12330
|
+
});
|
|
12331
|
+
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
12584
12332
|
};
|
|
12585
12333
|
}
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12334
|
+
var triplesBlock = {
|
|
12335
|
+
name: "triplesBlock",
|
|
12336
|
+
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12337
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12338
|
+
for (const [index, triple] of ast.triples.entries()) {
|
|
12339
|
+
HANDLE_LOC(triple, () => {
|
|
12340
|
+
const nextTriple = ast.triples.at(index);
|
|
12341
|
+
if (F2.isTripleCollection(triple)) {
|
|
12342
|
+
SUBRULE(graphNodePath, triple);
|
|
12343
|
+
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
12344
|
+
} else {
|
|
12345
|
+
SUBRULE(graphNodePath, triple.subject);
|
|
12346
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12347
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12348
|
+
} else {
|
|
12349
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12350
|
+
}
|
|
12351
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12352
|
+
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12353
|
+
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
12354
|
+
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12355
|
+
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12356
|
+
} else {
|
|
12357
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12358
|
+
}
|
|
12359
|
+
}
|
|
12360
|
+
});
|
|
12597
12361
|
}
|
|
12598
|
-
}
|
|
12599
|
-
}
|
|
12600
|
-
function
|
|
12362
|
+
}
|
|
12363
|
+
};
|
|
12364
|
+
function triplesSameSubjectImpl(name, allowPaths) {
|
|
12601
12365
|
return {
|
|
12602
|
-
name
|
|
12603
|
-
impl: ({ ACTION,
|
|
12604
|
-
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12366
|
+
name,
|
|
12367
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12368
|
+
{ ALT: () => {
|
|
12369
|
+
const subject = SUBRULE(varOrTerm);
|
|
12370
|
+
const res = SUBRULE(
|
|
12371
|
+
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
12372
|
+
ACTION(() => C.factory.dematerialized(subject))
|
|
12373
|
+
);
|
|
12374
|
+
return ACTION(() => {
|
|
12375
|
+
if (res.length > 0) {
|
|
12376
|
+
res[0].subject = subject;
|
|
12377
|
+
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
12378
|
+
}
|
|
12379
|
+
return res;
|
|
12380
|
+
});
|
|
12381
|
+
} },
|
|
12382
|
+
{ ALT: () => {
|
|
12383
|
+
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
12384
|
+
const restNode = SUBRULE(
|
|
12385
|
+
allowPaths ? propertyListPath : propertyList,
|
|
12386
|
+
ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
|
|
12387
|
+
);
|
|
12388
|
+
return ACTION(() => {
|
|
12389
|
+
if (restNode.length === 0) {
|
|
12390
|
+
return [subjectNode];
|
|
12391
|
+
}
|
|
12392
|
+
restNode[0].subject = subjectNode;
|
|
12393
|
+
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
12394
|
+
return restNode;
|
|
12395
|
+
});
|
|
12396
|
+
} }
|
|
12397
|
+
])
|
|
12614
12398
|
};
|
|
12615
12399
|
}
|
|
12616
|
-
|
|
12400
|
+
var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
|
|
12401
|
+
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
12402
|
+
var triplesTemplate = {
|
|
12403
|
+
name: "triplesTemplate",
|
|
12404
|
+
impl: triplesDotSeperated(triplesSameSubject)
|
|
12405
|
+
};
|
|
12406
|
+
function propertyListImpl(name, allowPaths) {
|
|
12617
12407
|
return {
|
|
12618
|
-
name
|
|
12619
|
-
impl: ({
|
|
12620
|
-
const operator = CONSUME(func);
|
|
12621
|
-
CONSUME(symbols_exports.LParen);
|
|
12622
|
-
const arg = SUBRULE(var_, void 0);
|
|
12623
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12624
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12625
|
-
}
|
|
12408
|
+
name,
|
|
12409
|
+
impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
|
|
12626
12410
|
};
|
|
12627
12411
|
}
|
|
12628
|
-
|
|
12412
|
+
var propertyList = propertyListImpl("propertyList", false);
|
|
12413
|
+
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
12414
|
+
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
12629
12415
|
return {
|
|
12630
|
-
name
|
|
12631
|
-
impl: ({ ACTION, CONSUME,
|
|
12632
|
-
const
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12416
|
+
name,
|
|
12417
|
+
impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
|
|
12418
|
+
const result = [];
|
|
12419
|
+
let parsedSemi = true;
|
|
12420
|
+
AT_LEAST_ONE({
|
|
12421
|
+
GATE: () => parsedSemi,
|
|
12422
|
+
DEF: () => {
|
|
12423
|
+
parsedSemi = false;
|
|
12424
|
+
const predicate = allowPaths ? OR1([
|
|
12425
|
+
{ ALT: () => SUBRULE1(verbPath) },
|
|
12426
|
+
{ ALT: () => SUBRULE1(verbSimple) }
|
|
12427
|
+
]) : SUBRULE1(verb);
|
|
12428
|
+
const triples = SUBRULE1(
|
|
12429
|
+
allowPaths ? objectListPath : objectList,
|
|
12430
|
+
subject,
|
|
12431
|
+
predicate
|
|
12432
|
+
);
|
|
12433
|
+
MANY2(() => {
|
|
12434
|
+
CONSUME(symbols_exports.semi);
|
|
12435
|
+
parsedSemi = true;
|
|
12436
|
+
});
|
|
12437
|
+
ACTION(() => {
|
|
12438
|
+
result.push(...triples);
|
|
12439
|
+
});
|
|
12440
|
+
}
|
|
12441
|
+
});
|
|
12442
|
+
return result;
|
|
12645
12443
|
}
|
|
12646
12444
|
};
|
|
12647
12445
|
}
|
|
12648
|
-
|
|
12446
|
+
var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
|
|
12447
|
+
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12448
|
+
var verbPath = {
|
|
12449
|
+
name: "verbPath",
|
|
12450
|
+
impl: ({ SUBRULE }) => () => SUBRULE(path)
|
|
12451
|
+
};
|
|
12452
|
+
var verbSimple = {
|
|
12453
|
+
name: "verbSimple",
|
|
12454
|
+
impl: ({ SUBRULE }) => () => SUBRULE(var_)
|
|
12455
|
+
};
|
|
12456
|
+
function objectListImpl(name, allowPaths) {
|
|
12649
12457
|
return {
|
|
12650
|
-
name
|
|
12651
|
-
impl: ({ ACTION,
|
|
12652
|
-
const
|
|
12653
|
-
|
|
12654
|
-
|
|
12458
|
+
name,
|
|
12459
|
+
impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
|
|
12460
|
+
const objects = [];
|
|
12461
|
+
AT_LEAST_ONE_SEP({
|
|
12462
|
+
SEP: symbols_exports.comma,
|
|
12463
|
+
DEF: () => {
|
|
12464
|
+
const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
|
|
12465
|
+
ACTION(() => {
|
|
12466
|
+
objects.push(objectTriple);
|
|
12467
|
+
});
|
|
12468
|
+
}
|
|
12469
|
+
});
|
|
12470
|
+
return objects;
|
|
12655
12471
|
}
|
|
12656
12472
|
};
|
|
12657
12473
|
}
|
|
12658
|
-
|
|
12474
|
+
var objectList = objectListImpl("objectList", false);
|
|
12475
|
+
var objectListPath = objectListImpl("objectListPath", true);
|
|
12476
|
+
function objectImpl(name, allowPaths) {
|
|
12659
12477
|
return {
|
|
12660
|
-
name
|
|
12661
|
-
impl: ({ ACTION,
|
|
12662
|
-
const
|
|
12663
|
-
|
|
12664
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
12478
|
+
name,
|
|
12479
|
+
impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
|
|
12480
|
+
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
12481
|
+
return ACTION(() => C.factory.triple(subject, predicate, node));
|
|
12665
12482
|
}
|
|
12666
12483
|
};
|
|
12667
12484
|
}
|
|
12668
|
-
|
|
12485
|
+
var object = objectImpl("object", false);
|
|
12486
|
+
var objectPath = objectImpl("objectPath", true);
|
|
12487
|
+
function collectionImpl(name, allowPaths) {
|
|
12669
12488
|
return {
|
|
12670
|
-
name
|
|
12671
|
-
impl: ({ ACTION,
|
|
12672
|
-
const
|
|
12673
|
-
CONSUME(symbols_exports.LParen);
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
12677
|
-
const arg3 = OPTION(() => {
|
|
12678
|
-
CONSUME2(symbols_exports.comma);
|
|
12679
|
-
return SUBRULE3(expression, void 0);
|
|
12489
|
+
name,
|
|
12490
|
+
impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
|
|
12491
|
+
const terms = [];
|
|
12492
|
+
const startToken = CONSUME(symbols_exports.LParen);
|
|
12493
|
+
AT_LEAST_ONE(() => {
|
|
12494
|
+
terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
|
|
12680
12495
|
});
|
|
12681
|
-
const
|
|
12682
|
-
return ACTION(() =>
|
|
12683
|
-
|
|
12684
|
-
|
|
12685
|
-
|
|
12686
|
-
|
|
12496
|
+
const endToken = CONSUME(symbols_exports.RParen);
|
|
12497
|
+
return ACTION(() => {
|
|
12498
|
+
const F2 = C.factory;
|
|
12499
|
+
const triples = [];
|
|
12500
|
+
const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
|
|
12501
|
+
const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
|
|
12502
|
+
const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
|
|
12503
|
+
const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12504
|
+
let iterHead = listHead;
|
|
12505
|
+
for (const [index, term] of terms.entries()) {
|
|
12506
|
+
const lastInList = index === terms.length - 1;
|
|
12507
|
+
const headTriple = F2.triple(
|
|
12508
|
+
iterHead,
|
|
12509
|
+
predFirst,
|
|
12510
|
+
term
|
|
12511
|
+
);
|
|
12512
|
+
triples.push(headTriple);
|
|
12513
|
+
if (lastInList) {
|
|
12514
|
+
const nilTriple = F2.triple(iterHead, predRest, predNil);
|
|
12515
|
+
triples.push(nilTriple);
|
|
12516
|
+
} else {
|
|
12517
|
+
const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12518
|
+
const linkTriple = F2.triple(iterHead, predRest, tail);
|
|
12519
|
+
triples.push(linkTriple);
|
|
12520
|
+
iterHead = tail;
|
|
12521
|
+
}
|
|
12522
|
+
}
|
|
12523
|
+
return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
|
|
12524
|
+
});
|
|
12525
|
+
},
|
|
12526
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12527
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12528
|
+
for (const [idx, triple] of ast.triples.entries()) {
|
|
12529
|
+
if (idx % 2 === 0) {
|
|
12530
|
+
SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
|
|
12531
|
+
}
|
|
12532
|
+
}
|
|
12533
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12687
12534
|
}
|
|
12688
12535
|
};
|
|
12689
12536
|
}
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
CONSUME1,
|
|
12701
|
-
OPTION,
|
|
12702
|
-
CONSUME2,
|
|
12703
|
-
CONSUME3
|
|
12704
|
-
}) => (C) => {
|
|
12705
|
-
const operator = CONSUME(func);
|
|
12706
|
-
CONSUME(symbols_exports.LParen);
|
|
12707
|
-
const arg1 = SUBRULE1(expression, void 0);
|
|
12708
|
-
CONSUME1(symbols_exports.comma);
|
|
12709
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
12710
|
-
CONSUME2(symbols_exports.comma);
|
|
12711
|
-
const arg3 = SUBRULE3(expression, void 0);
|
|
12712
|
-
const arg4 = OPTION(() => {
|
|
12713
|
-
CONSUME3(symbols_exports.comma);
|
|
12714
|
-
return SUBRULE4(expression, void 0);
|
|
12715
|
-
});
|
|
12716
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12717
|
-
return ACTION(() => C.factory.expressionOperation(
|
|
12718
|
-
operator.image,
|
|
12719
|
-
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
12720
|
-
C.factory.sourceLocation(operator, close)
|
|
12721
|
-
));
|
|
12722
|
-
}
|
|
12537
|
+
var collection = collectionImpl("collection", false);
|
|
12538
|
+
var collectionPath = collectionImpl("collectionPath", true);
|
|
12539
|
+
function triplesNodeImpl(name, allowPaths) {
|
|
12540
|
+
return {
|
|
12541
|
+
name,
|
|
12542
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12543
|
+
{ ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
|
|
12544
|
+
{ ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
|
|
12545
|
+
]),
|
|
12546
|
+
gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
|
|
12723
12547
|
};
|
|
12724
12548
|
}
|
|
12725
|
-
|
|
12549
|
+
var triplesNode = triplesNodeImpl("triplesNode", false);
|
|
12550
|
+
var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
|
|
12551
|
+
function blankNodePropertyListImpl(name, allowPaths) {
|
|
12552
|
+
const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
|
|
12726
12553
|
return {
|
|
12727
|
-
name
|
|
12554
|
+
name,
|
|
12728
12555
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12729
|
-
const
|
|
12730
|
-
const
|
|
12731
|
-
|
|
12732
|
-
|
|
12733
|
-
|
|
12734
|
-
|
|
12556
|
+
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12557
|
+
const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
|
|
12558
|
+
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12559
|
+
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12560
|
+
return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
|
|
12561
|
+
blankNode2,
|
|
12562
|
+
propList,
|
|
12563
|
+
C.factory.sourceLocation(startToken, endToken)
|
|
12735
12564
|
));
|
|
12565
|
+
},
|
|
12566
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12567
|
+
F2.printFilter(ast, () => PRINT("["));
|
|
12568
|
+
for (const triple of ast.triples) {
|
|
12569
|
+
HANDLE_LOC(triple, () => {
|
|
12570
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12571
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12572
|
+
} else {
|
|
12573
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12574
|
+
}
|
|
12575
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12576
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12577
|
+
});
|
|
12578
|
+
}
|
|
12579
|
+
F2.printFilter(ast, () => PRINT("]"));
|
|
12736
12580
|
}
|
|
12737
12581
|
};
|
|
12738
12582
|
}
|
|
12739
|
-
|
|
12583
|
+
var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
|
|
12584
|
+
var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
|
|
12585
|
+
function graphNodeImpl(name, allowPaths) {
|
|
12586
|
+
const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
|
|
12740
12587
|
return {
|
|
12741
|
-
name
|
|
12742
|
-
impl: ({
|
|
12743
|
-
|
|
12744
|
-
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
12754
|
-
|
|
12588
|
+
name,
|
|
12589
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12590
|
+
{ ALT: () => SUBRULE(varOrTerm) },
|
|
12591
|
+
{
|
|
12592
|
+
GATE: () => C.parseMode.has("canCreateBlankNodes"),
|
|
12593
|
+
ALT: () => SUBRULE(triplesNodeRule)
|
|
12594
|
+
}
|
|
12595
|
+
]),
|
|
12596
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12597
|
+
if (F2.isTerm(ast)) {
|
|
12598
|
+
SUBRULE(varOrTerm, ast);
|
|
12599
|
+
} else {
|
|
12600
|
+
SUBRULE(triplesNodeRule, ast);
|
|
12601
|
+
}
|
|
12755
12602
|
}
|
|
12756
12603
|
};
|
|
12757
12604
|
}
|
|
12605
|
+
var graphNode = graphNodeImpl("graphNode", false);
|
|
12606
|
+
var graphNodePath = graphNodeImpl("graphNodePath", true);
|
|
12758
12607
|
|
|
12759
|
-
// ../rules-sparql-1-1/lib/grammar/
|
|
12760
|
-
var
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
|
|
12765
|
-
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
12771
|
-
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
12772
|
-
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
12773
|
-
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
12774
|
-
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
12775
|
-
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
12776
|
-
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
12777
|
-
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
12778
|
-
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
12779
|
-
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
12780
|
-
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
12781
|
-
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
12782
|
-
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
12783
|
-
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
12784
|
-
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
12785
|
-
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
12786
|
-
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
12787
|
-
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
12788
|
-
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
12789
|
-
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
12790
|
-
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
12791
|
-
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
12792
|
-
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
12793
|
-
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
12794
|
-
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
12795
|
-
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
12796
|
-
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
12797
|
-
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
12798
|
-
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
12799
|
-
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
12800
|
-
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
12801
|
-
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
12802
|
-
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
12803
|
-
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
12804
|
-
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
12805
|
-
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
12806
|
-
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
12807
|
-
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
12808
|
-
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
12809
|
-
function builtInCallList(SUBRULE) {
|
|
12810
|
-
return [
|
|
12811
|
-
{ ALT: () => SUBRULE(aggregate, void 0) },
|
|
12812
|
-
{ ALT: () => SUBRULE(builtInStr, void 0) },
|
|
12813
|
-
{ ALT: () => SUBRULE(builtInLang, void 0) },
|
|
12814
|
-
{ ALT: () => SUBRULE(builtInLangmatches, void 0) },
|
|
12815
|
-
{ ALT: () => SUBRULE(builtInDatatype, void 0) },
|
|
12816
|
-
{ ALT: () => SUBRULE(builtInBound, void 0) },
|
|
12817
|
-
{ ALT: () => SUBRULE(builtInIri, void 0) },
|
|
12818
|
-
{ ALT: () => SUBRULE(builtInUri, void 0) },
|
|
12819
|
-
{ ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
|
|
12820
|
-
{ ALT: () => SUBRULE(builtInRand, void 0) },
|
|
12821
|
-
{ ALT: () => SUBRULE(builtInAbs, void 0) },
|
|
12822
|
-
{ ALT: () => SUBRULE(builtInCeil, void 0) },
|
|
12823
|
-
{ ALT: () => SUBRULE(builtInFloor, void 0) },
|
|
12824
|
-
{ ALT: () => SUBRULE(builtInRound, void 0) },
|
|
12825
|
-
{ ALT: () => SUBRULE(builtInConcat, void 0) },
|
|
12826
|
-
{ ALT: () => SUBRULE(substringExpression, void 0) },
|
|
12827
|
-
{ ALT: () => SUBRULE(builtInStrlen, void 0) },
|
|
12828
|
-
{ ALT: () => SUBRULE(strReplaceExpression, void 0) },
|
|
12829
|
-
{ ALT: () => SUBRULE(builtInUcase, void 0) },
|
|
12830
|
-
{ ALT: () => SUBRULE(builtInLcase, void 0) },
|
|
12831
|
-
{ ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
|
|
12832
|
-
{ ALT: () => SUBRULE(builtInContains, void 0) },
|
|
12833
|
-
{ ALT: () => SUBRULE(builtInStrstarts, void 0) },
|
|
12834
|
-
{ ALT: () => SUBRULE(builtInStrends, void 0) },
|
|
12835
|
-
{ ALT: () => SUBRULE(builtInStrbefore, void 0) },
|
|
12836
|
-
{ ALT: () => SUBRULE(builtInStrafter, void 0) },
|
|
12837
|
-
{ ALT: () => SUBRULE(builtInYear, void 0) },
|
|
12838
|
-
{ ALT: () => SUBRULE(builtInMonth, void 0) },
|
|
12839
|
-
{ ALT: () => SUBRULE(builtInDay, void 0) },
|
|
12840
|
-
{ ALT: () => SUBRULE(builtInHours, void 0) },
|
|
12841
|
-
{ ALT: () => SUBRULE(builtInMinutes, void 0) },
|
|
12842
|
-
{ ALT: () => SUBRULE(builtInSeconds, void 0) },
|
|
12843
|
-
{ ALT: () => SUBRULE(builtInTimezone, void 0) },
|
|
12844
|
-
{ ALT: () => SUBRULE(builtInTz, void 0) },
|
|
12845
|
-
{ ALT: () => SUBRULE(builtInNow, void 0) },
|
|
12846
|
-
{ ALT: () => SUBRULE(builtInUuid, void 0) },
|
|
12847
|
-
{ ALT: () => SUBRULE(builtInStruuid, void 0) },
|
|
12848
|
-
{ ALT: () => SUBRULE(builtInMd5, void 0) },
|
|
12849
|
-
{ ALT: () => SUBRULE(builtInSha1, void 0) },
|
|
12850
|
-
{ ALT: () => SUBRULE(builtInSha256, void 0) },
|
|
12851
|
-
{ ALT: () => SUBRULE(builtInSha384, void 0) },
|
|
12852
|
-
{ ALT: () => SUBRULE(builtInSha512, void 0) },
|
|
12853
|
-
{ ALT: () => SUBRULE(builtInCoalesce, void 0) },
|
|
12854
|
-
{ ALT: () => SUBRULE(builtInIf, void 0) },
|
|
12855
|
-
{ ALT: () => SUBRULE(builtInStrlang, void 0) },
|
|
12856
|
-
{ ALT: () => SUBRULE(builtInStrdt, void 0) },
|
|
12857
|
-
{ ALT: () => SUBRULE(builtInSameterm, void 0) },
|
|
12858
|
-
{ ALT: () => SUBRULE(builtInIsiri, void 0) },
|
|
12859
|
-
{ ALT: () => SUBRULE(builtInIsuri, void 0) },
|
|
12860
|
-
{ ALT: () => SUBRULE(builtInIsblank, void 0) },
|
|
12861
|
-
{ ALT: () => SUBRULE(builtInIsliteral, void 0) },
|
|
12862
|
-
{ ALT: () => SUBRULE(builtInIsnumeric, void 0) },
|
|
12863
|
-
{ ALT: () => SUBRULE(regexExpression, void 0) },
|
|
12864
|
-
{ ALT: () => SUBRULE(existsFunc, void 0) },
|
|
12865
|
-
{ ALT: () => SUBRULE(notExistsFunc, void 0) }
|
|
12866
|
-
];
|
|
12867
|
-
}
|
|
12868
|
-
var builtInCall = {
|
|
12869
|
-
name: "builtInCall",
|
|
12870
|
-
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
12871
|
-
const cached = cache.get(builtInCall);
|
|
12872
|
-
if (cached) {
|
|
12873
|
-
return OR(cached);
|
|
12874
|
-
}
|
|
12875
|
-
const builtIns = builtInCallList(SUBRULE);
|
|
12876
|
-
cache.set(builtInCall, builtIns);
|
|
12877
|
-
return OR(builtIns);
|
|
12608
|
+
// ../rules-sparql-1-1/lib/grammar/whereClause.ts
|
|
12609
|
+
var whereClause = {
|
|
12610
|
+
name: "whereClause",
|
|
12611
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12612
|
+
const where2 = OPTION(() => CONSUME(where));
|
|
12613
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12614
|
+
return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
|
|
12615
|
+
},
|
|
12616
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12617
|
+
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12618
|
+
SUBRULE(groupGraphPattern, ast.val);
|
|
12878
12619
|
}
|
|
12879
12620
|
};
|
|
12880
|
-
var
|
|
12881
|
-
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
12888
|
-
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
12889
|
-
CONSUME(symbols_exports.LParen);
|
|
12890
|
-
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
12891
|
-
const expressionVal = OR([
|
|
12892
|
-
{ ALT: () => {
|
|
12893
|
-
const starToken = CONSUME(symbols_exports.star);
|
|
12894
|
-
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
12895
|
-
} },
|
|
12896
|
-
{ ALT: () => SUBRULE(expression, void 0) }
|
|
12621
|
+
var groupGraphPattern = {
|
|
12622
|
+
name: "groupGraphPattern",
|
|
12623
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
|
|
12624
|
+
const open = CONSUME(symbols_exports.LCurly);
|
|
12625
|
+
const patterns = OR([
|
|
12626
|
+
{ ALT: () => [SUBRULE(subSelect)] },
|
|
12627
|
+
{ ALT: () => SUBRULE(groupGraphPatternSub) }
|
|
12897
12628
|
]);
|
|
12898
|
-
const
|
|
12899
|
-
return ACTION(() =>
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12907
|
-
|
|
12908
|
-
|
|
12629
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
12630
|
+
return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
|
|
12631
|
+
},
|
|
12632
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12633
|
+
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
12634
|
+
for (const pattern of ast.patterns) {
|
|
12635
|
+
SUBRULE(generatePattern, pattern);
|
|
12636
|
+
}
|
|
12637
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12638
|
+
}
|
|
12639
|
+
};
|
|
12640
|
+
var generatePattern = {
|
|
12641
|
+
name: "generatePattern",
|
|
12642
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12643
|
+
if (ast.type === "query") {
|
|
12644
|
+
SUBRULE(query, F2.querySelect({
|
|
12645
|
+
context: [],
|
|
12646
|
+
datasets: F2.datasetClauses([], F2.sourceLocation()),
|
|
12647
|
+
where: ast.where,
|
|
12648
|
+
variables: ast.variables,
|
|
12649
|
+
solutionModifiers: ast.solutionModifiers,
|
|
12650
|
+
values: ast.values,
|
|
12651
|
+
distinct: ast.distinct,
|
|
12652
|
+
reduced: ast.reduced
|
|
12653
|
+
}, ast.loc));
|
|
12654
|
+
} else if (ast.subType === "group") {
|
|
12655
|
+
SUBRULE(groupGraphPattern, ast);
|
|
12656
|
+
} else if (ast.subType === "bgp") {
|
|
12657
|
+
SUBRULE(triplesBlock, ast);
|
|
12658
|
+
} else {
|
|
12659
|
+
SUBRULE(graphPatternNotTriples, ast);
|
|
12660
|
+
}
|
|
12661
|
+
}
|
|
12662
|
+
};
|
|
12663
|
+
var groupGraphPatternSub = {
|
|
12664
|
+
name: "groupGraphPatternSub",
|
|
12665
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
|
|
12666
|
+
const patterns = [];
|
|
12667
|
+
const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
|
|
12668
|
+
if (bgpPattern) {
|
|
12669
|
+
patterns.push(bgpPattern);
|
|
12670
|
+
}
|
|
12671
|
+
MANY(() => {
|
|
12672
|
+
const notTriples = SUBRULE(graphPatternNotTriples);
|
|
12673
|
+
patterns.push(notTriples);
|
|
12674
|
+
OPTION2(() => CONSUME(symbols_exports.dot));
|
|
12675
|
+
const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
|
|
12676
|
+
if (moreTriples) {
|
|
12677
|
+
patterns.push(moreTriples);
|
|
12678
|
+
}
|
|
12679
|
+
});
|
|
12680
|
+
ACTION(() => checkNote13(patterns));
|
|
12681
|
+
return patterns;
|
|
12682
|
+
}
|
|
12683
|
+
};
|
|
12684
|
+
var graphPatternNotTriples = {
|
|
12685
|
+
name: "graphPatternNotTriples",
|
|
12686
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12687
|
+
{ ALT: () => SUBRULE(groupOrUnionGraphPattern) },
|
|
12688
|
+
{ ALT: () => SUBRULE(optionalGraphPattern) },
|
|
12689
|
+
{ ALT: () => SUBRULE(minusGraphPattern) },
|
|
12690
|
+
{ ALT: () => SUBRULE(graphGraphPattern) },
|
|
12691
|
+
{ ALT: () => SUBRULE(serviceGraphPattern) },
|
|
12692
|
+
{ ALT: () => SUBRULE(filter3) },
|
|
12693
|
+
{ ALT: () => SUBRULE(bind2) },
|
|
12694
|
+
{ ALT: () => SUBRULE(inlineData) }
|
|
12695
|
+
]),
|
|
12696
|
+
gImpl: ({ SUBRULE }) => (ast) => {
|
|
12697
|
+
switch (ast.subType) {
|
|
12698
|
+
case "group":
|
|
12699
|
+
case "union":
|
|
12700
|
+
SUBRULE(groupOrUnionGraphPattern, ast);
|
|
12701
|
+
break;
|
|
12702
|
+
case "optional":
|
|
12703
|
+
SUBRULE(optionalGraphPattern, ast);
|
|
12704
|
+
break;
|
|
12705
|
+
case "minus":
|
|
12706
|
+
SUBRULE(minusGraphPattern, ast);
|
|
12707
|
+
break;
|
|
12708
|
+
case "graph":
|
|
12709
|
+
SUBRULE(graphGraphPattern, ast);
|
|
12710
|
+
break;
|
|
12711
|
+
case "service":
|
|
12712
|
+
SUBRULE(serviceGraphPattern, ast);
|
|
12713
|
+
break;
|
|
12714
|
+
case "filter":
|
|
12715
|
+
SUBRULE(filter3, ast);
|
|
12716
|
+
break;
|
|
12717
|
+
case "bind":
|
|
12718
|
+
SUBRULE(bind2, ast);
|
|
12719
|
+
break;
|
|
12720
|
+
case "values":
|
|
12721
|
+
SUBRULE(inlineData, ast);
|
|
12722
|
+
break;
|
|
12723
|
+
}
|
|
12724
|
+
}
|
|
12725
|
+
};
|
|
12726
|
+
var optionalGraphPattern = {
|
|
12727
|
+
name: "optionalGraphPattern",
|
|
12728
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12729
|
+
const optional2 = CONSUME(optional);
|
|
12730
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12731
|
+
return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
|
|
12732
|
+
},
|
|
12733
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12734
|
+
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12735
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12736
|
+
}
|
|
12737
|
+
};
|
|
12738
|
+
var graphGraphPattern = {
|
|
12739
|
+
name: "graphGraphPattern",
|
|
12740
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12741
|
+
const graph2 = CONSUME(graph_exports.graph);
|
|
12742
|
+
const name = SUBRULE(varOrIri);
|
|
12743
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12744
|
+
return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
|
|
12745
|
+
},
|
|
12746
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12747
|
+
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
12748
|
+
SUBRULE(varOrTerm, ast.name);
|
|
12749
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12750
|
+
}
|
|
12751
|
+
};
|
|
12752
|
+
var serviceGraphPattern = {
|
|
12753
|
+
name: "serviceGraphPattern",
|
|
12754
|
+
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
12755
|
+
const service2 = CONSUME(service);
|
|
12756
|
+
const silent2 = OPTION(() => {
|
|
12757
|
+
CONSUME(silent);
|
|
12758
|
+
return true;
|
|
12759
|
+
}) ?? false;
|
|
12760
|
+
const name = SUBRULE1(varOrIri);
|
|
12761
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
12762
|
+
return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
|
|
12763
|
+
},
|
|
12764
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12765
|
+
F2.printFilter(ast, () => {
|
|
12766
|
+
PRINT_WORD("SERVICE");
|
|
12767
|
+
if (ast.silent) {
|
|
12768
|
+
PRINT_WORD("SILENT");
|
|
12909
12769
|
}
|
|
12910
|
-
return F2.aggregate(
|
|
12911
|
-
operatorToken.image,
|
|
12912
|
-
Boolean(distinctToken),
|
|
12913
|
-
expressionVal,
|
|
12914
|
-
void 0,
|
|
12915
|
-
C.factory.sourceLocation(operatorToken, closeToken)
|
|
12916
|
-
);
|
|
12917
12770
|
});
|
|
12771
|
+
SUBRULE(varOrTerm, ast.name);
|
|
12772
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12918
12773
|
}
|
|
12919
12774
|
};
|
|
12920
|
-
var
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
12924
|
-
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
12925
|
-
var aggregateGroup_concat = {
|
|
12926
|
-
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
12927
|
-
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
12928
|
-
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
12775
|
+
var bind2 = {
|
|
12776
|
+
name: "bind",
|
|
12777
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12778
|
+
const bind3 = CONSUME(bind);
|
|
12929
12779
|
CONSUME(symbols_exports.LParen);
|
|
12930
|
-
const
|
|
12931
|
-
|
|
12932
|
-
const
|
|
12933
|
-
|
|
12934
|
-
|
|
12935
|
-
|
|
12936
|
-
|
|
12780
|
+
const expressionVal = SUBRULE(expression);
|
|
12781
|
+
CONSUME(as);
|
|
12782
|
+
const variable = SUBRULE(var_);
|
|
12783
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12784
|
+
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
12785
|
+
},
|
|
12786
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12787
|
+
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12788
|
+
SUBRULE(expression, ast.expression);
|
|
12789
|
+
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12790
|
+
SUBRULE(var_, ast.variable);
|
|
12791
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12792
|
+
}
|
|
12793
|
+
};
|
|
12794
|
+
var inlineData = {
|
|
12795
|
+
name: "inlineData",
|
|
12796
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12797
|
+
const values3 = CONSUME(values2);
|
|
12798
|
+
const datablock = SUBRULE(dataBlock);
|
|
12799
|
+
return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
|
|
12800
|
+
},
|
|
12801
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12802
|
+
const variables = Object.keys(ast.values[0]);
|
|
12803
|
+
F2.printFilter(ast, () => {
|
|
12804
|
+
PRINT_WORD("VALUES", "(");
|
|
12805
|
+
for (const variable of variables) {
|
|
12806
|
+
PRINT_WORD(`?${variable}`);
|
|
12807
|
+
}
|
|
12808
|
+
PRINT_WORD(")", "{");
|
|
12937
12809
|
});
|
|
12938
|
-
const
|
|
12939
|
-
|
|
12940
|
-
const
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
|
|
12944
|
-
|
|
12945
|
-
|
|
12946
|
-
|
|
12947
|
-
);
|
|
12810
|
+
for (const mapping of ast.values) {
|
|
12811
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12812
|
+
for (const variable of variables) {
|
|
12813
|
+
if (mapping[variable] === void 0) {
|
|
12814
|
+
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
12815
|
+
} else {
|
|
12816
|
+
SUBRULE(graphNodePath, mapping[variable]);
|
|
12817
|
+
}
|
|
12818
|
+
}
|
|
12819
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12820
|
+
}
|
|
12821
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12822
|
+
}
|
|
12823
|
+
};
|
|
12824
|
+
var dataBlock = {
|
|
12825
|
+
name: "dataBlock",
|
|
12826
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12827
|
+
{ ALT: () => SUBRULE(inlineDataOneVar) },
|
|
12828
|
+
{ ALT: () => SUBRULE(inlineDataFull) }
|
|
12829
|
+
])
|
|
12830
|
+
};
|
|
12831
|
+
var inlineDataOneVar = {
|
|
12832
|
+
name: "inlineDataOneVar",
|
|
12833
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
|
|
12834
|
+
const res = [];
|
|
12835
|
+
const varVal = SUBRULE(var_);
|
|
12836
|
+
CONSUME(symbols_exports.LCurly);
|
|
12837
|
+
MANY(() => {
|
|
12838
|
+
const value = SUBRULE(dataBlockValue);
|
|
12839
|
+
ACTION(() => {
|
|
12840
|
+
res.push({ [varVal.value]: value });
|
|
12841
|
+
});
|
|
12948
12842
|
});
|
|
12843
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
12844
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
12949
12845
|
}
|
|
12950
12846
|
};
|
|
12951
|
-
var
|
|
12952
|
-
name: "
|
|
12953
|
-
impl: ({
|
|
12954
|
-
|
|
12955
|
-
|
|
12956
|
-
|
|
12957
|
-
|
|
12958
|
-
|
|
12959
|
-
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12847
|
+
var inlineDataFull = {
|
|
12848
|
+
name: "inlineDataFull",
|
|
12849
|
+
impl: ({
|
|
12850
|
+
ACTION,
|
|
12851
|
+
OR,
|
|
12852
|
+
MANY1,
|
|
12853
|
+
MANY2,
|
|
12854
|
+
MANY3,
|
|
12855
|
+
MANY4,
|
|
12856
|
+
SUBRULE,
|
|
12857
|
+
CONSUME1,
|
|
12858
|
+
CONSUME2
|
|
12859
|
+
}) => (C) => {
|
|
12860
|
+
const res = [];
|
|
12861
|
+
const vars = [];
|
|
12862
|
+
return OR([
|
|
12863
|
+
{ ALT: () => {
|
|
12864
|
+
const nil2 = CONSUME1(terminals_exports.nil);
|
|
12865
|
+
CONSUME1(symbols_exports.LCurly);
|
|
12866
|
+
MANY1(() => {
|
|
12867
|
+
CONSUME2(terminals_exports.nil);
|
|
12868
|
+
res.push({});
|
|
12869
|
+
});
|
|
12870
|
+
const close = CONSUME1(symbols_exports.RCurly);
|
|
12871
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
12872
|
+
} },
|
|
12873
|
+
{ ALT: () => {
|
|
12874
|
+
const open = CONSUME1(symbols_exports.LParen);
|
|
12875
|
+
MANY2(() => {
|
|
12876
|
+
vars.push(SUBRULE(var_));
|
|
12877
|
+
});
|
|
12878
|
+
CONSUME1(symbols_exports.RParen);
|
|
12879
|
+
CONSUME2(symbols_exports.LCurly);
|
|
12880
|
+
MANY3(() => {
|
|
12881
|
+
let parsedValues = 0;
|
|
12882
|
+
const currentRow = {};
|
|
12883
|
+
CONSUME2(symbols_exports.LParen);
|
|
12884
|
+
MANY4(() => {
|
|
12885
|
+
if (parsedValues >= vars.length) {
|
|
12886
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
|
|
12887
|
+
}
|
|
12888
|
+
const value = SUBRULE(dataBlockValue);
|
|
12889
|
+
ACTION(() => {
|
|
12890
|
+
currentRow[vars[parsedValues].value] = value;
|
|
12891
|
+
parsedValues++;
|
|
12892
|
+
});
|
|
12893
|
+
});
|
|
12894
|
+
CONSUME2(symbols_exports.RParen);
|
|
12895
|
+
ACTION(() => {
|
|
12896
|
+
res.push(currentRow);
|
|
12897
|
+
if (vars.length !== parsedValues) {
|
|
12898
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
12899
|
+
}
|
|
12900
|
+
});
|
|
12901
|
+
});
|
|
12902
|
+
const close = CONSUME2(symbols_exports.RCurly);
|
|
12903
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
12904
|
+
} }
|
|
12964
12905
|
]);
|
|
12965
|
-
|
|
12966
|
-
|
|
12967
|
-
|
|
12968
|
-
|
|
12969
|
-
|
|
12970
|
-
|
|
12971
|
-
|
|
12972
|
-
|
|
12906
|
+
}
|
|
12907
|
+
};
|
|
12908
|
+
var dataBlockValue = {
|
|
12909
|
+
name: "dataBlockValue",
|
|
12910
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
12911
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12912
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
12913
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
12914
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
12915
|
+
{ ALT: () => {
|
|
12916
|
+
CONSUME(undef);
|
|
12917
|
+
return void 0;
|
|
12918
|
+
} }
|
|
12919
|
+
])
|
|
12920
|
+
};
|
|
12921
|
+
var minusGraphPattern = {
|
|
12922
|
+
name: "minusGraphPattern",
|
|
12923
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12924
|
+
const minus2 = CONSUME(minus);
|
|
12925
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12926
|
+
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
12927
|
+
},
|
|
12928
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12929
|
+
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12930
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12931
|
+
}
|
|
12932
|
+
};
|
|
12933
|
+
var groupOrUnionGraphPattern = {
|
|
12934
|
+
name: "groupOrUnionGraphPattern",
|
|
12935
|
+
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
12936
|
+
const groups = [];
|
|
12937
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
12938
|
+
groups.push(group);
|
|
12939
|
+
MANY(() => {
|
|
12940
|
+
CONSUME(union);
|
|
12941
|
+
const group2 = SUBRULE2(groupGraphPattern);
|
|
12942
|
+
groups.push(group2);
|
|
12973
12943
|
});
|
|
12974
|
-
return
|
|
12944
|
+
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
12945
|
+
groups,
|
|
12946
|
+
C.factory.sourceLocation(group, groups.at(-1))
|
|
12947
|
+
));
|
|
12975
12948
|
},
|
|
12976
12949
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12977
|
-
F2.
|
|
12978
|
-
|
|
12979
|
-
|
|
12980
|
-
|
|
12950
|
+
if (F2.isPatternUnion(ast)) {
|
|
12951
|
+
const [head2, ...tail] = ast.patterns;
|
|
12952
|
+
SUBRULE(groupGraphPattern, head2);
|
|
12953
|
+
for (const pattern of tail) {
|
|
12954
|
+
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
12955
|
+
SUBRULE(groupGraphPattern, pattern);
|
|
12981
12956
|
}
|
|
12982
|
-
});
|
|
12983
|
-
const arg = ast.expression[0];
|
|
12984
|
-
if (F2.isWildcard(arg)) {
|
|
12985
|
-
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
12986
12957
|
} else {
|
|
12987
|
-
SUBRULE(
|
|
12988
|
-
}
|
|
12989
|
-
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
12990
|
-
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
12958
|
+
SUBRULE(groupGraphPattern, ast);
|
|
12991
12959
|
}
|
|
12960
|
+
}
|
|
12961
|
+
};
|
|
12962
|
+
var filter3 = {
|
|
12963
|
+
name: "filter",
|
|
12964
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12965
|
+
const filterToken = CONSUME(filter2);
|
|
12966
|
+
const expression2 = SUBRULE(constraint);
|
|
12967
|
+
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
12968
|
+
},
|
|
12969
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12970
|
+
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
12971
|
+
SUBRULE(expression, ast.expression);
|
|
12992
12972
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12993
12973
|
}
|
|
12994
12974
|
};
|
|
12975
|
+
var constraint = {
|
|
12976
|
+
name: "constraint",
|
|
12977
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12978
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
12979
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
12980
|
+
{ ALT: () => SUBRULE(functionCall) }
|
|
12981
|
+
])
|
|
12982
|
+
};
|
|
12983
|
+
var functionCall = {
|
|
12984
|
+
name: "functionCall",
|
|
12985
|
+
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
12986
|
+
const func = SUBRULE(iri2);
|
|
12987
|
+
const args = SUBRULE(argList);
|
|
12988
|
+
return ACTION(() => C.factory.expressionFunctionCall(
|
|
12989
|
+
func,
|
|
12990
|
+
args.val.args,
|
|
12991
|
+
args.val.distinct,
|
|
12992
|
+
C.factory.sourceLocation(func, args)
|
|
12993
|
+
));
|
|
12994
|
+
}
|
|
12995
|
+
};
|
|
12995
12996
|
|
|
12996
12997
|
// ../rules-sparql-1-1/lib/grammar/expression.ts
|
|
12997
12998
|
var argList = {
|
|
@@ -13011,7 +13012,7 @@ var argList = {
|
|
|
13011
13012
|
AT_LEAST_ONE_SEP({
|
|
13012
13013
|
SEP: symbols_exports.comma,
|
|
13013
13014
|
DEF: () => {
|
|
13014
|
-
const arg = SUBRULE1(expression
|
|
13015
|
+
const arg = SUBRULE1(expression);
|
|
13015
13016
|
args.push(arg);
|
|
13016
13017
|
}
|
|
13017
13018
|
});
|
|
@@ -13028,11 +13029,11 @@ var argList = {
|
|
|
13028
13029
|
});
|
|
13029
13030
|
const [head2, ...tail] = ast.val.args;
|
|
13030
13031
|
if (head2) {
|
|
13031
|
-
SUBRULE(expression, head2
|
|
13032
|
+
SUBRULE(expression, head2);
|
|
13032
13033
|
}
|
|
13033
13034
|
for (const expr of tail) {
|
|
13034
13035
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13035
|
-
SUBRULE(expression, expr
|
|
13036
|
+
SUBRULE(expression, expr);
|
|
13036
13037
|
}
|
|
13037
13038
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13038
13039
|
}
|
|
@@ -13046,11 +13047,11 @@ var expressionList = {
|
|
|
13046
13047
|
} },
|
|
13047
13048
|
{ ALT: () => {
|
|
13048
13049
|
const open = CONSUME(symbols_exports.LParen);
|
|
13049
|
-
const expr1 = SUBRULE1(expression
|
|
13050
|
+
const expr1 = SUBRULE1(expression);
|
|
13050
13051
|
const args = [expr1];
|
|
13051
13052
|
MANY(() => {
|
|
13052
13053
|
CONSUME(symbols_exports.comma);
|
|
13053
|
-
const expr = SUBRULE2(expression
|
|
13054
|
+
const expr = SUBRULE2(expression);
|
|
13054
13055
|
args.push(expr);
|
|
13055
13056
|
});
|
|
13056
13057
|
const close = CONSUME(symbols_exports.RParen);
|
|
@@ -13062,15 +13063,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
|
|
|
13062
13063
|
var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
|
|
13063
13064
|
var expression = {
|
|
13064
13065
|
name: "expression",
|
|
13065
|
-
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression
|
|
13066
|
+
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
|
|
13066
13067
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13067
13068
|
if (F2.isTerm(ast)) {
|
|
13068
|
-
SUBRULE(varOrTerm, ast
|
|
13069
|
+
SUBRULE(varOrTerm, ast);
|
|
13069
13070
|
} else if (F2.isExpressionOperator(ast)) {
|
|
13070
13071
|
if (infixOperators.has(ast.operator)) {
|
|
13071
13072
|
const [left, ...right] = ast.args;
|
|
13072
13073
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13073
|
-
SUBRULE(expression, left
|
|
13074
|
+
SUBRULE(expression, left);
|
|
13074
13075
|
F2.printFilter(ast, () => {
|
|
13075
13076
|
if (ast.operator === "notin") {
|
|
13076
13077
|
PRINT_WORD("NOT IN");
|
|
@@ -13081,35 +13082,35 @@ var expression = {
|
|
|
13081
13082
|
}
|
|
13082
13083
|
});
|
|
13083
13084
|
if (right.length === 1) {
|
|
13084
|
-
SUBRULE(expression, right[0]
|
|
13085
|
+
SUBRULE(expression, right[0]);
|
|
13085
13086
|
} else {
|
|
13086
|
-
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc)
|
|
13087
|
+
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc));
|
|
13087
13088
|
}
|
|
13088
13089
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13089
13090
|
} else if (prefixOperator.has(ast.operator)) {
|
|
13090
13091
|
const [expr] = ast.args;
|
|
13091
13092
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator));
|
|
13092
|
-
SUBRULE(expression, expr
|
|
13093
|
+
SUBRULE(expression, expr);
|
|
13093
13094
|
} else {
|
|
13094
13095
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
|
|
13095
13096
|
const [head2, ...tail] = ast.args;
|
|
13096
13097
|
if (head2) {
|
|
13097
|
-
SUBRULE(expression, head2
|
|
13098
|
+
SUBRULE(expression, head2);
|
|
13098
13099
|
}
|
|
13099
13100
|
for (const arg of tail) {
|
|
13100
13101
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13101
|
-
SUBRULE(expression, arg
|
|
13102
|
+
SUBRULE(expression, arg);
|
|
13102
13103
|
}
|
|
13103
13104
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13104
13105
|
}
|
|
13105
13106
|
} else if (F2.isExpressionPatternOperation(ast)) {
|
|
13106
13107
|
const patterns = ast.args;
|
|
13107
13108
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
|
|
13108
|
-
SUBRULE(groupGraphPattern, patterns
|
|
13109
|
+
SUBRULE(groupGraphPattern, patterns);
|
|
13109
13110
|
} else if (F2.isExpressionFunctionCall(ast)) {
|
|
13110
|
-
SUBRULE(iriOrFunction, ast
|
|
13111
|
+
SUBRULE(iriOrFunction, ast);
|
|
13111
13112
|
} else if (F2.isExpressionAggregate(ast)) {
|
|
13112
|
-
SUBRULE(aggregate, ast
|
|
13113
|
+
SUBRULE(aggregate, ast);
|
|
13113
13114
|
}
|
|
13114
13115
|
}
|
|
13115
13116
|
};
|
|
@@ -13126,10 +13127,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
|
|
|
13126
13127
|
var conditionalOrExpression = {
|
|
13127
13128
|
name: "conditionalOrExpression",
|
|
13128
13129
|
impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
|
|
13129
|
-
() => SUBRULE1(conditionalAndExpression
|
|
13130
|
+
() => SUBRULE1(conditionalAndExpression),
|
|
13130
13131
|
() => {
|
|
13131
13132
|
CONSUME(symbols_exports.logicOr);
|
|
13132
|
-
const args = SUBRULE2(conditionalAndExpression
|
|
13133
|
+
const args = SUBRULE2(conditionalAndExpression);
|
|
13133
13134
|
return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
|
|
13134
13135
|
},
|
|
13135
13136
|
ACTION,
|
|
@@ -13139,10 +13140,10 @@ var conditionalOrExpression = {
|
|
|
13139
13140
|
var conditionalAndExpression = {
|
|
13140
13141
|
name: "conditionalAndExpression",
|
|
13141
13142
|
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
|
|
13142
|
-
() => SUBRULE1(valueLogical
|
|
13143
|
+
() => SUBRULE1(valueLogical),
|
|
13143
13144
|
() => {
|
|
13144
13145
|
CONSUME(symbols_exports.logicAnd);
|
|
13145
|
-
const arg = SUBRULE2(valueLogical
|
|
13146
|
+
const arg = SUBRULE2(valueLogical);
|
|
13146
13147
|
return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13147
13148
|
},
|
|
13148
13149
|
ACTION,
|
|
@@ -13151,12 +13152,12 @@ var conditionalAndExpression = {
|
|
|
13151
13152
|
};
|
|
13152
13153
|
var valueLogical = {
|
|
13153
13154
|
name: "valueLogical",
|
|
13154
|
-
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression
|
|
13155
|
+
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
|
|
13155
13156
|
};
|
|
13156
13157
|
var relationalExpression = {
|
|
13157
13158
|
name: "relationalExpression",
|
|
13158
13159
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
|
|
13159
|
-
const args1 = SUBRULE1(numericExpression
|
|
13160
|
+
const args1 = SUBRULE1(numericExpression);
|
|
13160
13161
|
const expression2 = OPTION(() => OR1([
|
|
13161
13162
|
{ ALT: () => {
|
|
13162
13163
|
const operator = OR2([
|
|
@@ -13167,7 +13168,7 @@ var relationalExpression = {
|
|
|
13167
13168
|
{ ALT: () => CONSUME(symbols_exports.lessThanEqual) },
|
|
13168
13169
|
{ ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
|
|
13169
13170
|
]);
|
|
13170
|
-
const expr = SUBRULE2(numericExpression
|
|
13171
|
+
const expr = SUBRULE2(numericExpression);
|
|
13171
13172
|
return ACTION(() => C.factory.expressionOperation(
|
|
13172
13173
|
operator.image,
|
|
13173
13174
|
[args1, expr],
|
|
@@ -13179,7 +13180,7 @@ var relationalExpression = {
|
|
|
13179
13180
|
{ ALT: () => CONSUME(in_) },
|
|
13180
13181
|
{ ALT: () => CONSUME(notIn) }
|
|
13181
13182
|
]);
|
|
13182
|
-
const args = SUBRULE1(expressionList
|
|
13183
|
+
const args = SUBRULE1(expressionList);
|
|
13183
13184
|
return ACTION(() => C.factory.expressionOperation(
|
|
13184
13185
|
operator.image,
|
|
13185
13186
|
[args1, ...args.val],
|
|
@@ -13192,25 +13193,25 @@ var relationalExpression = {
|
|
|
13192
13193
|
};
|
|
13193
13194
|
var numericExpression = {
|
|
13194
13195
|
name: "numericExpression",
|
|
13195
|
-
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression
|
|
13196
|
+
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
|
|
13196
13197
|
};
|
|
13197
13198
|
var additiveExpression = {
|
|
13198
13199
|
name: "additiveExpression",
|
|
13199
13200
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
|
|
13200
|
-
() => SUBRULE1(multiplicativeExpression
|
|
13201
|
+
() => SUBRULE1(multiplicativeExpression),
|
|
13201
13202
|
() => OR1([
|
|
13202
13203
|
{ ALT: () => {
|
|
13203
13204
|
const operator = OR2([
|
|
13204
13205
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13205
13206
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13206
13207
|
]);
|
|
13207
|
-
const arg = SUBRULE2(multiplicativeExpression
|
|
13208
|
+
const arg = SUBRULE2(multiplicativeExpression);
|
|
13208
13209
|
return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13209
13210
|
} },
|
|
13210
13211
|
{ ALT: () => {
|
|
13211
13212
|
const { operator, startInt } = OR3([
|
|
13212
13213
|
{ ALT: () => {
|
|
13213
|
-
const integer2 = SUBRULE(numericLiteralPositive
|
|
13214
|
+
const integer2 = SUBRULE(numericLiteralPositive);
|
|
13214
13215
|
return ACTION(() => {
|
|
13215
13216
|
integer2.value = integer2.value.replace(/^\+/u, "");
|
|
13216
13217
|
return {
|
|
@@ -13220,7 +13221,7 @@ var additiveExpression = {
|
|
|
13220
13221
|
});
|
|
13221
13222
|
} },
|
|
13222
13223
|
{ ALT: () => {
|
|
13223
|
-
const integer2 = SUBRULE(numericLiteralNegative
|
|
13224
|
+
const integer2 = SUBRULE(numericLiteralNegative);
|
|
13224
13225
|
return ACTION(() => {
|
|
13225
13226
|
integer2.value = integer2.value.replace(/^-/u, "");
|
|
13226
13227
|
return {
|
|
@@ -13237,7 +13238,7 @@ var additiveExpression = {
|
|
|
13237
13238
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13238
13239
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13239
13240
|
]);
|
|
13240
|
-
const innerExpr = SUBRULE1(unaryExpression
|
|
13241
|
+
const innerExpr = SUBRULE1(unaryExpression);
|
|
13241
13242
|
return ACTION(() => (leftInner) => C.factory.expressionOperation(
|
|
13242
13243
|
innerOperator.image,
|
|
13243
13244
|
[leftInner, innerExpr],
|
|
@@ -13261,13 +13262,13 @@ var additiveExpression = {
|
|
|
13261
13262
|
var multiplicativeExpression = {
|
|
13262
13263
|
name: "multiplicativeExpression",
|
|
13263
13264
|
impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
|
|
13264
|
-
() => SUBRULE1(unaryExpression
|
|
13265
|
+
() => SUBRULE1(unaryExpression),
|
|
13265
13266
|
() => {
|
|
13266
13267
|
const operator = OR([
|
|
13267
13268
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13268
13269
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13269
13270
|
]);
|
|
13270
|
-
const expr = SUBRULE2(unaryExpression
|
|
13271
|
+
const expr = SUBRULE2(unaryExpression);
|
|
13271
13272
|
return (left) => ({
|
|
13272
13273
|
type: "expression",
|
|
13273
13274
|
subType: "operation",
|
|
@@ -13283,14 +13284,14 @@ var multiplicativeExpression = {
|
|
|
13283
13284
|
var unaryExpression = {
|
|
13284
13285
|
name: "unaryExpression",
|
|
13285
13286
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
13286
|
-
{ ALT: () => SUBRULE1(primaryExpression
|
|
13287
|
+
{ ALT: () => SUBRULE1(primaryExpression) },
|
|
13287
13288
|
{ ALT: () => {
|
|
13288
13289
|
const operator = OR2([
|
|
13289
13290
|
{ ALT: () => CONSUME(symbols_exports.exclamation) },
|
|
13290
13291
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13291
13292
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13292
13293
|
]);
|
|
13293
|
-
const expr = SUBRULE2(primaryExpression
|
|
13294
|
+
const expr = SUBRULE2(primaryExpression);
|
|
13294
13295
|
return ACTION(() => ({
|
|
13295
13296
|
type: "expression",
|
|
13296
13297
|
subType: "operation",
|
|
@@ -13304,20 +13305,20 @@ var unaryExpression = {
|
|
|
13304
13305
|
var primaryExpression = {
|
|
13305
13306
|
name: "primaryExpression",
|
|
13306
13307
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13307
|
-
{ ALT: () => SUBRULE(brackettedExpression
|
|
13308
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13309
|
-
{ ALT: () => SUBRULE(iriOrFunction
|
|
13310
|
-
{ ALT: () => SUBRULE(rdfLiteral
|
|
13311
|
-
{ ALT: () => SUBRULE(numericLiteral
|
|
13312
|
-
{ ALT: () => SUBRULE(booleanLiteral
|
|
13313
|
-
{ ALT: () => SUBRULE(var_
|
|
13308
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
13309
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13310
|
+
{ ALT: () => SUBRULE(iriOrFunction) },
|
|
13311
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
13312
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
13313
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
13314
|
+
{ ALT: () => SUBRULE(var_) }
|
|
13314
13315
|
])
|
|
13315
13316
|
};
|
|
13316
13317
|
var brackettedExpression = {
|
|
13317
13318
|
name: "brackettedExpression",
|
|
13318
13319
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13319
13320
|
const open = CONSUME(symbols_exports.LParen);
|
|
13320
|
-
const expr = SUBRULE(expression
|
|
13321
|
+
const expr = SUBRULE(expression);
|
|
13321
13322
|
const close = CONSUME(symbols_exports.RParen);
|
|
13322
13323
|
return ACTION(() => {
|
|
13323
13324
|
expr.loc = C.factory.sourceLocation(open, close);
|
|
@@ -13328,9 +13329,9 @@ var brackettedExpression = {
|
|
|
13328
13329
|
var iriOrFunction = {
|
|
13329
13330
|
name: "iriOrFunction",
|
|
13330
13331
|
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
13331
|
-
const iriVal = SUBRULE(iri2
|
|
13332
|
+
const iriVal = SUBRULE(iri2);
|
|
13332
13333
|
const functionCall2 = OPTION(() => {
|
|
13333
|
-
const args = SUBRULE(argList
|
|
13334
|
+
const args = SUBRULE(argList);
|
|
13334
13335
|
return ACTION(() => {
|
|
13335
13336
|
const distinct2 = args.val.distinct;
|
|
13336
13337
|
if (!C.parseMode.has("canParseAggregate") && distinct2) {
|
|
@@ -13350,10 +13351,10 @@ var iriOrFunction = {
|
|
|
13350
13351
|
},
|
|
13351
13352
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13352
13353
|
if (F2.isTermNamed(ast)) {
|
|
13353
|
-
SUBRULE(iri2, ast
|
|
13354
|
+
SUBRULE(iri2, ast);
|
|
13354
13355
|
} else {
|
|
13355
|
-
SUBRULE(iri2, ast.function
|
|
13356
|
-
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc)
|
|
13356
|
+
SUBRULE(iri2, ast.function);
|
|
13357
|
+
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
|
|
13357
13358
|
}
|
|
13358
13359
|
}
|
|
13359
13360
|
};
|
|
@@ -13362,10 +13363,10 @@ var iriOrFunction = {
|
|
|
13362
13363
|
var solutionModifier = {
|
|
13363
13364
|
name: "solutionModifier",
|
|
13364
13365
|
impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
|
|
13365
|
-
const group = OPTION1(() => SUBRULE(groupClause
|
|
13366
|
-
const having2 = OPTION2(() => SUBRULE(havingClause
|
|
13367
|
-
const order2 = OPTION3(() => SUBRULE(orderClause
|
|
13368
|
-
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses
|
|
13366
|
+
const group = OPTION1(() => SUBRULE(groupClause));
|
|
13367
|
+
const having2 = OPTION2(() => SUBRULE(havingClause));
|
|
13368
|
+
const order2 = OPTION3(() => SUBRULE(orderClause));
|
|
13369
|
+
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
|
|
13369
13370
|
return ACTION(() => ({
|
|
13370
13371
|
...limitOffset && { limitOffset },
|
|
13371
13372
|
...group && { group },
|
|
@@ -13375,16 +13376,16 @@ var solutionModifier = {
|
|
|
13375
13376
|
},
|
|
13376
13377
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
13377
13378
|
if (ast.group) {
|
|
13378
|
-
SUBRULE(groupClause, ast.group
|
|
13379
|
+
SUBRULE(groupClause, ast.group);
|
|
13379
13380
|
}
|
|
13380
13381
|
if (ast.having) {
|
|
13381
|
-
SUBRULE(havingClause, ast.having
|
|
13382
|
+
SUBRULE(havingClause, ast.having);
|
|
13382
13383
|
}
|
|
13383
13384
|
if (ast.order) {
|
|
13384
|
-
SUBRULE(orderClause, ast.order
|
|
13385
|
+
SUBRULE(orderClause, ast.order);
|
|
13385
13386
|
}
|
|
13386
13387
|
if (ast.limitOffset) {
|
|
13387
|
-
SUBRULE(limitOffsetClauses, ast.limitOffset
|
|
13388
|
+
SUBRULE(limitOffsetClauses, ast.limitOffset);
|
|
13388
13389
|
}
|
|
13389
13390
|
}
|
|
13390
13391
|
};
|
|
@@ -13395,7 +13396,7 @@ var groupClause = {
|
|
|
13395
13396
|
const start = CONSUME(groupByGroup);
|
|
13396
13397
|
CONSUME(by);
|
|
13397
13398
|
AT_LEAST_ONE(() => {
|
|
13398
|
-
groupings.push(SUBRULE1(groupCondition
|
|
13399
|
+
groupings.push(SUBRULE1(groupCondition));
|
|
13399
13400
|
});
|
|
13400
13401
|
return ACTION(() => ({
|
|
13401
13402
|
type: "solutionModifier",
|
|
@@ -13408,12 +13409,12 @@ var groupClause = {
|
|
|
13408
13409
|
F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
|
|
13409
13410
|
for (const grouping of ast.groupings) {
|
|
13410
13411
|
if (F2.isExpression(grouping)) {
|
|
13411
|
-
SUBRULE(expression, grouping
|
|
13412
|
+
SUBRULE(expression, grouping);
|
|
13412
13413
|
} else {
|
|
13413
13414
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13414
|
-
SUBRULE(expression, grouping.value
|
|
13415
|
+
SUBRULE(expression, grouping.value);
|
|
13415
13416
|
F2.printFilter(ast, () => PRINT_WORDS("AS"));
|
|
13416
|
-
SUBRULE(var_, grouping.variable
|
|
13417
|
+
SUBRULE(var_, grouping.variable);
|
|
13417
13418
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13418
13419
|
}
|
|
13419
13420
|
}
|
|
@@ -13422,16 +13423,16 @@ var groupClause = {
|
|
|
13422
13423
|
var groupCondition = {
|
|
13423
13424
|
name: "groupCondition",
|
|
13424
13425
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
|
|
13425
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13426
|
-
{ ALT: () => SUBRULE(functionCall
|
|
13427
|
-
{ ALT: () => SUBRULE2(var_
|
|
13426
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13427
|
+
{ ALT: () => SUBRULE(functionCall) },
|
|
13428
|
+
{ ALT: () => SUBRULE2(var_) },
|
|
13428
13429
|
{
|
|
13429
13430
|
ALT: () => {
|
|
13430
13431
|
const open = CONSUME(symbols_exports.LParen);
|
|
13431
|
-
const expressionValue = SUBRULE(expression
|
|
13432
|
+
const expressionValue = SUBRULE(expression);
|
|
13432
13433
|
const variable = OPTION(() => {
|
|
13433
13434
|
CONSUME(as);
|
|
13434
|
-
return SUBRULE1(var_
|
|
13435
|
+
return SUBRULE1(var_);
|
|
13435
13436
|
});
|
|
13436
13437
|
const close = CONSUME(symbols_exports.RParen);
|
|
13437
13438
|
return ACTION(() => {
|
|
@@ -13455,7 +13456,7 @@ var havingClause = {
|
|
|
13455
13456
|
const expressions = [];
|
|
13456
13457
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13457
13458
|
AT_LEAST_ONE(() => {
|
|
13458
|
-
expressions.push(SUBRULE(havingCondition
|
|
13459
|
+
expressions.push(SUBRULE(havingCondition));
|
|
13459
13460
|
});
|
|
13460
13461
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13461
13462
|
return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
|
|
@@ -13463,13 +13464,13 @@ var havingClause = {
|
|
|
13463
13464
|
gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13464
13465
|
F2.printFilter(ast, () => PRINT_WORD("HAVING"));
|
|
13465
13466
|
for (const having2 of ast.having) {
|
|
13466
|
-
SUBRULE(expression, having2
|
|
13467
|
+
SUBRULE(expression, having2);
|
|
13467
13468
|
}
|
|
13468
13469
|
}
|
|
13469
13470
|
};
|
|
13470
13471
|
var havingCondition = {
|
|
13471
13472
|
name: "havingCondition",
|
|
13472
|
-
impl: ({ SUBRULE }) => () => SUBRULE(constraint
|
|
13473
|
+
impl: ({ SUBRULE }) => () => SUBRULE(constraint)
|
|
13473
13474
|
};
|
|
13474
13475
|
var orderClause = {
|
|
13475
13476
|
name: "orderClause",
|
|
@@ -13479,7 +13480,7 @@ var orderClause = {
|
|
|
13479
13480
|
const orderings = [];
|
|
13480
13481
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13481
13482
|
AT_LEAST_ONE(() => {
|
|
13482
|
-
orderings.push(SUBRULE1(orderCondition
|
|
13483
|
+
orderings.push(SUBRULE1(orderCondition));
|
|
13483
13484
|
});
|
|
13484
13485
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13485
13486
|
return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
|
|
@@ -13493,7 +13494,7 @@ var orderClause = {
|
|
|
13493
13494
|
F2.printFilter(ast, () => PRINT_WORDS("ASC"));
|
|
13494
13495
|
}
|
|
13495
13496
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13496
|
-
SUBRULE(expression, ordering.expression
|
|
13497
|
+
SUBRULE(expression, ordering.expression);
|
|
13497
13498
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13498
13499
|
}
|
|
13499
13500
|
}
|
|
@@ -13512,7 +13513,7 @@ var orderCondition = {
|
|
|
13512
13513
|
return [true, token];
|
|
13513
13514
|
} }
|
|
13514
13515
|
]);
|
|
13515
|
-
const expr = SUBRULE(brackettedExpression
|
|
13516
|
+
const expr = SUBRULE(brackettedExpression);
|
|
13516
13517
|
return ACTION(() => ({
|
|
13517
13518
|
expression: expr,
|
|
13518
13519
|
descending: descending[0],
|
|
@@ -13520,11 +13521,11 @@ var orderCondition = {
|
|
|
13520
13521
|
}));
|
|
13521
13522
|
} },
|
|
13522
13523
|
{ ALT: () => {
|
|
13523
|
-
const expr = SUBRULE(constraint
|
|
13524
|
+
const expr = SUBRULE(constraint);
|
|
13524
13525
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13525
13526
|
} },
|
|
13526
13527
|
{ ALT: () => {
|
|
13527
|
-
const expr = SUBRULE(var_
|
|
13528
|
+
const expr = SUBRULE(var_);
|
|
13528
13529
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13529
13530
|
} }
|
|
13530
13531
|
])
|
|
@@ -13533,8 +13534,8 @@ var limitOffsetClauses = {
|
|
|
13533
13534
|
name: "limitOffsetClauses",
|
|
13534
13535
|
impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
|
|
13535
13536
|
{ ALT: () => {
|
|
13536
|
-
const limit2 = SUBRULE1(limitClause
|
|
13537
|
-
const offset2 = OPTION1(() => SUBRULE1(offsetClause
|
|
13537
|
+
const limit2 = SUBRULE1(limitClause);
|
|
13538
|
+
const offset2 = OPTION1(() => SUBRULE1(offsetClause));
|
|
13538
13539
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13539
13540
|
limit2.val,
|
|
13540
13541
|
offset2?.val,
|
|
@@ -13542,8 +13543,8 @@ var limitOffsetClauses = {
|
|
|
13542
13543
|
));
|
|
13543
13544
|
} },
|
|
13544
13545
|
{ ALT: () => {
|
|
13545
|
-
const offset2 = SUBRULE2(offsetClause
|
|
13546
|
-
const limit2 = OPTION2(() => SUBRULE2(limitClause
|
|
13546
|
+
const offset2 = SUBRULE2(offsetClause);
|
|
13547
|
+
const limit2 = OPTION2(() => SUBRULE2(limitClause));
|
|
13547
13548
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13548
13549
|
limit2?.val,
|
|
13549
13550
|
offset2.val,
|
|
@@ -13581,22 +13582,22 @@ var offsetClause = {
|
|
|
13581
13582
|
}
|
|
13582
13583
|
};
|
|
13583
13584
|
|
|
13584
|
-
// ../rules-sparql-1-1/lib/grammar/queryUnit
|
|
13585
|
+
// ../rules-sparql-1-1/lib/grammar/queryUnit.ts
|
|
13585
13586
|
var queryUnit = {
|
|
13586
13587
|
name: "queryUnit",
|
|
13587
|
-
impl: ({ SUBRULE }) => () => SUBRULE(query
|
|
13588
|
+
impl: ({ SUBRULE }) => () => SUBRULE(query)
|
|
13588
13589
|
};
|
|
13589
13590
|
var query = {
|
|
13590
13591
|
name: "query",
|
|
13591
13592
|
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
13592
|
-
const prologueValues = SUBRULE(prologue
|
|
13593
|
+
const prologueValues = SUBRULE(prologue);
|
|
13593
13594
|
const subType = OR([
|
|
13594
|
-
{ ALT: () => SUBRULE(selectQuery
|
|
13595
|
-
{ ALT: () => SUBRULE(constructQuery
|
|
13596
|
-
{ ALT: () => SUBRULE(describeQuery
|
|
13597
|
-
{ ALT: () => SUBRULE(askQuery
|
|
13595
|
+
{ ALT: () => SUBRULE(selectQuery) },
|
|
13596
|
+
{ ALT: () => SUBRULE(constructQuery) },
|
|
13597
|
+
{ ALT: () => SUBRULE(describeQuery) },
|
|
13598
|
+
{ ALT: () => SUBRULE(askQuery) }
|
|
13598
13599
|
]);
|
|
13599
|
-
const values3 = SUBRULE(valuesClause
|
|
13600
|
+
const values3 = SUBRULE(valuesClause);
|
|
13600
13601
|
return ACTION(() => ({
|
|
13601
13602
|
context: prologueValues,
|
|
13602
13603
|
...subType,
|
|
@@ -13610,28 +13611,28 @@ var query = {
|
|
|
13610
13611
|
}));
|
|
13611
13612
|
},
|
|
13612
13613
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13613
|
-
SUBRULE(prologue, ast.context
|
|
13614
|
+
SUBRULE(prologue, ast.context);
|
|
13614
13615
|
if (F2.isQuerySelect(ast)) {
|
|
13615
|
-
SUBRULE(selectQuery, ast
|
|
13616
|
+
SUBRULE(selectQuery, ast);
|
|
13616
13617
|
} else if (F2.isQueryConstruct(ast)) {
|
|
13617
|
-
SUBRULE(constructQuery, ast
|
|
13618
|
+
SUBRULE(constructQuery, ast);
|
|
13618
13619
|
} else if (F2.isQueryDescribe(ast)) {
|
|
13619
|
-
SUBRULE(describeQuery, ast
|
|
13620
|
+
SUBRULE(describeQuery, ast);
|
|
13620
13621
|
} else if (F2.isQueryAsk(ast)) {
|
|
13621
|
-
SUBRULE(askQuery, ast
|
|
13622
|
+
SUBRULE(askQuery, ast);
|
|
13622
13623
|
}
|
|
13623
13624
|
if (ast.values) {
|
|
13624
|
-
SUBRULE(inlineData, ast.values
|
|
13625
|
+
SUBRULE(inlineData, ast.values);
|
|
13625
13626
|
}
|
|
13626
13627
|
}
|
|
13627
13628
|
};
|
|
13628
13629
|
var selectQuery = {
|
|
13629
13630
|
name: "selectQuery",
|
|
13630
13631
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13631
|
-
const selectVal = SUBRULE(selectClause
|
|
13632
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
13633
|
-
const where2 = SUBRULE(whereClause
|
|
13634
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13632
|
+
const selectVal = SUBRULE(selectClause);
|
|
13633
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
13634
|
+
const where2 = SUBRULE(whereClause);
|
|
13635
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13635
13636
|
return ACTION(() => {
|
|
13636
13637
|
const ret = {
|
|
13637
13638
|
subType: "select",
|
|
@@ -13657,19 +13658,19 @@ var selectQuery = {
|
|
|
13657
13658
|
variables: ast.variables,
|
|
13658
13659
|
distinct: ast.distinct,
|
|
13659
13660
|
reduced: ast.reduced
|
|
13660
|
-
}, F2.sourceLocation(...ast.variables))
|
|
13661
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13662
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
13663
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13661
|
+
}, F2.sourceLocation(...ast.variables)));
|
|
13662
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13663
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
13664
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13664
13665
|
}
|
|
13665
13666
|
};
|
|
13666
13667
|
var subSelect = {
|
|
13667
13668
|
name: "subSelect",
|
|
13668
13669
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13669
|
-
const selectVal = SUBRULE(selectClause
|
|
13670
|
-
const where2 = SUBRULE(whereClause
|
|
13671
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13672
|
-
const values3 = SUBRULE(valuesClause
|
|
13670
|
+
const selectVal = SUBRULE(selectClause);
|
|
13671
|
+
const where2 = SUBRULE(whereClause);
|
|
13672
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13673
|
+
const values3 = SUBRULE(valuesClause);
|
|
13673
13674
|
return ACTION(() => C.factory.querySelect({
|
|
13674
13675
|
where: where2.val,
|
|
13675
13676
|
datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
|
|
@@ -13734,7 +13735,7 @@ var selectClause = {
|
|
|
13734
13735
|
const variables = [];
|
|
13735
13736
|
AT_LEAST_ONE(() => OR3([
|
|
13736
13737
|
{ ALT: () => {
|
|
13737
|
-
const raw = SUBRULE1(var_
|
|
13738
|
+
const raw = SUBRULE1(var_);
|
|
13738
13739
|
ACTION(() => {
|
|
13739
13740
|
if (usedVars.some((v) => v.value === raw.value)) {
|
|
13740
13741
|
throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
|
|
@@ -13746,9 +13747,9 @@ var selectClause = {
|
|
|
13746
13747
|
} },
|
|
13747
13748
|
{ ALT: () => {
|
|
13748
13749
|
const open = CONSUME(symbols_exports.LParen);
|
|
13749
|
-
const expr = SUBRULE1(expression
|
|
13750
|
+
const expr = SUBRULE1(expression);
|
|
13750
13751
|
CONSUME(as);
|
|
13751
|
-
const variable = SUBRULE2(var_
|
|
13752
|
+
const variable = SUBRULE2(var_);
|
|
13752
13753
|
const close = CONSUME(symbols_exports.RParen);
|
|
13753
13754
|
ACTION(() => {
|
|
13754
13755
|
last2 = close;
|
|
@@ -13779,12 +13780,12 @@ var selectClause = {
|
|
|
13779
13780
|
if (F2.isWildcard(variable)) {
|
|
13780
13781
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13781
13782
|
} else if (F2.isTerm(variable)) {
|
|
13782
|
-
SUBRULE(var_, variable
|
|
13783
|
+
SUBRULE(var_, variable);
|
|
13783
13784
|
} else {
|
|
13784
13785
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13785
|
-
SUBRULE(expression, variable.expression
|
|
13786
|
+
SUBRULE(expression, variable.expression);
|
|
13786
13787
|
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
13787
|
-
SUBRULE(var_, variable.variable
|
|
13788
|
+
SUBRULE(var_, variable.variable);
|
|
13788
13789
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13789
13790
|
}
|
|
13790
13791
|
}
|
|
@@ -13796,10 +13797,10 @@ var constructQuery = {
|
|
|
13796
13797
|
const construct2 = CONSUME(construct);
|
|
13797
13798
|
return OR([
|
|
13798
13799
|
{ ALT: () => {
|
|
13799
|
-
const template = SUBRULE1(constructTemplate
|
|
13800
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
13801
|
-
const where2 = SUBRULE1(whereClause
|
|
13802
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
13800
|
+
const template = SUBRULE1(constructTemplate);
|
|
13801
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
13802
|
+
const where2 = SUBRULE1(whereClause);
|
|
13803
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
13803
13804
|
return ACTION(() => ({
|
|
13804
13805
|
subType: "construct",
|
|
13805
13806
|
template: template.val,
|
|
@@ -13817,10 +13818,10 @@ var constructQuery = {
|
|
|
13817
13818
|
}));
|
|
13818
13819
|
} },
|
|
13819
13820
|
{ ALT: () => {
|
|
13820
|
-
const from2 = SUBRULE2(datasetClauseStar
|
|
13821
|
+
const from2 = SUBRULE2(datasetClauseStar);
|
|
13821
13822
|
CONSUME(where);
|
|
13822
|
-
const template = SUBRULE2(constructTemplate
|
|
13823
|
-
const modifiers = SUBRULE2(solutionModifier
|
|
13823
|
+
const template = SUBRULE2(constructTemplate);
|
|
13824
|
+
const modifiers = SUBRULE2(solutionModifier);
|
|
13824
13825
|
return ACTION(() => ({
|
|
13825
13826
|
subType: "construct",
|
|
13826
13827
|
template: template.val,
|
|
@@ -13843,16 +13844,16 @@ var constructQuery = {
|
|
|
13843
13844
|
F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
|
|
13844
13845
|
if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13845
13846
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
13846
|
-
SUBRULE(triplesBlock, ast.template
|
|
13847
|
+
SUBRULE(triplesBlock, ast.template);
|
|
13847
13848
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
13848
13849
|
}
|
|
13849
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13850
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13850
13851
|
if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13851
|
-
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc)
|
|
13852
|
+
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc));
|
|
13852
13853
|
} else {
|
|
13853
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
13854
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
13854
13855
|
}
|
|
13855
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13856
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13856
13857
|
}
|
|
13857
13858
|
};
|
|
13858
13859
|
var describeQuery = {
|
|
@@ -13863,7 +13864,7 @@ var describeQuery = {
|
|
|
13863
13864
|
{ ALT: () => {
|
|
13864
13865
|
const variables2 = [];
|
|
13865
13866
|
AT_LEAST_ONE(() => {
|
|
13866
|
-
variables2.push(SUBRULE1(varOrIri
|
|
13867
|
+
variables2.push(SUBRULE1(varOrIri));
|
|
13867
13868
|
});
|
|
13868
13869
|
return variables2;
|
|
13869
13870
|
} },
|
|
@@ -13872,9 +13873,9 @@ var describeQuery = {
|
|
|
13872
13873
|
return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
|
|
13873
13874
|
} }
|
|
13874
13875
|
]);
|
|
13875
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
13876
|
-
const where2 = OPTION(() => SUBRULE1(whereClause
|
|
13877
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
13876
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
13877
|
+
const where2 = OPTION(() => SUBRULE1(whereClause));
|
|
13878
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
13878
13879
|
return ACTION(() => ({
|
|
13879
13880
|
subType: "describe",
|
|
13880
13881
|
variables,
|
|
@@ -13899,23 +13900,23 @@ var describeQuery = {
|
|
|
13899
13900
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13900
13901
|
} else {
|
|
13901
13902
|
for (const variable of ast.variables) {
|
|
13902
|
-
SUBRULE(varOrTerm, variable
|
|
13903
|
+
SUBRULE(varOrTerm, variable);
|
|
13903
13904
|
}
|
|
13904
13905
|
}
|
|
13905
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13906
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13906
13907
|
if (ast.where) {
|
|
13907
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
13908
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
13908
13909
|
}
|
|
13909
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13910
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13910
13911
|
}
|
|
13911
13912
|
};
|
|
13912
13913
|
var askQuery = {
|
|
13913
13914
|
name: "askQuery",
|
|
13914
13915
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13915
13916
|
const ask2 = CONSUME(ask);
|
|
13916
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
13917
|
-
const where2 = SUBRULE(whereClause
|
|
13918
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13917
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
13918
|
+
const where2 = SUBRULE(whereClause);
|
|
13919
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13919
13920
|
return ACTION(() => ({
|
|
13920
13921
|
subType: "ask",
|
|
13921
13922
|
datasets: from2,
|
|
@@ -13934,20 +13935,20 @@ var askQuery = {
|
|
|
13934
13935
|
},
|
|
13935
13936
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13936
13937
|
F2.printFilter(ast, () => PRINT_WORD("ASK"));
|
|
13937
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13938
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
13939
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13938
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13939
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
13940
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13940
13941
|
}
|
|
13941
13942
|
};
|
|
13942
13943
|
var valuesClause = {
|
|
13943
13944
|
name: "valuesClause",
|
|
13944
|
-
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData
|
|
13945
|
+
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
|
|
13945
13946
|
};
|
|
13946
13947
|
var constructTemplate = {
|
|
13947
13948
|
name: "constructTemplate",
|
|
13948
13949
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
13949
13950
|
const open = CONSUME(symbols_exports.LCurly);
|
|
13950
|
-
const triples = OPTION(() => SUBRULE1(constructTriples
|
|
13951
|
+
const triples = OPTION(() => SUBRULE1(constructTriples));
|
|
13951
13952
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13952
13953
|
return ACTION(() => C.factory.wrap(
|
|
13953
13954
|
triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
|
|
@@ -13960,27 +13961,27 @@ var constructTriples = {
|
|
|
13960
13961
|
impl: triplesTemplate.impl
|
|
13961
13962
|
};
|
|
13962
13963
|
|
|
13963
|
-
// ../rules-sparql-1-1/lib/grammar/updateUnit
|
|
13964
|
+
// ../rules-sparql-1-1/lib/grammar/updateUnit.ts
|
|
13964
13965
|
var updateUnit = {
|
|
13965
13966
|
name: "updateUnit",
|
|
13966
|
-
impl: ({ SUBRULE }) => () => SUBRULE(update
|
|
13967
|
+
impl: ({ SUBRULE }) => () => SUBRULE(update)
|
|
13967
13968
|
};
|
|
13968
13969
|
var update = {
|
|
13969
13970
|
name: "update",
|
|
13970
13971
|
impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
|
|
13971
13972
|
const updates = [];
|
|
13972
|
-
const prologueValues = SUBRULE1(prologue
|
|
13973
|
+
const prologueValues = SUBRULE1(prologue);
|
|
13973
13974
|
updates.push({ context: prologueValues });
|
|
13974
13975
|
let parsedSemi = true;
|
|
13975
13976
|
MANY({
|
|
13976
13977
|
GATE: () => parsedSemi,
|
|
13977
13978
|
DEF: () => {
|
|
13978
13979
|
parsedSemi = false;
|
|
13979
|
-
updates.at(-1).operation = SUBRULE(update1
|
|
13980
|
+
updates.at(-1).operation = SUBRULE(update1);
|
|
13980
13981
|
OPTION1(() => {
|
|
13981
13982
|
CONSUME(symbols_exports.semi);
|
|
13982
13983
|
parsedSemi = true;
|
|
13983
|
-
const innerPrologue = SUBRULE2(prologue
|
|
13984
|
+
const innerPrologue = SUBRULE2(prologue);
|
|
13984
13985
|
updates.push({ context: innerPrologue });
|
|
13985
13986
|
});
|
|
13986
13987
|
}
|
|
@@ -14002,9 +14003,9 @@ var update = {
|
|
|
14002
14003
|
},
|
|
14003
14004
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14004
14005
|
for (const update2 of ast.updates) {
|
|
14005
|
-
SUBRULE(prologue, update2.context
|
|
14006
|
+
SUBRULE(prologue, update2.context);
|
|
14006
14007
|
if (update2.operation) {
|
|
14007
|
-
SUBRULE(update1, update2.operation
|
|
14008
|
+
SUBRULE(update1, update2.operation);
|
|
14008
14009
|
F2.printFilter(ast, () => PRINT_WORD(" ;\n"));
|
|
14009
14010
|
}
|
|
14010
14011
|
}
|
|
@@ -14013,52 +14014,52 @@ var update = {
|
|
|
14013
14014
|
var update1 = {
|
|
14014
14015
|
name: "update1",
|
|
14015
14016
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
14016
|
-
{ ALT: () => SUBRULE(load2
|
|
14017
|
-
{ ALT: () => SUBRULE(clear2
|
|
14018
|
-
{ ALT: () => SUBRULE(drop3
|
|
14019
|
-
{ ALT: () => SUBRULE(add2
|
|
14020
|
-
{ ALT: () => SUBRULE(move2
|
|
14021
|
-
{ ALT: () => SUBRULE(copy2
|
|
14022
|
-
{ ALT: () => SUBRULE(create2
|
|
14023
|
-
{ ALT: () => SUBRULE(insertData
|
|
14024
|
-
{ ALT: () => SUBRULE(deleteData
|
|
14025
|
-
{ ALT: () => SUBRULE(deleteWhere
|
|
14026
|
-
{ ALT: () => SUBRULE(modify
|
|
14017
|
+
{ ALT: () => SUBRULE(load2) },
|
|
14018
|
+
{ ALT: () => SUBRULE(clear2) },
|
|
14019
|
+
{ ALT: () => SUBRULE(drop3) },
|
|
14020
|
+
{ ALT: () => SUBRULE(add2) },
|
|
14021
|
+
{ ALT: () => SUBRULE(move2) },
|
|
14022
|
+
{ ALT: () => SUBRULE(copy2) },
|
|
14023
|
+
{ ALT: () => SUBRULE(create2) },
|
|
14024
|
+
{ ALT: () => SUBRULE(insertData) },
|
|
14025
|
+
{ ALT: () => SUBRULE(deleteData) },
|
|
14026
|
+
{ ALT: () => SUBRULE(deleteWhere) },
|
|
14027
|
+
{ ALT: () => SUBRULE(modify) }
|
|
14027
14028
|
]),
|
|
14028
14029
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
14029
14030
|
switch (ast.subType) {
|
|
14030
14031
|
case "load":
|
|
14031
|
-
SUBRULE(load2, ast
|
|
14032
|
+
SUBRULE(load2, ast);
|
|
14032
14033
|
break;
|
|
14033
14034
|
case "clear":
|
|
14034
|
-
SUBRULE(clear2, ast
|
|
14035
|
+
SUBRULE(clear2, ast);
|
|
14035
14036
|
break;
|
|
14036
14037
|
case "drop":
|
|
14037
|
-
SUBRULE(drop3, ast
|
|
14038
|
+
SUBRULE(drop3, ast);
|
|
14038
14039
|
break;
|
|
14039
14040
|
case "add":
|
|
14040
|
-
SUBRULE(add2, ast
|
|
14041
|
+
SUBRULE(add2, ast);
|
|
14041
14042
|
break;
|
|
14042
14043
|
case "move":
|
|
14043
|
-
SUBRULE(move2, ast
|
|
14044
|
+
SUBRULE(move2, ast);
|
|
14044
14045
|
break;
|
|
14045
14046
|
case "copy":
|
|
14046
|
-
SUBRULE(copy2, ast
|
|
14047
|
+
SUBRULE(copy2, ast);
|
|
14047
14048
|
break;
|
|
14048
14049
|
case "create":
|
|
14049
|
-
SUBRULE(create2, ast
|
|
14050
|
+
SUBRULE(create2, ast);
|
|
14050
14051
|
break;
|
|
14051
14052
|
case "insertdata":
|
|
14052
|
-
SUBRULE(insertData, ast
|
|
14053
|
+
SUBRULE(insertData, ast);
|
|
14053
14054
|
break;
|
|
14054
14055
|
case "deletedata":
|
|
14055
|
-
SUBRULE(deleteData, ast
|
|
14056
|
+
SUBRULE(deleteData, ast);
|
|
14056
14057
|
break;
|
|
14057
14058
|
case "deletewhere":
|
|
14058
|
-
SUBRULE(deleteWhere, ast
|
|
14059
|
+
SUBRULE(deleteWhere, ast);
|
|
14059
14060
|
break;
|
|
14060
14061
|
case "modify":
|
|
14061
|
-
SUBRULE(modify, ast
|
|
14062
|
+
SUBRULE(modify, ast);
|
|
14062
14063
|
break;
|
|
14063
14064
|
}
|
|
14064
14065
|
}
|
|
@@ -14068,10 +14069,10 @@ var load2 = {
|
|
|
14068
14069
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
|
|
14069
14070
|
const loadToken = CONSUME(load);
|
|
14070
14071
|
const silent2 = OPTION1(() => CONSUME(silent));
|
|
14071
|
-
const source = SUBRULE1(iri2
|
|
14072
|
+
const source = SUBRULE1(iri2);
|
|
14072
14073
|
const destination = OPTION2(() => {
|
|
14073
14074
|
CONSUME(loadInto);
|
|
14074
|
-
return SUBRULE1(graphRef
|
|
14075
|
+
return SUBRULE1(graphRef);
|
|
14075
14076
|
});
|
|
14076
14077
|
return ACTION(() => C.factory.updateOperationLoad(
|
|
14077
14078
|
C.factory.sourceLocation(loadToken, source, destination),
|
|
@@ -14087,10 +14088,10 @@ var load2 = {
|
|
|
14087
14088
|
PRINT_WORD("SILENT");
|
|
14088
14089
|
}
|
|
14089
14090
|
});
|
|
14090
|
-
SUBRULE(iri2, ast.source
|
|
14091
|
+
SUBRULE(iri2, ast.source);
|
|
14091
14092
|
if (ast.destination) {
|
|
14092
14093
|
F2.printFilter(ast, () => PRINT_WORD("INTO"));
|
|
14093
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14094
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14094
14095
|
}
|
|
14095
14096
|
}
|
|
14096
14097
|
};
|
|
@@ -14100,7 +14101,7 @@ function clearOrDrop(operation) {
|
|
|
14100
14101
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14101
14102
|
const opToken = CONSUME(operation);
|
|
14102
14103
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14103
|
-
const destination = SUBRULE1(graphRefAll
|
|
14104
|
+
const destination = SUBRULE1(graphRefAll);
|
|
14104
14105
|
return ACTION(() => C.factory.updateOperationClearDrop(
|
|
14105
14106
|
unCapitalize(operation.name),
|
|
14106
14107
|
Boolean(silent2),
|
|
@@ -14115,7 +14116,7 @@ function clearOrDrop(operation) {
|
|
|
14115
14116
|
PRINT_WORD("SILENT");
|
|
14116
14117
|
}
|
|
14117
14118
|
});
|
|
14118
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14119
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14119
14120
|
}
|
|
14120
14121
|
};
|
|
14121
14122
|
}
|
|
@@ -14126,7 +14127,7 @@ var create2 = {
|
|
|
14126
14127
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14127
14128
|
const createToken3 = CONSUME(create);
|
|
14128
14129
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14129
|
-
const destination = SUBRULE1(graphRef
|
|
14130
|
+
const destination = SUBRULE1(graphRef);
|
|
14130
14131
|
return ACTION(() => C.factory.updateOperationCreate(
|
|
14131
14132
|
destination,
|
|
14132
14133
|
Boolean(silent2),
|
|
@@ -14140,7 +14141,7 @@ var create2 = {
|
|
|
14140
14141
|
PRINT_WORD("SILENT");
|
|
14141
14142
|
}
|
|
14142
14143
|
});
|
|
14143
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14144
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14144
14145
|
}
|
|
14145
14146
|
};
|
|
14146
14147
|
function copyMoveAddOperation(operation) {
|
|
@@ -14149,9 +14150,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14149
14150
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
|
|
14150
14151
|
const op = CONSUME(operation);
|
|
14151
14152
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14152
|
-
const source = SUBRULE1(graphOrDefault
|
|
14153
|
+
const source = SUBRULE1(graphOrDefault);
|
|
14153
14154
|
CONSUME(to);
|
|
14154
|
-
const destination = SUBRULE2(graphOrDefault
|
|
14155
|
+
const destination = SUBRULE2(graphOrDefault);
|
|
14155
14156
|
return ACTION(() => C.factory.updateOperationAddMoveCopy(
|
|
14156
14157
|
unCapitalize(operation.name),
|
|
14157
14158
|
source,
|
|
@@ -14167,9 +14168,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14167
14168
|
PRINT_WORD("SILENT");
|
|
14168
14169
|
}
|
|
14169
14170
|
});
|
|
14170
|
-
SUBRULE(graphRefAll, ast.source
|
|
14171
|
+
SUBRULE(graphRefAll, ast.source);
|
|
14171
14172
|
F2.printFilter(ast, () => PRINT_WORD("TO"));
|
|
14172
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14173
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14173
14174
|
}
|
|
14174
14175
|
};
|
|
14175
14176
|
}
|
|
@@ -14180,7 +14181,7 @@ var quadPattern = {
|
|
|
14180
14181
|
name: "quadPattern",
|
|
14181
14182
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14182
14183
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14183
|
-
const val = SUBRULE1(quads
|
|
14184
|
+
const val = SUBRULE1(quads);
|
|
14184
14185
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14185
14186
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
14186
14187
|
}
|
|
@@ -14190,7 +14191,7 @@ var quadData = {
|
|
|
14190
14191
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14191
14192
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14192
14193
|
const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
|
|
14193
|
-
const val = SUBRULE1(quads
|
|
14194
|
+
const val = SUBRULE1(quads);
|
|
14194
14195
|
ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
|
|
14195
14196
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14196
14197
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
@@ -14206,7 +14207,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14206
14207
|
if (name !== "insertData") {
|
|
14207
14208
|
couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14208
14209
|
}
|
|
14209
|
-
const data = SUBRULE1(dataRule
|
|
14210
|
+
const data = SUBRULE1(dataRule);
|
|
14210
14211
|
if (name !== "insertData") {
|
|
14211
14212
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14212
14213
|
}
|
|
@@ -14217,7 +14218,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14217
14218
|
subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
|
|
14218
14219
|
"{"
|
|
14219
14220
|
));
|
|
14220
|
-
SUBRULE(quads, F2.wrap(ast.data, ast.loc)
|
|
14221
|
+
SUBRULE(quads, F2.wrap(ast.data, ast.loc));
|
|
14221
14222
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14222
14223
|
}
|
|
14223
14224
|
};
|
|
@@ -14230,23 +14231,23 @@ var modify = {
|
|
|
14230
14231
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
|
|
14231
14232
|
const graph2 = OPTION1(() => {
|
|
14232
14233
|
const withToken = CONSUME(modifyWith);
|
|
14233
|
-
const graph3 = SUBRULE1(iri2
|
|
14234
|
+
const graph3 = SUBRULE1(iri2);
|
|
14234
14235
|
return { withToken, graph: graph3 };
|
|
14235
14236
|
});
|
|
14236
14237
|
const { insert, del } = OR([
|
|
14237
14238
|
{ ALT: () => {
|
|
14238
|
-
const del2 = SUBRULE1(deleteClause2
|
|
14239
|
-
const insert2 = OPTION2(() => SUBRULE1(insertClause2
|
|
14239
|
+
const del2 = SUBRULE1(deleteClause2);
|
|
14240
|
+
const insert2 = OPTION2(() => SUBRULE1(insertClause2));
|
|
14240
14241
|
return { del: del2, insert: insert2 };
|
|
14241
14242
|
} },
|
|
14242
14243
|
{ ALT: () => {
|
|
14243
|
-
const insert2 = SUBRULE2(insertClause2
|
|
14244
|
+
const insert2 = SUBRULE2(insertClause2);
|
|
14244
14245
|
return { insert: insert2, del: void 0 };
|
|
14245
14246
|
} }
|
|
14246
14247
|
]);
|
|
14247
|
-
const using = SUBRULE1(usingClauseStar
|
|
14248
|
+
const using = SUBRULE1(usingClauseStar);
|
|
14248
14249
|
CONSUME(where);
|
|
14249
|
-
const where2 = SUBRULE1(groupGraphPattern
|
|
14250
|
+
const where2 = SUBRULE1(groupGraphPattern);
|
|
14250
14251
|
return ACTION(() => C.factory.updateOperationModify(
|
|
14251
14252
|
C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
|
|
14252
14253
|
insert?.val ?? [],
|
|
@@ -14259,21 +14260,21 @@ var modify = {
|
|
|
14259
14260
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14260
14261
|
if (ast.graph) {
|
|
14261
14262
|
F2.printFilter(ast, () => PRINT_WORD("WITH"));
|
|
14262
|
-
SUBRULE(iri2, ast.graph
|
|
14263
|
+
SUBRULE(iri2, ast.graph);
|
|
14263
14264
|
}
|
|
14264
14265
|
if (ast.delete.length > 0) {
|
|
14265
14266
|
F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
|
|
14266
|
-
SUBRULE(quads, F2.wrap(ast.delete, ast.loc)
|
|
14267
|
+
SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
|
|
14267
14268
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14268
14269
|
}
|
|
14269
14270
|
if (ast.insert.length > 0) {
|
|
14270
14271
|
F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
|
|
14271
|
-
SUBRULE(quads, F2.wrap(ast.insert, ast.loc)
|
|
14272
|
+
SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
|
|
14272
14273
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14273
14274
|
}
|
|
14274
|
-
SUBRULE(usingClauseStar, ast.from
|
|
14275
|
+
SUBRULE(usingClauseStar, ast.from);
|
|
14275
14276
|
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
14276
|
-
SUBRULE(groupGraphPattern, ast.where
|
|
14277
|
+
SUBRULE(groupGraphPattern, ast.where);
|
|
14277
14278
|
}
|
|
14278
14279
|
};
|
|
14279
14280
|
var deleteClause2 = {
|
|
@@ -14281,7 +14282,7 @@ var deleteClause2 = {
|
|
|
14281
14282
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14282
14283
|
const delToken = CONSUME(deleteClause);
|
|
14283
14284
|
const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14284
|
-
const del = SUBRULE(quadPattern
|
|
14285
|
+
const del = SUBRULE(quadPattern);
|
|
14285
14286
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14286
14287
|
return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
|
|
14287
14288
|
}
|
|
@@ -14290,7 +14291,7 @@ var insertClause2 = {
|
|
|
14290
14291
|
name: "insertClause",
|
|
14291
14292
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14292
14293
|
const insertToken = CONSUME(insertClause);
|
|
14293
|
-
const insert = SUBRULE(quadPattern
|
|
14294
|
+
const insert = SUBRULE(quadPattern);
|
|
14294
14295
|
return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
|
|
14295
14296
|
}
|
|
14296
14297
|
};
|
|
@@ -14303,7 +14304,7 @@ var graphOrDefault = {
|
|
|
14303
14304
|
} },
|
|
14304
14305
|
{ ALT: () => {
|
|
14305
14306
|
const graph2 = OPTION(() => CONSUME(graph_exports.graph));
|
|
14306
|
-
const name = SUBRULE1(iri2
|
|
14307
|
+
const name = SUBRULE1(iri2);
|
|
14307
14308
|
return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
|
|
14308
14309
|
} }
|
|
14309
14310
|
])
|
|
@@ -14312,18 +14313,18 @@ var graphRef = {
|
|
|
14312
14313
|
name: "graphRef",
|
|
14313
14314
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14314
14315
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14315
|
-
const val = SUBRULE(iri2
|
|
14316
|
+
const val = SUBRULE(iri2);
|
|
14316
14317
|
return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
|
|
14317
14318
|
},
|
|
14318
14319
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14319
14320
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14320
|
-
SUBRULE(iri2, ast.graph
|
|
14321
|
+
SUBRULE(iri2, ast.graph);
|
|
14321
14322
|
}
|
|
14322
14323
|
};
|
|
14323
14324
|
var graphRefAll = {
|
|
14324
14325
|
name: "graphRefAll",
|
|
14325
14326
|
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
14326
|
-
{ ALT: () => SUBRULE(graphRef
|
|
14327
|
+
{ ALT: () => SUBRULE(graphRef) },
|
|
14327
14328
|
{ ALT: () => {
|
|
14328
14329
|
const def = CONSUME(graph_exports.default_);
|
|
14329
14330
|
return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
|
|
@@ -14339,7 +14340,7 @@ var graphRefAll = {
|
|
|
14339
14340
|
]),
|
|
14340
14341
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14341
14342
|
if (F2.isGraphRefSpecific(ast)) {
|
|
14342
|
-
SUBRULE(graphRef, ast
|
|
14343
|
+
SUBRULE(graphRef, ast);
|
|
14343
14344
|
} else if (F2.isGraphRefDefault(ast)) {
|
|
14344
14345
|
F2.printFilter(ast, () => PRINT_WORD("DEFAULT"));
|
|
14345
14346
|
} else if (F2.isGraphRefNamed(ast)) {
|
|
@@ -14355,12 +14356,12 @@ var quads = {
|
|
|
14355
14356
|
const quads2 = [];
|
|
14356
14357
|
let last2;
|
|
14357
14358
|
OPTION1(() => {
|
|
14358
|
-
const triples = SUBRULE1(triplesTemplate
|
|
14359
|
+
const triples = SUBRULE1(triplesTemplate);
|
|
14359
14360
|
last2 = triples;
|
|
14360
14361
|
ACTION(() => quads2.push(triples));
|
|
14361
14362
|
});
|
|
14362
14363
|
MANY(() => {
|
|
14363
|
-
const notTriples = SUBRULE(quadsNotTriples
|
|
14364
|
+
const notTriples = SUBRULE(quadsNotTriples);
|
|
14364
14365
|
last2 = notTriples;
|
|
14365
14366
|
quads2.push(notTriples);
|
|
14366
14367
|
OPTION2(() => {
|
|
@@ -14369,7 +14370,7 @@ var quads = {
|
|
|
14369
14370
|
return dotToken;
|
|
14370
14371
|
});
|
|
14371
14372
|
OPTION3(() => {
|
|
14372
|
-
const triples = SUBRULE2(triplesTemplate
|
|
14373
|
+
const triples = SUBRULE2(triplesTemplate);
|
|
14373
14374
|
last2 = triples;
|
|
14374
14375
|
ACTION(() => quads2.push(triples));
|
|
14375
14376
|
});
|
|
@@ -14379,9 +14380,9 @@ var quads = {
|
|
|
14379
14380
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
14380
14381
|
for (const quad of ast.val) {
|
|
14381
14382
|
if (F2.isPattern(quad)) {
|
|
14382
|
-
SUBRULE(triplesBlock, quad
|
|
14383
|
+
SUBRULE(triplesBlock, quad);
|
|
14383
14384
|
} else {
|
|
14384
|
-
SUBRULE(quadsNotTriples, quad
|
|
14385
|
+
SUBRULE(quadsNotTriples, quad);
|
|
14385
14386
|
}
|
|
14386
14387
|
}
|
|
14387
14388
|
}
|
|
@@ -14390,9 +14391,9 @@ var quadsNotTriples = {
|
|
|
14390
14391
|
name: "quadsNotTriples",
|
|
14391
14392
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14392
14393
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14393
|
-
const name = SUBRULE1(varOrIri
|
|
14394
|
+
const name = SUBRULE1(varOrIri);
|
|
14394
14395
|
CONSUME(symbols_exports.LCurly);
|
|
14395
|
-
const triples = OPTION(() => SUBRULE1(triplesTemplate
|
|
14396
|
+
const triples = OPTION(() => SUBRULE1(triplesTemplate));
|
|
14396
14397
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14397
14398
|
return ACTION(() => C.factory.graphQuads(
|
|
14398
14399
|
name,
|
|
@@ -14402,9 +14403,9 @@ var quadsNotTriples = {
|
|
|
14402
14403
|
},
|
|
14403
14404
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14404
14405
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14405
|
-
SUBRULE(varOrTerm, ast.graph
|
|
14406
|
+
SUBRULE(varOrTerm, ast.graph);
|
|
14406
14407
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
14407
|
-
SUBRULE(triplesBlock, ast.triples
|
|
14408
|
+
SUBRULE(triplesBlock, ast.triples);
|
|
14408
14409
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14409
14410
|
}
|
|
14410
14411
|
};
|