@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/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, arg) => {
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, arg);
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, void 0);
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, void 0);
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, void 0);
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, void 0) },
11703
- { ALT: () => SUBRULE(numericLiteralPositive, void 0) },
11704
- { ALT: () => SUBRULE(numericLiteralNegative, void 0) }
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, void 0) },
11813
- { ALT: () => SUBRULE(prefixedName, void 0) }
11835
+ { ALT: () => SUBRULE(iriFull) },
11836
+ { ALT: () => SUBRULE(prefixedName) }
11814
11837
  ]),
11815
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => F3.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, void 0) : SUBRULE(iriFull, ast, void 0)
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, void 0);
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, void 0);
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, void 0)
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, void 0);
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, void 0);
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, void 0);
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, void 0)
11967
+ impl: ({ SUBRULE }) => () => SUBRULE(iri2)
11945
11968
  };
11946
11969
 
11947
- // ../../packages/rules-sparql-1-1/lib/grammar/general.ts
11948
- var prologue = {
11949
- name: "prologue",
11950
- impl: ({ SUBRULE, MANY, OR }) => () => {
11951
- const result = [];
11952
- MANY(() => OR([
11953
- { ALT: () => result.push(SUBRULE(baseDecl2, void 0)) },
11954
- // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
11955
- // We might need to check this.
11956
- { ALT: () => result.push(SUBRULE(prefixDecl2, void 0)) }
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
- var baseDecl2 = {
11971
- name: "baseDecl",
11972
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11973
- const base = CONSUME(baseDecl);
11974
- const val = SUBRULE(iriFull, void 0);
11975
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11976
- },
11977
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
11978
- F3.printFilter(ast, () => PRINT_WORD("BASE"));
11979
- SUBRULE(iri2, ast.value, void 0);
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
- return SUBRULE(graphTerm, ast, void 0);
12015
- }
12016
- };
12017
- var varOrIri = {
12018
- name: "varOrIri",
12019
- impl: ({ SUBRULE, OR }) => (C) => OR([
12020
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
12021
- { ALT: () => SUBRULE(iri2, void 0) }
12022
- ])
12023
- };
12024
- var var_ = {
12025
- name: "var",
12026
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
12027
- const varToken = OR([
12028
- { ALT: () => CONSUME(terminals_exports.var1) },
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
- // ../../packages/rules-sparql-1-1/lib/grammar/propertyPaths.ts
12062
- var path = {
12063
- name: "path",
12064
- impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
12065
- };
12066
- var pathGenerator = {
12067
- name: "path",
12068
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F3 }, braces = true) => {
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 pathChainHelper(name, SEP, subType, subRule) {
12023
+ };
12024
+ }
12025
+ function funcExprOrNil1(func) {
12106
12026
  return {
12107
- name,
12108
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
12109
- const head2 = SUBRULE1(subRule, void 0);
12110
- let tailEnd = head2;
12111
- const tail = [];
12112
- MANY(() => {
12113
- CONSUME(SEP);
12114
- tailEnd = SUBRULE2(subRule, void 0);
12115
- tail.push(tailEnd);
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
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
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
- var pathEltOrInverse = {
12122
- name: "pathEltOrInverse",
12123
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
12124
- { ALT: () => SUBRULE1(pathElt, void 0) },
12125
- { ALT: () => {
12126
- const hat2 = CONSUME(symbols_exports.hat);
12127
- const item = SUBRULE2(pathElt, void 0);
12128
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12129
- } }
12130
- ])
12131
- };
12132
- var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
12133
- var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
12134
- var pathElt = {
12135
- name: "pathElt",
12136
- impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
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 resRecursive = SUBRULE(path, void 0);
12159
- CONSUME(symbols_exports.RParen);
12160
- return resRecursive;
12161
- } }
12162
- ])
12163
- };
12164
- var pathNegatedPropertySet = {
12165
- name: "pathNegatedPropertySet",
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
- var propertyList = propertyListImpl("propertyList", false);
12316
- var propertyListPath = propertyListImpl("propertyListPath", true);
12317
- function propertyListNotEmptyImplementation(name, allowPaths) {
12122
+ function funcGroupGraphPattern(func) {
12318
12123
  return {
12319
- name,
12320
- impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, arg) => {
12321
- const result = [];
12322
- let parsedSemi = true;
12323
- AT_LEAST_ONE({
12324
- GATE: () => parsedSemi,
12325
- DEF: () => {
12326
- parsedSemi = false;
12327
- const predicate = allowPaths ? OR1([
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
- var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
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, AT_LEAST_ONE_SEP }) => (_, arg) => {
12362
- const objects = [];
12363
- AT_LEAST_ONE_SEP({
12364
- SEP: symbols_exports.comma,
12365
- DEF: () => {
12366
- const objectTriple = SUBRULE(allowPaths ? objectPath : object, arg);
12367
- ACTION(() => {
12368
- objects.push(objectTriple);
12369
- });
12370
- }
12371
- });
12372
- return objects;
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
- var objectList = objectListImpl("objectList", false);
12377
- var objectListPath = objectListImpl("objectListPath", true);
12378
- function objectImpl(name, allowPaths) {
12379
- return {
12380
- name,
12381
- impl: ({ ACTION, SUBRULE }) => (C, arg) => {
12382
- const node = SUBRULE(allowPaths ? graphNodePath : graphNode, void 0);
12383
- return ACTION(() => C.factory.triple(arg.subject, arg.predicate, node));
12384
- }
12385
- };
12386
- }
12387
- var object = objectImpl("object", false);
12388
- var objectPath = objectImpl("objectPath", true);
12389
- function collectionImpl(name, allowPaths) {
12390
- return {
12391
- name,
12392
- impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12393
- const terms = [];
12394
- const startToken = CONSUME(symbols_exports.LParen);
12395
- AT_LEAST_ONE(() => {
12396
- terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode, void 0));
12397
- });
12398
- const endToken = CONSUME(symbols_exports.RParen);
12399
- return ACTION(() => {
12400
- const F3 = C.factory;
12401
- const triples = [];
12402
- const predFirst = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12403
- const predRest = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12404
- const predNil = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12405
- const listHead = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12406
- let iterHead = listHead;
12407
- for (const [index, term] of terms.entries()) {
12408
- const lastInList = index === terms.length - 1;
12409
- const headTriple = F3.triple(
12410
- iterHead,
12411
- predFirst,
12412
- term
12413
- );
12414
- triples.push(headTriple);
12415
- if (lastInList) {
12416
- const nilTriple = F3.triple(iterHead, predRest, predNil);
12417
- triples.push(nilTriple);
12418
- } else {
12419
- const tail = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12420
- const linkTriple = F3.triple(iterHead, predRest, tail);
12421
- triples.push(linkTriple);
12422
- iterHead = tail;
12423
- }
12424
- }
12425
- return F3.tripleCollectionList(listHead, triples, F3.sourceLocation(startToken, endToken));
12426
- });
12427
- },
12428
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12429
- F3.printFilter(ast, () => PRINT_WORD("("));
12430
- for (const [idx, triple] of ast.triples.entries()) {
12431
- if (idx % 2 === 0) {
12432
- SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object, void 0);
12433
- }
12434
- }
12435
- F3.printFilter(ast, () => PRINT_WORD(")"));
12436
- }
12437
- };
12438
- }
12439
- var collection = collectionImpl("collection", false);
12440
- var collectionPath = collectionImpl("collectionPath", true);
12441
- function triplesNodeImpl(name, allowPaths) {
12442
- return {
12443
- name,
12444
- impl: ({ SUBRULE, OR }) => () => OR([
12445
- { ALT: () => SUBRULE(allowPaths ? collectionPath : collection, void 0) },
12446
- { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, void 0) }
12447
- ]),
12448
- gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast, void 0) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast, void 0)
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 triplesNode = triplesNodeImpl("triplesNode", false);
12452
- var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12453
- function blankNodePropertyListImpl(name, allowPaths) {
12454
- const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
12455
- return {
12456
- name,
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
- var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12486
- var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12487
- function graphNodeImpl(name, allowPaths) {
12488
- const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
12489
- return {
12490
- name,
12491
- impl: ({ SUBRULE, OR }) => (C) => OR([
12492
- { ALT: () => SUBRULE(varOrTerm, void 0) },
12493
- {
12494
- GATE: () => C.parseMode.has("canCreateBlankNodes"),
12495
- ALT: () => SUBRULE(triplesNodeRule, void 0)
12496
- }
12497
- ]),
12498
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12499
- if (F3.isTerm(ast)) {
12500
- SUBRULE(varOrTerm, ast, void 0);
12501
- } else {
12502
- SUBRULE(triplesNodeRule, ast, void 0);
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
- var graphNode = graphNodeImpl("graphNode", false);
12508
- var graphNodePath = graphNodeImpl("graphNodePath", true);
12509
-
12510
- // ../../packages/rules-sparql-1-1/lib/grammar/whereClause.ts
12511
- var whereClause = {
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 groupGraphPattern = {
12524
- name: "groupGraphPattern",
12525
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12526
- const open = CONSUME(symbols_exports.LCurly);
12527
- const patterns = OR([
12528
- { ALT: () => [SUBRULE(subSelect, void 0)] },
12529
- { ALT: () => SUBRULE(groupGraphPatternSub, void 0) }
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
- const close = CONSUME(symbols_exports.RCurly);
12532
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
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, () => PRINT_WORD("{"));
12536
- for (const pattern of ast.patterns) {
12537
- SUBRULE(generatePattern, pattern, void 0);
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.printFilter(ast, () => PRINT_WORD("}"));
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
- var generatePattern = {
12543
- name: "generatePattern",
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
- if (ast.type === "query") {
12546
- SUBRULE(query, F3.querySelect({
12547
- context: [],
12548
- datasets: F3.datasetClauses([], F3.sourceLocation()),
12549
- where: ast.where,
12550
- variables: ast.variables,
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 groupGraphPatternSub = {
12566
- name: "groupGraphPatternSub",
12567
- impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12568
- const patterns = [];
12569
- const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock, void 0));
12570
- if (bgpPattern) {
12571
- patterns.push(bgpPattern);
12572
- }
12573
- MANY(() => {
12574
- const notTriples = SUBRULE(graphPatternNotTriples, void 0);
12575
- patterns.push(notTriples);
12576
- OPTION2(() => CONSUME(symbols_exports.dot));
12577
- const moreTriples = OPTION3(() => SUBRULE2(triplesBlock, void 0));
12578
- if (moreTriples) {
12579
- patterns.push(moreTriples);
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
- ACTION(() => checkNote13(patterns));
12583
- return patterns;
12440
+ SUBRULE(iri2, ast.value);
12584
12441
  }
12585
12442
  };
12586
- var graphPatternNotTriples = {
12587
- name: "graphPatternNotTriples",
12443
+ var verb = {
12444
+ name: "verb",
12588
12445
  impl: ({ SUBRULE, OR }) => () => OR([
12589
- { ALT: () => SUBRULE(groupOrUnionGraphPattern, void 0) },
12590
- { ALT: () => SUBRULE(optionalGraphPattern, void 0) },
12591
- { ALT: () => SUBRULE(minusGraphPattern, void 0) },
12592
- { ALT: () => SUBRULE(graphGraphPattern, void 0) },
12593
- { ALT: () => SUBRULE(serviceGraphPattern, void 0) },
12594
- { ALT: () => SUBRULE(filter3, void 0) },
12595
- { ALT: () => SUBRULE(bind2, void 0) },
12596
- { ALT: () => SUBRULE(inlineData, void 0) }
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
- switch (ast.subType) {
12600
- case "group":
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 optionalGraphPattern = {
12629
- name: "optionalGraphPattern",
12630
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12631
- const optional2 = CONSUME(optional);
12632
- const group = SUBRULE(groupGraphPattern, void 0);
12633
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
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 graphGraphPattern = {
12641
- name: "graphGraphPattern",
12642
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12643
- const graph2 = CONSUME(graph_exports.graph);
12644
- const name = SUBRULE(varOrIri, void 0);
12645
- const group = SUBRULE(groupGraphPattern, void 0);
12646
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
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: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12649
- F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
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 serviceGraphPattern = {
12655
- name: "serviceGraphPattern",
12656
- impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12657
- const service2 = CONSUME(service);
12658
- const silent2 = OPTION(() => {
12659
- CONSUME(silent);
12660
- return true;
12661
- }) ?? false;
12662
- const name = SUBRULE1(varOrIri, void 0);
12663
- const group = SUBRULE1(groupGraphPattern, void 0);
12664
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12665
- },
12666
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12667
- F3.printFilter(ast, () => {
12668
- PRINT_WORD("SERVICE");
12669
- if (ast.silent) {
12670
- PRINT_WORD("SILENT");
12671
- }
12672
- });
12673
- SUBRULE(varOrTerm, ast.name, void 0);
12674
- SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc), void 0);
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
- var bind2 = {
12678
- name: "bind",
12679
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12680
- const bind3 = CONSUME(bind);
12681
- CONSUME(symbols_exports.LParen);
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 inlineData = {
12697
- name: "inlineData",
12698
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12699
- const values3 = CONSUME(values2);
12700
- const datablock = SUBRULE(dataBlock, void 0);
12701
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12702
- },
12703
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12704
- const variables = Object.keys(ast.values[0]);
12705
- F3.printFilter(ast, () => {
12706
- PRINT_WORD("VALUES", "(");
12707
- for (const variable of variables) {
12708
- PRINT_WORD(`?${variable}`);
12709
- }
12710
- PRINT_WORD(")", "{");
12711
- });
12712
- for (const mapping of ast.values) {
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, () => PRINT_WORD(")"));
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
- F3.printFilter(ast, () => PRINT_WORD("}"));
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 dataBlock = {
12727
- name: "dataBlock",
12728
- impl: ({ SUBRULE, OR }) => () => OR([
12729
- { ALT: () => SUBRULE(inlineDataOneVar, void 0) },
12730
- { ALT: () => SUBRULE(inlineDataFull, void 0) }
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 inlineDataOneVar = {
12734
- name: "inlineDataOneVar",
12735
- impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12736
- const res = [];
12737
- const varVal = SUBRULE(var_, void 0);
12738
- CONSUME(symbols_exports.LCurly);
12739
- MANY(() => {
12740
- const value = SUBRULE(dataBlockValue, void 0);
12741
- ACTION(() => {
12742
- res.push({ [varVal.value]: value });
12743
- });
12744
- });
12745
- const close = CONSUME(symbols_exports.RCurly);
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 inlineDataFull = {
12750
- name: "inlineDataFull",
12751
- impl: ({
12752
- ACTION,
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 nil2 = CONSUME1(terminals_exports.nil);
12767
- CONSUME1(symbols_exports.LCurly);
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 = CONSUME1(symbols_exports.LParen);
12777
- MANY2(() => {
12778
- vars.push(SUBRULE(var_, void 0));
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
- CONSUME1(symbols_exports.RParen);
12781
- CONSUME2(symbols_exports.LCurly);
12782
- MANY3(() => {
12783
- let parsedValues = 0;
12784
- const currentRow = {};
12785
- CONSUME2(symbols_exports.LParen);
12786
- MANY4(() => {
12787
- if (parsedValues >= vars.length) {
12788
- throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12789
- }
12790
- const value = SUBRULE(dataBlockValue, void 0);
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 dataBlockValue = {
12811
- name: "dataBlockValue",
12812
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12813
- { ALT: () => SUBRULE(iri2, void 0) },
12814
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
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(undef);
12819
- return void 0;
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/expressionHelpers.ts
12900
- function funcExpr1(func) {
12901
- return {
12902
- name: unCapitalize(func.name),
12903
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12904
- const operator = CONSUME(func);
12905
- CONSUME(symbols_exports.LParen);
12906
- const arg = SUBRULE(expression, void 0);
12907
- const close = CONSUME(symbols_exports.RParen);
12908
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
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
- function funcExpr2(func) {
12913
- return {
12914
- name: unCapitalize(func.name),
12915
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
12916
- const operator = CONSUME(func);
12917
- CONSUME(symbols_exports.LParen);
12918
- const arg1 = SUBRULE1(expression, void 0);
12919
- CONSUME(symbols_exports.comma);
12920
- const arg2 = SUBRULE2(expression, void 0);
12921
- const close = CONSUME(symbols_exports.RParen);
12922
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
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 funcExpr3(func) {
12711
+ }
12712
+ };
12713
+ function triplesSameSubjectImpl(name, allowPaths) {
12927
12714
  return {
12928
- name: unCapitalize(func.name),
12929
- impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
12930
- const operator = CONSUME(func);
12931
- CONSUME(symbols_exports.LParen);
12932
- const arg1 = SUBRULE1(expression, void 0);
12933
- CONSUME1(symbols_exports.comma);
12934
- const arg2 = SUBRULE2(expression, void 0);
12935
- CONSUME2(symbols_exports.comma);
12936
- const arg3 = SUBRULE3(expression, void 0);
12937
- const close = CONSUME(symbols_exports.RParen);
12938
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
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
- function funcVar1(func) {
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: unCapitalize(func.name),
12945
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
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
- function funcExprOrNil1(func) {
12761
+ var propertyList = propertyListImpl("propertyList", false);
12762
+ var propertyListPath = propertyListImpl("propertyListPath", true);
12763
+ function propertyListNotEmptyImplementation(name, allowPaths) {
12955
12764
  return {
12956
- name: unCapitalize(func.name),
12957
- impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
12958
- const operator = CONSUME(func);
12959
- return OR([
12960
- { ALT: () => {
12961
- CONSUME(symbols_exports.LParen);
12962
- const arg = SUBRULE(expression, void 0);
12963
- const close = CONSUME(symbols_exports.RParen);
12964
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12965
- } },
12966
- { ALT: () => {
12967
- const nil2 = CONSUME(terminals_exports.nil);
12968
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
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
- function funcNil1(func) {
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: unCapitalize(func.name),
12977
- impl: ({ ACTION, CONSUME }) => (C) => {
12978
- const operator = CONSUME(func);
12979
- const nil2 = CONSUME(terminals_exports.nil);
12980
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
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
- function funcExprList1(func) {
12823
+ var objectList = objectListImpl("objectList", false);
12824
+ var objectListPath = objectListImpl("objectListPath", true);
12825
+ function objectImpl(name, allowPaths) {
12985
12826
  return {
12986
- name: unCapitalize(func.name),
12987
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12988
- const operator = CONSUME(func);
12989
- const args = SUBRULE(expressionList, void 0);
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
- function funcExpr2or3(func) {
12834
+ var object = objectImpl("object", false);
12835
+ var objectPath = objectImpl("objectPath", true);
12836
+ function collectionImpl(name, allowPaths) {
12995
12837
  return {
12996
- name: unCapitalize(func.name),
12997
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
12998
- const operator = CONSUME(func);
12999
- CONSUME(symbols_exports.LParen);
13000
- const arg1 = SUBRULE1(expression, void 0);
13001
- CONSUME1(symbols_exports.comma);
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 close = CONSUME(symbols_exports.RParen);
13008
- return ACTION(() => C.factory.expressionOperation(
13009
- operator.image,
13010
- arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
13011
- C.factory.sourceLocation(operator, close)
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
- function funcExpr3or4(func) {
12886
+ var collection = collectionImpl("collection", false);
12887
+ var collectionPath = collectionImpl("collectionPath", true);
12888
+ function triplesNodeImpl(name, allowPaths) {
13017
12889
  return {
13018
- name: unCapitalize(func.name),
13019
- impl: ({
13020
- ACTION,
13021
- CONSUME,
13022
- SUBRULE1,
13023
- SUBRULE2,
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
- function funcGroupGraphPattern(func) {
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: unCapitalize(func.name),
12903
+ name,
13054
12904
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13055
- const operator = CONSUME(func);
13056
- const group = SUBRULE(groupGraphPattern, void 0);
13057
- return ACTION(() => C.factory.expressionPatternOperation(
13058
- operator.image,
13059
- group,
13060
- C.factory.sourceLocation(operator, group)
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
- function baseAggregateFunc(func) {
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: unCapitalize(func.name),
13068
- impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
13069
- const operator = CONSUME(func);
13070
- CONSUME(symbols_exports.LParen);
13071
- const distinct2 = OPTION(() => CONSUME(distinct));
13072
- const expr1 = SUBRULE(expression, void 0);
13073
- const close = CONSUME(symbols_exports.RParen);
13074
- return ACTION(() => C.factory.aggregate(
13075
- operator.image,
13076
- distinct2 !== void 0,
13077
- expr1,
13078
- void 0,
13079
- C.factory.sourceLocation(operator, close)
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/builtIn.ts
13086
- var builtInStr = funcExpr1(BuildinCalls_exports.str);
13087
- var builtInLang = funcExpr1(BuildinCalls_exports.lang);
13088
- var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
13089
- var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
13090
- var builtInBound = funcVar1(BuildinCalls_exports.bound);
13091
- var builtInIri = funcExpr1(BuildinCalls_exports.iri);
13092
- var builtInUri = funcExpr1(BuildinCalls_exports.uri);
13093
- var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
13094
- var builtInRand = funcNil1(BuildinCalls_exports.rand);
13095
- var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
13096
- var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
13097
- var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
13098
- var builtInRound = funcExpr1(BuildinCalls_exports.round);
13099
- var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
13100
- var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
13101
- var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
13102
- var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
13103
- var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
13104
- var builtInContains = funcExpr2(BuildinCalls_exports.contains);
13105
- var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
13106
- var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
13107
- var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
13108
- var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
13109
- var builtInYear = funcExpr1(BuildinCalls_exports.year);
13110
- var builtInMonth = funcExpr1(BuildinCalls_exports.month);
13111
- var builtInDay = funcExpr1(BuildinCalls_exports.day);
13112
- var builtInHours = funcExpr1(BuildinCalls_exports.hours);
13113
- var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
13114
- var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
13115
- var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
13116
- var builtInTz = funcExpr1(BuildinCalls_exports.tz);
13117
- var builtInNow = funcNil1(BuildinCalls_exports.now);
13118
- var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
13119
- var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
13120
- var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
13121
- var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
13122
- var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
13123
- var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
13124
- var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
13125
- var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
13126
- var builtInIf = funcExpr3(BuildinCalls_exports.if_);
13127
- var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
13128
- var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
13129
- var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
13130
- var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
13131
- var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
13132
- var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
13133
- var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
13134
- var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
13135
- function builtInCallList(SUBRULE) {
13136
- return [
13137
- { ALT: () => SUBRULE(aggregate, void 0) },
13138
- { ALT: () => SUBRULE(builtInStr, void 0) },
13139
- { ALT: () => SUBRULE(builtInLang, void 0) },
13140
- { ALT: () => SUBRULE(builtInLangmatches, void 0) },
13141
- { ALT: () => SUBRULE(builtInDatatype, void 0) },
13142
- { ALT: () => SUBRULE(builtInBound, void 0) },
13143
- { ALT: () => SUBRULE(builtInIri, void 0) },
13144
- { ALT: () => SUBRULE(builtInUri, void 0) },
13145
- { ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
13146
- { ALT: () => SUBRULE(builtInRand, void 0) },
13147
- { ALT: () => SUBRULE(builtInAbs, void 0) },
13148
- { ALT: () => SUBRULE(builtInCeil, void 0) },
13149
- { ALT: () => SUBRULE(builtInFloor, void 0) },
13150
- { ALT: () => SUBRULE(builtInRound, void 0) },
13151
- { ALT: () => SUBRULE(builtInConcat, void 0) },
13152
- { ALT: () => SUBRULE(substringExpression, void 0) },
13153
- { ALT: () => SUBRULE(builtInStrlen, void 0) },
13154
- { ALT: () => SUBRULE(strReplaceExpression, void 0) },
13155
- { ALT: () => SUBRULE(builtInUcase, void 0) },
13156
- { ALT: () => SUBRULE(builtInLcase, void 0) },
13157
- { ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
13158
- { ALT: () => SUBRULE(builtInContains, void 0) },
13159
- { ALT: () => SUBRULE(builtInStrstarts, void 0) },
13160
- { ALT: () => SUBRULE(builtInStrends, void 0) },
13161
- { ALT: () => SUBRULE(builtInStrbefore, void 0) },
13162
- { ALT: () => SUBRULE(builtInStrafter, void 0) },
13163
- { ALT: () => SUBRULE(builtInYear, void 0) },
13164
- { ALT: () => SUBRULE(builtInMonth, void 0) },
13165
- { ALT: () => SUBRULE(builtInDay, void 0) },
13166
- { ALT: () => SUBRULE(builtInHours, void 0) },
13167
- { ALT: () => SUBRULE(builtInMinutes, void 0) },
13168
- { ALT: () => SUBRULE(builtInSeconds, void 0) },
13169
- { ALT: () => SUBRULE(builtInTimezone, void 0) },
13170
- { ALT: () => SUBRULE(builtInTz, void 0) },
13171
- { ALT: () => SUBRULE(builtInNow, void 0) },
13172
- { ALT: () => SUBRULE(builtInUuid, void 0) },
13173
- { ALT: () => SUBRULE(builtInStruuid, void 0) },
13174
- { ALT: () => SUBRULE(builtInMd5, void 0) },
13175
- { ALT: () => SUBRULE(builtInSha1, void 0) },
13176
- { ALT: () => SUBRULE(builtInSha256, void 0) },
13177
- { ALT: () => SUBRULE(builtInSha384, void 0) },
13178
- { ALT: () => SUBRULE(builtInSha512, void 0) },
13179
- { ALT: () => SUBRULE(builtInCoalesce, void 0) },
13180
- { ALT: () => SUBRULE(builtInIf, void 0) },
13181
- { ALT: () => SUBRULE(builtInStrlang, void 0) },
13182
- { ALT: () => SUBRULE(builtInStrdt, void 0) },
13183
- { ALT: () => SUBRULE(builtInSameterm, void 0) },
13184
- { ALT: () => SUBRULE(builtInIsiri, void 0) },
13185
- { ALT: () => SUBRULE(builtInIsuri, void 0) },
13186
- { ALT: () => SUBRULE(builtInIsblank, void 0) },
13187
- { ALT: () => SUBRULE(builtInIsliteral, void 0) },
13188
- { ALT: () => SUBRULE(builtInIsnumeric, void 0) },
13189
- { ALT: () => SUBRULE(regexExpression, void 0) },
13190
- { ALT: () => SUBRULE(existsFunc, void 0) },
13191
- { ALT: () => SUBRULE(notExistsFunc, void 0) }
13192
- ];
13193
- }
13194
- var builtInCall = {
13195
- name: "builtInCall",
13196
- impl: ({ OR, SUBRULE, cache }) => () => {
13197
- const cached = cache.get(builtInCall);
13198
- if (cached) {
13199
- return OR(cached);
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
- const builtIns = builtInCallList(SUBRULE);
13202
- cache.set(builtInCall, builtIns);
13203
- return OR(builtIns);
13170
+ F3.printFilter(ast, () => PRINT_WORD("}"));
13204
13171
  }
13205
13172
  };
13206
- var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
13207
- var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
13208
- var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
13209
- var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
13210
- var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
13211
- var aggregateCount = {
13212
- name: unCapitalize(BuildinCalls_exports.count.name),
13213
- impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
13214
- const operatorToken = CONSUME(BuildinCalls_exports.count);
13215
- CONSUME(symbols_exports.LParen);
13216
- const distinctToken = OPTION(() => CONSUME(distinct));
13217
- const expressionVal = OR([
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 starToken = CONSUME(symbols_exports.star);
13220
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
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: () => SUBRULE(expression, void 0) }
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 aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
13247
- var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
13248
- var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
13249
- var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
13250
- var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
13251
- var aggregateGroup_concat = {
13252
- name: unCapitalize(BuildinCalls_exports.groupConcat.name),
13253
- impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
13254
- const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
13255
- CONSUME(symbols_exports.LParen);
13256
- const distinctToken = OPTION1(() => CONSUME(distinct));
13257
- const expr = SUBRULE(expression, void 0);
13258
- const sep = OPTION2(() => {
13259
- CONSUME(symbols_exports.semi);
13260
- CONSUME(separator);
13261
- CONSUME(symbols_exports.equal);
13262
- return SUBRULE(string, void 0);
13263
- });
13264
- const closeToken = CONSUME(symbols_exports.RParen);
13265
- return ACTION(() => {
13266
- const F3 = C.factory;
13267
- return F3.aggregate(
13268
- operatorToken.image,
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 aggregate = {
13278
- name: "aggregate",
13279
- impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13280
- const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
13281
- ACTION(() => C.parseMode.add("inAggregate"));
13282
- const result = OR([
13283
- { ALT: () => SUBRULE(aggregateCount, void 0) },
13284
- { ALT: () => SUBRULE(aggregateSum, void 0) },
13285
- { ALT: () => SUBRULE(aggregateMin, void 0) },
13286
- { ALT: () => SUBRULE(aggregateMax, void 0) },
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 result;
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.printFilter(ast, () => {
13304
- PRINT_WORD(ast.aggregation, "(");
13305
- if (ast.distinct) {
13306
- PRINT_WORD("DISTINCT");
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(expression, arg, void 0);
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, void 0);
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, void 0);
13381
+ SUBRULE(expression, head2);
13358
13382
  }
13359
13383
  for (const expr of tail) {
13360
13384
  F3.printFilter(ast, () => PRINT_WORD(","));
13361
- SUBRULE(expression, expr, void 0);
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, void 0);
13399
+ const expr1 = SUBRULE1(expression);
13376
13400
  const args = [expr1];
13377
13401
  MANY(() => {
13378
13402
  CONSUME(symbols_exports.comma);
13379
- const expr = SUBRULE2(expression, void 0);
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, void 0),
13415
+ impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13392
13416
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
13393
13417
  if (F3.isTerm(ast)) {
13394
- SUBRULE(varOrTerm, ast, void 0);
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, void 0);
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], void 0);
13434
+ SUBRULE(expression, right[0]);
13411
13435
  } else {
13412
- SUBRULE(argList, F3.wrap({ args: right, distinct: false }, ast.loc), void 0);
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, void 0);
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, void 0);
13447
+ SUBRULE(expression, head2);
13424
13448
  }
13425
13449
  for (const arg of tail) {
13426
13450
  F3.printFilter(ast, () => PRINT_WORD(","));
13427
- SUBRULE(expression, arg, void 0);
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, void 0);
13458
+ SUBRULE(groupGraphPattern, patterns);
13435
13459
  } else if (F3.isExpressionFunctionCall(ast)) {
13436
- SUBRULE(iriOrFunction, ast, void 0);
13460
+ SUBRULE(iriOrFunction, ast);
13437
13461
  } else if (F3.isExpressionAggregate(ast)) {
13438
- SUBRULE(aggregate, ast, void 0);
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, void 0),
13479
+ () => SUBRULE1(conditionalAndExpression),
13456
13480
  () => {
13457
13481
  CONSUME(symbols_exports.logicOr);
13458
- const args = SUBRULE2(conditionalAndExpression, void 0);
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, void 0),
13492
+ () => SUBRULE1(valueLogical),
13469
13493
  () => {
13470
13494
  CONSUME(symbols_exports.logicAnd);
13471
- const arg = SUBRULE2(valueLogical, void 0);
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, void 0)
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, void 0);
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, void 0);
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, void 0);
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, void 0)
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, void 0),
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, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0),
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, void 0);
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, void 0) },
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, void 0);
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, void 0) },
13634
- { ALT: () => SUBRULE(builtInCall, void 0) },
13635
- { ALT: () => SUBRULE(iriOrFunction, void 0) },
13636
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
13637
- { ALT: () => SUBRULE(numericLiteral, void 0) },
13638
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
13639
- { ALT: () => SUBRULE(var_, void 0) }
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, void 0);
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, void 0);
13681
+ const iriVal = SUBRULE(iri2);
13658
13682
  const functionCall2 = OPTION(() => {
13659
- const args = SUBRULE(argList, void 0);
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, void 0);
13703
+ SUBRULE(iri2, ast);
13680
13704
  } else {
13681
- SUBRULE(iri2, ast.function, void 0);
13682
- SUBRULE(argList, F3.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc), void 0);
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, void 0));
13692
- const having2 = OPTION2(() => SUBRULE(havingClause, void 0));
13693
- const order2 = OPTION3(() => SUBRULE(orderClause, void 0));
13694
- const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses, void 0));
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, void 0);
13728
+ SUBRULE(groupClause, ast.group);
13705
13729
  }
13706
13730
  if (ast.having) {
13707
- SUBRULE(havingClause, ast.having, void 0);
13731
+ SUBRULE(havingClause, ast.having);
13708
13732
  }
13709
13733
  if (ast.order) {
13710
- SUBRULE(orderClause, ast.order, void 0);
13734
+ SUBRULE(orderClause, ast.order);
13711
13735
  }
13712
13736
  if (ast.limitOffset) {
13713
- SUBRULE(limitOffsetClauses, ast.limitOffset, void 0);
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, void 0));
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, void 0);
13761
+ SUBRULE(expression, grouping);
13738
13762
  } else {
13739
13763
  F3.printFilter(ast, () => PRINT_WORDS("("));
13740
- SUBRULE(expression, grouping.value, void 0);
13764
+ SUBRULE(expression, grouping.value);
13741
13765
  F3.printFilter(ast, () => PRINT_WORDS("AS"));
13742
- SUBRULE(var_, grouping.variable, void 0);
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, void 0) },
13752
- { ALT: () => SUBRULE(functionCall, void 0) },
13753
- { ALT: () => SUBRULE2(var_, void 0) },
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, void 0);
13781
+ const expressionValue = SUBRULE(expression);
13758
13782
  const variable = OPTION(() => {
13759
13783
  CONSUME(as);
13760
- return SUBRULE1(var_, void 0);
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, void 0));
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, void 0);
13816
+ SUBRULE(expression, having2);
13793
13817
  }
13794
13818
  }
13795
13819
  };
13796
13820
  var havingCondition = {
13797
13821
  name: "havingCondition",
13798
- impl: ({ SUBRULE }) => () => SUBRULE(constraint, void 0)
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, void 0));
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, void 0);
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, void 0);
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, void 0);
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_, void 0);
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, void 0);
13863
- const offset2 = OPTION1(() => SUBRULE1(offsetClause, void 0));
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, void 0);
13872
- const limit2 = OPTION2(() => SUBRULE2(limitClause, void 0));
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/queryUnit.ts
13934
+ // ../../packages/rules-sparql-1-1/lib/grammar/queryUnit.ts
13911
13935
  var queryUnit = {
13912
13936
  name: "queryUnit",
13913
- impl: ({ SUBRULE }) => () => SUBRULE(query, void 0)
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, void 0);
13942
+ const prologueValues = SUBRULE(prologue);
13919
13943
  const subType = OR([
13920
- { ALT: () => SUBRULE(selectQuery, void 0) },
13921
- { ALT: () => SUBRULE(constructQuery, void 0) },
13922
- { ALT: () => SUBRULE(describeQuery, void 0) },
13923
- { ALT: () => SUBRULE(askQuery, void 0) }
13944
+ { ALT: () => SUBRULE(selectQuery) },
13945
+ { ALT: () => SUBRULE(constructQuery) },
13946
+ { ALT: () => SUBRULE(describeQuery) },
13947
+ { ALT: () => SUBRULE(askQuery) }
13924
13948
  ]);
13925
- const values3 = SUBRULE(valuesClause, void 0);
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, void 0);
13963
+ SUBRULE(prologue, ast.context);
13940
13964
  if (F3.isQuerySelect(ast)) {
13941
- SUBRULE(selectQuery, ast, void 0);
13965
+ SUBRULE(selectQuery, ast);
13942
13966
  } else if (F3.isQueryConstruct(ast)) {
13943
- SUBRULE(constructQuery, ast, void 0);
13967
+ SUBRULE(constructQuery, ast);
13944
13968
  } else if (F3.isQueryDescribe(ast)) {
13945
- SUBRULE(describeQuery, ast, void 0);
13969
+ SUBRULE(describeQuery, ast);
13946
13970
  } else if (F3.isQueryAsk(ast)) {
13947
- SUBRULE(askQuery, ast, void 0);
13971
+ SUBRULE(askQuery, ast);
13948
13972
  }
13949
13973
  if (ast.values) {
13950
- SUBRULE(inlineData, ast.values, void 0);
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, void 0);
13958
- const from2 = SUBRULE(datasetClauseStar, void 0);
13959
- const where2 = SUBRULE(whereClause, void 0);
13960
- const modifiers = SUBRULE(solutionModifier, void 0);
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)), void 0);
13987
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13988
- SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc), void 0);
13989
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
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, void 0);
13996
- const where2 = SUBRULE(whereClause, void 0);
13997
- const modifiers = SUBRULE(solutionModifier, void 0);
13998
- const values3 = SUBRULE(valuesClause, void 0);
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_, void 0);
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, void 0);
14099
+ const expr = SUBRULE1(expression);
14076
14100
  CONSUME(as);
14077
- const variable = SUBRULE2(var_, void 0);
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, void 0);
14132
+ SUBRULE(var_, variable);
14109
14133
  } else {
14110
14134
  F3.printFilter(ast, () => PRINT_WORD("("));
14111
- SUBRULE(expression, variable.expression, void 0);
14135
+ SUBRULE(expression, variable.expression);
14112
14136
  F3.printFilter(ast, () => PRINT_WORD("AS"));
14113
- SUBRULE(var_, variable.variable, void 0);
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, void 0);
14126
- const from2 = SUBRULE1(datasetClauseStar, void 0);
14127
- const where2 = SUBRULE1(whereClause, void 0);
14128
- const modifiers = SUBRULE1(solutionModifier, void 0);
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, void 0);
14170
+ const from2 = SUBRULE2(datasetClauseStar);
14147
14171
  CONSUME(where);
14148
- const template = SUBRULE2(constructTemplate, void 0);
14149
- const modifiers = SUBRULE2(solutionModifier, void 0);
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, void 0);
14196
+ SUBRULE(triplesBlock, ast.template);
14173
14197
  F3.printFilter(ast, () => PRINT_WORD("}"));
14174
14198
  }
14175
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
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), void 0);
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), void 0);
14203
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc));
14180
14204
  }
14181
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
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, void 0));
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, void 0);
14202
- const where2 = OPTION(() => SUBRULE1(whereClause, void 0));
14203
- const modifiers = SUBRULE1(solutionModifier, void 0);
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, void 0);
14252
+ SUBRULE(varOrTerm, variable);
14229
14253
  }
14230
14254
  }
14231
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14255
+ SUBRULE(datasetClauseStar, ast.datasets);
14232
14256
  if (ast.where) {
14233
- SUBRULE(whereClause, F3.wrap(ast.where, ast.loc), void 0);
14257
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.loc));
14234
14258
  }
14235
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
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, void 0);
14243
- const where2 = SUBRULE(whereClause, void 0);
14244
- const modifiers = SUBRULE(solutionModifier, void 0);
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, void 0);
14264
- SUBRULE(whereClause, F3.wrap(ast.where, ast.loc), void 0);
14265
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
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, void 0))
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, void 0));
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/updateUnit.ts
14313
+ // ../../packages/rules-sparql-1-1/lib/grammar/updateUnit.ts
14290
14314
  var updateUnit = {
14291
14315
  name: "updateUnit",
14292
- impl: ({ SUBRULE }) => () => SUBRULE(update, void 0)
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, void 0);
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, void 0);
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, void 0);
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, void 0);
14355
+ SUBRULE(prologue, update2.context);
14332
14356
  if (update2.operation) {
14333
- SUBRULE(update1, update2.operation, void 0);
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, void 0) },
14343
- { ALT: () => SUBRULE(clear2, void 0) },
14344
- { ALT: () => SUBRULE(drop3, void 0) },
14345
- { ALT: () => SUBRULE(add2, void 0) },
14346
- { ALT: () => SUBRULE(move2, void 0) },
14347
- { ALT: () => SUBRULE(copy2, void 0) },
14348
- { ALT: () => SUBRULE(create2, void 0) },
14349
- { ALT: () => SUBRULE(insertData, void 0) },
14350
- { ALT: () => SUBRULE(deleteData, void 0) },
14351
- { ALT: () => SUBRULE(deleteWhere, void 0) },
14352
- { ALT: () => SUBRULE(modify, void 0) }
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, void 0);
14381
+ SUBRULE(load2, ast);
14358
14382
  break;
14359
14383
  case "clear":
14360
- SUBRULE(clear2, ast, void 0);
14384
+ SUBRULE(clear2, ast);
14361
14385
  break;
14362
14386
  case "drop":
14363
- SUBRULE(drop3, ast, void 0);
14387
+ SUBRULE(drop3, ast);
14364
14388
  break;
14365
14389
  case "add":
14366
- SUBRULE(add2, ast, void 0);
14390
+ SUBRULE(add2, ast);
14367
14391
  break;
14368
14392
  case "move":
14369
- SUBRULE(move2, ast, void 0);
14393
+ SUBRULE(move2, ast);
14370
14394
  break;
14371
14395
  case "copy":
14372
- SUBRULE(copy2, ast, void 0);
14396
+ SUBRULE(copy2, ast);
14373
14397
  break;
14374
14398
  case "create":
14375
- SUBRULE(create2, ast, void 0);
14399
+ SUBRULE(create2, ast);
14376
14400
  break;
14377
14401
  case "insertdata":
14378
- SUBRULE(insertData, ast, void 0);
14402
+ SUBRULE(insertData, ast);
14379
14403
  break;
14380
14404
  case "deletedata":
14381
- SUBRULE(deleteData, ast, void 0);
14405
+ SUBRULE(deleteData, ast);
14382
14406
  break;
14383
14407
  case "deletewhere":
14384
- SUBRULE(deleteWhere, ast, void 0);
14408
+ SUBRULE(deleteWhere, ast);
14385
14409
  break;
14386
14410
  case "modify":
14387
- SUBRULE(modify, ast, void 0);
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, void 0);
14421
+ const source = SUBRULE1(iri2);
14398
14422
  const destination = OPTION2(() => {
14399
14423
  CONSUME(loadInto);
14400
- return SUBRULE1(graphRef, void 0);
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, void 0);
14440
+ SUBRULE(iri2, ast.source);
14417
14441
  if (ast.destination) {
14418
14442
  F3.printFilter(ast, () => PRINT_WORD("INTO"));
14419
- SUBRULE(graphRefAll, ast.destination, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0);
14502
+ const source = SUBRULE1(graphOrDefault);
14479
14503
  CONSUME(to);
14480
- const destination = SUBRULE2(graphOrDefault, void 0);
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, void 0);
14520
+ SUBRULE(graphRefAll, ast.source);
14497
14521
  F3.printFilter(ast, () => PRINT_WORD("TO"));
14498
- SUBRULE(graphRefAll, ast.destination, void 0);
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, void 0);
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, void 0);
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, void 0);
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), void 0);
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, void 0);
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, void 0);
14565
- const insert2 = OPTION2(() => SUBRULE1(insertClause2, void 0));
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, void 0);
14593
+ const insert2 = SUBRULE2(insertClause2);
14570
14594
  return { insert: insert2, del: void 0 };
