@traqula/parser-sparql-1-1-adjust 0.0.3 → 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/Parser.d.ts +87 -87
- package/lib/Parser.js +2 -2
- package/lib/Parser.js.map +1 -1
- package/lib/index.cjs +1510 -1509
- package/package.json +7 -7
package/lib/index.cjs
CHANGED
|
@@ -9491,7 +9491,7 @@ var DynamicParser = class extends EmbeddedActionsParser {
|
|
|
9491
9491
|
this.performSelfAnalysis();
|
|
9492
9492
|
}
|
|
9493
9493
|
constructSelfRef() {
|
|
9494
|
-
const subRuleImpl = (chevrotainSubrule) => (cstDef, arg) => chevrotainSubrule(this[cstDef.name], { ARGS: [this.context, arg] });
|
|
9494
|
+
const subRuleImpl = (chevrotainSubrule) => (cstDef, ...arg) => chevrotainSubrule(this[cstDef.name], { ARGS: [this.context, ...arg] });
|
|
9495
9495
|
return {
|
|
9496
9496
|
CONSUME: (tokenType, option) => this.CONSUME(tokenType, option),
|
|
9497
9497
|
CONSUME1: (tokenType, option) => this.CONSUME1(tokenType, option),
|
|
@@ -9678,7 +9678,7 @@ var ParserBuilder = class _ParserBuilder {
|
|
|
9678
9678
|
const firstError = errors[0];
|
|
9679
9679
|
const messageBuilder = ["Parse error"];
|
|
9680
9680
|
const lineIdx = firstError.token.startLine;
|
|
9681
|
-
if (lineIdx !== void 0) {
|
|
9681
|
+
if (lineIdx !== void 0 && !Number.isNaN(lineIdx)) {
|
|
9682
9682
|
const errorLine = input.split("\n")[lineIdx - 1];
|
|
9683
9683
|
messageBuilder.push(` on line ${lineIdx}
|
|
9684
9684
|
${errorLine}`);
|
|
@@ -9713,12 +9713,12 @@ ${firstError.message}`);
|
|
|
9713
9713
|
});
|
|
9714
9714
|
const selfSufficientParser = {};
|
|
9715
9715
|
for (const rule of Object.values(this.rules)) {
|
|
9716
|
-
selfSufficientParser[rule.name] = (input, context,
|
|
9716
|
+
selfSufficientParser[rule.name] = (input, context, ...args) => {
|
|
9717
9717
|
const processedInput = queryPreProcessor(input);
|
|
9718
9718
|
const lexResult = lexer.tokenize(processedInput);
|
|
9719
9719
|
parser.input = lexResult.tokens;
|
|
9720
9720
|
parser.setContext(context);
|
|
9721
|
-
const result = parser[rule.name](context,
|
|
9721
|
+
const result = parser[rule.name](context, ...args);
|
|
9722
9722
|
if (parser.errors.length > 0) {
|
|
9723
9723
|
if (errorHandler) {
|
|
9724
9724
|
errorHandler(parser.errors);
|
|
@@ -11637,6 +11637,29 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
|
|
|
11637
11637
|
}
|
|
11638
11638
|
}
|
|
11639
11639
|
|
|
11640
|
+
// ../../packages/rules-sparql-1-1/lib/utils.ts
|
|
11641
|
+
function sparqlCodepointEscape(input) {
|
|
11642
|
+
const sanitizedInput = input.replaceAll(
|
|
11643
|
+
/\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{8})/gu,
|
|
11644
|
+
(_, unicode4, unicode8) => {
|
|
11645
|
+
if (unicode4) {
|
|
11646
|
+
const charCode2 = Number.parseInt(unicode4, 16);
|
|
11647
|
+
return String.fromCodePoint(charCode2);
|
|
11648
|
+
}
|
|
11649
|
+
const charCode = Number.parseInt(unicode8, 16);
|
|
11650
|
+
if (charCode < 65535) {
|
|
11651
|
+
return String.fromCodePoint(charCode);
|
|
11652
|
+
}
|
|
11653
|
+
const substractedCharCode = charCode - 65536;
|
|
11654
|
+
return String.fromCodePoint(55296 + (substractedCharCode >> 10), 56320 + (substractedCharCode & 1023));
|
|
11655
|
+
}
|
|
11656
|
+
);
|
|
11657
|
+
if (/[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)/u.test(sanitizedInput)) {
|
|
11658
|
+
throw new Error(`Invalid unicode codepoint of surrogate pair without corresponding codepoint`);
|
|
11659
|
+
}
|
|
11660
|
+
return sanitizedInput;
|
|
11661
|
+
}
|
|
11662
|
+
|
|
11640
11663
|
// ../../packages/rules-sparql-1-1/lib/grammar/literals.ts
|
|
11641
11664
|
function stringEscapedLexical(str2) {
|
|
11642
11665
|
const lexical = str2.replaceAll(/["\\\t\n\r\b\f]/gu, (char) => {
|
|
@@ -11664,7 +11687,7 @@ function stringEscapedLexical(str2) {
|
|
|
11664
11687
|
var rdfLiteral = {
|
|
11665
11688
|
name: "rdfLiteral",
|
|
11666
11689
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
|
|
11667
|
-
const value = SUBRULE1(string
|
|
11690
|
+
const value = SUBRULE1(string);
|
|
11668
11691
|
return OPTION(() => OR([
|
|
11669
11692
|
{ ALT: () => {
|
|
11670
11693
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
@@ -11676,7 +11699,7 @@ var rdfLiteral = {
|
|
|
11676
11699
|
} },
|
|
11677
11700
|
{ ALT: () => {
|
|
11678
11701
|
CONSUME(symbols_exports.hathat);
|
|
11679
|
-
const iriVal = SUBRULE1(iri2
|
|
11702
|
+
const iriVal = SUBRULE1(iri2);
|
|
11680
11703
|
return ACTION(() => C.factory.literalTerm(
|
|
11681
11704
|
C.factory.sourceLocation(value, iriVal),
|
|
11682
11705
|
value.value,
|
|
@@ -11692,7 +11715,7 @@ var rdfLiteral = {
|
|
|
11692
11715
|
factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
11693
11716
|
} else {
|
|
11694
11717
|
factory.printFilter(ast, () => PRINT("^^"));
|
|
11695
|
-
SUBRULE(iri2, ast.langOrIri
|
|
11718
|
+
SUBRULE(iri2, ast.langOrIri);
|
|
11696
11719
|
}
|
|
11697
11720
|
}
|
|
11698
11721
|
}
|
|
@@ -11700,9 +11723,9 @@ var rdfLiteral = {
|
|
|
11700
11723
|
var numericLiteral = {
|
|
11701
11724
|
name: "numericLiteral",
|
|
11702
11725
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11703
|
-
{ ALT: () => SUBRULE(numericLiteralUnsigned
|
|
11704
|
-
{ ALT: () => SUBRULE(numericLiteralPositive
|
|
11705
|
-
{ ALT: () => SUBRULE(numericLiteralNegative
|
|
11726
|
+
{ ALT: () => SUBRULE(numericLiteralUnsigned) },
|
|
11727
|
+
{ ALT: () => SUBRULE(numericLiteralPositive) },
|
|
11728
|
+
{ ALT: () => SUBRULE(numericLiteralNegative) }
|
|
11706
11729
|
])
|
|
11707
11730
|
};
|
|
11708
11731
|
var numericLiteralUnsigned = {
|
|
@@ -11810,10 +11833,10 @@ var string = {
|
|
|
11810
11833
|
var iri2 = {
|
|
11811
11834
|
name: "iri",
|
|
11812
11835
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
11813
|
-
{ ALT: () => SUBRULE(iriFull
|
|
11814
|
-
{ ALT: () => SUBRULE(prefixedName
|
|
11836
|
+
{ ALT: () => SUBRULE(iriFull) },
|
|
11837
|
+
{ ALT: () => SUBRULE(prefixedName) }
|
|
11815
11838
|
]),
|
|
11816
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast
|
|
11839
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
|
|
11817
11840
|
};
|
|
11818
11841
|
var iriFull = {
|
|
11819
11842
|
name: "iriFull",
|
|
@@ -11885,11 +11908,11 @@ function datasetClauseUsing(name, token) {
|
|
|
11885
11908
|
const start = CONSUME(token);
|
|
11886
11909
|
return OR([
|
|
11887
11910
|
{ ALT: () => {
|
|
11888
|
-
const iri3 = SUBRULE(defaultGraphClause
|
|
11911
|
+
const iri3 = SUBRULE(defaultGraphClause);
|
|
11889
11912
|
return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
|
|
11890
11913
|
} },
|
|
11891
11914
|
{ ALT: () => {
|
|
11892
|
-
const namedClause = SUBRULE(namedGraphClause
|
|
11915
|
+
const namedClause = SUBRULE(namedGraphClause);
|
|
11893
11916
|
return ACTION(() => C.factory.wrap({
|
|
11894
11917
|
clauseType: "named",
|
|
11895
11918
|
value: namedClause.val
|
|
@@ -11902,7 +11925,7 @@ function datasetClauseUsing(name, token) {
|
|
|
11902
11925
|
var datasetClause = datasetClauseUsing("datasetClause", from);
|
|
11903
11926
|
var defaultGraphClause = {
|
|
11904
11927
|
name: "defaultGraphClause",
|
|
11905
|
-
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector
|
|
11928
|
+
impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
|
|
11906
11929
|
};
|
|
11907
11930
|
var usingClause2 = datasetClauseUsing("usingClause", usingClause);
|
|
11908
11931
|
function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
@@ -11911,7 +11934,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11911
11934
|
impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
|
|
11912
11935
|
const clauses = [];
|
|
11913
11936
|
MANY(() => {
|
|
11914
|
-
const clause = SUBRULE(subRule
|
|
11937
|
+
const clause = SUBRULE(subRule);
|
|
11915
11938
|
clauses.push(clause);
|
|
11916
11939
|
});
|
|
11917
11940
|
return ACTION(() => C.factory.datasetClauses(
|
|
@@ -11925,7 +11948,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11925
11948
|
if (clause.clauseType === "named") {
|
|
11926
11949
|
F2.printFilter(ast, () => PRINT_WORD("NAMED"));
|
|
11927
11950
|
}
|
|
11928
|
-
SUBRULE(iri2, clause.value
|
|
11951
|
+
SUBRULE(iri2, clause.value);
|
|
11929
11952
|
}
|
|
11930
11953
|
}
|
|
11931
11954
|
};
|
|
@@ -11936,1389 +11959,1390 @@ var namedGraphClause = {
|
|
|
11936
11959
|
name: "namedGraphClause",
|
|
11937
11960
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11938
11961
|
const named2 = CONSUME(graph_exports.named);
|
|
11939
|
-
const iri3 = SUBRULE(sourceSelector
|
|
11962
|
+
const iri3 = SUBRULE(sourceSelector);
|
|
11940
11963
|
return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
|
|
11941
11964
|
}
|
|
11942
11965
|
};
|
|
11943
11966
|
var sourceSelector = {
|
|
11944
11967
|
name: "sourceSelector",
|
|
11945
|
-
impl: ({ SUBRULE }) => () => SUBRULE(iri2
|
|
11968
|
+
impl: ({ SUBRULE }) => () => SUBRULE(iri2)
|
|
11946
11969
|
};
|
|
11947
11970
|
|
|
11948
|
-
// ../../packages/rules-sparql-1-1/lib/
|
|
11949
|
-
|
|
11950
|
-
|
|
11951
|
-
|
|
11952
|
-
|
|
11953
|
-
|
|
11954
|
-
|
|
11955
|
-
|
|
11956
|
-
|
|
11957
|
-
|
|
11958
|
-
]));
|
|
11959
|
-
return result;
|
|
11960
|
-
},
|
|
11961
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
11962
|
-
for (const context of ast) {
|
|
11963
|
-
if (F2.isContextDefinitionBase(context)) {
|
|
11964
|
-
SUBRULE(baseDecl2, context, void 0);
|
|
11965
|
-
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
11966
|
-
SUBRULE(prefixDecl2, context, void 0);
|
|
11967
|
-
}
|
|
11971
|
+
// ../../packages/rules-sparql-1-1/lib/expressionHelpers.ts
|
|
11972
|
+
function funcExpr1(func) {
|
|
11973
|
+
return {
|
|
11974
|
+
name: unCapitalize(func.name),
|
|
11975
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11976
|
+
const operator = CONSUME(func);
|
|
11977
|
+
CONSUME(symbols_exports.LParen);
|
|
11978
|
+
const arg = SUBRULE(expression);
|
|
11979
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11980
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
11968
11981
|
}
|
|
11969
|
-
}
|
|
11970
|
-
}
|
|
11971
|
-
|
|
11972
|
-
|
|
11973
|
-
|
|
11974
|
-
|
|
11975
|
-
|
|
11976
|
-
|
|
11977
|
-
|
|
11978
|
-
|
|
11979
|
-
|
|
11980
|
-
|
|
11981
|
-
|
|
11982
|
-
};
|
|
11983
|
-
var prefixDecl2 = {
|
|
11984
|
-
name: "prefixDecl",
|
|
11985
|
-
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11986
|
-
const prefix = CONSUME(prefixDecl);
|
|
11987
|
-
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
11988
|
-
const value = SUBRULE(iriFull, void 0);
|
|
11989
|
-
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
11990
|
-
},
|
|
11991
|
-
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
11992
|
-
F2.printFilter(ast, () => {
|
|
11993
|
-
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
11994
|
-
});
|
|
11995
|
-
SUBRULE(iri2, ast.value, void 0);
|
|
11996
|
-
}
|
|
11997
|
-
};
|
|
11998
|
-
var verb = {
|
|
11999
|
-
name: "verb",
|
|
12000
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12001
|
-
{ ALT: () => SUBRULE(varOrIri, void 0) },
|
|
12002
|
-
{ ALT: () => SUBRULE(verbA, void 0) }
|
|
12003
|
-
])
|
|
12004
|
-
};
|
|
12005
|
-
var varOrTerm = {
|
|
12006
|
-
name: "varOrTerm",
|
|
12007
|
-
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12008
|
-
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
|
|
12009
|
-
{ ALT: () => SUBRULE(graphTerm, void 0) }
|
|
12010
|
-
]),
|
|
12011
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12012
|
-
if (F2.isTermVariable(ast)) {
|
|
12013
|
-
return SUBRULE(var_, ast, void 0);
|
|
11982
|
+
};
|
|
11983
|
+
}
|
|
11984
|
+
function funcExpr2(func) {
|
|
11985
|
+
return {
|
|
11986
|
+
name: unCapitalize(func.name),
|
|
11987
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
|
|
11988
|
+
const operator = CONSUME(func);
|
|
11989
|
+
CONSUME(symbols_exports.LParen);
|
|
11990
|
+
const arg1 = SUBRULE1(expression);
|
|
11991
|
+
CONSUME(symbols_exports.comma);
|
|
11992
|
+
const arg2 = SUBRULE2(expression);
|
|
11993
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
11994
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
|
|
12014
11995
|
}
|
|
12015
|
-
|
|
12016
|
-
|
|
12017
|
-
|
|
12018
|
-
|
|
12019
|
-
|
|
12020
|
-
|
|
12021
|
-
|
|
12022
|
-
|
|
12023
|
-
|
|
12024
|
-
|
|
12025
|
-
|
|
12026
|
-
|
|
12027
|
-
|
|
12028
|
-
|
|
12029
|
-
|
|
12030
|
-
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
12031
|
-
]);
|
|
12032
|
-
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
12033
|
-
},
|
|
12034
|
-
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12035
|
-
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
12036
|
-
}
|
|
12037
|
-
};
|
|
12038
|
-
var graphTerm = {
|
|
12039
|
-
name: "graphTerm",
|
|
12040
|
-
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
12041
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
12042
|
-
{ ALT: () => SUBRULE(rdfLiteral, void 0) },
|
|
12043
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
12044
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
12045
|
-
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
|
|
12046
|
-
{ ALT: () => {
|
|
12047
|
-
const tokenNil = CONSUME(terminals_exports.nil);
|
|
12048
|
-
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
12049
|
-
} }
|
|
12050
|
-
]),
|
|
12051
|
-
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12052
|
-
if (F2.isTermNamed(ast)) {
|
|
12053
|
-
SUBRULE(iri2, ast, void 0);
|
|
12054
|
-
} else if (F2.isTermLiteral(ast)) {
|
|
12055
|
-
SUBRULE(rdfLiteral, ast, void 0);
|
|
12056
|
-
} else if (F2.isTermBlank(ast)) {
|
|
12057
|
-
SUBRULE(blankNode, ast, void 0);
|
|
11996
|
+
};
|
|
11997
|
+
}
|
|
11998
|
+
function funcExpr3(func) {
|
|
11999
|
+
return {
|
|
12000
|
+
name: unCapitalize(func.name),
|
|
12001
|
+
impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
|
|
12002
|
+
const operator = CONSUME(func);
|
|
12003
|
+
CONSUME(symbols_exports.LParen);
|
|
12004
|
+
const arg1 = SUBRULE1(expression);
|
|
12005
|
+
CONSUME1(symbols_exports.comma);
|
|
12006
|
+
const arg2 = SUBRULE2(expression);
|
|
12007
|
+
CONSUME2(symbols_exports.comma);
|
|
12008
|
+
const arg3 = SUBRULE3(expression);
|
|
12009
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12010
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
|
|
12058
12011
|
}
|
|
12059
|
-
}
|
|
12060
|
-
}
|
|
12061
|
-
|
|
12062
|
-
|
|
12063
|
-
|
|
12064
|
-
|
|
12065
|
-
|
|
12066
|
-
|
|
12067
|
-
|
|
12068
|
-
|
|
12069
|
-
|
|
12070
|
-
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
12071
|
-
SUBRULE(iri2, ast, void 0);
|
|
12072
|
-
} else {
|
|
12073
|
-
F2.printFilter(ast, () => braces && PRINT("("));
|
|
12074
|
-
switch (ast.subType) {
|
|
12075
|
-
case "|":
|
|
12076
|
-
case "/": {
|
|
12077
|
-
const [head2, ...tail] = ast.items;
|
|
12078
|
-
SUBRULE(pathGenerator, head2, braces);
|
|
12079
|
-
for (const val of tail) {
|
|
12080
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12081
|
-
SUBRULE(pathGenerator, val, braces);
|
|
12082
|
-
}
|
|
12083
|
-
break;
|
|
12084
|
-
}
|
|
12085
|
-
case "^":
|
|
12086
|
-
F2.printFilter(ast, () => PRINT("^"));
|
|
12087
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12088
|
-
break;
|
|
12089
|
-
case "?":
|
|
12090
|
-
case "*":
|
|
12091
|
-
case "+":
|
|
12092
|
-
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12093
|
-
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12094
|
-
break;
|
|
12095
|
-
case "!":
|
|
12096
|
-
F2.printFilter(ast, () => PRINT("!"));
|
|
12097
|
-
F2.printFilter(ast, () => PRINT("("));
|
|
12098
|
-
SUBRULE(pathGenerator, ast.items[0], false);
|
|
12099
|
-
F2.printFilter(ast, () => PRINT(")"));
|
|
12100
|
-
break;
|
|
12101
|
-
}
|
|
12102
|
-
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
12012
|
+
};
|
|
12013
|
+
}
|
|
12014
|
+
function funcVar1(func) {
|
|
12015
|
+
return {
|
|
12016
|
+
name: unCapitalize(func.name),
|
|
12017
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12018
|
+
const operator = CONSUME(func);
|
|
12019
|
+
CONSUME(symbols_exports.LParen);
|
|
12020
|
+
const arg = SUBRULE(var_);
|
|
12021
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12022
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12103
12023
|
}
|
|
12104
|
-
}
|
|
12105
|
-
}
|
|
12106
|
-
function
|
|
12024
|
+
};
|
|
12025
|
+
}
|
|
12026
|
+
function funcExprOrNil1(func) {
|
|
12107
12027
|
return {
|
|
12108
|
-
name,
|
|
12109
|
-
impl: ({ ACTION, CONSUME,
|
|
12110
|
-
const
|
|
12111
|
-
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12028
|
+
name: unCapitalize(func.name),
|
|
12029
|
+
impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
|
|
12030
|
+
const operator = CONSUME(func);
|
|
12031
|
+
return OR([
|
|
12032
|
+
{ ALT: () => {
|
|
12033
|
+
CONSUME(symbols_exports.LParen);
|
|
12034
|
+
const arg = SUBRULE(expression);
|
|
12035
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12036
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12037
|
+
} },
|
|
12038
|
+
{ ALT: () => {
|
|
12039
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
12040
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
12041
|
+
} }
|
|
12042
|
+
]);
|
|
12043
|
+
}
|
|
12044
|
+
};
|
|
12045
|
+
}
|
|
12046
|
+
function funcNil1(func) {
|
|
12047
|
+
return {
|
|
12048
|
+
name: unCapitalize(func.name),
|
|
12049
|
+
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
12050
|
+
const operator = CONSUME(func);
|
|
12051
|
+
const nil2 = CONSUME(terminals_exports.nil);
|
|
12052
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
|
|
12053
|
+
}
|
|
12054
|
+
};
|
|
12055
|
+
}
|
|
12056
|
+
function funcExprList1(func) {
|
|
12057
|
+
return {
|
|
12058
|
+
name: unCapitalize(func.name),
|
|
12059
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12060
|
+
const operator = CONSUME(func);
|
|
12061
|
+
const args = SUBRULE(expressionList);
|
|
12062
|
+
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
12063
|
+
}
|
|
12064
|
+
};
|
|
12065
|
+
}
|
|
12066
|
+
function funcExpr2or3(func) {
|
|
12067
|
+
return {
|
|
12068
|
+
name: unCapitalize(func.name),
|
|
12069
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
|
|
12070
|
+
const operator = CONSUME(func);
|
|
12071
|
+
CONSUME(symbols_exports.LParen);
|
|
12072
|
+
const arg1 = SUBRULE1(expression);
|
|
12073
|
+
CONSUME1(symbols_exports.comma);
|
|
12074
|
+
const arg2 = SUBRULE2(expression);
|
|
12075
|
+
const arg3 = OPTION(() => {
|
|
12076
|
+
CONSUME2(symbols_exports.comma);
|
|
12077
|
+
return SUBRULE3(expression);
|
|
12117
12078
|
});
|
|
12118
|
-
|
|
12079
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12080
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
12081
|
+
operator.image,
|
|
12082
|
+
arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
|
|
12083
|
+
C.factory.sourceLocation(operator, close)
|
|
12084
|
+
));
|
|
12119
12085
|
}
|
|
12120
12086
|
};
|
|
12121
12087
|
}
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
const item = SUBRULE(pathPrimary, void 0);
|
|
12139
|
-
const modification = OPTION(() => SUBRULE(pathMod, void 0));
|
|
12140
|
-
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
12141
|
-
}
|
|
12142
|
-
};
|
|
12143
|
-
var pathMod = {
|
|
12144
|
-
name: "pathMod",
|
|
12145
|
-
impl: ({ CONSUME, OR }) => () => OR([
|
|
12146
|
-
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
12147
|
-
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
12148
|
-
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
12149
|
-
])
|
|
12150
|
-
};
|
|
12151
|
-
var pathPrimary = {
|
|
12152
|
-
name: "pathPrimary",
|
|
12153
|
-
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
12154
|
-
{ ALT: () => SUBRULE(iri2, void 0) },
|
|
12155
|
-
{ ALT: () => SUBRULE(verbA, void 0) },
|
|
12156
|
-
{ ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
|
|
12157
|
-
{ ALT: () => {
|
|
12088
|
+
function funcExpr3or4(func) {
|
|
12089
|
+
return {
|
|
12090
|
+
name: unCapitalize(func.name),
|
|
12091
|
+
impl: ({
|
|
12092
|
+
ACTION,
|
|
12093
|
+
CONSUME,
|
|
12094
|
+
SUBRULE1,
|
|
12095
|
+
SUBRULE2,
|
|
12096
|
+
SUBRULE3,
|
|
12097
|
+
SUBRULE4,
|
|
12098
|
+
CONSUME1,
|
|
12099
|
+
OPTION,
|
|
12100
|
+
CONSUME2,
|
|
12101
|
+
CONSUME3
|
|
12102
|
+
}) => (C) => {
|
|
12103
|
+
const operator = CONSUME(func);
|
|
12158
12104
|
CONSUME(symbols_exports.LParen);
|
|
12159
|
-
const
|
|
12160
|
-
|
|
12161
|
-
|
|
12162
|
-
|
|
12163
|
-
|
|
12164
|
-
|
|
12165
|
-
|
|
12166
|
-
|
|
12167
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
12168
|
-
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
12169
|
-
return OR([
|
|
12170
|
-
{ ALT: () => {
|
|
12171
|
-
const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
|
|
12172
|
-
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
12173
|
-
} },
|
|
12174
|
-
{ ALT: () => {
|
|
12175
|
-
const open = CONSUME(symbols_exports.LParen);
|
|
12176
|
-
const head2 = SUBRULE2(pathOneInPropertySet, void 0);
|
|
12177
|
-
const tail = [];
|
|
12178
|
-
MANY(() => {
|
|
12179
|
-
CONSUME(symbols_exports.pipe);
|
|
12180
|
-
const item = SUBRULE3(pathOneInPropertySet, void 0);
|
|
12181
|
-
tail.push(item);
|
|
12182
|
-
});
|
|
12183
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12184
|
-
return ACTION(() => {
|
|
12185
|
-
const F2 = C.factory;
|
|
12186
|
-
if (tail.length === 0) {
|
|
12187
|
-
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
12188
|
-
}
|
|
12189
|
-
return F2.path(
|
|
12190
|
-
"!",
|
|
12191
|
-
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
12192
|
-
F2.sourceLocation(exclamation2, close)
|
|
12193
|
-
);
|
|
12194
|
-
});
|
|
12195
|
-
} }
|
|
12196
|
-
]);
|
|
12197
|
-
}
|
|
12198
|
-
};
|
|
12199
|
-
var pathOneInPropertySet = {
|
|
12200
|
-
name: "pathOneInPropertySet",
|
|
12201
|
-
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
12202
|
-
{ ALT: () => SUBRULE1(iri2, void 0) },
|
|
12203
|
-
{ ALT: () => SUBRULE1(verbA, void 0) },
|
|
12204
|
-
{ ALT: () => {
|
|
12205
|
-
const hat2 = CONSUME(symbols_exports.hat);
|
|
12206
|
-
const item = OR2([
|
|
12207
|
-
{ ALT: () => SUBRULE2(iri2, void 0) },
|
|
12208
|
-
{ ALT: () => SUBRULE2(verbA, void 0) }
|
|
12209
|
-
]);
|
|
12210
|
-
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12211
|
-
} }
|
|
12212
|
-
])
|
|
12213
|
-
};
|
|
12214
|
-
|
|
12215
|
-
// ../../packages/rules-sparql-1-1/lib/grammar/tripleBlock.ts
|
|
12216
|
-
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
12217
|
-
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12218
|
-
const triples = [];
|
|
12219
|
-
let parsedDot = true;
|
|
12220
|
-
let dotToken;
|
|
12221
|
-
AT_LEAST_ONE({
|
|
12222
|
-
GATE: () => parsedDot,
|
|
12223
|
-
DEF: () => {
|
|
12224
|
-
parsedDot = false;
|
|
12225
|
-
const template = SUBRULE(triplesSameSubjectSubrule, void 0);
|
|
12226
|
-
ACTION(() => {
|
|
12227
|
-
triples.push(...template);
|
|
12228
|
-
});
|
|
12229
|
-
OPTION(() => {
|
|
12230
|
-
dotToken = CONSUME(symbols_exports.dot);
|
|
12231
|
-
parsedDot = true;
|
|
12232
|
-
});
|
|
12233
|
-
}
|
|
12234
|
-
});
|
|
12235
|
-
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
12236
|
-
};
|
|
12237
|
-
}
|
|
12238
|
-
var triplesBlock = {
|
|
12239
|
-
name: "triplesBlock",
|
|
12240
|
-
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
|
|
12241
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12242
|
-
for (const [index, triple] of ast.triples.entries()) {
|
|
12243
|
-
HANDLE_LOC(triple, () => {
|
|
12244
|
-
const nextTriple = ast.triples.at(index);
|
|
12245
|
-
if (F2.isTripleCollection(triple)) {
|
|
12246
|
-
SUBRULE(graphNodePath, triple, void 0);
|
|
12247
|
-
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
12248
|
-
} else {
|
|
12249
|
-
SUBRULE(graphNodePath, triple.subject, void 0);
|
|
12250
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12251
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
12252
|
-
} else {
|
|
12253
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12254
|
-
}
|
|
12255
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
12256
|
-
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12257
|
-
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
12258
|
-
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12259
|
-
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12260
|
-
} else {
|
|
12261
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12262
|
-
}
|
|
12263
|
-
}
|
|
12105
|
+
const arg1 = SUBRULE1(expression);
|
|
12106
|
+
CONSUME1(symbols_exports.comma);
|
|
12107
|
+
const arg2 = SUBRULE2(expression);
|
|
12108
|
+
CONSUME2(symbols_exports.comma);
|
|
12109
|
+
const arg3 = SUBRULE3(expression);
|
|
12110
|
+
const arg4 = OPTION(() => {
|
|
12111
|
+
CONSUME3(symbols_exports.comma);
|
|
12112
|
+
return SUBRULE4(expression);
|
|
12264
12113
|
});
|
|
12114
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12115
|
+
return ACTION(() => C.factory.expressionOperation(
|
|
12116
|
+
operator.image,
|
|
12117
|
+
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
12118
|
+
C.factory.sourceLocation(operator, close)
|
|
12119
|
+
));
|
|
12265
12120
|
}
|
|
12266
|
-
}
|
|
12267
|
-
};
|
|
12268
|
-
function triplesSameSubjectImpl(name, allowPaths) {
|
|
12269
|
-
return {
|
|
12270
|
-
name,
|
|
12271
|
-
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12272
|
-
{ ALT: () => {
|
|
12273
|
-
const subject = SUBRULE(varOrTerm, void 0);
|
|
12274
|
-
const res = SUBRULE(
|
|
12275
|
-
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
12276
|
-
{ subject: ACTION(() => C.factory.dematerialized(subject)) }
|
|
12277
|
-
);
|
|
12278
|
-
return ACTION(() => {
|
|
12279
|
-
if (res.length > 0) {
|
|
12280
|
-
res[0].subject = subject;
|
|
12281
|
-
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
12282
|
-
}
|
|
12283
|
-
return res;
|
|
12284
|
-
});
|
|
12285
|
-
} },
|
|
12286
|
-
{ ALT: () => {
|
|
12287
|
-
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
|
|
12288
|
-
const restNode = SUBRULE(
|
|
12289
|
-
allowPaths ? propertyListPath : propertyList,
|
|
12290
|
-
{ subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
|
|
12291
|
-
);
|
|
12292
|
-
return ACTION(() => {
|
|
12293
|
-
if (restNode.length === 0) {
|
|
12294
|
-
return [subjectNode];
|
|
12295
|
-
}
|
|
12296
|
-
restNode[0].subject = subjectNode;
|
|
12297
|
-
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
12298
|
-
return restNode;
|
|
12299
|
-
});
|
|
12300
|
-
} }
|
|
12301
|
-
])
|
|
12302
|
-
};
|
|
12303
|
-
}
|
|
12304
|
-
var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
|
|
12305
|
-
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
12306
|
-
var triplesTemplate = {
|
|
12307
|
-
name: "triplesTemplate",
|
|
12308
|
-
impl: triplesDotSeperated(triplesSameSubject)
|
|
12309
|
-
};
|
|
12310
|
-
function propertyListImpl(name, allowPaths) {
|
|
12311
|
-
return {
|
|
12312
|
-
name,
|
|
12313
|
-
impl: ({ SUBRULE, OPTION }) => (_, arg) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, arg)) ?? []
|
|
12314
12121
|
};
|
|
12315
12122
|
}
|
|
12316
|
-
|
|
12317
|
-
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
12318
|
-
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
12123
|
+
function funcGroupGraphPattern(func) {
|
|
12319
12124
|
return {
|
|
12320
|
-
name,
|
|
12321
|
-
impl: ({ ACTION,
|
|
12322
|
-
const
|
|
12323
|
-
|
|
12324
|
-
|
|
12325
|
-
|
|
12326
|
-
|
|
12327
|
-
|
|
12328
|
-
|
|
12329
|
-
{ ALT: () => SUBRULE1(verbPath, void 0) },
|
|
12330
|
-
{ ALT: () => SUBRULE1(verbSimple, void 0) }
|
|
12331
|
-
]) : SUBRULE1(verb, void 0);
|
|
12332
|
-
const triples = SUBRULE1(
|
|
12333
|
-
allowPaths ? objectListPath : objectList,
|
|
12334
|
-
ACTION(() => ({ subject: arg.subject, predicate }))
|
|
12335
|
-
);
|
|
12336
|
-
MANY2(() => {
|
|
12337
|
-
CONSUME(symbols_exports.semi);
|
|
12338
|
-
parsedSemi = true;
|
|
12339
|
-
});
|
|
12340
|
-
ACTION(() => {
|
|
12341
|
-
result.push(...triples);
|
|
12342
|
-
});
|
|
12343
|
-
}
|
|
12344
|
-
});
|
|
12345
|
-
return result;
|
|
12125
|
+
name: unCapitalize(func.name),
|
|
12126
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12127
|
+
const operator = CONSUME(func);
|
|
12128
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12129
|
+
return ACTION(() => C.factory.expressionPatternOperation(
|
|
12130
|
+
operator.image,
|
|
12131
|
+
group,
|
|
12132
|
+
C.factory.sourceLocation(operator, group)
|
|
12133
|
+
));
|
|
12346
12134
|
}
|
|
12347
12135
|
};
|
|
12348
12136
|
}
|
|
12349
|
-
|
|
12350
|
-
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12351
|
-
var verbPath = {
|
|
12352
|
-
name: "verbPath",
|
|
12353
|
-
impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
|
|
12354
|
-
};
|
|
12355
|
-
var verbSimple = {
|
|
12356
|
-
name: "verbSimple",
|
|
12357
|
-
impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
|
|
12358
|
-
};
|
|
12359
|
-
function objectListImpl(name, allowPaths) {
|
|
12137
|
+
function baseAggregateFunc(func) {
|
|
12360
12138
|
return {
|
|
12361
|
-
name,
|
|
12362
|
-
impl: ({ ACTION, SUBRULE,
|
|
12363
|
-
const
|
|
12364
|
-
|
|
12365
|
-
|
|
12366
|
-
|
|
12367
|
-
|
|
12368
|
-
|
|
12369
|
-
|
|
12370
|
-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12139
|
+
name: unCapitalize(func.name),
|
|
12140
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
|
|
12141
|
+
const operator = CONSUME(func);
|
|
12142
|
+
CONSUME(symbols_exports.LParen);
|
|
12143
|
+
const distinct2 = OPTION(() => CONSUME(distinct));
|
|
12144
|
+
const expr1 = SUBRULE(expression);
|
|
12145
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12146
|
+
return ACTION(() => C.factory.aggregate(
|
|
12147
|
+
operator.image,
|
|
12148
|
+
distinct2 !== void 0,
|
|
12149
|
+
expr1,
|
|
12150
|
+
void 0,
|
|
12151
|
+
C.factory.sourceLocation(operator, close)
|
|
12152
|
+
));
|
|
12374
12153
|
}
|
|
12375
12154
|
};
|
|
12376
12155
|
}
|
|
12377
|
-
|
|
12378
|
-
|
|
12379
|
-
|
|
12380
|
-
|
|
12381
|
-
|
|
12382
|
-
|
|
12383
|
-
|
|
12384
|
-
|
|
12385
|
-
|
|
12386
|
-
|
|
12387
|
-
|
|
12388
|
-
var
|
|
12389
|
-
var
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12402
|
-
|
|
12403
|
-
|
|
12404
|
-
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
}
|
|
12438
|
-
|
|
12439
|
-
}
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
|
|
12156
|
+
|
|
12157
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/builtIn.ts
|
|
12158
|
+
var builtInStr = funcExpr1(BuildinCalls_exports.str);
|
|
12159
|
+
var builtInLang = funcExpr1(BuildinCalls_exports.lang);
|
|
12160
|
+
var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
|
|
12161
|
+
var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
|
|
12162
|
+
var builtInBound = funcVar1(BuildinCalls_exports.bound);
|
|
12163
|
+
var builtInIri = funcExpr1(BuildinCalls_exports.iri);
|
|
12164
|
+
var builtInUri = funcExpr1(BuildinCalls_exports.uri);
|
|
12165
|
+
var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
|
|
12166
|
+
var builtInRand = funcNil1(BuildinCalls_exports.rand);
|
|
12167
|
+
var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
|
|
12168
|
+
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
12169
|
+
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
12170
|
+
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
12171
|
+
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
12172
|
+
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
12173
|
+
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
12174
|
+
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
12175
|
+
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
12176
|
+
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
12177
|
+
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
12178
|
+
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
12179
|
+
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
12180
|
+
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
12181
|
+
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
12182
|
+
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
12183
|
+
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
12184
|
+
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
12185
|
+
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
12186
|
+
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
12187
|
+
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
12188
|
+
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
12189
|
+
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
12190
|
+
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
12191
|
+
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
12192
|
+
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
12193
|
+
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
12194
|
+
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
12195
|
+
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
12196
|
+
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
12197
|
+
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
12198
|
+
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
12199
|
+
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
12200
|
+
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
12201
|
+
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
12202
|
+
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
12203
|
+
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
12204
|
+
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
12205
|
+
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
12206
|
+
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
12207
|
+
function builtInCallList(SUBRULE) {
|
|
12208
|
+
return [
|
|
12209
|
+
{ ALT: () => SUBRULE(aggregate) },
|
|
12210
|
+
{ ALT: () => SUBRULE(builtInStr) },
|
|
12211
|
+
{ ALT: () => SUBRULE(builtInLang) },
|
|
12212
|
+
{ ALT: () => SUBRULE(builtInLangmatches) },
|
|
12213
|
+
{ ALT: () => SUBRULE(builtInDatatype) },
|
|
12214
|
+
{ ALT: () => SUBRULE(builtInBound) },
|
|
12215
|
+
{ ALT: () => SUBRULE(builtInIri) },
|
|
12216
|
+
{ ALT: () => SUBRULE(builtInUri) },
|
|
12217
|
+
{ ALT: () => SUBRULE(builtInBnodeSparqlJs) },
|
|
12218
|
+
{ ALT: () => SUBRULE(builtInRand) },
|
|
12219
|
+
{ ALT: () => SUBRULE(builtInAbs) },
|
|
12220
|
+
{ ALT: () => SUBRULE(builtInCeil) },
|
|
12221
|
+
{ ALT: () => SUBRULE(builtInFloor) },
|
|
12222
|
+
{ ALT: () => SUBRULE(builtInRound) },
|
|
12223
|
+
{ ALT: () => SUBRULE(builtInConcat) },
|
|
12224
|
+
{ ALT: () => SUBRULE(substringExpression) },
|
|
12225
|
+
{ ALT: () => SUBRULE(builtInStrlen) },
|
|
12226
|
+
{ ALT: () => SUBRULE(strReplaceExpression) },
|
|
12227
|
+
{ ALT: () => SUBRULE(builtInUcase) },
|
|
12228
|
+
{ ALT: () => SUBRULE(builtInLcase) },
|
|
12229
|
+
{ ALT: () => SUBRULE(builtInEncode_for_uri) },
|
|
12230
|
+
{ ALT: () => SUBRULE(builtInContains) },
|
|
12231
|
+
{ ALT: () => SUBRULE(builtInStrstarts) },
|
|
12232
|
+
{ ALT: () => SUBRULE(builtInStrends) },
|
|
12233
|
+
{ ALT: () => SUBRULE(builtInStrbefore) },
|
|
12234
|
+
{ ALT: () => SUBRULE(builtInStrafter) },
|
|
12235
|
+
{ ALT: () => SUBRULE(builtInYear) },
|
|
12236
|
+
{ ALT: () => SUBRULE(builtInMonth) },
|
|
12237
|
+
{ ALT: () => SUBRULE(builtInDay) },
|
|
12238
|
+
{ ALT: () => SUBRULE(builtInHours) },
|
|
12239
|
+
{ ALT: () => SUBRULE(builtInMinutes) },
|
|
12240
|
+
{ ALT: () => SUBRULE(builtInSeconds) },
|
|
12241
|
+
{ ALT: () => SUBRULE(builtInTimezone) },
|
|
12242
|
+
{ ALT: () => SUBRULE(builtInTz) },
|
|
12243
|
+
{ ALT: () => SUBRULE(builtInNow) },
|
|
12244
|
+
{ ALT: () => SUBRULE(builtInUuid) },
|
|
12245
|
+
{ ALT: () => SUBRULE(builtInStruuid) },
|
|
12246
|
+
{ ALT: () => SUBRULE(builtInMd5) },
|
|
12247
|
+
{ ALT: () => SUBRULE(builtInSha1) },
|
|
12248
|
+
{ ALT: () => SUBRULE(builtInSha256) },
|
|
12249
|
+
{ ALT: () => SUBRULE(builtInSha384) },
|
|
12250
|
+
{ ALT: () => SUBRULE(builtInSha512) },
|
|
12251
|
+
{ ALT: () => SUBRULE(builtInCoalesce) },
|
|
12252
|
+
{ ALT: () => SUBRULE(builtInIf) },
|
|
12253
|
+
{ ALT: () => SUBRULE(builtInStrlang) },
|
|
12254
|
+
{ ALT: () => SUBRULE(builtInStrdt) },
|
|
12255
|
+
{ ALT: () => SUBRULE(builtInSameterm) },
|
|
12256
|
+
{ ALT: () => SUBRULE(builtInIsiri) },
|
|
12257
|
+
{ ALT: () => SUBRULE(builtInIsuri) },
|
|
12258
|
+
{ ALT: () => SUBRULE(builtInIsblank) },
|
|
12259
|
+
{ ALT: () => SUBRULE(builtInIsliteral) },
|
|
12260
|
+
{ ALT: () => SUBRULE(builtInIsnumeric) },
|
|
12261
|
+
{ ALT: () => SUBRULE(regexExpression) },
|
|
12262
|
+
{ ALT: () => SUBRULE(existsFunc) },
|
|
12263
|
+
{ ALT: () => SUBRULE(notExistsFunc) }
|
|
12264
|
+
];
|
|
12451
12265
|
}
|
|
12452
|
-
var
|
|
12453
|
-
|
|
12454
|
-
|
|
12455
|
-
|
|
12456
|
-
|
|
12457
|
-
|
|
12458
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12459
|
-
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12460
|
-
const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
|
|
12461
|
-
const propList = SUBRULE(propertyPathNotEmptyImpl, { subject: blankNode2 });
|
|
12462
|
-
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12463
|
-
return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
|
|
12464
|
-
blankNode2,
|
|
12465
|
-
propList,
|
|
12466
|
-
C.factory.sourceLocation(startToken, endToken)
|
|
12467
|
-
));
|
|
12468
|
-
},
|
|
12469
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12470
|
-
F2.printFilter(ast, () => PRINT("["));
|
|
12471
|
-
for (const triple of ast.triples) {
|
|
12472
|
-
HANDLE_LOC(triple, () => {
|
|
12473
|
-
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12474
|
-
SUBRULE(varOrTerm, triple.predicate, void 0);
|
|
12475
|
-
} else {
|
|
12476
|
-
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12477
|
-
}
|
|
12478
|
-
SUBRULE(graphNodePath, triple.object, void 0);
|
|
12479
|
-
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12480
|
-
});
|
|
12481
|
-
}
|
|
12482
|
-
F2.printFilter(ast, () => PRINT("]"));
|
|
12266
|
+
var builtInCall = {
|
|
12267
|
+
name: "builtInCall",
|
|
12268
|
+
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
12269
|
+
const cached = cache.get(builtInCall);
|
|
12270
|
+
if (cached) {
|
|
12271
|
+
return OR(cached);
|
|
12483
12272
|
}
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
|
|
12492
|
-
|
|
12493
|
-
|
|
12494
|
-
|
|
12495
|
-
|
|
12496
|
-
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
|
|
12501
|
-
|
|
12502
|
-
|
|
12503
|
-
|
|
12273
|
+
const builtIns = builtInCallList(SUBRULE);
|
|
12274
|
+
cache.set(builtInCall, builtIns);
|
|
12275
|
+
return OR(builtIns);
|
|
12276
|
+
}
|
|
12277
|
+
};
|
|
12278
|
+
var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
|
|
12279
|
+
var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
|
|
12280
|
+
var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
|
|
12281
|
+
var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
|
|
12282
|
+
var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
|
|
12283
|
+
var aggregateCount = {
|
|
12284
|
+
name: unCapitalize(BuildinCalls_exports.count.name),
|
|
12285
|
+
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
12286
|
+
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
12287
|
+
CONSUME(symbols_exports.LParen);
|
|
12288
|
+
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
12289
|
+
const expressionVal = OR([
|
|
12290
|
+
{ ALT: () => {
|
|
12291
|
+
const starToken = CONSUME(symbols_exports.star);
|
|
12292
|
+
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
12293
|
+
} },
|
|
12294
|
+
{ ALT: () => SUBRULE(expression) }
|
|
12295
|
+
]);
|
|
12296
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12297
|
+
return ACTION(() => {
|
|
12298
|
+
const F2 = C.factory;
|
|
12299
|
+
if (C.factory.isWildcard(expressionVal)) {
|
|
12300
|
+
return F2.aggregate(
|
|
12301
|
+
operatorToken.image,
|
|
12302
|
+
Boolean(distinctToken),
|
|
12303
|
+
expressionVal,
|
|
12304
|
+
void 0,
|
|
12305
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
12306
|
+
);
|
|
12504
12307
|
}
|
|
12505
|
-
|
|
12506
|
-
|
|
12507
|
-
|
|
12508
|
-
|
|
12509
|
-
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
|
|
12513
|
-
name: "whereClause",
|
|
12514
|
-
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12515
|
-
const where2 = OPTION(() => CONSUME(where));
|
|
12516
|
-
const group = SUBRULE(groupGraphPattern, void 0);
|
|
12517
|
-
return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
|
|
12518
|
-
},
|
|
12519
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12520
|
-
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12521
|
-
SUBRULE(groupGraphPattern, ast.val, void 0);
|
|
12308
|
+
return F2.aggregate(
|
|
12309
|
+
operatorToken.image,
|
|
12310
|
+
Boolean(distinctToken),
|
|
12311
|
+
expressionVal,
|
|
12312
|
+
void 0,
|
|
12313
|
+
C.factory.sourceLocation(operatorToken, closeToken)
|
|
12314
|
+
);
|
|
12315
|
+
});
|
|
12522
12316
|
}
|
|
12523
12317
|
};
|
|
12524
|
-
var
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
|
|
12529
|
-
|
|
12530
|
-
|
|
12318
|
+
var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
|
|
12319
|
+
var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
|
|
12320
|
+
var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
|
|
12321
|
+
var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
|
|
12322
|
+
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
12323
|
+
var aggregateGroup_concat = {
|
|
12324
|
+
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
12325
|
+
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
12326
|
+
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
12327
|
+
CONSUME(symbols_exports.LParen);
|
|
12328
|
+
const distinctToken = OPTION1(() => CONSUME(distinct));
|
|
12329
|
+
const expr = SUBRULE(expression);
|
|
12330
|
+
const sep = OPTION2(() => {
|
|
12331
|
+
CONSUME(symbols_exports.semi);
|
|
12332
|
+
CONSUME(separator);
|
|
12333
|
+
CONSUME(symbols_exports.equal);
|
|
12334
|
+
return SUBRULE(string);
|
|
12335
|
+
});
|
|
12336
|
+
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12337
|
+
return ACTION(() => {
|
|
12338
|
+
const F2 = C.factory;
|
|
12339
|
+
return F2.aggregate(
|
|
12340
|
+
operatorToken.image,
|
|
12341
|
+
Boolean(distinctToken),
|
|
12342
|
+
expr,
|
|
12343
|
+
sep?.value ?? " ",
|
|
12344
|
+
F2.sourceLocation(operatorToken, closeToken)
|
|
12345
|
+
);
|
|
12346
|
+
});
|
|
12347
|
+
}
|
|
12348
|
+
};
|
|
12349
|
+
var aggregate = {
|
|
12350
|
+
name: "aggregate",
|
|
12351
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
12352
|
+
const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
|
|
12353
|
+
ACTION(() => C.parseMode.add("inAggregate"));
|
|
12354
|
+
const result = OR([
|
|
12355
|
+
{ ALT: () => SUBRULE(aggregateCount) },
|
|
12356
|
+
{ ALT: () => SUBRULE(aggregateSum) },
|
|
12357
|
+
{ ALT: () => SUBRULE(aggregateMin) },
|
|
12358
|
+
{ ALT: () => SUBRULE(aggregateMax) },
|
|
12359
|
+
{ ALT: () => SUBRULE(aggregateAvg) },
|
|
12360
|
+
{ ALT: () => SUBRULE(aggregateSample) },
|
|
12361
|
+
{ ALT: () => SUBRULE(aggregateGroup_concat) }
|
|
12531
12362
|
]);
|
|
12532
|
-
|
|
12533
|
-
|
|
12363
|
+
ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
|
|
12364
|
+
ACTION(() => {
|
|
12365
|
+
if (!C.parseMode.has("canParseAggregate")) {
|
|
12366
|
+
throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
|
|
12367
|
+
}
|
|
12368
|
+
if (C.parseMode.has("inAggregate")) {
|
|
12369
|
+
throw new Error("An aggregate function is not allowed within an aggregate function.");
|
|
12370
|
+
}
|
|
12371
|
+
});
|
|
12372
|
+
return result;
|
|
12534
12373
|
},
|
|
12535
12374
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12536
|
-
F2.printFilter(ast, () =>
|
|
12537
|
-
|
|
12538
|
-
|
|
12375
|
+
F2.printFilter(ast, () => {
|
|
12376
|
+
PRINT_WORD(ast.aggregation, "(");
|
|
12377
|
+
if (ast.distinct) {
|
|
12378
|
+
PRINT_WORD("DISTINCT");
|
|
12379
|
+
}
|
|
12380
|
+
});
|
|
12381
|
+
const arg = ast.expression[0];
|
|
12382
|
+
if (F2.isWildcard(arg)) {
|
|
12383
|
+
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
12384
|
+
} else {
|
|
12385
|
+
SUBRULE(expression, arg);
|
|
12539
12386
|
}
|
|
12540
|
-
F2.
|
|
12387
|
+
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
12388
|
+
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
12389
|
+
}
|
|
12390
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12541
12391
|
}
|
|
12542
12392
|
};
|
|
12543
|
-
|
|
12544
|
-
|
|
12393
|
+
|
|
12394
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/general.ts
|
|
12395
|
+
var prologue = {
|
|
12396
|
+
name: "prologue",
|
|
12397
|
+
impl: ({ SUBRULE, MANY, OR }) => () => {
|
|
12398
|
+
const result = [];
|
|
12399
|
+
MANY(() => OR([
|
|
12400
|
+
{ ALT: () => result.push(SUBRULE(baseDecl2)) },
|
|
12401
|
+
// TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
|
|
12402
|
+
// We might need to check this.
|
|
12403
|
+
{ ALT: () => result.push(SUBRULE(prefixDecl2)) }
|
|
12404
|
+
]));
|
|
12405
|
+
return result;
|
|
12406
|
+
},
|
|
12545
12407
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
context
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
solutionModifiers: ast.solutionModifiers,
|
|
12553
|
-
values: ast.values,
|
|
12554
|
-
distinct: ast.distinct,
|
|
12555
|
-
reduced: ast.reduced
|
|
12556
|
-
}, ast.loc), void 0);
|
|
12557
|
-
} else if (ast.subType === "group") {
|
|
12558
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12559
|
-
} else if (ast.subType === "bgp") {
|
|
12560
|
-
SUBRULE(triplesBlock, ast, void 0);
|
|
12561
|
-
} else {
|
|
12562
|
-
SUBRULE(graphPatternNotTriples, ast, void 0);
|
|
12408
|
+
for (const context of ast) {
|
|
12409
|
+
if (F2.isContextDefinitionBase(context)) {
|
|
12410
|
+
SUBRULE(baseDecl2, context);
|
|
12411
|
+
} else if (F2.isContextDefinitionPrefix(context)) {
|
|
12412
|
+
SUBRULE(prefixDecl2, context);
|
|
12413
|
+
}
|
|
12563
12414
|
}
|
|
12564
12415
|
}
|
|
12565
12416
|
};
|
|
12566
|
-
var
|
|
12567
|
-
name: "
|
|
12568
|
-
impl: ({ ACTION,
|
|
12569
|
-
const
|
|
12570
|
-
const
|
|
12571
|
-
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12417
|
+
var baseDecl2 = {
|
|
12418
|
+
name: "baseDecl",
|
|
12419
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12420
|
+
const base = CONSUME(baseDecl);
|
|
12421
|
+
const val = SUBRULE(iriFull);
|
|
12422
|
+
return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
|
|
12423
|
+
},
|
|
12424
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12425
|
+
F2.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
12426
|
+
SUBRULE(iri2, ast.value);
|
|
12427
|
+
}
|
|
12428
|
+
};
|
|
12429
|
+
var prefixDecl2 = {
|
|
12430
|
+
name: "prefixDecl",
|
|
12431
|
+
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
12432
|
+
const prefix = CONSUME(prefixDecl);
|
|
12433
|
+
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
12434
|
+
const value = SUBRULE(iriFull);
|
|
12435
|
+
return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
|
|
12436
|
+
},
|
|
12437
|
+
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
|
|
12438
|
+
F2.printFilter(ast, () => {
|
|
12439
|
+
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
12582
12440
|
});
|
|
12583
|
-
|
|
12584
|
-
return patterns;
|
|
12441
|
+
SUBRULE(iri2, ast.value);
|
|
12585
12442
|
}
|
|
12586
12443
|
};
|
|
12587
|
-
var
|
|
12588
|
-
name: "
|
|
12444
|
+
var verb = {
|
|
12445
|
+
name: "verb",
|
|
12589
12446
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12590
|
-
{ ALT: () => SUBRULE(
|
|
12591
|
-
{ ALT: () => SUBRULE(
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
{
|
|
12447
|
+
{ ALT: () => SUBRULE(varOrIri) },
|
|
12448
|
+
{ ALT: () => SUBRULE(verbA) }
|
|
12449
|
+
])
|
|
12450
|
+
};
|
|
12451
|
+
var varOrTerm = {
|
|
12452
|
+
name: "varOrTerm",
|
|
12453
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12454
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12455
|
+
{ ALT: () => SUBRULE(graphTerm) }
|
|
12598
12456
|
]),
|
|
12599
|
-
gImpl: ({ SUBRULE }) => (ast) => {
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
case "union":
|
|
12603
|
-
SUBRULE(groupOrUnionGraphPattern, ast, void 0);
|
|
12604
|
-
break;
|
|
12605
|
-
case "optional":
|
|
12606
|
-
SUBRULE(optionalGraphPattern, ast, void 0);
|
|
12607
|
-
break;
|
|
12608
|
-
case "minus":
|
|
12609
|
-
SUBRULE(minusGraphPattern, ast, void 0);
|
|
12610
|
-
break;
|
|
12611
|
-
case "graph":
|
|
12612
|
-
SUBRULE(graphGraphPattern, ast, void 0);
|
|
12613
|
-
break;
|
|
12614
|
-
case "service":
|
|
12615
|
-
SUBRULE(serviceGraphPattern, ast, void 0);
|
|
12616
|
-
break;
|
|
12617
|
-
case "filter":
|
|
12618
|
-
SUBRULE(filter3, ast, void 0);
|
|
12619
|
-
break;
|
|
12620
|
-
case "bind":
|
|
12621
|
-
SUBRULE(bind2, ast, void 0);
|
|
12622
|
-
break;
|
|
12623
|
-
case "values":
|
|
12624
|
-
SUBRULE(inlineData, ast, void 0);
|
|
12625
|
-
break;
|
|
12457
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12458
|
+
if (F2.isTermVariable(ast)) {
|
|
12459
|
+
return SUBRULE(var_, ast);
|
|
12626
12460
|
}
|
|
12461
|
+
return SUBRULE(graphTerm, ast);
|
|
12627
12462
|
}
|
|
12628
12463
|
};
|
|
12629
|
-
var
|
|
12630
|
-
name: "
|
|
12631
|
-
impl: ({
|
|
12632
|
-
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
},
|
|
12636
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12637
|
-
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12638
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12639
|
-
}
|
|
12464
|
+
var varOrIri = {
|
|
12465
|
+
name: "varOrIri",
|
|
12466
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12467
|
+
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
12468
|
+
{ ALT: () => SUBRULE(iri2) }
|
|
12469
|
+
])
|
|
12640
12470
|
};
|
|
12641
|
-
var
|
|
12642
|
-
name: "
|
|
12643
|
-
impl: ({ ACTION,
|
|
12644
|
-
const
|
|
12645
|
-
|
|
12646
|
-
|
|
12647
|
-
|
|
12471
|
+
var var_ = {
|
|
12472
|
+
name: "var",
|
|
12473
|
+
impl: ({ ACTION, CONSUME, OR }) => (C) => {
|
|
12474
|
+
const varToken = OR([
|
|
12475
|
+
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
12476
|
+
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
12477
|
+
]);
|
|
12478
|
+
return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
|
|
12648
12479
|
},
|
|
12649
|
-
gImpl: ({
|
|
12650
|
-
F2.printFilter(ast, () => PRINT_WORD(
|
|
12651
|
-
SUBRULE(varOrTerm, ast.name, void 0);
|
|
12652
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12480
|
+
gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12481
|
+
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
12653
12482
|
}
|
|
12654
12483
|
};
|
|
12655
|
-
var
|
|
12656
|
-
name: "
|
|
12657
|
-
impl: ({ ACTION,
|
|
12658
|
-
|
|
12659
|
-
|
|
12660
|
-
|
|
12661
|
-
|
|
12662
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
12669
|
-
|
|
12670
|
-
|
|
12671
|
-
|
|
12672
|
-
|
|
12673
|
-
})
|
|
12674
|
-
|
|
12675
|
-
|
|
12484
|
+
var graphTerm = {
|
|
12485
|
+
name: "graphTerm",
|
|
12486
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
12487
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12488
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
12489
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
12490
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
12491
|
+
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
12492
|
+
{ ALT: () => {
|
|
12493
|
+
const tokenNil = CONSUME(terminals_exports.nil);
|
|
12494
|
+
return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
|
|
12495
|
+
} }
|
|
12496
|
+
]),
|
|
12497
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12498
|
+
if (F2.isTermNamed(ast)) {
|
|
12499
|
+
SUBRULE(iri2, ast);
|
|
12500
|
+
} else if (F2.isTermLiteral(ast)) {
|
|
12501
|
+
SUBRULE(rdfLiteral, ast);
|
|
12502
|
+
} else if (F2.isTermBlank(ast)) {
|
|
12503
|
+
SUBRULE(blankNode, ast);
|
|
12504
|
+
}
|
|
12676
12505
|
}
|
|
12677
12506
|
};
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
const expressionVal = SUBRULE(expression, void 0);
|
|
12684
|
-
CONSUME(as);
|
|
12685
|
-
const variable = SUBRULE(var_, void 0);
|
|
12686
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12687
|
-
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
12688
|
-
},
|
|
12689
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12690
|
-
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12691
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12692
|
-
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12693
|
-
SUBRULE(var_, ast.variable, void 0);
|
|
12694
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12695
|
-
}
|
|
12507
|
+
|
|
12508
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/propertyPaths.ts
|
|
12509
|
+
var path = {
|
|
12510
|
+
name: "path",
|
|
12511
|
+
impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
|
|
12696
12512
|
};
|
|
12697
|
-
var
|
|
12698
|
-
name: "
|
|
12699
|
-
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
12709
|
-
|
|
12710
|
-
|
|
12711
|
-
|
|
12712
|
-
|
|
12713
|
-
|
|
12714
|
-
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12715
|
-
for (const variable of variables) {
|
|
12716
|
-
if (mapping[variable] === void 0) {
|
|
12717
|
-
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
12718
|
-
} else {
|
|
12719
|
-
SUBRULE(graphNodePath, mapping[variable], void 0);
|
|
12513
|
+
var pathGenerator = {
|
|
12514
|
+
name: "path",
|
|
12515
|
+
gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
|
|
12516
|
+
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
12517
|
+
SUBRULE(iri2, ast);
|
|
12518
|
+
} else {
|
|
12519
|
+
F2.printFilter(ast, () => braces && PRINT("("));
|
|
12520
|
+
switch (ast.subType) {
|
|
12521
|
+
case "|":
|
|
12522
|
+
case "/": {
|
|
12523
|
+
const [head2, ...tail] = ast.items;
|
|
12524
|
+
SUBRULE(pathGenerator, head2, braces);
|
|
12525
|
+
for (const val of tail) {
|
|
12526
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12527
|
+
SUBRULE(pathGenerator, val, braces);
|
|
12528
|
+
}
|
|
12529
|
+
break;
|
|
12720
12530
|
}
|
|
12531
|
+
case "^":
|
|
12532
|
+
F2.printFilter(ast, () => PRINT("^"));
|
|
12533
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12534
|
+
break;
|
|
12535
|
+
case "?":
|
|
12536
|
+
case "*":
|
|
12537
|
+
case "+":
|
|
12538
|
+
SUBRULE(pathGenerator, ast.items[0], braces);
|
|
12539
|
+
F2.printFilter(ast, () => PRINT(ast.subType));
|
|
12540
|
+
break;
|
|
12541
|
+
case "!":
|
|
12542
|
+
F2.printFilter(ast, () => PRINT("!"));
|
|
12543
|
+
F2.printFilter(ast, () => PRINT("("));
|
|
12544
|
+
SUBRULE(pathGenerator, ast.items[0], false);
|
|
12545
|
+
F2.printFilter(ast, () => PRINT(")"));
|
|
12546
|
+
break;
|
|
12721
12547
|
}
|
|
12722
|
-
F2.printFilter(ast, () =>
|
|
12548
|
+
F2.printFilter(ast, () => braces && PRINT(")"));
|
|
12723
12549
|
}
|
|
12724
|
-
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12725
12550
|
}
|
|
12726
12551
|
};
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
{
|
|
12731
|
-
|
|
12552
|
+
function pathChainHelper(name, SEP, subType, subRule) {
|
|
12553
|
+
return {
|
|
12554
|
+
name,
|
|
12555
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
|
|
12556
|
+
const head2 = SUBRULE1(subRule);
|
|
12557
|
+
let tailEnd = head2;
|
|
12558
|
+
const tail = [];
|
|
12559
|
+
MANY(() => {
|
|
12560
|
+
CONSUME(SEP);
|
|
12561
|
+
tailEnd = SUBRULE2(subRule);
|
|
12562
|
+
tail.push(tailEnd);
|
|
12563
|
+
});
|
|
12564
|
+
return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
|
|
12565
|
+
}
|
|
12566
|
+
};
|
|
12567
|
+
}
|
|
12568
|
+
var pathEltOrInverse = {
|
|
12569
|
+
name: "pathEltOrInverse",
|
|
12570
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
|
|
12571
|
+
{ ALT: () => SUBRULE1(pathElt) },
|
|
12572
|
+
{ ALT: () => {
|
|
12573
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12574
|
+
const item = SUBRULE2(pathElt);
|
|
12575
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12576
|
+
} }
|
|
12732
12577
|
])
|
|
12733
12578
|
};
|
|
12734
|
-
var
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
|
|
12738
|
-
|
|
12739
|
-
|
|
12740
|
-
|
|
12741
|
-
|
|
12742
|
-
ACTION(() => {
|
|
12743
|
-
res.push({ [varVal.value]: value });
|
|
12744
|
-
});
|
|
12745
|
-
});
|
|
12746
|
-
const close = CONSUME(symbols_exports.RCurly);
|
|
12747
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
12579
|
+
var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
|
|
12580
|
+
var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
|
|
12581
|
+
var pathElt = {
|
|
12582
|
+
name: "pathElt",
|
|
12583
|
+
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
12584
|
+
const item = SUBRULE(pathPrimary);
|
|
12585
|
+
const modification = OPTION(() => SUBRULE(pathMod));
|
|
12586
|
+
return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
|
|
12748
12587
|
}
|
|
12749
12588
|
};
|
|
12750
|
-
var
|
|
12751
|
-
name: "
|
|
12752
|
-
impl: ({
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
|
|
12757
|
-
|
|
12758
|
-
|
|
12759
|
-
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
|
|
12589
|
+
var pathMod = {
|
|
12590
|
+
name: "pathMod",
|
|
12591
|
+
impl: ({ CONSUME, OR }) => () => OR([
|
|
12592
|
+
{ ALT: () => CONSUME(symbols_exports.question) },
|
|
12593
|
+
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
12594
|
+
{ ALT: () => CONSUME(symbols_exports.opPlus) }
|
|
12595
|
+
])
|
|
12596
|
+
};
|
|
12597
|
+
var pathPrimary = {
|
|
12598
|
+
name: "pathPrimary",
|
|
12599
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
12600
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
12601
|
+
{ ALT: () => SUBRULE(verbA) },
|
|
12602
|
+
{ ALT: () => SUBRULE(pathNegatedPropertySet) },
|
|
12603
|
+
{ ALT: () => {
|
|
12604
|
+
CONSUME(symbols_exports.LParen);
|
|
12605
|
+
const resRecursive = SUBRULE(path);
|
|
12606
|
+
CONSUME(symbols_exports.RParen);
|
|
12607
|
+
return resRecursive;
|
|
12608
|
+
} }
|
|
12609
|
+
])
|
|
12610
|
+
};
|
|
12611
|
+
var pathNegatedPropertySet = {
|
|
12612
|
+
name: "pathNegatedPropertySet",
|
|
12613
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
|
|
12614
|
+
const exclamation2 = CONSUME(symbols_exports.exclamation);
|
|
12765
12615
|
return OR([
|
|
12766
12616
|
{ ALT: () => {
|
|
12767
|
-
const
|
|
12768
|
-
|
|
12769
|
-
MANY1(() => {
|
|
12770
|
-
CONSUME2(terminals_exports.nil);
|
|
12771
|
-
res.push({});
|
|
12772
|
-
});
|
|
12773
|
-
const close = CONSUME1(symbols_exports.RCurly);
|
|
12774
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
12617
|
+
const noAlternative = SUBRULE1(pathOneInPropertySet);
|
|
12618
|
+
return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
|
|
12775
12619
|
} },
|
|
12776
12620
|
{ ALT: () => {
|
|
12777
|
-
const open =
|
|
12778
|
-
|
|
12779
|
-
|
|
12621
|
+
const open = CONSUME(symbols_exports.LParen);
|
|
12622
|
+
const head2 = SUBRULE2(pathOneInPropertySet);
|
|
12623
|
+
const tail = [];
|
|
12624
|
+
MANY(() => {
|
|
12625
|
+
CONSUME(symbols_exports.pipe);
|
|
12626
|
+
const item = SUBRULE3(pathOneInPropertySet);
|
|
12627
|
+
tail.push(item);
|
|
12780
12628
|
});
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
|
|
12784
|
-
|
|
12785
|
-
|
|
12786
|
-
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
|
|
12791
|
-
|
|
12792
|
-
ACTION(() => {
|
|
12793
|
-
currentRow[vars[parsedValues].value] = value;
|
|
12794
|
-
parsedValues++;
|
|
12795
|
-
});
|
|
12796
|
-
});
|
|
12797
|
-
CONSUME2(symbols_exports.RParen);
|
|
12798
|
-
ACTION(() => {
|
|
12799
|
-
res.push(currentRow);
|
|
12800
|
-
if (vars.length !== parsedValues) {
|
|
12801
|
-
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
12802
|
-
}
|
|
12803
|
-
});
|
|
12629
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
12630
|
+
return ACTION(() => {
|
|
12631
|
+
const F2 = C.factory;
|
|
12632
|
+
if (tail.length === 0) {
|
|
12633
|
+
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
12634
|
+
}
|
|
12635
|
+
return F2.path(
|
|
12636
|
+
"!",
|
|
12637
|
+
[F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
|
|
12638
|
+
F2.sourceLocation(exclamation2, close)
|
|
12639
|
+
);
|
|
12804
12640
|
});
|
|
12805
|
-
const close = CONSUME2(symbols_exports.RCurly);
|
|
12806
|
-
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
12807
12641
|
} }
|
|
12808
12642
|
]);
|
|
12809
12643
|
}
|
|
12810
12644
|
};
|
|
12811
|
-
var
|
|
12812
|
-
name: "
|
|
12813
|
-
impl: ({
|
|
12814
|
-
{ ALT: () =>
|
|
12815
|
-
{ ALT: () =>
|
|
12816
|
-
{ ALT: () => SUBRULE(numericLiteral, void 0) },
|
|
12817
|
-
{ ALT: () => SUBRULE(booleanLiteral, void 0) },
|
|
12645
|
+
var pathOneInPropertySet = {
|
|
12646
|
+
name: "pathOneInPropertySet",
|
|
12647
|
+
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
12648
|
+
{ ALT: () => SUBRULE1(iri2) },
|
|
12649
|
+
{ ALT: () => SUBRULE1(verbA) },
|
|
12818
12650
|
{ ALT: () => {
|
|
12819
|
-
CONSUME(
|
|
12820
|
-
|
|
12651
|
+
const hat2 = CONSUME(symbols_exports.hat);
|
|
12652
|
+
const item = OR2([
|
|
12653
|
+
{ ALT: () => SUBRULE2(iri2) },
|
|
12654
|
+
{ ALT: () => SUBRULE2(verbA) }
|
|
12655
|
+
]);
|
|
12656
|
+
return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
|
|
12821
12657
|
} }
|
|
12822
12658
|
])
|
|
12823
12659
|
};
|
|
12824
|
-
var minusGraphPattern = {
|
|
12825
|
-
name: "minusGraphPattern",
|
|
12826
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12827
|
-
const minus2 = CONSUME(minus);
|
|
12828
|
-
const group = SUBRULE(groupGraphPattern, void 0);
|
|
12829
|
-
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
12830
|
-
},
|
|
12831
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12832
|
-
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12833
|
-
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
|
|
12834
|
-
}
|
|
12835
|
-
};
|
|
12836
|
-
var groupOrUnionGraphPattern = {
|
|
12837
|
-
name: "groupOrUnionGraphPattern",
|
|
12838
|
-
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
12839
|
-
const groups = [];
|
|
12840
|
-
const group = SUBRULE1(groupGraphPattern, void 0);
|
|
12841
|
-
groups.push(group);
|
|
12842
|
-
MANY(() => {
|
|
12843
|
-
CONSUME(union);
|
|
12844
|
-
const group2 = SUBRULE2(groupGraphPattern, void 0);
|
|
12845
|
-
groups.push(group2);
|
|
12846
|
-
});
|
|
12847
|
-
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
12848
|
-
groups,
|
|
12849
|
-
C.factory.sourceLocation(group, groups.at(-1))
|
|
12850
|
-
));
|
|
12851
|
-
},
|
|
12852
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12853
|
-
if (F2.isPatternUnion(ast)) {
|
|
12854
|
-
const [head2, ...tail] = ast.patterns;
|
|
12855
|
-
SUBRULE(groupGraphPattern, head2, void 0);
|
|
12856
|
-
for (const pattern of tail) {
|
|
12857
|
-
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
12858
|
-
SUBRULE(groupGraphPattern, pattern, void 0);
|
|
12859
|
-
}
|
|
12860
|
-
} else {
|
|
12861
|
-
SUBRULE(groupGraphPattern, ast, void 0);
|
|
12862
|
-
}
|
|
12863
|
-
}
|
|
12864
|
-
};
|
|
12865
|
-
var filter3 = {
|
|
12866
|
-
name: "filter",
|
|
12867
|
-
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12868
|
-
const filterToken = CONSUME(filter2);
|
|
12869
|
-
const expression2 = SUBRULE(constraint, void 0);
|
|
12870
|
-
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
12871
|
-
},
|
|
12872
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12873
|
-
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
12874
|
-
SUBRULE(expression, ast.expression, void 0);
|
|
12875
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12876
|
-
}
|
|
12877
|
-
};
|
|
12878
|
-
var constraint = {
|
|
12879
|
-
name: "constraint",
|
|
12880
|
-
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12881
|
-
{ ALT: () => SUBRULE(brackettedExpression, void 0) },
|
|
12882
|
-
{ ALT: () => SUBRULE(builtInCall, void 0) },
|
|
12883
|
-
{ ALT: () => SUBRULE(functionCall, void 0) }
|
|
12884
|
-
])
|
|
12885
|
-
};
|
|
12886
|
-
var functionCall = {
|
|
12887
|
-
name: "functionCall",
|
|
12888
|
-
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
12889
|
-
const func = SUBRULE(iri2, void 0);
|
|
12890
|
-
const args = SUBRULE(argList, void 0);
|
|
12891
|
-
return ACTION(() => C.factory.expressionFunctionCall(
|
|
12892
|
-
func,
|
|
12893
|
-
args.val.args,
|
|
12894
|
-
args.val.distinct,
|
|
12895
|
-
C.factory.sourceLocation(func, args)
|
|
12896
|
-
));
|
|
12897
|
-
}
|
|
12898
|
-
};
|
|
12899
12660
|
|
|
12900
|
-
// ../../packages/rules-sparql-1-1/lib/
|
|
12901
|
-
function
|
|
12902
|
-
return {
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12907
|
-
|
|
12908
|
-
|
|
12909
|
-
|
|
12910
|
-
|
|
12661
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/tripleBlock.ts
|
|
12662
|
+
function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
12663
|
+
return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12664
|
+
const triples = [];
|
|
12665
|
+
let parsedDot = true;
|
|
12666
|
+
let dotToken;
|
|
12667
|
+
AT_LEAST_ONE({
|
|
12668
|
+
GATE: () => parsedDot,
|
|
12669
|
+
DEF: () => {
|
|
12670
|
+
parsedDot = false;
|
|
12671
|
+
const template = SUBRULE(triplesSameSubjectSubrule);
|
|
12672
|
+
ACTION(() => {
|
|
12673
|
+
triples.push(...template);
|
|
12674
|
+
});
|
|
12675
|
+
OPTION(() => {
|
|
12676
|
+
dotToken = CONSUME(symbols_exports.dot);
|
|
12677
|
+
parsedDot = true;
|
|
12678
|
+
});
|
|
12679
|
+
}
|
|
12680
|
+
});
|
|
12681
|
+
return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
|
|
12911
12682
|
};
|
|
12912
12683
|
}
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
12684
|
+
var triplesBlock = {
|
|
12685
|
+
name: "triplesBlock",
|
|
12686
|
+
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12687
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12688
|
+
for (const [index, triple] of ast.triples.entries()) {
|
|
12689
|
+
HANDLE_LOC(triple, () => {
|
|
12690
|
+
const nextTriple = ast.triples.at(index);
|
|
12691
|
+
if (F2.isTripleCollection(triple)) {
|
|
12692
|
+
SUBRULE(graphNodePath, triple);
|
|
12693
|
+
F2.printFilter(triple, () => PRINT_WORD("."));
|
|
12694
|
+
} else {
|
|
12695
|
+
SUBRULE(graphNodePath, triple.subject);
|
|
12696
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12697
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12698
|
+
} else {
|
|
12699
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12700
|
+
}
|
|
12701
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12702
|
+
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12703
|
+
F2.printFilter(ast, () => PRINT_WORD("."));
|
|
12704
|
+
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12705
|
+
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12706
|
+
} else {
|
|
12707
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12708
|
+
}
|
|
12709
|
+
}
|
|
12710
|
+
});
|
|
12924
12711
|
}
|
|
12925
|
-
}
|
|
12926
|
-
}
|
|
12927
|
-
function
|
|
12712
|
+
}
|
|
12713
|
+
};
|
|
12714
|
+
function triplesSameSubjectImpl(name, allowPaths) {
|
|
12928
12715
|
return {
|
|
12929
|
-
name
|
|
12930
|
-
impl: ({ ACTION,
|
|
12931
|
-
|
|
12932
|
-
|
|
12933
|
-
|
|
12934
|
-
|
|
12935
|
-
|
|
12936
|
-
|
|
12937
|
-
|
|
12938
|
-
|
|
12939
|
-
|
|
12940
|
-
|
|
12716
|
+
name,
|
|
12717
|
+
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12718
|
+
{ ALT: () => {
|
|
12719
|
+
const subject = SUBRULE(varOrTerm);
|
|
12720
|
+
const res = SUBRULE(
|
|
12721
|
+
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
12722
|
+
ACTION(() => C.factory.dematerialized(subject))
|
|
12723
|
+
);
|
|
12724
|
+
return ACTION(() => {
|
|
12725
|
+
if (res.length > 0) {
|
|
12726
|
+
res[0].subject = subject;
|
|
12727
|
+
res[0].loc = C.factory.sourceLocation(subject, res[0]);
|
|
12728
|
+
}
|
|
12729
|
+
return res;
|
|
12730
|
+
});
|
|
12731
|
+
} },
|
|
12732
|
+
{ ALT: () => {
|
|
12733
|
+
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
12734
|
+
const restNode = SUBRULE(
|
|
12735
|
+
allowPaths ? propertyListPath : propertyList,
|
|
12736
|
+
ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
|
|
12737
|
+
);
|
|
12738
|
+
return ACTION(() => {
|
|
12739
|
+
if (restNode.length === 0) {
|
|
12740
|
+
return [subjectNode];
|
|
12741
|
+
}
|
|
12742
|
+
restNode[0].subject = subjectNode;
|
|
12743
|
+
restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
|
|
12744
|
+
return restNode;
|
|
12745
|
+
});
|
|
12746
|
+
} }
|
|
12747
|
+
])
|
|
12941
12748
|
};
|
|
12942
12749
|
}
|
|
12943
|
-
|
|
12750
|
+
var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
|
|
12751
|
+
var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
|
|
12752
|
+
var triplesTemplate = {
|
|
12753
|
+
name: "triplesTemplate",
|
|
12754
|
+
impl: triplesDotSeperated(triplesSameSubject)
|
|
12755
|
+
};
|
|
12756
|
+
function propertyListImpl(name, allowPaths) {
|
|
12944
12757
|
return {
|
|
12945
|
-
name
|
|
12946
|
-
impl: ({
|
|
12947
|
-
const operator = CONSUME(func);
|
|
12948
|
-
CONSUME(symbols_exports.LParen);
|
|
12949
|
-
const arg = SUBRULE(var_, void 0);
|
|
12950
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
12951
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
|
|
12952
|
-
}
|
|
12758
|
+
name,
|
|
12759
|
+
impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
|
|
12953
12760
|
};
|
|
12954
12761
|
}
|
|
12955
|
-
|
|
12762
|
+
var propertyList = propertyListImpl("propertyList", false);
|
|
12763
|
+
var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
12764
|
+
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
12956
12765
|
return {
|
|
12957
|
-
name
|
|
12958
|
-
impl: ({ ACTION, CONSUME,
|
|
12959
|
-
const
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
|
|
12965
|
-
|
|
12966
|
-
|
|
12967
|
-
|
|
12968
|
-
|
|
12969
|
-
|
|
12970
|
-
|
|
12971
|
-
|
|
12766
|
+
name,
|
|
12767
|
+
impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
|
|
12768
|
+
const result = [];
|
|
12769
|
+
let parsedSemi = true;
|
|
12770
|
+
AT_LEAST_ONE({
|
|
12771
|
+
GATE: () => parsedSemi,
|
|
12772
|
+
DEF: () => {
|
|
12773
|
+
parsedSemi = false;
|
|
12774
|
+
const predicate = allowPaths ? OR1([
|
|
12775
|
+
{ ALT: () => SUBRULE1(verbPath) },
|
|
12776
|
+
{ ALT: () => SUBRULE1(verbSimple) }
|
|
12777
|
+
]) : SUBRULE1(verb);
|
|
12778
|
+
const triples = SUBRULE1(
|
|
12779
|
+
allowPaths ? objectListPath : objectList,
|
|
12780
|
+
subject,
|
|
12781
|
+
predicate
|
|
12782
|
+
);
|
|
12783
|
+
MANY2(() => {
|
|
12784
|
+
CONSUME(symbols_exports.semi);
|
|
12785
|
+
parsedSemi = true;
|
|
12786
|
+
});
|
|
12787
|
+
ACTION(() => {
|
|
12788
|
+
result.push(...triples);
|
|
12789
|
+
});
|
|
12790
|
+
}
|
|
12791
|
+
});
|
|
12792
|
+
return result;
|
|
12972
12793
|
}
|
|
12973
12794
|
};
|
|
12974
12795
|
}
|
|
12975
|
-
|
|
12796
|
+
var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
|
|
12797
|
+
var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
|
|
12798
|
+
var verbPath = {
|
|
12799
|
+
name: "verbPath",
|
|
12800
|
+
impl: ({ SUBRULE }) => () => SUBRULE(path)
|
|
12801
|
+
};
|
|
12802
|
+
var verbSimple = {
|
|
12803
|
+
name: "verbSimple",
|
|
12804
|
+
impl: ({ SUBRULE }) => () => SUBRULE(var_)
|
|
12805
|
+
};
|
|
12806
|
+
function objectListImpl(name, allowPaths) {
|
|
12976
12807
|
return {
|
|
12977
|
-
name
|
|
12978
|
-
impl: ({ ACTION,
|
|
12979
|
-
const
|
|
12980
|
-
|
|
12981
|
-
|
|
12808
|
+
name,
|
|
12809
|
+
impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
|
|
12810
|
+
const objects = [];
|
|
12811
|
+
AT_LEAST_ONE_SEP({
|
|
12812
|
+
SEP: symbols_exports.comma,
|
|
12813
|
+
DEF: () => {
|
|
12814
|
+
const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
|
|
12815
|
+
ACTION(() => {
|
|
12816
|
+
objects.push(objectTriple);
|
|
12817
|
+
});
|
|
12818
|
+
}
|
|
12819
|
+
});
|
|
12820
|
+
return objects;
|
|
12982
12821
|
}
|
|
12983
12822
|
};
|
|
12984
12823
|
}
|
|
12985
|
-
|
|
12824
|
+
var objectList = objectListImpl("objectList", false);
|
|
12825
|
+
var objectListPath = objectListImpl("objectListPath", true);
|
|
12826
|
+
function objectImpl(name, allowPaths) {
|
|
12986
12827
|
return {
|
|
12987
|
-
name
|
|
12988
|
-
impl: ({ ACTION,
|
|
12989
|
-
const
|
|
12990
|
-
|
|
12991
|
-
return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
|
|
12828
|
+
name,
|
|
12829
|
+
impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
|
|
12830
|
+
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
12831
|
+
return ACTION(() => C.factory.triple(subject, predicate, node));
|
|
12992
12832
|
}
|
|
12993
12833
|
};
|
|
12994
12834
|
}
|
|
12995
|
-
|
|
12835
|
+
var object = objectImpl("object", false);
|
|
12836
|
+
var objectPath = objectImpl("objectPath", true);
|
|
12837
|
+
function collectionImpl(name, allowPaths) {
|
|
12996
12838
|
return {
|
|
12997
|
-
name
|
|
12998
|
-
impl: ({ ACTION,
|
|
12999
|
-
const
|
|
13000
|
-
CONSUME(symbols_exports.LParen);
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
13004
|
-
const arg3 = OPTION(() => {
|
|
13005
|
-
CONSUME2(symbols_exports.comma);
|
|
13006
|
-
return SUBRULE3(expression, void 0);
|
|
12839
|
+
name,
|
|
12840
|
+
impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
|
|
12841
|
+
const terms = [];
|
|
12842
|
+
const startToken = CONSUME(symbols_exports.LParen);
|
|
12843
|
+
AT_LEAST_ONE(() => {
|
|
12844
|
+
terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
|
|
13007
12845
|
});
|
|
13008
|
-
const
|
|
13009
|
-
return ACTION(() =>
|
|
13010
|
-
|
|
13011
|
-
|
|
13012
|
-
|
|
13013
|
-
|
|
12846
|
+
const endToken = CONSUME(symbols_exports.RParen);
|
|
12847
|
+
return ACTION(() => {
|
|
12848
|
+
const F2 = C.factory;
|
|
12849
|
+
const triples = [];
|
|
12850
|
+
const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
|
|
12851
|
+
const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
|
|
12852
|
+
const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
|
|
12853
|
+
const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12854
|
+
let iterHead = listHead;
|
|
12855
|
+
for (const [index, term] of terms.entries()) {
|
|
12856
|
+
const lastInList = index === terms.length - 1;
|
|
12857
|
+
const headTriple = F2.triple(
|
|
12858
|
+
iterHead,
|
|
12859
|
+
predFirst,
|
|
12860
|
+
term
|
|
12861
|
+
);
|
|
12862
|
+
triples.push(headTriple);
|
|
12863
|
+
if (lastInList) {
|
|
12864
|
+
const nilTriple = F2.triple(iterHead, predRest, predNil);
|
|
12865
|
+
triples.push(nilTriple);
|
|
12866
|
+
} else {
|
|
12867
|
+
const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
|
|
12868
|
+
const linkTriple = F2.triple(iterHead, predRest, tail);
|
|
12869
|
+
triples.push(linkTriple);
|
|
12870
|
+
iterHead = tail;
|
|
12871
|
+
}
|
|
12872
|
+
}
|
|
12873
|
+
return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
|
|
12874
|
+
});
|
|
12875
|
+
},
|
|
12876
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12877
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12878
|
+
for (const [idx, triple] of ast.triples.entries()) {
|
|
12879
|
+
if (idx % 2 === 0) {
|
|
12880
|
+
SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
|
|
12881
|
+
}
|
|
12882
|
+
}
|
|
12883
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13014
12884
|
}
|
|
13015
12885
|
};
|
|
13016
12886
|
}
|
|
13017
|
-
|
|
12887
|
+
var collection = collectionImpl("collection", false);
|
|
12888
|
+
var collectionPath = collectionImpl("collectionPath", true);
|
|
12889
|
+
function triplesNodeImpl(name, allowPaths) {
|
|
13018
12890
|
return {
|
|
13019
|
-
name
|
|
13020
|
-
impl: ({
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
13024
|
-
|
|
13025
|
-
SUBRULE3,
|
|
13026
|
-
SUBRULE4,
|
|
13027
|
-
CONSUME1,
|
|
13028
|
-
OPTION,
|
|
13029
|
-
CONSUME2,
|
|
13030
|
-
CONSUME3
|
|
13031
|
-
}) => (C) => {
|
|
13032
|
-
const operator = CONSUME(func);
|
|
13033
|
-
CONSUME(symbols_exports.LParen);
|
|
13034
|
-
const arg1 = SUBRULE1(expression, void 0);
|
|
13035
|
-
CONSUME1(symbols_exports.comma);
|
|
13036
|
-
const arg2 = SUBRULE2(expression, void 0);
|
|
13037
|
-
CONSUME2(symbols_exports.comma);
|
|
13038
|
-
const arg3 = SUBRULE3(expression, void 0);
|
|
13039
|
-
const arg4 = OPTION(() => {
|
|
13040
|
-
CONSUME3(symbols_exports.comma);
|
|
13041
|
-
return SUBRULE4(expression, void 0);
|
|
13042
|
-
});
|
|
13043
|
-
const close = CONSUME(symbols_exports.RParen);
|
|
13044
|
-
return ACTION(() => C.factory.expressionOperation(
|
|
13045
|
-
operator.image,
|
|
13046
|
-
arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
|
|
13047
|
-
C.factory.sourceLocation(operator, close)
|
|
13048
|
-
));
|
|
13049
|
-
}
|
|
12891
|
+
name,
|
|
12892
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
12893
|
+
{ ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
|
|
12894
|
+
{ ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
|
|
12895
|
+
]),
|
|
12896
|
+
gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
|
|
13050
12897
|
};
|
|
13051
12898
|
}
|
|
13052
|
-
|
|
12899
|
+
var triplesNode = triplesNodeImpl("triplesNode", false);
|
|
12900
|
+
var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
|
|
12901
|
+
function blankNodePropertyListImpl(name, allowPaths) {
|
|
12902
|
+
const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
|
|
13053
12903
|
return {
|
|
13054
|
-
name
|
|
12904
|
+
name,
|
|
13055
12905
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13056
|
-
const
|
|
13057
|
-
const
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
12906
|
+
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12907
|
+
const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
|
|
12908
|
+
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12909
|
+
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12910
|
+
return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
|
|
12911
|
+
blankNode2,
|
|
12912
|
+
propList,
|
|
12913
|
+
C.factory.sourceLocation(startToken, endToken)
|
|
13062
12914
|
));
|
|
12915
|
+
},
|
|
12916
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
|
|
12917
|
+
F2.printFilter(ast, () => PRINT("["));
|
|
12918
|
+
for (const triple of ast.triples) {
|
|
12919
|
+
HANDLE_LOC(triple, () => {
|
|
12920
|
+
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12921
|
+
SUBRULE(varOrTerm, triple.predicate);
|
|
12922
|
+
} else {
|
|
12923
|
+
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12924
|
+
}
|
|
12925
|
+
SUBRULE(graphNodePath, triple.object);
|
|
12926
|
+
F2.printFilter(ast, () => PRINT_WORD(";"));
|
|
12927
|
+
});
|
|
12928
|
+
}
|
|
12929
|
+
F2.printFilter(ast, () => PRINT("]"));
|
|
13063
12930
|
}
|
|
13064
12931
|
};
|
|
13065
12932
|
}
|
|
13066
|
-
|
|
12933
|
+
var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
|
|
12934
|
+
var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
|
|
12935
|
+
function graphNodeImpl(name, allowPaths) {
|
|
12936
|
+
const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
|
|
13067
12937
|
return {
|
|
13068
|
-
name
|
|
13069
|
-
impl: ({
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13077
|
-
|
|
13078
|
-
|
|
13079
|
-
|
|
13080
|
-
|
|
13081
|
-
|
|
12938
|
+
name,
|
|
12939
|
+
impl: ({ SUBRULE, OR }) => (C) => OR([
|
|
12940
|
+
{ ALT: () => SUBRULE(varOrTerm) },
|
|
12941
|
+
{
|
|
12942
|
+
GATE: () => C.parseMode.has("canCreateBlankNodes"),
|
|
12943
|
+
ALT: () => SUBRULE(triplesNodeRule)
|
|
12944
|
+
}
|
|
12945
|
+
]),
|
|
12946
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12947
|
+
if (F2.isTerm(ast)) {
|
|
12948
|
+
SUBRULE(varOrTerm, ast);
|
|
12949
|
+
} else {
|
|
12950
|
+
SUBRULE(triplesNodeRule, ast);
|
|
12951
|
+
}
|
|
13082
12952
|
}
|
|
13083
12953
|
};
|
|
13084
12954
|
}
|
|
12955
|
+
var graphNode = graphNodeImpl("graphNode", false);
|
|
12956
|
+
var graphNodePath = graphNodeImpl("graphNodePath", true);
|
|
13085
12957
|
|
|
13086
|
-
// ../../packages/rules-sparql-1-1/lib/grammar/
|
|
13087
|
-
var
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
|
|
13098
|
-
var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
|
|
13099
|
-
var builtInRound = funcExpr1(BuildinCalls_exports.round);
|
|
13100
|
-
var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
|
|
13101
|
-
var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
|
|
13102
|
-
var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
|
|
13103
|
-
var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
|
|
13104
|
-
var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
|
|
13105
|
-
var builtInContains = funcExpr2(BuildinCalls_exports.contains);
|
|
13106
|
-
var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
|
|
13107
|
-
var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
|
|
13108
|
-
var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
|
|
13109
|
-
var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
|
|
13110
|
-
var builtInYear = funcExpr1(BuildinCalls_exports.year);
|
|
13111
|
-
var builtInMonth = funcExpr1(BuildinCalls_exports.month);
|
|
13112
|
-
var builtInDay = funcExpr1(BuildinCalls_exports.day);
|
|
13113
|
-
var builtInHours = funcExpr1(BuildinCalls_exports.hours);
|
|
13114
|
-
var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
|
|
13115
|
-
var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
|
|
13116
|
-
var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
|
|
13117
|
-
var builtInTz = funcExpr1(BuildinCalls_exports.tz);
|
|
13118
|
-
var builtInNow = funcNil1(BuildinCalls_exports.now);
|
|
13119
|
-
var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
|
|
13120
|
-
var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
|
|
13121
|
-
var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
|
|
13122
|
-
var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
|
|
13123
|
-
var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
|
|
13124
|
-
var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
|
|
13125
|
-
var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
|
|
13126
|
-
var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
|
|
13127
|
-
var builtInIf = funcExpr3(BuildinCalls_exports.if_);
|
|
13128
|
-
var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
|
|
13129
|
-
var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
|
|
13130
|
-
var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
|
|
13131
|
-
var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
|
|
13132
|
-
var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
|
|
13133
|
-
var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
|
|
13134
|
-
var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
|
|
13135
|
-
var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
|
|
13136
|
-
function builtInCallList(SUBRULE) {
|
|
13137
|
-
return [
|
|
13138
|
-
{ ALT: () => SUBRULE(aggregate, void 0) },
|
|
13139
|
-
{ ALT: () => SUBRULE(builtInStr, void 0) },
|
|
13140
|
-
{ ALT: () => SUBRULE(builtInLang, void 0) },
|
|
13141
|
-
{ ALT: () => SUBRULE(builtInLangmatches, void 0) },
|
|
13142
|
-
{ ALT: () => SUBRULE(builtInDatatype, void 0) },
|
|
13143
|
-
{ ALT: () => SUBRULE(builtInBound, void 0) },
|
|
13144
|
-
{ ALT: () => SUBRULE(builtInIri, void 0) },
|
|
13145
|
-
{ ALT: () => SUBRULE(builtInUri, void 0) },
|
|
13146
|
-
{ ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
|
|
13147
|
-
{ ALT: () => SUBRULE(builtInRand, void 0) },
|
|
13148
|
-
{ ALT: () => SUBRULE(builtInAbs, void 0) },
|
|
13149
|
-
{ ALT: () => SUBRULE(builtInCeil, void 0) },
|
|
13150
|
-
{ ALT: () => SUBRULE(builtInFloor, void 0) },
|
|
13151
|
-
{ ALT: () => SUBRULE(builtInRound, void 0) },
|
|
13152
|
-
{ ALT: () => SUBRULE(builtInConcat, void 0) },
|
|
13153
|
-
{ ALT: () => SUBRULE(substringExpression, void 0) },
|
|
13154
|
-
{ ALT: () => SUBRULE(builtInStrlen, void 0) },
|
|
13155
|
-
{ ALT: () => SUBRULE(strReplaceExpression, void 0) },
|
|
13156
|
-
{ ALT: () => SUBRULE(builtInUcase, void 0) },
|
|
13157
|
-
{ ALT: () => SUBRULE(builtInLcase, void 0) },
|
|
13158
|
-
{ ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
|
|
13159
|
-
{ ALT: () => SUBRULE(builtInContains, void 0) },
|
|
13160
|
-
{ ALT: () => SUBRULE(builtInStrstarts, void 0) },
|
|
13161
|
-
{ ALT: () => SUBRULE(builtInStrends, void 0) },
|
|
13162
|
-
{ ALT: () => SUBRULE(builtInStrbefore, void 0) },
|
|
13163
|
-
{ ALT: () => SUBRULE(builtInStrafter, void 0) },
|
|
13164
|
-
{ ALT: () => SUBRULE(builtInYear, void 0) },
|
|
13165
|
-
{ ALT: () => SUBRULE(builtInMonth, void 0) },
|
|
13166
|
-
{ ALT: () => SUBRULE(builtInDay, void 0) },
|
|
13167
|
-
{ ALT: () => SUBRULE(builtInHours, void 0) },
|
|
13168
|
-
{ ALT: () => SUBRULE(builtInMinutes, void 0) },
|
|
13169
|
-
{ ALT: () => SUBRULE(builtInSeconds, void 0) },
|
|
13170
|
-
{ ALT: () => SUBRULE(builtInTimezone, void 0) },
|
|
13171
|
-
{ ALT: () => SUBRULE(builtInTz, void 0) },
|
|
13172
|
-
{ ALT: () => SUBRULE(builtInNow, void 0) },
|
|
13173
|
-
{ ALT: () => SUBRULE(builtInUuid, void 0) },
|
|
13174
|
-
{ ALT: () => SUBRULE(builtInStruuid, void 0) },
|
|
13175
|
-
{ ALT: () => SUBRULE(builtInMd5, void 0) },
|
|
13176
|
-
{ ALT: () => SUBRULE(builtInSha1, void 0) },
|
|
13177
|
-
{ ALT: () => SUBRULE(builtInSha256, void 0) },
|
|
13178
|
-
{ ALT: () => SUBRULE(builtInSha384, void 0) },
|
|
13179
|
-
{ ALT: () => SUBRULE(builtInSha512, void 0) },
|
|
13180
|
-
{ ALT: () => SUBRULE(builtInCoalesce, void 0) },
|
|
13181
|
-
{ ALT: () => SUBRULE(builtInIf, void 0) },
|
|
13182
|
-
{ ALT: () => SUBRULE(builtInStrlang, void 0) },
|
|
13183
|
-
{ ALT: () => SUBRULE(builtInStrdt, void 0) },
|
|
13184
|
-
{ ALT: () => SUBRULE(builtInSameterm, void 0) },
|
|
13185
|
-
{ ALT: () => SUBRULE(builtInIsiri, void 0) },
|
|
13186
|
-
{ ALT: () => SUBRULE(builtInIsuri, void 0) },
|
|
13187
|
-
{ ALT: () => SUBRULE(builtInIsblank, void 0) },
|
|
13188
|
-
{ ALT: () => SUBRULE(builtInIsliteral, void 0) },
|
|
13189
|
-
{ ALT: () => SUBRULE(builtInIsnumeric, void 0) },
|
|
13190
|
-
{ ALT: () => SUBRULE(regexExpression, void 0) },
|
|
13191
|
-
{ ALT: () => SUBRULE(existsFunc, void 0) },
|
|
13192
|
-
{ ALT: () => SUBRULE(notExistsFunc, void 0) }
|
|
13193
|
-
];
|
|
13194
|
-
}
|
|
13195
|
-
var builtInCall = {
|
|
13196
|
-
name: "builtInCall",
|
|
13197
|
-
impl: ({ OR, SUBRULE, cache }) => () => {
|
|
13198
|
-
const cached = cache.get(builtInCall);
|
|
13199
|
-
if (cached) {
|
|
13200
|
-
return OR(cached);
|
|
13201
|
-
}
|
|
13202
|
-
const builtIns = builtInCallList(SUBRULE);
|
|
13203
|
-
cache.set(builtInCall, builtIns);
|
|
13204
|
-
return OR(builtIns);
|
|
12958
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/whereClause.ts
|
|
12959
|
+
var whereClause = {
|
|
12960
|
+
name: "whereClause",
|
|
12961
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12962
|
+
const where2 = OPTION(() => CONSUME(where));
|
|
12963
|
+
const group = SUBRULE(groupGraphPattern);
|
|
12964
|
+
return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
|
|
12965
|
+
},
|
|
12966
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12967
|
+
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12968
|
+
SUBRULE(groupGraphPattern, ast.val);
|
|
13205
12969
|
}
|
|
13206
12970
|
};
|
|
13207
|
-
var
|
|
13208
|
-
|
|
13209
|
-
|
|
13210
|
-
|
|
13211
|
-
|
|
13212
|
-
|
|
13213
|
-
|
|
13214
|
-
impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
|
|
13215
|
-
const operatorToken = CONSUME(BuildinCalls_exports.count);
|
|
13216
|
-
CONSUME(symbols_exports.LParen);
|
|
13217
|
-
const distinctToken = OPTION(() => CONSUME(distinct));
|
|
13218
|
-
const expressionVal = OR([
|
|
13219
|
-
{ ALT: () => {
|
|
13220
|
-
const starToken = CONSUME(symbols_exports.star);
|
|
13221
|
-
return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
|
|
13222
|
-
} },
|
|
13223
|
-
{ ALT: () => SUBRULE(expression, void 0) }
|
|
12971
|
+
var groupGraphPattern = {
|
|
12972
|
+
name: "groupGraphPattern",
|
|
12973
|
+
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
|
|
12974
|
+
const open = CONSUME(symbols_exports.LCurly);
|
|
12975
|
+
const patterns = OR([
|
|
12976
|
+
{ ALT: () => [SUBRULE(subSelect)] },
|
|
12977
|
+
{ ALT: () => SUBRULE(groupGraphPatternSub) }
|
|
13224
12978
|
]);
|
|
13225
|
-
const
|
|
13226
|
-
return ACTION(() =>
|
|
13227
|
-
|
|
13228
|
-
|
|
13229
|
-
|
|
13230
|
-
|
|
13231
|
-
|
|
13232
|
-
|
|
13233
|
-
|
|
13234
|
-
|
|
13235
|
-
|
|
12979
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
12980
|
+
return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
|
|
12981
|
+
},
|
|
12982
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
12983
|
+
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
12984
|
+
for (const pattern of ast.patterns) {
|
|
12985
|
+
SUBRULE(generatePattern, pattern);
|
|
12986
|
+
}
|
|
12987
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
12988
|
+
}
|
|
12989
|
+
};
|
|
12990
|
+
var generatePattern = {
|
|
12991
|
+
name: "generatePattern",
|
|
12992
|
+
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
12993
|
+
if (ast.type === "query") {
|
|
12994
|
+
SUBRULE(query, F2.querySelect({
|
|
12995
|
+
context: [],
|
|
12996
|
+
datasets: F2.datasetClauses([], F2.sourceLocation()),
|
|
12997
|
+
where: ast.where,
|
|
12998
|
+
variables: ast.variables,
|
|
12999
|
+
solutionModifiers: ast.solutionModifiers,
|
|
13000
|
+
values: ast.values,
|
|
13001
|
+
distinct: ast.distinct,
|
|
13002
|
+
reduced: ast.reduced
|
|
13003
|
+
}, ast.loc));
|
|
13004
|
+
} else if (ast.subType === "group") {
|
|
13005
|
+
SUBRULE(groupGraphPattern, ast);
|
|
13006
|
+
} else if (ast.subType === "bgp") {
|
|
13007
|
+
SUBRULE(triplesBlock, ast);
|
|
13008
|
+
} else {
|
|
13009
|
+
SUBRULE(graphPatternNotTriples, ast);
|
|
13010
|
+
}
|
|
13011
|
+
}
|
|
13012
|
+
};
|
|
13013
|
+
var groupGraphPatternSub = {
|
|
13014
|
+
name: "groupGraphPatternSub",
|
|
13015
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
|
|
13016
|
+
const patterns = [];
|
|
13017
|
+
const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
|
|
13018
|
+
if (bgpPattern) {
|
|
13019
|
+
patterns.push(bgpPattern);
|
|
13020
|
+
}
|
|
13021
|
+
MANY(() => {
|
|
13022
|
+
const notTriples = SUBRULE(graphPatternNotTriples);
|
|
13023
|
+
patterns.push(notTriples);
|
|
13024
|
+
OPTION2(() => CONSUME(symbols_exports.dot));
|
|
13025
|
+
const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
|
|
13026
|
+
if (moreTriples) {
|
|
13027
|
+
patterns.push(moreTriples);
|
|
13028
|
+
}
|
|
13029
|
+
});
|
|
13030
|
+
ACTION(() => checkNote13(patterns));
|
|
13031
|
+
return patterns;
|
|
13032
|
+
}
|
|
13033
|
+
};
|
|
13034
|
+
var graphPatternNotTriples = {
|
|
13035
|
+
name: "graphPatternNotTriples",
|
|
13036
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13037
|
+
{ ALT: () => SUBRULE(groupOrUnionGraphPattern) },
|
|
13038
|
+
{ ALT: () => SUBRULE(optionalGraphPattern) },
|
|
13039
|
+
{ ALT: () => SUBRULE(minusGraphPattern) },
|
|
13040
|
+
{ ALT: () => SUBRULE(graphGraphPattern) },
|
|
13041
|
+
{ ALT: () => SUBRULE(serviceGraphPattern) },
|
|
13042
|
+
{ ALT: () => SUBRULE(filter3) },
|
|
13043
|
+
{ ALT: () => SUBRULE(bind2) },
|
|
13044
|
+
{ ALT: () => SUBRULE(inlineData) }
|
|
13045
|
+
]),
|
|
13046
|
+
gImpl: ({ SUBRULE }) => (ast) => {
|
|
13047
|
+
switch (ast.subType) {
|
|
13048
|
+
case "group":
|
|
13049
|
+
case "union":
|
|
13050
|
+
SUBRULE(groupOrUnionGraphPattern, ast);
|
|
13051
|
+
break;
|
|
13052
|
+
case "optional":
|
|
13053
|
+
SUBRULE(optionalGraphPattern, ast);
|
|
13054
|
+
break;
|
|
13055
|
+
case "minus":
|
|
13056
|
+
SUBRULE(minusGraphPattern, ast);
|
|
13057
|
+
break;
|
|
13058
|
+
case "graph":
|
|
13059
|
+
SUBRULE(graphGraphPattern, ast);
|
|
13060
|
+
break;
|
|
13061
|
+
case "service":
|
|
13062
|
+
SUBRULE(serviceGraphPattern, ast);
|
|
13063
|
+
break;
|
|
13064
|
+
case "filter":
|
|
13065
|
+
SUBRULE(filter3, ast);
|
|
13066
|
+
break;
|
|
13067
|
+
case "bind":
|
|
13068
|
+
SUBRULE(bind2, ast);
|
|
13069
|
+
break;
|
|
13070
|
+
case "values":
|
|
13071
|
+
SUBRULE(inlineData, ast);
|
|
13072
|
+
break;
|
|
13073
|
+
}
|
|
13074
|
+
}
|
|
13075
|
+
};
|
|
13076
|
+
var optionalGraphPattern = {
|
|
13077
|
+
name: "optionalGraphPattern",
|
|
13078
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13079
|
+
const optional2 = CONSUME(optional);
|
|
13080
|
+
const group = SUBRULE(groupGraphPattern);
|
|
13081
|
+
return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
|
|
13082
|
+
},
|
|
13083
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13084
|
+
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
13085
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13086
|
+
}
|
|
13087
|
+
};
|
|
13088
|
+
var graphGraphPattern = {
|
|
13089
|
+
name: "graphGraphPattern",
|
|
13090
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13091
|
+
const graph2 = CONSUME(graph_exports.graph);
|
|
13092
|
+
const name = SUBRULE(varOrIri);
|
|
13093
|
+
const group = SUBRULE(groupGraphPattern);
|
|
13094
|
+
return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
|
|
13095
|
+
},
|
|
13096
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13097
|
+
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
13098
|
+
SUBRULE(varOrTerm, ast.name);
|
|
13099
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13100
|
+
}
|
|
13101
|
+
};
|
|
13102
|
+
var serviceGraphPattern = {
|
|
13103
|
+
name: "serviceGraphPattern",
|
|
13104
|
+
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
13105
|
+
const service2 = CONSUME(service);
|
|
13106
|
+
const silent2 = OPTION(() => {
|
|
13107
|
+
CONSUME(silent);
|
|
13108
|
+
return true;
|
|
13109
|
+
}) ?? false;
|
|
13110
|
+
const name = SUBRULE1(varOrIri);
|
|
13111
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
13112
|
+
return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
|
|
13113
|
+
},
|
|
13114
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13115
|
+
F2.printFilter(ast, () => {
|
|
13116
|
+
PRINT_WORD("SERVICE");
|
|
13117
|
+
if (ast.silent) {
|
|
13118
|
+
PRINT_WORD("SILENT");
|
|
13236
13119
|
}
|
|
13237
|
-
return F2.aggregate(
|
|
13238
|
-
operatorToken.image,
|
|
13239
|
-
Boolean(distinctToken),
|
|
13240
|
-
expressionVal,
|
|
13241
|
-
void 0,
|
|
13242
|
-
C.factory.sourceLocation(operatorToken, closeToken)
|
|
13243
|
-
);
|
|
13244
13120
|
});
|
|
13121
|
+
SUBRULE(varOrTerm, ast.name);
|
|
13122
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13245
13123
|
}
|
|
13246
13124
|
};
|
|
13247
|
-
var
|
|
13248
|
-
|
|
13249
|
-
|
|
13250
|
-
|
|
13251
|
-
var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
|
|
13252
|
-
var aggregateGroup_concat = {
|
|
13253
|
-
name: unCapitalize(BuildinCalls_exports.groupConcat.name),
|
|
13254
|
-
impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
|
|
13255
|
-
const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
|
|
13125
|
+
var bind2 = {
|
|
13126
|
+
name: "bind",
|
|
13127
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13128
|
+
const bind3 = CONSUME(bind);
|
|
13256
13129
|
CONSUME(symbols_exports.LParen);
|
|
13257
|
-
const
|
|
13258
|
-
|
|
13259
|
-
const
|
|
13260
|
-
|
|
13261
|
-
|
|
13262
|
-
|
|
13263
|
-
|
|
13130
|
+
const expressionVal = SUBRULE(expression);
|
|
13131
|
+
CONSUME(as);
|
|
13132
|
+
const variable = SUBRULE(var_);
|
|
13133
|
+
const close = CONSUME(symbols_exports.RParen);
|
|
13134
|
+
return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
|
|
13135
|
+
},
|
|
13136
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13137
|
+
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
13138
|
+
SUBRULE(expression, ast.expression);
|
|
13139
|
+
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
13140
|
+
SUBRULE(var_, ast.variable);
|
|
13141
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13142
|
+
}
|
|
13143
|
+
};
|
|
13144
|
+
var inlineData = {
|
|
13145
|
+
name: "inlineData",
|
|
13146
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13147
|
+
const values3 = CONSUME(values2);
|
|
13148
|
+
const datablock = SUBRULE(dataBlock);
|
|
13149
|
+
return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
|
|
13150
|
+
},
|
|
13151
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13152
|
+
const variables = Object.keys(ast.values[0]);
|
|
13153
|
+
F2.printFilter(ast, () => {
|
|
13154
|
+
PRINT_WORD("VALUES", "(");
|
|
13155
|
+
for (const variable of variables) {
|
|
13156
|
+
PRINT_WORD(`?${variable}`);
|
|
13157
|
+
}
|
|
13158
|
+
PRINT_WORD(")", "{");
|
|
13264
13159
|
});
|
|
13265
|
-
const
|
|
13266
|
-
|
|
13267
|
-
const
|
|
13268
|
-
|
|
13269
|
-
|
|
13270
|
-
|
|
13271
|
-
|
|
13272
|
-
|
|
13273
|
-
|
|
13274
|
-
);
|
|
13160
|
+
for (const mapping of ast.values) {
|
|
13161
|
+
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13162
|
+
for (const variable of variables) {
|
|
13163
|
+
if (mapping[variable] === void 0) {
|
|
13164
|
+
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
13165
|
+
} else {
|
|
13166
|
+
SUBRULE(graphNodePath, mapping[variable]);
|
|
13167
|
+
}
|
|
13168
|
+
}
|
|
13169
|
+
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13170
|
+
}
|
|
13171
|
+
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
13172
|
+
}
|
|
13173
|
+
};
|
|
13174
|
+
var dataBlock = {
|
|
13175
|
+
name: "dataBlock",
|
|
13176
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13177
|
+
{ ALT: () => SUBRULE(inlineDataOneVar) },
|
|
13178
|
+
{ ALT: () => SUBRULE(inlineDataFull) }
|
|
13179
|
+
])
|
|
13180
|
+
};
|
|
13181
|
+
var inlineDataOneVar = {
|
|
13182
|
+
name: "inlineDataOneVar",
|
|
13183
|
+
impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
|
|
13184
|
+
const res = [];
|
|
13185
|
+
const varVal = SUBRULE(var_);
|
|
13186
|
+
CONSUME(symbols_exports.LCurly);
|
|
13187
|
+
MANY(() => {
|
|
13188
|
+
const value = SUBRULE(dataBlockValue);
|
|
13189
|
+
ACTION(() => {
|
|
13190
|
+
res.push({ [varVal.value]: value });
|
|
13191
|
+
});
|
|
13275
13192
|
});
|
|
13193
|
+
const close = CONSUME(symbols_exports.RCurly);
|
|
13194
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
|
|
13276
13195
|
}
|
|
13277
13196
|
};
|
|
13278
|
-
var
|
|
13279
|
-
name: "
|
|
13280
|
-
impl: ({
|
|
13281
|
-
|
|
13282
|
-
|
|
13283
|
-
|
|
13284
|
-
|
|
13285
|
-
|
|
13286
|
-
|
|
13287
|
-
|
|
13288
|
-
|
|
13289
|
-
|
|
13290
|
-
|
|
13197
|
+
var inlineDataFull = {
|
|
13198
|
+
name: "inlineDataFull",
|
|
13199
|
+
impl: ({
|
|
13200
|
+
ACTION,
|
|
13201
|
+
OR,
|
|
13202
|
+
MANY1,
|
|
13203
|
+
MANY2,
|
|
13204
|
+
MANY3,
|
|
13205
|
+
MANY4,
|
|
13206
|
+
SUBRULE,
|
|
13207
|
+
CONSUME1,
|
|
13208
|
+
CONSUME2
|
|
13209
|
+
}) => (C) => {
|
|
13210
|
+
const res = [];
|
|
13211
|
+
const vars = [];
|
|
13212
|
+
return OR([
|
|
13213
|
+
{ ALT: () => {
|
|
13214
|
+
const nil2 = CONSUME1(terminals_exports.nil);
|
|
13215
|
+
CONSUME1(symbols_exports.LCurly);
|
|
13216
|
+
MANY1(() => {
|
|
13217
|
+
CONSUME2(terminals_exports.nil);
|
|
13218
|
+
res.push({});
|
|
13219
|
+
});
|
|
13220
|
+
const close = CONSUME1(symbols_exports.RCurly);
|
|
13221
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
|
|
13222
|
+
} },
|
|
13223
|
+
{ ALT: () => {
|
|
13224
|
+
const open = CONSUME1(symbols_exports.LParen);
|
|
13225
|
+
MANY2(() => {
|
|
13226
|
+
vars.push(SUBRULE(var_));
|
|
13227
|
+
});
|
|
13228
|
+
CONSUME1(symbols_exports.RParen);
|
|
13229
|
+
CONSUME2(symbols_exports.LCurly);
|
|
13230
|
+
MANY3(() => {
|
|
13231
|
+
let parsedValues = 0;
|
|
13232
|
+
const currentRow = {};
|
|
13233
|
+
CONSUME2(symbols_exports.LParen);
|
|
13234
|
+
MANY4(() => {
|
|
13235
|
+
if (parsedValues >= vars.length) {
|
|
13236
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
|
|
13237
|
+
}
|
|
13238
|
+
const value = SUBRULE(dataBlockValue);
|
|
13239
|
+
ACTION(() => {
|
|
13240
|
+
currentRow[vars[parsedValues].value] = value;
|
|
13241
|
+
parsedValues++;
|
|
13242
|
+
});
|
|
13243
|
+
});
|
|
13244
|
+
CONSUME2(symbols_exports.RParen);
|
|
13245
|
+
ACTION(() => {
|
|
13246
|
+
res.push(currentRow);
|
|
13247
|
+
if (vars.length !== parsedValues) {
|
|
13248
|
+
throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
|
|
13249
|
+
}
|
|
13250
|
+
});
|
|
13251
|
+
});
|
|
13252
|
+
const close = CONSUME2(symbols_exports.RCurly);
|
|
13253
|
+
return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
|
|
13254
|
+
} }
|
|
13291
13255
|
]);
|
|
13292
|
-
|
|
13293
|
-
|
|
13294
|
-
|
|
13295
|
-
|
|
13296
|
-
|
|
13297
|
-
|
|
13298
|
-
|
|
13299
|
-
|
|
13256
|
+
}
|
|
13257
|
+
};
|
|
13258
|
+
var dataBlockValue = {
|
|
13259
|
+
name: "dataBlockValue",
|
|
13260
|
+
impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
|
|
13261
|
+
{ ALT: () => SUBRULE(iri2) },
|
|
13262
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
13263
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
13264
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
13265
|
+
{ ALT: () => {
|
|
13266
|
+
CONSUME(undef);
|
|
13267
|
+
return void 0;
|
|
13268
|
+
} }
|
|
13269
|
+
])
|
|
13270
|
+
};
|
|
13271
|
+
var minusGraphPattern = {
|
|
13272
|
+
name: "minusGraphPattern",
|
|
13273
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13274
|
+
const minus2 = CONSUME(minus);
|
|
13275
|
+
const group = SUBRULE(groupGraphPattern);
|
|
13276
|
+
return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
|
|
13277
|
+
},
|
|
13278
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13279
|
+
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
13280
|
+
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
13281
|
+
}
|
|
13282
|
+
};
|
|
13283
|
+
var groupOrUnionGraphPattern = {
|
|
13284
|
+
name: "groupOrUnionGraphPattern",
|
|
13285
|
+
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
|
|
13286
|
+
const groups = [];
|
|
13287
|
+
const group = SUBRULE1(groupGraphPattern);
|
|
13288
|
+
groups.push(group);
|
|
13289
|
+
MANY(() => {
|
|
13290
|
+
CONSUME(union);
|
|
13291
|
+
const group2 = SUBRULE2(groupGraphPattern);
|
|
13292
|
+
groups.push(group2);
|
|
13300
13293
|
});
|
|
13301
|
-
return
|
|
13294
|
+
return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
|
|
13295
|
+
groups,
|
|
13296
|
+
C.factory.sourceLocation(group, groups.at(-1))
|
|
13297
|
+
));
|
|
13302
13298
|
},
|
|
13303
13299
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13304
|
-
F2.
|
|
13305
|
-
|
|
13306
|
-
|
|
13307
|
-
|
|
13300
|
+
if (F2.isPatternUnion(ast)) {
|
|
13301
|
+
const [head2, ...tail] = ast.patterns;
|
|
13302
|
+
SUBRULE(groupGraphPattern, head2);
|
|
13303
|
+
for (const pattern of tail) {
|
|
13304
|
+
F2.printFilter(ast, () => PRINT_WORD("UNION"));
|
|
13305
|
+
SUBRULE(groupGraphPattern, pattern);
|
|
13308
13306
|
}
|
|
13309
|
-
});
|
|
13310
|
-
const arg = ast.expression[0];
|
|
13311
|
-
if (F2.isWildcard(arg)) {
|
|
13312
|
-
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
13313
13307
|
} else {
|
|
13314
|
-
SUBRULE(
|
|
13315
|
-
}
|
|
13316
|
-
if (F2.isExpressionAggregateSeparator(ast)) {
|
|
13317
|
-
F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
|
|
13308
|
+
SUBRULE(groupGraphPattern, ast);
|
|
13318
13309
|
}
|
|
13310
|
+
}
|
|
13311
|
+
};
|
|
13312
|
+
var filter3 = {
|
|
13313
|
+
name: "filter",
|
|
13314
|
+
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13315
|
+
const filterToken = CONSUME(filter2);
|
|
13316
|
+
const expression2 = SUBRULE(constraint);
|
|
13317
|
+
return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
|
|
13318
|
+
},
|
|
13319
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13320
|
+
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
13321
|
+
SUBRULE(expression, ast.expression);
|
|
13319
13322
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13320
13323
|
}
|
|
13321
13324
|
};
|
|
13325
|
+
var constraint = {
|
|
13326
|
+
name: "constraint",
|
|
13327
|
+
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13328
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
13329
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13330
|
+
{ ALT: () => SUBRULE(functionCall) }
|
|
13331
|
+
])
|
|
13332
|
+
};
|
|
13333
|
+
var functionCall = {
|
|
13334
|
+
name: "functionCall",
|
|
13335
|
+
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13336
|
+
const func = SUBRULE(iri2);
|
|
13337
|
+
const args = SUBRULE(argList);
|
|
13338
|
+
return ACTION(() => C.factory.expressionFunctionCall(
|
|
13339
|
+
func,
|
|
13340
|
+
args.val.args,
|
|
13341
|
+
args.val.distinct,
|
|
13342
|
+
C.factory.sourceLocation(func, args)
|
|
13343
|
+
));
|
|
13344
|
+
}
|
|
13345
|
+
};
|
|
13322
13346
|
|
|
13323
13347
|
// ../../packages/rules-sparql-1-1/lib/grammar/expression.ts
|
|
13324
13348
|
var argList = {
|
|
@@ -13338,7 +13362,7 @@ var argList = {
|
|
|
13338
13362
|
AT_LEAST_ONE_SEP({
|
|
13339
13363
|
SEP: symbols_exports.comma,
|
|
13340
13364
|
DEF: () => {
|
|
13341
|
-
const arg = SUBRULE1(expression
|
|
13365
|
+
const arg = SUBRULE1(expression);
|
|
13342
13366
|
args.push(arg);
|
|
13343
13367
|
}
|
|
13344
13368
|
});
|
|
@@ -13355,11 +13379,11 @@ var argList = {
|
|
|
13355
13379
|
});
|
|
13356
13380
|
const [head2, ...tail] = ast.val.args;
|
|
13357
13381
|
if (head2) {
|
|
13358
|
-
SUBRULE(expression, head2
|
|
13382
|
+
SUBRULE(expression, head2);
|
|
13359
13383
|
}
|
|
13360
13384
|
for (const expr of tail) {
|
|
13361
13385
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13362
|
-
SUBRULE(expression, expr
|
|
13386
|
+
SUBRULE(expression, expr);
|
|
13363
13387
|
}
|
|
13364
13388
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13365
13389
|
}
|
|
@@ -13373,11 +13397,11 @@ var expressionList = {
|
|
|
13373
13397
|
} },
|
|
13374
13398
|
{ ALT: () => {
|
|
13375
13399
|
const open = CONSUME(symbols_exports.LParen);
|
|
13376
|
-
const expr1 = SUBRULE1(expression
|
|
13400
|
+
const expr1 = SUBRULE1(expression);
|
|
13377
13401
|
const args = [expr1];
|
|
13378
13402
|
MANY(() => {
|
|
13379
13403
|
CONSUME(symbols_exports.comma);
|
|
13380
|
-
const expr = SUBRULE2(expression
|
|
13404
|
+
const expr = SUBRULE2(expression);
|
|
13381
13405
|
args.push(expr);
|
|
13382
13406
|
});
|
|
13383
13407
|
const close = CONSUME(symbols_exports.RParen);
|
|
@@ -13389,15 +13413,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
|
|
|
13389
13413
|
var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
|
|
13390
13414
|
var expression = {
|
|
13391
13415
|
name: "expression",
|
|
13392
|
-
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression
|
|
13416
|
+
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
|
|
13393
13417
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
13394
13418
|
if (F2.isTerm(ast)) {
|
|
13395
|
-
SUBRULE(varOrTerm, ast
|
|
13419
|
+
SUBRULE(varOrTerm, ast);
|
|
13396
13420
|
} else if (F2.isExpressionOperator(ast)) {
|
|
13397
13421
|
if (infixOperators.has(ast.operator)) {
|
|
13398
13422
|
const [left, ...right] = ast.args;
|
|
13399
13423
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13400
|
-
SUBRULE(expression, left
|
|
13424
|
+
SUBRULE(expression, left);
|
|
13401
13425
|
F2.printFilter(ast, () => {
|
|
13402
13426
|
if (ast.operator === "notin") {
|
|
13403
13427
|
PRINT_WORD("NOT IN");
|
|
@@ -13408,35 +13432,35 @@ var expression = {
|
|
|
13408
13432
|
}
|
|
13409
13433
|
});
|
|
13410
13434
|
if (right.length === 1) {
|
|
13411
|
-
SUBRULE(expression, right[0]
|
|
13435
|
+
SUBRULE(expression, right[0]);
|
|
13412
13436
|
} else {
|
|
13413
|
-
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc)
|
|
13437
|
+
SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc));
|
|
13414
13438
|
}
|
|
13415
13439
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13416
13440
|
} else if (prefixOperator.has(ast.operator)) {
|
|
13417
13441
|
const [expr] = ast.args;
|
|
13418
13442
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator));
|
|
13419
|
-
SUBRULE(expression, expr
|
|
13443
|
+
SUBRULE(expression, expr);
|
|
13420
13444
|
} else {
|
|
13421
13445
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
|
|
13422
13446
|
const [head2, ...tail] = ast.args;
|
|
13423
13447
|
if (head2) {
|
|
13424
|
-
SUBRULE(expression, head2
|
|
13448
|
+
SUBRULE(expression, head2);
|
|
13425
13449
|
}
|
|
13426
13450
|
for (const arg of tail) {
|
|
13427
13451
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
13428
|
-
SUBRULE(expression, arg
|
|
13452
|
+
SUBRULE(expression, arg);
|
|
13429
13453
|
}
|
|
13430
13454
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
13431
13455
|
}
|
|
13432
13456
|
} else if (F2.isExpressionPatternOperation(ast)) {
|
|
13433
13457
|
const patterns = ast.args;
|
|
13434
13458
|
F2.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
|
|
13435
|
-
SUBRULE(groupGraphPattern, patterns
|
|
13459
|
+
SUBRULE(groupGraphPattern, patterns);
|
|
13436
13460
|
} else if (F2.isExpressionFunctionCall(ast)) {
|
|
13437
|
-
SUBRULE(iriOrFunction, ast
|
|
13461
|
+
SUBRULE(iriOrFunction, ast);
|
|
13438
13462
|
} else if (F2.isExpressionAggregate(ast)) {
|
|
13439
|
-
SUBRULE(aggregate, ast
|
|
13463
|
+
SUBRULE(aggregate, ast);
|
|
13440
13464
|
}
|
|
13441
13465
|
}
|
|
13442
13466
|
};
|
|
@@ -13453,10 +13477,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
|
|
|
13453
13477
|
var conditionalOrExpression = {
|
|
13454
13478
|
name: "conditionalOrExpression",
|
|
13455
13479
|
impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
|
|
13456
|
-
() => SUBRULE1(conditionalAndExpression
|
|
13480
|
+
() => SUBRULE1(conditionalAndExpression),
|
|
13457
13481
|
() => {
|
|
13458
13482
|
CONSUME(symbols_exports.logicOr);
|
|
13459
|
-
const args = SUBRULE2(conditionalAndExpression
|
|
13483
|
+
const args = SUBRULE2(conditionalAndExpression);
|
|
13460
13484
|
return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
|
|
13461
13485
|
},
|
|
13462
13486
|
ACTION,
|
|
@@ -13466,10 +13490,10 @@ var conditionalOrExpression = {
|
|
|
13466
13490
|
var conditionalAndExpression = {
|
|
13467
13491
|
name: "conditionalAndExpression",
|
|
13468
13492
|
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
|
|
13469
|
-
() => SUBRULE1(valueLogical
|
|
13493
|
+
() => SUBRULE1(valueLogical),
|
|
13470
13494
|
() => {
|
|
13471
13495
|
CONSUME(symbols_exports.logicAnd);
|
|
13472
|
-
const arg = SUBRULE2(valueLogical
|
|
13496
|
+
const arg = SUBRULE2(valueLogical);
|
|
13473
13497
|
return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13474
13498
|
},
|
|
13475
13499
|
ACTION,
|
|
@@ -13478,12 +13502,12 @@ var conditionalAndExpression = {
|
|
|
13478
13502
|
};
|
|
13479
13503
|
var valueLogical = {
|
|
13480
13504
|
name: "valueLogical",
|
|
13481
|
-
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression
|
|
13505
|
+
impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
|
|
13482
13506
|
};
|
|
13483
13507
|
var relationalExpression = {
|
|
13484
13508
|
name: "relationalExpression",
|
|
13485
13509
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
|
|
13486
|
-
const args1 = SUBRULE1(numericExpression
|
|
13510
|
+
const args1 = SUBRULE1(numericExpression);
|
|
13487
13511
|
const expression2 = OPTION(() => OR1([
|
|
13488
13512
|
{ ALT: () => {
|
|
13489
13513
|
const operator = OR2([
|
|
@@ -13494,7 +13518,7 @@ var relationalExpression = {
|
|
|
13494
13518
|
{ ALT: () => CONSUME(symbols_exports.lessThanEqual) },
|
|
13495
13519
|
{ ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
|
|
13496
13520
|
]);
|
|
13497
|
-
const expr = SUBRULE2(numericExpression
|
|
13521
|
+
const expr = SUBRULE2(numericExpression);
|
|
13498
13522
|
return ACTION(() => C.factory.expressionOperation(
|
|
13499
13523
|
operator.image,
|
|
13500
13524
|
[args1, expr],
|
|
@@ -13506,7 +13530,7 @@ var relationalExpression = {
|
|
|
13506
13530
|
{ ALT: () => CONSUME(in_) },
|
|
13507
13531
|
{ ALT: () => CONSUME(notIn) }
|
|
13508
13532
|
]);
|
|
13509
|
-
const args = SUBRULE1(expressionList
|
|
13533
|
+
const args = SUBRULE1(expressionList);
|
|
13510
13534
|
return ACTION(() => C.factory.expressionOperation(
|
|
13511
13535
|
operator.image,
|
|
13512
13536
|
[args1, ...args.val],
|
|
@@ -13519,25 +13543,25 @@ var relationalExpression = {
|
|
|
13519
13543
|
};
|
|
13520
13544
|
var numericExpression = {
|
|
13521
13545
|
name: "numericExpression",
|
|
13522
|
-
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression
|
|
13546
|
+
impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
|
|
13523
13547
|
};
|
|
13524
13548
|
var additiveExpression = {
|
|
13525
13549
|
name: "additiveExpression",
|
|
13526
13550
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
|
|
13527
|
-
() => SUBRULE1(multiplicativeExpression
|
|
13551
|
+
() => SUBRULE1(multiplicativeExpression),
|
|
13528
13552
|
() => OR1([
|
|
13529
13553
|
{ ALT: () => {
|
|
13530
13554
|
const operator = OR2([
|
|
13531
13555
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13532
13556
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13533
13557
|
]);
|
|
13534
|
-
const arg = SUBRULE2(multiplicativeExpression
|
|
13558
|
+
const arg = SUBRULE2(multiplicativeExpression);
|
|
13535
13559
|
return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
|
|
13536
13560
|
} },
|
|
13537
13561
|
{ ALT: () => {
|
|
13538
13562
|
const { operator, startInt } = OR3([
|
|
13539
13563
|
{ ALT: () => {
|
|
13540
|
-
const integer2 = SUBRULE(numericLiteralPositive
|
|
13564
|
+
const integer2 = SUBRULE(numericLiteralPositive);
|
|
13541
13565
|
return ACTION(() => {
|
|
13542
13566
|
integer2.value = integer2.value.replace(/^\+/u, "");
|
|
13543
13567
|
return {
|
|
@@ -13547,7 +13571,7 @@ var additiveExpression = {
|
|
|
13547
13571
|
});
|
|
13548
13572
|
} },
|
|
13549
13573
|
{ ALT: () => {
|
|
13550
|
-
const integer2 = SUBRULE(numericLiteralNegative
|
|
13574
|
+
const integer2 = SUBRULE(numericLiteralNegative);
|
|
13551
13575
|
return ACTION(() => {
|
|
13552
13576
|
integer2.value = integer2.value.replace(/^-/u, "");
|
|
13553
13577
|
return {
|
|
@@ -13564,7 +13588,7 @@ var additiveExpression = {
|
|
|
13564
13588
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13565
13589
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13566
13590
|
]);
|
|
13567
|
-
const innerExpr = SUBRULE1(unaryExpression
|
|
13591
|
+
const innerExpr = SUBRULE1(unaryExpression);
|
|
13568
13592
|
return ACTION(() => (leftInner) => C.factory.expressionOperation(
|
|
13569
13593
|
innerOperator.image,
|
|
13570
13594
|
[leftInner, innerExpr],
|
|
@@ -13588,13 +13612,13 @@ var additiveExpression = {
|
|
|
13588
13612
|
var multiplicativeExpression = {
|
|
13589
13613
|
name: "multiplicativeExpression",
|
|
13590
13614
|
impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
|
|
13591
|
-
() => SUBRULE1(unaryExpression
|
|
13615
|
+
() => SUBRULE1(unaryExpression),
|
|
13592
13616
|
() => {
|
|
13593
13617
|
const operator = OR([
|
|
13594
13618
|
{ ALT: () => CONSUME(symbols_exports.star) },
|
|
13595
13619
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13596
13620
|
]);
|
|
13597
|
-
const expr = SUBRULE2(unaryExpression
|
|
13621
|
+
const expr = SUBRULE2(unaryExpression);
|
|
13598
13622
|
return (left) => ({
|
|
13599
13623
|
type: "expression",
|
|
13600
13624
|
subType: "operation",
|
|
@@ -13610,14 +13634,14 @@ var multiplicativeExpression = {
|
|
|
13610
13634
|
var unaryExpression = {
|
|
13611
13635
|
name: "unaryExpression",
|
|
13612
13636
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
|
|
13613
|
-
{ ALT: () => SUBRULE1(primaryExpression
|
|
13637
|
+
{ ALT: () => SUBRULE1(primaryExpression) },
|
|
13614
13638
|
{ ALT: () => {
|
|
13615
13639
|
const operator = OR2([
|
|
13616
13640
|
{ ALT: () => CONSUME(symbols_exports.exclamation) },
|
|
13617
13641
|
{ ALT: () => CONSUME(symbols_exports.opPlus) },
|
|
13618
13642
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13619
13643
|
]);
|
|
13620
|
-
const expr = SUBRULE2(primaryExpression
|
|
13644
|
+
const expr = SUBRULE2(primaryExpression);
|
|
13621
13645
|
return ACTION(() => ({
|
|
13622
13646
|
type: "expression",
|
|
13623
13647
|
subType: "operation",
|
|
@@ -13631,20 +13655,20 @@ var unaryExpression = {
|
|
|
13631
13655
|
var primaryExpression = {
|
|
13632
13656
|
name: "primaryExpression",
|
|
13633
13657
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
13634
|
-
{ ALT: () => SUBRULE(brackettedExpression
|
|
13635
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13636
|
-
{ ALT: () => SUBRULE(iriOrFunction
|
|
13637
|
-
{ ALT: () => SUBRULE(rdfLiteral
|
|
13638
|
-
{ ALT: () => SUBRULE(numericLiteral
|
|
13639
|
-
{ ALT: () => SUBRULE(booleanLiteral
|
|
13640
|
-
{ ALT: () => SUBRULE(var_
|
|
13658
|
+
{ ALT: () => SUBRULE(brackettedExpression) },
|
|
13659
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13660
|
+
{ ALT: () => SUBRULE(iriOrFunction) },
|
|
13661
|
+
{ ALT: () => SUBRULE(rdfLiteral) },
|
|
13662
|
+
{ ALT: () => SUBRULE(numericLiteral) },
|
|
13663
|
+
{ ALT: () => SUBRULE(booleanLiteral) },
|
|
13664
|
+
{ ALT: () => SUBRULE(var_) }
|
|
13641
13665
|
])
|
|
13642
13666
|
};
|
|
13643
13667
|
var brackettedExpression = {
|
|
13644
13668
|
name: "brackettedExpression",
|
|
13645
13669
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13646
13670
|
const open = CONSUME(symbols_exports.LParen);
|
|
13647
|
-
const expr = SUBRULE(expression
|
|
13671
|
+
const expr = SUBRULE(expression);
|
|
13648
13672
|
const close = CONSUME(symbols_exports.RParen);
|
|
13649
13673
|
return ACTION(() => {
|
|
13650
13674
|
expr.loc = C.factory.sourceLocation(open, close);
|
|
@@ -13655,9 +13679,9 @@ var brackettedExpression = {
|
|
|
13655
13679
|
var iriOrFunction = {
|
|
13656
13680
|
name: "iriOrFunction",
|
|
13657
13681
|
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
13658
|
-
const iriVal = SUBRULE(iri2
|
|
13682
|
+
const iriVal = SUBRULE(iri2);
|
|
13659
13683
|
const functionCall2 = OPTION(() => {
|
|
13660
|
-
const args = SUBRULE(argList
|
|
13684
|
+
const args = SUBRULE(argList);
|
|
13661
13685
|
return ACTION(() => {
|
|
13662
13686
|
const distinct2 = args.val.distinct;
|
|
13663
13687
|
if (!C.parseMode.has("canParseAggregate") && distinct2) {
|
|
@@ -13677,10 +13701,10 @@ var iriOrFunction = {
|
|
|
13677
13701
|
},
|
|
13678
13702
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13679
13703
|
if (F2.isTermNamed(ast)) {
|
|
13680
|
-
SUBRULE(iri2, ast
|
|
13704
|
+
SUBRULE(iri2, ast);
|
|
13681
13705
|
} else {
|
|
13682
|
-
SUBRULE(iri2, ast.function
|
|
13683
|
-
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc)
|
|
13706
|
+
SUBRULE(iri2, ast.function);
|
|
13707
|
+
SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
|
|
13684
13708
|
}
|
|
13685
13709
|
}
|
|
13686
13710
|
};
|
|
@@ -13689,10 +13713,10 @@ var iriOrFunction = {
|
|
|
13689
13713
|
var solutionModifier = {
|
|
13690
13714
|
name: "solutionModifier",
|
|
13691
13715
|
impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
|
|
13692
|
-
const group = OPTION1(() => SUBRULE(groupClause
|
|
13693
|
-
const having2 = OPTION2(() => SUBRULE(havingClause
|
|
13694
|
-
const order2 = OPTION3(() => SUBRULE(orderClause
|
|
13695
|
-
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses
|
|
13716
|
+
const group = OPTION1(() => SUBRULE(groupClause));
|
|
13717
|
+
const having2 = OPTION2(() => SUBRULE(havingClause));
|
|
13718
|
+
const order2 = OPTION3(() => SUBRULE(orderClause));
|
|
13719
|
+
const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
|
|
13696
13720
|
return ACTION(() => ({
|
|
13697
13721
|
...limitOffset && { limitOffset },
|
|
13698
13722
|
...group && { group },
|
|
@@ -13702,16 +13726,16 @@ var solutionModifier = {
|
|
|
13702
13726
|
},
|
|
13703
13727
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
13704
13728
|
if (ast.group) {
|
|
13705
|
-
SUBRULE(groupClause, ast.group
|
|
13729
|
+
SUBRULE(groupClause, ast.group);
|
|
13706
13730
|
}
|
|
13707
13731
|
if (ast.having) {
|
|
13708
|
-
SUBRULE(havingClause, ast.having
|
|
13732
|
+
SUBRULE(havingClause, ast.having);
|
|
13709
13733
|
}
|
|
13710
13734
|
if (ast.order) {
|
|
13711
|
-
SUBRULE(orderClause, ast.order
|
|
13735
|
+
SUBRULE(orderClause, ast.order);
|
|
13712
13736
|
}
|
|
13713
13737
|
if (ast.limitOffset) {
|
|
13714
|
-
SUBRULE(limitOffsetClauses, ast.limitOffset
|
|
13738
|
+
SUBRULE(limitOffsetClauses, ast.limitOffset);
|
|
13715
13739
|
}
|
|
13716
13740
|
}
|
|
13717
13741
|
};
|
|
@@ -13722,7 +13746,7 @@ var groupClause = {
|
|
|
13722
13746
|
const start = CONSUME(groupByGroup);
|
|
13723
13747
|
CONSUME(by);
|
|
13724
13748
|
AT_LEAST_ONE(() => {
|
|
13725
|
-
groupings.push(SUBRULE1(groupCondition
|
|
13749
|
+
groupings.push(SUBRULE1(groupCondition));
|
|
13726
13750
|
});
|
|
13727
13751
|
return ACTION(() => ({
|
|
13728
13752
|
type: "solutionModifier",
|
|
@@ -13735,12 +13759,12 @@ var groupClause = {
|
|
|
13735
13759
|
F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
|
|
13736
13760
|
for (const grouping of ast.groupings) {
|
|
13737
13761
|
if (F2.isExpression(grouping)) {
|
|
13738
|
-
SUBRULE(expression, grouping
|
|
13762
|
+
SUBRULE(expression, grouping);
|
|
13739
13763
|
} else {
|
|
13740
13764
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13741
|
-
SUBRULE(expression, grouping.value
|
|
13765
|
+
SUBRULE(expression, grouping.value);
|
|
13742
13766
|
F2.printFilter(ast, () => PRINT_WORDS("AS"));
|
|
13743
|
-
SUBRULE(var_, grouping.variable
|
|
13767
|
+
SUBRULE(var_, grouping.variable);
|
|
13744
13768
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13745
13769
|
}
|
|
13746
13770
|
}
|
|
@@ -13749,16 +13773,16 @@ var groupClause = {
|
|
|
13749
13773
|
var groupCondition = {
|
|
13750
13774
|
name: "groupCondition",
|
|
13751
13775
|
impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
|
|
13752
|
-
{ ALT: () => SUBRULE(builtInCall
|
|
13753
|
-
{ ALT: () => SUBRULE(functionCall
|
|
13754
|
-
{ ALT: () => SUBRULE2(var_
|
|
13776
|
+
{ ALT: () => SUBRULE(builtInCall) },
|
|
13777
|
+
{ ALT: () => SUBRULE(functionCall) },
|
|
13778
|
+
{ ALT: () => SUBRULE2(var_) },
|
|
13755
13779
|
{
|
|
13756
13780
|
ALT: () => {
|
|
13757
13781
|
const open = CONSUME(symbols_exports.LParen);
|
|
13758
|
-
const expressionValue = SUBRULE(expression
|
|
13782
|
+
const expressionValue = SUBRULE(expression);
|
|
13759
13783
|
const variable = OPTION(() => {
|
|
13760
13784
|
CONSUME(as);
|
|
13761
|
-
return SUBRULE1(var_
|
|
13785
|
+
return SUBRULE1(var_);
|
|
13762
13786
|
});
|
|
13763
13787
|
const close = CONSUME(symbols_exports.RParen);
|
|
13764
13788
|
return ACTION(() => {
|
|
@@ -13782,7 +13806,7 @@ var havingClause = {
|
|
|
13782
13806
|
const expressions = [];
|
|
13783
13807
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13784
13808
|
AT_LEAST_ONE(() => {
|
|
13785
|
-
expressions.push(SUBRULE(havingCondition
|
|
13809
|
+
expressions.push(SUBRULE(havingCondition));
|
|
13786
13810
|
});
|
|
13787
13811
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13788
13812
|
return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
|
|
@@ -13790,13 +13814,13 @@ var havingClause = {
|
|
|
13790
13814
|
gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13791
13815
|
F2.printFilter(ast, () => PRINT_WORD("HAVING"));
|
|
13792
13816
|
for (const having2 of ast.having) {
|
|
13793
|
-
SUBRULE(expression, having2
|
|
13817
|
+
SUBRULE(expression, having2);
|
|
13794
13818
|
}
|
|
13795
13819
|
}
|
|
13796
13820
|
};
|
|
13797
13821
|
var havingCondition = {
|
|
13798
13822
|
name: "havingCondition",
|
|
13799
|
-
impl: ({ SUBRULE }) => () => SUBRULE(constraint
|
|
13823
|
+
impl: ({ SUBRULE }) => () => SUBRULE(constraint)
|
|
13800
13824
|
};
|
|
13801
13825
|
var orderClause = {
|
|
13802
13826
|
name: "orderClause",
|
|
@@ -13806,7 +13830,7 @@ var orderClause = {
|
|
|
13806
13830
|
const orderings = [];
|
|
13807
13831
|
const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
|
|
13808
13832
|
AT_LEAST_ONE(() => {
|
|
13809
|
-
orderings.push(SUBRULE1(orderCondition
|
|
13833
|
+
orderings.push(SUBRULE1(orderCondition));
|
|
13810
13834
|
});
|
|
13811
13835
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13812
13836
|
return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
|
|
@@ -13820,7 +13844,7 @@ var orderClause = {
|
|
|
13820
13844
|
F2.printFilter(ast, () => PRINT_WORDS("ASC"));
|
|
13821
13845
|
}
|
|
13822
13846
|
F2.printFilter(ast, () => PRINT_WORDS("("));
|
|
13823
|
-
SUBRULE(expression, ordering.expression
|
|
13847
|
+
SUBRULE(expression, ordering.expression);
|
|
13824
13848
|
F2.printFilter(ast, () => PRINT_WORDS(")"));
|
|
13825
13849
|
}
|
|
13826
13850
|
}
|
|
@@ -13839,7 +13863,7 @@ var orderCondition = {
|
|
|
13839
13863
|
return [true, token];
|
|
13840
13864
|
} }
|
|
13841
13865
|
]);
|
|
13842
|
-
const expr = SUBRULE(brackettedExpression
|
|
13866
|
+
const expr = SUBRULE(brackettedExpression);
|
|
13843
13867
|
return ACTION(() => ({
|
|
13844
13868
|
expression: expr,
|
|
13845
13869
|
descending: descending[0],
|
|
@@ -13847,11 +13871,11 @@ var orderCondition = {
|
|
|
13847
13871
|
}));
|
|
13848
13872
|
} },
|
|
13849
13873
|
{ ALT: () => {
|
|
13850
|
-
const expr = SUBRULE(constraint
|
|
13874
|
+
const expr = SUBRULE(constraint);
|
|
13851
13875
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13852
13876
|
} },
|
|
13853
13877
|
{ ALT: () => {
|
|
13854
|
-
const expr = SUBRULE(var_
|
|
13878
|
+
const expr = SUBRULE(var_);
|
|
13855
13879
|
return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
|
|
13856
13880
|
} }
|
|
13857
13881
|
])
|
|
@@ -13860,8 +13884,8 @@ var limitOffsetClauses = {
|
|
|
13860
13884
|
name: "limitOffsetClauses",
|
|
13861
13885
|
impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
|
|
13862
13886
|
{ ALT: () => {
|
|
13863
|
-
const limit2 = SUBRULE1(limitClause
|
|
13864
|
-
const offset2 = OPTION1(() => SUBRULE1(offsetClause
|
|
13887
|
+
const limit2 = SUBRULE1(limitClause);
|
|
13888
|
+
const offset2 = OPTION1(() => SUBRULE1(offsetClause));
|
|
13865
13889
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13866
13890
|
limit2.val,
|
|
13867
13891
|
offset2?.val,
|
|
@@ -13869,8 +13893,8 @@ var limitOffsetClauses = {
|
|
|
13869
13893
|
));
|
|
13870
13894
|
} },
|
|
13871
13895
|
{ ALT: () => {
|
|
13872
|
-
const offset2 = SUBRULE2(offsetClause
|
|
13873
|
-
const limit2 = OPTION2(() => SUBRULE2(limitClause
|
|
13896
|
+
const offset2 = SUBRULE2(offsetClause);
|
|
13897
|
+
const limit2 = OPTION2(() => SUBRULE2(limitClause));
|
|
13874
13898
|
return ACTION(() => C.factory.solutionModifierLimitOffset(
|
|
13875
13899
|
limit2?.val,
|
|
13876
13900
|
offset2.val,
|
|
@@ -13908,22 +13932,22 @@ var offsetClause = {
|
|
|
13908
13932
|
}
|
|
13909
13933
|
};
|
|
13910
13934
|
|
|
13911
|
-
// ../../packages/rules-sparql-1-1/lib/grammar/queryUnit
|
|
13935
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/queryUnit.ts
|
|
13912
13936
|
var queryUnit = {
|
|
13913
13937
|
name: "queryUnit",
|
|
13914
|
-
impl: ({ SUBRULE }) => () => SUBRULE(query
|
|
13938
|
+
impl: ({ SUBRULE }) => () => SUBRULE(query)
|
|
13915
13939
|
};
|
|
13916
13940
|
var query = {
|
|
13917
13941
|
name: "query",
|
|
13918
13942
|
impl: ({ ACTION, SUBRULE, OR }) => (C) => {
|
|
13919
|
-
const prologueValues = SUBRULE(prologue
|
|
13943
|
+
const prologueValues = SUBRULE(prologue);
|
|
13920
13944
|
const subType = OR([
|
|
13921
|
-
{ ALT: () => SUBRULE(selectQuery
|
|
13922
|
-
{ ALT: () => SUBRULE(constructQuery
|
|
13923
|
-
{ ALT: () => SUBRULE(describeQuery
|
|
13924
|
-
{ ALT: () => SUBRULE(askQuery
|
|
13945
|
+
{ ALT: () => SUBRULE(selectQuery) },
|
|
13946
|
+
{ ALT: () => SUBRULE(constructQuery) },
|
|
13947
|
+
{ ALT: () => SUBRULE(describeQuery) },
|
|
13948
|
+
{ ALT: () => SUBRULE(askQuery) }
|
|
13925
13949
|
]);
|
|
13926
|
-
const values3 = SUBRULE(valuesClause
|
|
13950
|
+
const values3 = SUBRULE(valuesClause);
|
|
13927
13951
|
return ACTION(() => ({
|
|
13928
13952
|
context: prologueValues,
|
|
13929
13953
|
...subType,
|
|
@@ -13937,28 +13961,28 @@ var query = {
|
|
|
13937
13961
|
}));
|
|
13938
13962
|
},
|
|
13939
13963
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
13940
|
-
SUBRULE(prologue, ast.context
|
|
13964
|
+
SUBRULE(prologue, ast.context);
|
|
13941
13965
|
if (F2.isQuerySelect(ast)) {
|
|
13942
|
-
SUBRULE(selectQuery, ast
|
|
13966
|
+
SUBRULE(selectQuery, ast);
|
|
13943
13967
|
} else if (F2.isQueryConstruct(ast)) {
|
|
13944
|
-
SUBRULE(constructQuery, ast
|
|
13968
|
+
SUBRULE(constructQuery, ast);
|
|
13945
13969
|
} else if (F2.isQueryDescribe(ast)) {
|
|
13946
|
-
SUBRULE(describeQuery, ast
|
|
13970
|
+
SUBRULE(describeQuery, ast);
|
|
13947
13971
|
} else if (F2.isQueryAsk(ast)) {
|
|
13948
|
-
SUBRULE(askQuery, ast
|
|
13972
|
+
SUBRULE(askQuery, ast);
|
|
13949
13973
|
}
|
|
13950
13974
|
if (ast.values) {
|
|
13951
|
-
SUBRULE(inlineData, ast.values
|
|
13975
|
+
SUBRULE(inlineData, ast.values);
|
|
13952
13976
|
}
|
|
13953
13977
|
}
|
|
13954
13978
|
};
|
|
13955
13979
|
var selectQuery = {
|
|
13956
13980
|
name: "selectQuery",
|
|
13957
13981
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13958
|
-
const selectVal = SUBRULE(selectClause
|
|
13959
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
13960
|
-
const where2 = SUBRULE(whereClause
|
|
13961
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13982
|
+
const selectVal = SUBRULE(selectClause);
|
|
13983
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
13984
|
+
const where2 = SUBRULE(whereClause);
|
|
13985
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
13962
13986
|
return ACTION(() => {
|
|
13963
13987
|
const ret = {
|
|
13964
13988
|
subType: "select",
|
|
@@ -13984,19 +14008,19 @@ var selectQuery = {
|
|
|
13984
14008
|
variables: ast.variables,
|
|
13985
14009
|
distinct: ast.distinct,
|
|
13986
14010
|
reduced: ast.reduced
|
|
13987
|
-
}, F2.sourceLocation(...ast.variables))
|
|
13988
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
13989
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
13990
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14011
|
+
}, F2.sourceLocation(...ast.variables)));
|
|
14012
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14013
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
14014
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
13991
14015
|
}
|
|
13992
14016
|
};
|
|
13993
14017
|
var subSelect = {
|
|
13994
14018
|
name: "subSelect",
|
|
13995
14019
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13996
|
-
const selectVal = SUBRULE(selectClause
|
|
13997
|
-
const where2 = SUBRULE(whereClause
|
|
13998
|
-
const modifiers = SUBRULE(solutionModifier
|
|
13999
|
-
const values3 = SUBRULE(valuesClause
|
|
14020
|
+
const selectVal = SUBRULE(selectClause);
|
|
14021
|
+
const where2 = SUBRULE(whereClause);
|
|
14022
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
14023
|
+
const values3 = SUBRULE(valuesClause);
|
|
14000
14024
|
return ACTION(() => C.factory.querySelect({
|
|
14001
14025
|
where: where2.val,
|
|
14002
14026
|
datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
|
|
@@ -14061,7 +14085,7 @@ var selectClause = {
|
|
|
14061
14085
|
const variables = [];
|
|
14062
14086
|
AT_LEAST_ONE(() => OR3([
|
|
14063
14087
|
{ ALT: () => {
|
|
14064
|
-
const raw = SUBRULE1(var_
|
|
14088
|
+
const raw = SUBRULE1(var_);
|
|
14065
14089
|
ACTION(() => {
|
|
14066
14090
|
if (usedVars.some((v) => v.value === raw.value)) {
|
|
14067
14091
|
throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
|
|
@@ -14073,9 +14097,9 @@ var selectClause = {
|
|
|
14073
14097
|
} },
|
|
14074
14098
|
{ ALT: () => {
|
|
14075
14099
|
const open = CONSUME(symbols_exports.LParen);
|
|
14076
|
-
const expr = SUBRULE1(expression
|
|
14100
|
+
const expr = SUBRULE1(expression);
|
|
14077
14101
|
CONSUME(as);
|
|
14078
|
-
const variable = SUBRULE2(var_
|
|
14102
|
+
const variable = SUBRULE2(var_);
|
|
14079
14103
|
const close = CONSUME(symbols_exports.RParen);
|
|
14080
14104
|
ACTION(() => {
|
|
14081
14105
|
last2 = close;
|
|
@@ -14106,12 +14130,12 @@ var selectClause = {
|
|
|
14106
14130
|
if (F2.isWildcard(variable)) {
|
|
14107
14131
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
14108
14132
|
} else if (F2.isTerm(variable)) {
|
|
14109
|
-
SUBRULE(var_, variable
|
|
14133
|
+
SUBRULE(var_, variable);
|
|
14110
14134
|
} else {
|
|
14111
14135
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
14112
|
-
SUBRULE(expression, variable.expression
|
|
14136
|
+
SUBRULE(expression, variable.expression);
|
|
14113
14137
|
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
14114
|
-
SUBRULE(var_, variable.variable
|
|
14138
|
+
SUBRULE(var_, variable.variable);
|
|
14115
14139
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
14116
14140
|
}
|
|
14117
14141
|
}
|
|
@@ -14123,10 +14147,10 @@ var constructQuery = {
|
|
|
14123
14147
|
const construct2 = CONSUME(construct);
|
|
14124
14148
|
return OR([
|
|
14125
14149
|
{ ALT: () => {
|
|
14126
|
-
const template = SUBRULE1(constructTemplate
|
|
14127
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
14128
|
-
const where2 = SUBRULE1(whereClause
|
|
14129
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
14150
|
+
const template = SUBRULE1(constructTemplate);
|
|
14151
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
14152
|
+
const where2 = SUBRULE1(whereClause);
|
|
14153
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
14130
14154
|
return ACTION(() => ({
|
|
14131
14155
|
subType: "construct",
|
|
14132
14156
|
template: template.val,
|
|
@@ -14144,10 +14168,10 @@ var constructQuery = {
|
|
|
14144
14168
|
}));
|
|
14145
14169
|
} },
|
|
14146
14170
|
{ ALT: () => {
|
|
14147
|
-
const from2 = SUBRULE2(datasetClauseStar
|
|
14171
|
+
const from2 = SUBRULE2(datasetClauseStar);
|
|
14148
14172
|
CONSUME(where);
|
|
14149
|
-
const template = SUBRULE2(constructTemplate
|
|
14150
|
-
const modifiers = SUBRULE2(solutionModifier
|
|
14173
|
+
const template = SUBRULE2(constructTemplate);
|
|
14174
|
+
const modifiers = SUBRULE2(solutionModifier);
|
|
14151
14175
|
return ACTION(() => ({
|
|
14152
14176
|
subType: "construct",
|
|
14153
14177
|
template: template.val,
|
|
@@ -14170,16 +14194,16 @@ var constructQuery = {
|
|
|
14170
14194
|
F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
|
|
14171
14195
|
if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
14172
14196
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
14173
|
-
SUBRULE(triplesBlock, ast.template
|
|
14197
|
+
SUBRULE(triplesBlock, ast.template);
|
|
14174
14198
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14175
14199
|
}
|
|
14176
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
14200
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14177
14201
|
if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
14178
|
-
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc)
|
|
14202
|
+
SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc));
|
|
14179
14203
|
} else {
|
|
14180
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc)
|
|
14204
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
|
|
14181
14205
|
}
|
|
14182
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14206
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
14183
14207
|
}
|
|
14184
14208
|
};
|
|
14185
14209
|
var describeQuery = {
|
|
@@ -14190,7 +14214,7 @@ var describeQuery = {
|
|
|
14190
14214
|
{ ALT: () => {
|
|
14191
14215
|
const variables2 = [];
|
|
14192
14216
|
AT_LEAST_ONE(() => {
|
|
14193
|
-
variables2.push(SUBRULE1(varOrIri
|
|
14217
|
+
variables2.push(SUBRULE1(varOrIri));
|
|
14194
14218
|
});
|
|
14195
14219
|
return variables2;
|
|
14196
14220
|
} },
|
|
@@ -14199,9 +14223,9 @@ var describeQuery = {
|
|
|
14199
14223
|
return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
|
|
14200
14224
|
} }
|
|
14201
14225
|
]);
|
|
14202
|
-
const from2 = SUBRULE1(datasetClauseStar
|
|
14203
|
-
const where2 = OPTION(() => SUBRULE1(whereClause
|
|
14204
|
-
const modifiers = SUBRULE1(solutionModifier
|
|
14226
|
+
const from2 = SUBRULE1(datasetClauseStar);
|
|
14227
|
+
const where2 = OPTION(() => SUBRULE1(whereClause));
|
|
14228
|
+
const modifiers = SUBRULE1(solutionModifier);
|
|
14205
14229
|
return ACTION(() => ({
|
|
14206
14230
|
subType: "describe",
|
|
14207
14231
|
variables,
|
|
@@ -14226,23 +14250,23 @@ var describeQuery = {
|
|
|
14226
14250
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
14227
14251
|
} else {
|
|
14228
14252
|
for (const variable of ast.variables) {
|
|
14229
|
-
SUBRULE(varOrTerm, variable
|
|
14253
|
+
SUBRULE(varOrTerm, variable);
|
|
14230
14254
|
}
|
|
14231
14255
|
}
|
|
14232
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
14256
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14233
14257
|
if (ast.where) {
|
|
14234
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
14258
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
14235
14259
|
}
|
|
14236
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14260
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
14237
14261
|
}
|
|
14238
14262
|
};
|
|
14239
14263
|
var askQuery = {
|
|
14240
14264
|
name: "askQuery",
|
|
14241
14265
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14242
14266
|
const ask2 = CONSUME(ask);
|
|
14243
|
-
const from2 = SUBRULE(datasetClauseStar
|
|
14244
|
-
const where2 = SUBRULE(whereClause
|
|
14245
|
-
const modifiers = SUBRULE(solutionModifier
|
|
14267
|
+
const from2 = SUBRULE(datasetClauseStar);
|
|
14268
|
+
const where2 = SUBRULE(whereClause);
|
|
14269
|
+
const modifiers = SUBRULE(solutionModifier);
|
|
14246
14270
|
return ACTION(() => ({
|
|
14247
14271
|
subType: "ask",
|
|
14248
14272
|
datasets: from2,
|
|
@@ -14261,20 +14285,20 @@ var askQuery = {
|
|
|
14261
14285
|
},
|
|
14262
14286
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14263
14287
|
F2.printFilter(ast, () => PRINT_WORD("ASK"));
|
|
14264
|
-
SUBRULE(datasetClauseStar, ast.datasets
|
|
14265
|
-
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc)
|
|
14266
|
-
SUBRULE(solutionModifier, ast.solutionModifiers
|
|
14288
|
+
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14289
|
+
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
14290
|
+
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
14267
14291
|
}
|
|
14268
14292
|
};
|
|
14269
14293
|
var valuesClause = {
|
|
14270
14294
|
name: "valuesClause",
|
|
14271
|
-
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData
|
|
14295
|
+
impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
|
|
14272
14296
|
};
|
|
14273
14297
|
var constructTemplate = {
|
|
14274
14298
|
name: "constructTemplate",
|
|
14275
14299
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14276
14300
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14277
|
-
const triples = OPTION(() => SUBRULE1(constructTriples
|
|
14301
|
+
const triples = OPTION(() => SUBRULE1(constructTriples));
|
|
14278
14302
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14279
14303
|
return ACTION(() => C.factory.wrap(
|
|
14280
14304
|
triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
|
|
@@ -14287,27 +14311,27 @@ var constructTriples = {
|
|
|
14287
14311
|
impl: triplesTemplate.impl
|
|
14288
14312
|
};
|
|
14289
14313
|
|
|
14290
|
-
// ../../packages/rules-sparql-1-1/lib/grammar/updateUnit
|
|
14314
|
+
// ../../packages/rules-sparql-1-1/lib/grammar/updateUnit.ts
|
|
14291
14315
|
var updateUnit = {
|
|
14292
14316
|
name: "updateUnit",
|
|
14293
|
-
impl: ({ SUBRULE }) => () => SUBRULE(update
|
|
14317
|
+
impl: ({ SUBRULE }) => () => SUBRULE(update)
|
|
14294
14318
|
};
|
|
14295
14319
|
var update = {
|
|
14296
14320
|
name: "update",
|
|
14297
14321
|
impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
|
|
14298
14322
|
const updates = [];
|
|
14299
|
-
const prologueValues = SUBRULE1(prologue
|
|
14323
|
+
const prologueValues = SUBRULE1(prologue);
|
|
14300
14324
|
updates.push({ context: prologueValues });
|
|
14301
14325
|
let parsedSemi = true;
|
|
14302
14326
|
MANY({
|
|
14303
14327
|
GATE: () => parsedSemi,
|
|
14304
14328
|
DEF: () => {
|
|
14305
14329
|
parsedSemi = false;
|
|
14306
|
-
updates.at(-1).operation = SUBRULE(update1
|
|
14330
|
+
updates.at(-1).operation = SUBRULE(update1);
|
|
14307
14331
|
OPTION1(() => {
|
|
14308
14332
|
CONSUME(symbols_exports.semi);
|
|
14309
14333
|
parsedSemi = true;
|
|
14310
|
-
const innerPrologue = SUBRULE2(prologue
|
|
14334
|
+
const innerPrologue = SUBRULE2(prologue);
|
|
14311
14335
|
updates.push({ context: innerPrologue });
|
|
14312
14336
|
});
|
|
14313
14337
|
}
|
|
@@ -14329,9 +14353,9 @@ var update = {
|
|
|
14329
14353
|
},
|
|
14330
14354
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14331
14355
|
for (const update2 of ast.updates) {
|
|
14332
|
-
SUBRULE(prologue, update2.context
|
|
14356
|
+
SUBRULE(prologue, update2.context);
|
|
14333
14357
|
if (update2.operation) {
|
|
14334
|
-
SUBRULE(update1, update2.operation
|
|
14358
|
+
SUBRULE(update1, update2.operation);
|
|
14335
14359
|
F2.printFilter(ast, () => PRINT_WORD(" ;\n"));
|
|
14336
14360
|
}
|
|
14337
14361
|
}
|
|
@@ -14340,52 +14364,52 @@ var update = {
|
|
|
14340
14364
|
var update1 = {
|
|
14341
14365
|
name: "update1",
|
|
14342
14366
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
14343
|
-
{ ALT: () => SUBRULE(load2
|
|
14344
|
-
{ ALT: () => SUBRULE(clear2
|
|
14345
|
-
{ ALT: () => SUBRULE(drop3
|
|
14346
|
-
{ ALT: () => SUBRULE(add2
|
|
14347
|
-
{ ALT: () => SUBRULE(move2
|
|
14348
|
-
{ ALT: () => SUBRULE(copy2
|
|
14349
|
-
{ ALT: () => SUBRULE(create2
|
|
14350
|
-
{ ALT: () => SUBRULE(insertData
|
|
14351
|
-
{ ALT: () => SUBRULE(deleteData
|
|
14352
|
-
{ ALT: () => SUBRULE(deleteWhere
|
|
14353
|
-
{ ALT: () => SUBRULE(modify
|
|
14367
|
+
{ ALT: () => SUBRULE(load2) },
|
|
14368
|
+
{ ALT: () => SUBRULE(clear2) },
|
|
14369
|
+
{ ALT: () => SUBRULE(drop3) },
|
|
14370
|
+
{ ALT: () => SUBRULE(add2) },
|
|
14371
|
+
{ ALT: () => SUBRULE(move2) },
|
|
14372
|
+
{ ALT: () => SUBRULE(copy2) },
|
|
14373
|
+
{ ALT: () => SUBRULE(create2) },
|
|
14374
|
+
{ ALT: () => SUBRULE(insertData) },
|
|
14375
|
+
{ ALT: () => SUBRULE(deleteData) },
|
|
14376
|
+
{ ALT: () => SUBRULE(deleteWhere) },
|
|
14377
|
+
{ ALT: () => SUBRULE(modify) }
|
|
14354
14378
|
]),
|
|
14355
14379
|
gImpl: ({ SUBRULE }) => (ast) => {
|
|
14356
14380
|
switch (ast.subType) {
|
|
14357
14381
|
case "load":
|
|
14358
|
-
SUBRULE(load2, ast
|
|
14382
|
+
SUBRULE(load2, ast);
|
|
14359
14383
|
break;
|
|
14360
14384
|
case "clear":
|
|
14361
|
-
SUBRULE(clear2, ast
|
|
14385
|
+
SUBRULE(clear2, ast);
|
|
14362
14386
|
break;
|
|
14363
14387
|
case "drop":
|
|
14364
|
-
SUBRULE(drop3, ast
|
|
14388
|
+
SUBRULE(drop3, ast);
|
|
14365
14389
|
break;
|
|
14366
14390
|
case "add":
|
|
14367
|
-
SUBRULE(add2, ast
|
|
14391
|
+
SUBRULE(add2, ast);
|
|
14368
14392
|
break;
|
|
14369
14393
|
case "move":
|
|
14370
|
-
SUBRULE(move2, ast
|
|
14394
|
+
SUBRULE(move2, ast);
|
|
14371
14395
|
break;
|
|
14372
14396
|
case "copy":
|
|
14373
|
-
SUBRULE(copy2, ast
|
|
14397
|
+
SUBRULE(copy2, ast);
|
|
14374
14398
|
break;
|
|
14375
14399
|
case "create":
|
|
14376
|
-
SUBRULE(create2, ast
|
|
14400
|
+
SUBRULE(create2, ast);
|
|
14377
14401
|
break;
|
|
14378
14402
|
case "insertdata":
|
|
14379
|
-
SUBRULE(insertData, ast
|
|
14403
|
+
SUBRULE(insertData, ast);
|
|
14380
14404
|
break;
|
|
14381
14405
|
case "deletedata":
|
|
14382
|
-
SUBRULE(deleteData, ast
|
|
14406
|
+
SUBRULE(deleteData, ast);
|
|
14383
14407
|
break;
|
|
14384
14408
|
case "deletewhere":
|
|
14385
|
-
SUBRULE(deleteWhere, ast
|
|
14409
|
+
SUBRULE(deleteWhere, ast);
|
|
14386
14410
|
break;
|
|
14387
14411
|
case "modify":
|
|
14388
|
-
SUBRULE(modify, ast
|
|
14412
|
+
SUBRULE(modify, ast);
|
|
14389
14413
|
break;
|
|
14390
14414
|
}
|
|
14391
14415
|
}
|
|
@@ -14395,10 +14419,10 @@ var load2 = {
|
|
|
14395
14419
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
|
|
14396
14420
|
const loadToken = CONSUME(load);
|
|
14397
14421
|
const silent2 = OPTION1(() => CONSUME(silent));
|
|
14398
|
-
const source = SUBRULE1(iri2
|
|
14422
|
+
const source = SUBRULE1(iri2);
|
|
14399
14423
|
const destination = OPTION2(() => {
|
|
14400
14424
|
CONSUME(loadInto);
|
|
14401
|
-
return SUBRULE1(graphRef
|
|
14425
|
+
return SUBRULE1(graphRef);
|
|
14402
14426
|
});
|
|
14403
14427
|
return ACTION(() => C.factory.updateOperationLoad(
|
|
14404
14428
|
C.factory.sourceLocation(loadToken, source, destination),
|
|
@@ -14414,10 +14438,10 @@ var load2 = {
|
|
|
14414
14438
|
PRINT_WORD("SILENT");
|
|
14415
14439
|
}
|
|
14416
14440
|
});
|
|
14417
|
-
SUBRULE(iri2, ast.source
|
|
14441
|
+
SUBRULE(iri2, ast.source);
|
|
14418
14442
|
if (ast.destination) {
|
|
14419
14443
|
F2.printFilter(ast, () => PRINT_WORD("INTO"));
|
|
14420
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14444
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14421
14445
|
}
|
|
14422
14446
|
}
|
|
14423
14447
|
};
|
|
@@ -14427,7 +14451,7 @@ function clearOrDrop(operation) {
|
|
|
14427
14451
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14428
14452
|
const opToken = CONSUME(operation);
|
|
14429
14453
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14430
|
-
const destination = SUBRULE1(graphRefAll
|
|
14454
|
+
const destination = SUBRULE1(graphRefAll);
|
|
14431
14455
|
return ACTION(() => C.factory.updateOperationClearDrop(
|
|
14432
14456
|
unCapitalize(operation.name),
|
|
14433
14457
|
Boolean(silent2),
|
|
@@ -14442,7 +14466,7 @@ function clearOrDrop(operation) {
|
|
|
14442
14466
|
PRINT_WORD("SILENT");
|
|
14443
14467
|
}
|
|
14444
14468
|
});
|
|
14445
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14469
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14446
14470
|
}
|
|
14447
14471
|
};
|
|
14448
14472
|
}
|
|
@@ -14453,7 +14477,7 @@ var create2 = {
|
|
|
14453
14477
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14454
14478
|
const createToken3 = CONSUME(create);
|
|
14455
14479
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14456
|
-
const destination = SUBRULE1(graphRef
|
|
14480
|
+
const destination = SUBRULE1(graphRef);
|
|
14457
14481
|
return ACTION(() => C.factory.updateOperationCreate(
|
|
14458
14482
|
destination,
|
|
14459
14483
|
Boolean(silent2),
|
|
@@ -14467,7 +14491,7 @@ var create2 = {
|
|
|
14467
14491
|
PRINT_WORD("SILENT");
|
|
14468
14492
|
}
|
|
14469
14493
|
});
|
|
14470
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14494
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14471
14495
|
}
|
|
14472
14496
|
};
|
|
14473
14497
|
function copyMoveAddOperation(operation) {
|
|
@@ -14476,9 +14500,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14476
14500
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
|
|
14477
14501
|
const op = CONSUME(operation);
|
|
14478
14502
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14479
|
-
const source = SUBRULE1(graphOrDefault
|
|
14503
|
+
const source = SUBRULE1(graphOrDefault);
|
|
14480
14504
|
CONSUME(to);
|
|
14481
|
-
const destination = SUBRULE2(graphOrDefault
|
|
14505
|
+
const destination = SUBRULE2(graphOrDefault);
|
|
14482
14506
|
return ACTION(() => C.factory.updateOperationAddMoveCopy(
|
|
14483
14507
|
unCapitalize(operation.name),
|
|
14484
14508
|
source,
|
|
@@ -14494,9 +14518,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14494
14518
|
PRINT_WORD("SILENT");
|
|
14495
14519
|
}
|
|
14496
14520
|
});
|
|
14497
|
-
SUBRULE(graphRefAll, ast.source
|
|
14521
|
+
SUBRULE(graphRefAll, ast.source);
|
|
14498
14522
|
F2.printFilter(ast, () => PRINT_WORD("TO"));
|
|
14499
|
-
SUBRULE(graphRefAll, ast.destination
|
|
14523
|
+
SUBRULE(graphRefAll, ast.destination);
|
|
14500
14524
|
}
|
|
14501
14525
|
};
|
|
14502
14526
|
}
|
|
@@ -14507,7 +14531,7 @@ var quadPattern = {
|
|
|
14507
14531
|
name: "quadPattern",
|
|
14508
14532
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14509
14533
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14510
|
-
const val = SUBRULE1(quads
|
|
14534
|
+
const val = SUBRULE1(quads);
|
|
14511
14535
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14512
14536
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
14513
14537
|
}
|
|
@@ -14517,7 +14541,7 @@ var quadData = {
|
|
|
14517
14541
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
14518
14542
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14519
14543
|
const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
|
|
14520
|
-
const val = SUBRULE1(quads
|
|
14544
|
+
const val = SUBRULE1(quads);
|
|
14521
14545
|
ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
|
|
14522
14546
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14523
14547
|
return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
|
|
@@ -14533,7 +14557,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14533
14557
|
if (name !== "insertData") {
|
|
14534
14558
|
couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14535
14559
|
}
|
|
14536
|
-
const data = SUBRULE1(dataRule
|
|
14560
|
+
const data = SUBRULE1(dataRule);
|
|
14537
14561
|
if (name !== "insertData") {
|
|
14538
14562
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14539
14563
|
}
|
|
@@ -14544,7 +14568,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14544
14568
|
subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
|
|
14545
14569
|
"{"
|
|
14546
14570
|
));
|
|
14547
|
-
SUBRULE(quads, F2.wrap(ast.data, ast.loc)
|
|
14571
|
+
SUBRULE(quads, F2.wrap(ast.data, ast.loc));
|
|
14548
14572
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14549
14573
|
}
|
|
14550
14574
|
};
|
|
@@ -14557,23 +14581,23 @@ var modify = {
|
|
|
14557
14581
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
|
|
14558
14582
|
const graph2 = OPTION1(() => {
|
|
14559
14583
|
const withToken = CONSUME(modifyWith);
|
|
14560
|
-
const graph3 = SUBRULE1(iri2
|
|
14584
|
+
const graph3 = SUBRULE1(iri2);
|
|
14561
14585
|
return { withToken, graph: graph3 };
|
|
14562
14586
|
});
|
|
14563
14587
|
const { insert, del } = OR([
|
|
14564
14588
|
{ ALT: () => {
|
|
14565
|
-
const del2 = SUBRULE1(deleteClause2
|
|
14566
|
-
const insert2 = OPTION2(() => SUBRULE1(insertClause2
|
|
14589
|
+
const del2 = SUBRULE1(deleteClause2);
|
|
14590
|
+
const insert2 = OPTION2(() => SUBRULE1(insertClause2));
|
|
14567
14591
|
return { del: del2, insert: insert2 };
|
|
14568
14592
|
} },
|
|
14569
14593
|
{ ALT: () => {
|
|
14570
|
-
const insert2 = SUBRULE2(insertClause2
|
|
14594
|
+
const insert2 = SUBRULE2(insertClause2);
|
|
14571
14595
|
return { insert: insert2, del: void 0 };
|
|
14572
14596
|
} }
|
|
14573
14597
|
]);
|
|
14574
|
-
const using = SUBRULE1(usingClauseStar
|
|
14598
|
+
const using = SUBRULE1(usingClauseStar);
|
|
14575
14599
|
CONSUME(where);
|
|
14576
|
-
const where2 = SUBRULE1(groupGraphPattern
|
|
14600
|
+
const where2 = SUBRULE1(groupGraphPattern);
|
|
14577
14601
|
return ACTION(() => C.factory.updateOperationModify(
|
|
14578
14602
|
C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
|
|
14579
14603
|
insert?.val ?? [],
|
|
@@ -14586,21 +14610,21 @@ var modify = {
|
|
|
14586
14610
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14587
14611
|
if (ast.graph) {
|
|
14588
14612
|
F2.printFilter(ast, () => PRINT_WORD("WITH"));
|
|
14589
|
-
SUBRULE(iri2, ast.graph
|
|
14613
|
+
SUBRULE(iri2, ast.graph);
|
|
14590
14614
|
}
|
|
14591
14615
|
if (ast.delete.length > 0) {
|
|
14592
14616
|
F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
|
|
14593
|
-
SUBRULE(quads, F2.wrap(ast.delete, ast.loc)
|
|
14617
|
+
SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
|
|
14594
14618
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14595
14619
|
}
|
|
14596
14620
|
if (ast.insert.length > 0) {
|
|
14597
14621
|
F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
|
|
14598
|
-
SUBRULE(quads, F2.wrap(ast.insert, ast.loc)
|
|
14622
|
+
SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
|
|
14599
14623
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14600
14624
|
}
|
|
14601
|
-
SUBRULE(usingClauseStar, ast.from
|
|
14625
|
+
SUBRULE(usingClauseStar, ast.from);
|
|
14602
14626
|
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
14603
|
-
SUBRULE(groupGraphPattern, ast.where
|
|
14627
|
+
SUBRULE(groupGraphPattern, ast.where);
|
|
14604
14628
|
}
|
|
14605
14629
|
};
|
|
14606
14630
|
var deleteClause2 = {
|
|
@@ -14608,7 +14632,7 @@ var deleteClause2 = {
|
|
|
14608
14632
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14609
14633
|
const delToken = CONSUME(deleteClause);
|
|
14610
14634
|
const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14611
|
-
const del = SUBRULE(quadPattern
|
|
14635
|
+
const del = SUBRULE(quadPattern);
|
|
14612
14636
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14613
14637
|
return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
|
|
14614
14638
|
}
|
|
@@ -14617,7 +14641,7 @@ var insertClause2 = {
|
|
|
14617
14641
|
name: "insertClause",
|
|
14618
14642
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14619
14643
|
const insertToken = CONSUME(insertClause);
|
|
14620
|
-
const insert = SUBRULE(quadPattern
|
|
14644
|
+
const insert = SUBRULE(quadPattern);
|
|
14621
14645
|
return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
|
|
14622
14646
|
}
|
|
14623
14647
|
};
|
|
@@ -14630,7 +14654,7 @@ var graphOrDefault = {
|
|
|
14630
14654
|
} },
|
|
14631
14655
|
{ ALT: () => {
|
|
14632
14656
|
const graph2 = OPTION(() => CONSUME(graph_exports.graph));
|
|
14633
|
-
const name = SUBRULE1(iri2
|
|
14657
|
+
const name = SUBRULE1(iri2);
|
|
14634
14658
|
return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
|
|
14635
14659
|
} }
|
|
14636
14660
|
])
|
|
@@ -14639,18 +14663,18 @@ var graphRef = {
|
|
|
14639
14663
|
name: "graphRef",
|
|
14640
14664
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14641
14665
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14642
|
-
const val = SUBRULE(iri2
|
|
14666
|
+
const val = SUBRULE(iri2);
|
|
14643
14667
|
return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
|
|
14644
14668
|
},
|
|
14645
14669
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14646
14670
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14647
|
-
SUBRULE(iri2, ast.graph
|
|
14671
|
+
SUBRULE(iri2, ast.graph);
|
|
14648
14672
|
}
|
|
14649
14673
|
};
|
|
14650
14674
|
var graphRefAll = {
|
|
14651
14675
|
name: "graphRefAll",
|
|
14652
14676
|
impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
|
|
14653
|
-
{ ALT: () => SUBRULE(graphRef
|
|
14677
|
+
{ ALT: () => SUBRULE(graphRef) },
|
|
14654
14678
|
{ ALT: () => {
|
|
14655
14679
|
const def = CONSUME(graph_exports.default_);
|
|
14656
14680
|
return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
|
|
@@ -14666,7 +14690,7 @@ var graphRefAll = {
|
|
|
14666
14690
|
]),
|
|
14667
14691
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14668
14692
|
if (F2.isGraphRefSpecific(ast)) {
|
|
14669
|
-
SUBRULE(graphRef, ast
|
|
14693
|
+
SUBRULE(graphRef, ast);
|
|
14670
14694
|
} else if (F2.isGraphRefDefault(ast)) {
|
|
14671
14695
|
F2.printFilter(ast, () => PRINT_WORD("DEFAULT"));
|
|
14672
14696
|
} else if (F2.isGraphRefNamed(ast)) {
|
|
@@ -14682,12 +14706,12 @@ var quads = {
|
|
|
14682
14706
|
const quads2 = [];
|
|
14683
14707
|
let last2;
|
|
14684
14708
|
OPTION1(() => {
|
|
14685
|
-
const triples = SUBRULE1(triplesTemplate
|
|
14709
|
+
const triples = SUBRULE1(triplesTemplate);
|
|
14686
14710
|
last2 = triples;
|
|
14687
14711
|
ACTION(() => quads2.push(triples));
|
|
14688
14712
|
});
|
|
14689
14713
|
MANY(() => {
|
|
14690
|
-
const notTriples = SUBRULE(quadsNotTriples
|
|
14714
|
+
const notTriples = SUBRULE(quadsNotTriples);
|
|
14691
14715
|
last2 = notTriples;
|
|
14692
14716
|
quads2.push(notTriples);
|
|
14693
14717
|
OPTION2(() => {
|
|
@@ -14696,7 +14720,7 @@ var quads = {
|
|
|
14696
14720
|
return dotToken;
|
|
14697
14721
|
});
|
|
14698
14722
|
OPTION3(() => {
|
|
14699
|
-
const triples = SUBRULE2(triplesTemplate
|
|
14723
|
+
const triples = SUBRULE2(triplesTemplate);
|
|
14700
14724
|
last2 = triples;
|
|
14701
14725
|
ACTION(() => quads2.push(triples));
|
|
14702
14726
|
});
|
|
@@ -14706,9 +14730,9 @@ var quads = {
|
|
|
14706
14730
|
gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
|
|
14707
14731
|
for (const quad of ast.val) {
|
|
14708
14732
|
if (F2.isPattern(quad)) {
|
|
14709
|
-
SUBRULE(triplesBlock, quad
|
|
14733
|
+
SUBRULE(triplesBlock, quad);
|
|
14710
14734
|
} else {
|
|
14711
|
-
SUBRULE(quadsNotTriples, quad
|
|
14735
|
+
SUBRULE(quadsNotTriples, quad);
|
|
14712
14736
|
}
|
|
14713
14737
|
}
|
|
14714
14738
|
}
|
|
@@ -14717,9 +14741,9 @@ var quadsNotTriples = {
|
|
|
14717
14741
|
name: "quadsNotTriples",
|
|
14718
14742
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
|
|
14719
14743
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14720
|
-
const name = SUBRULE1(varOrIri
|
|
14744
|
+
const name = SUBRULE1(varOrIri);
|
|
14721
14745
|
CONSUME(symbols_exports.LCurly);
|
|
14722
|
-
const triples = OPTION(() => SUBRULE1(triplesTemplate
|
|
14746
|
+
const triples = OPTION(() => SUBRULE1(triplesTemplate));
|
|
14723
14747
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14724
14748
|
return ACTION(() => C.factory.graphQuads(
|
|
14725
14749
|
name,
|
|
@@ -14729,9 +14753,9 @@ var quadsNotTriples = {
|
|
|
14729
14753
|
},
|
|
14730
14754
|
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
|
|
14731
14755
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14732
|
-
SUBRULE(varOrTerm, ast.graph
|
|
14756
|
+
SUBRULE(varOrTerm, ast.graph);
|
|
14733
14757
|
F2.printFilter(ast, () => PRINT_WORD("{"));
|
|
14734
|
-
SUBRULE(triplesBlock, ast.triples
|
|
14758
|
+
SUBRULE(triplesBlock, ast.triples);
|
|
14735
14759
|
F2.printFilter(ast, () => PRINT_WORD("}"));
|
|
14736
14760
|
}
|
|
14737
14761
|
};
|
|
@@ -14754,10 +14778,10 @@ var SparqlParser = class {
|
|
|
14754
14778
|
this.F = new Factory();
|
|
14755
14779
|
}
|
|
14756
14780
|
parse(query2, context = {}) {
|
|
14757
|
-
return this.parser.queryOrUpdate(query2, completeParseContext(context)
|
|
14781
|
+
return this.parser.queryOrUpdate(query2, completeParseContext(context));
|
|
14758
14782
|
}
|
|
14759
14783
|
parsePath(query2, context = {}) {
|
|
14760
|
-
const result = this.parser.path(query2, completeParseContext(context)
|
|
14784
|
+
const result = this.parser.path(query2, completeParseContext(context));
|
|
14761
14785
|
if (this.F.isPathPure(result)) {
|
|
14762
14786
|
return {
|
|
14763
14787
|
...result,
|
|
@@ -14768,29 +14792,6 @@ var SparqlParser = class {
|
|
|
14768
14792
|
}
|
|
14769
14793
|
};
|
|
14770
14794
|
|
|
14771
|
-
// ../../packages/rules-sparql-1-1/lib/utils.ts
|
|
14772
|
-
function sparqlCodepointEscape(input) {
|
|
14773
|
-
const sanitizedInput = input.replaceAll(
|
|
14774
|
-
/\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{8})/gu,
|
|
14775
|
-
(_, unicode4, unicode8) => {
|
|
14776
|
-
if (unicode4) {
|
|
14777
|
-
const charCode2 = Number.parseInt(unicode4, 16);
|
|
14778
|
-
return String.fromCodePoint(charCode2);
|
|
14779
|
-
}
|
|
14780
|
-
const charCode = Number.parseInt(unicode8, 16);
|
|
14781
|
-
if (charCode < 65535) {
|
|
14782
|
-
return String.fromCodePoint(charCode);
|
|
14783
|
-
}
|
|
14784
|
-
const substractedCharCode = charCode - 65536;
|
|
14785
|
-
return String.fromCodePoint(55296 + (substractedCharCode >> 10), 56320 + (substractedCharCode & 1023));
|
|
14786
|
-
}
|
|
14787
|
-
);
|
|
14788
|
-
if (/[\uD800-\uDBFF](?:[^\uDC00-\uDFFF]|$)/u.test(sanitizedInput)) {
|
|
14789
|
-
throw new Error(`Invalid unicode codepoint of surrogate pair without corresponding codepoint`);
|
|
14790
|
-
}
|
|
14791
|
-
return sanitizedInput;
|
|
14792
|
-
}
|
|
14793
|
-
|
|
14794
14795
|
// ../parser-sparql-1-1/lib/expressionParser.ts
|
|
14795
14796
|
var rulesNoBuiltIn = [
|
|
14796
14797
|
grammar_exports.expression,
|
|
@@ -15037,16 +15038,16 @@ var queryUnitParserBuilder = ParserBuilder.create(rules4).merge(subSelectParserB
|
|
|
15037
15038
|
var update1Patch = {
|
|
15038
15039
|
name: "update1",
|
|
15039
15040
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
15040
|
-
{ ALT: () => SUBRULE(grammar_exports.load
|
|
15041
|
-
{ ALT: () => SUBRULE(grammar_exports.clear
|
|
15042
|
-
{ ALT: () => SUBRULE(grammar_exports.drop
|
|
15043
|
-
{ ALT: () => SUBRULE(grammar_exports.add
|
|
15044
|
-
{ ALT: () => SUBRULE(grammar_exports.move
|
|
15045
|
-
{ ALT: () => SUBRULE(grammar_exports.copy
|
|
15046
|
-
{ ALT: () => SUBRULE(grammar_exports.create
|
|
15047
|
-
{ ALT: () => SUBRULE(grammar_exports.insertData
|
|
15048
|
-
{ ALT: () => SUBRULE(grammar_exports.deleteData
|
|
15049
|
-
{ ALT: () => SUBRULE(grammar_exports.deleteWhere
|
|
15041
|
+
{ ALT: () => SUBRULE(grammar_exports.load) },
|
|
15042
|
+
{ ALT: () => SUBRULE(grammar_exports.clear) },
|
|
15043
|
+
{ ALT: () => SUBRULE(grammar_exports.drop) },
|
|
15044
|
+
{ ALT: () => SUBRULE(grammar_exports.add) },
|
|
15045
|
+
{ ALT: () => SUBRULE(grammar_exports.move) },
|
|
15046
|
+
{ ALT: () => SUBRULE(grammar_exports.copy) },
|
|
15047
|
+
{ ALT: () => SUBRULE(grammar_exports.create) },
|
|
15048
|
+
{ ALT: () => SUBRULE(grammar_exports.insertData) },
|
|
15049
|
+
{ ALT: () => SUBRULE(grammar_exports.deleteData) },
|
|
15050
|
+
{ ALT: () => SUBRULE(grammar_exports.deleteWhere) }
|
|
15050
15051
|
]),
|
|
15051
15052
|
gImpl: grammar_exports.update1.gImpl
|
|
15052
15053
|
};
|
|
@@ -15094,16 +15095,16 @@ var updateParserBuilder = ParserBuilder.create(updateNoModifyParserBuilder).patc
|
|
|
15094
15095
|
var queryOrUpdate = {
|
|
15095
15096
|
name: "queryOrUpdate",
|
|
15096
15097
|
impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {
|
|
15097
|
-
const prologueValues = SUBRULE(grammar_exports.prologue
|
|
15098
|
+
const prologueValues = SUBRULE(grammar_exports.prologue);
|
|
15098
15099
|
return OR1([
|
|
15099
15100
|
{ ALT: () => {
|
|
15100
15101
|
const subType = OR2([
|
|
15101
|
-
{ ALT: () => SUBRULE(grammar_exports.selectQuery
|
|
15102
|
-
{ ALT: () => SUBRULE(grammar_exports.constructQuery
|
|
15103
|
-
{ ALT: () => SUBRULE(grammar_exports.describeQuery
|
|
15104
|
-
{ ALT: () => SUBRULE(grammar_exports.askQuery
|
|
15102
|
+
{ ALT: () => SUBRULE(grammar_exports.selectQuery) },
|
|
15103
|
+
{ ALT: () => SUBRULE(grammar_exports.constructQuery) },
|
|
15104
|
+
{ ALT: () => SUBRULE(grammar_exports.describeQuery) },
|
|
15105
|
+
{ ALT: () => SUBRULE(grammar_exports.askQuery) }
|
|
15105
15106
|
]);
|
|
15106
|
-
const values3 = SUBRULE(grammar_exports.valuesClause
|
|
15107
|
+
const values3 = SUBRULE(grammar_exports.valuesClause);
|
|
15107
15108
|
return ACTION(() => ({
|
|
15108
15109
|
context: prologueValues,
|
|
15109
15110
|
...subType,
|
|
@@ -15124,11 +15125,11 @@ var queryOrUpdate = {
|
|
|
15124
15125
|
GATE: () => parsedSemi,
|
|
15125
15126
|
DEF: () => {
|
|
15126
15127
|
parsedSemi = false;
|
|
15127
|
-
updates.at(-1).operation = SUBRULE(grammar_exports.update1
|
|
15128
|
+
updates.at(-1).operation = SUBRULE(grammar_exports.update1);
|
|
15128
15129
|
OPTION1(() => {
|
|
15129
15130
|
CONSUME(lexer_exports.symbols.semi);
|
|
15130
15131
|
parsedSemi = true;
|
|
15131
|
-
const innerPrologue = SUBRULE2(grammar_exports.prologue
|
|
15132
|
+
const innerPrologue = SUBRULE2(grammar_exports.prologue);
|
|
15132
15133
|
updates.push({ context: innerPrologue });
|
|
15133
15134
|
});
|
|
15134
15135
|
}
|
|
@@ -15178,8 +15179,8 @@ var existingBuildInCall = {
|
|
|
15178
15179
|
var builtInPatch2 = {
|
|
15179
15180
|
name: "builtInCall",
|
|
15180
15181
|
impl: ({ SUBRULE, OR }) => () => OR([
|
|
15181
|
-
{ ALT: () => SUBRULE(grammar_exports2.builtInAdjust
|
|
15182
|
-
{ ALT: () => SUBRULE(grammar_exports2.existingBuildInCall
|
|
15182
|
+
{ ALT: () => SUBRULE(grammar_exports2.builtInAdjust) },
|
|
15183
|
+
{ ALT: () => SUBRULE(grammar_exports2.existingBuildInCall) }
|
|
15183
15184
|
])
|
|
15184
15185
|
};
|
|
15185
15186
|
var adjustBuilder = ParserBuilder.create(sparql11ParserBuilder).addRule(grammar_exports2.builtInAdjust).addRule(grammar_exports2.existingBuildInCall).patchRule(builtInPatch2);
|