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