14571
14595
  } }
14572
14596
  ]);
14573
- const using = SUBRULE1(usingClauseStar, void 0);
14597
+ const using = SUBRULE1(usingClauseStar);
14574
14598
  CONSUME(where);
14575
- const where2 = SUBRULE1(groupGraphPattern, void 0);
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, void 0);
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), void 0);
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), void 0);
14621
+ SUBRULE(quads, F3.wrap(ast.insert, ast.loc));
14598
14622
  F3.printFilter(ast, () => PRINT_WORD("}"));
14599
14623
  }
14600
- SUBRULE(usingClauseStar, ast.from, void 0);
14624
+ SUBRULE(usingClauseStar, ast.from);
14601
14625
  F3.printFilter(ast, () => PRINT_WORD("WHERE"));
14602
- SUBRULE(groupGraphPattern, ast.where, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0) },
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, void 0);
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, void 0);
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, void 0);
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, void 0);
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, void 0);
14732
+ SUBRULE(triplesBlock, quad);
14709
14733
  } else {
14710
- SUBRULE(quadsNotTriples, quad, void 0);
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, void 0);
14743
+ const name = SUBRULE1(varOrIri);
14720
14744
  CONSUME(symbols_exports.LCurly);
14721
- const triples = OPTION(() => SUBRULE1(triplesTemplate, void 0));
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, void 0);
14755
+ SUBRULE(varOrTerm, ast.graph);
14732
14756
  F3.printFilter(ast, () => PRINT_WORD("{"));
