@traqula/parser-sparql-1-1 0.0.2 → 0.0.4

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