@traqula/rules-sparql-1-1 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/Sparql11types.d.ts +373 -62
- package/lib/Sparql11types.js.map +1 -1
- package/lib/SparqlParser.d.ts +4 -4
- package/lib/SparqlParser.js +2 -2
- package/lib/SparqlParser.js.map +1 -1
- package/lib/expressionHelpers.d.ts +2 -2
- package/lib/expressionHelpers.js +19 -21
- package/lib/expressionHelpers.js.map +1 -1
- package/lib/factory.d.ts +66 -66
- package/lib/factory.js.map +1 -1
- package/lib/factoryMixins/ContextFactory.d.ts +1 -1
- package/lib/factoryMixins/ContextFactory.js.map +1 -1
- package/lib/factoryMixins/ExpressionFactory.d.ts +1 -1
- package/lib/factoryMixins/ExpressionFactory.js.map +1 -1
- package/lib/factoryMixins/GraphRefFactory.d.ts +1 -1
- package/lib/factoryMixins/GraphRefFactory.js.map +1 -1
- package/lib/factoryMixins/PathFactory.d.ts +1 -1
- package/lib/factoryMixins/PathFactory.js.map +1 -1
- package/lib/factoryMixins/Patternfactory.d.ts +1 -1
- package/lib/factoryMixins/Patternfactory.js.map +1 -1
- package/lib/factoryMixins/QueryFactory.d.ts +1 -1
- package/lib/factoryMixins/QueryFactory.js.map +1 -1
- package/lib/factoryMixins/SolutionModifiersFactory.d.ts +1 -1
- package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -1
- package/lib/factoryMixins/TermFactory.d.ts +1 -1
- package/lib/factoryMixins/TermFactory.js.map +1 -1
- package/lib/factoryMixins/UpdateOperationFactory.d.ts +1 -1
- package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -1
- package/lib/grammar/builtIn.d.ts +2 -2
- package/lib/grammar/builtIn.js +66 -66
- package/lib/grammar/builtIn.js.map +1 -1
- package/lib/grammar/dataSetClause.d.ts +2 -2
- package/lib/grammar/dataSetClause.js +7 -7
- package/lib/grammar/dataSetClause.js.map +1 -1
- package/lib/grammar/expression.d.ts +2 -2
- package/lib/grammar/expression.js +47 -47
- package/lib/grammar/expression.js.map +1 -1
- package/lib/grammar/general.d.ts +2 -2
- package/lib/grammar/general.js +25 -25
- package/lib/grammar/general.js.map +1 -1
- package/lib/grammar/index.d.ts +2 -2
- package/lib/grammar/index.js +2 -2
- package/lib/grammar/index.js.map +1 -1
- package/lib/grammar/literals.d.ts +2 -2
- package/lib/grammar/literals.js +10 -10
- package/lib/grammar/literals.js.map +1 -1
- package/lib/grammar/propertyPaths.d.ts +3 -3
- package/lib/grammar/propertyPaths.js +19 -19
- package/lib/grammar/propertyPaths.js.map +1 -1
- package/lib/grammar/{queryUnit/queryUnit.d.ts → queryUnit.d.ts} +2 -2
- package/lib/grammar/{queryUnit/queryUnit.js → queryUnit.js} +67 -67
- package/lib/grammar/queryUnit.js.map +1 -0
- package/lib/grammar/solutionModifier.d.ts +2 -2
- package/lib/grammar/solutionModifier.js +29 -29
- package/lib/grammar/solutionModifier.js.map +1 -1
- package/lib/grammar/tripleBlock.d.ts +10 -10
- package/lib/grammar/tripleBlock.js +37 -37
- package/lib/grammar/tripleBlock.js.map +1 -1
- package/lib/grammar/{updateUnit/updateUnit.d.ts → updateUnit.d.ts} +2 -2
- package/lib/grammar/{updateUnit/updateUnit.js → updateUnit.js} +78 -78
- package/lib/grammar/updateUnit.js.map +1 -0
- package/lib/grammar/whereClause.d.ts +2 -2
- package/lib/grammar/whereClause.js +69 -69
- package/lib/grammar/whereClause.js.map +1 -1
- package/lib/index.cjs +1485 -1487
- package/lib/index.d.ts +1 -2
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/lexer/graph.d.ts +1 -1
- package/lib/lexer/lexer.d.ts +1 -1
- package/lib/lexer/terminals.d.ts +69 -0
- package/lib/lexer/terminals.js +69 -0
- package/lib/lexer/terminals.js.map +1 -1
- package/lib/sparql11HelperTypes.d.ts +68 -0
- package/lib/sparql11HelperTypes.js +2 -0
- package/lib/sparql11HelperTypes.js.map +1 -0
- package/lib/utils.d.ts +11 -0
- package/lib/utils.js +14 -0
- package/lib/utils.js.map +1 -1
- package/lib/validation/validators.d.ts +1 -1
- package/lib/validation/validators.js.map +1 -1
- package/package.json +3 -3
- package/lib/RoundTripTypes.d.ts +0 -379
- package/lib/RoundTripTypes.js +0 -2
- package/lib/RoundTripTypes.js.map +0 -1
- package/lib/grammar/queryUnit/queryUnit.js.map +0 -1
- package/lib/grammar/updateUnit/updateUnit.js.map +0 -1
- package/lib/grammar-helpers/utils.d.ts +0 -12
- package/lib/grammar-helpers/utils.js +0 -16
- package/lib/grammar-helpers/utils.js.map +0 -1
package/lib/index.cjs
CHANGED
|
@@ -11382,7 +11382,28 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
|
|
|
11382
11382
|
}
|
|
11383
11383
|
}
|
|
11384
11384
|
|
|
11385
|
-
// lib/
|
|
11385
|
+
// lib/utils.ts
|
|
11386
|
+
function sparqlCodepointEscape(input) {
|
|
11387
|
+
const sanitizedInput = input.replaceAll(
|
|
11388
|
+
/\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{8})/gu,
|
|
11389
|
+
(_, unicode4, unicode8) => {
|
|
11390
|
+
if (unicode4) {
|
|
11391
|
+
const charCode2 = Number.parseInt(unicode4, 16);
|
|
11392
|
+
return String.fromCodePoint(charCode2);
|
|
11393
|
+
}
|
|
11394
|
+
const charCode = Number.parseInt(unicode8, 16);
|
|
11395
|
+
if (charCode < 65535) {
|
|
11396
|
+
return String.fromCodePoint(charCode);
|
|
11397
|
+
}
|
|
11398
|
+
const substractedCharCode = charCode - 65536;
|
|
11399
|
+
return String.fromCodePoint(55296 + (substractedCharCode >> 10), 56320 + (substractedCharCode & 1023));
|
|
11400
|
+
}
|
|
11401
|
+
);
|
|
11402
|
+
if (/[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)/u.test(sanitizedInput)) {
|
|
11403
|
+
throw new Error(`Invalid unicode codepoint of surrogate pair without corresponding codepoint`);
|
|
11404
|
+
}
|
|
11405
|
+
return sanitizedInput;
|
|
11406
|
+
}
|
|
11386
11407
|
var CommonIRIs = /* @__PURE__ */ ((CommonIRIs2) => {
|
|
11387
11408
|
CommonIRIs2["BOOLEAN"] = "http://www.w3.org/2001/XMLSchema#boolean";
|
|
11388
11409
|
CommonIRIs2["INTEGER"] = "http://www.w3.org/2001/XMLSchema#integer";
|
|
@@ -11393,7 +11414,6 @@ var CommonIRIs = /* @__PURE__ */ ((CommonIRIs2) => {
|
|
|
11393
11414
|
CommonIRIs2["REST"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest";
|
|
11394
11415
|
CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
|
|
11395
11416
|
CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
|
|
11396
|
-
CommonIRIs2["REIFIES"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies";
|
|
11397
11417
|
return CommonIRIs2;
|
|
11398
11418
|
})(CommonIRIs || {});
|
|
11399
11419
|
|
|
@@ -11424,7 +11444,7 @@ function stringEscapedLexical(str2) {
|
|
|
11424
11444
|
var rdfLiteral = {
|
|
11425
11445
|
name: "rdfLiteral",
|
|
11426
11446
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
|
|
11427
|
-
const value = SUBRULE1(string
|
|
11447
|
+
const value = SUBRULE1(string);
|
|
11428
11448
|
return OPTION(() => OR([
|
|
11429
11449
|
{ ALT: () => {
|
|
11430
11450
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
@@ -11436,7 +11456,7 @@ var rdfLiteral = {
|
|
|
11436
11456
|
} },
|
|
11437
11457
|
{ ALT: () => {
|
|
11438
11458
|
CONSUME(symbols_exports.hathat);
|
|
11439
|
-
const iriVal = SUBRULE1(iri2
|
|
11459
|
+
const iriVal = SUBRULE1(iri2);
|
|
11440
11460
|
return ACTION(() => C.factory.literalTerm(
|
|
11441
11461
|
C.factory.sourceLocation(value, iriVal),
|
|
11442
11462
|
value.value,
|
|
@@ -11452,7 +11472,7 @@ var rdfLiteral = {
|
|
|
11452
11472
|
factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
11453
11473
|
} else {
|
|
11454
11474
|
factory.printFilter(ast, () => PRINT("^^"));
|
|
11455
|
-
SUBRULE(iri2, ast.langOrIri
|
|
11475
|
+
SUBRULE(iri2, ast.langOrIri);
|
|
11456
11476
|
}
|
|
11457
11477
|
}
|
|
11458
11478
|
}
|
|
@@ -11460,9 +11480,9 @@ var rdfLiteral = {
|
|
|
11460
11480
|
var numericLiteral = {
|
|
11461
11481
|
name: "numericLiteral",
|
|
11462
11482
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11463
|
-
{ ALT: () => SUBRULE(numericLiteralUnsigned
|
|
11464
|
-
{ ALT: () => SUBRULE(numericLiteralPositive
|
|
11465
|
-
{ ALT: () => SUBRULE(numericLiteralNegative
|
|
11483
|
+
{ ALT: () => SUBRULE(numericLiteralUnsigned) },
|
|
11484
|
+
{ ALT: () => SUBRULE(numericLiteralPositive) },
|
|
11485
|
+
{ ALT: () => SUBRULE(numericLiteralNegative) }
|
|
11466
11486
|
])
|
|
11467
11487
|
};
|
|
11468
11488
|
var numericLiteralUnsigned = {
|
|
@@ -11570,10 +11590,10 @@ var string = {
|
|
|
11570
11590
|
var iri2 = {
|
|
11571
11591
|
name: "iri",
|
|
11572
11592
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11573
|
-
{ ALT: () => SUBRULE(iriFull
|
|
11574
|
-
{ ALT: () => SUBRULE(prefixedName
|
|
11593
|
+
{ ALT: () => SUBRULE(iriFull) },
|
|
11594
|
+
{ ALT: () => SUBRULE(prefixedName) }
|
|
11575
11595
|
]),
|
|
11576
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast
|
|
11596
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
|
|
11577
11597
|
};
|
|
11578
11598
|
var iriFull = {
|
|
11579
11599
|
name: "iriFull",
|
|
@@ -11645,11 +11665,11 @@ function datasetClauseUsing(name, token) {
|
|
|
11645
11665
|
const start = CONSUME(token);
|
|
11646
11666
|
return OR([
|
|
11647
11667
|
{ ALT: () => {
|
|
11648
|
-
const iri3 = SUBRULE(defaultGraphClause
|
|
11668
|
+
const iri3 = SUBRULE(defaultGraphClause);
|
|
11649
11669
|
return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
|
|
11650
11670
|
} },
|
|
11651
11671
|
{ ALT: () => {
|
|
11652
|
-
const namedClause = SUBRULE(namedGraphClause
|
|
11672
|
+
const namedClause = SUBRULE(namedGraphClause);
|
|
11653
11673
|
return ACTION(() => C.factory.wrap({
|
|
11654
11674
|
clauseType: "named",
|
|
11655
11675
|
value: namedClause.val
|
|
@@ -11662,7 +11682,7 @@ function datasetClauseUsing(name, token) {
|
|
|
11662
11682
|
var datasetClause = datasetClauseUsing("datasetClause", from);
|
|
11663
11683
|
var defaultGraphClause = {
|
|
11664
11684
|
name: "defaultGraphClause",
|
|
11665
|
-
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector
|
|
11685
|
+
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
|
|
11666
11686
|
};
|
|
11667
11687
|
var usingClause2 = datasetClauseUsing("usingClause", usingClause);
|
|
11668
11688
|
function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
@@ -11671,7 +11691,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11671
11691
|
impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
|
|
11672
11692
|
const clauses = [];
|
|
11673
11693
|
MANY(() => {
|
|
11674
|
-
const clause = SUBRULE(subRule
|
|
11694
|
+
const clause = SUBRULE(subRule);
|
|
11675
11695
|
clauses.push(clause);
|
|
11676
11696
|
});
|
|
11677
11697
|
return ACTION(() => C.factory.datasetClauses(
|
|
@@ -11685,7 +11705,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11685
11705
|
if (clause.clauseType === "named") {
|
|
11686
11706
|
F2.printFilter(ast, () => PRINT_WORD("NAMED"));
|
|
11687
11707
|
}
|
|
11688
|
-
SUBRULE(iri2, clause.value
|
|
11708
|
+
SUBRULE(iri2, clause.value);
|
|
11689
11709
|
}
|
|
11690
11710
|
}
|
|
11691
11711
|
};
|
|
@@ -11696,1389 +11716,1390 @@ var namedGraphClause = {
|
|
|
11696
11716
|
name: "namedGraphClause",
|
|
11697
11717
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11698
11718
|
const named2 = CONSUME(graph_exports.named);
|
|
11699
|
-
const iri3 = SUBRULE(sourceSelector
|
|
11719
|
+
const iri3 = SUBRULE(sourceSelector);
|
|
11700
11720
|
return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
|
|
11701
11721
|
}
|
|
11702
11722
|
};
|
|
11703
11723
|
var sourceSelector = {
|
|
11704
11724
|
name: "sourceSelector",
|
|
11705
|
-
impl: ({ SUBRULE }) => () => SUBRULE(iri2
|
|
11725
|
+
impl: ({ SUBRULE }) => () => SUBRULE(iri2)
|
|
11706
11726
|
};
|
|
11707
11727
|
|
|
11708
|
-
// lib/
|
|
11709
|
-
|
|
11710
|
-
|
|
11711
|
-
|
|
11712
|
-
|
|
11713
|
-
|
|
11714
|
-
|
|
11715
|
-
|
|
11716
|
-
|
|
11717
|
-
|
|
11718
|
-
]));
|
|
11719
|
-
return result;
|
|
11720
|
-
},
|
|
11721
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11722
|
-
for (const context of ast) {
|
|
11723
|
-
if (F2.isContextDefinitionBase(context)) {
|
|
11724
|
-
SUBRULE(baseDecl2, context, void 0);
|
|
11725
|
-
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
11726
|
-
SUBRULE(prefixDecl2, context, void 0);
|
|
11727
|
-
}
|
|
11728
|
+
// lib/expressionHelpers.ts
|
|
11729
|
+
function funcExpr1(func) {
|
|
11730
|
+
return {
|
|
11731
|
+
name: unCapitalize(func.name),
|
|
11732
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11733
|
+
const operator = CONSUME(func);
|
|
11734
|
+
CONSUME(symbols_exports.LParen);
|
|
11735
|
+
const arg = SUBRULE(expression);
|
|
11736
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11737
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11728
11738
|
}
|
|
11729
|
-
}
|
|
11730
|
-
}
|
|
11731
|
-
|
|
11732
|
-
|
|
11733
|
-
|
|
11734
|
-
|
|
11735
|
-
|
|
11736
|
-
|
|
11737
|
-
|
|
11738
|
-
|
|
11739
|
-
|
|
11740
|
-
|
|
11741
|
-
|
|
11742
|
-
};
|
|
11743
|
-
var prefixDecl2 = {
|
|
11744
|
-
name: "prefixDecl",
|
|
11745
|
-
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11746
|
-
const prefix = CONSUME(prefixDecl);
|
|
11747
|
-
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
11748
|
-
const value = SUBRULE(iriFull, void 0);
|
|
11749
|
-
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
11750
|
-
},
|
|
11751
|
-
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
11752
|
-
F2.printFilter(ast, () => {
|
|
11753
|
-
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
11754
|
-
});
|
|
11755
|
-
SUBRULE(iri2, ast.value, void 0);
|
|
11756
|
-
}
|
|
11757
|
-
};
|
|
11758
|
-
var verb = {
|
|
11759
|
-
name: "verb",
|
|
11760
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11761
|
-
{ ALT: () => SUBRULE(varOrIri, void 0) },
|
|
11762
|
-
{ ALT: () => SUBRULE(verbA, void 0) }
|
|
11763
|
-
])
|
|
11764
|
-
};
|
|
11765
|
-
var varOrTerm = {
|
|
11766
|
-
name: "varOrTerm",
|
|
11767
|
-
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
11768
|
-
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
|
|
11769
|
-
{ ALT: () => SUBRULE(graphTerm, void 0) }
|
|
11770
|
-
]),
|
|
11771
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11772
|
-
if (F2.isTermVariable(ast)) {
|
|
11773
|
-
return SUBRULE(var_, ast, void 0);
|
|
11739
|
+
};
|
|
11740
|
+
}
|
|
11741
|
+
function funcExpr2(func) {
|
|
11742
|
+
return {
|
|
11743
|
+
name: unCapitalize(func.name),
|
|
11744
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
|
|
11745
|
+
const operator = CONSUME(func);
|
|
11746
|
+
CONSUME(symbols_exports.LParen);
|
|
11747
|
+
const arg1 = SUBRULE1(expression);
|
|
11748
|
+
CONSUME(symbols_exports.comma);
|
|
11749
|
+
const arg2 = SUBRULE2(expression);
|
|
11750
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11751
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
|
|
11774
11752
|
}
|
|
11775
|
-
|
|
11776
|
-
|
|
11777
|
-
|
|
11778
|
-
|
|
11779
|
-
|
|
11780
|
-
|
|
11781
|
-
|
|
11782
|
-
|
|
11783
|
-
|
|
11784
|
-
|
|
11785
|
-
|
|
11786
|
-
|
|
11787
|
-
|
|
11788
|
-
|
|
11789
|
-
|
|
11790
|
-
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
11791
|
-
]);
|
|
11792
|
-
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
11793
|
-
},
|
|
11794
|
-
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
11795
|
-
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
11796
|
-
}
|
|
11797
|
-
};
|
|
11798
|
-
var graphTerm = {
|
|
11799
|
-
name: "graphTerm",
|
|
11800
|
-
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
11801
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
11802
|
-
{ ALT: () => SUBRULE(rdfLiteral, void 0) },
|
|
11803
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
11804
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
11805
|
-
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
|
|
11806
|
-
{ ALT: () => {
|
|
11807
|
-
const tokenNil = CONSUME(terminals_exports.nil);
|
|
11808
|
-
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
11809
|
-
} }
|
|
11810
|
-
]),
|
|
11811
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11812
|
-
if (F2.isTermNamed(ast)) {
|
|
11813
|
-
SUBRULE(iri2, ast, void 0);
|
|
11814
|
-
} else if (F2.isTermLiteral(ast)) {
|
|
11815
|
-
SUBRULE(rdfLiteral, ast, void 0);
|
|
11816
|
-
} else if (F2.isTermBlank(ast)) {
|
|
11817
|
-
SUBRULE(blankNode, ast, void 0);
|
|
11753
|
+
};
|
|
11754
|
+
}
|
|
11755
|
+
function funcExpr3(func) {
|
|
11756
|
+
return {
|
|
11757
|
+
name: unCapitalize(func.name),
|
|
11758
|
+
impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
|
|
11759
|
+
const operator = CONSUME(func);
|
|
11760
|
+
CONSUME(symbols_exports.LParen);
|
|
11761
|
+
const arg1 = SUBRULE1(expression);
|
|
11762
|
+
CONSUME1(symbols_exports.comma);
|
|
11763
|
+
const arg2 = SUBRULE2(expression);
|
|
11764
|
+
CONSUME2(symbols_exports.comma);
|
|
11765
|
+
const arg3 = SUBRULE3(expression);
|
|
11766
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11767
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
|
|
11818
11768
|
}
|
|
11819
|
-
}
|
|
11820
|
-
}
|
|
11821
|
-
|
|
11822
|
-
|
|
11823
|
-
|
|
11824
|
-
|
|
11825
|
-
|
|
11826
|
-
|
|
11827
|
-
|
|
11828
|
-
|
|
11829
|
-
|
|
11830
|
-
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
11831
|
-
SUBRULE(iri2, ast, void 0);
|
|
11832
|
-
} else {
|
|
11833
|
-
F2.printFilter(ast, () => braces && PRINT("("));
|
|
11834
|
-
switch (ast.subType) {
|
|
11835
|
-
case "|":
|
|
11836
|
-
case "/": {
|
|
11837
|
-
const [head2, ...tail] = ast.items;
|
|
11838
|
-
SUBRULE(pathGenerator, head2, braces);
|
|
11839
|
-
for (const val of tail) {
|
|
11840
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
11841
|
-
SUBRULE(pathGenerator, val, braces);
|
|
11842
|
-
}
|
|
11843
|
-
break;
|
|
11844
|
-
}
|
|
11845
|
-
case "^":
|
|
11846
|
-
F2.printFilter(ast, () => PRINT("^"));
|
|
11847
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
11848
|
-
break;
|
|
11849
|
-
case "?":
|
|
11850
|
-
case "*":
|
|
11851
|
-
case "+":
|
|
11852
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
11853
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
11854
|
-
break;
|
|
11855
|
-
case "!":
|
|
11856
|
-
F2.printFilter(ast, () => PRINT("!"));
|
|
11857
|
-
F2.printFilter(ast, () => PRINT("("));
|
|
11858
|
-
SUBRULE(pathGenerator, ast.items[0], false);
|
|
11859
|
-
F2.printFilter(ast, () => PRINT(")"));
|
|
11860
|
-
break;
|
|
11861
|
-
}
|
|
11862
|
-
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
11769
|
+
};
|
|
11770
|
+
}
|
|
11771
|
+
function funcVar1(func) {
|
|
11772
|
+
return {
|
|
11773
|
+
name: unCapitalize(func.name),
|
|
11774
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11775
|
+
const operator = CONSUME(func);
|
|
11776
|
+
CONSUME(symbols_exports.LParen);
|
|
11777
|
+
const arg = SUBRULE(var_);
|
|
11778
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11779
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11863
11780
|
}
|
|
11864
|
-
}
|
|
11865
|
-
}
|
|
11866
|
-
function
|
|
11781
|
+
};
|
|
11782
|
+
}
|
|
11783
|
+
function funcExprOrNil1(func) {
|
|
11867
11784
|
return {
|
|
11868
|
-
name,
|
|
11869
|
-
impl: ({ ACTION, CONSUME,
|
|
11870
|
-
const
|
|
11871
|
-
|
|
11872
|
-
|
|
11873
|
-
|
|
11874
|
-
|
|
11875
|
-
|
|
11876
|
-
|
|
11785
|
+
name: unCapitalize(func.name),
|
|
11786
|
+
impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
|
|
11787
|
+
const operator = CONSUME(func);
|
|
11788
|
+
return OR([
|
|
11789
|
+
{ ALT: () => {
|
|
11790
|
+
CONSUME(symbols_exports.LParen);
|
|
11791
|
+
const arg = SUBRULE(expression);
|
|
11792
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11793
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11794
|
+
} },
|
|
11795
|
+
{ ALT: () => {
|
|
11796
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
11797
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
11798
|
+
} }
|
|
11799
|
+
]);
|
|
11800
|
+
}
|
|
11801
|
+
};
|
|
11802
|
+
}
|
|
11803
|
+
function funcNil1(func) {
|
|
11804
|
+
return {
|
|
11805
|
+
name: unCapitalize(func.name),
|
|
11806
|
+
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11807
|
+
const operator = CONSUME(func);
|
|
11808
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
11809
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
11810
|
+
}
|
|
11811
|
+
};
|
|
11812
|
+
}
|
|
11813
|
+
function funcExprList1(func) {
|
|
11814
|
+
return {
|
|
11815
|
+
name: unCapitalize(func.name),
|
|
11816
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11817
|
+
const operator = CONSUME(func);
|
|
11818
|
+
const args = SUBRULE(expressionList);
|
|
11819
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
11820
|
+
}
|
|
11821
|
+
};
|
|
11822
|
+
}
|
|
11823
|
+
function funcExpr2or3(func) {
|
|
11824
|
+
return {
|
|
11825
|
+
name: unCapitalize(func.name),
|
|
11826
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
|
|
11827
|
+
const operator = CONSUME(func);
|
|
11828
|
+
CONSUME(symbols_exports.LParen);
|
|
11829
|
+
const arg1 = SUBRULE1(expression);
|
|
11830
|
+
CONSUME1(symbols_exports.comma);
|
|
11831
|
+
const arg2 = SUBRULE2(expression);
|
|
11832
|
+
const arg3 = OPTION(() => {
|
|
11833
|
+
CONSUME2(symbols_exports.comma);
|
|
11834
|
+
return SUBRULE3(expression);
|
|
11877
11835
|
});
|
|
11878
|
-
|
|
11836
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11837
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
11838
|
+
operator.image,
|
|
11839
|
+
arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
|
|
11840
|
+
C.factory.sourceLocation(operator, close)
|
|
11841
|
+
));
|
|
11879
11842
|
}
|
|
11880
11843
|
};
|
|
11881
11844
|
}
|
|
11882
|
-
|
|
11883
|
-
|
|
11884
|
-
|
|
11885
|
-
|
|
11886
|
-
|
|
11887
|
-
|
|
11888
|
-
|
|
11889
|
-
|
|
11890
|
-
|
|
11891
|
-
|
|
11892
|
-
|
|
11893
|
-
|
|
11894
|
-
|
|
11895
|
-
|
|
11896
|
-
|
|
11897
|
-
|
|
11898
|
-
const item = SUBRULE(pathPrimary, void 0);
|
|
11899
|
-
const modification = OPTION(() => SUBRULE(pathMod, void 0));
|
|
11900
|
-
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
11901
|
-
}
|
|
11902
|
-
};
|
|
11903
|
-
var pathMod = {
|
|
11904
|
-
name: "pathMod",
|
|
11905
|
-
impl: ({ CONSUME, OR }) => () => OR([
|
|
11906
|
-
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
11907
|
-
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
11908
|
-
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
11909
|
-
])
|
|
11910
|
-
};
|
|
11911
|
-
var pathPrimary = {
|
|
11912
|
-
name: "pathPrimary",
|
|
11913
|
-
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
11914
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
11915
|
-
{ ALT: () => SUBRULE(verbA, void 0) },
|
|
11916
|
-
{ ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
|
|
11917
|
-
{ ALT: () => {
|
|
11845
|
+
function funcExpr3or4(func) {
|
|
11846
|
+
return {
|
|
11847
|
+
name: unCapitalize(func.name),
|
|
11848
|
+
impl: ({
|
|
11849
|
+
ACTION,
|
|
11850
|
+
CONSUME,
|
|
11851
|
+
SUBRULE1,
|
|
11852
|
+
SUBRULE2,
|
|
11853
|
+
SUBRULE3,
|
|
11854
|
+
SUBRULE4,
|
|
11855
|
+
CONSUME1,
|
|
11856
|
+
OPTION,
|
|
11857
|
+
CONSUME2,
|
|
11858
|
+
CONSUME3
|
|
11859
|
+
}) => (C) => {
|
|
11860
|
+
const operator = CONSUME(func);
|
|
11918
11861
|
CONSUME(symbols_exports.LParen);
|
|
11919
|
-
const
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
11928
|
-
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
11929
|
-
return OR([
|
|
11930
|
-
{ ALT: () => {
|
|
11931
|
-
const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
|
|
11932
|
-
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
11933
|
-
} },
|
|
11934
|
-
{ ALT: () => {
|
|
11935
|
-
const open = CONSUME(symbols_exports.LParen);
|
|
11936
|
-
const head2 = SUBRULE2(pathOneInPropertySet, void 0);
|
|
11937
|
-
const tail = [];
|
|
11938
|
-
MANY(() => {
|
|
11939
|
-
CONSUME(symbols_exports.pipe);
|
|
11940
|
-
const item = SUBRULE3(pathOneInPropertySet, void 0);
|
|
11941
|
-
tail.push(item);
|
|
11942
|
-
});
|
|
11943
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
11944
|
-
return ACTION(() => {
|
|
11945
|
-
const F2 = C.factory;
|
|
11946
|
-
if (tail.length === 0) {
|
|
11947
|
-
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
11948
|
-
}
|
|
11949
|
-
return F2.path(
|
|
11950
|
-
"!",
|
|
11951
|
-
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
11952
|
-
F2.sourceLocation(exclamation2, close)
|
|
11953
|
-
);
|
|
11954
|
-
});
|
|
11955
|
-
} }
|
|
11956
|
-
]);
|
|
11957
|
-
}
|
|
11958
|
-
};
|
|
11959
|
-
var pathOneInPropertySet = {
|
|
11960
|
-
name: "pathOneInPropertySet",
|
|
11961
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
11962
|
-
{ ALT: () => SUBRULE1(iri2, void 0) },
|
|
11963
|
-
{ ALT: () => SUBRULE1(verbA, void 0) },
|
|
11964
|
-
{ ALT: () => {
|
|
11965
|
-
const hat2 = CONSUME(symbols_exports.hat);
|
|
11966
|
-
const item = OR2([
|
|
11967
|
-
{ ALT: () => SUBRULE2(iri2, void 0) },
|
|
11968
|
-
{ ALT: () => SUBRULE2(verbA, void 0) }
|
|
11969
|
-
]);
|
|
11970
|
-
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
11971
|
-
} }
|
|
11972
|
-
])
|
|
11973
|
-
};
|
|
11974
|
-
|
|
11975
|
-
// lib/grammar/tripleBlock.ts
|
|
11976
|
-
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
11977
|
-
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
11978
|
-
const triples = [];
|
|
11979
|
-
let parsedDot = true;
|
|
11980
|
-
let dotToken;
|
|
11981
|
-
AT_LEAST_ONE({
|
|
11982
|
-
GATE: () => parsedDot,
|
|
11983
|
-
DEF: () => {
|
|
11984
|
-
parsedDot = false;
|
|
11985
|
-
const template = SUBRULE(triplesSameSubjectSubrule, void 0);
|
|
11986
|
-
ACTION(() => {
|
|
11987
|
-
triples.push(...template);
|
|
11988
|
-
});
|
|
11989
|
-
OPTION(() => {
|
|
11990
|
-
dotToken = CONSUME(symbols_exports.dot);
|
|
11991
|
-
parsedDot = true;
|
|
11992
|
-
});
|
|
11993
|
-
}
|
|
11994
|
-
});
|
|
11995
|
-
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
11996
|
-
};
|
|
11997
|
-
}
|
|
11998
|
-
var triplesBlock = {
|
|
11999
|
-
name: "triplesBlock",
|
|
12000
|
-
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
|
|
12001
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12002
|
-
for (const [index, triple] of ast.triples.entries()) {
|
|
12003
|
-
HANDLE_LOC(triple, () => {
|
|
12004
|
-
const nextTriple = ast.triples.at(index);
|
|
12005
|
-
if (F2.isTripleCollection(triple)) {
|
|
12006
|
-
SUBRULE(graphNodePath, triple, void 0);
|
|
12007
|
-
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
12008
|
-
} else {
|
|
12009
|
-
SUBRULE(graphNodePath, triple.subject, void 0);
|
|
12010
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12011
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
12012
|
-
} else {
|
|
12013
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12014
|
-
}
|
|
12015
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
12016
|
-
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12017
|
-
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
12018
|
-
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12019
|
-
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12020
|
-
} else {
|
|
12021
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12022
|
-
}
|
|
12023
|
-
}
|
|
11862
|
+
const arg1 = SUBRULE1(expression);
|
|
11863
|
+
CONSUME1(symbols_exports.comma);
|
|
11864
|
+
const arg2 = SUBRULE2(expression);
|
|
11865
|
+
CONSUME2(symbols_exports.comma);
|
|
11866
|
+
const arg3 = SUBRULE3(expression);
|
|
11867
|
+
const arg4 = OPTION(() => {
|
|
11868
|
+
CONSUME3(symbols_exports.comma);
|
|
11869
|
+
return SUBRULE4(expression);
|
|
12024
11870
|
});
|
|
11871
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11872
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
11873
|
+
operator.image,
|
|
11874
|
+
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
11875
|
+
C.factory.sourceLocation(operator, close)
|
|
11876
|
+
));
|
|
12025
11877
|
}
|
|
12026
|
-
}
|
|
12027
|
-
};
|
|
12028
|
-
function triplesSameSubjectImpl(name, allowPaths) {
|
|
12029
|
-
return {
|
|
12030
|
-
name,
|
|
12031
|
-
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12032
|
-
{ ALT: () => {
|
|
12033
|
-
const subject = SUBRULE(varOrTerm, void 0);
|
|
12034
|
-
const res = SUBRULE(
|
|
12035
|
-
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
12036
|
-
{ subject: ACTION(() => C.factory.dematerialized(subject)) }
|
|
12037
|
-
);
|
|
12038
|
-
return ACTION(() => {
|
|
12039
|
-
if (res.length > 0) {
|
|
12040
|
-
res[0].subject = subject;
|
|
12041
|
-
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
12042
|
-
}
|
|
12043
|
-
return res;
|
|
12044
|
-
});
|
|
12045
|
-
} },
|
|
12046
|
-
{ ALT: () => {
|
|
12047
|
-
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
|
|
12048
|
-
const restNode = SUBRULE(
|
|
12049
|
-
allowPaths ? propertyListPath : propertyList,
|
|
12050
|
-
{ subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
|
|
12051
|
-
);
|
|
12052
|
-
return ACTION(() => {
|
|
12053
|
-
if (restNode.length === 0) {
|
|
12054
|
-
return [subjectNode];
|
|
12055
|
-
}
|
|
12056
|
-
restNode[0].subject = subjectNode;
|
|
12057
|
-
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
12058
|
-
return restNode;
|
|
12059
|
-
});
|
|
12060
|
-
} }
|
|
12061
|
-
])
|
|
12062
|
-
};
|
|
12063
|
-
}
|
|
12064
|
-
var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
|
|
12065
|
-
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
12066
|
-
var triplesTemplate = {
|
|
12067
|
-
name: "triplesTemplate",
|
|
12068
|
-
impl: triplesDotSeperated(triplesSameSubject)
|
|
12069
|
-
};
|
|
12070
|
-
function propertyListImpl(name, allowPaths) {
|
|
12071
|
-
return {
|
|
12072
|
-
name,
|
|
12073
|
-
impl: ({ SUBRULE, OPTION }) => (_, arg) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, arg)) ?? []
|
|
12074
11878
|
};
|
|
12075
11879
|
}
|
|
12076
|
-
|
|
12077
|
-
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
12078
|
-
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
11880
|
+
function funcGroupGraphPattern(func) {
|
|
12079
11881
|
return {
|
|
12080
|
-
name,
|
|
12081
|
-
impl: ({ ACTION,
|
|
12082
|
-
const
|
|
12083
|
-
|
|
12084
|
-
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
{ ALT: () => SUBRULE1(verbPath, void 0) },
|
|
12090
|
-
{ ALT: () => SUBRULE1(verbSimple, void 0) }
|
|
12091
|
-
]) : SUBRULE1(verb, void 0);
|
|
12092
|
-
const triples = SUBRULE1(
|
|
12093
|
-
allowPaths ? objectListPath : objectList,
|
|
12094
|
-
ACTION(() => ({ subject: arg.subject, predicate }))
|
|
12095
|
-
);
|
|
12096
|
-
MANY2(() => {
|
|
12097
|
-
CONSUME(symbols_exports.semi);
|
|
12098
|
-
parsedSemi = true;
|
|
12099
|
-
});
|
|
12100
|
-
ACTION(() => {
|
|
12101
|
-
result.push(...triples);
|
|
12102
|
-
});
|
|
12103
|
-
}
|
|
12104
|
-
});
|
|
12105
|
-
return result;
|
|
11882
|
+
name: unCapitalize(func.name),
|
|
11883
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11884
|
+
const operator = CONSUME(func);
|
|
11885
|
+
const group = SUBRULE(groupGraphPattern);
|
|
11886
|
+
return ACTION(() => C.factory.expressionPatternOperation(
|
|
11887
|
+
operator.image,
|
|
11888
|
+
group,
|
|
11889
|
+
C.factory.sourceLocation(operator, group)
|
|
11890
|
+
));
|
|
12106
11891
|
}
|
|
12107
11892
|
};
|
|
12108
11893
|
}
|
|
12109
|
-
|
|
12110
|
-
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12111
|
-
var verbPath = {
|
|
12112
|
-
name: "verbPath",
|
|
12113
|
-
impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
|
|
12114
|
-
};
|
|
12115
|
-
var verbSimple = {
|
|
12116
|
-
name: "verbSimple",
|
|
12117
|
-
impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
|
|
12118
|
-
};
|
|
12119
|
-
function objectListImpl(name, allowPaths) {
|
|
11894
|
+
function baseAggregateFunc(func) {
|
|
12120
11895
|
return {
|
|
12121
|
-
name,
|
|
12122
|
-
impl: ({ ACTION, SUBRULE,
|
|
12123
|
-
const
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
11896
|
+
name: unCapitalize(func.name),
|
|
11897
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
|
|
11898
|
+
const operator = CONSUME(func);
|
|
11899
|
+
CONSUME(symbols_exports.LParen);
|
|
11900
|
+
const distinct2 = OPTION(() => CONSUME(distinct));
|
|
11901
|
+
const expr1 = SUBRULE(expression);
|
|
11902
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11903
|
+
return ACTION(() => C.factory.aggregate(
|
|
11904
|
+
operator.image,
|
|
11905
|
+
distinct2 !== void 0,
|
|
11906
|
+
expr1,
|
|
11907
|
+
void 0,
|
|
11908
|
+
C.factory.sourceLocation(operator, close)
|
|
11909
|
+
));
|
|
12134
11910
|
}
|
|
12135
11911
|
};
|
|
12136
11912
|
}
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12148
|
-
var
|
|
12149
|
-
var
|
|
12150
|
-
|
|
12151
|
-
|
|
12152
|
-
|
|
12153
|
-
|
|
12154
|
-
|
|
12155
|
-
|
|
12156
|
-
|
|
12157
|
-
|
|
12158
|
-
|
|
12159
|
-
|
|
12160
|
-
|
|
12161
|
-
|
|
12162
|
-
|
|
12163
|
-
|
|
12164
|
-
|
|
12165
|
-
|
|
12166
|
-
|
|
12167
|
-
|
|
12168
|
-
|
|
12169
|
-
|
|
12170
|
-
|
|
12171
|
-
|
|
12172
|
-
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
|
|
12178
|
-
|
|
12179
|
-
|
|
12180
|
-
|
|
12181
|
-
|
|
12182
|
-
|
|
12183
|
-
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
12194
|
-
|
|
12195
|
-
|
|
12196
|
-
|
|
12197
|
-
}
|
|
12198
|
-
|
|
12199
|
-
}
|
|
12200
|
-
|
|
12201
|
-
|
|
12202
|
-
|
|
12203
|
-
|
|
12204
|
-
|
|
12205
|
-
|
|
12206
|
-
|
|
12207
|
-
|
|
12208
|
-
|
|
12209
|
-
|
|
12210
|
-
|
|
11913
|
+
|
|
11914
|
+
// lib/grammar/builtIn.ts
|
|
11915
|
+
var builtInStr = funcExpr1(BuildinCalls_exports.str);
|
|
11916
|
+
var builtInLang = funcExpr1(BuildinCalls_exports.lang);
|
|
11917
|
+
var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
|
|
11918
|
+
var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
|
|
11919
|
+
var builtInBound = funcVar1(BuildinCalls_exports.bound);
|
|
11920
|
+
var builtInIri = funcExpr1(BuildinCalls_exports.iri);
|
|
11921
|
+
var builtInUri = funcExpr1(BuildinCalls_exports.uri);
|
|
11922
|
+
var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
|
|
11923
|
+
var builtInRand = funcNil1(BuildinCalls_exports.rand);
|
|
11924
|
+
var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
|
|
11925
|
+
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
11926
|
+
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
11927
|
+
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
11928
|
+
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
11929
|
+
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
11930
|
+
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
11931
|
+
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
11932
|
+
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
11933
|
+
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
11934
|
+
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
11935
|
+
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
11936
|
+
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
11937
|
+
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
11938
|
+
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
11939
|
+
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
11940
|
+
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
11941
|
+
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
11942
|
+
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
11943
|
+
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
11944
|
+
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
11945
|
+
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
11946
|
+
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
11947
|
+
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
11948
|
+
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
11949
|
+
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
11950
|
+
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
11951
|
+
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
11952
|
+
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
11953
|
+
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
11954
|
+
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
11955
|
+
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
11956
|
+
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
11957
|
+
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
11958
|
+
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
11959
|
+
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
11960
|
+
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
11961
|
+
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
11962
|
+
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
11963
|
+
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
11964
|
+
function builtInCallList(SUBRULE) {
|
|
11965
|
+
return [
|
|
11966
|
+
{ ALT: () => SUBRULE(aggregate) },
|
|
11967
|
+
{ ALT: () => SUBRULE(builtInStr) },
|
|
11968
|
+
{ ALT: () => SUBRULE(builtInLang) },
|
|
11969
|
+
{ ALT: () => SUBRULE(builtInLangmatches) },
|
|
11970
|
+
{ ALT: () => SUBRULE(builtInDatatype) },
|
|
11971
|
+
{ ALT: () => SUBRULE(builtInBound) },
|
|
11972
|
+
{ ALT: () => SUBRULE(builtInIri) },
|
|
11973
|
+
{ ALT: () => SUBRULE(builtInUri) },
|
|
11974
|
+
{ ALT: () => SUBRULE(builtInBnodeSparqlJs) },
|
|
11975
|
+
{ ALT: () => SUBRULE(builtInRand) },
|
|
11976
|
+
{ ALT: () => SUBRULE(builtInAbs) },
|
|
11977
|
+
{ ALT: () => SUBRULE(builtInCeil) },
|
|
11978
|
+
{ ALT: () => SUBRULE(builtInFloor) },
|
|
11979
|
+
{ ALT: () => SUBRULE(builtInRound) },
|
|
11980
|
+
{ ALT: () => SUBRULE(builtInConcat) },
|
|
11981
|
+
{ ALT: () => SUBRULE(substringExpression) },
|
|
11982
|
+
{ ALT: () => SUBRULE(builtInStrlen) },
|
|
11983
|
+
{ ALT: () => SUBRULE(strReplaceExpression) },
|
|
11984
|
+
{ ALT: () => SUBRULE(builtInUcase) },
|
|
11985
|
+
{ ALT: () => SUBRULE(builtInLcase) },
|
|
11986
|
+
{ ALT: () => SUBRULE(builtInEncode_for_uri) },
|
|
11987
|
+
{ ALT: () => SUBRULE(builtInContains) },
|
|
11988
|
+
{ ALT: () => SUBRULE(builtInStrstarts) },
|
|
11989
|
+
{ ALT: () => SUBRULE(builtInStrends) },
|
|
11990
|
+
{ ALT: () => SUBRULE(builtInStrbefore) },
|
|
11991
|
+
{ ALT: () => SUBRULE(builtInStrafter) },
|
|
11992
|
+
{ ALT: () => SUBRULE(builtInYear) },
|
|
11993
|
+
{ ALT: () => SUBRULE(builtInMonth) },
|
|
11994
|
+
{ ALT: () => SUBRULE(builtInDay) },
|
|
11995
|
+
{ ALT: () => SUBRULE(builtInHours) },
|
|
11996
|
+
{ ALT: () => SUBRULE(builtInMinutes) },
|
|
11997
|
+
{ ALT: () => SUBRULE(builtInSeconds) },
|
|
11998
|
+
{ ALT: () => SUBRULE(builtInTimezone) },
|
|
11999
|
+
{ ALT: () => SUBRULE(builtInTz) },
|
|
12000
|
+
{ ALT: () => SUBRULE(builtInNow) },
|
|
12001
|
+
{ ALT: () => SUBRULE(builtInUuid) },
|
|
12002
|
+
{ ALT: () => SUBRULE(builtInStruuid) },
|
|
12003
|
+
{ ALT: () => SUBRULE(builtInMd5) },
|
|
12004
|
+
{ ALT: () => SUBRULE(builtInSha1) },
|
|
12005
|
+
{ ALT: () => SUBRULE(builtInSha256) },
|
|
12006
|
+
{ ALT: () => SUBRULE(builtInSha384) },
|
|
12007
|
+
{ ALT: () => SUBRULE(builtInSha512) },
|
|
12008
|
+
{ ALT: () => SUBRULE(builtInCoalesce) },
|
|
12009
|
+
{ ALT: () => SUBRULE(builtInIf) },
|
|
12010
|
+
{ ALT: () => SUBRULE(builtInStrlang) },
|
|
12011
|
+
{ ALT: () => SUBRULE(builtInStrdt) },
|
|
12012
|
+
{ ALT: () => SUBRULE(builtInSameterm) },
|
|
12013
|
+
{ ALT: () => SUBRULE(builtInIsiri) },
|
|
12014
|
+
{ ALT: () => SUBRULE(builtInIsuri) },
|
|
12015
|
+
{ ALT: () => SUBRULE(builtInIsblank) },
|
|
12016
|
+
{ ALT: () => SUBRULE(builtInIsliteral) },
|
|
12017
|
+
{ ALT: () => SUBRULE(builtInIsnumeric) },
|
|
12018
|
+
{ ALT: () => SUBRULE(regexExpression) },
|
|
12019
|
+
{ ALT: () => SUBRULE(existsFunc) },
|
|
12020
|
+
{ ALT: () => SUBRULE(notExistsFunc) }
|
|
12021
|
+
];
|
|
12211
12022
|
}
|
|
12212
|
-
var
|
|
12213
|
-
|
|
12214
|
-
|
|
12215
|
-
|
|
12216
|
-
|
|
12217
|
-
|
|
12218
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12219
|
-
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12220
|
-
const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
|
|
12221
|
-
const propList = SUBRULE(propertyPathNotEmptyImpl, { subject: blankNode2 });
|
|
12222
|
-
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12223
|
-
return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
|
|
12224
|
-
blankNode2,
|
|
12225
|
-
propList,
|
|
12226
|
-
C.factory.sourceLocation(startToken, endToken)
|
|
12227
|
-
));
|
|
12228
|
-
},
|
|
12229
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12230
|
-
F2.printFilter(ast, () => PRINT("["));
|
|
12231
|
-
for (const triple of ast.triples) {
|
|
12232
|
-
HANDLE_LOC(triple, () => {
|
|
12233
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12234
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
12235
|
-
} else {
|
|
12236
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12237
|
-
}
|
|
12238
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
12239
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12240
|
-
});
|
|
12241
|
-
}
|
|
12242
|
-
F2.printFilter(ast, () => PRINT("]"));
|
|
12023
|
+
var builtInCall = {
|
|
12024
|
+
name: "builtInCall",
|
|
12025
|
+
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
12026
|
+
const cached = cache.get(builtInCall);
|
|
12027
|
+
if (cached) {
|
|
12028
|
+
return OR(cached);
|
|
12243
12029
|
}
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
|
|
12248
|
-
|
|
12249
|
-
|
|
12250
|
-
|
|
12251
|
-
|
|
12252
|
-
|
|
12253
|
-
|
|
12254
|
-
|
|
12255
|
-
|
|
12256
|
-
|
|
12257
|
-
|
|
12258
|
-
|
|
12259
|
-
|
|
12260
|
-
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12030
|
+
const builtIns = builtInCallList(SUBRULE);
|
|
12031
|
+
cache.set(builtInCall, builtIns);
|
|
12032
|
+
return OR(builtIns);
|
|
12033
|
+
}
|
|
12034
|
+
};
|
|
12035
|
+
var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
|
|
12036
|
+
var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
|
|
12037
|
+
var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
|
|
12038
|
+
var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
|
|
12039
|
+
var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
|
|
12040
|
+
var aggregateCount = {
|
|
12041
|
+
name: unCapitalize(BuildinCalls_exports.count.name),
|
|
12042
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
12043
|
+
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
12044
|
+
CONSUME(symbols_exports.LParen);
|
|
12045
|
+
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
12046
|
+
const expressionVal = OR([
|
|
12047
|
+
{ ALT: () => {
|
|
12048
|
+
const starToken = CONSUME(symbols_exports.star);
|
|
12049
|
+
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
12050
|
+
} },
|
|
12051
|
+
{ ALT: () => SUBRULE(expression) }
|
|
12052
|
+
]);
|
|
12053
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12054
|
+
return ACTION(() => {
|
|
12055
|
+
const F2 = C.factory;
|
|
12056
|
+
if (C.factory.isWildcard(expressionVal)) {
|
|
12057
|
+
return F2.aggregate(
|
|
12058
|
+
operatorToken.image,
|
|
12059
|
+
Boolean(distinctToken),
|
|
12060
|
+
expressionVal,
|
|
12061
|
+
void 0,
|
|
12062
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
12063
|
+
);
|
|
12264
12064
|
}
|
|
12265
|
-
|
|
12266
|
-
|
|
12267
|
-
|
|
12268
|
-
|
|
12269
|
-
|
|
12270
|
-
|
|
12271
|
-
|
|
12272
|
-
|
|
12273
|
-
name: "whereClause",
|
|
12274
|
-
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12275
|
-
const where2 = OPTION(() => CONSUME(where));
|
|
12276
|
-
const group = SUBRULE(groupGraphPattern, void 0);
|
|
12277
|
-
return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
|
|
12278
|
-
},
|
|
12279
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12280
|
-
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12281
|
-
SUBRULE(groupGraphPattern, ast.val, void 0);
|
|
12065
|
+
return F2.aggregate(
|
|
12066
|
+
operatorToken.image,
|
|
12067
|
+
Boolean(distinctToken),
|
|
12068
|
+
expressionVal,
|
|
12069
|
+
void 0,
|
|
12070
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
12071
|
+
);
|
|
12072
|
+
});
|
|
12282
12073
|
}
|
|
12283
12074
|
};
|
|
12284
|
-
var
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12075
|
+
var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
|
|
12076
|
+
var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
|
|
12077
|
+
var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
|
|
12078
|
+
var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
|
|
12079
|
+
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
12080
|
+
var aggregateGroup_concat = {
|
|
12081
|
+
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
12082
|
+
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
12083
|
+
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
12084
|
+
CONSUME(symbols_exports.LParen);
|
|
12085
|
+
const distinctToken = OPTION1(() => CONSUME(distinct));
|
|
12086
|
+
const expr = SUBRULE(expression);
|
|
12087
|
+
const sep = OPTION2(() => {
|
|
12088
|
+
CONSUME(symbols_exports.semi);
|
|
12089
|
+
CONSUME(separator);
|
|
12090
|
+
CONSUME(symbols_exports.equal);
|
|
12091
|
+
return SUBRULE(string);
|
|
12092
|
+
});
|
|
12093
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12094
|
+
return ACTION(() => {
|
|
12095
|
+
const F2 = C.factory;
|
|
12096
|
+
return F2.aggregate(
|
|
12097
|
+
operatorToken.image,
|
|
12098
|
+
Boolean(distinctToken),
|
|
12099
|
+
expr,
|
|
12100
|
+
sep?.value ?? " ",
|
|
12101
|
+
F2.sourceLocation(operatorToken, closeToken)
|
|
12102
|
+
);
|
|
12103
|
+
});
|
|
12104
|
+
}
|
|
12105
|
+
};
|
|
12106
|
+
var aggregate = {
|
|
12107
|
+
name: "aggregate",
|
|
12108
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
12109
|
+
const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
|
|
12110
|
+
ACTION(() => C.parseMode.add("inAggregate"));
|
|
12111
|
+
const result = OR([
|
|
12112
|
+
{ ALT: () => SUBRULE(aggregateCount) },
|
|
12113
|
+
{ ALT: () => SUBRULE(aggregateSum) },
|
|
12114
|
+
{ ALT: () => SUBRULE(aggregateMin) },
|
|
12115
|
+
{ ALT: () => SUBRULE(aggregateMax) },
|
|
12116
|
+
{ ALT: () => SUBRULE(aggregateAvg) },
|
|
12117
|
+
{ ALT: () => SUBRULE(aggregateSample) },
|
|
12118
|
+
{ ALT: () => SUBRULE(aggregateGroup_concat) }
|
|
12291
12119
|
]);
|
|
12292
|
-
|
|
12293
|
-
|
|
12120
|
+
ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
|
|
12121
|
+
ACTION(() => {
|
|
12122
|
+
if (!C.parseMode.has("canParseAggregate")) {
|
|
12123
|
+
throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
|
|
12124
|
+
}
|
|
12125
|
+
if (C.parseMode.has("inAggregate")) {
|
|
12126
|
+
throw new Error("An aggregate function is not allowed within an aggregate function.");
|
|
12127
|
+
}
|
|
12128
|
+
});
|
|
12129
|
+
return result;
|
|
12294
12130
|
},
|
|
12295
12131
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12296
|
-
F2.printFilter(ast, () =>
|
|
12297
|
-
|
|
12298
|
-
|
|
12132
|
+
F2.printFilter(ast, () => {
|
|
12133
|
+
PRINT_WORD(ast.aggregation, "(");
|
|
12134
|
+
if (ast.distinct) {
|
|
12135
|
+
PRINT_WORD("DISTINCT");
|
|
12136
|
+
}
|
|
12137
|
+
});
|
|
12138
|
+
const arg = ast.expression[0];
|
|
12139
|
+
if (F2.isWildcard(arg)) {
|
|
12140
|
+
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
12141
|
+
} else {
|
|
12142
|
+
SUBRULE(expression, arg);
|
|
12299
12143
|
}
|
|
12300
|
-
F2.
|
|
12144
|
+
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
12145
|
+
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
12146
|
+
}
|
|
12147
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12301
12148
|
}
|
|
12302
12149
|
};
|
|
12303
|
-
|
|
12304
|
-
|
|
12150
|
+
|
|
12151
|
+
// lib/grammar/general.ts
|
|
12152
|
+
var prologue = {
|
|
12153
|
+
name: "prologue",
|
|
12154
|
+
impl: ({ SUBRULE, MANY, OR }) => () => {
|
|
12155
|
+
const result = [];
|
|
12156
|
+
MANY(() => OR([
|
|
12157
|
+
{ ALT: () => result.push(SUBRULE(baseDecl2)) },
|
|
12158
|
+
// TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
|
|
12159
|
+
// We might need to check this.
|
|
12160
|
+
{ ALT: () => result.push(SUBRULE(prefixDecl2)) }
|
|
12161
|
+
]));
|
|
12162
|
+
return result;
|
|
12163
|
+
},
|
|
12305
12164
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12306
|
-
|
|
12307
|
-
|
|
12308
|
-
context
|
|
12309
|
-
|
|
12310
|
-
|
|
12311
|
-
|
|
12312
|
-
solutionModifiers: ast.solutionModifiers,
|
|
12313
|
-
values: ast.values,
|
|
12314
|
-
distinct: ast.distinct,
|
|
12315
|
-
reduced: ast.reduced
|
|
12316
|
-
}, ast.loc), void 0);
|
|
12317
|
-
} else if (ast.subType === "group") {
|
|
12318
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12319
|
-
} else if (ast.subType === "bgp") {
|
|
12320
|
-
SUBRULE(triplesBlock, ast, void 0);
|
|
12321
|
-
} else {
|
|
12322
|
-
SUBRULE(graphPatternNotTriples, ast, void 0);
|
|
12165
|
+
for (const context of ast) {
|
|
12166
|
+
if (F2.isContextDefinitionBase(context)) {
|
|
12167
|
+
SUBRULE(baseDecl2, context);
|
|
12168
|
+
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
12169
|
+
SUBRULE(prefixDecl2, context);
|
|
12170
|
+
}
|
|
12323
12171
|
}
|
|
12324
12172
|
}
|
|
12325
12173
|
};
|
|
12326
|
-
var
|
|
12327
|
-
name: "
|
|
12328
|
-
impl: ({ ACTION,
|
|
12329
|
-
const
|
|
12330
|
-
const
|
|
12331
|
-
|
|
12332
|
-
|
|
12333
|
-
|
|
12334
|
-
|
|
12335
|
-
|
|
12336
|
-
|
|
12337
|
-
|
|
12338
|
-
|
|
12339
|
-
|
|
12340
|
-
|
|
12341
|
-
|
|
12174
|
+
var baseDecl2 = {
|
|
12175
|
+
name: "baseDecl",
|
|
12176
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12177
|
+
const base = CONSUME(baseDecl);
|
|
12178
|
+
const val = SUBRULE(iriFull);
|
|
12179
|
+
return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
|
|
12180
|
+
},
|
|
12181
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12182
|
+
F2.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
12183
|
+
SUBRULE(iri2, ast.value);
|
|
12184
|
+
}
|
|
12185
|
+
};
|
|
12186
|
+
var prefixDecl2 = {
|
|
12187
|
+
name: "prefixDecl",
|
|
12188
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12189
|
+
const prefix = CONSUME(prefixDecl);
|
|
12190
|
+
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
12191
|
+
const value = SUBRULE(iriFull);
|
|
12192
|
+
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
12193
|
+
},
|
|
12194
|
+
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
12195
|
+
F2.printFilter(ast, () => {
|
|
12196
|
+
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
12342
12197
|
});
|
|
12343
|
-
|
|
12344
|
-
return patterns;
|
|
12198
|
+
SUBRULE(iri2, ast.value);
|
|
12345
12199
|
}
|
|
12346
12200
|
};
|
|
12347
|
-
var
|
|
12348
|
-
name: "
|
|
12201
|
+
var verb = {
|
|
12202
|
+
name: "verb",
|
|
12349
12203
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12350
|
-
{ ALT: () => SUBRULE(
|
|
12351
|
-
{ ALT: () => SUBRULE(
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
|
|
12355
|
-
|
|
12356
|
-
|
|
12357
|
-
{
|
|
12204
|
+
{ ALT: () => SUBRULE(varOrIri) },
|
|
12205
|
+
{ ALT: () => SUBRULE(verbA) }
|
|
12206
|
+
])
|
|
12207
|
+
};
|
|
12208
|
+
var varOrTerm = {
|
|
12209
|
+
name: "varOrTerm",
|
|
12210
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12211
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12212
|
+
{ ALT: () => SUBRULE(graphTerm) }
|
|
12358
12213
|
]),
|
|
12359
|
-
gImpl: ({ SUBRULE }) => (ast) => {
|
|
12360
|
-
|
|
12361
|
-
|
|
12362
|
-
case "union":
|
|
12363
|
-
SUBRULE(groupOrUnionGraphPattern, ast, void 0);
|
|
12364
|
-
break;
|
|
12365
|
-
case "optional":
|
|
12366
|
-
SUBRULE(optionalGraphPattern, ast, void 0);
|
|
12367
|
-
break;
|
|
12368
|
-
case "minus":
|
|
12369
|
-
SUBRULE(minusGraphPattern, ast, void 0);
|
|
12370
|
-
break;
|
|
12371
|
-
case "graph":
|
|
12372
|
-
SUBRULE(graphGraphPattern, ast, void 0);
|
|
12373
|
-
break;
|
|
12374
|
-
case "service":
|
|
12375
|
-
SUBRULE(serviceGraphPattern, ast, void 0);
|
|
12376
|
-
break;
|
|
12377
|
-
case "filter":
|
|
12378
|
-
SUBRULE(filter3, ast, void 0);
|
|
12379
|
-
break;
|
|
12380
|
-
case "bind":
|
|
12381
|
-
SUBRULE(bind2, ast, void 0);
|
|
12382
|
-
break;
|
|
12383
|
-
case "values":
|
|
12384
|
-
SUBRULE(inlineData, ast, void 0);
|
|
12385
|
-
break;
|
|
12214
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12215
|
+
if (F2.isTermVariable(ast)) {
|
|
12216
|
+
return SUBRULE(var_, ast);
|
|
12386
12217
|
}
|
|
12218
|
+
return SUBRULE(graphTerm, ast);
|
|
12387
12219
|
}
|
|
12388
12220
|
};
|
|
12389
|
-
var
|
|
12390
|
-
name: "
|
|
12391
|
-
impl: ({
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
},
|
|
12396
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12397
|
-
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12398
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12399
|
-
}
|
|
12221
|
+
var varOrIri = {
|
|
12222
|
+
name: "varOrIri",
|
|
12223
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12224
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12225
|
+
{ ALT: () => SUBRULE(iri2) }
|
|
12226
|
+
])
|
|
12400
12227
|
};
|
|
12401
|
-
var
|
|
12402
|
-
name: "
|
|
12403
|
-
impl: ({ ACTION,
|
|
12404
|
-
const
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12228
|
+
var var_ = {
|
|
12229
|
+
name: "var",
|
|
12230
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
12231
|
+
const varToken = OR([
|
|
12232
|
+
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
12233
|
+
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
12234
|
+
]);
|
|
12235
|
+
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
12408
12236
|
},
|
|
12409
|
-
gImpl: ({
|
|
12410
|
-
F2.printFilter(ast, () => PRINT_WORD(
|
|
12411
|
-
SUBRULE(varOrTerm, ast.name, void 0);
|
|
12412
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12237
|
+
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12238
|
+
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
12413
12239
|
}
|
|
12414
12240
|
};
|
|
12415
|
-
var
|
|
12416
|
-
name: "
|
|
12417
|
-
impl: ({ ACTION,
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
})
|
|
12434
|
-
|
|
12435
|
-
|
|
12241
|
+
var graphTerm = {
|
|
12242
|
+
name: "graphTerm",
|
|
12243
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
12244
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12245
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
12246
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
12247
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
12248
|
+
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
12249
|
+
{ ALT: () => {
|
|
12250
|
+
const tokenNil = CONSUME(terminals_exports.nil);
|
|
12251
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
12252
|
+
} }
|
|
12253
|
+
]),
|
|
12254
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12255
|
+
if (F2.isTermNamed(ast)) {
|
|
12256
|
+
SUBRULE(iri2, ast);
|
|
12257
|
+
} else if (F2.isTermLiteral(ast)) {
|
|
12258
|
+
SUBRULE(rdfLiteral, ast);
|
|
12259
|
+
} else if (F2.isTermBlank(ast)) {
|
|
12260
|
+
SUBRULE(blankNode, ast);
|
|
12261
|
+
}
|
|
12436
12262
|
}
|
|
12437
12263
|
};
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
const expressionVal = SUBRULE(expression, void 0);
|
|
12444
|
-
CONSUME(as);
|
|
12445
|
-
const variable = SUBRULE(var_, void 0);
|
|
12446
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12447
|
-
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
12448
|
-
},
|
|
12449
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12450
|
-
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12451
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12452
|
-
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12453
|
-
SUBRULE(var_, ast.variable, void 0);
|
|
12454
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12455
|
-
}
|
|
12264
|
+
|
|
12265
|
+
// lib/grammar/propertyPaths.ts
|
|
12266
|
+
var path = {
|
|
12267
|
+
name: "path",
|
|
12268
|
+
impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
|
|
12456
12269
|
};
|
|
12457
|
-
var
|
|
12458
|
-
name: "
|
|
12459
|
-
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12475
|
-
for (const variable of variables) {
|
|
12476
|
-
if (mapping[variable] === void 0) {
|
|
12477
|
-
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
12478
|
-
} else {
|
|
12479
|
-
SUBRULE(graphNodePath, mapping[variable], void 0);
|
|
12270
|
+
var pathGenerator = {
|
|
12271
|
+
name: "path",
|
|
12272
|
+
gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
|
|
12273
|
+
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
12274
|
+
SUBRULE(iri2, ast);
|
|
12275
|
+
} else {
|
|
12276
|
+
F2.printFilter(ast, () => braces && PRINT("("));
|
|
12277
|
+
switch (ast.subType) {
|
|
12278
|
+
case "|":
|
|
12279
|
+
case "/": {
|
|
12280
|
+
const [head2, ...tail] = ast.items;
|
|
12281
|
+
SUBRULE(pathGenerator, head2, braces);
|
|
12282
|
+
for (const val of tail) {
|
|
12283
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12284
|
+
SUBRULE(pathGenerator, val, braces);
|
|
12285
|
+
}
|
|
12286
|
+
break;
|
|
12480
12287
|
}
|
|
12288
|
+
case "^":
|
|
12289
|
+
F2.printFilter(ast, () => PRINT("^"));
|
|
12290
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12291
|
+
break;
|
|
12292
|
+
case "?":
|
|
12293
|
+
case "*":
|
|
12294
|
+
case "+":
|
|
12295
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12296
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12297
|
+
break;
|
|
12298
|
+
case "!":
|
|
12299
|
+
F2.printFilter(ast, () => PRINT("!"));
|
|
12300
|
+
F2.printFilter(ast, () => PRINT("("));
|
|
12301
|
+
SUBRULE(pathGenerator, ast.items[0], false);
|
|
12302
|
+
F2.printFilter(ast, () => PRINT(")"));
|
|
12303
|
+
break;
|
|
12481
12304
|
}
|
|
12482
|
-
F2.printFilter(ast, () =>
|
|
12305
|
+
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
12483
12306
|
}
|
|
12484
|
-
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12485
12307
|
}
|
|
12486
12308
|
};
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
{
|
|
12491
|
-
|
|
12309
|
+
function pathChainHelper(name, SEP, subType, subRule) {
|
|
12310
|
+
return {
|
|
12311
|
+
name,
|
|
12312
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
|
|
12313
|
+
const head2 = SUBRULE1(subRule);
|
|
12314
|
+
let tailEnd = head2;
|
|
12315
|
+
const tail = [];
|
|
12316
|
+
MANY(() => {
|
|
12317
|
+
CONSUME(SEP);
|
|
12318
|
+
tailEnd = SUBRULE2(subRule);
|
|
12319
|
+
tail.push(tailEnd);
|
|
12320
|
+
});
|
|
12321
|
+
return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
|
|
12322
|
+
}
|
|
12323
|
+
};
|
|
12324
|
+
}
|
|
12325
|
+
var pathEltOrInverse = {
|
|
12326
|
+
name: "pathEltOrInverse",
|
|
12327
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
|
|
12328
|
+
{ ALT: () => SUBRULE1(pathElt) },
|
|
12329
|
+
{ ALT: () => {
|
|
12330
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12331
|
+
const item = SUBRULE2(pathElt);
|
|
12332
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12333
|
+
} }
|
|
12492
12334
|
])
|
|
12493
12335
|
};
|
|
12494
|
-
var
|
|
12495
|
-
|
|
12496
|
-
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12501
|
-
|
|
12502
|
-
ACTION(() => {
|
|
12503
|
-
res.push({ [varVal.value]: value });
|
|
12504
|
-
});
|
|
12505
|
-
});
|
|
12506
|
-
const close = CONSUME(symbols_exports.RCurly);
|
|
12507
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
12336
|
+
var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
|
|
12337
|
+
var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
|
|
12338
|
+
var pathElt = {
|
|
12339
|
+
name: "pathElt",
|
|
12340
|
+
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
12341
|
+
const item = SUBRULE(pathPrimary);
|
|
12342
|
+
const modification = OPTION(() => SUBRULE(pathMod));
|
|
12343
|
+
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
12508
12344
|
}
|
|
12509
12345
|
};
|
|
12510
|
-
var
|
|
12511
|
-
name: "
|
|
12512
|
-
impl: ({
|
|
12513
|
-
|
|
12514
|
-
|
|
12515
|
-
|
|
12516
|
-
|
|
12517
|
-
|
|
12518
|
-
|
|
12519
|
-
|
|
12520
|
-
|
|
12521
|
-
|
|
12522
|
-
|
|
12523
|
-
|
|
12524
|
-
|
|
12346
|
+
var pathMod = {
|
|
12347
|
+
name: "pathMod",
|
|
12348
|
+
impl: ({ CONSUME, OR }) => () => OR([
|
|
12349
|
+
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
12350
|
+
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
12351
|
+
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
12352
|
+
])
|
|
12353
|
+
};
|
|
12354
|
+
var pathPrimary = {
|
|
12355
|
+
name: "pathPrimary",
|
|
12356
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
12357
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12358
|
+
{ ALT: () => SUBRULE(verbA) },
|
|
12359
|
+
{ ALT: () => SUBRULE(pathNegatedPropertySet) },
|
|
12360
|
+
{ ALT: () => {
|
|
12361
|
+
CONSUME(symbols_exports.LParen);
|
|
12362
|
+
const resRecursive = SUBRULE(path);
|
|
12363
|
+
CONSUME(symbols_exports.RParen);
|
|
12364
|
+
return resRecursive;
|
|
12365
|
+
} }
|
|
12366
|
+
])
|
|
12367
|
+
};
|
|
12368
|
+
var pathNegatedPropertySet = {
|
|
12369
|
+
name: "pathNegatedPropertySet",
|
|
12370
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
12371
|
+
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
12525
12372
|
return OR([
|
|
12526
12373
|
{ ALT: () => {
|
|
12527
|
-
const
|
|
12528
|
-
|
|
12529
|
-
MANY1(() => {
|
|
12530
|
-
CONSUME2(terminals_exports.nil);
|
|
12531
|
-
res.push({});
|
|
12532
|
-
});
|
|
12533
|
-
const close = CONSUME1(symbols_exports.RCurly);
|
|
12534
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
12374
|
+
const noAlternative = SUBRULE1(pathOneInPropertySet);
|
|
12375
|
+
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
12535
12376
|
} },
|
|
12536
12377
|
{ ALT: () => {
|
|
12537
|
-
const open =
|
|
12538
|
-
|
|
12539
|
-
|
|
12378
|
+
const open = CONSUME(symbols_exports.LParen);
|
|
12379
|
+
const head2 = SUBRULE2(pathOneInPropertySet);
|
|
12380
|
+
const tail = [];
|
|
12381
|
+
MANY(() => {
|
|
12382
|
+
CONSUME(symbols_exports.pipe);
|
|
12383
|
+
const item = SUBRULE3(pathOneInPropertySet);
|
|
12384
|
+
tail.push(item);
|
|
12540
12385
|
});
|
|
12541
|
-
|
|
12542
|
-
|
|
12543
|
-
|
|
12544
|
-
|
|
12545
|
-
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
ACTION(() => {
|
|
12553
|
-
currentRow[vars[parsedValues].value] = value;
|
|
12554
|
-
parsedValues++;
|
|
12555
|
-
});
|
|
12556
|
-
});
|
|
12557
|
-
CONSUME2(symbols_exports.RParen);
|
|
12558
|
-
ACTION(() => {
|
|
12559
|
-
res.push(currentRow);
|
|
12560
|
-
if (vars.length !== parsedValues) {
|
|
12561
|
-
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
12562
|
-
}
|
|
12563
|
-
});
|
|
12386
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12387
|
+
return ACTION(() => {
|
|
12388
|
+
const F2 = C.factory;
|
|
12389
|
+
if (tail.length === 0) {
|
|
12390
|
+
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
12391
|
+
}
|
|
12392
|
+
return F2.path(
|
|
12393
|
+
"!",
|
|
12394
|
+
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
12395
|
+
F2.sourceLocation(exclamation2, close)
|
|
12396
|
+
);
|
|
12564
12397
|
});
|
|
12565
|
-
const close = CONSUME2(symbols_exports.RCurly);
|
|
12566
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
12567
12398
|
} }
|
|
12568
12399
|
]);
|
|
12569
12400
|
}
|
|
12570
12401
|
};
|
|
12571
|
-
var
|
|
12572
|
-
name: "
|
|
12573
|
-
impl: ({
|
|
12574
|
-
{ ALT: () =>
|
|
12575
|
-
{ ALT: () =>
|
|
12576
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
12577
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
12402
|
+
var pathOneInPropertySet = {
|
|
12403
|
+
name: "pathOneInPropertySet",
|
|
12404
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
12405
|
+
{ ALT: () => SUBRULE1(iri2) },
|
|
12406
|
+
{ ALT: () => SUBRULE1(verbA) },
|
|
12578
12407
|
{ ALT: () => {
|
|
12579
|
-
CONSUME(
|
|
12580
|
-
|
|
12408
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12409
|
+
const item = OR2([
|
|
12410
|
+
{ ALT: () => SUBRULE2(iri2) },
|
|
12411
|
+
{ ALT: () => SUBRULE2(verbA) }
|
|
12412
|
+
]);
|
|
12413
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12581
12414
|
} }
|
|
12582
12415
|
])
|
|
12583
12416
|
};
|
|
12584
|
-
var minusGraphPattern = {
|
|
12585
|
-
name: "minusGraphPattern",
|
|
12586
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12587
|
-
const minus2 = CONSUME(minus);
|
|
12588
|
-
const group = SUBRULE(groupGraphPattern, void 0);
|
|
12589
|
-
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
12590
|
-
},
|
|
12591
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12592
|
-
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12593
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12594
|
-
}
|
|
12595
|
-
};
|
|
12596
|
-
var groupOrUnionGraphPattern = {
|
|
12597
|
-
name: "groupOrUnionGraphPattern",
|
|
12598
|
-
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
12599
|
-
const groups = [];
|
|
12600
|
-
const group = SUBRULE1(groupGraphPattern, void 0);
|
|
12601
|
-
groups.push(group);
|
|
12602
|
-
MANY(() => {
|
|
12603
|
-
CONSUME(union);
|
|
12604
|
-
const group2 = SUBRULE2(groupGraphPattern, void 0);
|
|
12605
|
-
groups.push(group2);
|
|
12606
|
-
});
|
|
12607
|
-
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
12608
|
-
groups,
|
|
12609
|
-
C.factory.sourceLocation(group, groups.at(-1))
|
|
12610
|
-
));
|
|
12611
|
-
},
|
|
12612
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12613
|
-
if (F2.isPatternUnion(ast)) {
|
|
12614
|
-
const [head2, ...tail] = ast.patterns;
|
|
12615
|
-
SUBRULE(groupGraphPattern, head2, void 0);
|
|
12616
|
-
for (const pattern of tail) {
|
|
12617
|
-
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
12618
|
-
SUBRULE(groupGraphPattern, pattern, void 0);
|
|
12619
|
-
}
|
|
12620
|
-
} else {
|
|
12621
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12622
|
-
}
|
|
12623
|
-
}
|
|
12624
|
-
};
|
|
12625
|
-
var filter3 = {
|
|
12626
|
-
name: "filter",
|
|
12627
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12628
|
-
const filterToken = CONSUME(filter2);
|
|
12629
|
-
const expression2 = SUBRULE(constraint, void 0);
|
|
12630
|
-
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
12631
|
-
},
|
|
12632
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12633
|
-
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
12634
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12635
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12636
|
-
}
|
|
12637
|
-
};
|
|
12638
|
-
var constraint = {
|
|
12639
|
-
name: "constraint",
|
|
12640
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12641
|
-
{ ALT: () => SUBRULE(brackettedExpression, void 0) },
|
|
12642
|
-
{ ALT: () => SUBRULE(builtInCall, void 0) },
|
|
12643
|
-
{ ALT: () => SUBRULE(functionCall, void 0) }
|
|
12644
|
-
])
|
|
12645
|
-
};
|
|
12646
|
-
var functionCall = {
|
|
12647
|
-
name: "functionCall",
|
|
12648
|
-
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
12649
|
-
const func = SUBRULE(iri2, void 0);
|
|
12650
|
-
const args = SUBRULE(argList, void 0);
|
|
12651
|
-
return ACTION(() => C.factory.expressionFunctionCall(
|
|
12652
|
-
func,
|
|
12653
|
-
args.val.args,
|
|
12654
|
-
args.val.distinct,
|
|
12655
|
-
C.factory.sourceLocation(func, args)
|
|
12656
|
-
));
|
|
12657
|
-
}
|
|
12658
|
-
};
|
|
12659
12417
|
|
|
12660
|
-
// lib/
|
|
12661
|
-
function
|
|
12662
|
-
return {
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
12669
|
-
|
|
12670
|
-
|
|
12418
|
+
// lib/grammar/tripleBlock.ts
|
|
12419
|
+
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
12420
|
+
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12421
|
+
const triples = [];
|
|
12422
|
+
let parsedDot = true;
|
|
12423
|
+
let dotToken;
|
|
12424
|
+
AT_LEAST_ONE({
|
|
12425
|
+
GATE: () => parsedDot,
|
|
12426
|
+
DEF: () => {
|
|
12427
|
+
parsedDot = false;
|
|
12428
|
+
const template = SUBRULE(triplesSameSubjectSubrule);
|
|
12429
|
+
ACTION(() => {
|
|
12430
|
+
triples.push(...template);
|
|
12431
|
+
});
|
|
12432
|
+
OPTION(() => {
|
|
12433
|
+
dotToken = CONSUME(symbols_exports.dot);
|
|
12434
|
+
parsedDot = true;
|
|
12435
|
+
});
|
|
12436
|
+
}
|
|
12437
|
+
});
|
|
12438
|
+
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
12671
12439
|
};
|
|
12672
12440
|
}
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
|
|
12441
|
+
var triplesBlock = {
|
|
12442
|
+
name: "triplesBlock",
|
|
12443
|
+
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12444
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12445
|
+
for (const [index, triple] of ast.triples.entries()) {
|
|
12446
|
+
HANDLE_LOC(triple, () => {
|
|
12447
|
+
const nextTriple = ast.triples.at(index);
|
|
12448
|
+
if (F2.isTripleCollection(triple)) {
|
|
12449
|
+
SUBRULE(graphNodePath, triple);
|
|
12450
|
+
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
12451
|
+
} else {
|
|
12452
|
+
SUBRULE(graphNodePath, triple.subject);
|
|
12453
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12454
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12455
|
+
} else {
|
|
12456
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12457
|
+
}
|
|
12458
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12459
|
+
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12460
|
+
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
12461
|
+
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12462
|
+
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12463
|
+
} else {
|
|
12464
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12465
|
+
}
|
|
12466
|
+
}
|
|
12467
|
+
});
|
|
12684
12468
|
}
|
|
12685
|
-
}
|
|
12686
|
-
}
|
|
12687
|
-
function
|
|
12469
|
+
}
|
|
12470
|
+
};
|
|
12471
|
+
function triplesSameSubjectImpl(name, allowPaths) {
|
|
12688
12472
|
return {
|
|
12689
|
-
name
|
|
12690
|
-
impl: ({ ACTION,
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
|
|
12473
|
+
name,
|
|
12474
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12475
|
+
{ ALT: () => {
|
|
12476
|
+
const subject = SUBRULE(varOrTerm);
|
|
12477
|
+
const res = SUBRULE(
|
|
12478
|
+
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
12479
|
+
ACTION(() => C.factory.dematerialized(subject))
|
|
12480
|
+
);
|
|
12481
|
+
return ACTION(() => {
|
|
12482
|
+
if (res.length > 0) {
|
|
12483
|
+
res[0].subject = subject;
|
|
12484
|
+
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
12485
|
+
}
|
|
12486
|
+
return res;
|
|
12487
|
+
});
|
|
12488
|
+
} },
|
|
12489
|
+
{ ALT: () => {
|
|
12490
|
+
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
12491
|
+
const restNode = SUBRULE(
|
|
12492
|
+
allowPaths ? propertyListPath : propertyList,
|
|
12493
|
+
ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
|
|
12494
|
+
);
|
|
12495
|
+
return ACTION(() => {
|
|
12496
|
+
if (restNode.length === 0) {
|
|
12497
|
+
return [subjectNode];
|
|
12498
|
+
}
|
|
12499
|
+
restNode[0].subject = subjectNode;
|
|
12500
|
+
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
12501
|
+
return restNode;
|
|
12502
|
+
});
|
|
12503
|
+
} }
|
|
12504
|
+
])
|
|
12701
12505
|
};
|
|
12702
12506
|
}
|
|
12703
|
-
|
|
12507
|
+
var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
|
|
12508
|
+
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
12509
|
+
var triplesTemplate = {
|
|
12510
|
+
name: "triplesTemplate",
|
|
12511
|
+
impl: triplesDotSeperated(triplesSameSubject)
|
|
12512
|
+
};
|
|
12513
|
+
function propertyListImpl(name, allowPaths) {
|
|
12704
12514
|
return {
|
|
12705
|
-
name
|
|
12706
|
-
impl: ({
|
|
12707
|
-
const operator = CONSUME(func);
|
|
12708
|
-
CONSUME(symbols_exports.LParen);
|
|
12709
|
-
const arg = SUBRULE(var_, void 0);
|
|
12710
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12711
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12712
|
-
}
|
|
12515
|
+
name,
|
|
12516
|
+
impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
|
|
12713
12517
|
};
|
|
12714
12518
|
}
|
|
12715
|
-
|
|
12519
|
+
var propertyList = propertyListImpl("propertyList", false);
|
|
12520
|
+
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
12521
|
+
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
12716
12522
|
return {
|
|
12717
|
-
name
|
|
12718
|
-
impl: ({ ACTION, CONSUME,
|
|
12719
|
-
const
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12523
|
+
name,
|
|
12524
|
+
impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
|
|
12525
|
+
const result = [];
|
|
12526
|
+
let parsedSemi = true;
|
|
12527
|
+
AT_LEAST_ONE({
|
|
12528
|
+
GATE: () => parsedSemi,
|
|
12529
|
+
DEF: () => {
|
|
12530
|
+
parsedSemi = false;
|
|
12531
|
+
const predicate = allowPaths ? OR1([
|
|
12532
|
+
{ ALT: () => SUBRULE1(verbPath) },
|
|
12533
|
+
{ ALT: () => SUBRULE1(verbSimple) }
|
|
12534
|
+
]) : SUBRULE1(verb);
|
|
12535
|
+
const triples = SUBRULE1(
|
|
12536
|
+
allowPaths ? objectListPath : objectList,
|
|
12537
|
+
subject,
|
|
12538
|
+
predicate
|
|
12539
|
+
);
|
|
12540
|
+
MANY2(() => {
|
|
12541
|
+
CONSUME(symbols_exports.semi);
|
|
12542
|
+
parsedSemi = true;
|
|
12543
|
+
});
|
|
12544
|
+
ACTION(() => {
|
|
12545
|
+
result.push(...triples);
|
|
12546
|
+
});
|
|
12547
|
+
}
|
|
12548
|
+
});
|
|
12549
|
+
return result;
|
|
12732
12550
|
}
|
|
12733
12551
|
};
|
|
12734
12552
|
}
|
|
12735
|
-
|
|
12553
|
+
var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
|
|
12554
|
+
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12555
|
+
var verbPath = {
|
|
12556
|
+
name: "verbPath",
|
|
12557
|
+
impl: ({ SUBRULE }) => () => SUBRULE(path)
|
|
12558
|
+
};
|
|
12559
|
+
var verbSimple = {
|
|
12560
|
+
name: "verbSimple",
|
|
12561
|
+
impl: ({ SUBRULE }) => () => SUBRULE(var_)
|
|
12562
|
+
};
|
|
12563
|
+
function objectListImpl(name, allowPaths) {
|
|
12736
12564
|
return {
|
|
12737
|
-
name
|
|
12738
|
-
impl: ({ ACTION,
|
|
12739
|
-
const
|
|
12740
|
-
|
|
12741
|
-
|
|
12565
|
+
name,
|
|
12566
|
+
impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
|
|
12567
|
+
const objects = [];
|
|
12568
|
+
AT_LEAST_ONE_SEP({
|
|
12569
|
+
SEP: symbols_exports.comma,
|
|
12570
|
+
DEF: () => {
|
|
12571
|
+
const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
|
|
12572
|
+
ACTION(() => {
|
|
12573
|
+
objects.push(objectTriple);
|
|
12574
|
+
});
|
|
12575
|
+
}
|
|
12576
|
+
});
|
|
12577
|
+
return objects;
|
|
12742
12578
|
}
|
|
12743
12579
|
};
|
|
12744
12580
|
}
|
|
12745
|
-
|
|
12581
|
+
var objectList = objectListImpl("objectList", false);
|
|
12582
|
+
var objectListPath = objectListImpl("objectListPath", true);
|
|
12583
|
+
function objectImpl(name, allowPaths) {
|
|
12746
12584
|
return {
|
|
12747
|
-
name
|
|
12748
|
-
impl: ({ ACTION,
|
|
12749
|
-
const
|
|
12750
|
-
|
|
12751
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
12585
|
+
name,
|
|
12586
|
+
impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
|
|
12587
|
+
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
12588
|
+
return ACTION(() => C.factory.triple(subject, predicate, node));
|
|
12752
12589
|
}
|
|
12753
12590
|
};
|
|
12754
12591
|
}
|
|
12755
|
-
|
|
12592
|
+
var object = objectImpl("object", false);
|
|
12593
|
+
var objectPath = objectImpl("objectPath", true);
|
|
12594
|
+
function collectionImpl(name, allowPaths) {
|
|
12756
12595
|
return {
|
|
12757
|
-
name
|
|
12758
|
-
impl: ({ ACTION,
|
|
12759
|
-
const
|
|
12760
|
-
CONSUME(symbols_exports.LParen);
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
12764
|
-
const arg3 = OPTION(() => {
|
|
12765
|
-
CONSUME2(symbols_exports.comma);
|
|
12766
|
-
return SUBRULE3(expression, void 0);
|
|
12596
|
+
name,
|
|
12597
|
+
impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
|
|
12598
|
+
const terms = [];
|
|
12599
|
+
const startToken = CONSUME(symbols_exports.LParen);
|
|
12600
|
+
AT_LEAST_ONE(() => {
|
|
12601
|
+
terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
|
|
12767
12602
|
});
|
|
12768
|
-
const
|
|
12769
|
-
return ACTION(() =>
|
|
12770
|
-
|
|
12771
|
-
|
|
12772
|
-
|
|
12773
|
-
|
|
12603
|
+
const endToken = CONSUME(symbols_exports.RParen);
|
|
12604
|
+
return ACTION(() => {
|
|
12605
|
+
const F2 = C.factory;
|
|
12606
|
+
const triples = [];
|
|
12607
|
+
const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
|
|
12608
|
+
const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
|
|
12609
|
+
const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
|
|
12610
|
+
const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12611
|
+
let iterHead = listHead;
|
|
12612
|
+
for (const [index, term] of terms.entries()) {
|
|
12613
|
+
const lastInList = index === terms.length - 1;
|
|
12614
|
+
const headTriple = F2.triple(
|
|
12615
|
+
iterHead,
|
|
12616
|
+
predFirst,
|
|
12617
|
+
term
|
|
12618
|
+
);
|
|
12619
|
+
triples.push(headTriple);
|
|
12620
|
+
if (lastInList) {
|
|
12621
|
+
const nilTriple = F2.triple(iterHead, predRest, predNil);
|
|
12622
|
+
triples.push(nilTriple);
|
|
12623
|
+
} else {
|
|
12624
|
+
const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12625
|
+
const linkTriple = F2.triple(iterHead, predRest, tail);
|
|
12626
|
+
triples.push(linkTriple);
|
|
12627
|
+
iterHead = tail;
|
|
12628
|
+
}
|
|
12629
|
+
}
|
|
12630
|
+
return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
|
|
12631
|
+
});
|
|
12632
|
+
},
|
|
12633
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12634
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12635
|
+
for (const [idx, triple] of ast.triples.entries()) {
|
|
12636
|
+
if (idx % 2 === 0) {
|
|
12637
|
+
SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
|
|
12638
|
+
}
|
|
12639
|
+
}
|
|
12640
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12774
12641
|
}
|
|
12775
12642
|
};
|
|
12776
12643
|
}
|
|
12777
|
-
|
|
12644
|
+
var collection = collectionImpl("collection", false);
|
|
12645
|
+
var collectionPath = collectionImpl("collectionPath", true);
|
|
12646
|
+
function triplesNodeImpl(name, allowPaths) {
|
|
12778
12647
|
return {
|
|
12779
|
-
name
|
|
12780
|
-
impl: ({
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
|
|
12784
|
-
|
|
12785
|
-
SUBRULE3,
|
|
12786
|
-
SUBRULE4,
|
|
12787
|
-
CONSUME1,
|
|
12788
|
-
OPTION,
|
|
12789
|
-
CONSUME2,
|
|
12790
|
-
CONSUME3
|
|
12791
|
-
}) => (C) => {
|
|
12792
|
-
const operator = CONSUME(func);
|
|
12793
|
-
CONSUME(symbols_exports.LParen);
|
|
12794
|
-
const arg1 = SUBRULE1(expression, void 0);
|
|
12795
|
-
CONSUME1(symbols_exports.comma);
|
|
12796
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
12797
|
-
CONSUME2(symbols_exports.comma);
|
|
12798
|
-
const arg3 = SUBRULE3(expression, void 0);
|
|
12799
|
-
const arg4 = OPTION(() => {
|
|
12800
|
-
CONSUME3(symbols_exports.comma);
|
|
12801
|
-
return SUBRULE4(expression, void 0);
|
|
12802
|
-
});
|
|
12803
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12804
|
-
return ACTION(() => C.factory.expressionOperation(
|
|
12805
|
-
operator.image,
|
|
12806
|
-
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
12807
|
-
C.factory.sourceLocation(operator, close)
|
|
12808
|
-
));
|
|
12809
|
-
}
|
|
12648
|
+
name,
|
|
12649
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12650
|
+
{ ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
|
|
12651
|
+
{ ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
|
|
12652
|
+
]),
|
|
12653
|
+
gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
|
|
12810
12654
|
};
|
|
12811
12655
|
}
|
|
12812
|
-
|
|
12656
|
+
var triplesNode = triplesNodeImpl("triplesNode", false);
|
|
12657
|
+
var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
|
|
12658
|
+
function blankNodePropertyListImpl(name, allowPaths) {
|
|
12659
|
+
const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
|
|
12813
12660
|
return {
|
|
12814
|
-
name
|
|
12661
|
+
name,
|
|
12815
12662
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12816
|
-
const
|
|
12817
|
-
const
|
|
12818
|
-
|
|
12819
|
-
|
|
12820
|
-
|
|
12821
|
-
|
|
12663
|
+
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12664
|
+
const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
|
|
12665
|
+
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12666
|
+
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12667
|
+
return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
|
|
12668
|
+
blankNode2,
|
|
12669
|
+
propList,
|
|
12670
|
+
C.factory.sourceLocation(startToken, endToken)
|
|
12822
12671
|
));
|
|
12672
|
+
},
|
|
12673
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12674
|
+
F2.printFilter(ast, () => PRINT("["));
|
|
12675
|
+
for (const triple of ast.triples) {
|
|
12676
|
+
HANDLE_LOC(triple, () => {
|
|
12677
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12678
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12679
|
+
} else {
|
|
12680
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12681
|
+
}
|
|
12682
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12683
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12684
|
+
});
|
|
12685
|
+
}
|
|
12686
|
+
F2.printFilter(ast, () => PRINT("]"));
|
|
12823
12687
|
}
|
|
12824
12688
|
};
|
|
12825
12689
|
}
|
|
12826
|
-
|
|
12690
|
+
var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
|
|
12691
|
+
var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
|
|
12692
|
+
function graphNodeImpl(name, allowPaths) {
|
|
12693
|
+
const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
|
|
12827
12694
|
return {
|
|
12828
|
-
name
|
|
12829
|
-
impl: ({
|
|
12830
|
-
|
|
12831
|
-
|
|
12832
|
-
|
|
12833
|
-
|
|
12834
|
-
|
|
12835
|
-
|
|
12836
|
-
|
|
12837
|
-
|
|
12838
|
-
|
|
12839
|
-
|
|
12840
|
-
|
|
12841
|
-
|
|
12695
|
+
name,
|
|
12696
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12697
|
+
{ ALT: () => SUBRULE(varOrTerm) },
|
|
12698
|
+
{
|
|
12699
|
+
GATE: () => C.parseMode.has("canCreateBlankNodes"),
|
|
12700
|
+
ALT: () => SUBRULE(triplesNodeRule)
|
|
12701
|
+
}
|
|
12702
|
+
]),
|
|
12703
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12704
|
+
if (F2.isTerm(ast)) {
|
|
12705
|
+
SUBRULE(varOrTerm, ast);
|
|
12706
|
+
} else {
|
|
12707
|
+
SUBRULE(triplesNodeRule, ast);
|
|
12708
|
+
}
|
|
12842
12709
|
}
|
|
12843
12710
|
};
|
|
12844
12711
|
}
|
|
12712
|
+
var graphNode = graphNodeImpl("graphNode", false);
|
|
12713
|
+
var graphNodePath = graphNodeImpl("graphNodePath", true);
|
|
12845
12714
|
|
|
12846
|
-
// lib/grammar/
|
|
12847
|
-
var
|
|
12848
|
-
|
|
12849
|
-
|
|
12850
|
-
|
|
12851
|
-
|
|
12852
|
-
|
|
12853
|
-
|
|
12854
|
-
|
|
12855
|
-
|
|
12856
|
-
|
|
12857
|
-
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
12858
|
-
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
12859
|
-
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
12860
|
-
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
12861
|
-
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
12862
|
-
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
12863
|
-
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
12864
|
-
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
12865
|
-
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
12866
|
-
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
12867
|
-
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
12868
|
-
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
12869
|
-
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
12870
|
-
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
12871
|
-
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
12872
|
-
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
12873
|
-
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
12874
|
-
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
12875
|
-
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
12876
|
-
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
12877
|
-
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
12878
|
-
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
12879
|
-
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
12880
|
-
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
12881
|
-
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
12882
|
-
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
12883
|
-
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
12884
|
-
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
12885
|
-
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
12886
|
-
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
12887
|
-
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
12888
|
-
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
12889
|
-
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
12890
|
-
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
12891
|
-
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
12892
|
-
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
12893
|
-
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
12894
|
-
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
12895
|
-
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
12896
|
-
function builtInCallList(SUBRULE) {
|
|
12897
|
-
return [
|
|
12898
|
-
{ ALT: () => SUBRULE(aggregate, void 0) },
|
|
12899
|
-
{ ALT: () => SUBRULE(builtInStr, void 0) },
|
|
12900
|
-
{ ALT: () => SUBRULE(builtInLang, void 0) },
|
|
12901
|
-
{ ALT: () => SUBRULE(builtInLangmatches, void 0) },
|
|
12902
|
-
{ ALT: () => SUBRULE(builtInDatatype, void 0) },
|
|
12903
|
-
{ ALT: () => SUBRULE(builtInBound, void 0) },
|
|
12904
|
-
{ ALT: () => SUBRULE(builtInIri, void 0) },
|
|
12905
|
-
{ ALT: () => SUBRULE(builtInUri, void 0) },
|
|
12906
|
-
{ ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
|
|
12907
|
-
{ ALT: () => SUBRULE(builtInRand, void 0) },
|
|
12908
|
-
{ ALT: () => SUBRULE(builtInAbs, void 0) },
|
|
12909
|
-
{ ALT: () => SUBRULE(builtInCeil, void 0) },
|
|
12910
|
-
{ ALT: () => SUBRULE(builtInFloor, void 0) },
|
|
12911
|
-
{ ALT: () => SUBRULE(builtInRound, void 0) },
|
|
12912
|
-
{ ALT: () => SUBRULE(builtInConcat, void 0) },
|
|
12913
|
-
{ ALT: () => SUBRULE(substringExpression, void 0) },
|
|
12914
|
-
{ ALT: () => SUBRULE(builtInStrlen, void 0) },
|
|
12915
|
-
{ ALT: () => SUBRULE(strReplaceExpression, void 0) },
|
|
12916
|
-
{ ALT: () => SUBRULE(builtInUcase, void 0) },
|
|
12917
|
-
{ ALT: () => SUBRULE(builtInLcase, void 0) },
|
|
12918
|
-
{ ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
|
|
12919
|
-
{ ALT: () => SUBRULE(builtInContains, void 0) },
|
|
12920
|
-
{ ALT: () => SUBRULE(builtInStrstarts, void 0) },
|
|
12921
|
-
{ ALT: () => SUBRULE(builtInStrends, void 0) },
|
|
12922
|
-
{ ALT: () => SUBRULE(builtInStrbefore, void 0) },
|
|
12923
|
-
{ ALT: () => SUBRULE(builtInStrafter, void 0) },
|
|
12924
|
-
{ ALT: () => SUBRULE(builtInYear, void 0) },
|
|
12925
|
-
{ ALT: () => SUBRULE(builtInMonth, void 0) },
|
|
12926
|
-
{ ALT: () => SUBRULE(builtInDay, void 0) },
|
|
12927
|
-
{ ALT: () => SUBRULE(builtInHours, void 0) },
|
|
12928
|
-
{ ALT: () => SUBRULE(builtInMinutes, void 0) },
|
|
12929
|
-
{ ALT: () => SUBRULE(builtInSeconds, void 0) },
|
|
12930
|
-
{ ALT: () => SUBRULE(builtInTimezone, void 0) },
|
|
12931
|
-
{ ALT: () => SUBRULE(builtInTz, void 0) },
|
|
12932
|
-
{ ALT: () => SUBRULE(builtInNow, void 0) },
|
|
12933
|
-
{ ALT: () => SUBRULE(builtInUuid, void 0) },
|
|
12934
|
-
{ ALT: () => SUBRULE(builtInStruuid, void 0) },
|
|
12935
|
-
{ ALT: () => SUBRULE(builtInMd5, void 0) },
|
|
12936
|
-
{ ALT: () => SUBRULE(builtInSha1, void 0) },
|
|
12937
|
-
{ ALT: () => SUBRULE(builtInSha256, void 0) },
|
|
12938
|
-
{ ALT: () => SUBRULE(builtInSha384, void 0) },
|
|
12939
|
-
{ ALT: () => SUBRULE(builtInSha512, void 0) },
|
|
12940
|
-
{ ALT: () => SUBRULE(builtInCoalesce, void 0) },
|
|
12941
|
-
{ ALT: () => SUBRULE(builtInIf, void 0) },
|
|
12942
|
-
{ ALT: () => SUBRULE(builtInStrlang, void 0) },
|
|
12943
|
-
{ ALT: () => SUBRULE(builtInStrdt, void 0) },
|
|
12944
|
-
{ ALT: () => SUBRULE(builtInSameterm, void 0) },
|
|
12945
|
-
{ ALT: () => SUBRULE(builtInIsiri, void 0) },
|
|
12946
|
-
{ ALT: () => SUBRULE(builtInIsuri, void 0) },
|
|
12947
|
-
{ ALT: () => SUBRULE(builtInIsblank, void 0) },
|
|
12948
|
-
{ ALT: () => SUBRULE(builtInIsliteral, void 0) },
|
|
12949
|
-
{ ALT: () => SUBRULE(builtInIsnumeric, void 0) },
|
|
12950
|
-
{ ALT: () => SUBRULE(regexExpression, void 0) },
|
|
12951
|
-
{ ALT: () => SUBRULE(existsFunc, void 0) },
|
|
12952
|
-
{ ALT: () => SUBRULE(notExistsFunc, void 0) }
|
|
12953
|
-
];
|
|
12954
|
-
}
|
|
12955
|
-
var builtInCall = {
|
|
12956
|
-
name: "builtInCall",
|
|
12957
|
-
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
12958
|
-
const cached = cache.get(builtInCall);
|
|
12959
|
-
if (cached) {
|
|
12960
|
-
return OR(cached);
|
|
12961
|
-
}
|
|
12962
|
-
const builtIns = builtInCallList(SUBRULE);
|
|
12963
|
-
cache.set(builtInCall, builtIns);
|
|
12964
|
-
return OR(builtIns);
|
|
12715
|
+
// lib/grammar/whereClause.ts
|
|
12716
|
+
var whereClause = {
|
|
12717
|
+
name: "whereClause",
|
|
12718
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12719
|
+
const where2 = OPTION(() => CONSUME(where));
|
|
12720
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12721
|
+
return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
|
|
12722
|
+
},
|
|
12723
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12724
|
+
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12725
|
+
SUBRULE(groupGraphPattern, ast.val);
|
|
12965
12726
|
}
|
|
12966
12727
|
};
|
|
12967
|
-
var
|
|
12968
|
-
|
|
12969
|
-
|
|
12970
|
-
|
|
12971
|
-
|
|
12972
|
-
|
|
12973
|
-
|
|
12974
|
-
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
12975
|
-
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
12976
|
-
CONSUME(symbols_exports.LParen);
|
|
12977
|
-
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
12978
|
-
const expressionVal = OR([
|
|
12979
|
-
{ ALT: () => {
|
|
12980
|
-
const starToken = CONSUME(symbols_exports.star);
|
|
12981
|
-
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
12982
|
-
} },
|
|
12983
|
-
{ ALT: () => SUBRULE(expression, void 0) }
|
|
12728
|
+
var groupGraphPattern = {
|
|
12729
|
+
name: "groupGraphPattern",
|
|
12730
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
|
|
12731
|
+
const open = CONSUME(symbols_exports.LCurly);
|
|
12732
|
+
const patterns = OR([
|
|
12733
|
+
{ ALT: () => [SUBRULE(subSelect)] },
|
|
12734
|
+
{ ALT: () => SUBRULE(groupGraphPatternSub) }
|
|
12984
12735
|
]);
|
|
12985
|
-
const
|
|
12986
|
-
return ACTION(() =>
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
12991
|
-
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12736
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
12737
|
+
return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
|
|
12738
|
+
},
|
|
12739
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12740
|
+
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
12741
|
+
for (const pattern of ast.patterns) {
|
|
12742
|
+
SUBRULE(generatePattern, pattern);
|
|
12743
|
+
}
|
|
12744
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12745
|
+
}
|
|
12746
|
+
};
|
|
12747
|
+
var generatePattern = {
|
|
12748
|
+
name: "generatePattern",
|
|
12749
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12750
|
+
if (ast.type === "query") {
|
|
12751
|
+
SUBRULE(query, F2.querySelect({
|
|
12752
|
+
context: [],
|
|
12753
|
+
datasets: F2.datasetClauses([], F2.sourceLocation()),
|
|
12754
|
+
where: ast.where,
|
|
12755
|
+
variables: ast.variables,
|
|
12756
|
+
solutionModifiers: ast.solutionModifiers,
|
|
12757
|
+
values: ast.values,
|
|
12758
|
+
distinct: ast.distinct,
|
|
12759
|
+
reduced: ast.reduced
|
|
12760
|
+
}, ast.loc));
|
|
12761
|
+
} else if (ast.subType === "group") {
|
|
12762
|
+
SUBRULE(groupGraphPattern, ast);
|
|
12763
|
+
} else if (ast.subType === "bgp") {
|
|
12764
|
+
SUBRULE(triplesBlock, ast);
|
|
12765
|
+
} else {
|
|
12766
|
+
SUBRULE(graphPatternNotTriples, ast);
|
|
12767
|
+
}
|
|
12768
|
+
}
|
|
12769
|
+
};
|
|
12770
|
+
var groupGraphPatternSub = {
|
|
12771
|
+
name: "groupGraphPatternSub",
|
|
12772
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
|
|
12773
|
+
const patterns = [];
|
|
12774
|
+
const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
|
|
12775
|
+
if (bgpPattern) {
|
|
12776
|
+
patterns.push(bgpPattern);
|
|
12777
|
+
}
|
|
12778
|
+
MANY(() => {
|
|
12779
|
+
const notTriples = SUBRULE(graphPatternNotTriples);
|
|
12780
|
+
patterns.push(notTriples);
|
|
12781
|
+
OPTION2(() => CONSUME(symbols_exports.dot));
|
|
12782
|
+
const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
|
|
12783
|
+
if (moreTriples) {
|
|
12784
|
+
patterns.push(moreTriples);
|
|
12785
|
+
}
|
|
12786
|
+
});
|
|
12787
|
+
ACTION(() => checkNote13(patterns));
|
|
12788
|
+
return patterns;
|
|
12789
|
+
}
|
|
12790
|
+
};
|
|
12791
|
+
var graphPatternNotTriples = {
|
|
12792
|
+
name: "graphPatternNotTriples",
|
|
12793
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12794
|
+
{ ALT: () => SUBRULE(groupOrUnionGraphPattern) },
|
|
12795
|
+
{ ALT: () => SUBRULE(optionalGraphPattern) },
|
|
12796
|
+
{ ALT: () => SUBRULE(minusGraphPattern) },
|
|
12797
|
+
{ ALT: () => SUBRULE(graphGraphPattern) },
|
|
12798
|
+
{ ALT: () => SUBRULE(serviceGraphPattern) },
|
|
12799
|
+
{ ALT: () => SUBRULE(filter3) },
|
|
12800
|
+
{ ALT: () => SUBRULE(bind2) },
|
|
12801
|
+
{ ALT: () => SUBRULE(inlineData) }
|
|
12802
|
+
]),
|
|
12803
|
+
gImpl: ({ SUBRULE }) => (ast) => {
|
|
12804
|
+
switch (ast.subType) {
|
|
12805
|
+
case "group":
|
|
12806
|
+
case "union":
|
|
12807
|
+
SUBRULE(groupOrUnionGraphPattern, ast);
|
|
12808
|
+
break;
|
|
12809
|
+
case "optional":
|
|
12810
|
+
SUBRULE(optionalGraphPattern, ast);
|
|
12811
|
+
break;
|
|
12812
|
+
case "minus":
|
|
12813
|
+
SUBRULE(minusGraphPattern, ast);
|
|
12814
|
+
break;
|
|
12815
|
+
case "graph":
|
|
12816
|
+
SUBRULE(graphGraphPattern, ast);
|
|
12817
|
+
break;
|
|
12818
|
+
case "service":
|
|
12819
|
+
SUBRULE(serviceGraphPattern, ast);
|
|
12820
|
+
break;
|
|
12821
|
+
case "filter":
|
|
12822
|
+
SUBRULE(filter3, ast);
|
|
12823
|
+
break;
|
|
12824
|
+
case "bind":
|
|
12825
|
+
SUBRULE(bind2, ast);
|
|
12826
|
+
break;
|
|
12827
|
+
case "values":
|
|
12828
|
+
SUBRULE(inlineData, ast);
|
|
12829
|
+
break;
|
|
12830
|
+
}
|
|
12831
|
+
}
|
|
12832
|
+
};
|
|
12833
|
+
var optionalGraphPattern = {
|
|
12834
|
+
name: "optionalGraphPattern",
|
|
12835
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12836
|
+
const optional2 = CONSUME(optional);
|
|
12837
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12838
|
+
return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
|
|
12839
|
+
},
|
|
12840
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12841
|
+
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12842
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12843
|
+
}
|
|
12844
|
+
};
|
|
12845
|
+
var graphGraphPattern = {
|
|
12846
|
+
name: "graphGraphPattern",
|
|
12847
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12848
|
+
const graph2 = CONSUME(graph_exports.graph);
|
|
12849
|
+
const name = SUBRULE(varOrIri);
|
|
12850
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12851
|
+
return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
|
|
12852
|
+
},
|
|
12853
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12854
|
+
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
12855
|
+
SUBRULE(varOrTerm, ast.name);
|
|
12856
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12857
|
+
}
|
|
12858
|
+
};
|
|
12859
|
+
var serviceGraphPattern = {
|
|
12860
|
+
name: "serviceGraphPattern",
|
|
12861
|
+
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
12862
|
+
const service2 = CONSUME(service);
|
|
12863
|
+
const silent2 = OPTION(() => {
|
|
12864
|
+
CONSUME(silent);
|
|
12865
|
+
return true;
|
|
12866
|
+
}) ?? false;
|
|
12867
|
+
const name = SUBRULE1(varOrIri);
|
|
12868
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
12869
|
+
return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
|
|
12870
|
+
},
|
|
12871
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12872
|
+
F2.printFilter(ast, () => {
|
|
12873
|
+
PRINT_WORD("SERVICE");
|
|
12874
|
+
if (ast.silent) {
|
|
12875
|
+
PRINT_WORD("SILENT");
|
|
12996
12876
|
}
|
|
12997
|
-
return F2.aggregate(
|
|
12998
|
-
operatorToken.image,
|
|
12999
|
-
Boolean(distinctToken),
|
|
13000
|
-
expressionVal,
|
|
13001
|
-
void 0,
|
|
13002
|
-
C.factory.sourceLocation(operatorToken, closeToken)
|
|
13003
|
-
);
|
|
13004
12877
|
});
|
|
12878
|
+
SUBRULE(varOrTerm, ast.name);
|
|
12879
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13005
12880
|
}
|
|
13006
12881
|
};
|
|
13007
|
-
var
|
|
13008
|
-
|
|
13009
|
-
|
|
13010
|
-
|
|
13011
|
-
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
13012
|
-
var aggregateGroup_concat = {
|
|
13013
|
-
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
13014
|
-
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
13015
|
-
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
12882
|
+
var bind2 = {
|
|
12883
|
+
name: "bind",
|
|
12884
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12885
|
+
const bind3 = CONSUME(bind);
|
|
13016
12886
|
CONSUME(symbols_exports.LParen);
|
|
13017
|
-
const
|
|
13018
|
-
|
|
13019
|
-
const
|
|
13020
|
-
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
12887
|
+
const expressionVal = SUBRULE(expression);
|
|
12888
|
+
CONSUME(as);
|
|
12889
|
+
const variable = SUBRULE(var_);
|
|
12890
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12891
|
+
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
12892
|
+
},
|
|
12893
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12894
|
+
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12895
|
+
SUBRULE(expression, ast.expression);
|
|
12896
|
+
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12897
|
+
SUBRULE(var_, ast.variable);
|
|
12898
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12899
|
+
}
|
|
12900
|
+
};
|
|
12901
|
+
var inlineData = {
|
|
12902
|
+
name: "inlineData",
|
|
12903
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12904
|
+
const values3 = CONSUME(values2);
|
|
12905
|
+
const datablock = SUBRULE(dataBlock);
|
|
12906
|
+
return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
|
|
12907
|
+
},
|
|
12908
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12909
|
+
const variables = Object.keys(ast.values[0]);
|
|
12910
|
+
F2.printFilter(ast, () => {
|
|
12911
|
+
PRINT_WORD("VALUES", "(");
|
|
12912
|
+
for (const variable of variables) {
|
|
12913
|
+
PRINT_WORD(`?${variable}`);
|
|
12914
|
+
}
|
|
12915
|
+
PRINT_WORD(")", "{");
|
|
13024
12916
|
});
|
|
13025
|
-
const
|
|
13026
|
-
|
|
13027
|
-
const
|
|
13028
|
-
|
|
13029
|
-
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
);
|
|
12917
|
+
for (const mapping of ast.values) {
|
|
12918
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12919
|
+
for (const variable of variables) {
|
|
12920
|
+
if (mapping[variable] === void 0) {
|
|
12921
|
+
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
12922
|
+
} else {
|
|
12923
|
+
SUBRULE(graphNodePath, mapping[variable]);
|
|
12924
|
+
}
|
|
12925
|
+
}
|
|
12926
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12927
|
+
}
|
|
12928
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12929
|
+
}
|
|
12930
|
+
};
|
|
12931
|
+
var dataBlock = {
|
|
12932
|
+
name: "dataBlock",
|
|
12933
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12934
|
+
{ ALT: () => SUBRULE(inlineDataOneVar) },
|
|
12935
|
+
{ ALT: () => SUBRULE(inlineDataFull) }
|
|
12936
|
+
])
|
|
12937
|
+
};
|
|
12938
|
+
var inlineDataOneVar = {
|
|
12939
|
+
name: "inlineDataOneVar",
|
|
12940
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
|
|
12941
|
+
const res = [];
|
|
12942
|
+
const varVal = SUBRULE(var_);
|
|
12943
|
+
CONSUME(symbols_exports.LCurly);
|
|
12944
|
+
MANY(() => {
|
|
12945
|
+
const value = SUBRULE(dataBlockValue);
|
|
12946
|
+
ACTION(() => {
|
|
12947
|
+
res.push({ [varVal.value]: value });
|
|
12948
|
+
});
|
|
13035
12949
|
});
|
|
12950
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
12951
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
13036
12952
|
}
|
|
13037
12953
|
};
|
|
13038
|
-
var
|
|
13039
|
-
name: "
|
|
13040
|
-
impl: ({
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13050
|
-
|
|
12954
|
+
var inlineDataFull = {
|
|
12955
|
+
name: "inlineDataFull",
|
|
12956
|
+
impl: ({
|
|
12957
|
+
ACTION,
|
|
12958
|
+
OR,
|
|
12959
|
+
MANY1,
|
|
12960
|
+
MANY2,
|
|
12961
|
+
MANY3,
|
|
12962
|
+
MANY4,
|
|
12963
|
+
SUBRULE,
|
|
12964
|
+
CONSUME1,
|
|
12965
|
+
CONSUME2
|
|
12966
|
+
}) => (C) => {
|
|
12967
|
+
const res = [];
|
|
12968
|
+
const vars = [];
|
|
12969
|
+
return OR([
|
|
12970
|
+
{ ALT: () => {
|
|
12971
|
+
const nil2 = CONSUME1(terminals_exports.nil);
|
|
12972
|
+
CONSUME1(symbols_exports.LCurly);
|
|
12973
|
+
MANY1(() => {
|
|
12974
|
+
CONSUME2(terminals_exports.nil);
|
|
12975
|
+
res.push({});
|
|
12976
|
+
});
|
|
12977
|
+
const close = CONSUME1(symbols_exports.RCurly);
|
|
12978
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
12979
|
+
} },
|
|
12980
|
+
{ ALT: () => {
|
|
12981
|
+
const open = CONSUME1(symbols_exports.LParen);
|
|
12982
|
+
MANY2(() => {
|
|
12983
|
+
vars.push(SUBRULE(var_));
|
|
12984
|
+
});
|
|
12985
|
+
CONSUME1(symbols_exports.RParen);
|
|
12986
|
+
CONSUME2(symbols_exports.LCurly);
|
|
12987
|
+
MANY3(() => {
|
|
12988
|
+
let parsedValues = 0;
|
|
12989
|
+
const currentRow = {};
|
|
12990
|
+
CONSUME2(symbols_exports.LParen);
|
|
12991
|
+
MANY4(() => {
|
|
12992
|
+
if (parsedValues >= vars.length) {
|
|
12993
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
|
|
12994
|
+
}
|
|
12995
|
+
const value = SUBRULE(dataBlockValue);
|
|
12996
|
+
ACTION(() => {
|
|
12997
|
+
currentRow[vars[parsedValues].value] = value;
|
|
12998
|
+
parsedValues++;
|
|
12999
|
+
});
|
|
13000
|
+
});
|
|
13001
|
+
CONSUME2(symbols_exports.RParen);
|
|
13002
|
+
ACTION(() => {
|
|
13003
|
+
res.push(currentRow);
|
|
13004
|
+
if (vars.length !== parsedValues) {
|
|
13005
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
13006
|
+
}
|
|
13007
|
+
});
|
|
13008
|
+
});
|
|
13009
|
+
const close = CONSUME2(symbols_exports.RCurly);
|
|
13010
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
13011
|
+
} }
|
|
13051
13012
|
]);
|
|
13052
|
-
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13013
|
+
}
|
|
13014
|
+
};
|
|
13015
|
+
var dataBlockValue = {
|
|
13016
|
+
name: "dataBlockValue",
|
|
13017
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
13018
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
13019
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
13020
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
13021
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
13022
|
+
{ ALT: () => {
|
|
13023
|
+
CONSUME(undef);
|
|
13024
|
+
return void 0;
|
|
13025
|
+
} }
|
|
13026
|
+
])
|
|
13027
|
+
};
|
|
13028
|
+
var minusGraphPattern = {
|
|
13029
|
+
name: "minusGraphPattern",
|
|
13030
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13031
|
+
const minus2 = CONSUME(minus);
|
|
13032
|
+
const group = SUBRULE(groupGraphPattern);
|
|
13033
|
+
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
13034
|
+
},
|
|
13035
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13036
|
+
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
13037
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13038
|
+
}
|
|
13039
|
+
};
|
|
13040
|
+
var groupOrUnionGraphPattern = {
|
|
13041
|
+
name: "groupOrUnionGraphPattern",
|
|
13042
|
+
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
13043
|
+
const groups = [];
|
|
13044
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
13045
|
+
groups.push(group);
|
|
13046
|
+
MANY(() => {
|
|
13047
|
+
CONSUME(union);
|
|
13048
|
+
const group2 = SUBRULE2(groupGraphPattern);
|
|
13049
|
+
groups.push(group2);
|
|
13060
13050
|
});
|
|
13061
|
-
return
|
|
13051
|
+
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
13052
|
+
groups,
|
|
13053
|
+
C.factory.sourceLocation(group, groups.at(-1))
|
|
13054
|
+
));
|
|
13062
13055
|
},
|
|
13063
13056
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13064
|
-
F2.
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13057
|
+
if (F2.isPatternUnion(ast)) {
|
|
13058
|
+
const [head2, ...tail] = ast.patterns;
|
|
13059
|
+
SUBRULE(groupGraphPattern, head2);
|
|
13060
|
+
for (const pattern of tail) {
|
|
13061
|
+
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
13062
|
+
SUBRULE(groupGraphPattern, pattern);
|
|
13068
13063
|
}
|
|
13069
|
-
});
|
|
13070
|
-
const arg = ast.expression[0];
|
|
13071
|
-
if (F2.isWildcard(arg)) {
|
|
13072
|
-
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13073
13064
|
} else {
|
|
13074
|
-
SUBRULE(
|
|
13075
|
-
}
|
|
13076
|
-
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
13077
|
-
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
13065
|
+
SUBRULE(groupGraphPattern, ast);
|
|
13078
13066
|
}
|
|
13067
|
+
}
|
|
13068
|
+
};
|
|
13069
|
+
var filter3 = {
|
|
13070
|
+
name: "filter",
|
|
13071
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13072
|
+
const filterToken = CONSUME(filter2);
|
|
13073
|
+
const expression2 = SUBRULE(constraint);
|
|
13074
|
+
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
13075
|
+
},
|
|
13076
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13077
|
+
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
13078
|
+
SUBRULE(expression, ast.expression);
|
|
13079
13079
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13080
13080
|
}
|
|
13081
13081
|
};
|
|
13082
|
+
var constraint = {
|
|
13083
|
+
name: "constraint",
|
|
13084
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13085
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
13086
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13087
|
+
{ ALT: () => SUBRULE(functionCall) }
|
|
13088
|
+
])
|
|
13089
|
+
};
|
|
13090
|
+
var functionCall = {
|
|
13091
|
+
name: "functionCall",
|
|
13092
|
+
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13093
|
+
const func = SUBRULE(iri2);
|
|
13094
|
+
const args = SUBRULE(argList);
|
|
13095
|
+
return ACTION(() => C.factory.expressionFunctionCall(
|
|
13096
|
+
func,
|
|
13097
|
+
args.val.args,
|
|
13098
|
+
args.val.distinct,
|
|
13099
|
+
C.factory.sourceLocation(func, args)
|
|
13100
|
+
));
|
|
13101
|
+
}
|
|
13102
|
+
};
|
|
13082
13103
|
|
|
13083
13104
|
// lib/grammar/expression.ts
|
|
13084
13105
|
var argList = {
|
|
@@ -13098,7 +13119,7 @@ var argList = {
|
|
|
13098
13119
|
AT_LEAST_ONE_SEP({
|
|
13099
13120
|
SEP: symbols_exports.comma,
|
|
13100
13121
|
DEF: () => {
|
|
13101
|
-
const arg = SUBRULE1(expression
|
|
13122
|
+
const arg = SUBRULE1(expression);
|
|
13102
13123
|
args.push(arg);
|
|
13103
13124
|
}
|
|
13104
13125
|
});
|
|
@@ -13115,11 +13136,11 @@ var argList = {
|
|
|
13115
13136
|
});
|
|
13116
13137
|
const [head2, ...tail] = ast.val.args;
|
|
13117
13138
|
if (head2) {
|
|
13118
|
-
SUBRULE(expression, head2
|
|
13139
|
+
SUBRULE(expression, head2);
|
|
13119
13140
|
}
|
|
13120
13141
|
for (const expr of tail) {
|
|
13121
13142
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13122
|
-
SUBRULE(expression, expr
|
|
13143
|
+
SUBRULE(expression, expr);
|
|
13123
13144
|
}
|
|
13124
13145
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13125
13146
|
}
|
|
@@ -13133,11 +13154,11 @@ var expressionList = {
|
|
|
13133
13154
|
} },
|
|
13134
13155
|
{ ALT: () => {
|
|
13135
13156
|
const open = CONSUME(symbols_exports.LParen);
|
|
13136
|
-
const expr1 = SUBRULE1(expression
|
|
13157
|
+
const expr1 = SUBRULE1(expression);
|
|
13137
13158
|
const args = [expr1];
|
|
13138
13159
|
MANY(() => {
|
|
13139
13160
|
CONSUME(symbols_exports.comma);
|
|
13140
|
-
const expr = SUBRULE2(expression
|
|
13161
|
+
const expr = SUBRULE2(expression);
|
|
13141
13162
|
args.push(expr);
|
|
13142
13163
|
});
|
|
13143
13164
|
const close = CONSUME(symbols_exports.RParen);
|
|
@@ -13149,15 +13170,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
|
|
|
13149
13170
|
var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
|
|
13150
13171
|
var expression = {
|
|
13151
13172
|
name: "expression",
|
|
13152
|
-
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression
|
|
13173
|
+
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
|
|
13153
13174
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13154
13175
|
if (F2.isTerm(ast)) {
|
|
13155
|
-
SUBRULE(varOrTerm, ast
|
|
13176
|
+
SUBRULE(varOrTerm, ast);
|
|
13156
13177
|
} else if (F2.isExpressionOperator(ast)) {
|
|
13157
13178
|
if (infixOperators.has(ast.operator)) {
|
|
13158
13179
|
const [left, ...right] = ast.args;
|
|
13159
13180
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13160
|
-
SUBRULE(expression, left
|
|
13181
|
+
SUBRULE(expression, left);
|
|
13161
13182
|
F2.printFilter(ast, () => {
|
|
13162
13183
|
if (ast.operator === "notin") {
|
|
13163
13184
|
PRINT_WORD("NOT IN");
|
|
@@ -13168,35 +13189,35 @@ var expression = {
|
|
|
13168
13189
|
}
|
|
13169
13190
|
});
|
|
13170
13191
|
if (right.length === 1) {
|
|
13171
|
-
SUBRULE(expression, right[0]
|
|
13192
|
+
SUBRULE(expression, right[0]);
|
|
13172
13193
|
} else {
|
|
13173
|
-
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc)
|
|
13194
|
+
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc));
|
|
13174
13195
|
}
|
|
13175
13196
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13176
13197
|
} else if (prefixOperator.has(ast.operator)) {
|
|
13177
13198
|
const [expr] = ast.args;
|
|
13178
13199
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator));
|
|
13179
|
-
SUBRULE(expression, expr
|
|
13200
|
+
SUBRULE(expression, expr);
|
|
13180
13201
|
} else {
|
|
13181
13202
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
|
|
13182
13203
|
const [head2, ...tail] = ast.args;
|
|
13183
13204
|
if (head2) {
|
|
13184
|
-
SUBRULE(expression, head2
|
|
13205
|
+
SUBRULE(expression, head2);
|
|
13185
13206
|
}
|
|
13186
13207
|
for (const arg of tail) {
|
|
13187
13208
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13188
|
-
SUBRULE(expression, arg
|
|
13209
|
+
SUBRULE(expression, arg);
|
|
13189
13210
|
}
|
|
13190
13211
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13191
13212
|
}
|
|
13192
13213
|
} else if (F2.isExpressionPatternOperation(ast)) {
|
|
13193
13214
|
const patterns = ast.args;
|
|
13194
13215
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
|
|
13195
|
-
SUBRULE(groupGraphPattern, patterns
|
|
13216
|
+
SUBRULE(groupGraphPattern, patterns);
|
|
13196
13217
|
} else if (F2.isExpressionFunctionCall(ast)) {
|
|
13197
|
-
SUBRULE(iriOrFunction, ast
|
|
13218
|
+
SUBRULE(iriOrFunction, ast);
|
|
13198
13219
|
} else if (F2.isExpressionAggregate(ast)) {
|
|
13199
|
-
SUBRULE(aggregate, ast
|
|
13220
|
+
SUBRULE(aggregate, ast);
|
|
13200
13221
|
}
|
|
13201
13222
|
}
|
|
13202
13223
|
};
|
|
@@ -13213,10 +13234,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
|
|
|
13213
13234
|
var conditionalOrExpression = {
|
|
13214
13235
|
name: "conditionalOrExpression",
|
|
13215
13236
|
impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
|
|
13216
|
-
() => SUBRULE1(conditionalAndExpression
|
|
13237
|
+
() => SUBRULE1(conditionalAndExpression),
|
|
13217
13238
|
() => {
|
|
13218
13239
|
CONSUME(symbols_exports.logicOr);
|
|
13219
|
-
const args = SUBRULE2(conditionalAndExpression
|
|
13240
|
+
const args = SUBRULE2(conditionalAndExpression);
|
|
13220
13241
|
return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
|
|
13221
13242
|
},
|
|
13222
13243
|
ACTION,
|
|
@@ -13226,10 +13247,10 @@ var conditionalOrExpression = {
|
|
|
13226
13247
|
var conditionalAndExpression = {
|
|
13227
13248
|
name: "conditionalAndExpression",
|
|
13228
13249
|
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
|
|
13229
|
-
() => SUBRULE1(valueLogical
|
|
13250
|
+
() => SUBRULE1(valueLogical),
|
|
13230
13251
|
() => {
|
|
13231
13252
|
CONSUME(symbols_exports.logicAnd);
|
|
13232
|
-
const arg = SUBRULE2(valueLogical
|
|
13253
|
+
const arg = SUBRULE2(valueLogical);
|
|
13233
13254
|
return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13234
13255
|
},
|
|
13235
13256
|
ACTION,
|
|
@@ -13238,12 +13259,12 @@ var conditionalAndExpression = {
|
|
|
13238
13259
|
};
|
|
13239
13260
|
var valueLogical = {
|
|
13240
13261
|
name: "valueLogical",
|
|
13241
|
-
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression
|
|
13262
|
+
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
|
|
13242
13263
|
};
|
|
13243
13264
|
var relationalExpression = {
|
|
13244
13265
|
name: "relationalExpression",
|
|
13245
13266
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
|
|
13246
|
-
const args1 = SUBRULE1(numericExpression
|
|
13267
|
+
const args1 = SUBRULE1(numericExpression);
|
|
13247
13268
|
const expression2 = OPTION(() => OR1([
|
|
13248
13269
|
{ ALT: () => {
|
|
13249
13270
|
const operator = OR2([
|
|
@@ -13254,7 +13275,7 @@ var relationalExpression = {
|
|
|
13254
13275
|
{ ALT: () => CONSUME(symbols_exports.lessThanEqual) },
|
|
13255
13276
|
{ ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
|
|
13256
13277
|
]);
|
|
13257
|
-
const expr = SUBRULE2(numericExpression
|
|
13278
|
+
const expr = SUBRULE2(numericExpression);
|
|
13258
13279
|
return ACTION(() => C.factory.expressionOperation(
|
|
13259
13280
|
operator.image,
|
|
13260
13281
|
[args1, expr],
|
|
@@ -13266,7 +13287,7 @@ var relationalExpression = {
|
|
|
13266
13287
|
{ ALT: () => CONSUME(in_) },
|
|
13267
13288
|
{ ALT: () => CONSUME(notIn) }
|
|
13268
13289
|
]);
|
|
13269
|
-
const args = SUBRULE1(expressionList
|
|
13290
|
+
const args = SUBRULE1(expressionList);
|
|
13270
13291
|
return ACTION(() => C.factory.expressionOperation(
|
|
13271
13292
|
operator.image,
|
|
13272
13293
|
[args1, ...args.val],
|
|
@@ -13279,25 +13300,25 @@ var relationalExpression = {
|
|
|
13279
13300
|
};
|
|
13280
13301
|
var numericExpression = {
|
|
13281
13302
|
name: "numericExpression",
|
|
13282
|
-
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression
|
|
13303
|
+
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
|
|
13283
13304
|
};
|
|
13284
13305
|
var additiveExpression = {
|
|
13285
13306
|
name: "additiveExpression",
|
|
13286
13307
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
|
|
13287
|
-
() => SUBRULE1(multiplicativeExpression
|
|
13308
|
+
() => SUBRULE1(multiplicativeExpression),
|
|
13288
13309
|
() => OR1([
|
|
13289
13310
|
{ ALT: () => {
|
|
13290
13311
|
const operator = OR2([
|
|
13291
13312
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13292
13313
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13293
13314
|
]);
|
|
13294
|
-
const arg = SUBRULE2(multiplicativeExpression
|
|
13315
|
+
const arg = SUBRULE2(multiplicativeExpression);
|
|
13295
13316
|
return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13296
13317
|
} },
|
|
13297
13318
|
{ ALT: () => {
|
|
13298
13319
|
const { operator, startInt } = OR3([
|
|
13299
13320
|
{ ALT: () => {
|
|
13300
|
-
const integer2 = SUBRULE(numericLiteralPositive
|
|
13321
|
+
const integer2 = SUBRULE(numericLiteralPositive);
|
|
13301
13322
|
return ACTION(() => {
|
|
13302
13323
|
integer2.value = integer2.value.replace(/^\+/u, "");
|
|
13303
13324
|
return {
|
|
@@ -13307,7 +13328,7 @@ var additiveExpression = {
|
|
|
13307
13328
|
});
|
|
13308
13329
|
} },
|
|
13309
13330
|
{ ALT: () => {
|
|
13310
|
-
const integer2 = SUBRULE(numericLiteralNegative
|
|
13331
|
+
const integer2 = SUBRULE(numericLiteralNegative);
|
|
13311
13332
|
return ACTION(() => {
|
|
13312
13333
|
integer2.value = integer2.value.replace(/^-/u, "");
|
|
13313
13334
|
return {
|
|
@@ -13324,7 +13345,7 @@ var additiveExpression = {
|
|
|
13324
13345
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13325
13346
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13326
13347
|
]);
|
|
13327
|
-
const innerExpr = SUBRULE1(unaryExpression
|
|
13348
|
+
const innerExpr = SUBRULE1(unaryExpression);
|
|
13328
13349
|
return ACTION(() => (leftInner) => C.factory.expressionOperation(
|
|
13329
13350
|
innerOperator.image,
|
|
13330
13351
|
[leftInner, innerExpr],
|
|
@@ -13348,13 +13369,13 @@ var additiveExpression = {
|
|
|
13348
13369
|
var multiplicativeExpression = {
|
|
13349
13370
|
name: "multiplicativeExpression",
|
|
13350
13371
|
impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
|
|
13351
|
-
() => SUBRULE1(unaryExpression
|
|
13372
|
+
() => SUBRULE1(unaryExpression),
|
|
13352
13373
|
() => {
|
|
13353
13374
|
const operator = OR([
|
|
13354
13375
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13355
13376
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13356
13377
|
]);
|
|
13357
|
-
const expr = SUBRULE2(unaryExpression
|
|
13378
|
+
const expr = SUBRULE2(unaryExpression);
|
|
13358
13379
|
return (left) => ({
|
|
13359
13380
|
type: "expression",
|
|
13360
13381
|
subType: "operation",
|
|
@@ -13370,14 +13391,14 @@ var multiplicativeExpression = {
|
|
|
13370
13391
|
var unaryExpression = {
|
|
13371
13392
|
name: "unaryExpression",
|
|
13372
13393
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
13373
|
-
{ ALT: () => SUBRULE1(primaryExpression
|
|
13394
|
+
{ ALT: () => SUBRULE1(primaryExpression) },
|
|
13374
13395
|
{ ALT: () => {
|
|
13375
13396
|
const operator = OR2([
|
|
13376
13397
|
{ ALT: () => CONSUME(symbols_exports.exclamation) },
|
|
13377
13398
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13378
13399
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13379
13400
|
]);
|
|
13380
|
-
const expr = SUBRULE2(primaryExpression
|
|
13401
|
+
const expr = SUBRULE2(primaryExpression);
|
|
13381
13402
|
return ACTION(() => ({
|
|
13382
13403
|
type: "expression",
|
|
13383
13404
|
subType: "operation",
|
|
@@ -13391,20 +13412,20 @@ var unaryExpression = {
|
|
|
13391
13412
|
var primaryExpression = {
|
|
13392
13413
|
name: "primaryExpression",
|
|
13393
13414
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13394
|
-
{ ALT: () => SUBRULE(brackettedExpression
|
|
13395
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13396
|
-
{ ALT: () => SUBRULE(iriOrFunction
|
|
13397
|
-
{ ALT: () => SUBRULE(rdfLiteral
|
|
13398
|
-
{ ALT: () => SUBRULE(numericLiteral
|
|
13399
|
-
{ ALT: () => SUBRULE(booleanLiteral
|
|
13400
|
-
{ ALT: () => SUBRULE(var_
|
|
13415
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
13416
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13417
|
+
{ ALT: () => SUBRULE(iriOrFunction) },
|
|
13418
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
13419
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
13420
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
13421
|
+
{ ALT: () => SUBRULE(var_) }
|
|
13401
13422
|
])
|
|
13402
13423
|
};
|
|
13403
13424
|
var brackettedExpression = {
|
|
13404
13425
|
name: "brackettedExpression",
|
|
13405
13426
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13406
13427
|
const open = CONSUME(symbols_exports.LParen);
|
|
13407
|
-
const expr = SUBRULE(expression
|
|
13428
|
+
const expr = SUBRULE(expression);
|
|
13408
13429
|
const close = CONSUME(symbols_exports.RParen);
|
|
13409
13430
|
return ACTION(() => {
|
|
13410
13431
|
expr.loc = C.factory.sourceLocation(open, close);
|
|
@@ -13415,9 +13436,9 @@ var brackettedExpression = {
|
|
|
13415
13436
|
var iriOrFunction = {
|
|
13416
13437
|
name: "iriOrFunction",
|
|
13417
13438
|
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
13418
|
-
const iriVal = SUBRULE(iri2
|
|
13439
|
+
const iriVal = SUBRULE(iri2);
|
|
13419
13440
|
const functionCall2 = OPTION(() => {
|
|
13420
|
-
const args = SUBRULE(argList
|
|
13441
|
+
const args = SUBRULE(argList);
|
|
13421
13442
|
return ACTION(() => {
|
|
13422
13443
|
const distinct2 = args.val.distinct;
|
|
13423
13444
|
if (!C.parseMode.has("canParseAggregate") && distinct2) {
|
|
@@ -13437,10 +13458,10 @@ var iriOrFunction = {
|
|
|
13437
13458
|
},
|
|
13438
13459
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13439
13460
|
if (F2.isTermNamed(ast)) {
|
|
13440
|
-
SUBRULE(iri2, ast
|
|
13461
|
+
SUBRULE(iri2, ast);
|
|
13441
13462
|
} else {
|
|
13442
|
-
SUBRULE(iri2, ast.function
|
|
13443
|
-
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc)
|
|
13463
|
+
SUBRULE(iri2, ast.function);
|
|
13464
|
+
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
|
|
13444
13465
|
}
|
|
13445
13466
|
}
|
|
13446
13467
|
};
|
|
@@ -13449,10 +13470,10 @@ var iriOrFunction = {
|
|
|
13449
13470
|
var solutionModifier = {
|
|
13450
13471
|
name: "solutionModifier",
|
|
13451
13472
|
impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
|
|
13452
|
-
const group = OPTION1(() => SUBRULE(groupClause
|
|
13453
|
-
const having2 = OPTION2(() => SUBRULE(havingClause
|
|
13454
|
-
const order2 = OPTION3(() => SUBRULE(orderClause
|
|
13455
|
-
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses
|
|
13473
|
+
const group = OPTION1(() => SUBRULE(groupClause));
|
|
13474
|
+
const having2 = OPTION2(() => SUBRULE(havingClause));
|
|
13475
|
+
const order2 = OPTION3(() => SUBRULE(orderClause));
|
|
13476
|
+
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
|
|
13456
13477
|
return ACTION(() => ({
|
|
13457
13478
|
...limitOffset && { limitOffset },
|
|
13458
13479
|
...group && { group },
|
|
@@ -13462,16 +13483,16 @@ var solutionModifier = {
|
|
|
13462
13483
|
},
|
|
13463
13484
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
13464
13485
|
if (ast.group) {
|
|
13465
|
-
SUBRULE(groupClause, ast.group
|
|
13486
|
+
SUBRULE(groupClause, ast.group);
|
|
13466
13487
|
}
|
|
13467
13488
|
if (ast.having) {
|
|
13468
|
-
SUBRULE(havingClause, ast.having
|
|
13489
|
+
SUBRULE(havingClause, ast.having);
|
|
13469
13490
|
}
|
|
13470
13491
|
if (ast.order) {
|
|
13471
|
-
SUBRULE(orderClause, ast.order
|
|
13492
|
+
SUBRULE(orderClause, ast.order);
|
|
13472
13493
|
}
|
|
13473
13494
|
if (ast.limitOffset) {
|
|
13474
|
-
SUBRULE(limitOffsetClauses, ast.limitOffset
|
|
13495
|
+
SUBRULE(limitOffsetClauses, ast.limitOffset);
|
|
13475
13496
|
}
|
|
13476
13497
|
}
|
|
13477
13498
|
};
|
|
@@ -13482,7 +13503,7 @@ var groupClause = {
|
|
|
13482
13503
|
const start = CONSUME(groupByGroup);
|
|
13483
13504
|
CONSUME(by);
|
|
13484
13505
|
AT_LEAST_ONE(() => {
|
|
13485
|
-
groupings.push(SUBRULE1(groupCondition
|
|
13506
|
+
groupings.push(SUBRULE1(groupCondition));
|
|
13486
13507
|
});
|
|
13487
13508
|
return ACTION(() => ({
|
|
13488
13509
|
type: "solutionModifier",
|
|
@@ -13495,12 +13516,12 @@ var groupClause = {
|
|
|
13495
13516
|
F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
|
|
13496
13517
|
for (const grouping of ast.groupings) {
|
|
13497
13518
|
if (F2.isExpression(grouping)) {
|
|
13498
|
-
SUBRULE(expression, grouping
|
|
13519
|
+
SUBRULE(expression, grouping);
|
|
13499
13520
|
} else {
|
|
13500
13521
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13501
|
-
SUBRULE(expression, grouping.value
|
|
13522
|
+
SUBRULE(expression, grouping.value);
|
|
13502
13523
|
F2.printFilter(ast, () => PRINT_WORDS("AS"));
|
|
13503
|
-
SUBRULE(var_, grouping.variable
|
|
13524
|
+
SUBRULE(var_, grouping.variable);
|
|
13504
13525
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13505
13526
|
}
|
|
13506
13527
|
}
|
|
@@ -13509,16 +13530,16 @@ var groupClause = {
|
|
|
13509
13530
|
var groupCondition = {
|
|
13510
13531
|
name: "groupCondition",
|
|
13511
13532
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
|
|
13512
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13513
|
-
{ ALT: () => SUBRULE(functionCall
|
|
13514
|
-
{ ALT: () => SUBRULE2(var_
|
|
13533
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13534
|
+
{ ALT: () => SUBRULE(functionCall) },
|
|
13535
|
+
{ ALT: () => SUBRULE2(var_) },
|
|
13515
13536
|
{
|
|
13516
13537
|
ALT: () => {
|
|
13517
13538
|
const open = CONSUME(symbols_exports.LParen);
|
|
13518
|
-
const expressionValue = SUBRULE(expression
|
|
13539
|
+
const expressionValue = SUBRULE(expression);
|
|
13519
13540
|
const variable = OPTION(() => {
|
|
13520
13541
|
CONSUME(as);
|
|
13521
|
-
return SUBRULE1(var_
|
|
13542
|
+
return SUBRULE1(var_);
|
|
13522
13543
|
});
|
|
13523
13544
|
const close = CONSUME(symbols_exports.RParen);
|
|
13524
13545
|
return ACTION(() => {
|
|
@@ -13542,7 +13563,7 @@ var havingClause = {
|
|
|
13542
13563
|
const expressions = [];
|
|
13543
13564
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13544
13565
|
AT_LEAST_ONE(() => {
|
|
13545
|
-
expressions.push(SUBRULE(havingCondition
|
|
13566
|
+
expressions.push(SUBRULE(havingCondition));
|
|
13546
13567
|
});
|
|
13547
13568
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13548
13569
|
return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
|
|
@@ -13550,13 +13571,13 @@ var havingClause = {
|
|
|
13550
13571
|
gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13551
13572
|
F2.printFilter(ast, () => PRINT_WORD("HAVING"));
|
|
13552
13573
|
for (const having2 of ast.having) {
|
|
13553
|
-
SUBRULE(expression, having2
|
|
13574
|
+
SUBRULE(expression, having2);
|
|
13554
13575
|
}
|
|
13555
13576
|
}
|
|
13556
13577
|
};
|
|
13557
13578
|
var havingCondition = {
|
|
13558
13579
|
name: "havingCondition",
|
|
13559
|
-
impl: ({ SUBRULE }) => () => SUBRULE(constraint
|
|
13580
|
+
impl: ({ SUBRULE }) => () => SUBRULE(constraint)
|
|
13560
13581
|
};
|
|
13561
13582
|
var orderClause = {
|
|
13562
13583
|
name: "orderClause",
|
|
@@ -13566,7 +13587,7 @@ var orderClause = {
|
|
|
13566
13587
|
const orderings = [];
|
|
13567
13588
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13568
13589
|
AT_LEAST_ONE(() => {
|
|
13569
|
-
orderings.push(SUBRULE1(orderCondition
|
|
13590
|
+
orderings.push(SUBRULE1(orderCondition));
|
|
13570
13591
|
});
|
|
13571
13592
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13572
13593
|
return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
|
|
@@ -13580,7 +13601,7 @@ var orderClause = {
|
|
|
13580
13601
|
F2.printFilter(ast, () => PRINT_WORDS("ASC"));
|
|
13581
13602
|
}
|
|
13582
13603
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13583
|
-
SUBRULE(expression, ordering.expression
|
|
13604
|
+
SUBRULE(expression, ordering.expression);
|
|
13584
13605
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13585
13606
|
}
|
|
13586
13607
|
}
|
|
@@ -13599,7 +13620,7 @@ var orderCondition = {
|
|
|
13599
13620
|
return [true, token];
|
|
13600
13621
|
} }
|
|
13601
13622
|
]);
|
|
13602
|
-
const expr = SUBRULE(brackettedExpression
|
|
13623
|
+
const expr = SUBRULE(brackettedExpression);
|
|
13603
13624
|
return ACTION(() => ({
|
|
13604
13625
|
expression: expr,
|
|
13605
13626
|
descending: descending[0],
|
|
@@ -13607,11 +13628,11 @@ var orderCondition = {
|
|
|
13607
13628
|
}));
|
|
13608
13629
|
} },
|
|
13609
13630
|
{ ALT: () => {
|
|
13610
|
-
const expr = SUBRULE(constraint
|
|
13631
|
+
const expr = SUBRULE(constraint);
|
|
13611
13632
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13612
13633
|
} },
|
|
13613
13634
|
{ ALT: () => {
|
|
13614
|
-
const expr = SUBRULE(var_
|
|
13635
|
+
const expr = SUBRULE(var_);
|
|
13615
13636
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13616
13637
|
} }
|
|
13617
13638
|
])
|
|
@@ -13620,8 +13641,8 @@ var limitOffsetClauses = {
|
|
|
13620
13641
|
name: "limitOffsetClauses",
|
|
13621
13642
|
impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
|
|
13622
13643
|
{ ALT: () => {
|
|
13623
|
-
const limit2 = SUBRULE1(limitClause
|
|
13624
|
-
const offset2 = OPTION1(() => SUBRULE1(offsetClause
|
|
13644
|
+
const limit2 = SUBRULE1(limitClause);
|
|
13645
|
+
const offset2 = OPTION1(() => SUBRULE1(offsetClause));
|
|
13625
13646
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13626
13647
|
limit2.val,
|
|
13627
13648
|
offset2?.val,
|
|
@@ -13629,8 +13650,8 @@ var limitOffsetClauses = {
|
|
|
13629
13650
|
));
|
|
13630
13651
|
} },
|
|
13631
13652
|
{ ALT: () => {
|
|
13632
|
-
const offset2 = SUBRULE2(offsetClause
|
|
13633
|
-
const limit2 = OPTION2(() => SUBRULE2(limitClause
|
|
13653
|
+
const offset2 = SUBRULE2(offsetClause);
|
|
13654
|
+
const limit2 = OPTION2(() => SUBRULE2(limitClause));
|
|
13634
13655
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13635
13656
|
limit2?.val,
|
|
13636
13657
|
offset2.val,
|
|
@@ -13668,22 +13689,22 @@ var offsetClause = {
|
|
|
13668
13689
|
}
|
|
13669
13690
|
};
|
|
13670
13691
|
|
|
13671
|
-
// lib/grammar/queryUnit
|
|
13692
|
+
// lib/grammar/queryUnit.ts
|
|
13672
13693
|
var queryUnit = {
|
|
13673
13694
|
name: "queryUnit",
|
|
13674
|
-
impl: ({ SUBRULE }) => () => SUBRULE(query
|
|
13695
|
+
impl: ({ SUBRULE }) => () => SUBRULE(query)
|
|
13675
13696
|
};
|
|
13676
13697
|
var query = {
|
|
13677
13698
|
name: "query",
|
|
13678
13699
|
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
13679
|
-
const prologueValues = SUBRULE(prologue
|
|
13700
|
+
const prologueValues = SUBRULE(prologue);
|
|
13680
13701
|
const subType = OR([
|
|
13681
|
-
{ ALT: () => SUBRULE(selectQuery
|
|
13682
|
-
{ ALT: () => SUBRULE(constructQuery
|
|
13683
|
-
{ ALT: () => SUBRULE(describeQuery
|
|
13684
|
-
{ ALT: () => SUBRULE(askQuery
|
|
13702
|
+
{ ALT: () => SUBRULE(selectQuery) },
|
|
13703
|
+
{ ALT: () => SUBRULE(constructQuery) },
|
|
13704
|
+
{ ALT: () => SUBRULE(describeQuery) },
|
|
13705
|
+
{ ALT: () => SUBRULE(askQuery) }
|
|
13685
13706
|
]);
|
|
13686
|
-
const values3 = SUBRULE(valuesClause
|
|
13707
|
+
const values3 = SUBRULE(valuesClause);
|
|
13687
13708
|
return ACTION(() => ({
|
|
13688
13709
|
context: prologueValues,
|
|
13689
13710
|
...subType,
|
|
@@ -13697,28 +13718,28 @@ var query = {
|
|
|
13697
13718
|
}));
|
|
13698
13719
|
},
|
|
13699
13720
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13700
|
-
SUBRULE(prologue, ast.context
|
|
13721
|
+
SUBRULE(prologue, ast.context);
|
|
13701
13722
|
if (F2.isQuerySelect(ast)) {
|
|
13702
|
-
SUBRULE(selectQuery, ast
|
|
13723
|
+
SUBRULE(selectQuery, ast);
|
|
13703
13724
|
} else if (F2.isQueryConstruct(ast)) {
|
|
13704
|
-
SUBRULE(constructQuery, ast
|
|
13725
|
+
SUBRULE(constructQuery, ast);
|
|
13705
13726
|
} else if (F2.isQueryDescribe(ast)) {
|
|
13706
|
-
SUBRULE(describeQuery, ast
|
|
13727
|
+
SUBRULE(describeQuery, ast);
|
|
13707
13728
|
} else if (F2.isQueryAsk(ast)) {
|
|
13708
|
-
SUBRULE(askQuery, ast
|
|
13729
|
+
SUBRULE(askQuery, ast);
|
|
13709
13730
|
}
|
|
13710
13731
|
if (ast.values) {
|
|
13711
|
-
SUBRULE(inlineData, ast.values
|
|
13732
|
+
SUBRULE(inlineData, ast.values);
|
|
13712
13733
|
}
|
|
13713
13734
|
}
|
|
13714
13735
|
};
|
|
13715
13736
|
var selectQuery = {
|
|
13716
13737
|
name: "selectQuery",
|
|
13717
13738
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13718
|
-
const selectVal = SUBRULE(selectClause
|
|
13719
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
13720
|
-
const where2 = SUBRULE(whereClause
|
|
13721
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13739
|
+
const selectVal = SUBRULE(selectClause);
|
|
13740
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
13741
|
+
const where2 = SUBRULE(whereClause);
|
|
13742
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13722
13743
|
return ACTION(() => {
|
|
13723
13744
|
const ret = {
|
|
13724
13745
|
subType: "select",
|
|
@@ -13744,19 +13765,19 @@ var selectQuery = {
|
|
|
13744
13765
|
variables: ast.variables,
|
|
13745
13766
|
distinct: ast.distinct,
|
|
13746
13767
|
reduced: ast.reduced
|
|
13747
|
-
}, F2.sourceLocation(...ast.variables))
|
|
13748
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13749
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
13750
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13768
|
+
}, F2.sourceLocation(...ast.variables)));
|
|
13769
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13770
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
13771
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13751
13772
|
}
|
|
13752
13773
|
};
|
|
13753
13774
|
var subSelect = {
|
|
13754
13775
|
name: "subSelect",
|
|
13755
13776
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13756
|
-
const selectVal = SUBRULE(selectClause
|
|
13757
|
-
const where2 = SUBRULE(whereClause
|
|
13758
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13759
|
-
const values3 = SUBRULE(valuesClause
|
|
13777
|
+
const selectVal = SUBRULE(selectClause);
|
|
13778
|
+
const where2 = SUBRULE(whereClause);
|
|
13779
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13780
|
+
const values3 = SUBRULE(valuesClause);
|
|
13760
13781
|
return ACTION(() => C.factory.querySelect({
|
|
13761
13782
|
where: where2.val,
|
|
13762
13783
|
datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
|
|
@@ -13821,7 +13842,7 @@ var selectClause = {
|
|
|
13821
13842
|
const variables = [];
|
|
13822
13843
|
AT_LEAST_ONE(() => OR3([
|
|
13823
13844
|
{ ALT: () => {
|
|
13824
|
-
const raw = SUBRULE1(var_
|
|
13845
|
+
const raw = SUBRULE1(var_);
|
|
13825
13846
|
ACTION(() => {
|
|
13826
13847
|
if (usedVars.some((v) => v.value === raw.value)) {
|
|
13827
13848
|
throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
|
|
@@ -13833,9 +13854,9 @@ var selectClause = {
|
|
|
13833
13854
|
} },
|
|
13834
13855
|
{ ALT: () => {
|
|
13835
13856
|
const open = CONSUME(symbols_exports.LParen);
|
|
13836
|
-
const expr = SUBRULE1(expression
|
|
13857
|
+
const expr = SUBRULE1(expression);
|
|
13837
13858
|
CONSUME(as);
|
|
13838
|
-
const variable = SUBRULE2(var_
|
|
13859
|
+
const variable = SUBRULE2(var_);
|
|
13839
13860
|
const close = CONSUME(symbols_exports.RParen);
|
|
13840
13861
|
ACTION(() => {
|
|
13841
13862
|
last2 = close;
|
|
@@ -13866,12 +13887,12 @@ var selectClause = {
|
|
|
13866
13887
|
if (F2.isWildcard(variable)) {
|
|
13867
13888
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13868
13889
|
} else if (F2.isTerm(variable)) {
|
|
13869
|
-
SUBRULE(var_, variable
|
|
13890
|
+
SUBRULE(var_, variable);
|
|
13870
13891
|
} else {
|
|
13871
13892
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13872
|
-
SUBRULE(expression, variable.expression
|
|
13893
|
+
SUBRULE(expression, variable.expression);
|
|
13873
13894
|
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
13874
|
-
SUBRULE(var_, variable.variable
|
|
13895
|
+
SUBRULE(var_, variable.variable);
|
|
13875
13896
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13876
13897
|
}
|
|
13877
13898
|
}
|
|
@@ -13883,10 +13904,10 @@ var constructQuery = {
|
|
|
13883
13904
|
const construct2 = CONSUME(construct);
|
|
13884
13905
|
return OR([
|
|
13885
13906
|
{ ALT: () => {
|
|
13886
|
-
const template = SUBRULE1(constructTemplate
|
|
13887
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
13888
|
-
const where2 = SUBRULE1(whereClause
|
|
13889
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
13907
|
+
const template = SUBRULE1(constructTemplate);
|
|
13908
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
13909
|
+
const where2 = SUBRULE1(whereClause);
|
|
13910
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
13890
13911
|
return ACTION(() => ({
|
|
13891
13912
|
subType: "construct",
|
|
13892
13913
|
template: template.val,
|
|
@@ -13904,10 +13925,10 @@ var constructQuery = {
|
|
|
13904
13925
|
}));
|
|
13905
13926
|
} },
|
|
13906
13927
|
{ ALT: () => {
|
|
13907
|
-
const from2 = SUBRULE2(datasetClauseStar
|
|
13928
|
+
const from2 = SUBRULE2(datasetClauseStar);
|
|
13908
13929
|
CONSUME(where);
|
|
13909
|
-
const template = SUBRULE2(constructTemplate
|
|
13910
|
-
const modifiers = SUBRULE2(solutionModifier
|
|
13930
|
+
const template = SUBRULE2(constructTemplate);
|
|
13931
|
+
const modifiers = SUBRULE2(solutionModifier);
|
|
13911
13932
|
return ACTION(() => ({
|
|
13912
13933
|
subType: "construct",
|
|
13913
13934
|
template: template.val,
|
|
@@ -13930,16 +13951,16 @@ var constructQuery = {
|
|
|
13930
13951
|
F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
|
|
13931
13952
|
if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13932
13953
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
13933
|
-
SUBRULE(triplesBlock, ast.template
|
|
13954
|
+
SUBRULE(triplesBlock, ast.template);
|
|
13934
13955
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
13935
13956
|
}
|
|
13936
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13957
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13937
13958
|
if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13938
|
-
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc)
|
|
13959
|
+
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc));
|
|
13939
13960
|
} else {
|
|
13940
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
13961
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
13941
13962
|
}
|
|
13942
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
13963
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13943
13964
|
}
|
|
13944
13965
|
};
|
|
13945
13966
|
var describeQuery = {
|
|
@@ -13950,7 +13971,7 @@ var describeQuery = {
|
|
|
13950
13971
|
{ ALT: () => {
|
|
13951
13972
|
const variables2 = [];
|
|
13952
13973
|
AT_LEAST_ONE(() => {
|
|
13953
|
-
variables2.push(SUBRULE1(varOrIri
|
|
13974
|
+
variables2.push(SUBRULE1(varOrIri));
|
|
13954
13975
|
});
|
|
13955
13976
|
return variables2;
|
|
13956
13977
|
} },
|
|
@@ -13959,9 +13980,9 @@ var describeQuery = {
|
|
|
13959
13980
|
return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
|
|
13960
13981
|
} }
|
|
13961
13982
|
]);
|
|
13962
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
13963
|
-
const where2 = OPTION(() => SUBRULE1(whereClause
|
|
13964
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
13983
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
13984
|
+
const where2 = OPTION(() => SUBRULE1(whereClause));
|
|
13985
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
13965
13986
|
return ACTION(() => ({
|
|
13966
13987
|
subType: "describe",
|
|
13967
13988
|
variables,
|
|
@@ -13986,23 +14007,23 @@ var describeQuery = {
|
|
|
13986
14007
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13987
14008
|
} else {
|
|
13988
14009
|
for (const variable of ast.variables) {
|
|
13989
|
-
SUBRULE(varOrTerm, variable
|
|
14010
|
+
SUBRULE(varOrTerm, variable);
|
|
13990
14011
|
}
|
|
13991
14012
|
}
|
|
13992
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
14013
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13993
14014
|
if (ast.where) {
|
|
13994
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
14015
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
13995
14016
|
}
|
|
13996
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14017
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13997
14018
|
}
|
|
13998
14019
|
};
|
|
13999
14020
|
var askQuery = {
|
|
14000
14021
|
name: "askQuery",
|
|
14001
14022
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14002
14023
|
const ask2 = CONSUME(ask);
|
|
14003
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
14004
|
-
const where2 = SUBRULE(whereClause
|
|
14005
|
-
const modifiers = SUBRULE(solutionModifier
|
|
14024
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
14025
|
+
const where2 = SUBRULE(whereClause);
|
|
14026
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
14006
14027
|
return ACTION(() => ({
|
|
14007
14028
|
subType: "ask",
|
|
14008
14029
|
datasets: from2,
|
|
@@ -14021,20 +14042,20 @@ var askQuery = {
|
|
|
14021
14042
|
},
|
|
14022
14043
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14023
14044
|
F2.printFilter(ast, () => PRINT_WORD("ASK"));
|
|
14024
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
14025
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
14026
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14045
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14046
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
14047
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
14027
14048
|
}
|
|
14028
14049
|
};
|
|
14029
14050
|
var valuesClause = {
|
|
14030
14051
|
name: "valuesClause",
|
|
14031
|
-
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData
|
|
14052
|
+
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
|
|
14032
14053
|
};
|
|
14033
14054
|
var constructTemplate = {
|
|
14034
14055
|
name: "constructTemplate",
|
|
14035
14056
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14036
14057
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14037
|
-
const triples = OPTION(() => SUBRULE1(constructTriples
|
|
14058
|
+
const triples = OPTION(() => SUBRULE1(constructTriples));
|
|
14038
14059
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14039
14060
|
return ACTION(() => C.factory.wrap(
|
|
14040
14061
|
triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
|
|
@@ -14047,27 +14068,27 @@ var constructTriples = {
|
|
|
14047
14068
|
impl: triplesTemplate.impl
|
|
14048
14069
|
};
|
|
14049
14070
|
|
|
14050
|
-
// lib/grammar/updateUnit
|
|
14071
|
+
// lib/grammar/updateUnit.ts
|
|
14051
14072
|
var updateUnit = {
|
|
14052
14073
|
name: "updateUnit",
|
|
14053
|
-
impl: ({ SUBRULE }) => () => SUBRULE(update
|
|
14074
|
+
impl: ({ SUBRULE }) => () => SUBRULE(update)
|
|
14054
14075
|
};
|
|
14055
14076
|
var update = {
|
|
14056
14077
|
name: "update",
|
|
14057
14078
|
impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
|
|
14058
14079
|
const updates = [];
|
|
14059
|
-
const prologueValues = SUBRULE1(prologue
|
|
14080
|
+
const prologueValues = SUBRULE1(prologue);
|
|
14060
14081
|
updates.push({ context: prologueValues });
|
|
14061
14082
|
let parsedSemi = true;
|
|
14062
14083
|
MANY({
|
|
14063
14084
|
GATE: () => parsedSemi,
|
|
14064
14085
|
DEF: () => {
|
|
14065
14086
|
parsedSemi = false;
|
|
14066
|
-
updates.at(-1).operation = SUBRULE(update1
|
|
14087
|
+
updates.at(-1).operation = SUBRULE(update1);
|
|
14067
14088
|
OPTION1(() => {
|
|
14068
14089
|
CONSUME(symbols_exports.semi);
|
|
14069
14090
|
parsedSemi = true;
|
|
14070
|
-
const innerPrologue = SUBRULE2(prologue
|
|
14091
|
+
const innerPrologue = SUBRULE2(prologue);
|
|
14071
14092
|
updates.push({ context: innerPrologue });
|
|
14072
14093
|
});
|
|
14073
14094
|
}
|
|
@@ -14089,9 +14110,9 @@ var update = {
|
|
|
14089
14110
|
},
|
|
14090
14111
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14091
14112
|
for (const update2 of ast.updates) {
|
|
14092
|
-
SUBRULE(prologue, update2.context
|
|
14113
|
+
SUBRULE(prologue, update2.context);
|
|
14093
14114
|
if (update2.operation) {
|
|
14094
|
-
SUBRULE(update1, update2.operation
|
|
14115
|
+
SUBRULE(update1, update2.operation);
|
|
14095
14116
|
F2.printFilter(ast, () => PRINT_WORD(" ;\n"));
|
|
14096
14117
|
}
|
|
14097
14118
|
}
|
|
@@ -14100,52 +14121,52 @@ var update = {
|
|
|
14100
14121
|
var update1 = {
|
|
14101
14122
|
name: "update1",
|
|
14102
14123
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
14103
|
-
{ ALT: () => SUBRULE(load2
|
|
14104
|
-
{ ALT: () => SUBRULE(clear2
|
|
14105
|
-
{ ALT: () => SUBRULE(drop3
|
|
14106
|
-
{ ALT: () => SUBRULE(add2
|
|
14107
|
-
{ ALT: () => SUBRULE(move2
|
|
14108
|
-
{ ALT: () => SUBRULE(copy2
|
|
14109
|
-
{ ALT: () => SUBRULE(create2
|
|
14110
|
-
{ ALT: () => SUBRULE(insertData
|
|
14111
|
-
{ ALT: () => SUBRULE(deleteData
|
|
14112
|
-
{ ALT: () => SUBRULE(deleteWhere
|
|
14113
|
-
{ ALT: () => SUBRULE(modify
|
|
14124
|
+
{ ALT: () => SUBRULE(load2) },
|
|
14125
|
+
{ ALT: () => SUBRULE(clear2) },
|
|
14126
|
+
{ ALT: () => SUBRULE(drop3) },
|
|
14127
|
+
{ ALT: () => SUBRULE(add2) },
|
|
14128
|
+
{ ALT: () => SUBRULE(move2) },
|
|
14129
|
+
{ ALT: () => SUBRULE(copy2) },
|
|
14130
|
+
{ ALT: () => SUBRULE(create2) },
|
|
14131
|
+
{ ALT: () => SUBRULE(insertData) },
|
|
14132
|
+
{ ALT: () => SUBRULE(deleteData) },
|
|
14133
|
+
{ ALT: () => SUBRULE(deleteWhere) },
|
|
14134
|
+
{ ALT: () => SUBRULE(modify) }
|
|
14114
14135
|
]),
|
|
14115
14136
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
14116
14137
|
switch (ast.subType) {
|
|
14117
14138
|
case "load":
|
|
14118
|
-
SUBRULE(load2, ast
|
|
14139
|
+
SUBRULE(load2, ast);
|
|
14119
14140
|
break;
|
|
14120
14141
|
case "clear":
|
|
14121
|
-
SUBRULE(clear2, ast
|
|
14142
|
+
SUBRULE(clear2, ast);
|
|
14122
14143
|
break;
|
|
14123
14144
|
case "drop":
|
|
14124
|
-
SUBRULE(drop3, ast
|
|
14145
|
+
SUBRULE(drop3, ast);
|
|
14125
14146
|
break;
|
|
14126
14147
|
case "add":
|
|
14127
|
-
SUBRULE(add2, ast
|
|
14148
|
+
SUBRULE(add2, ast);
|
|
14128
14149
|
break;
|
|
14129
14150
|
case "move":
|
|
14130
|
-
SUBRULE(move2, ast
|
|
14151
|
+
SUBRULE(move2, ast);
|
|
14131
14152
|
break;
|
|
14132
14153
|
case "copy":
|
|
14133
|
-
SUBRULE(copy2, ast
|
|
14154
|
+
SUBRULE(copy2, ast);
|
|
14134
14155
|
break;
|
|
14135
14156
|
case "create":
|
|
14136
|
-
SUBRULE(create2, ast
|
|
14157
|
+
SUBRULE(create2, ast);
|
|
14137
14158
|
break;
|
|
14138
14159
|
case "insertdata":
|
|
14139
|
-
SUBRULE(insertData, ast
|
|
14160
|
+
SUBRULE(insertData, ast);
|
|
14140
14161
|
break;
|
|
14141
14162
|
case "deletedata":
|
|
14142
|
-
SUBRULE(deleteData, ast
|
|
14163
|
+
SUBRULE(deleteData, ast);
|
|
14143
14164
|
break;
|
|
14144
14165
|
case "deletewhere":
|
|
14145
|
-
SUBRULE(deleteWhere, ast
|
|
14166
|
+
SUBRULE(deleteWhere, ast);
|
|
14146
14167
|
break;
|
|
14147
14168
|
case "modify":
|
|
14148
|
-
SUBRULE(modify, ast
|
|
14169
|
+
SUBRULE(modify, ast);
|
|
14149
14170
|
break;
|
|
14150
14171
|
}
|
|
14151
14172
|
}
|
|
@@ -14155,10 +14176,10 @@ var load2 = {
|
|
|
14155
14176
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
|
|
14156
14177
|
const loadToken = CONSUME(load);
|
|
14157
14178
|
const silent2 = OPTION1(() => CONSUME(silent));
|
|
14158
|
-
const source = SUBRULE1(iri2
|
|
14179
|
+
const source = SUBRULE1(iri2);
|
|
14159
14180
|
const destination = OPTION2(() => {
|
|
14160
14181
|
CONSUME(loadInto);
|
|
14161
|
-
return SUBRULE1(graphRef
|
|
14182
|
+
return SUBRULE1(graphRef);
|
|
14162
14183
|
});
|
|
14163
14184
|
return ACTION(() => C.factory.updateOperationLoad(
|
|
14164
14185
|
C.factory.sourceLocation(loadToken, source, destination),
|
|
@@ -14174,10 +14195,10 @@ var load2 = {
|
|
|
14174
14195
|
PRINT_WORD("SILENT");
|
|
14175
14196
|
}
|
|
14176
14197
|
});
|
|
14177
|
-
SUBRULE(iri2, ast.source
|
|
14198
|
+
SUBRULE(iri2, ast.source);
|
|
14178
14199
|
if (ast.destination) {
|
|
14179
14200
|
F2.printFilter(ast, () => PRINT_WORD("INTO"));
|
|
14180
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14201
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14181
14202
|
}
|
|
14182
14203
|
}
|
|
14183
14204
|
};
|
|
@@ -14187,7 +14208,7 @@ function clearOrDrop(operation) {
|
|
|
14187
14208
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14188
14209
|
const opToken = CONSUME(operation);
|
|
14189
14210
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14190
|
-
const destination = SUBRULE1(graphRefAll
|
|
14211
|
+
const destination = SUBRULE1(graphRefAll);
|
|
14191
14212
|
return ACTION(() => C.factory.updateOperationClearDrop(
|
|
14192
14213
|
unCapitalize(operation.name),
|
|
14193
14214
|
Boolean(silent2),
|
|
@@ -14202,7 +14223,7 @@ function clearOrDrop(operation) {
|
|
|
14202
14223
|
PRINT_WORD("SILENT");
|
|
14203
14224
|
}
|
|
14204
14225
|
});
|
|
14205
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14226
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14206
14227
|
}
|
|
14207
14228
|
};
|
|
14208
14229
|
}
|
|
@@ -14213,7 +14234,7 @@ var create2 = {
|
|
|
14213
14234
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14214
14235
|
const createToken3 = CONSUME(create);
|
|
14215
14236
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14216
|
-
const destination = SUBRULE1(graphRef
|
|
14237
|
+
const destination = SUBRULE1(graphRef);
|
|
14217
14238
|
return ACTION(() => C.factory.updateOperationCreate(
|
|
14218
14239
|
destination,
|
|
14219
14240
|
Boolean(silent2),
|
|
@@ -14227,7 +14248,7 @@ var create2 = {
|
|
|
14227
14248
|
PRINT_WORD("SILENT");
|
|
14228
14249
|
}
|
|
14229
14250
|
});
|
|
14230
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14251
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14231
14252
|
}
|
|
14232
14253
|
};
|
|
14233
14254
|
function copyMoveAddOperation(operation) {
|
|
@@ -14236,9 +14257,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14236
14257
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
|
|
14237
14258
|
const op = CONSUME(operation);
|
|
14238
14259
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14239
|
-
const source = SUBRULE1(graphOrDefault
|
|
14260
|
+
const source = SUBRULE1(graphOrDefault);
|
|
14240
14261
|
CONSUME(to);
|
|
14241
|
-
const destination = SUBRULE2(graphOrDefault
|
|
14262
|
+
const destination = SUBRULE2(graphOrDefault);
|
|
14242
14263
|
return ACTION(() => C.factory.updateOperationAddMoveCopy(
|
|
14243
14264
|
unCapitalize(operation.name),
|
|
14244
14265
|
source,
|
|
@@ -14254,9 +14275,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14254
14275
|
PRINT_WORD("SILENT");
|
|
14255
14276
|
}
|
|
14256
14277
|
});
|
|
14257
|
-
SUBRULE(graphRefAll, ast.source
|
|
14278
|
+
SUBRULE(graphRefAll, ast.source);
|
|
14258
14279
|
F2.printFilter(ast, () => PRINT_WORD("TO"));
|
|
14259
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14280
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14260
14281
|
}
|
|
14261
14282
|
};
|
|
14262
14283
|
}
|
|
@@ -14267,7 +14288,7 @@ var quadPattern = {
|
|
|
14267
14288
|
name: "quadPattern",
|
|
14268
14289
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14269
14290
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14270
|
-
const val = SUBRULE1(quads
|
|
14291
|
+
const val = SUBRULE1(quads);
|
|
14271
14292
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14272
14293
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
14273
14294
|
}
|
|
@@ -14277,7 +14298,7 @@ var quadData = {
|
|
|
14277
14298
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14278
14299
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14279
14300
|
const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
|
|
14280
|
-
const val = SUBRULE1(quads
|
|
14301
|
+
const val = SUBRULE1(quads);
|
|
14281
14302
|
ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
|
|
14282
14303
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14283
14304
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
@@ -14293,7 +14314,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14293
14314
|
if (name !== "insertData") {
|
|
14294
14315
|
couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14295
14316
|
}
|
|
14296
|
-
const data = SUBRULE1(dataRule
|
|
14317
|
+
const data = SUBRULE1(dataRule);
|
|
14297
14318
|
if (name !== "insertData") {
|
|
14298
14319
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14299
14320
|
}
|
|
@@ -14304,7 +14325,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14304
14325
|
subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
|
|
14305
14326
|
"{"
|
|
14306
14327
|
));
|
|
14307
|
-
SUBRULE(quads, F2.wrap(ast.data, ast.loc)
|
|
14328
|
+
SUBRULE(quads, F2.wrap(ast.data, ast.loc));
|
|
14308
14329
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14309
14330
|
}
|
|
14310
14331
|
};
|
|
@@ -14317,23 +14338,23 @@ var modify = {
|
|
|
14317
14338
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
|
|
14318
14339
|
const graph2 = OPTION1(() => {
|
|
14319
14340
|
const withToken = CONSUME(modifyWith);
|
|
14320
|
-
const graph3 = SUBRULE1(iri2
|
|
14341
|
+
const graph3 = SUBRULE1(iri2);
|
|
14321
14342
|
return { withToken, graph: graph3 };
|
|
14322
14343
|
});
|
|
14323
14344
|
const { insert, del } = OR([
|
|
14324
14345
|
{ ALT: () => {
|
|
14325
|
-
const del2 = SUBRULE1(deleteClause2
|
|
14326
|
-
const insert2 = OPTION2(() => SUBRULE1(insertClause2
|
|
14346
|
+
const del2 = SUBRULE1(deleteClause2);
|
|
14347
|
+
const insert2 = OPTION2(() => SUBRULE1(insertClause2));
|
|
14327
14348
|
return { del: del2, insert: insert2 };
|
|
14328
14349
|
} },
|
|
14329
14350
|
{ ALT: () => {
|
|
14330
|
-
const insert2 = SUBRULE2(insertClause2
|
|
14351
|
+
const insert2 = SUBRULE2(insertClause2);
|
|
14331
14352
|
return { insert: insert2, del: void 0 };
|
|
14332
14353
|
} }
|
|
14333
14354
|
]);
|
|
14334
|
-
const using = SUBRULE1(usingClauseStar
|
|
14355
|
+
const using = SUBRULE1(usingClauseStar);
|
|
14335
14356
|
CONSUME(where);
|
|
14336
|
-
const where2 = SUBRULE1(groupGraphPattern
|
|
14357
|
+
const where2 = SUBRULE1(groupGraphPattern);
|
|
14337
14358
|
return ACTION(() => C.factory.updateOperationModify(
|
|
14338
14359
|
C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
|
|
14339
14360
|
insert?.val ?? [],
|
|
@@ -14346,21 +14367,21 @@ var modify = {
|
|
|
14346
14367
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14347
14368
|
if (ast.graph) {
|
|
14348
14369
|
F2.printFilter(ast, () => PRINT_WORD("WITH"));
|
|
14349
|
-
SUBRULE(iri2, ast.graph
|
|
14370
|
+
SUBRULE(iri2, ast.graph);
|
|
14350
14371
|
}
|
|
14351
14372
|
if (ast.delete.length > 0) {
|
|
14352
14373
|
F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
|
|
14353
|
-
SUBRULE(quads, F2.wrap(ast.delete, ast.loc)
|
|
14374
|
+
SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
|
|
14354
14375
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14355
14376
|
}
|
|
14356
14377
|
if (ast.insert.length > 0) {
|
|
14357
14378
|
F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
|
|
14358
|
-
SUBRULE(quads, F2.wrap(ast.insert, ast.loc)
|
|
14379
|
+
SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
|
|
14359
14380
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14360
14381
|
}
|
|
14361
|
-
SUBRULE(usingClauseStar, ast.from
|
|
14382
|
+
SUBRULE(usingClauseStar, ast.from);
|
|
14362
14383
|
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
14363
|
-
SUBRULE(groupGraphPattern, ast.where
|
|
14384
|
+
SUBRULE(groupGraphPattern, ast.where);
|
|
14364
14385
|
}
|
|
14365
14386
|
};
|
|
14366
14387
|
var deleteClause2 = {
|
|
@@ -14368,7 +14389,7 @@ var deleteClause2 = {
|
|
|
14368
14389
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14369
14390
|
const delToken = CONSUME(deleteClause);
|
|
14370
14391
|
const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14371
|
-
const del = SUBRULE(quadPattern
|
|
14392
|
+
const del = SUBRULE(quadPattern);
|
|
14372
14393
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14373
14394
|
return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
|
|
14374
14395
|
}
|
|
@@ -14377,7 +14398,7 @@ var insertClause2 = {
|
|
|
14377
14398
|
name: "insertClause",
|
|
14378
14399
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14379
14400
|
const insertToken = CONSUME(insertClause);
|
|
14380
|
-
const insert = SUBRULE(quadPattern
|
|
14401
|
+
const insert = SUBRULE(quadPattern);
|
|
14381
14402
|
return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
|
|
14382
14403
|
}
|
|
14383
14404
|
};
|
|
@@ -14390,7 +14411,7 @@ var graphOrDefault = {
|
|
|
14390
14411
|
} },
|
|
14391
14412
|
{ ALT: () => {
|
|
14392
14413
|
const graph2 = OPTION(() => CONSUME(graph_exports.graph));
|
|
14393
|
-
const name = SUBRULE1(iri2
|
|
14414
|
+
const name = SUBRULE1(iri2);
|
|
14394
14415
|
return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
|
|
14395
14416
|
} }
|
|
14396
14417
|
])
|
|
@@ -14399,18 +14420,18 @@ var graphRef = {
|
|
|
14399
14420
|
name: "graphRef",
|
|
14400
14421
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14401
14422
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14402
|
-
const val = SUBRULE(iri2
|
|
14423
|
+
const val = SUBRULE(iri2);
|
|
14403
14424
|
return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
|
|
14404
14425
|
},
|
|
14405
14426
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14406
14427
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14407
|
-
SUBRULE(iri2, ast.graph
|
|
14428
|
+
SUBRULE(iri2, ast.graph);
|
|
14408
14429
|
}
|
|
14409
14430
|
};
|
|
14410
14431
|
var graphRefAll = {
|
|
14411
14432
|
name: "graphRefAll",
|
|
14412
14433
|
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
14413
|
-
{ ALT: () => SUBRULE(graphRef
|
|
14434
|
+
{ ALT: () => SUBRULE(graphRef) },
|
|
14414
14435
|
{ ALT: () => {
|
|
14415
14436
|
const def = CONSUME(graph_exports.default_);
|
|
14416
14437
|
return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
|
|
@@ -14426,7 +14447,7 @@ var graphRefAll = {
|
|
|
14426
14447
|
]),
|
|
14427
14448
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14428
14449
|
if (F2.isGraphRefSpecific(ast)) {
|
|
14429
|
-
SUBRULE(graphRef, ast
|
|
14450
|
+
SUBRULE(graphRef, ast);
|
|
14430
14451
|
} else if (F2.isGraphRefDefault(ast)) {
|
|
14431
14452
|
F2.printFilter(ast, () => PRINT_WORD("DEFAULT"));
|
|
14432
14453
|
} else if (F2.isGraphRefNamed(ast)) {
|
|
@@ -14442,12 +14463,12 @@ var quads = {
|
|
|
14442
14463
|
const quads2 = [];
|
|
14443
14464
|
let last2;
|
|
14444
14465
|
OPTION1(() => {
|
|
14445
|
-
const triples = SUBRULE1(triplesTemplate
|
|
14466
|
+
const triples = SUBRULE1(triplesTemplate);
|
|
14446
14467
|
last2 = triples;
|
|
14447
14468
|
ACTION(() => quads2.push(triples));
|
|
14448
14469
|
});
|
|
14449
14470
|
MANY(() => {
|
|
14450
|
-
const notTriples = SUBRULE(quadsNotTriples
|
|
14471
|
+
const notTriples = SUBRULE(quadsNotTriples);
|
|
14451
14472
|
last2 = notTriples;
|
|
14452
14473
|
quads2.push(notTriples);
|
|
14453
14474
|
OPTION2(() => {
|
|
@@ -14456,7 +14477,7 @@ var quads = {
|
|
|
14456
14477
|
return dotToken;
|
|
14457
14478
|
});
|
|
14458
14479
|
OPTION3(() => {
|
|
14459
|
-
const triples = SUBRULE2(triplesTemplate
|
|
14480
|
+
const triples = SUBRULE2(triplesTemplate);
|
|
14460
14481
|
last2 = triples;
|
|
14461
14482
|
ACTION(() => quads2.push(triples));
|
|
14462
14483
|
});
|
|
@@ -14466,9 +14487,9 @@ var quads = {
|
|
|
14466
14487
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
14467
14488
|
for (const quad of ast.val) {
|
|
14468
14489
|
if (F2.isPattern(quad)) {
|
|
14469
|
-
SUBRULE(triplesBlock, quad
|
|
14490
|
+
SUBRULE(triplesBlock, quad);
|
|
14470
14491
|
} else {
|
|
14471
|
-
SUBRULE(quadsNotTriples, quad
|
|
14492
|
+
SUBRULE(quadsNotTriples, quad);
|
|
14472
14493
|
}
|
|
14473
14494
|
}
|
|
14474
14495
|
}
|
|
@@ -14477,9 +14498,9 @@ var quadsNotTriples = {
|
|
|
14477
14498
|
name: "quadsNotTriples",
|
|
14478
14499
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14479
14500
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14480
|
-
const name = SUBRULE1(varOrIri
|
|
14501
|
+
const name = SUBRULE1(varOrIri);
|
|
14481
14502
|
CONSUME(symbols_exports.LCurly);
|
|
14482
|
-
const triples = OPTION(() => SUBRULE1(triplesTemplate
|
|
14503
|
+
const triples = OPTION(() => SUBRULE1(triplesTemplate));
|
|
14483
14504
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14484
14505
|
return ACTION(() => C.factory.graphQuads(
|
|
14485
14506
|
name,
|
|
@@ -14489,9 +14510,9 @@ var quadsNotTriples = {
|
|
|
14489
14510
|
},
|
|
14490
14511
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14491
14512
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14492
|
-
SUBRULE(varOrTerm, ast.graph
|
|
14513
|
+
SUBRULE(varOrTerm, ast.graph);
|
|
14493
14514
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
14494
|
-
SUBRULE(triplesBlock, ast.triples
|
|
14515
|
+
SUBRULE(triplesBlock, ast.triples);
|
|
14495
14516
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14496
14517
|
}
|
|
14497
14518
|
};
|
|
@@ -14514,10 +14535,10 @@ var SparqlParser = class {
|
|
|
14514
14535
|
this.F = new Factory();
|
|
14515
14536
|
}
|
|
14516
14537
|
parse(query2, context = {}) {
|
|
14517
|
-
return this.parser.queryOrUpdate(query2, completeParseContext(context)
|
|
14538
|
+
return this.parser.queryOrUpdate(query2, completeParseContext(context));
|
|
14518
14539
|
}
|
|
14519
14540
|
parsePath(query2, context = {}) {
|
|
14520
|
-
const result = this.parser.path(query2, completeParseContext(context)
|
|
14541
|
+
const result = this.parser.path(query2, completeParseContext(context));
|
|
14521
14542
|
if (this.F.isPathPure(result)) {
|
|
14522
14543
|
return {
|
|
14523
14544
|
...result,
|
|
@@ -14527,29 +14548,6 @@ var SparqlParser = class {
|
|
|
14527
14548
|
return result;
|
|
14528
14549
|
}
|
|
14529
14550
|
};
|
|
14530
|
-
|
|
14531
|
-
// lib/utils.ts
|
|
14532
|
-
function sparqlCodepointEscape(input) {
|
|
14533
|
-
const sanitizedInput = input.replaceAll(
|
|
14534
|
-
/\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{8})/gu,
|
|
14535
|
-
(_, unicode4, unicode8) => {
|
|
14536
|
-
if (unicode4) {
|
|
14537
|
-
const charCode2 = Number.parseInt(unicode4, 16);
|
|
14538
|
-
return String.fromCodePoint(charCode2);
|
|
14539
|
-
}
|
|
14540
|
-
const charCode = Number.parseInt(unicode8, 16);
|
|
14541
|
-
if (charCode < 65535) {
|
|
14542
|
-
return String.fromCodePoint(charCode);
|
|
14543
|
-
}
|
|
14544
|
-
const substractedCharCode = charCode - 65536;
|
|
14545
|
-
return String.fromCodePoint(55296 + (substractedCharCode >> 10), 56320 + (substractedCharCode & 1023));
|
|
14546
|
-
}
|
|
14547
|
-
);
|
|
14548
|
-
if (/[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)/u.test(sanitizedInput)) {
|
|
14549
|
-
throw new Error(`Invalid unicode codepoint of surrogate pair without corresponding codepoint`);
|
|
14550
|
-
}
|
|
14551
|
-
return sanitizedInput;
|
|
14552
|
-
}
|
|
14553
14551
|
/*! Bundled license information:
|
|
14554
14552
|
|
|
14555
14553
|
lodash-es/lodash.js:
|