14733
- SUBRULE(triplesBlock, ast.triples, void 0);
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, void 0) },
15008
- { ALT: () => SUBRULE(grammar_exports.clear, void 0) },
15009
- { ALT: () => SUBRULE(grammar_exports.drop, void 0) },
15010
- { ALT: () => SUBRULE(grammar_exports.add, void 0) },
15011
- { ALT: () => SUBRULE(grammar_exports.move, void 0) },
15012
- { ALT: () => SUBRULE(grammar_exports.copy, void 0) },
15013
- { ALT: () => SUBRULE(grammar_exports.create, void 0) },
15014
- { ALT: () => SUBRULE(grammar_exports.insertData, void 0) },
15015
- { ALT: () => SUBRULE(grammar_exports.deleteData, void 0) },
15016
- { ALT: () => SUBRULE(grammar_exports.deleteWhere, void 0) }
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, void 0);
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, void 0) },
15069
- { ALT: () => SUBRULE(grammar_exports.constructQuery, void 0) },
15070
- { ALT: () => SUBRULE(grammar_exports.describeQuery, void 0) },
15071
- { ALT: () => SUBRULE(grammar_exports.askQuery, void 0) }
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, void 0);
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, void 0);
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, void 0);
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 langTagHasCorrectDomain(literal) {
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, void 0);
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, void 0)) },
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, void 0)) },
15299
- { ALT: () => result.push(SUBRULE(versionDecl, void 0)) }
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, void 0);
15307
+ SUBRULE(grammar_exports.baseDecl, context);
15307
15308
  } else if (F3.isContextDefinitionPrefix(context)) {
15308
- SUBRULE(grammar_exports.prefixDecl, context, void 0);
15309
+ SUBRULE(grammar_exports.prefixDecl, context);
15309
15310
  } else if (F3.isContextDefinitionVersion(context)) {
15310
- SUBRULE(versionDecl, context, void 0);
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, void 0);
15320
+ const triple = SUBRULE(reifiedTriple);
15320
15321
  const properties = SUBRULE(
15321
15322
  allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList,
15322
- { subject: ACTION(() => C.factory.dematerialized(triple.identifier)) }
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, void 0) },
15334
- { ALT: () => $.SUBRULE(tripleTermData, void 0) }
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, void 0));
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 reifier2 ?? C.factory.blankNode(void 0, C.factory.sourceLocation());
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_, void 0) },
15354
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
15355
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) }
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, void 0) : grammar_exports.triplesSameSubject.impl($)(C, void 0) },
15363
- { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock, void 0) }
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, arg) => {
15373
- const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2, void 0);
15374
- const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation, void 0);
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, void 0);
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.isTerm(annotation2)) {
15429
- F3.printFilter(annotation2, () => PRINT_WORD("~"));
15430
- SUBRULE(graphNodePath2, annotation2, void 0);
15431
+ if (F3.isTripleCollectionBlankNodeProperties(annotation2)) {
15432
+ SUBRULE(annotationBlockPath, annotation2);
15431
15433
  } else {
15432
- SUBRULE(annotationBlockPath, annotation2, void 0);
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
- { subject: arg }
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, void 0);
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, void 0);
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, void 0) },
15479
- { ALT: () => $.SUBRULE(reifiedTriple, void 0) }
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, void 0) },
15486
- { ALT: () => $.SUBRULE(reifiedTriple, void 0) }
15488
+ { ALT: () => grammar_exports.graphNodePath.impl($)(C) },
15489
+ { ALT: () => $.SUBRULE(reifiedTriple) }
15487
15490
  ]),
15488
- gImpl: ($) => (ast, C, params) => {
15491
+ gImpl: ($) => (ast, C) => {
15489
15492
  if (C.factory.isTripleCollectionReifiedTriple(ast)) {
15490
- $.SUBRULE(reifiedTriple, ast, void 0);
15493
+ $.SUBRULE(reifiedTriple, ast);
15491
15494
  } else {
15492
- grammar_exports.graphNodePath.gImpl($)(ast, C, params);
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_, void 0) },
15500
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
15501
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15502
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15503
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15504
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
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, void 0) }
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, void 0);
15518
- const predicate = SUBRULE(grammar_exports.verb, void 0);
15519
- const object3 = SUBRULE(reifiedTripleObject, void 0);
15520
- const reifierVal = OPTION(() => SUBRULE(reifier, void 0));
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, void 0);
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, void 0);
15545
+ SUBRULE(graphNodePath2, triple.predicate);
15543
15546
  }
15544
- SUBRULE(graphNodePath2, triple.object, void 0);
15545
- SUBRULE(annotationPath, [ast.identifier], void 0);
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_, void 0) },
15553
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
15554
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15555
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15556
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15557
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
15558
- { ALT: () => SUBRULE(reifiedTriple, void 0) },
15559
- { ALT: () => SUBRULE(tripleTerm, void 0) }
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, void 0);
15571
- const predicate = SUBRULE(grammar_exports.verb, void 0);
15572
- const object3 = SUBRULE(tripleTermObject, void 0);
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, void 0);
15579
- SUBRULE(graphNodePath2, ast.predicate, void 0);
15580
- SUBRULE(graphNodePath2, ast.object, void 0);
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_, void 0) },
15588
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
15589
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15590
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15591
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15592
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
15593
- { ALT: () => SUBRULE(tripleTerm, void 0) }
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, void 0);
15607
+ const subject = SUBRULE(tripleTermDataSubject);
15605
15608
  const predicate = OR([
15606
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
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, void 0);
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, void 0) },
15621
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15622
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15623
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15624
- { ALT: () => SUBRULE(tripleTermData, void 0) }
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, void 0) },
15635
- { ALT: () => $.SUBRULE(exprTripleTerm, void 0) }
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, void 0);
15643
- const predicate = SUBRULE(grammar_exports.verb, void 0);
15644
- const object3 = SUBRULE(exprTripleTermObject, void 0);
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, void 0) },
15658
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15659
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15660
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15661
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
15662
- { ALT: () => SUBRULE(exprTripleTerm, void 0) }
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, void 0) },
15682
- { ALT: () => $.SUBRULE(builtinLangDir2, void 0) },
15683
- { ALT: () => $.SUBRULE(builtinLangStrDir, void 0) },
15684
- { ALT: () => $.SUBRULE(builtinHasLang2, void 0) },
15685
- { ALT: () => $.SUBRULE(builtinHasLangDir2, void 0) },
15686
- { ALT: () => $.SUBRULE(builtinIsTriple, void 0) },
15687
- { ALT: () => $.SUBRULE(builtinTriple, void 0) },
15688
- { ALT: () => $.SUBRULE(builtinSubject, void 0) },
15689
- { ALT: () => $.SUBRULE(builtinPredicate, void 0) },
15690
- { ALT: () => $.SUBRULE(builtinObject, void 0) }
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, void 0);
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
- langTagHasCorrectDomain(literal);
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, void 0);
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, void 0);
15732
+ SUBRULE(graphNodePath2, triple);
15730
15733
  F3.printFilter(triple, () => PRINT_WORD("."));
15731
15734
  } else {
15732
- SUBRULE(graphNodePath2, triple.subject, void 0);
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, void 0);
15739
+ SUBRULE(graphNodePath2, triple.predicate);
15737
15740
  }
15738
- SUBRULE(graphNodePath2, triple.object, void 0);
15739
- SUBRULE(annotationPath, triple.annotations ?? [], void 0);
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, par) => {
15757
+ gImpl: ($) => (ast, C) => {
15755
15758
  if (C.factory.isTermTriple(ast)) {
15756
- $.SUBRULE(tripleTerm, ast, void 0);
15759
+ $.SUBRULE(tripleTerm, ast);
15757
15760
  } else {
15758
- grammar_exports.graphTerm.gImpl($)(ast, C, par);
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().addRuleRedundant(grammar_exports.object).addMany(
15853
+ var sparql12ParserBuilder = ParserBuilder.create(sparql11ParserBuilder).widenContext().typePatch().addMany(
15851
15854
  grammar_exports2.reifiedTripleBlock,
15852
15855
  grammar_exports2.reifiedTripleBlockPath,
15853
15856
  grammar_exports2.reifier,