@traqula/rules-sparql-1-2 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
@@ -11441,7 +11441,7 @@ function stringEscapedLexical(str2) {
11441
11441
  var rdfLiteral = {
11442
11442
  name: "rdfLiteral",
11443
11443
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
11444
- const value = SUBRULE1(string, void 0);
11444
+ const value = SUBRULE1(string);
11445
11445
  return OPTION(() => OR([
11446
11446
  { ALT: () => {
11447
11447
  const lang2 = CONSUME(terminals_exports.langTag);
@@ -11453,7 +11453,7 @@ var rdfLiteral = {
11453
11453
  } },
11454
11454
  { ALT: () => {
11455
11455
  CONSUME(symbols_exports.hathat);
11456
- const iriVal = SUBRULE1(iri2, void 0);
11456
+ const iriVal = SUBRULE1(iri2);
11457
11457
  return ACTION(() => C.factory.literalTerm(
11458
11458
  C.factory.sourceLocation(value, iriVal),
11459
11459
  value.value,
@@ -11469,7 +11469,7 @@ var rdfLiteral = {
11469
11469
  factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11470
11470
  } else {
11471
11471
  factory.printFilter(ast, () => PRINT("^^"));
11472
- SUBRULE(iri2, ast.langOrIri, void 0);
11472
+ SUBRULE(iri2, ast.langOrIri);
11473
11473
  }
11474
11474
  }
11475
11475
  }
@@ -11477,9 +11477,9 @@ var rdfLiteral = {
11477
11477
  var numericLiteral = {
11478
11478
  name: "numericLiteral",
11479
11479
  impl: ({ SUBRULE, OR }) => () => OR([
11480
- { ALT: () => SUBRULE(numericLiteralUnsigned, void 0) },
11481
- { ALT: () => SUBRULE(numericLiteralPositive, void 0) },
11482
- { ALT: () => SUBRULE(numericLiteralNegative, void 0) }
11480
+ { ALT: () => SUBRULE(numericLiteralUnsigned) },
11481
+ { ALT: () => SUBRULE(numericLiteralPositive) },
11482
+ { ALT: () => SUBRULE(numericLiteralNegative) }
11483
11483
  ])
11484
11484
  };
11485
11485
  var numericLiteralUnsigned = {
@@ -11587,10 +11587,10 @@ var string = {
11587
11587
  var iri2 = {
11588
11588
  name: "iri",
11589
11589
  impl: ({ SUBRULE, OR }) => () => OR([
11590
- { ALT: () => SUBRULE(iriFull, void 0) },
11591
- { ALT: () => SUBRULE(prefixedName, void 0) }
11590
+ { ALT: () => SUBRULE(iriFull) },
11591
+ { ALT: () => SUBRULE(prefixedName) }
11592
11592
  ]),
11593
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => F3.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, void 0) : SUBRULE(iriFull, ast, void 0)
11593
+ gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => F3.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11594
11594
  };
11595
11595
  var iriFull = {
11596
11596
  name: "iriFull",
@@ -11662,11 +11662,11 @@ function datasetClauseUsing(name, token) {
11662
11662
  const start = CONSUME(token);
11663
11663
  return OR([
11664
11664
  { ALT: () => {
11665
- const iri3 = SUBRULE(defaultGraphClause, void 0);
11665
+ const iri3 = SUBRULE(defaultGraphClause);
11666
11666
  return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11667
11667
  } },
11668
11668
  { ALT: () => {
11669
- const namedClause = SUBRULE(namedGraphClause, void 0);
11669
+ const namedClause = SUBRULE(namedGraphClause);
11670
11670
  return ACTION(() => C.factory.wrap({
11671
11671
  clauseType: "named",
11672
11672
  value: namedClause.val
@@ -11679,7 +11679,7 @@ function datasetClauseUsing(name, token) {
11679
11679
  var datasetClause = datasetClauseUsing("datasetClause", from);
11680
11680
  var defaultGraphClause = {
11681
11681
  name: "defaultGraphClause",
11682
- impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, void 0)
11682
+ impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
11683
11683
  };
11684
11684
  var usingClause2 = datasetClauseUsing("usingClause", usingClause);
11685
11685
  function datasetClauseUsingStar(name, subRule, fromUsing) {
@@ -11688,7 +11688,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11688
11688
  impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
11689
11689
  const clauses = [];
11690
11690
  MANY(() => {
11691
- const clause = SUBRULE(subRule, void 0);
11691
+ const clause = SUBRULE(subRule);
11692
11692
  clauses.push(clause);
11693
11693
  });
11694
11694
  return ACTION(() => C.factory.datasetClauses(
@@ -11702,7 +11702,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11702
11702
  if (clause.clauseType === "named") {
11703
11703
  F3.printFilter(ast, () => PRINT_WORD("NAMED"));
11704
11704
  }
11705
- SUBRULE(iri2, clause.value, void 0);
11705
+ SUBRULE(iri2, clause.value);
11706
11706
  }
11707
11707
  }
11708
11708
  };
@@ -11713,1389 +11713,1390 @@ var namedGraphClause = {
11713
11713
  name: "namedGraphClause",
11714
11714
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11715
11715
  const named2 = CONSUME(graph_exports.named);
11716
- const iri3 = SUBRULE(sourceSelector, void 0);
11716
+ const iri3 = SUBRULE(sourceSelector);
11717
11717
  return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11718
11718
  }
11719
11719
  };
11720
11720
  var sourceSelector = {
11721
11721
  name: "sourceSelector",
11722
- impl: ({ SUBRULE }) => () => SUBRULE(iri2, void 0)
11722
+ impl: ({ SUBRULE }) => () => SUBRULE(iri2)
11723
11723
  };
11724
11724
 
11725
- // ../rules-sparql-1-1/lib/grammar/general.ts
11726
- var prologue = {
11727
- name: "prologue",
11728
- impl: ({ SUBRULE, MANY, OR }) => () => {
11729
- const result = [];
11730
- MANY(() => OR([
11731
- { ALT: () => result.push(SUBRULE(baseDecl2, void 0)) },
11732
- // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
11733
- // We might need to check this.
11734
- { ALT: () => result.push(SUBRULE(prefixDecl2, void 0)) }
11735
- ]));
11736
- return result;
11737
- },
11738
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
11739
- for (const context of ast) {
11740
- if (F3.isContextDefinitionBase(context)) {
11741
- SUBRULE(baseDecl2, context, void 0);
11742
- } else if (F3.isContextDefinitionPrefix(context)) {
11743
- SUBRULE(prefixDecl2, context, void 0);
11744
- }
11745
- }
11746
- }
11747
- };
11748
- var baseDecl2 = {
11749
- name: "baseDecl",
11750
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11751
- const base = CONSUME(baseDecl);
11752
- const val = SUBRULE(iriFull, void 0);
11753
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11754
- },
11755
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
11756
- F3.printFilter(ast, () => PRINT_WORD("BASE"));
11757
- SUBRULE(iri2, ast.value, void 0);
11758
- }
11759
- };
11760
- var prefixDecl2 = {
11761
- name: "prefixDecl",
11762
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11763
- const prefix = CONSUME(prefixDecl);
11764
- const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11765
- const value = SUBRULE(iriFull, void 0);
11766
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11767
- },
11768
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F3 }) => {
11769
- F3.printFilter(ast, () => {
11770
- PRINT_WORDS("PREFIX", `${ast.key}:`);
11771
- });
11772
- SUBRULE(iri2, ast.value, void 0);
11773
- }
11774
- };
11775
- var verb = {
11776
- name: "verb",
11777
- impl: ({ SUBRULE, OR }) => () => OR([
11778
- { ALT: () => SUBRULE(varOrIri, void 0) },
11779
- { ALT: () => SUBRULE(verbA, void 0) }
11780
- ])
11781
- };
11782
- var varOrTerm = {
11783
- name: "varOrTerm",
11784
- impl: ({ SUBRULE, OR }) => (C) => OR([
11785
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11786
- { ALT: () => SUBRULE(graphTerm, void 0) }
11787
- ]),
11788
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
11789
- if (F3.isTermVariable(ast)) {
11790
- return SUBRULE(var_, ast, void 0);
11791
- }
11792
- return SUBRULE(graphTerm, ast, void 0);
11793
- }
11794
- };
11795
- var varOrIri = {
11796
- name: "varOrIri",
11797
- impl: ({ SUBRULE, OR }) => (C) => OR([
11798
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11799
- { ALT: () => SUBRULE(iri2, void 0) }
11800
- ])
11801
- };
11802
- var var_ = {
11803
- name: "var",
11804
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
11805
- const varToken = OR([
11806
- { ALT: () => CONSUME(terminals_exports.var1) },
11807
- { ALT: () => CONSUME(terminals_exports.var2) }
11808
- ]);
11809
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11810
- },
11811
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F3 }) => {
11812
- F3.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11813
- }
11814
- };
11815
- var graphTerm = {
11816
- name: "graphTerm",
11817
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
11818
- { ALT: () => SUBRULE(iri2, void 0) },
11819
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
11820
- { ALT: () => SUBRULE(numericLiteral, void 0) },
11821
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
11822
- { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
11823
- { ALT: () => {
11824
- const tokenNil = CONSUME(terminals_exports.nil);
11825
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
11826
- } }
11827
- ]),
11828
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
11829
- if (F3.isTermNamed(ast)) {
11830
- SUBRULE(iri2, ast, void 0);
11831
- } else if (F3.isTermLiteral(ast)) {
11832
- SUBRULE(rdfLiteral, ast, void 0);
11833
- } else if (F3.isTermBlank(ast)) {
11834
- SUBRULE(blankNode, ast, void 0);
11835
- }
11836
- }
11837
- };
11838
-
11839
- // ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
11840
- var path = {
11841
- name: "path",
11842
- impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
11843
- };
11844
- var pathGenerator = {
11845
- name: "path",
11846
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F3 }, braces = true) => {
11847
- if (F3.isTerm(ast) && F3.isTermNamed(ast)) {
11848
- SUBRULE(iri2, ast, void 0);
11849
- } else {
11850
- F3.printFilter(ast, () => braces && PRINT("("));
11851
- switch (ast.subType) {
11852
- case "|":
11853
- case "/": {
11854
- const [head2, ...tail] = ast.items;
11855
- SUBRULE(pathGenerator, head2, braces);
11856
- for (const val of tail) {
11857
- F3.printFilter(ast, () => PRINT(ast.subType));
11858
- SUBRULE(pathGenerator, val, braces);
11859
- }
11860
- break;
11861
- }
11862
- case "^":
11863
- F3.printFilter(ast, () => PRINT("^"));
11864
- SUBRULE(pathGenerator, ast.items[0], braces);
11865
- break;
11866
- case "?":
11867
- case "*":
11868
- case "+":
11869
- SUBRULE(pathGenerator, ast.items[0], braces);
11870
- F3.printFilter(ast, () => PRINT(ast.subType));
11871
- break;
11872
- case "!":
11873
- F3.printFilter(ast, () => PRINT("!"));
11874
- F3.printFilter(ast, () => PRINT("("));
11875
- SUBRULE(pathGenerator, ast.items[0], false);
11876
- F3.printFilter(ast, () => PRINT(")"));
11877
- break;
11878
- }
11879
- F3.printFilter(ast, () => braces && PRINT(")"));
11880
- }
11881
- }
11882
- };
11883
- function pathChainHelper(name, SEP, subType, subRule) {
11725
+ // ../rules-sparql-1-1/lib/expressionHelpers.ts
11726
+ function funcExpr1(func) {
11884
11727
  return {
11885
- name,
11886
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
11887
- const head2 = SUBRULE1(subRule, void 0);
11888
- let tailEnd = head2;
11889
- const tail = [];
11890
- MANY(() => {
11891
- CONSUME(SEP);
11892
- tailEnd = SUBRULE2(subRule, void 0);
11893
- tail.push(tailEnd);
11894
- });
11895
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
11728
+ name: unCapitalize(func.name),
11729
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11730
+ const operator = CONSUME(func);
11731
+ CONSUME(symbols_exports.LParen);
11732
+ const arg = SUBRULE(expression);
11733
+ const close = CONSUME(symbols_exports.RParen);
11734
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11896
11735
  }
11897
11736
  };
11898
11737
  }
11899
- var pathEltOrInverse = {
11900
- name: "pathEltOrInverse",
11901
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
11902
- { ALT: () => SUBRULE1(pathElt, void 0) },
11903
- { ALT: () => {
11904
- const hat2 = CONSUME(symbols_exports.hat);
11905
- const item = SUBRULE2(pathElt, void 0);
11906
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
11907
- } }
11908
- ])
11909
- };
11910
- var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
11911
- var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
11912
- var pathElt = {
11913
- name: "pathElt",
11914
- impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
11915
- const item = SUBRULE(pathPrimary, void 0);
11916
- const modification = OPTION(() => SUBRULE(pathMod, void 0));
11917
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
11918
- }
11919
- };
11920
- var pathMod = {
11921
- name: "pathMod",
11922
- impl: ({ CONSUME, OR }) => () => OR([
11923
- { ALT: () => CONSUME(symbols_exports.question) },
11924
- { ALT: () => CONSUME(symbols_exports.star) },
11925
- { ALT: () => CONSUME(symbols_exports.opPlus) }
11926
- ])
11927
- };
11928
- var pathPrimary = {
11929
- name: "pathPrimary",
11930
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
11931
- { ALT: () => SUBRULE(iri2, void 0) },
11932
- { ALT: () => SUBRULE(verbA, void 0) },
11933
- { ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
11934
- { ALT: () => {
11738
+ function funcExpr2(func) {
11739
+ return {
11740
+ name: unCapitalize(func.name),
11741
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
11742
+ const operator = CONSUME(func);
11935
11743
  CONSUME(symbols_exports.LParen);
11936
- const resRecursive = SUBRULE(path, void 0);
11937
- CONSUME(symbols_exports.RParen);
11938
- return resRecursive;
11939
- } }
11940
- ])
11941
- };
11942
- var pathNegatedPropertySet = {
11943
- name: "pathNegatedPropertySet",
11944
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
11945
- const exclamation2 = CONSUME(symbols_exports.exclamation);
11946
- return OR([
11947
- { ALT: () => {
11948
- const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
11949
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
11950
- } },
11951
- { ALT: () => {
11952
- const open = CONSUME(symbols_exports.LParen);
11953
- const head2 = SUBRULE2(pathOneInPropertySet, void 0);
11954
- const tail = [];
11955
- MANY(() => {
11956
- CONSUME(symbols_exports.pipe);
11957
- const item = SUBRULE3(pathOneInPropertySet, void 0);
11958
- tail.push(item);
11959
- });
11960
- const close = CONSUME(symbols_exports.RParen);
11961
- return ACTION(() => {
11962
- const F3 = C.factory;
11963
- if (tail.length === 0) {
11964
- return F3.path("!", [head2], F3.sourceLocation(exclamation2, close));
11965
- }
11966
- return F3.path(
11967
- "!",
11968
- [F3.path("|", [head2, ...tail], F3.sourceLocation(open, close))],
11969
- F3.sourceLocation(exclamation2, close)
11970
- );
11971
- });
11972
- } }
11973
- ]);
11974
- }
11975
- };
11976
- var pathOneInPropertySet = {
11977
- name: "pathOneInPropertySet",
11978
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
11979
- { ALT: () => SUBRULE1(iri2, void 0) },
11980
- { ALT: () => SUBRULE1(verbA, void 0) },
11981
- { ALT: () => {
11982
- const hat2 = CONSUME(symbols_exports.hat);
11983
- const item = OR2([
11984
- { ALT: () => SUBRULE2(iri2, void 0) },
11985
- { ALT: () => SUBRULE2(verbA, void 0) }
11986
- ]);
11987
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
11988
- } }
11989
- ])
11990
- };
11991
-
11992
- // ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
11993
- function triplesDotSeperated(triplesSameSubjectSubrule) {
11994
- return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
11995
- const triples = [];
11996
- let parsedDot = true;
11997
- let dotToken;
11998
- AT_LEAST_ONE({
11999
- GATE: () => parsedDot,
12000
- DEF: () => {
12001
- parsedDot = false;
12002
- const template = SUBRULE(triplesSameSubjectSubrule, void 0);
12003
- ACTION(() => {
12004
- triples.push(...template);
12005
- });
12006
- OPTION(() => {
12007
- dotToken = CONSUME(symbols_exports.dot);
12008
- parsedDot = true;
12009
- });
12010
- }
12011
- });
12012
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12013
- };
12014
- }
12015
- var triplesBlock = {
12016
- name: "triplesBlock",
12017
- impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
12018
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F3 }) => {
12019
- for (const [index, triple] of ast.triples.entries()) {
12020
- HANDLE_LOC(triple, () => {
12021
- const nextTriple = ast.triples.at(index);
12022
- if (F3.isTripleCollection(triple)) {
12023
- SUBRULE(graphNodePath, triple, void 0);
12024
- F3.printFilter(triple, () => PRINT_WORD("."));
12025
- } else {
12026
- SUBRULE(graphNodePath, triple.subject, void 0);
12027
- if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
12028
- SUBRULE(varOrTerm, triple.predicate, void 0);
12029
- } else {
12030
- SUBRULE(pathGenerator, triple.predicate, void 0);
12031
- }
12032
- SUBRULE(graphNodePath, triple.object, void 0);
12033
- if (nextTriple === void 0 || F3.isTripleCollection(nextTriple) || !F3.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12034
- F3.printFilter(ast, () => PRINT_WORD("."));
12035
- } else if (F3.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12036
- F3.printFilter(ast, () => PRINT_WORD(","));
12037
- } else {
12038
- F3.printFilter(ast, () => PRINT_WORD(";"));
12039
- }
12040
- }
12041
- });
11744
+ const arg1 = SUBRULE1(expression);
11745
+ CONSUME(symbols_exports.comma);
11746
+ const arg2 = SUBRULE2(expression);
11747
+ const close = CONSUME(symbols_exports.RParen);
11748
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12042
11749
  }
12043
- }
12044
- };
12045
- function triplesSameSubjectImpl(name, allowPaths) {
12046
- return {
12047
- name,
12048
- impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12049
- { ALT: () => {
12050
- const subject = SUBRULE(varOrTerm, void 0);
12051
- const res = SUBRULE(
12052
- allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
12053
- { subject: ACTION(() => C.factory.dematerialized(subject)) }
12054
- );
12055
- return ACTION(() => {
12056
- if (res.length > 0) {
12057
- res[0].subject = subject;
12058
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12059
- }
12060
- return res;
12061
- });
12062
- } },
12063
- { ALT: () => {
12064
- const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
12065
- const restNode = SUBRULE(
12066
- allowPaths ? propertyListPath : propertyList,
12067
- { subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
12068
- );
12069
- return ACTION(() => {
12070
- if (restNode.length === 0) {
12071
- return [subjectNode];
12072
- }
12073
- restNode[0].subject = subjectNode;
12074
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12075
- return restNode;
12076
- });
12077
- } }
12078
- ])
12079
11750
  };
12080
11751
  }
12081
- var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
12082
- var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
12083
- var triplesTemplate = {
12084
- name: "triplesTemplate",
12085
- impl: triplesDotSeperated(triplesSameSubject)
12086
- };
12087
- function propertyListImpl(name, allowPaths) {
11752
+ function funcExpr3(func) {
12088
11753
  return {
12089
- name,
12090
- impl: ({ SUBRULE, OPTION }) => (_, arg) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, arg)) ?? []
11754
+ name: unCapitalize(func.name),
11755
+ impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
11756
+ const operator = CONSUME(func);
11757
+ CONSUME(symbols_exports.LParen);
11758
+ const arg1 = SUBRULE1(expression);
11759
+ CONSUME1(symbols_exports.comma);
11760
+ const arg2 = SUBRULE2(expression);
11761
+ CONSUME2(symbols_exports.comma);
11762
+ const arg3 = SUBRULE3(expression);
11763
+ const close = CONSUME(symbols_exports.RParen);
11764
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11765
+ }
12091
11766
  };
12092
11767
  }
12093
- var propertyList = propertyListImpl("propertyList", false);
12094
- var propertyListPath = propertyListImpl("propertyListPath", true);
12095
- function propertyListNotEmptyImplementation(name, allowPaths) {
11768
+ function funcVar1(func) {
12096
11769
  return {
12097
- name,
12098
- impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, arg) => {
12099
- const result = [];
12100
- let parsedSemi = true;
12101
- AT_LEAST_ONE({
12102
- GATE: () => parsedSemi,
12103
- DEF: () => {
12104
- parsedSemi = false;
12105
- const predicate = allowPaths ? OR1([
12106
- { ALT: () => SUBRULE1(verbPath, void 0) },
12107
- { ALT: () => SUBRULE1(verbSimple, void 0) }
12108
- ]) : SUBRULE1(verb, void 0);
12109
- const triples = SUBRULE1(
12110
- allowPaths ? objectListPath : objectList,
12111
- ACTION(() => ({ subject: arg.subject, predicate }))
12112
- );
12113
- MANY2(() => {
12114
- CONSUME(symbols_exports.semi);
12115
- parsedSemi = true;
12116
- });
12117
- ACTION(() => {
12118
- result.push(...triples);
12119
- });
12120
- }
12121
- });
12122
- return result;
11770
+ name: unCapitalize(func.name),
11771
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11772
+ const operator = CONSUME(func);
11773
+ CONSUME(symbols_exports.LParen);
11774
+ const arg = SUBRULE(var_);
11775
+ const close = CONSUME(symbols_exports.RParen);
11776
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12123
11777
  }
12124
11778
  };
12125
11779
  }
12126
- var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12127
- var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12128
- var verbPath = {
12129
- name: "verbPath",
12130
- impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
12131
- };
12132
- var verbSimple = {
12133
- name: "verbSimple",
12134
- impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
12135
- };
12136
- function objectListImpl(name, allowPaths) {
11780
+ function funcExprOrNil1(func) {
12137
11781
  return {
12138
- name,
12139
- impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, arg) => {
12140
- const objects = [];
12141
- AT_LEAST_ONE_SEP({
12142
- SEP: symbols_exports.comma,
12143
- DEF: () => {
12144
- const objectTriple = SUBRULE(allowPaths ? objectPath : object, arg);
12145
- ACTION(() => {
12146
- objects.push(objectTriple);
12147
- });
12148
- }
12149
- });
12150
- return objects;
11782
+ name: unCapitalize(func.name),
11783
+ impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
11784
+ const operator = CONSUME(func);
11785
+ return OR([
11786
+ { ALT: () => {
11787
+ CONSUME(symbols_exports.LParen);
11788
+ const arg = SUBRULE(expression);
11789
+ const close = CONSUME(symbols_exports.RParen);
11790
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11791
+ } },
11792
+ { ALT: () => {
11793
+ const nil2 = CONSUME(terminals_exports.nil);
11794
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
11795
+ } }
11796
+ ]);
12151
11797
  }
12152
11798
  };
12153
11799
  }
12154
- var objectList = objectListImpl("objectList", false);
12155
- var objectListPath = objectListImpl("objectListPath", true);
12156
- function objectImpl(name, allowPaths) {
11800
+ function funcNil1(func) {
12157
11801
  return {
12158
- name,
12159
- impl: ({ ACTION, SUBRULE }) => (C, arg) => {
12160
- const node = SUBRULE(allowPaths ? graphNodePath : graphNode, void 0);
12161
- return ACTION(() => C.factory.triple(arg.subject, arg.predicate, node));
11802
+ name: unCapitalize(func.name),
11803
+ impl: ({ ACTION, CONSUME }) => (C) => {
11804
+ const operator = CONSUME(func);
11805
+ const nil2 = CONSUME(terminals_exports.nil);
11806
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12162
11807
  }
12163
11808
  };
12164
11809
  }
12165
- var object = objectImpl("object", false);
12166
- var objectPath = objectImpl("objectPath", true);
12167
- function collectionImpl(name, allowPaths) {
11810
+ function funcExprList1(func) {
12168
11811
  return {
12169
- name,
12170
- impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12171
- const terms = [];
12172
- const startToken = CONSUME(symbols_exports.LParen);
12173
- AT_LEAST_ONE(() => {
12174
- terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode, void 0));
12175
- });
12176
- const endToken = CONSUME(symbols_exports.RParen);
12177
- return ACTION(() => {
12178
- const F3 = C.factory;
12179
- const triples = [];
12180
- const predFirst = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12181
- const predRest = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12182
- const predNil = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12183
- const listHead = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12184
- let iterHead = listHead;
12185
- for (const [index, term] of terms.entries()) {
12186
- const lastInList = index === terms.length - 1;
12187
- const headTriple = F3.triple(
12188
- iterHead,
12189
- predFirst,
12190
- term
12191
- );
12192
- triples.push(headTriple);
12193
- if (lastInList) {
12194
- const nilTriple = F3.triple(iterHead, predRest, predNil);
12195
- triples.push(nilTriple);
12196
- } else {
12197
- const tail = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12198
- const linkTriple = F3.triple(iterHead, predRest, tail);
12199
- triples.push(linkTriple);
12200
- iterHead = tail;
12201
- }
12202
- }
12203
- return F3.tripleCollectionList(listHead, triples, F3.sourceLocation(startToken, endToken));
11812
+ name: unCapitalize(func.name),
11813
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11814
+ const operator = CONSUME(func);
11815
+ const args = SUBRULE(expressionList);
11816
+ return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
11817
+ }
11818
+ };
11819
+ }
11820
+ function funcExpr2or3(func) {
11821
+ return {
11822
+ name: unCapitalize(func.name),
11823
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
11824
+ const operator = CONSUME(func);
11825
+ CONSUME(symbols_exports.LParen);
11826
+ const arg1 = SUBRULE1(expression);
11827
+ CONSUME1(symbols_exports.comma);
11828
+ const arg2 = SUBRULE2(expression);
11829
+ const arg3 = OPTION(() => {
11830
+ CONSUME2(symbols_exports.comma);
11831
+ return SUBRULE3(expression);
12204
11832
  });
12205
- },
12206
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12207
- F3.printFilter(ast, () => PRINT_WORD("("));
12208
- for (const [idx, triple] of ast.triples.entries()) {
12209
- if (idx % 2 === 0) {
12210
- SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object, void 0);
12211
- }
12212
- }
12213
- F3.printFilter(ast, () => PRINT_WORD(")"));
11833
+ const close = CONSUME(symbols_exports.RParen);
11834
+ return ACTION(() => C.factory.expressionOperation(
11835
+ operator.image,
11836
+ arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
11837
+ C.factory.sourceLocation(operator, close)
11838
+ ));
12214
11839
  }
12215
11840
  };
12216
11841
  }
12217
- var collection = collectionImpl("collection", false);
12218
- var collectionPath = collectionImpl("collectionPath", true);
12219
- function triplesNodeImpl(name, allowPaths) {
11842
+ function funcExpr3or4(func) {
12220
11843
  return {
12221
- name,
12222
- impl: ({ SUBRULE, OR }) => () => OR([
12223
- { ALT: () => SUBRULE(allowPaths ? collectionPath : collection, void 0) },
12224
- { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, void 0) }
12225
- ]),
12226
- gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast, void 0) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast, void 0)
11844
+ name: unCapitalize(func.name),
11845
+ impl: ({
11846
+ ACTION,
11847
+ CONSUME,
11848
+ SUBRULE1,
11849
+ SUBRULE2,
11850
+ SUBRULE3,
11851
+ SUBRULE4,
11852
+ CONSUME1,
11853
+ OPTION,
11854
+ CONSUME2,
11855
+ CONSUME3
11856
+ }) => (C) => {
11857
+ const operator = CONSUME(func);
11858
+ CONSUME(symbols_exports.LParen);
11859
+ const arg1 = SUBRULE1(expression);
11860
+ CONSUME1(symbols_exports.comma);
11861
+ const arg2 = SUBRULE2(expression);
11862
+ CONSUME2(symbols_exports.comma);
11863
+ const arg3 = SUBRULE3(expression);
11864
+ const arg4 = OPTION(() => {
11865
+ CONSUME3(symbols_exports.comma);
11866
+ return SUBRULE4(expression);
11867
+ });
11868
+ const close = CONSUME(symbols_exports.RParen);
11869
+ return ACTION(() => C.factory.expressionOperation(
11870
+ operator.image,
11871
+ arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
11872
+ C.factory.sourceLocation(operator, close)
11873
+ ));
11874
+ }
12227
11875
  };
12228
11876
  }
12229
- var triplesNode = triplesNodeImpl("triplesNode", false);
12230
- var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12231
- function blankNodePropertyListImpl(name, allowPaths) {
12232
- const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
11877
+ function funcGroupGraphPattern(func) {
12233
11878
  return {
12234
- name,
11879
+ name: unCapitalize(func.name),
12235
11880
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12236
- const startToken = CONSUME(symbols_exports.LSquare);
12237
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12238
- const propList = SUBRULE(propertyPathNotEmptyImpl, { subject: blankNode2 });
12239
- const endToken = CONSUME(symbols_exports.RSquare);
12240
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12241
- blankNode2,
12242
- propList,
12243
- C.factory.sourceLocation(startToken, endToken)
11881
+ const operator = CONSUME(func);
11882
+ const group = SUBRULE(groupGraphPattern);
11883
+ return ACTION(() => C.factory.expressionPatternOperation(
11884
+ operator.image,
11885
+ group,
11886
+ C.factory.sourceLocation(operator, group)
12244
11887
  ));
12245
- },
12246
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F3 }) => {
12247
- F3.printFilter(ast, () => PRINT("["));
12248
- for (const triple of ast.triples) {
12249
- HANDLE_LOC(triple, () => {
12250
- if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
12251
- SUBRULE(varOrTerm, triple.predicate, void 0);
12252
- } else {
12253
- SUBRULE(pathGenerator, triple.predicate, void 0);
12254
- }
12255
- SUBRULE(graphNodePath, triple.object, void 0);
12256
- F3.printFilter(ast, () => PRINT_WORD(";"));
12257
- });
12258
- }
12259
- F3.printFilter(ast, () => PRINT("]"));
12260
11888
  }
12261
11889
  };
12262
11890
  }
12263
- var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12264
- var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12265
- function graphNodeImpl(name, allowPaths) {
12266
- const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
11891
+ function baseAggregateFunc(func) {
12267
11892
  return {
12268
- name,
12269
- impl: ({ SUBRULE, OR }) => (C) => OR([
12270
- { ALT: () => SUBRULE(varOrTerm, void 0) },
12271
- {
12272
- GATE: () => C.parseMode.has("canCreateBlankNodes"),
12273
- ALT: () => SUBRULE(triplesNodeRule, void 0)
12274
- }
12275
- ]),
12276
- gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12277
- if (F3.isTerm(ast)) {
12278
- SUBRULE(varOrTerm, ast, void 0);
12279
- } else {
12280
- SUBRULE(triplesNodeRule, ast, void 0);
12281
- }
11893
+ name: unCapitalize(func.name),
11894
+ impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
11895
+ const operator = CONSUME(func);
11896
+ CONSUME(symbols_exports.LParen);
11897
+ const distinct2 = OPTION(() => CONSUME(distinct));
11898
+ const expr1 = SUBRULE(expression);
11899
+ const close = CONSUME(symbols_exports.RParen);
11900
+ return ACTION(() => C.factory.aggregate(
11901
+ operator.image,
11902
+ distinct2 !== void 0,
11903
+ expr1,
11904
+ void 0,
11905
+ C.factory.sourceLocation(operator, close)
11906
+ ));
12282
11907
  }
12283
11908
  };
12284
11909
  }
12285
- var graphNode = graphNodeImpl("graphNode", false);
12286
- var graphNodePath = graphNodeImpl("graphNodePath", true);
12287
11910
 
12288
- // ../rules-sparql-1-1/lib/grammar/whereClause.ts
12289
- var whereClause = {
12290
- name: "whereClause",
12291
- impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12292
- const where2 = OPTION(() => CONSUME(where));
12293
- const group = SUBRULE(groupGraphPattern, void 0);
12294
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12295
- },
12296
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12297
- F3.printFilter(ast, () => PRINT_WORD("WHERE"));
12298
- SUBRULE(groupGraphPattern, ast.val, void 0);
11911
+ // ../rules-sparql-1-1/lib/grammar/builtIn.ts
11912
+ var builtInStr = funcExpr1(BuildinCalls_exports.str);
11913
+ var builtInLang = funcExpr1(BuildinCalls_exports.lang);
11914
+ var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
11915
+ var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
11916
+ var builtInBound = funcVar1(BuildinCalls_exports.bound);
11917
+ var builtInIri = funcExpr1(BuildinCalls_exports.iri);
11918
+ var builtInUri = funcExpr1(BuildinCalls_exports.uri);
11919
+ var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
11920
+ var builtInRand = funcNil1(BuildinCalls_exports.rand);
11921
+ var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
11922
+ var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
11923
+ var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
11924
+ var builtInRound = funcExpr1(BuildinCalls_exports.round);
11925
+ var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
11926
+ var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
11927
+ var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
11928
+ var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
11929
+ var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
11930
+ var builtInContains = funcExpr2(BuildinCalls_exports.contains);
11931
+ var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
11932
+ var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
11933
+ var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
11934
+ var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
11935
+ var builtInYear = funcExpr1(BuildinCalls_exports.year);
11936
+ var builtInMonth = funcExpr1(BuildinCalls_exports.month);
11937
+ var builtInDay = funcExpr1(BuildinCalls_exports.day);
11938
+ var builtInHours = funcExpr1(BuildinCalls_exports.hours);
11939
+ var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
11940
+ var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
11941
+ var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
11942
+ var builtInTz = funcExpr1(BuildinCalls_exports.tz);
11943
+ var builtInNow = funcNil1(BuildinCalls_exports.now);
11944
+ var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
11945
+ var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
11946
+ var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
11947
+ var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
11948
+ var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
11949
+ var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
11950
+ var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
11951
+ var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
11952
+ var builtInIf = funcExpr3(BuildinCalls_exports.if_);
11953
+ var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
11954
+ var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
11955
+ var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
11956
+ var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
11957
+ var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
11958
+ var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
11959
+ var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
11960
+ var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
11961
+ function builtInCallList(SUBRULE) {
11962
+ return [
11963
+ { ALT: () => SUBRULE(aggregate) },
11964
+ { ALT: () => SUBRULE(builtInStr) },
11965
+ { ALT: () => SUBRULE(builtInLang) },
11966
+ { ALT: () => SUBRULE(builtInLangmatches) },
11967
+ { ALT: () => SUBRULE(builtInDatatype) },
11968
+ { ALT: () => SUBRULE(builtInBound) },
11969
+ { ALT: () => SUBRULE(builtInIri) },
11970
+ { ALT: () => SUBRULE(builtInUri) },
11971
+ { ALT: () => SUBRULE(builtInBnodeSparqlJs) },
11972
+ { ALT: () => SUBRULE(builtInRand) },
11973
+ { ALT: () => SUBRULE(builtInAbs) },
11974
+ { ALT: () => SUBRULE(builtInCeil) },
11975
+ { ALT: () => SUBRULE(builtInFloor) },
11976
+ { ALT: () => SUBRULE(builtInRound) },
11977
+ { ALT: () => SUBRULE(builtInConcat) },
11978
+ { ALT: () => SUBRULE(substringExpression) },
11979
+ { ALT: () => SUBRULE(builtInStrlen) },
11980
+ { ALT: () => SUBRULE(strReplaceExpression) },
11981
+ { ALT: () => SUBRULE(builtInUcase) },
11982
+ { ALT: () => SUBRULE(builtInLcase) },
11983
+ { ALT: () => SUBRULE(builtInEncode_for_uri) },
11984
+ { ALT: () => SUBRULE(builtInContains) },
11985
+ { ALT: () => SUBRULE(builtInStrstarts) },
11986
+ { ALT: () => SUBRULE(builtInStrends) },
11987
+ { ALT: () => SUBRULE(builtInStrbefore) },
11988
+ { ALT: () => SUBRULE(builtInStrafter) },
11989
+ { ALT: () => SUBRULE(builtInYear) },
11990
+ { ALT: () => SUBRULE(builtInMonth) },
11991
+ { ALT: () => SUBRULE(builtInDay) },
11992
+ { ALT: () => SUBRULE(builtInHours) },
11993
+ { ALT: () => SUBRULE(builtInMinutes) },
11994
+ { ALT: () => SUBRULE(builtInSeconds) },
11995
+ { ALT: () => SUBRULE(builtInTimezone) },
11996
+ { ALT: () => SUBRULE(builtInTz) },
11997
+ { ALT: () => SUBRULE(builtInNow) },
11998
+ { ALT: () => SUBRULE(builtInUuid) },
11999
+ { ALT: () => SUBRULE(builtInStruuid) },
12000
+ { ALT: () => SUBRULE(builtInMd5) },
12001
+ { ALT: () => SUBRULE(builtInSha1) },
12002
+ { ALT: () => SUBRULE(builtInSha256) },
12003
+ { ALT: () => SUBRULE(builtInSha384) },
12004
+ { ALT: () => SUBRULE(builtInSha512) },
12005
+ { ALT: () => SUBRULE(builtInCoalesce) },
12006
+ { ALT: () => SUBRULE(builtInIf) },
12007
+ { ALT: () => SUBRULE(builtInStrlang) },
12008
+ { ALT: () => SUBRULE(builtInStrdt) },
12009
+ { ALT: () => SUBRULE(builtInSameterm) },
12010
+ { ALT: () => SUBRULE(builtInIsiri) },
12011
+ { ALT: () => SUBRULE(builtInIsuri) },
12012
+ { ALT: () => SUBRULE(builtInIsblank) },
12013
+ { ALT: () => SUBRULE(builtInIsliteral) },
12014
+ { ALT: () => SUBRULE(builtInIsnumeric) },
12015
+ { ALT: () => SUBRULE(regexExpression) },
12016
+ { ALT: () => SUBRULE(existsFunc) },
12017
+ { ALT: () => SUBRULE(notExistsFunc) }
12018
+ ];
12019
+ }
12020
+ var builtInCall = {
12021
+ name: "builtInCall",
12022
+ impl: ({ OR, SUBRULE, cache }) => () => {
12023
+ const cached = cache.get(builtInCall);
12024
+ if (cached) {
12025
+ return OR(cached);
12026
+ }
12027
+ const builtIns = builtInCallList(SUBRULE);
12028
+ cache.set(builtInCall, builtIns);
12029
+ return OR(builtIns);
12030
+ }
12031
+ };
12032
+ var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
12033
+ var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
12034
+ var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
12035
+ var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
12036
+ var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
12037
+ var aggregateCount = {
12038
+ name: unCapitalize(BuildinCalls_exports.count.name),
12039
+ impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
12040
+ const operatorToken = CONSUME(BuildinCalls_exports.count);
12041
+ CONSUME(symbols_exports.LParen);
12042
+ const distinctToken = OPTION(() => CONSUME(distinct));
12043
+ const expressionVal = OR([
12044
+ { ALT: () => {
12045
+ const starToken = CONSUME(symbols_exports.star);
12046
+ return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12047
+ } },
12048
+ { ALT: () => SUBRULE(expression) }
12049
+ ]);
12050
+ const closeToken = CONSUME(symbols_exports.RParen);
12051
+ return ACTION(() => {
12052
+ const F3 = C.factory;
12053
+ if (C.factory.isWildcard(expressionVal)) {
12054
+ return F3.aggregate(
12055
+ operatorToken.image,
12056
+ Boolean(distinctToken),
12057
+ expressionVal,
12058
+ void 0,
12059
+ C.factory.sourceLocation(operatorToken, closeToken)
12060
+ );
12061
+ }
12062
+ return F3.aggregate(
12063
+ operatorToken.image,
12064
+ Boolean(distinctToken),
12065
+ expressionVal,
12066
+ void 0,
12067
+ C.factory.sourceLocation(operatorToken, closeToken)
12068
+ );
12069
+ });
12070
+ }
12071
+ };
12072
+ var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
12073
+ var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
12074
+ var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
12075
+ var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
12076
+ var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
12077
+ var aggregateGroup_concat = {
12078
+ name: unCapitalize(BuildinCalls_exports.groupConcat.name),
12079
+ impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
12080
+ const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12081
+ CONSUME(symbols_exports.LParen);
12082
+ const distinctToken = OPTION1(() => CONSUME(distinct));
12083
+ const expr = SUBRULE(expression);
12084
+ const sep = OPTION2(() => {
12085
+ CONSUME(symbols_exports.semi);
12086
+ CONSUME(separator);
12087
+ CONSUME(symbols_exports.equal);
12088
+ return SUBRULE(string);
12089
+ });
12090
+ const closeToken = CONSUME(symbols_exports.RParen);
12091
+ return ACTION(() => {
12092
+ const F3 = C.factory;
12093
+ return F3.aggregate(
12094
+ operatorToken.image,
12095
+ Boolean(distinctToken),
12096
+ expr,
12097
+ sep?.value ?? " ",
12098
+ F3.sourceLocation(operatorToken, closeToken)
12099
+ );
12100
+ });
12299
12101
  }
12300
12102
  };
12301
- var groupGraphPattern = {
12302
- name: "groupGraphPattern",
12303
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12304
- const open = CONSUME(symbols_exports.LCurly);
12305
- const patterns = OR([
12306
- { ALT: () => [SUBRULE(subSelect, void 0)] },
12307
- { ALT: () => SUBRULE(groupGraphPatternSub, void 0) }
12103
+ var aggregate = {
12104
+ name: "aggregate",
12105
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => {
12106
+ const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
12107
+ ACTION(() => C.parseMode.add("inAggregate"));
12108
+ const result = OR([
12109
+ { ALT: () => SUBRULE(aggregateCount) },
12110
+ { ALT: () => SUBRULE(aggregateSum) },
12111
+ { ALT: () => SUBRULE(aggregateMin) },
12112
+ { ALT: () => SUBRULE(aggregateMax) },
12113
+ { ALT: () => SUBRULE(aggregateAvg) },
12114
+ { ALT: () => SUBRULE(aggregateSample) },
12115
+ { ALT: () => SUBRULE(aggregateGroup_concat) }
12308
12116
  ]);
12309
- const close = CONSUME(symbols_exports.RCurly);
12310
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12117
+ ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
12118
+ ACTION(() => {
12119
+ if (!C.parseMode.has("canParseAggregate")) {
12120
+ throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
12121
+ }
12122
+ if (C.parseMode.has("inAggregate")) {
12123
+ throw new Error("An aggregate function is not allowed within an aggregate function.");
12124
+ }
12125
+ });
12126
+ return result;
12311
12127
  },
12312
12128
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12313
- F3.printFilter(ast, () => PRINT_WORD("{"));
12314
- for (const pattern of ast.patterns) {
12315
- SUBRULE(generatePattern, pattern, void 0);
12129
+ F3.printFilter(ast, () => {
12130
+ PRINT_WORD(ast.aggregation, "(");
12131
+ if (ast.distinct) {
12132
+ PRINT_WORD("DISTINCT");
12133
+ }
12134
+ });
12135
+ const arg = ast.expression[0];
12136
+ if (F3.isWildcard(arg)) {
12137
+ F3.printFilter(ast, () => PRINT_WORD("*"));
12138
+ } else {
12139
+ SUBRULE(expression, arg);
12316
12140
  }
12317
- F3.printFilter(ast, () => PRINT_WORD("}"));
12141
+ if (F3.isExpressionAggregateSeparator(ast)) {
12142
+ F3.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
12143
+ }
12144
+ F3.printFilter(ast, () => PRINT_WORD(")"));
12318
12145
  }
12319
12146
  };
12320
- var generatePattern = {
12321
- name: "generatePattern",
12147
+
12148
+ // ../rules-sparql-1-1/lib/grammar/general.ts
12149
+ var prologue = {
12150
+ name: "prologue",
12151
+ impl: ({ SUBRULE, MANY, OR }) => () => {
12152
+ const result = [];
12153
+ MANY(() => OR([
12154
+ { ALT: () => result.push(SUBRULE(baseDecl2)) },
12155
+ // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
12156
+ // We might need to check this.
12157
+ { ALT: () => result.push(SUBRULE(prefixDecl2)) }
12158
+ ]));
12159
+ return result;
12160
+ },
12322
12161
  gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12323
- if (ast.type === "query") {
12324
- SUBRULE(query, F3.querySelect({
12325
- context: [],
12326
- datasets: F3.datasetClauses([], F3.sourceLocation()),
12327
- where: ast.where,
12328
- variables: ast.variables,
12329
- solutionModifiers: ast.solutionModifiers,
12330
- values: ast.values,
12331
- distinct: ast.distinct,
12332
- reduced: ast.reduced
12333
- }, ast.loc), void 0);
12334
- } else if (ast.subType === "group") {
12335
- SUBRULE(groupGraphPattern, ast, void 0);
12336
- } else if (ast.subType === "bgp") {
12337
- SUBRULE(triplesBlock, ast, void 0);
12338
- } else {
12339
- SUBRULE(graphPatternNotTriples, ast, void 0);
12162
+ for (const context of ast) {
12163
+ if (F3.isContextDefinitionBase(context)) {
12164
+ SUBRULE(baseDecl2, context);
12165
+ } else if (F3.isContextDefinitionPrefix(context)) {
12166
+ SUBRULE(prefixDecl2, context);
12167
+ }
12340
12168
  }
12341
12169
  }
12342
12170
  };
12343
- var groupGraphPatternSub = {
12344
- name: "groupGraphPatternSub",
12345
- impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12346
- const patterns = [];
12347
- const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock, void 0));
12348
- if (bgpPattern) {
12349
- patterns.push(bgpPattern);
12350
- }
12351
- MANY(() => {
12352
- const notTriples = SUBRULE(graphPatternNotTriples, void 0);
12353
- patterns.push(notTriples);
12354
- OPTION2(() => CONSUME(symbols_exports.dot));
12355
- const moreTriples = OPTION3(() => SUBRULE2(triplesBlock, void 0));
12356
- if (moreTriples) {
12357
- patterns.push(moreTriples);
12358
- }
12171
+ var baseDecl2 = {
12172
+ name: "baseDecl",
12173
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12174
+ const base = CONSUME(baseDecl);
12175
+ const val = SUBRULE(iriFull);
12176
+ return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
12177
+ },
12178
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12179
+ F3.printFilter(ast, () => PRINT_WORD("BASE"));
12180
+ SUBRULE(iri2, ast.value);
12181
+ }
12182
+ };
12183
+ var prefixDecl2 = {
12184
+ name: "prefixDecl",
12185
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12186
+ const prefix = CONSUME(prefixDecl);
12187
+ const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
12188
+ const value = SUBRULE(iriFull);
12189
+ return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
12190
+ },
12191
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F3 }) => {
12192
+ F3.printFilter(ast, () => {
12193
+ PRINT_WORDS("PREFIX", `${ast.key}:`);
12359
12194
  });
12360
- ACTION(() => checkNote13(patterns));
12361
- return patterns;
12195
+ SUBRULE(iri2, ast.value);
12362
12196
  }
12363
12197
  };
12364
- var graphPatternNotTriples = {
12365
- name: "graphPatternNotTriples",
12198
+ var verb = {
12199
+ name: "verb",
12366
12200
  impl: ({ SUBRULE, OR }) => () => OR([
12367
- { ALT: () => SUBRULE(groupOrUnionGraphPattern, void 0) },
12368
- { ALT: () => SUBRULE(optionalGraphPattern, void 0) },
12369
- { ALT: () => SUBRULE(minusGraphPattern, void 0) },
12370
- { ALT: () => SUBRULE(graphGraphPattern, void 0) },
12371
- { ALT: () => SUBRULE(serviceGraphPattern, void 0) },
12372
- { ALT: () => SUBRULE(filter3, void 0) },
12373
- { ALT: () => SUBRULE(bind2, void 0) },
12374
- { ALT: () => SUBRULE(inlineData, void 0) }
12201
+ { ALT: () => SUBRULE(varOrIri) },
12202
+ { ALT: () => SUBRULE(verbA) }
12203
+ ])
12204
+ };
12205
+ var varOrTerm = {
12206
+ name: "varOrTerm",
12207
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12208
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12209
+ { ALT: () => SUBRULE(graphTerm) }
12375
12210
  ]),
12376
- gImpl: ({ SUBRULE }) => (ast) => {
12377
- switch (ast.subType) {
12378
- case "group":
12379
- case "union":
12380
- SUBRULE(groupOrUnionGraphPattern, ast, void 0);
12381
- break;
12382
- case "optional":
12383
- SUBRULE(optionalGraphPattern, ast, void 0);
12384
- break;
12385
- case "minus":
12386
- SUBRULE(minusGraphPattern, ast, void 0);
12387
- break;
12388
- case "graph":
12389
- SUBRULE(graphGraphPattern, ast, void 0);
12390
- break;
12391
- case "service":
12392
- SUBRULE(serviceGraphPattern, ast, void 0);
12393
- break;
12394
- case "filter":
12395
- SUBRULE(filter3, ast, void 0);
12396
- break;
12397
- case "bind":
12398
- SUBRULE(bind2, ast, void 0);
12399
- break;
12400
- case "values":
12401
- SUBRULE(inlineData, ast, void 0);
12402
- break;
12211
+ gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12212
+ if (F3.isTermVariable(ast)) {
12213
+ return SUBRULE(var_, ast);
12403
12214
  }
12215
+ return SUBRULE(graphTerm, ast);
12404
12216
  }
12405
12217
  };
12406
- var optionalGraphPattern = {
12407
- name: "optionalGraphPattern",
12408
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12409
- const optional2 = CONSUME(optional);
12410
- const group = SUBRULE(groupGraphPattern, void 0);
12411
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12412
- },
12413
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12414
- F3.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12415
- SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc), void 0);
12416
- }
12218
+ var varOrIri = {
12219
+ name: "varOrIri",
12220
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12221
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12222
+ { ALT: () => SUBRULE(iri2) }
12223
+ ])
12417
12224
  };
12418
- var graphGraphPattern = {
12419
- name: "graphGraphPattern",
12420
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12421
- const graph2 = CONSUME(graph_exports.graph);
12422
- const name = SUBRULE(varOrIri, void 0);
12423
- const group = SUBRULE(groupGraphPattern, void 0);
12424
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12225
+ var var_ = {
12226
+ name: "var",
12227
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
12228
+ const varToken = OR([
12229
+ { ALT: () => CONSUME(terminals_exports.var1) },
12230
+ { ALT: () => CONSUME(terminals_exports.var2) }
12231
+ ]);
12232
+ return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
12425
12233
  },
12426
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12427
- F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
12428
- SUBRULE(varOrTerm, ast.name, void 0);
12429
- SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc), void 0);
12234
+ gImpl: ({ PRINT_WORD }) => (ast, { factory: F3 }) => {
12235
+ F3.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
12430
12236
  }
12431
12237
  };
12432
- var serviceGraphPattern = {
12433
- name: "serviceGraphPattern",
12434
- impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12435
- const service2 = CONSUME(service);
12436
- const silent2 = OPTION(() => {
12437
- CONSUME(silent);
12438
- return true;
12439
- }) ?? false;
12440
- const name = SUBRULE1(varOrIri, void 0);
12441
- const group = SUBRULE1(groupGraphPattern, void 0);
12442
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12443
- },
12444
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12445
- F3.printFilter(ast, () => {
12446
- PRINT_WORD("SERVICE");
12447
- if (ast.silent) {
12448
- PRINT_WORD("SILENT");
12449
- }
12450
- });
12451
- SUBRULE(varOrTerm, ast.name, void 0);
12452
- SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc), void 0);
12238
+ var graphTerm = {
12239
+ name: "graphTerm",
12240
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
12241
+ { ALT: () => SUBRULE(iri2) },
12242
+ { ALT: () => SUBRULE(rdfLiteral) },
12243
+ { ALT: () => SUBRULE(numericLiteral) },
12244
+ { ALT: () => SUBRULE(booleanLiteral) },
12245
+ { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
12246
+ { ALT: () => {
12247
+ const tokenNil = CONSUME(terminals_exports.nil);
12248
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
12249
+ } }
12250
+ ]),
12251
+ gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12252
+ if (F3.isTermNamed(ast)) {
12253
+ SUBRULE(iri2, ast);
12254
+ } else if (F3.isTermLiteral(ast)) {
12255
+ SUBRULE(rdfLiteral, ast);
12256
+ } else if (F3.isTermBlank(ast)) {
12257
+ SUBRULE(blankNode, ast);
12258
+ }
12453
12259
  }
12454
12260
  };
12455
- var bind2 = {
12456
- name: "bind",
12457
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12458
- const bind3 = CONSUME(bind);
12459
- CONSUME(symbols_exports.LParen);
12460
- const expressionVal = SUBRULE(expression, void 0);
12461
- CONSUME(as);
12462
- const variable = SUBRULE(var_, void 0);
12463
- const close = CONSUME(symbols_exports.RParen);
12464
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12465
- },
12466
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12467
- F3.printFilter(ast, () => PRINT_WORD("BIND", "("));
12468
- SUBRULE(expression, ast.expression, void 0);
12469
- F3.printFilter(ast, () => PRINT_WORD("AS"));
12470
- SUBRULE(var_, ast.variable, void 0);
12471
- F3.printFilter(ast, () => PRINT_WORD(")"));
12472
- }
12261
+
12262
+ // ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
12263
+ var path = {
12264
+ name: "path",
12265
+ impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
12473
12266
  };
12474
- var inlineData = {
12475
- name: "inlineData",
12476
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12477
- const values3 = CONSUME(values2);
12478
- const datablock = SUBRULE(dataBlock, void 0);
12479
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12480
- },
12481
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12482
- const variables = Object.keys(ast.values[0]);
12483
- F3.printFilter(ast, () => {
12484
- PRINT_WORD("VALUES", "(");
12485
- for (const variable of variables) {
12486
- PRINT_WORD(`?${variable}`);
12487
- }
12488
- PRINT_WORD(")", "{");
12489
- });
12490
- for (const mapping of ast.values) {
12491
- F3.printFilter(ast, () => PRINT_WORD("("));
12492
- for (const variable of variables) {
12493
- if (mapping[variable] === void 0) {
12494
- F3.printFilter(ast, () => PRINT_WORD("UNDEF"));
12495
- } else {
12496
- SUBRULE(graphNodePath, mapping[variable], void 0);
12267
+ var pathGenerator = {
12268
+ name: "path",
12269
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F3 }, braces = true) => {
12270
+ if (F3.isTerm(ast) && F3.isTermNamed(ast)) {
12271
+ SUBRULE(iri2, ast);
12272
+ } else {
12273
+ F3.printFilter(ast, () => braces && PRINT("("));
12274
+ switch (ast.subType) {
12275
+ case "|":
12276
+ case "/": {
12277
+ const [head2, ...tail] = ast.items;
12278
+ SUBRULE(pathGenerator, head2, braces);
12279
+ for (const val of tail) {
12280
+ F3.printFilter(ast, () => PRINT(ast.subType));
12281
+ SUBRULE(pathGenerator, val, braces);
12282
+ }
12283
+ break;
12497
12284
  }
12285
+ case "^":
12286
+ F3.printFilter(ast, () => PRINT("^"));
12287
+ SUBRULE(pathGenerator, ast.items[0], braces);
12288
+ break;
12289
+ case "?":
12290
+ case "*":
12291
+ case "+":
12292
+ SUBRULE(pathGenerator, ast.items[0], braces);
12293
+ F3.printFilter(ast, () => PRINT(ast.subType));
12294
+ break;
12295
+ case "!":
12296
+ F3.printFilter(ast, () => PRINT("!"));
12297
+ F3.printFilter(ast, () => PRINT("("));
12298
+ SUBRULE(pathGenerator, ast.items[0], false);
12299
+ F3.printFilter(ast, () => PRINT(")"));
12300
+ break;
12498
12301
  }
12499
- F3.printFilter(ast, () => PRINT_WORD(")"));
12302
+ F3.printFilter(ast, () => braces && PRINT(")"));
12500
12303
  }
12501
- F3.printFilter(ast, () => PRINT_WORD("}"));
12502
12304
  }
12503
12305
  };
12504
- var dataBlock = {
12505
- name: "dataBlock",
12506
- impl: ({ SUBRULE, OR }) => () => OR([
12507
- { ALT: () => SUBRULE(inlineDataOneVar, void 0) },
12508
- { ALT: () => SUBRULE(inlineDataFull, void 0) }
12306
+ function pathChainHelper(name, SEP, subType, subRule) {
12307
+ return {
12308
+ name,
12309
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
12310
+ const head2 = SUBRULE1(subRule);
12311
+ let tailEnd = head2;
12312
+ const tail = [];
12313
+ MANY(() => {
12314
+ CONSUME(SEP);
12315
+ tailEnd = SUBRULE2(subRule);
12316
+ tail.push(tailEnd);
12317
+ });
12318
+ return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12319
+ }
12320
+ };
12321
+ }
12322
+ var pathEltOrInverse = {
12323
+ name: "pathEltOrInverse",
12324
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
12325
+ { ALT: () => SUBRULE1(pathElt) },
12326
+ { ALT: () => {
12327
+ const hat2 = CONSUME(symbols_exports.hat);
12328
+ const item = SUBRULE2(pathElt);
12329
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12330
+ } }
12509
12331
  ])
12510
12332
  };
12511
- var inlineDataOneVar = {
12512
- name: "inlineDataOneVar",
12513
- impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12514
- const res = [];
12515
- const varVal = SUBRULE(var_, void 0);
12516
- CONSUME(symbols_exports.LCurly);
12517
- MANY(() => {
12518
- const value = SUBRULE(dataBlockValue, void 0);
12519
- ACTION(() => {
12520
- res.push({ [varVal.value]: value });
12521
- });
12522
- });
12523
- const close = CONSUME(symbols_exports.RCurly);
12524
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
12333
+ var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
12334
+ var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
12335
+ var pathElt = {
12336
+ name: "pathElt",
12337
+ impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12338
+ const item = SUBRULE(pathPrimary);
12339
+ const modification = OPTION(() => SUBRULE(pathMod));
12340
+ return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12525
12341
  }
12526
12342
  };
12527
- var inlineDataFull = {
12528
- name: "inlineDataFull",
12529
- impl: ({
12530
- ACTION,
12531
- OR,
12532
- MANY1,
12533
- MANY2,
12534
- MANY3,
12535
- MANY4,
12536
- SUBRULE,
12537
- CONSUME1,
12538
- CONSUME2
12539
- }) => (C) => {
12540
- const res = [];
12541
- const vars = [];
12343
+ var pathMod = {
12344
+ name: "pathMod",
12345
+ impl: ({ CONSUME, OR }) => () => OR([
12346
+ { ALT: () => CONSUME(symbols_exports.question) },
12347
+ { ALT: () => CONSUME(symbols_exports.star) },
12348
+ { ALT: () => CONSUME(symbols_exports.opPlus) }
12349
+ ])
12350
+ };
12351
+ var pathPrimary = {
12352
+ name: "pathPrimary",
12353
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12354
+ { ALT: () => SUBRULE(iri2) },
12355
+ { ALT: () => SUBRULE(verbA) },
12356
+ { ALT: () => SUBRULE(pathNegatedPropertySet) },
12357
+ { ALT: () => {
12358
+ CONSUME(symbols_exports.LParen);
12359
+ const resRecursive = SUBRULE(path);
12360
+ CONSUME(symbols_exports.RParen);
12361
+ return resRecursive;
12362
+ } }
12363
+ ])
12364
+ };
12365
+ var pathNegatedPropertySet = {
12366
+ name: "pathNegatedPropertySet",
12367
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
12368
+ const exclamation2 = CONSUME(symbols_exports.exclamation);
12542
12369
  return OR([
12543
12370
  { ALT: () => {
12544
- const nil2 = CONSUME1(terminals_exports.nil);
12545
- CONSUME1(symbols_exports.LCurly);
12546
- MANY1(() => {
12547
- CONSUME2(terminals_exports.nil);
12548
- res.push({});
12549
- });
12550
- const close = CONSUME1(symbols_exports.RCurly);
12551
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12371
+ const noAlternative = SUBRULE1(pathOneInPropertySet);
12372
+ return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12552
12373
  } },
12553
12374
  { ALT: () => {
12554
- const open = CONSUME1(symbols_exports.LParen);
12555
- MANY2(() => {
12556
- vars.push(SUBRULE(var_, void 0));
12375
+ const open = CONSUME(symbols_exports.LParen);
12376
+ const head2 = SUBRULE2(pathOneInPropertySet);
12377
+ const tail = [];
12378
+ MANY(() => {
12379
+ CONSUME(symbols_exports.pipe);
12380
+ const item = SUBRULE3(pathOneInPropertySet);
12381
+ tail.push(item);
12557
12382
  });
12558
- CONSUME1(symbols_exports.RParen);
12559
- CONSUME2(symbols_exports.LCurly);
12560
- MANY3(() => {
12561
- let parsedValues = 0;
12562
- const currentRow = {};
12563
- CONSUME2(symbols_exports.LParen);
12564
- MANY4(() => {
12565
- if (parsedValues >= vars.length) {
12566
- throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12567
- }
12568
- const value = SUBRULE(dataBlockValue, void 0);
12569
- ACTION(() => {
12570
- currentRow[vars[parsedValues].value] = value;
12571
- parsedValues++;
12572
- });
12573
- });
12574
- CONSUME2(symbols_exports.RParen);
12575
- ACTION(() => {
12576
- res.push(currentRow);
12577
- if (vars.length !== parsedValues) {
12578
- throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
12579
- }
12580
- });
12383
+ const close = CONSUME(symbols_exports.RParen);
12384
+ return ACTION(() => {
12385
+ const F3 = C.factory;
12386
+ if (tail.length === 0) {
12387
+ return F3.path("!", [head2], F3.sourceLocation(exclamation2, close));
12388
+ }
12389
+ return F3.path(
12390
+ "!",
12391
+ [F3.path("|", [head2, ...tail], F3.sourceLocation(open, close))],
12392
+ F3.sourceLocation(exclamation2, close)
12393
+ );
12581
12394
  });
12582
- const close = CONSUME2(symbols_exports.RCurly);
12583
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
12584
12395
  } }
12585
12396
  ]);
12586
12397
  }
12587
12398
  };
12588
- var dataBlockValue = {
12589
- name: "dataBlockValue",
12590
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12591
- { ALT: () => SUBRULE(iri2, void 0) },
12592
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
12593
- { ALT: () => SUBRULE(numericLiteral, void 0) },
12594
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
12399
+ var pathOneInPropertySet = {
12400
+ name: "pathOneInPropertySet",
12401
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
12402
+ { ALT: () => SUBRULE1(iri2) },
12403
+ { ALT: () => SUBRULE1(verbA) },
12595
12404
  { ALT: () => {
12596
- CONSUME(undef);
12597
- return void 0;
12405
+ const hat2 = CONSUME(symbols_exports.hat);
12406
+ const item = OR2([
12407
+ { ALT: () => SUBRULE2(iri2) },
12408
+ { ALT: () => SUBRULE2(verbA) }
12409
+ ]);
12410
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12598
12411
  } }
12599
12412
  ])
12600
12413
  };
12601
- var minusGraphPattern = {
12602
- name: "minusGraphPattern",
12603
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12604
- const minus2 = CONSUME(minus);
12605
- const group = SUBRULE(groupGraphPattern, void 0);
12606
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
12607
- },
12608
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12609
- F3.printFilter(ast, () => PRINT_WORD("MINUS"));
12610
- SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc), void 0);
12611
- }
12612
- };
12613
- var groupOrUnionGraphPattern = {
12614
- name: "groupOrUnionGraphPattern",
12615
- impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
12616
- const groups = [];
12617
- const group = SUBRULE1(groupGraphPattern, void 0);
12618
- groups.push(group);
12619
- MANY(() => {
12620
- CONSUME(union);
12621
- const group2 = SUBRULE2(groupGraphPattern, void 0);
12622
- groups.push(group2);
12623
- });
12624
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
12625
- groups,
12626
- C.factory.sourceLocation(group, groups.at(-1))
12627
- ));
12628
- },
12629
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12630
- if (F3.isPatternUnion(ast)) {
12631
- const [head2, ...tail] = ast.patterns;
12632
- SUBRULE(groupGraphPattern, head2, void 0);
12633
- for (const pattern of tail) {
12634
- F3.printFilter(ast, () => PRINT_WORD("UNION"));
12635
- SUBRULE(groupGraphPattern, pattern, void 0);
12636
- }
12637
- } else {
12638
- SUBRULE(groupGraphPattern, ast, void 0);
12639
- }
12640
- }
12641
- };
12642
- var filter3 = {
12643
- name: "filter",
12644
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12645
- const filterToken = CONSUME(filter2);
12646
- const expression2 = SUBRULE(constraint, void 0);
12647
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
12648
- },
12649
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12650
- F3.printFilter(ast, () => PRINT_WORD("FILTER ("));
12651
- SUBRULE(expression, ast.expression, void 0);
12652
- F3.printFilter(ast, () => PRINT_WORD(")"));
12653
- }
12654
- };
12655
- var constraint = {
12656
- name: "constraint",
12657
- impl: ({ SUBRULE, OR }) => () => OR([
12658
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
12659
- { ALT: () => SUBRULE(builtInCall, void 0) },
12660
- { ALT: () => SUBRULE(functionCall, void 0) }
12661
- ])
12662
- };
12663
- var functionCall = {
12664
- name: "functionCall",
12665
- impl: ({ ACTION, SUBRULE }) => (C) => {
12666
- const func = SUBRULE(iri2, void 0);
12667
- const args = SUBRULE(argList, void 0);
12668
- return ACTION(() => C.factory.expressionFunctionCall(
12669
- func,
12670
- args.val.args,
12671
- args.val.distinct,
12672
- C.factory.sourceLocation(func, args)
12673
- ));
12674
- }
12675
- };
12676
12414
 
12677
- // ../rules-sparql-1-1/lib/expressionHelpers.ts
12678
- function funcExpr1(func) {
12679
- return {
12680
- name: unCapitalize(func.name),
12681
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12682
- const operator = CONSUME(func);
12683
- CONSUME(symbols_exports.LParen);
12684
- const arg = SUBRULE(expression, void 0);
12685
- const close = CONSUME(symbols_exports.RParen);
12686
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12687
- }
12415
+ // ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
12416
+ function triplesDotSeperated(triplesSameSubjectSubrule) {
12417
+ return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
12418
+ const triples = [];
12419
+ let parsedDot = true;
12420
+ let dotToken;
12421
+ AT_LEAST_ONE({
12422
+ GATE: () => parsedDot,
12423
+ DEF: () => {
12424
+ parsedDot = false;
12425
+ const template = SUBRULE(triplesSameSubjectSubrule);
12426
+ ACTION(() => {
12427
+ triples.push(...template);
12428
+ });
12429
+ OPTION(() => {
12430
+ dotToken = CONSUME(symbols_exports.dot);
12431
+ parsedDot = true;
12432
+ });
12433
+ }
12434
+ });
12435
+ return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12688
12436
  };
12689
12437
  }
12690
- function funcExpr2(func) {
12691
- return {
12692
- name: unCapitalize(func.name),
12693
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
12694
- const operator = CONSUME(func);
12695
- CONSUME(symbols_exports.LParen);
12696
- const arg1 = SUBRULE1(expression, void 0);
12697
- CONSUME(symbols_exports.comma);
12698
- const arg2 = SUBRULE2(expression, void 0);
12699
- const close = CONSUME(symbols_exports.RParen);
12700
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12438
+ var triplesBlock = {
12439
+ name: "triplesBlock",
12440
+ impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12441
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F3 }) => {
12442
+ for (const [index, triple] of ast.triples.entries()) {
12443
+ HANDLE_LOC(triple, () => {
12444
+ const nextTriple = ast.triples.at(index);
12445
+ if (F3.isTripleCollection(triple)) {
12446
+ SUBRULE(graphNodePath, triple);
12447
+ F3.printFilter(triple, () => PRINT_WORD("."));
12448
+ } else {
12449
+ SUBRULE(graphNodePath, triple.subject);
12450
+ if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
12451
+ SUBRULE(varOrTerm, triple.predicate);
12452
+ } else {
12453
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12454
+ }
12455
+ SUBRULE(graphNodePath, triple.object);
12456
+ if (nextTriple === void 0 || F3.isTripleCollection(nextTriple) || !F3.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12457
+ F3.printFilter(ast, () => PRINT_WORD("."));
12458
+ } else if (F3.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12459
+ F3.printFilter(ast, () => PRINT_WORD(","));
12460
+ } else {
12461
+ F3.printFilter(ast, () => PRINT_WORD(";"));
12462
+ }
12463
+ }
12464
+ });
12701
12465
  }
12702
- };
12703
- }
12704
- function funcExpr3(func) {
12466
+ }
12467
+ };
12468
+ function triplesSameSubjectImpl(name, allowPaths) {
12705
12469
  return {
12706
- name: unCapitalize(func.name),
12707
- impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
12708
- const operator = CONSUME(func);
12709
- CONSUME(symbols_exports.LParen);
12710
- const arg1 = SUBRULE1(expression, void 0);
12711
- CONSUME1(symbols_exports.comma);
12712
- const arg2 = SUBRULE2(expression, void 0);
12713
- CONSUME2(symbols_exports.comma);
12714
- const arg3 = SUBRULE3(expression, void 0);
12715
- const close = CONSUME(symbols_exports.RParen);
12716
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12717
- }
12470
+ name,
12471
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12472
+ { ALT: () => {
12473
+ const subject = SUBRULE(varOrTerm);
12474
+ const res = SUBRULE(
12475
+ allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
12476
+ ACTION(() => C.factory.dematerialized(subject))
12477
+ );
12478
+ return ACTION(() => {
12479
+ if (res.length > 0) {
12480
+ res[0].subject = subject;
12481
+ res[0].loc = C.factory.sourceLocation(subject, res[0]);
12482
+ }
12483
+ return res;
12484
+ });
12485
+ } },
12486
+ { ALT: () => {
12487
+ const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12488
+ const restNode = SUBRULE(
12489
+ allowPaths ? propertyListPath : propertyList,
12490
+ ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
12491
+ );
12492
+ return ACTION(() => {
12493
+ if (restNode.length === 0) {
12494
+ return [subjectNode];
12495
+ }
12496
+ restNode[0].subject = subjectNode;
12497
+ restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12498
+ return restNode;
12499
+ });
12500
+ } }
12501
+ ])
12718
12502
  };
12719
12503
  }
12720
- function funcVar1(func) {
12504
+ var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
12505
+ var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
12506
+ var triplesTemplate = {
12507
+ name: "triplesTemplate",
12508
+ impl: triplesDotSeperated(triplesSameSubject)
12509
+ };
12510
+ function propertyListImpl(name, allowPaths) {
12721
12511
  return {
12722
- name: unCapitalize(func.name),
12723
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12724
- const operator = CONSUME(func);
12725
- CONSUME(symbols_exports.LParen);
12726
- const arg = SUBRULE(var_, void 0);
12727
- const close = CONSUME(symbols_exports.RParen);
12728
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12729
- }
12512
+ name,
12513
+ impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
12730
12514
  };
12731
12515
  }
12732
- function funcExprOrNil1(func) {
12516
+ var propertyList = propertyListImpl("propertyList", false);
12517
+ var propertyListPath = propertyListImpl("propertyListPath", true);
12518
+ function propertyListNotEmptyImplementation(name, allowPaths) {
12733
12519
  return {
12734
- name: unCapitalize(func.name),
12735
- impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
12736
- const operator = CONSUME(func);
12737
- return OR([
12738
- { ALT: () => {
12739
- CONSUME(symbols_exports.LParen);
12740
- const arg = SUBRULE(expression, void 0);
12741
- const close = CONSUME(symbols_exports.RParen);
12742
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12743
- } },
12744
- { ALT: () => {
12745
- const nil2 = CONSUME(terminals_exports.nil);
12746
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12747
- } }
12748
- ]);
12520
+ name,
12521
+ impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
12522
+ const result = [];
12523
+ let parsedSemi = true;
12524
+ AT_LEAST_ONE({
12525
+ GATE: () => parsedSemi,
12526
+ DEF: () => {
12527
+ parsedSemi = false;
12528
+ const predicate = allowPaths ? OR1([
12529
+ { ALT: () => SUBRULE1(verbPath) },
12530
+ { ALT: () => SUBRULE1(verbSimple) }
12531
+ ]) : SUBRULE1(verb);
12532
+ const triples = SUBRULE1(
12533
+ allowPaths ? objectListPath : objectList,
12534
+ subject,
12535
+ predicate
12536
+ );
12537
+ MANY2(() => {
12538
+ CONSUME(symbols_exports.semi);
12539
+ parsedSemi = true;
12540
+ });
12541
+ ACTION(() => {
12542
+ result.push(...triples);
12543
+ });
12544
+ }
12545
+ });
12546
+ return result;
12749
12547
  }
12750
12548
  };
12751
12549
  }
12752
- function funcNil1(func) {
12550
+ var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12551
+ var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12552
+ var verbPath = {
12553
+ name: "verbPath",
12554
+ impl: ({ SUBRULE }) => () => SUBRULE(path)
12555
+ };
12556
+ var verbSimple = {
12557
+ name: "verbSimple",
12558
+ impl: ({ SUBRULE }) => () => SUBRULE(var_)
12559
+ };
12560
+ function objectListImpl(name, allowPaths) {
12753
12561
  return {
12754
- name: unCapitalize(func.name),
12755
- impl: ({ ACTION, CONSUME }) => (C) => {
12756
- const operator = CONSUME(func);
12757
- const nil2 = CONSUME(terminals_exports.nil);
12758
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12562
+ name,
12563
+ impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
12564
+ const objects = [];
12565
+ AT_LEAST_ONE_SEP({
12566
+ SEP: symbols_exports.comma,
12567
+ DEF: () => {
12568
+ const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
12569
+ ACTION(() => {
12570
+ objects.push(objectTriple);
12571
+ });
12572
+ }
12573
+ });
12574
+ return objects;
12759
12575
  }
12760
12576
  };
12761
12577
  }
12762
- function funcExprList1(func) {
12578
+ var objectList = objectListImpl("objectList", false);
12579
+ var objectListPath = objectListImpl("objectListPath", true);
12580
+ function objectImpl(name, allowPaths) {
12763
12581
  return {
12764
- name: unCapitalize(func.name),
12765
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12766
- const operator = CONSUME(func);
12767
- const args = SUBRULE(expressionList, void 0);
12768
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12582
+ name,
12583
+ impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12584
+ const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12585
+ return ACTION(() => C.factory.triple(subject, predicate, node));
12769
12586
  }
12770
12587
  };
12771
12588
  }
12772
- function funcExpr2or3(func) {
12589
+ var object = objectImpl("object", false);
12590
+ var objectPath = objectImpl("objectPath", true);
12591
+ function collectionImpl(name, allowPaths) {
12773
12592
  return {
12774
- name: unCapitalize(func.name),
12775
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
12776
- const operator = CONSUME(func);
12777
- CONSUME(symbols_exports.LParen);
12778
- const arg1 = SUBRULE1(expression, void 0);
12779
- CONSUME1(symbols_exports.comma);
12780
- const arg2 = SUBRULE2(expression, void 0);
12781
- const arg3 = OPTION(() => {
12782
- CONSUME2(symbols_exports.comma);
12783
- return SUBRULE3(expression, void 0);
12593
+ name,
12594
+ impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12595
+ const terms = [];
12596
+ const startToken = CONSUME(symbols_exports.LParen);
12597
+ AT_LEAST_ONE(() => {
12598
+ terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
12784
12599
  });
12785
- const close = CONSUME(symbols_exports.RParen);
12786
- return ACTION(() => C.factory.expressionOperation(
12787
- operator.image,
12788
- arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
12789
- C.factory.sourceLocation(operator, close)
12790
- ));
12600
+ const endToken = CONSUME(symbols_exports.RParen);
12601
+ return ACTION(() => {
12602
+ const F3 = C.factory;
12603
+ const triples = [];
12604
+ const predFirst = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12605
+ const predRest = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12606
+ const predNil = F3.namedNode(F3.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12607
+ const listHead = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12608
+ let iterHead = listHead;
12609
+ for (const [index, term] of terms.entries()) {
12610
+ const lastInList = index === terms.length - 1;
12611
+ const headTriple = F3.triple(
12612
+ iterHead,
12613
+ predFirst,
12614
+ term
12615
+ );
12616
+ triples.push(headTriple);
12617
+ if (lastInList) {
12618
+ const nilTriple = F3.triple(iterHead, predRest, predNil);
12619
+ triples.push(nilTriple);
12620
+ } else {
12621
+ const tail = F3.blankNode(void 0, F3.sourceLocationNoMaterialize());
12622
+ const linkTriple = F3.triple(iterHead, predRest, tail);
12623
+ triples.push(linkTriple);
12624
+ iterHead = tail;
12625
+ }
12626
+ }
12627
+ return F3.tripleCollectionList(listHead, triples, F3.sourceLocation(startToken, endToken));
12628
+ });
12629
+ },
12630
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12631
+ F3.printFilter(ast, () => PRINT_WORD("("));
12632
+ for (const [idx, triple] of ast.triples.entries()) {
12633
+ if (idx % 2 === 0) {
12634
+ SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
12635
+ }
12636
+ }
12637
+ F3.printFilter(ast, () => PRINT_WORD(")"));
12791
12638
  }
12792
12639
  };
12793
12640
  }
12794
- function funcExpr3or4(func) {
12641
+ var collection = collectionImpl("collection", false);
12642
+ var collectionPath = collectionImpl("collectionPath", true);
12643
+ function triplesNodeImpl(name, allowPaths) {
12795
12644
  return {
12796
- name: unCapitalize(func.name),
12797
- impl: ({
12798
- ACTION,
12799
- CONSUME,
12800
- SUBRULE1,
12801
- SUBRULE2,
12802
- SUBRULE3,
12803
- SUBRULE4,
12804
- CONSUME1,
12805
- OPTION,
12806
- CONSUME2,
12807
- CONSUME3
12808
- }) => (C) => {
12809
- const operator = CONSUME(func);
12810
- CONSUME(symbols_exports.LParen);
12811
- const arg1 = SUBRULE1(expression, void 0);
12812
- CONSUME1(symbols_exports.comma);
12813
- const arg2 = SUBRULE2(expression, void 0);
12814
- CONSUME2(symbols_exports.comma);
12815
- const arg3 = SUBRULE3(expression, void 0);
12816
- const arg4 = OPTION(() => {
12817
- CONSUME3(symbols_exports.comma);
12818
- return SUBRULE4(expression, void 0);
12819
- });
12820
- const close = CONSUME(symbols_exports.RParen);
12821
- return ACTION(() => C.factory.expressionOperation(
12822
- operator.image,
12823
- arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
12824
- C.factory.sourceLocation(operator, close)
12825
- ));
12826
- }
12645
+ name,
12646
+ impl: ({ SUBRULE, OR }) => () => OR([
12647
+ { ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
12648
+ { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
12649
+ ]),
12650
+ gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
12827
12651
  };
12828
12652
  }
12829
- function funcGroupGraphPattern(func) {
12653
+ var triplesNode = triplesNodeImpl("triplesNode", false);
12654
+ var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12655
+ function blankNodePropertyListImpl(name, allowPaths) {
12656
+ const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
12830
12657
  return {
12831
- name: unCapitalize(func.name),
12658
+ name,
12832
12659
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12833
- const operator = CONSUME(func);
12834
- const group = SUBRULE(groupGraphPattern, void 0);
12835
- return ACTION(() => C.factory.expressionPatternOperation(
12836
- operator.image,
12837
- group,
12838
- C.factory.sourceLocation(operator, group)
12660
+ const startToken = CONSUME(symbols_exports.LSquare);
12661
+ const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12662
+ const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12663
+ const endToken = CONSUME(symbols_exports.RSquare);
12664
+ return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12665
+ blankNode2,
12666
+ propList,
12667
+ C.factory.sourceLocation(startToken, endToken)
12839
12668
  ));
12669
+ },
12670
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F3 }) => {
12671
+ F3.printFilter(ast, () => PRINT("["));
12672
+ for (const triple of ast.triples) {
12673
+ HANDLE_LOC(triple, () => {
12674
+ if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
12675
+ SUBRULE(varOrTerm, triple.predicate);
12676
+ } else {
12677
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12678
+ }
12679
+ SUBRULE(graphNodePath, triple.object);
12680
+ F3.printFilter(ast, () => PRINT_WORD(";"));
12681
+ });
12682
+ }
12683
+ F3.printFilter(ast, () => PRINT("]"));
12840
12684
  }
12841
12685
  };
12842
12686
  }
12843
- function baseAggregateFunc(func) {
12687
+ var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12688
+ var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12689
+ function graphNodeImpl(name, allowPaths) {
12690
+ const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
12844
12691
  return {
12845
- name: unCapitalize(func.name),
12846
- impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
12847
- const operator = CONSUME(func);
12848
- CONSUME(symbols_exports.LParen);
12849
- const distinct2 = OPTION(() => CONSUME(distinct));
12850
- const expr1 = SUBRULE(expression, void 0);
12851
- const close = CONSUME(symbols_exports.RParen);
12852
- return ACTION(() => C.factory.aggregate(
12853
- operator.image,
12854
- distinct2 !== void 0,
12855
- expr1,
12856
- void 0,
12857
- C.factory.sourceLocation(operator, close)
12858
- ));
12692
+ name,
12693
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12694
+ { ALT: () => SUBRULE(varOrTerm) },
12695
+ {
12696
+ GATE: () => C.parseMode.has("canCreateBlankNodes"),
12697
+ ALT: () => SUBRULE(triplesNodeRule)
12698
+ }
12699
+ ]),
12700
+ gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12701
+ if (F3.isTerm(ast)) {
12702
+ SUBRULE(varOrTerm, ast);
12703
+ } else {
12704
+ SUBRULE(triplesNodeRule, ast);
12705
+ }
12859
12706
  }
12860
12707
  };
12861
12708
  }
12709
+ var graphNode = graphNodeImpl("graphNode", false);
12710
+ var graphNodePath = graphNodeImpl("graphNodePath", true);
12862
12711
 
12863
- // ../rules-sparql-1-1/lib/grammar/builtIn.ts
12864
- var builtInStr = funcExpr1(BuildinCalls_exports.str);
12865
- var builtInLang = funcExpr1(BuildinCalls_exports.lang);
12866
- var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
12867
- var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
12868
- var builtInBound = funcVar1(BuildinCalls_exports.bound);
12869
- var builtInIri = funcExpr1(BuildinCalls_exports.iri);
12870
- var builtInUri = funcExpr1(BuildinCalls_exports.uri);
12871
- var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
12872
- var builtInRand = funcNil1(BuildinCalls_exports.rand);
12873
- var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
12874
- var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
12875
- var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
12876
- var builtInRound = funcExpr1(BuildinCalls_exports.round);
12877
- var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
12878
- var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
12879
- var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
12880
- var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
12881
- var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
12882
- var builtInContains = funcExpr2(BuildinCalls_exports.contains);
12883
- var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
12884
- var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
12885
- var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
12886
- var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
12887
- var builtInYear = funcExpr1(BuildinCalls_exports.year);
12888
- var builtInMonth = funcExpr1(BuildinCalls_exports.month);
12889
- var builtInDay = funcExpr1(BuildinCalls_exports.day);
12890
- var builtInHours = funcExpr1(BuildinCalls_exports.hours);
12891
- var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
12892
- var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
12893
- var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
12894
- var builtInTz = funcExpr1(BuildinCalls_exports.tz);
12895
- var builtInNow = funcNil1(BuildinCalls_exports.now);
12896
- var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
12897
- var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
12898
- var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
12899
- var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
12900
- var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
12901
- var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
12902
- var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
12903
- var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
12904
- var builtInIf = funcExpr3(BuildinCalls_exports.if_);
12905
- var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
12906
- var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
12907
- var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
12908
- var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
12909
- var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
12910
- var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
12911
- var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
12912
- var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
12913
- function builtInCallList(SUBRULE) {
12914
- return [
12915
- { ALT: () => SUBRULE(aggregate, void 0) },
12916
- { ALT: () => SUBRULE(builtInStr, void 0) },
12917
- { ALT: () => SUBRULE(builtInLang, void 0) },
12918
- { ALT: () => SUBRULE(builtInLangmatches, void 0) },
12919
- { ALT: () => SUBRULE(builtInDatatype, void 0) },
12920
- { ALT: () => SUBRULE(builtInBound, void 0) },
12921
- { ALT: () => SUBRULE(builtInIri, void 0) },
12922
- { ALT: () => SUBRULE(builtInUri, void 0) },
12923
- { ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
12924
- { ALT: () => SUBRULE(builtInRand, void 0) },
12925
- { ALT: () => SUBRULE(builtInAbs, void 0) },
12926
- { ALT: () => SUBRULE(builtInCeil, void 0) },
12927
- { ALT: () => SUBRULE(builtInFloor, void 0) },
12928
- { ALT: () => SUBRULE(builtInRound, void 0) },
12929
- { ALT: () => SUBRULE(builtInConcat, void 0) },
12930
- { ALT: () => SUBRULE(substringExpression, void 0) },
12931
- { ALT: () => SUBRULE(builtInStrlen, void 0) },
12932
- { ALT: () => SUBRULE(strReplaceExpression, void 0) },
12933
- { ALT: () => SUBRULE(builtInUcase, void 0) },
12934
- { ALT: () => SUBRULE(builtInLcase, void 0) },
12935
- { ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
12936
- { ALT: () => SUBRULE(builtInContains, void 0) },
12937
- { ALT: () => SUBRULE(builtInStrstarts, void 0) },
12938
- { ALT: () => SUBRULE(builtInStrends, void 0) },
12939
- { ALT: () => SUBRULE(builtInStrbefore, void 0) },
12940
- { ALT: () => SUBRULE(builtInStrafter, void 0) },
12941
- { ALT: () => SUBRULE(builtInYear, void 0) },
12942
- { ALT: () => SUBRULE(builtInMonth, void 0) },
12943
- { ALT: () => SUBRULE(builtInDay, void 0) },
12944
- { ALT: () => SUBRULE(builtInHours, void 0) },
12945
- { ALT: () => SUBRULE(builtInMinutes, void 0) },
12946
- { ALT: () => SUBRULE(builtInSeconds, void 0) },
12947
- { ALT: () => SUBRULE(builtInTimezone, void 0) },
12948
- { ALT: () => SUBRULE(builtInTz, void 0) },
12949
- { ALT: () => SUBRULE(builtInNow, void 0) },
12950
- { ALT: () => SUBRULE(builtInUuid, void 0) },
12951
- { ALT: () => SUBRULE(builtInStruuid, void 0) },
12952
- { ALT: () => SUBRULE(builtInMd5, void 0) },
12953
- { ALT: () => SUBRULE(builtInSha1, void 0) },
12954
- { ALT: () => SUBRULE(builtInSha256, void 0) },
12955
- { ALT: () => SUBRULE(builtInSha384, void 0) },
12956
- { ALT: () => SUBRULE(builtInSha512, void 0) },
12957
- { ALT: () => SUBRULE(builtInCoalesce, void 0) },
12958
- { ALT: () => SUBRULE(builtInIf, void 0) },
12959
- { ALT: () => SUBRULE(builtInStrlang, void 0) },
12960
- { ALT: () => SUBRULE(builtInStrdt, void 0) },
12961
- { ALT: () => SUBRULE(builtInSameterm, void 0) },
12962
- { ALT: () => SUBRULE(builtInIsiri, void 0) },
12963
- { ALT: () => SUBRULE(builtInIsuri, void 0) },
12964
- { ALT: () => SUBRULE(builtInIsblank, void 0) },
12965
- { ALT: () => SUBRULE(builtInIsliteral, void 0) },
12966
- { ALT: () => SUBRULE(builtInIsnumeric, void 0) },
12967
- { ALT: () => SUBRULE(regexExpression, void 0) },
12968
- { ALT: () => SUBRULE(existsFunc, void 0) },
12969
- { ALT: () => SUBRULE(notExistsFunc, void 0) }
12970
- ];
12971
- }
12972
- var builtInCall = {
12973
- name: "builtInCall",
12974
- impl: ({ OR, SUBRULE, cache }) => () => {
12975
- const cached = cache.get(builtInCall);
12976
- if (cached) {
12977
- return OR(cached);
12978
- }
12979
- const builtIns = builtInCallList(SUBRULE);
12980
- cache.set(builtInCall, builtIns);
12981
- return OR(builtIns);
12712
+ // ../rules-sparql-1-1/lib/grammar/whereClause.ts
12713
+ var whereClause = {
12714
+ name: "whereClause",
12715
+ impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12716
+ const where2 = OPTION(() => CONSUME(where));
12717
+ const group = SUBRULE(groupGraphPattern);
12718
+ return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12719
+ },
12720
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12721
+ F3.printFilter(ast, () => PRINT_WORD("WHERE"));
12722
+ SUBRULE(groupGraphPattern, ast.val);
12982
12723
  }
12983
12724
  };
12984
- var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
12985
- var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
12986
- var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
12987
- var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
12988
- var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
12989
- var aggregateCount = {
12990
- name: unCapitalize(BuildinCalls_exports.count.name),
12991
- impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
12992
- const operatorToken = CONSUME(BuildinCalls_exports.count);
12993
- CONSUME(symbols_exports.LParen);
12994
- const distinctToken = OPTION(() => CONSUME(distinct));
12995
- const expressionVal = OR([
12996
- { ALT: () => {
12997
- const starToken = CONSUME(symbols_exports.star);
12998
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12999
- } },
13000
- { ALT: () => SUBRULE(expression, void 0) }
12725
+ var groupGraphPattern = {
12726
+ name: "groupGraphPattern",
12727
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12728
+ const open = CONSUME(symbols_exports.LCurly);
12729
+ const patterns = OR([
12730
+ { ALT: () => [SUBRULE(subSelect)] },
12731
+ { ALT: () => SUBRULE(groupGraphPatternSub) }
13001
12732
  ]);
13002
- const closeToken = CONSUME(symbols_exports.RParen);
13003
- return ACTION(() => {
13004
- const F3 = C.factory;
13005
- if (C.factory.isWildcard(expressionVal)) {
13006
- return F3.aggregate(
13007
- operatorToken.image,
13008
- Boolean(distinctToken),
13009
- expressionVal,
13010
- void 0,
13011
- C.factory.sourceLocation(operatorToken, closeToken)
13012
- );
12733
+ const close = CONSUME(symbols_exports.RCurly);
12734
+ return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12735
+ },
12736
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12737
+ F3.printFilter(ast, () => PRINT_WORD("{"));
12738
+ for (const pattern of ast.patterns) {
12739
+ SUBRULE(generatePattern, pattern);
12740
+ }
12741
+ F3.printFilter(ast, () => PRINT_WORD("}"));
12742
+ }
12743
+ };
12744
+ var generatePattern = {
12745
+ name: "generatePattern",
12746
+ gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
12747
+ if (ast.type === "query") {
12748
+ SUBRULE(query, F3.querySelect({
12749
+ context: [],
12750
+ datasets: F3.datasetClauses([], F3.sourceLocation()),
12751
+ where: ast.where,
12752
+ variables: ast.variables,
12753
+ solutionModifiers: ast.solutionModifiers,
12754
+ values: ast.values,
12755
+ distinct: ast.distinct,
12756
+ reduced: ast.reduced
12757
+ }, ast.loc));
12758
+ } else if (ast.subType === "group") {
12759
+ SUBRULE(groupGraphPattern, ast);
12760
+ } else if (ast.subType === "bgp") {
12761
+ SUBRULE(triplesBlock, ast);
12762
+ } else {
12763
+ SUBRULE(graphPatternNotTriples, ast);
12764
+ }
12765
+ }
12766
+ };
12767
+ var groupGraphPatternSub = {
12768
+ name: "groupGraphPatternSub",
12769
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12770
+ const patterns = [];
12771
+ const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
12772
+ if (bgpPattern) {
12773
+ patterns.push(bgpPattern);
12774
+ }
12775
+ MANY(() => {
12776
+ const notTriples = SUBRULE(graphPatternNotTriples);
12777
+ patterns.push(notTriples);
12778
+ OPTION2(() => CONSUME(symbols_exports.dot));
12779
+ const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
12780
+ if (moreTriples) {
12781
+ patterns.push(moreTriples);
12782
+ }
12783
+ });
12784
+ ACTION(() => checkNote13(patterns));
12785
+ return patterns;
12786
+ }
12787
+ };
12788
+ var graphPatternNotTriples = {
12789
+ name: "graphPatternNotTriples",
12790
+ impl: ({ SUBRULE, OR }) => () => OR([
12791
+ { ALT: () => SUBRULE(groupOrUnionGraphPattern) },
12792
+ { ALT: () => SUBRULE(optionalGraphPattern) },
12793
+ { ALT: () => SUBRULE(minusGraphPattern) },
12794
+ { ALT: () => SUBRULE(graphGraphPattern) },
12795
+ { ALT: () => SUBRULE(serviceGraphPattern) },
12796
+ { ALT: () => SUBRULE(filter3) },
12797
+ { ALT: () => SUBRULE(bind2) },
12798
+ { ALT: () => SUBRULE(inlineData) }
12799
+ ]),
12800
+ gImpl: ({ SUBRULE }) => (ast) => {
12801
+ switch (ast.subType) {
12802
+ case "group":
12803
+ case "union":
12804
+ SUBRULE(groupOrUnionGraphPattern, ast);
12805
+ break;
12806
+ case "optional":
12807
+ SUBRULE(optionalGraphPattern, ast);
12808
+ break;
12809
+ case "minus":
12810
+ SUBRULE(minusGraphPattern, ast);
12811
+ break;
12812
+ case "graph":
12813
+ SUBRULE(graphGraphPattern, ast);
12814
+ break;
12815
+ case "service":
12816
+ SUBRULE(serviceGraphPattern, ast);
12817
+ break;
12818
+ case "filter":
12819
+ SUBRULE(filter3, ast);
12820
+ break;
12821
+ case "bind":
12822
+ SUBRULE(bind2, ast);
12823
+ break;
12824
+ case "values":
12825
+ SUBRULE(inlineData, ast);
12826
+ break;
12827
+ }
12828
+ }
12829
+ };
12830
+ var optionalGraphPattern = {
12831
+ name: "optionalGraphPattern",
12832
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12833
+ const optional2 = CONSUME(optional);
12834
+ const group = SUBRULE(groupGraphPattern);
12835
+ return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12836
+ },
12837
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12838
+ F3.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12839
+ SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
12840
+ }
12841
+ };
12842
+ var graphGraphPattern = {
12843
+ name: "graphGraphPattern",
12844
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12845
+ const graph2 = CONSUME(graph_exports.graph);
12846
+ const name = SUBRULE(varOrIri);
12847
+ const group = SUBRULE(groupGraphPattern);
12848
+ return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12849
+ },
12850
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12851
+ F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
12852
+ SUBRULE(varOrTerm, ast.name);
12853
+ SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
12854
+ }
12855
+ };
12856
+ var serviceGraphPattern = {
12857
+ name: "serviceGraphPattern",
12858
+ impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12859
+ const service2 = CONSUME(service);
12860
+ const silent2 = OPTION(() => {
12861
+ CONSUME(silent);
12862
+ return true;
12863
+ }) ?? false;
12864
+ const name = SUBRULE1(varOrIri);
12865
+ const group = SUBRULE1(groupGraphPattern);
12866
+ return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12867
+ },
12868
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12869
+ F3.printFilter(ast, () => {
12870
+ PRINT_WORD("SERVICE");
12871
+ if (ast.silent) {
12872
+ PRINT_WORD("SILENT");
13013
12873
  }
13014
- return F3.aggregate(
13015
- operatorToken.image,
13016
- Boolean(distinctToken),
13017
- expressionVal,
13018
- void 0,
13019
- C.factory.sourceLocation(operatorToken, closeToken)
13020
- );
13021
12874
  });
12875
+ SUBRULE(varOrTerm, ast.name);
12876
+ SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
13022
12877
  }
13023
12878
  };
13024
- var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
13025
- var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
13026
- var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
13027
- var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
13028
- var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
13029
- var aggregateGroup_concat = {
13030
- name: unCapitalize(BuildinCalls_exports.groupConcat.name),
13031
- impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
13032
- const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12879
+ var bind2 = {
12880
+ name: "bind",
12881
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12882
+ const bind3 = CONSUME(bind);
13033
12883
  CONSUME(symbols_exports.LParen);
13034
- const distinctToken = OPTION1(() => CONSUME(distinct));
13035
- const expr = SUBRULE(expression, void 0);
13036
- const sep = OPTION2(() => {
13037
- CONSUME(symbols_exports.semi);
13038
- CONSUME(separator);
13039
- CONSUME(symbols_exports.equal);
13040
- return SUBRULE(string, void 0);
12884
+ const expressionVal = SUBRULE(expression);
12885
+ CONSUME(as);
12886
+ const variable = SUBRULE(var_);
12887
+ const close = CONSUME(symbols_exports.RParen);
12888
+ return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12889
+ },
12890
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12891
+ F3.printFilter(ast, () => PRINT_WORD("BIND", "("));
12892
+ SUBRULE(expression, ast.expression);
12893
+ F3.printFilter(ast, () => PRINT_WORD("AS"));
12894
+ SUBRULE(var_, ast.variable);
12895
+ F3.printFilter(ast, () => PRINT_WORD(")"));
12896
+ }
12897
+ };
12898
+ var inlineData = {
12899
+ name: "inlineData",
12900
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12901
+ const values3 = CONSUME(values2);
12902
+ const datablock = SUBRULE(dataBlock);
12903
+ return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12904
+ },
12905
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
12906
+ const variables = Object.keys(ast.values[0]);
12907
+ F3.printFilter(ast, () => {
12908
+ PRINT_WORD("VALUES", "(");
12909
+ for (const variable of variables) {
12910
+ PRINT_WORD(`?${variable}`);
12911
+ }
12912
+ PRINT_WORD(")", "{");
13041
12913
  });
13042
- const closeToken = CONSUME(symbols_exports.RParen);
13043
- return ACTION(() => {
13044
- const F3 = C.factory;
13045
- return F3.aggregate(
13046
- operatorToken.image,
13047
- Boolean(distinctToken),
13048
- expr,
13049
- sep?.value ?? " ",
13050
- F3.sourceLocation(operatorToken, closeToken)
13051
- );
12914
+ for (const mapping of ast.values) {
12915
+ F3.printFilter(ast, () => PRINT_WORD("("));
12916
+ for (const variable of variables) {
12917
+ if (mapping[variable] === void 0) {
12918
+ F3.printFilter(ast, () => PRINT_WORD("UNDEF"));
12919
+ } else {
12920
+ SUBRULE(graphNodePath, mapping[variable]);
12921
+ }
12922
+ }
12923
+ F3.printFilter(ast, () => PRINT_WORD(")"));
12924
+ }
12925
+ F3.printFilter(ast, () => PRINT_WORD("}"));
12926
+ }
12927
+ };
12928
+ var dataBlock = {
12929
+ name: "dataBlock",
12930
+ impl: ({ SUBRULE, OR }) => () => OR([
12931
+ { ALT: () => SUBRULE(inlineDataOneVar) },
12932
+ { ALT: () => SUBRULE(inlineDataFull) }
12933
+ ])
12934
+ };
12935
+ var inlineDataOneVar = {
12936
+ name: "inlineDataOneVar",
12937
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12938
+ const res = [];
12939
+ const varVal = SUBRULE(var_);
12940
+ CONSUME(symbols_exports.LCurly);
12941
+ MANY(() => {
12942
+ const value = SUBRULE(dataBlockValue);
12943
+ ACTION(() => {
12944
+ res.push({ [varVal.value]: value });
12945
+ });
13052
12946
  });
12947
+ const close = CONSUME(symbols_exports.RCurly);
12948
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
13053
12949
  }
13054
12950
  };
13055
- var aggregate = {
13056
- name: "aggregate",
13057
- impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13058
- const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
13059
- ACTION(() => C.parseMode.add("inAggregate"));
13060
- const result = OR([
13061
- { ALT: () => SUBRULE(aggregateCount, void 0) },
13062
- { ALT: () => SUBRULE(aggregateSum, void 0) },
13063
- { ALT: () => SUBRULE(aggregateMin, void 0) },
13064
- { ALT: () => SUBRULE(aggregateMax, void 0) },
13065
- { ALT: () => SUBRULE(aggregateAvg, void 0) },
13066
- { ALT: () => SUBRULE(aggregateSample, void 0) },
13067
- { ALT: () => SUBRULE(aggregateGroup_concat, void 0) }
12951
+ var inlineDataFull = {
12952
+ name: "inlineDataFull",
12953
+ impl: ({
12954
+ ACTION,
12955
+ OR,
12956
+ MANY1,
12957
+ MANY2,
12958
+ MANY3,
12959
+ MANY4,
12960
+ SUBRULE,
12961
+ CONSUME1,
12962
+ CONSUME2
12963
+ }) => (C) => {
12964
+ const res = [];
12965
+ const vars = [];
12966
+ return OR([
12967
+ { ALT: () => {
12968
+ const nil2 = CONSUME1(terminals_exports.nil);
12969
+ CONSUME1(symbols_exports.LCurly);
12970
+ MANY1(() => {
12971
+ CONSUME2(terminals_exports.nil);
12972
+ res.push({});
12973
+ });
12974
+ const close = CONSUME1(symbols_exports.RCurly);
12975
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12976
+ } },
12977
+ { ALT: () => {
12978
+ const open = CONSUME1(symbols_exports.LParen);
12979
+ MANY2(() => {
12980
+ vars.push(SUBRULE(var_));
12981
+ });
12982
+ CONSUME1(symbols_exports.RParen);
12983
+ CONSUME2(symbols_exports.LCurly);
12984
+ MANY3(() => {
12985
+ let parsedValues = 0;
12986
+ const currentRow = {};
12987
+ CONSUME2(symbols_exports.LParen);
12988
+ MANY4(() => {
12989
+ if (parsedValues >= vars.length) {
12990
+ throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12991
+ }
12992
+ const value = SUBRULE(dataBlockValue);
12993
+ ACTION(() => {
12994
+ currentRow[vars[parsedValues].value] = value;
12995
+ parsedValues++;
12996
+ });
12997
+ });
12998
+ CONSUME2(symbols_exports.RParen);
12999
+ ACTION(() => {
13000
+ res.push(currentRow);
13001
+ if (vars.length !== parsedValues) {
13002
+ throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
13003
+ }
13004
+ });
13005
+ });
13006
+ const close = CONSUME2(symbols_exports.RCurly);
13007
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
13008
+ } }
13068
13009
  ]);
13069
- ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
13070
- ACTION(() => {
13071
- if (!C.parseMode.has("canParseAggregate")) {
13072
- throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
13073
- }
13074
- if (C.parseMode.has("inAggregate")) {
13075
- throw new Error("An aggregate function is not allowed within an aggregate function.");
13076
- }
13010
+ }
13011
+ };
13012
+ var dataBlockValue = {
13013
+ name: "dataBlockValue",
13014
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
13015
+ { ALT: () => SUBRULE(iri2) },
13016
+ { ALT: () => SUBRULE(rdfLiteral) },
13017
+ { ALT: () => SUBRULE(numericLiteral) },
13018
+ { ALT: () => SUBRULE(booleanLiteral) },
13019
+ { ALT: () => {
13020
+ CONSUME(undef);
13021
+ return void 0;
13022
+ } }
13023
+ ])
13024
+ };
13025
+ var minusGraphPattern = {
13026
+ name: "minusGraphPattern",
13027
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13028
+ const minus2 = CONSUME(minus);
13029
+ const group = SUBRULE(groupGraphPattern);
13030
+ return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
13031
+ },
13032
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
13033
+ F3.printFilter(ast, () => PRINT_WORD("MINUS"));
13034
+ SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
13035
+ }
13036
+ };
13037
+ var groupOrUnionGraphPattern = {
13038
+ name: "groupOrUnionGraphPattern",
13039
+ impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
13040
+ const groups = [];
13041
+ const group = SUBRULE1(groupGraphPattern);
13042
+ groups.push(group);
13043
+ MANY(() => {
13044
+ CONSUME(union);
13045
+ const group2 = SUBRULE2(groupGraphPattern);
13046
+ groups.push(group2);
13077
13047
  });
13078
- return result;
13048
+ return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
13049
+ groups,
13050
+ C.factory.sourceLocation(group, groups.at(-1))
13051
+ ));
13079
13052
  },
13080
13053
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
13081
- F3.printFilter(ast, () => {
13082
- PRINT_WORD(ast.aggregation, "(");
13083
- if (ast.distinct) {
13084
- PRINT_WORD("DISTINCT");
13054
+ if (F3.isPatternUnion(ast)) {
13055
+ const [head2, ...tail] = ast.patterns;
13056
+ SUBRULE(groupGraphPattern, head2);
13057
+ for (const pattern of tail) {
13058
+ F3.printFilter(ast, () => PRINT_WORD("UNION"));
13059
+ SUBRULE(groupGraphPattern, pattern);
13085
13060
  }
13086
- });
13087
- const arg = ast.expression[0];
13088
- if (F3.isWildcard(arg)) {
13089
- F3.printFilter(ast, () => PRINT_WORD("*"));
13090
13061
  } else {
13091
- SUBRULE(expression, arg, void 0);
13092
- }
13093
- if (F3.isExpressionAggregateSeparator(ast)) {
13094
- F3.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
13062
+ SUBRULE(groupGraphPattern, ast);
13095
13063
  }
13064
+ }
13065
+ };
13066
+ var filter3 = {
13067
+ name: "filter",
13068
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13069
+ const filterToken = CONSUME(filter2);
13070
+ const expression2 = SUBRULE(constraint);
13071
+ return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
13072
+ },
13073
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
13074
+ F3.printFilter(ast, () => PRINT_WORD("FILTER ("));
13075
+ SUBRULE(expression, ast.expression);
13096
13076
  F3.printFilter(ast, () => PRINT_WORD(")"));
13097
13077
  }
13098
13078
  };
13079
+ var constraint = {
13080
+ name: "constraint",
13081
+ impl: ({ SUBRULE, OR }) => () => OR([
13082
+ { ALT: () => SUBRULE(brackettedExpression) },
13083
+ { ALT: () => SUBRULE(builtInCall) },
13084
+ { ALT: () => SUBRULE(functionCall) }
13085
+ ])
13086
+ };
13087
+ var functionCall = {
13088
+ name: "functionCall",
13089
+ impl: ({ ACTION, SUBRULE }) => (C) => {
13090
+ const func = SUBRULE(iri2);
13091
+ const args = SUBRULE(argList);
13092
+ return ACTION(() => C.factory.expressionFunctionCall(
13093
+ func,
13094
+ args.val.args,
13095
+ args.val.distinct,
13096
+ C.factory.sourceLocation(func, args)
13097
+ ));
13098
+ }
13099
+ };
13099
13100
 
13100
13101
  // ../rules-sparql-1-1/lib/grammar/expression.ts
13101
13102
  var argList = {
@@ -13115,7 +13116,7 @@ var argList = {
13115
13116
  AT_LEAST_ONE_SEP({
13116
13117
  SEP: symbols_exports.comma,
13117
13118
  DEF: () => {
13118
- const arg = SUBRULE1(expression, void 0);
13119
+ const arg = SUBRULE1(expression);
13119
13120
  args.push(arg);
13120
13121
  }
13121
13122
  });
@@ -13132,11 +13133,11 @@ var argList = {
13132
13133
  });
13133
13134
  const [head2, ...tail] = ast.val.args;
13134
13135
  if (head2) {
13135
- SUBRULE(expression, head2, void 0);
13136
+ SUBRULE(expression, head2);
13136
13137
  }
13137
13138
  for (const expr of tail) {
13138
13139
  F3.printFilter(ast, () => PRINT_WORD(","));
13139
- SUBRULE(expression, expr, void 0);
13140
+ SUBRULE(expression, expr);
13140
13141
  }
13141
13142
  F3.printFilter(ast, () => PRINT_WORD(")"));
13142
13143
  }
@@ -13150,11 +13151,11 @@ var expressionList = {
13150
13151
  } },
13151
13152
  { ALT: () => {
13152
13153
  const open = CONSUME(symbols_exports.LParen);
13153
- const expr1 = SUBRULE1(expression, void 0);
13154
+ const expr1 = SUBRULE1(expression);
13154
13155
  const args = [expr1];
13155
13156
  MANY(() => {
13156
13157
  CONSUME(symbols_exports.comma);
13157
- const expr = SUBRULE2(expression, void 0);
13158
+ const expr = SUBRULE2(expression);
13158
13159
  args.push(expr);
13159
13160
  });
13160
13161
  const close = CONSUME(symbols_exports.RParen);
@@ -13166,15 +13167,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
13166
13167
  var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13167
13168
  var expression = {
13168
13169
  name: "expression",
13169
- impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, void 0),
13170
+ impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13170
13171
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
13171
13172
  if (F3.isTerm(ast)) {
13172
- SUBRULE(varOrTerm, ast, void 0);
13173
+ SUBRULE(varOrTerm, ast);
13173
13174
  } else if (F3.isExpressionOperator(ast)) {
13174
13175
  if (infixOperators.has(ast.operator)) {
13175
13176
  const [left, ...right] = ast.args;
13176
13177
  F3.printFilter(ast, () => PRINT_WORD("("));
13177
- SUBRULE(expression, left, void 0);
13178
+ SUBRULE(expression, left);
13178
13179
  F3.printFilter(ast, () => {
13179
13180
  if (ast.operator === "notin") {
13180
13181
  PRINT_WORD("NOT IN");
@@ -13185,35 +13186,35 @@ var expression = {
13185
13186
  }
13186
13187
  });
13187
13188
  if (right.length === 1) {
13188
- SUBRULE(expression, right[0], void 0);
13189
+ SUBRULE(expression, right[0]);
13189
13190
  } else {
13190
- SUBRULE(argList, F3.wrap({ args: right, distinct: false }, ast.loc), void 0);
13191
+ SUBRULE(argList, F3.wrap({ args: right, distinct: false }, ast.loc));
13191
13192
  }
13192
13193
  F3.printFilter(ast, () => PRINT_WORD(")"));
13193
13194
  } else if (prefixOperator.has(ast.operator)) {
13194
13195
  const [expr] = ast.args;
13195
13196
  F3.printFilter(ast, () => PRINT_WORD(ast.operator));
13196
- SUBRULE(expression, expr, void 0);
13197
+ SUBRULE(expression, expr);
13197
13198
  } else {
13198
13199
  F3.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
13199
13200
  const [head2, ...tail] = ast.args;
13200
13201
  if (head2) {
13201
- SUBRULE(expression, head2, void 0);
13202
+ SUBRULE(expression, head2);
13202
13203
  }
13203
13204
  for (const arg of tail) {
13204
13205
  F3.printFilter(ast, () => PRINT_WORD(","));
13205
- SUBRULE(expression, arg, void 0);
13206
+ SUBRULE(expression, arg);
13206
13207
  }
13207
13208
  F3.printFilter(ast, () => PRINT_WORD(")"));
13208
13209
  }
13209
13210
  } else if (F3.isExpressionPatternOperation(ast)) {
13210
13211
  const patterns = ast.args;
13211
13212
  F3.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
13212
- SUBRULE(groupGraphPattern, patterns, void 0);
13213
+ SUBRULE(groupGraphPattern, patterns);
13213
13214
  } else if (F3.isExpressionFunctionCall(ast)) {
13214
- SUBRULE(iriOrFunction, ast, void 0);
13215
+ SUBRULE(iriOrFunction, ast);
13215
13216
  } else if (F3.isExpressionAggregate(ast)) {
13216
- SUBRULE(aggregate, ast, void 0);
13217
+ SUBRULE(aggregate, ast);
13217
13218
  }
13218
13219
  }
13219
13220
  };
@@ -13230,10 +13231,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
13230
13231
  var conditionalOrExpression = {
13231
13232
  name: "conditionalOrExpression",
13232
13233
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
13233
- () => SUBRULE1(conditionalAndExpression, void 0),
13234
+ () => SUBRULE1(conditionalAndExpression),
13234
13235
  () => {
13235
13236
  CONSUME(symbols_exports.logicOr);
13236
- const args = SUBRULE2(conditionalAndExpression, void 0);
13237
+ const args = SUBRULE2(conditionalAndExpression);
13237
13238
  return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13238
13239
  },
13239
13240
  ACTION,
@@ -13243,10 +13244,10 @@ var conditionalOrExpression = {
13243
13244
  var conditionalAndExpression = {
13244
13245
  name: "conditionalAndExpression",
13245
13246
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
13246
- () => SUBRULE1(valueLogical, void 0),
13247
+ () => SUBRULE1(valueLogical),
13247
13248
  () => {
13248
13249
  CONSUME(symbols_exports.logicAnd);
13249
- const arg = SUBRULE2(valueLogical, void 0);
13250
+ const arg = SUBRULE2(valueLogical);
13250
13251
  return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13251
13252
  },
13252
13253
  ACTION,
@@ -13255,12 +13256,12 @@ var conditionalAndExpression = {
13255
13256
  };
13256
13257
  var valueLogical = {
13257
13258
  name: "valueLogical",
13258
- impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression, void 0)
13259
+ impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
13259
13260
  };
13260
13261
  var relationalExpression = {
13261
13262
  name: "relationalExpression",
13262
13263
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
13263
- const args1 = SUBRULE1(numericExpression, void 0);
13264
+ const args1 = SUBRULE1(numericExpression);
13264
13265
  const expression2 = OPTION(() => OR1([
13265
13266
  { ALT: () => {
13266
13267
  const operator = OR2([
@@ -13271,7 +13272,7 @@ var relationalExpression = {
13271
13272
  { ALT: () => CONSUME(symbols_exports.lessThanEqual) },
13272
13273
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13273
13274
  ]);
13274
- const expr = SUBRULE2(numericExpression, void 0);
13275
+ const expr = SUBRULE2(numericExpression);
13275
13276
  return ACTION(() => C.factory.expressionOperation(
13276
13277
  operator.image,
13277
13278
  [args1, expr],
@@ -13283,7 +13284,7 @@ var relationalExpression = {
13283
13284
  { ALT: () => CONSUME(in_) },
13284
13285
  { ALT: () => CONSUME(notIn) }
13285
13286
  ]);
13286
- const args = SUBRULE1(expressionList, void 0);
13287
+ const args = SUBRULE1(expressionList);
13287
13288
  return ACTION(() => C.factory.expressionOperation(
13288
13289
  operator.image,
13289
13290
  [args1, ...args.val],
@@ -13296,25 +13297,25 @@ var relationalExpression = {
13296
13297
  };
13297
13298
  var numericExpression = {
13298
13299
  name: "numericExpression",
13299
- impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression, void 0)
13300
+ impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
13300
13301
  };
13301
13302
  var additiveExpression = {
13302
13303
  name: "additiveExpression",
13303
13304
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
13304
- () => SUBRULE1(multiplicativeExpression, void 0),
13305
+ () => SUBRULE1(multiplicativeExpression),
13305
13306
  () => OR1([
13306
13307
  { ALT: () => {
13307
13308
  const operator = OR2([
13308
13309
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13309
13310
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13310
13311
  ]);
13311
- const arg = SUBRULE2(multiplicativeExpression, void 0);
13312
+ const arg = SUBRULE2(multiplicativeExpression);
13312
13313
  return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13313
13314
  } },
13314
13315
  { ALT: () => {
13315
13316
  const { operator, startInt } = OR3([
13316
13317
  { ALT: () => {
13317
- const integer2 = SUBRULE(numericLiteralPositive, void 0);
13318
+ const integer2 = SUBRULE(numericLiteralPositive);
13318
13319
  return ACTION(() => {
13319
13320
  integer2.value = integer2.value.replace(/^\+/u, "");
13320
13321
  return {
@@ -13324,7 +13325,7 @@ var additiveExpression = {
13324
13325
  });
13325
13326
  } },
13326
13327
  { ALT: () => {
13327
- const integer2 = SUBRULE(numericLiteralNegative, void 0);
13328
+ const integer2 = SUBRULE(numericLiteralNegative);
13328
13329
  return ACTION(() => {
13329
13330
  integer2.value = integer2.value.replace(/^-/u, "");
13330
13331
  return {
@@ -13341,7 +13342,7 @@ var additiveExpression = {
13341
13342
  { ALT: () => CONSUME(symbols_exports.star) },
13342
13343
  { ALT: () => CONSUME(symbols_exports.slash) }
13343
13344
  ]);
13344
- const innerExpr = SUBRULE1(unaryExpression, void 0);
13345
+ const innerExpr = SUBRULE1(unaryExpression);
13345
13346
  return ACTION(() => (leftInner) => C.factory.expressionOperation(
13346
13347
  innerOperator.image,
13347
13348
  [leftInner, innerExpr],
@@ -13365,13 +13366,13 @@ var additiveExpression = {
13365
13366
  var multiplicativeExpression = {
13366
13367
  name: "multiplicativeExpression",
13367
13368
  impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
13368
- () => SUBRULE1(unaryExpression, void 0),
13369
+ () => SUBRULE1(unaryExpression),
13369
13370
  () => {
13370
13371
  const operator = OR([
13371
13372
  { ALT: () => CONSUME(symbols_exports.star) },
13372
13373
  { ALT: () => CONSUME(symbols_exports.slash) }
13373
13374
  ]);
13374
- const expr = SUBRULE2(unaryExpression, void 0);
13375
+ const expr = SUBRULE2(unaryExpression);
13375
13376
  return (left) => ({
13376
13377
  type: "expression",
13377
13378
  subType: "operation",
@@ -13387,14 +13388,14 @@ var multiplicativeExpression = {
13387
13388
  var unaryExpression = {
13388
13389
  name: "unaryExpression",
13389
13390
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
13390
- { ALT: () => SUBRULE1(primaryExpression, void 0) },
13391
+ { ALT: () => SUBRULE1(primaryExpression) },
13391
13392
  { ALT: () => {
13392
13393
  const operator = OR2([
13393
13394
  { ALT: () => CONSUME(symbols_exports.exclamation) },
13394
13395
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13395
13396
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13396
13397
  ]);
13397
- const expr = SUBRULE2(primaryExpression, void 0);
13398
+ const expr = SUBRULE2(primaryExpression);
13398
13399
  return ACTION(() => ({
13399
13400
  type: "expression",
13400
13401
  subType: "operation",
@@ -13408,20 +13409,20 @@ var unaryExpression = {
13408
13409
  var primaryExpression = {
13409
13410
  name: "primaryExpression",
13410
13411
  impl: ({ SUBRULE, OR }) => () => OR([
13411
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
13412
- { ALT: () => SUBRULE(builtInCall, void 0) },
13413
- { ALT: () => SUBRULE(iriOrFunction, void 0) },
13414
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
13415
- { ALT: () => SUBRULE(numericLiteral, void 0) },
13416
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
13417
- { ALT: () => SUBRULE(var_, void 0) }
13412
+ { ALT: () => SUBRULE(brackettedExpression) },
13413
+ { ALT: () => SUBRULE(builtInCall) },
13414
+ { ALT: () => SUBRULE(iriOrFunction) },
13415
+ { ALT: () => SUBRULE(rdfLiteral) },
13416
+ { ALT: () => SUBRULE(numericLiteral) },
13417
+ { ALT: () => SUBRULE(booleanLiteral) },
13418
+ { ALT: () => SUBRULE(var_) }
13418
13419
  ])
13419
13420
  };
13420
13421
  var brackettedExpression = {
13421
13422
  name: "brackettedExpression",
13422
13423
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13423
13424
  const open = CONSUME(symbols_exports.LParen);
13424
- const expr = SUBRULE(expression, void 0);
13425
+ const expr = SUBRULE(expression);
13425
13426
  const close = CONSUME(symbols_exports.RParen);
13426
13427
  return ACTION(() => {
13427
13428
  expr.loc = C.factory.sourceLocation(open, close);
@@ -13432,9 +13433,9 @@ var brackettedExpression = {
13432
13433
  var iriOrFunction = {
13433
13434
  name: "iriOrFunction",
13434
13435
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
13435
- const iriVal = SUBRULE(iri2, void 0);
13436
+ const iriVal = SUBRULE(iri2);
13436
13437
  const functionCall2 = OPTION(() => {
13437
- const args = SUBRULE(argList, void 0);
13438
+ const args = SUBRULE(argList);
13438
13439
  return ACTION(() => {
13439
13440
  const distinct2 = args.val.distinct;
13440
13441
  if (!C.parseMode.has("canParseAggregate") && distinct2) {
@@ -13454,10 +13455,10 @@ var iriOrFunction = {
13454
13455
  },
13455
13456
  gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
13456
13457
  if (F3.isTermNamed(ast)) {
13457
- SUBRULE(iri2, ast, void 0);
13458
+ SUBRULE(iri2, ast);
13458
13459
  } else {
13459
- SUBRULE(iri2, ast.function, void 0);
13460
- SUBRULE(argList, F3.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc), void 0);
13460
+ SUBRULE(iri2, ast.function);
13461
+ SUBRULE(argList, F3.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
13461
13462
  }
13462
13463
  }
13463
13464
  };
@@ -13466,10 +13467,10 @@ var iriOrFunction = {
13466
13467
  var solutionModifier = {
13467
13468
  name: "solutionModifier",
13468
13469
  impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
13469
- const group = OPTION1(() => SUBRULE(groupClause, void 0));
13470
- const having2 = OPTION2(() => SUBRULE(havingClause, void 0));
13471
- const order2 = OPTION3(() => SUBRULE(orderClause, void 0));
13472
- const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses, void 0));
13470
+ const group = OPTION1(() => SUBRULE(groupClause));
13471
+ const having2 = OPTION2(() => SUBRULE(havingClause));
13472
+ const order2 = OPTION3(() => SUBRULE(orderClause));
13473
+ const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
13473
13474
  return ACTION(() => ({
13474
13475
  ...limitOffset && { limitOffset },
13475
13476
  ...group && { group },
@@ -13479,16 +13480,16 @@ var solutionModifier = {
13479
13480
  },
13480
13481
  gImpl: ({ SUBRULE }) => (ast) => {
13481
13482
  if (ast.group) {
13482
- SUBRULE(groupClause, ast.group, void 0);
13483
+ SUBRULE(groupClause, ast.group);
13483
13484
  }
13484
13485
  if (ast.having) {
13485
- SUBRULE(havingClause, ast.having, void 0);
13486
+ SUBRULE(havingClause, ast.having);
13486
13487
  }
13487
13488
  if (ast.order) {
13488
- SUBRULE(orderClause, ast.order, void 0);
13489
+ SUBRULE(orderClause, ast.order);
13489
13490
  }
13490
13491
  if (ast.limitOffset) {
13491
- SUBRULE(limitOffsetClauses, ast.limitOffset, void 0);
13492
+ SUBRULE(limitOffsetClauses, ast.limitOffset);
13492
13493
  }
13493
13494
  }
13494
13495
  };
@@ -13499,7 +13500,7 @@ var groupClause = {
13499
13500
  const start = CONSUME(groupByGroup);
13500
13501
  CONSUME(by);
13501
13502
  AT_LEAST_ONE(() => {
13502
- groupings.push(SUBRULE1(groupCondition, void 0));
13503
+ groupings.push(SUBRULE1(groupCondition));
13503
13504
  });
13504
13505
  return ACTION(() => ({
13505
13506
  type: "solutionModifier",
@@ -13512,12 +13513,12 @@ var groupClause = {
13512
13513
  F3.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13513
13514
  for (const grouping of ast.groupings) {
13514
13515
  if (F3.isExpression(grouping)) {
13515
- SUBRULE(expression, grouping, void 0);
13516
+ SUBRULE(expression, grouping);
13516
13517
  } else {
13517
13518
  F3.printFilter(ast, () => PRINT_WORDS("("));
13518
- SUBRULE(expression, grouping.value, void 0);
13519
+ SUBRULE(expression, grouping.value);
13519
13520
  F3.printFilter(ast, () => PRINT_WORDS("AS"));
13520
- SUBRULE(var_, grouping.variable, void 0);
13521
+ SUBRULE(var_, grouping.variable);
13521
13522
  F3.printFilter(ast, () => PRINT_WORDS(")"));
13522
13523
  }
13523
13524
  }
@@ -13526,16 +13527,16 @@ var groupClause = {
13526
13527
  var groupCondition = {
13527
13528
  name: "groupCondition",
13528
13529
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
13529
- { ALT: () => SUBRULE(builtInCall, void 0) },
13530
- { ALT: () => SUBRULE(functionCall, void 0) },
13531
- { ALT: () => SUBRULE2(var_, void 0) },
13530
+ { ALT: () => SUBRULE(builtInCall) },
13531
+ { ALT: () => SUBRULE(functionCall) },
13532
+ { ALT: () => SUBRULE2(var_) },
13532
13533
  {
13533
13534
  ALT: () => {
13534
13535
  const open = CONSUME(symbols_exports.LParen);
13535
- const expressionValue = SUBRULE(expression, void 0);
13536
+ const expressionValue = SUBRULE(expression);
13536
13537
  const variable = OPTION(() => {
13537
13538
  CONSUME(as);
13538
- return SUBRULE1(var_, void 0);
13539
+ return SUBRULE1(var_);
13539
13540
  });
13540
13541
  const close = CONSUME(symbols_exports.RParen);
13541
13542
  return ACTION(() => {
@@ -13559,7 +13560,7 @@ var havingClause = {
13559
13560
  const expressions = [];
13560
13561
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13561
13562
  AT_LEAST_ONE(() => {
13562
- expressions.push(SUBRULE(havingCondition, void 0));
13563
+ expressions.push(SUBRULE(havingCondition));
13563
13564
  });
13564
13565
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13565
13566
  return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
@@ -13567,13 +13568,13 @@ var havingClause = {
13567
13568
  gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F3 }) => {
13568
13569
  F3.printFilter(ast, () => PRINT_WORD("HAVING"));
13569
13570
  for (const having2 of ast.having) {
13570
- SUBRULE(expression, having2, void 0);
13571
+ SUBRULE(expression, having2);
13571
13572
  }
13572
13573
  }
13573
13574
  };
13574
13575
  var havingCondition = {
13575
13576
  name: "havingCondition",
13576
- impl: ({ SUBRULE }) => () => SUBRULE(constraint, void 0)
13577
+ impl: ({ SUBRULE }) => () => SUBRULE(constraint)
13577
13578
  };
13578
13579
  var orderClause = {
13579
13580
  name: "orderClause",
@@ -13583,7 +13584,7 @@ var orderClause = {
13583
13584
  const orderings = [];
13584
13585
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13585
13586
  AT_LEAST_ONE(() => {
13586
- orderings.push(SUBRULE1(orderCondition, void 0));
13587
+ orderings.push(SUBRULE1(orderCondition));
13587
13588
  });
13588
13589
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13589
13590
  return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
@@ -13597,7 +13598,7 @@ var orderClause = {
13597
13598
  F3.printFilter(ast, () => PRINT_WORDS("ASC"));
13598
13599
  }
13599
13600
  F3.printFilter(ast, () => PRINT_WORDS("("));
13600
- SUBRULE(expression, ordering.expression, void 0);
13601
+ SUBRULE(expression, ordering.expression);
13601
13602
  F3.printFilter(ast, () => PRINT_WORDS(")"));
13602
13603
  }
13603
13604
  }
@@ -13616,7 +13617,7 @@ var orderCondition = {
13616
13617
  return [true, token];
13617
13618
  } }
13618
13619
  ]);
13619
- const expr = SUBRULE(brackettedExpression, void 0);
13620
+ const expr = SUBRULE(brackettedExpression);
13620
13621
  return ACTION(() => ({
13621
13622
  expression: expr,
13622
13623
  descending: descending[0],
@@ -13624,11 +13625,11 @@ var orderCondition = {
13624
13625
  }));
13625
13626
  } },
13626
13627
  { ALT: () => {
13627
- const expr = SUBRULE(constraint, void 0);
13628
+ const expr = SUBRULE(constraint);
13628
13629
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13629
13630
  } },
13630
13631
  { ALT: () => {
13631
- const expr = SUBRULE(var_, void 0);
13632
+ const expr = SUBRULE(var_);
13632
13633
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13633
13634
  } }
13634
13635
  ])
@@ -13637,8 +13638,8 @@ var limitOffsetClauses = {
13637
13638
  name: "limitOffsetClauses",
13638
13639
  impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
13639
13640
  { ALT: () => {
13640
- const limit2 = SUBRULE1(limitClause, void 0);
13641
- const offset2 = OPTION1(() => SUBRULE1(offsetClause, void 0));
13641
+ const limit2 = SUBRULE1(limitClause);
13642
+ const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13642
13643
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13643
13644
  limit2.val,
13644
13645
  offset2?.val,
@@ -13646,8 +13647,8 @@ var limitOffsetClauses = {
13646
13647
  ));
13647
13648
  } },
13648
13649
  { ALT: () => {
13649
- const offset2 = SUBRULE2(offsetClause, void 0);
13650
- const limit2 = OPTION2(() => SUBRULE2(limitClause, void 0));
13650
+ const offset2 = SUBRULE2(offsetClause);
13651
+ const limit2 = OPTION2(() => SUBRULE2(limitClause));
13651
13652
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13652
13653
  limit2?.val,
13653
13654
  offset2.val,
@@ -13685,22 +13686,22 @@ var offsetClause = {
13685
13686
  }
13686
13687
  };
13687
13688
 
13688
- // ../rules-sparql-1-1/lib/grammar/queryUnit/queryUnit.ts
13689
+ // ../rules-sparql-1-1/lib/grammar/queryUnit.ts
13689
13690
  var queryUnit = {
13690
13691
  name: "queryUnit",
13691
- impl: ({ SUBRULE }) => () => SUBRULE(query, void 0)
13692
+ impl: ({ SUBRULE }) => () => SUBRULE(query)
13692
13693
  };
13693
13694
  var query = {
13694
13695
  name: "query",
13695
13696
  impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13696
- const prologueValues = SUBRULE(prologue, void 0);
13697
+ const prologueValues = SUBRULE(prologue);
13697
13698
  const subType = OR([
13698
- { ALT: () => SUBRULE(selectQuery, void 0) },
13699
- { ALT: () => SUBRULE(constructQuery, void 0) },
13700
- { ALT: () => SUBRULE(describeQuery, void 0) },
13701
- { ALT: () => SUBRULE(askQuery, void 0) }
13699
+ { ALT: () => SUBRULE(selectQuery) },
13700
+ { ALT: () => SUBRULE(constructQuery) },
13701
+ { ALT: () => SUBRULE(describeQuery) },
13702
+ { ALT: () => SUBRULE(askQuery) }
13702
13703
  ]);
13703
- const values3 = SUBRULE(valuesClause, void 0);
13704
+ const values3 = SUBRULE(valuesClause);
13704
13705
  return ACTION(() => ({
13705
13706
  context: prologueValues,
13706
13707
  ...subType,
@@ -13714,28 +13715,28 @@ var query = {
13714
13715
  }));
13715
13716
  },
13716
13717
  gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
13717
- SUBRULE(prologue, ast.context, void 0);
13718
+ SUBRULE(prologue, ast.context);
13718
13719
  if (F3.isQuerySelect(ast)) {
13719
- SUBRULE(selectQuery, ast, void 0);
13720
+ SUBRULE(selectQuery, ast);
13720
13721
  } else if (F3.isQueryConstruct(ast)) {
13721
- SUBRULE(constructQuery, ast, void 0);
13722
+ SUBRULE(constructQuery, ast);
13722
13723
  } else if (F3.isQueryDescribe(ast)) {
13723
- SUBRULE(describeQuery, ast, void 0);
13724
+ SUBRULE(describeQuery, ast);
13724
13725
  } else if (F3.isQueryAsk(ast)) {
13725
- SUBRULE(askQuery, ast, void 0);
13726
+ SUBRULE(askQuery, ast);
13726
13727
  }
13727
13728
  if (ast.values) {
13728
- SUBRULE(inlineData, ast.values, void 0);
13729
+ SUBRULE(inlineData, ast.values);
13729
13730
  }
13730
13731
  }
13731
13732
  };
13732
13733
  var selectQuery = {
13733
13734
  name: "selectQuery",
13734
13735
  impl: ({ ACTION, SUBRULE }) => (C) => {
13735
- const selectVal = SUBRULE(selectClause, void 0);
13736
- const from2 = SUBRULE(datasetClauseStar, void 0);
13737
- const where2 = SUBRULE(whereClause, void 0);
13738
- const modifiers = SUBRULE(solutionModifier, void 0);
13736
+ const selectVal = SUBRULE(selectClause);
13737
+ const from2 = SUBRULE(datasetClauseStar);
13738
+ const where2 = SUBRULE(whereClause);
13739
+ const modifiers = SUBRULE(solutionModifier);
13739
13740
  return ACTION(() => {
13740
13741
  const ret = {
13741
13742
  subType: "select",
@@ -13761,19 +13762,19 @@ var selectQuery = {
13761
13762
  variables: ast.variables,
13762
13763
  distinct: ast.distinct,
13763
13764
  reduced: ast.reduced
13764
- }, F3.sourceLocation(...ast.variables)), void 0);
13765
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13766
- SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc), void 0);
13767
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13765
+ }, F3.sourceLocation(...ast.variables)));
13766
+ SUBRULE(datasetClauseStar, ast.datasets);
13767
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc));
13768
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13768
13769
  }
13769
13770
  };
13770
13771
  var subSelect = {
13771
13772
  name: "subSelect",
13772
13773
  impl: ({ ACTION, SUBRULE }) => (C) => {
13773
- const selectVal = SUBRULE(selectClause, void 0);
13774
- const where2 = SUBRULE(whereClause, void 0);
13775
- const modifiers = SUBRULE(solutionModifier, void 0);
13776
- const values3 = SUBRULE(valuesClause, void 0);
13774
+ const selectVal = SUBRULE(selectClause);
13775
+ const where2 = SUBRULE(whereClause);
13776
+ const modifiers = SUBRULE(solutionModifier);
13777
+ const values3 = SUBRULE(valuesClause);
13777
13778
  return ACTION(() => C.factory.querySelect({
13778
13779
  where: where2.val,
13779
13780
  datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
@@ -13838,7 +13839,7 @@ var selectClause = {
13838
13839
  const variables = [];
13839
13840
  AT_LEAST_ONE(() => OR3([
13840
13841
  { ALT: () => {
13841
- const raw = SUBRULE1(var_, void 0);
13842
+ const raw = SUBRULE1(var_);
13842
13843
  ACTION(() => {
13843
13844
  if (usedVars.some((v) => v.value === raw.value)) {
13844
13845
  throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
@@ -13850,9 +13851,9 @@ var selectClause = {
13850
13851
  } },
13851
13852
  { ALT: () => {
13852
13853
  const open = CONSUME(symbols_exports.LParen);
13853
- const expr = SUBRULE1(expression, void 0);
13854
+ const expr = SUBRULE1(expression);
13854
13855
  CONSUME(as);
13855
- const variable = SUBRULE2(var_, void 0);
13856
+ const variable = SUBRULE2(var_);
13856
13857
  const close = CONSUME(symbols_exports.RParen);
13857
13858
  ACTION(() => {
13858
13859
  last2 = close;
@@ -13883,12 +13884,12 @@ var selectClause = {
13883
13884
  if (F3.isWildcard(variable)) {
13884
13885
  F3.printFilter(ast, () => PRINT_WORD("*"));
13885
13886
  } else if (F3.isTerm(variable)) {
13886
- SUBRULE(var_, variable, void 0);
13887
+ SUBRULE(var_, variable);
13887
13888
  } else {
13888
13889
  F3.printFilter(ast, () => PRINT_WORD("("));
13889
- SUBRULE(expression, variable.expression, void 0);
13890
+ SUBRULE(expression, variable.expression);
13890
13891
  F3.printFilter(ast, () => PRINT_WORD("AS"));
13891
- SUBRULE(var_, variable.variable, void 0);
13892
+ SUBRULE(var_, variable.variable);
13892
13893
  F3.printFilter(ast, () => PRINT_WORD(")"));
13893
13894
  }
13894
13895
  }
@@ -13900,10 +13901,10 @@ var constructQuery = {
13900
13901
  const construct2 = CONSUME(construct);
13901
13902
  return OR([
13902
13903
  { ALT: () => {
13903
- const template = SUBRULE1(constructTemplate, void 0);
13904
- const from2 = SUBRULE1(datasetClauseStar, void 0);
13905
- const where2 = SUBRULE1(whereClause, void 0);
13906
- const modifiers = SUBRULE1(solutionModifier, void 0);
13904
+ const template = SUBRULE1(constructTemplate);
13905
+ const from2 = SUBRULE1(datasetClauseStar);
13906
+ const where2 = SUBRULE1(whereClause);
13907
+ const modifiers = SUBRULE1(solutionModifier);
13907
13908
  return ACTION(() => ({
13908
13909
  subType: "construct",
13909
13910
  template: template.val,
@@ -13921,10 +13922,10 @@ var constructQuery = {
13921
13922
  }));
13922
13923
  } },
13923
13924
  { ALT: () => {
13924
- const from2 = SUBRULE2(datasetClauseStar, void 0);
13925
+ const from2 = SUBRULE2(datasetClauseStar);
13925
13926
  CONSUME(where);
13926
- const template = SUBRULE2(constructTemplate, void 0);
13927
- const modifiers = SUBRULE2(solutionModifier, void 0);
13927
+ const template = SUBRULE2(constructTemplate);
13928
+ const modifiers = SUBRULE2(solutionModifier);
13928
13929
  return ACTION(() => ({
13929
13930
  subType: "construct",
13930
13931
  template: template.val,
@@ -13947,16 +13948,16 @@ var constructQuery = {
13947
13948
  F3.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13948
13949
  if (!F3.isSourceLocationNoMaterialize(ast.where.loc)) {
13949
13950
  F3.printFilter(ast, () => PRINT_WORD("{"));
13950
- SUBRULE(triplesBlock, ast.template, void 0);
13951
+ SUBRULE(triplesBlock, ast.template);
13951
13952
  F3.printFilter(ast, () => PRINT_WORD("}"));
13952
13953
  }
13953
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13954
+ SUBRULE(datasetClauseStar, ast.datasets);
13954
13955
  if (F3.isSourceLocationNoMaterialize(ast.where.loc)) {
13955
- SUBRULE(whereClause, F3.wrap(F3.patternGroup([ast.template], ast.template.loc), ast.template.loc), void 0);
13956
+ SUBRULE(whereClause, F3.wrap(F3.patternGroup([ast.template], ast.template.loc), ast.template.loc));
13956
13957
  } else {
13957
- SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc), void 0);
13958
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.where.loc));
13958
13959
  }
13959
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13960
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13960
13961
  }
13961
13962
  };
13962
13963
  var describeQuery = {
@@ -13967,7 +13968,7 @@ var describeQuery = {
13967
13968
  { ALT: () => {
13968
13969
  const variables2 = [];
13969
13970
  AT_LEAST_ONE(() => {
13970
- variables2.push(SUBRULE1(varOrIri, void 0));
13971
+ variables2.push(SUBRULE1(varOrIri));
13971
13972
  });
13972
13973
  return variables2;
13973
13974
  } },
@@ -13976,9 +13977,9 @@ var describeQuery = {
13976
13977
  return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
13977
13978
  } }
13978
13979
  ]);
13979
- const from2 = SUBRULE1(datasetClauseStar, void 0);
13980
- const where2 = OPTION(() => SUBRULE1(whereClause, void 0));
13981
- const modifiers = SUBRULE1(solutionModifier, void 0);
13980
+ const from2 = SUBRULE1(datasetClauseStar);
13981
+ const where2 = OPTION(() => SUBRULE1(whereClause));
13982
+ const modifiers = SUBRULE1(solutionModifier);
13982
13983
  return ACTION(() => ({
13983
13984
  subType: "describe",
13984
13985
  variables,
@@ -14003,23 +14004,23 @@ var describeQuery = {
14003
14004
  F3.printFilter(ast, () => PRINT_WORD("*"));
14004
14005
  } else {
14005
14006
  for (const variable of ast.variables) {
14006
- SUBRULE(varOrTerm, variable, void 0);
14007
+ SUBRULE(varOrTerm, variable);
14007
14008
  }
14008
14009
  }
14009
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14010
+ SUBRULE(datasetClauseStar, ast.datasets);
14010
14011
  if (ast.where) {
14011
- SUBRULE(whereClause, F3.wrap(ast.where, ast.loc), void 0);
14012
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.loc));
14012
14013
  }
14013
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
14014
+ SUBRULE(solutionModifier, ast.solutionModifiers);
14014
14015
  }
14015
14016
  };
14016
14017
  var askQuery = {
14017
14018
  name: "askQuery",
14018
14019
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14019
14020
  const ask2 = CONSUME(ask);
14020
- const from2 = SUBRULE(datasetClauseStar, void 0);
14021
- const where2 = SUBRULE(whereClause, void 0);
14022
- const modifiers = SUBRULE(solutionModifier, void 0);
14021
+ const from2 = SUBRULE(datasetClauseStar);
14022
+ const where2 = SUBRULE(whereClause);
14023
+ const modifiers = SUBRULE(solutionModifier);
14023
14024
  return ACTION(() => ({
14024
14025
  subType: "ask",
14025
14026
  datasets: from2,
@@ -14038,20 +14039,20 @@ var askQuery = {
14038
14039
  },
14039
14040
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14040
14041
  F3.printFilter(ast, () => PRINT_WORD("ASK"));
14041
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14042
- SUBRULE(whereClause, F3.wrap(ast.where, ast.loc), void 0);
14043
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
14042
+ SUBRULE(datasetClauseStar, ast.datasets);
14043
+ SUBRULE(whereClause, F3.wrap(ast.where, ast.loc));
14044
+ SUBRULE(solutionModifier, ast.solutionModifiers);
14044
14045
  }
14045
14046
  };
14046
14047
  var valuesClause = {
14047
14048
  name: "valuesClause",
14048
- impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData, void 0))
14049
+ impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
14049
14050
  };
14050
14051
  var constructTemplate = {
14051
14052
  name: "constructTemplate",
14052
14053
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14053
14054
  const open = CONSUME(symbols_exports.LCurly);
14054
- const triples = OPTION(() => SUBRULE1(constructTriples, void 0));
14055
+ const triples = OPTION(() => SUBRULE1(constructTriples));
14055
14056
  const close = CONSUME(symbols_exports.RCurly);
14056
14057
  return ACTION(() => C.factory.wrap(
14057
14058
  triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
@@ -14064,27 +14065,27 @@ var constructTriples = {
14064
14065
  impl: triplesTemplate.impl
14065
14066
  };
14066
14067
 
14067
- // ../rules-sparql-1-1/lib/grammar/updateUnit/updateUnit.ts
14068
+ // ../rules-sparql-1-1/lib/grammar/updateUnit.ts
14068
14069
  var updateUnit = {
14069
14070
  name: "updateUnit",
14070
- impl: ({ SUBRULE }) => () => SUBRULE(update, void 0)
14071
+ impl: ({ SUBRULE }) => () => SUBRULE(update)
14071
14072
  };
14072
14073
  var update = {
14073
14074
  name: "update",
14074
14075
  impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
14075
14076
  const updates = [];
14076
- const prologueValues = SUBRULE1(prologue, void 0);
14077
+ const prologueValues = SUBRULE1(prologue);
14077
14078
  updates.push({ context: prologueValues });
14078
14079
  let parsedSemi = true;
14079
14080
  MANY({
14080
14081
  GATE: () => parsedSemi,
14081
14082
  DEF: () => {
14082
14083
  parsedSemi = false;
14083
- updates.at(-1).operation = SUBRULE(update1, void 0);
14084
+ updates.at(-1).operation = SUBRULE(update1);
14084
14085
  OPTION1(() => {
14085
14086
  CONSUME(symbols_exports.semi);
14086
14087
  parsedSemi = true;
14087
- const innerPrologue = SUBRULE2(prologue, void 0);
14088
+ const innerPrologue = SUBRULE2(prologue);
14088
14089
  updates.push({ context: innerPrologue });
14089
14090
  });
14090
14091
  }
@@ -14106,9 +14107,9 @@ var update = {
14106
14107
  },
14107
14108
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14108
14109
  for (const update2 of ast.updates) {
14109
- SUBRULE(prologue, update2.context, void 0);
14110
+ SUBRULE(prologue, update2.context);
14110
14111
  if (update2.operation) {
14111
- SUBRULE(update1, update2.operation, void 0);
14112
+ SUBRULE(update1, update2.operation);
14112
14113
  F3.printFilter(ast, () => PRINT_WORD(" ;\n"));
14113
14114
  }
14114
14115
  }
@@ -14117,52 +14118,52 @@ var update = {
14117
14118
  var update1 = {
14118
14119
  name: "update1",
14119
14120
  impl: ({ SUBRULE, OR }) => () => OR([
14120
- { ALT: () => SUBRULE(load2, void 0) },
14121
- { ALT: () => SUBRULE(clear2, void 0) },
14122
- { ALT: () => SUBRULE(drop3, void 0) },
14123
- { ALT: () => SUBRULE(add2, void 0) },
14124
- { ALT: () => SUBRULE(move2, void 0) },
14125
- { ALT: () => SUBRULE(copy2, void 0) },
14126
- { ALT: () => SUBRULE(create2, void 0) },
14127
- { ALT: () => SUBRULE(insertData, void 0) },
14128
- { ALT: () => SUBRULE(deleteData, void 0) },
14129
- { ALT: () => SUBRULE(deleteWhere, void 0) },
14130
- { ALT: () => SUBRULE(modify, void 0) }
14121
+ { ALT: () => SUBRULE(load2) },
14122
+ { ALT: () => SUBRULE(clear2) },
14123
+ { ALT: () => SUBRULE(drop3) },
14124
+ { ALT: () => SUBRULE(add2) },
14125
+ { ALT: () => SUBRULE(move2) },
14126
+ { ALT: () => SUBRULE(copy2) },
14127
+ { ALT: () => SUBRULE(create2) },
14128
+ { ALT: () => SUBRULE(insertData) },
14129
+ { ALT: () => SUBRULE(deleteData) },
14130
+ { ALT: () => SUBRULE(deleteWhere) },
14131
+ { ALT: () => SUBRULE(modify) }
14131
14132
  ]),
14132
14133
  gImpl: ({ SUBRULE }) => (ast) => {
14133
14134
  switch (ast.subType) {
14134
14135
  case "load":
14135
- SUBRULE(load2, ast, void 0);
14136
+ SUBRULE(load2, ast);
14136
14137
  break;
14137
14138
  case "clear":
14138
- SUBRULE(clear2, ast, void 0);
14139
+ SUBRULE(clear2, ast);
14139
14140
  break;
14140
14141
  case "drop":
14141
- SUBRULE(drop3, ast, void 0);
14142
+ SUBRULE(drop3, ast);
14142
14143
  break;
14143
14144
  case "add":
14144
- SUBRULE(add2, ast, void 0);
14145
+ SUBRULE(add2, ast);
14145
14146
  break;
14146
14147
  case "move":
14147
- SUBRULE(move2, ast, void 0);
14148
+ SUBRULE(move2, ast);
14148
14149
  break;
14149
14150
  case "copy":
14150
- SUBRULE(copy2, ast, void 0);
14151
+ SUBRULE(copy2, ast);
14151
14152
  break;
14152
14153
  case "create":
14153
- SUBRULE(create2, ast, void 0);
14154
+ SUBRULE(create2, ast);
14154
14155
  break;
14155
14156
  case "insertdata":
14156
- SUBRULE(insertData, ast, void 0);
14157
+ SUBRULE(insertData, ast);
14157
14158
  break;
14158
14159
  case "deletedata":
14159
- SUBRULE(deleteData, ast, void 0);
14160
+ SUBRULE(deleteData, ast);
14160
14161
  break;
14161
14162
  case "deletewhere":
14162
- SUBRULE(deleteWhere, ast, void 0);
14163
+ SUBRULE(deleteWhere, ast);
14163
14164
  break;
14164
14165
  case "modify":
14165
- SUBRULE(modify, ast, void 0);
14166
+ SUBRULE(modify, ast);
14166
14167
  break;
14167
14168
  }
14168
14169
  }
@@ -14172,10 +14173,10 @@ var load2 = {
14172
14173
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
14173
14174
  const loadToken = CONSUME(load);
14174
14175
  const silent2 = OPTION1(() => CONSUME(silent));
14175
- const source = SUBRULE1(iri2, void 0);
14176
+ const source = SUBRULE1(iri2);
14176
14177
  const destination = OPTION2(() => {
14177
14178
  CONSUME(loadInto);
14178
- return SUBRULE1(graphRef, void 0);
14179
+ return SUBRULE1(graphRef);
14179
14180
  });
14180
14181
  return ACTION(() => C.factory.updateOperationLoad(
14181
14182
  C.factory.sourceLocation(loadToken, source, destination),
@@ -14191,10 +14192,10 @@ var load2 = {
14191
14192
  PRINT_WORD("SILENT");
14192
14193
  }
14193
14194
  });
14194
- SUBRULE(iri2, ast.source, void 0);
14195
+ SUBRULE(iri2, ast.source);
14195
14196
  if (ast.destination) {
14196
14197
  F3.printFilter(ast, () => PRINT_WORD("INTO"));
14197
- SUBRULE(graphRefAll, ast.destination, void 0);
14198
+ SUBRULE(graphRefAll, ast.destination);
14198
14199
  }
14199
14200
  }
14200
14201
  };
@@ -14204,7 +14205,7 @@ function clearOrDrop(operation) {
14204
14205
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14205
14206
  const opToken = CONSUME(operation);
14206
14207
  const silent2 = OPTION(() => CONSUME(silent));
14207
- const destination = SUBRULE1(graphRefAll, void 0);
14208
+ const destination = SUBRULE1(graphRefAll);
14208
14209
  return ACTION(() => C.factory.updateOperationClearDrop(
14209
14210
  unCapitalize(operation.name),
14210
14211
  Boolean(silent2),
@@ -14219,7 +14220,7 @@ function clearOrDrop(operation) {
14219
14220
  PRINT_WORD("SILENT");
14220
14221
  }
14221
14222
  });
14222
- SUBRULE(graphRefAll, ast.destination, void 0);
14223
+ SUBRULE(graphRefAll, ast.destination);
14223
14224
  }
14224
14225
  };
14225
14226
  }
@@ -14230,7 +14231,7 @@ var create2 = {
14230
14231
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14231
14232
  const createToken3 = CONSUME(create);
14232
14233
  const silent2 = OPTION(() => CONSUME(silent));
14233
- const destination = SUBRULE1(graphRef, void 0);
14234
+ const destination = SUBRULE1(graphRef);
14234
14235
  return ACTION(() => C.factory.updateOperationCreate(
14235
14236
  destination,
14236
14237
  Boolean(silent2),
@@ -14244,7 +14245,7 @@ var create2 = {
14244
14245
  PRINT_WORD("SILENT");
14245
14246
  }
14246
14247
  });
14247
- SUBRULE(graphRefAll, ast.destination, void 0);
14248
+ SUBRULE(graphRefAll, ast.destination);
14248
14249
  }
14249
14250
  };
14250
14251
  function copyMoveAddOperation(operation) {
@@ -14253,9 +14254,9 @@ function copyMoveAddOperation(operation) {
14253
14254
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
14254
14255
  const op = CONSUME(operation);
14255
14256
  const silent2 = OPTION(() => CONSUME(silent));
14256
- const source = SUBRULE1(graphOrDefault, void 0);
14257
+ const source = SUBRULE1(graphOrDefault);
14257
14258
  CONSUME(to);
14258
- const destination = SUBRULE2(graphOrDefault, void 0);
14259
+ const destination = SUBRULE2(graphOrDefault);
14259
14260
  return ACTION(() => C.factory.updateOperationAddMoveCopy(
14260
14261
  unCapitalize(operation.name),
14261
14262
  source,
@@ -14271,9 +14272,9 @@ function copyMoveAddOperation(operation) {
14271
14272
  PRINT_WORD("SILENT");
14272
14273
  }
14273
14274
  });
14274
- SUBRULE(graphRefAll, ast.source, void 0);
14275
+ SUBRULE(graphRefAll, ast.source);
14275
14276
  F3.printFilter(ast, () => PRINT_WORD("TO"));
14276
- SUBRULE(graphRefAll, ast.destination, void 0);
14277
+ SUBRULE(graphRefAll, ast.destination);
14277
14278
  }
14278
14279
  };
14279
14280
  }
@@ -14284,7 +14285,7 @@ var quadPattern = {
14284
14285
  name: "quadPattern",
14285
14286
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14286
14287
  const open = CONSUME(symbols_exports.LCurly);
14287
- const val = SUBRULE1(quads, void 0);
14288
+ const val = SUBRULE1(quads);
14288
14289
  const close = CONSUME(symbols_exports.RCurly);
14289
14290
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14290
14291
  }
@@ -14294,7 +14295,7 @@ var quadData = {
14294
14295
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14295
14296
  const open = CONSUME(symbols_exports.LCurly);
14296
14297
  const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
14297
- const val = SUBRULE1(quads, void 0);
14298
+ const val = SUBRULE1(quads);
14298
14299
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14299
14300
  const close = CONSUME(symbols_exports.RCurly);
14300
14301
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
@@ -14310,7 +14311,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14310
14311
  if (name !== "insertData") {
14311
14312
  couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14312
14313
  }
14313
- const data = SUBRULE1(dataRule, void 0);
14314
+ const data = SUBRULE1(dataRule);
14314
14315
  if (name !== "insertData") {
14315
14316
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14316
14317
  }
@@ -14321,7 +14322,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14321
14322
  subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
14322
14323
  "{"
14323
14324
  ));
14324
- SUBRULE(quads, F3.wrap(ast.data, ast.loc), void 0);
14325
+ SUBRULE(quads, F3.wrap(ast.data, ast.loc));
14325
14326
  F3.printFilter(ast, () => PRINT_WORD("}"));
14326
14327
  }
14327
14328
  };
@@ -14334,23 +14335,23 @@ var modify = {
14334
14335
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
14335
14336
  const graph2 = OPTION1(() => {
14336
14337
  const withToken = CONSUME(modifyWith);
14337
- const graph3 = SUBRULE1(iri2, void 0);
14338
+ const graph3 = SUBRULE1(iri2);
14338
14339
  return { withToken, graph: graph3 };
14339
14340
  });
14340
14341
  const { insert, del } = OR([
14341
14342
  { ALT: () => {
14342
- const del2 = SUBRULE1(deleteClause2, void 0);
14343
- const insert2 = OPTION2(() => SUBRULE1(insertClause2, void 0));
14343
+ const del2 = SUBRULE1(deleteClause2);
14344
+ const insert2 = OPTION2(() => SUBRULE1(insertClause2));
14344
14345
  return { del: del2, insert: insert2 };
14345
14346
  } },
14346
14347
  { ALT: () => {
14347
- const insert2 = SUBRULE2(insertClause2, void 0);
14348
+ const insert2 = SUBRULE2(insertClause2);
14348
14349
  return { insert: insert2, del: void 0 };
14349
14350
  } }
14350
14351
  ]);
14351
- const using = SUBRULE1(usingClauseStar, void 0);
14352
+ const using = SUBRULE1(usingClauseStar);
14352
14353
  CONSUME(where);
14353
- const where2 = SUBRULE1(groupGraphPattern, void 0);
14354
+ const where2 = SUBRULE1(groupGraphPattern);
14354
14355
  return ACTION(() => C.factory.updateOperationModify(
14355
14356
  C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
14356
14357
  insert?.val ?? [],
@@ -14363,21 +14364,21 @@ var modify = {
14363
14364
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14364
14365
  if (ast.graph) {
14365
14366
  F3.printFilter(ast, () => PRINT_WORD("WITH"));
14366
- SUBRULE(iri2, ast.graph, void 0);
14367
+ SUBRULE(iri2, ast.graph);
14367
14368
  }
14368
14369
  if (ast.delete.length > 0) {
14369
14370
  F3.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14370
- SUBRULE(quads, F3.wrap(ast.delete, ast.loc), void 0);
14371
+ SUBRULE(quads, F3.wrap(ast.delete, ast.loc));
14371
14372
  F3.printFilter(ast, () => PRINT_WORD("}"));
14372
14373
  }
14373
14374
  if (ast.insert.length > 0) {
14374
14375
  F3.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14375
- SUBRULE(quads, F3.wrap(ast.insert, ast.loc), void 0);
14376
+ SUBRULE(quads, F3.wrap(ast.insert, ast.loc));
14376
14377
  F3.printFilter(ast, () => PRINT_WORD("}"));
14377
14378
  }
14378
- SUBRULE(usingClauseStar, ast.from, void 0);
14379
+ SUBRULE(usingClauseStar, ast.from);
14379
14380
  F3.printFilter(ast, () => PRINT_WORD("WHERE"));
14380
- SUBRULE(groupGraphPattern, ast.where, void 0);
14381
+ SUBRULE(groupGraphPattern, ast.where);
14381
14382
  }
14382
14383
  };
14383
14384
  var deleteClause2 = {
@@ -14385,7 +14386,7 @@ var deleteClause2 = {
14385
14386
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14386
14387
  const delToken = CONSUME(deleteClause);
14387
14388
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14388
- const del = SUBRULE(quadPattern, void 0);
14389
+ const del = SUBRULE(quadPattern);
14389
14390
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14390
14391
  return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14391
14392
  }
@@ -14394,7 +14395,7 @@ var insertClause2 = {
14394
14395
  name: "insertClause",
14395
14396
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14396
14397
  const insertToken = CONSUME(insertClause);
14397
- const insert = SUBRULE(quadPattern, void 0);
14398
+ const insert = SUBRULE(quadPattern);
14398
14399
  return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14399
14400
  }
14400
14401
  };
@@ -14407,7 +14408,7 @@ var graphOrDefault = {
14407
14408
  } },
14408
14409
  { ALT: () => {
14409
14410
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14410
- const name = SUBRULE1(iri2, void 0);
14411
+ const name = SUBRULE1(iri2);
14411
14412
  return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14412
14413
  } }
14413
14414
  ])
@@ -14416,18 +14417,18 @@ var graphRef = {
14416
14417
  name: "graphRef",
14417
14418
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14418
14419
  const graph2 = CONSUME(graph_exports.graph);
14419
- const val = SUBRULE(iri2, void 0);
14420
+ const val = SUBRULE(iri2);
14420
14421
  return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14421
14422
  },
14422
14423
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14423
14424
  F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
14424
- SUBRULE(iri2, ast.graph, void 0);
14425
+ SUBRULE(iri2, ast.graph);
14425
14426
  }
14426
14427
  };
14427
14428
  var graphRefAll = {
14428
14429
  name: "graphRefAll",
14429
14430
  impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
14430
- { ALT: () => SUBRULE(graphRef, void 0) },
14431
+ { ALT: () => SUBRULE(graphRef) },
14431
14432
  { ALT: () => {
14432
14433
  const def = CONSUME(graph_exports.default_);
14433
14434
  return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
@@ -14443,7 +14444,7 @@ var graphRefAll = {
14443
14444
  ]),
14444
14445
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14445
14446
  if (F3.isGraphRefSpecific(ast)) {
14446
- SUBRULE(graphRef, ast, void 0);
14447
+ SUBRULE(graphRef, ast);
14447
14448
  } else if (F3.isGraphRefDefault(ast)) {
14448
14449
  F3.printFilter(ast, () => PRINT_WORD("DEFAULT"));
14449
14450
  } else if (F3.isGraphRefNamed(ast)) {
@@ -14459,12 +14460,12 @@ var quads = {
14459
14460
  const quads2 = [];
14460
14461
  let last2;
14461
14462
  OPTION1(() => {
14462
- const triples = SUBRULE1(triplesTemplate, void 0);
14463
+ const triples = SUBRULE1(triplesTemplate);
14463
14464
  last2 = triples;
14464
14465
  ACTION(() => quads2.push(triples));
14465
14466
  });
14466
14467
  MANY(() => {
14467
- const notTriples = SUBRULE(quadsNotTriples, void 0);
14468
+ const notTriples = SUBRULE(quadsNotTriples);
14468
14469
  last2 = notTriples;
14469
14470
  quads2.push(notTriples);
14470
14471
  OPTION2(() => {
@@ -14473,7 +14474,7 @@ var quads = {
14473
14474
  return dotToken;
14474
14475
  });
14475
14476
  OPTION3(() => {
14476
- const triples = SUBRULE2(triplesTemplate, void 0);
14477
+ const triples = SUBRULE2(triplesTemplate);
14477
14478
  last2 = triples;
14478
14479
  ACTION(() => quads2.push(triples));
14479
14480
  });
@@ -14483,9 +14484,9 @@ var quads = {
14483
14484
  gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
14484
14485
  for (const quad of ast.val) {
14485
14486
  if (F3.isPattern(quad)) {
14486
- SUBRULE(triplesBlock, quad, void 0);
14487
+ SUBRULE(triplesBlock, quad);
14487
14488
  } else {
14488
- SUBRULE(quadsNotTriples, quad, void 0);
14489
+ SUBRULE(quadsNotTriples, quad);
14489
14490
  }
14490
14491
  }
14491
14492
  }
@@ -14494,9 +14495,9 @@ var quadsNotTriples = {
14494
14495
  name: "quadsNotTriples",
14495
14496
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14496
14497
  const graph2 = CONSUME(graph_exports.graph);
14497
- const name = SUBRULE1(varOrIri, void 0);
14498
+ const name = SUBRULE1(varOrIri);
14498
14499
  CONSUME(symbols_exports.LCurly);
14499
- const triples = OPTION(() => SUBRULE1(triplesTemplate, void 0));
14500
+ const triples = OPTION(() => SUBRULE1(triplesTemplate));
14500
14501
  const close = CONSUME(symbols_exports.RCurly);
14501
14502
  return ACTION(() => C.factory.graphQuads(
14502
14503
  name,
@@ -14506,9 +14507,9 @@ var quadsNotTriples = {
14506
14507
  },
14507
14508
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14508
14509
  F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
14509
- SUBRULE(varOrTerm, ast.graph, void 0);
14510
+ SUBRULE(varOrTerm, ast.graph);
14510
14511
  F3.printFilter(ast, () => PRINT_WORD("{"));
14511
- SUBRULE(triplesBlock, ast.triples, void 0);
14512
+ SUBRULE(triplesBlock, ast.triples);
14512
14513
  F3.printFilter(ast, () => PRINT_WORD("}"));
14513
14514
  }
14514
14515
  };
@@ -14594,7 +14595,7 @@ var F2 = new Factory();
14594
14595
  function isLangDir(dir) {
14595
14596
  return dir === "ltr" || dir === "rtl";
14596
14597
  }
14597
- function langTagHasCorrectDomain(literal) {
14598
+ function langTagHasCorrectRange(literal) {
14598
14599
  if (F2.isTermLiteralLangStr(literal)) {
14599
14600
  const dirSplit = literal.langOrIri.split("--");
14600
14601
  if (dirSplit.length > 1) {
@@ -14611,7 +14612,7 @@ var versionDecl = {
14611
14612
  name: "versionDecl",
14612
14613
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14613
14614
  const versionToken = CONSUME(version);
14614
- const identifier = SUBRULE(versionSpecifier, void 0);
14615
+ const identifier = SUBRULE(versionSpecifier);
14615
14616
  return ACTION(() => C.factory.contextDefinitionVersion(identifier.val, C.factory.sourceLocation(versionToken, identifier)));
14616
14617
  },
14617
14618
  gImpl: ({ PRINT_WORDS }) => (ast, { factory: F3 }) => {
@@ -14635,22 +14636,22 @@ var prologue2 = {
14635
14636
  impl: ({ SUBRULE, MANY, OR }) => () => {
14636
14637
  const result = [];
14637
14638
  MANY(() => OR([
14638
- { ALT: () => result.push(SUBRULE(grammar_exports.baseDecl, void 0)) },
14639
+ { ALT: () => result.push(SUBRULE(grammar_exports.baseDecl)) },
14639
14640
  // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
14640
14641
  // We might need to check this.
14641
- { ALT: () => result.push(SUBRULE(grammar_exports.prefixDecl, void 0)) },
14642
- { ALT: () => result.push(SUBRULE(versionDecl, void 0)) }
14642
+ { ALT: () => result.push(SUBRULE(grammar_exports.prefixDecl)) },
14643
+ { ALT: () => result.push(SUBRULE(versionDecl)) }
14643
14644
  ]));
14644
14645
  return result;
14645
14646
  },
14646
14647
  gImpl: ({ SUBRULE }) => (ast, { factory: F3 }) => {
14647
14648
  for (const context of ast) {
14648
14649
  if (F3.isContextDefinitionBase(context)) {
14649
- SUBRULE(grammar_exports.baseDecl, context, void 0);
14650
+ SUBRULE(grammar_exports.baseDecl, context);
14650
14651
  } else if (F3.isContextDefinitionPrefix(context)) {
14651
- SUBRULE(grammar_exports.prefixDecl, context, void 0);
14652
+ SUBRULE(grammar_exports.prefixDecl, context);
14652
14653
  } else if (F3.isContextDefinitionVersion(context)) {
14653
- SUBRULE(versionDecl, context, void 0);
14654
+ SUBRULE(versionDecl, context);
14654
14655
  }
14655
14656
  }
14656
14657
  }
@@ -14659,10 +14660,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
14659
14660
  return {
14660
14661
  name,
14661
14662
  impl: ({ ACTION, SUBRULE }) => (C) => {
14662
- const triple = SUBRULE(reifiedTriple, void 0);
14663
+ const triple = SUBRULE(reifiedTriple);
14663
14664
  const properties = SUBRULE(
14664
14665
  allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList,
14665
- { subject: ACTION(() => C.factory.dematerialized(triple.identifier)) }
14666
+ ACTION(() => C.factory.dematerialized(triple.identifier))
14666
14667
  );
14667
14668
  return ACTION(() => [triple, ...properties]);
14668
14669
  }
@@ -14673,37 +14674,40 @@ var reifiedTripleBlockPath = reifiedTripleBlockImpl("reifiedTripleBlockPath", tr
14673
14674
  var dataBlockValue2 = {
14674
14675
  name: "dataBlockValue",
14675
14676
  impl: ($) => (C) => $.OR2([
14676
- { ALT: () => grammar_exports.dataBlockValue.impl($)(C, void 0) },
14677
- { ALT: () => $.SUBRULE(tripleTermData, void 0) }
14677
+ { ALT: () => grammar_exports.dataBlockValue.impl($)(C) },
14678
+ { ALT: () => $.SUBRULE(tripleTermData) }
14678
14679
  ])
14679
14680
  };
14680
14681
  var reifier = {
14681
14682
  name: "reifier",
14682
14683
  impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
14683
- CONSUME(tilde);
14684
- const reifier2 = OPTION(() => SUBRULE(varOrReifierId, void 0));
14684
+ const tildeToken = CONSUME(tilde);
14685
+ const reifier2 = OPTION(() => SUBRULE(varOrReifierId));
14685
14686
  return ACTION(() => {
14686
14687
  if (reifier2 === void 0 && !C.parseMode.has("canCreateBlankNodes")) {
14687
14688
  throw new Error("Cannot create blanknodes in current parse mode");
14688
14689
  }
14689
- return reifier2 ?? C.factory.blankNode(void 0, C.factory.sourceLocation());
14690
+ return C.factory.wrap(
14691
+ reifier2 ?? C.factory.blankNode(void 0, C.factory.sourceLocation()),
14692
+ C.factory.sourceLocation(tildeToken, reifier2)
14693
+ );
14690
14694
  });
14691
14695
  }
14692
14696
  };
14693
14697
  var varOrReifierId = {
14694
14698
  name: "varOrReifierId",
14695
14699
  impl: ({ SUBRULE, OR }) => (C) => OR([
14696
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
14697
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14698
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) }
14700
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_) },
14701
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14702
+ { ALT: () => SUBRULE(grammar_exports.blankNode) }
14699
14703
  ])
14700
14704
  };
14701
14705
  function triplesSameSubjectImpl2(name, allowPaths) {
14702
14706
  return {
14703
14707
  name,
14704
14708
  impl: ($) => (C) => $.OR2([
14705
- { ALT: () => allowPaths ? grammar_exports.triplesSameSubjectPath.impl($)(C, void 0) : grammar_exports.triplesSameSubject.impl($)(C, void 0) },
14706
- { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock, void 0) }
14709
+ { ALT: () => allowPaths ? grammar_exports.triplesSameSubjectPath.impl($)(C) : grammar_exports.triplesSameSubject.impl($)(C) },
14710
+ { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) }
14707
14711
  ])
14708
14712
  };
14709
14713
  }
@@ -14712,11 +14716,10 @@ var triplesSameSubjectPath2 = triplesSameSubjectImpl2("triplesSameSubjectPath",
14712
14716
  function objectImpl2(name, allowPaths) {
14713
14717
  return {
14714
14718
  name,
14715
- impl: ({ ACTION, SUBRULE }) => (C, arg) => {
14716
- const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2, void 0);
14717
- const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation, void 0);
14719
+ impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
14720
+ const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2);
14721
+ const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
14718
14722
  return ACTION(() => {
14719
- const { subject, predicate } = arg;
14720
14723
  const F3 = C.factory;
14721
14724
  if (F3.isPathPure(predicate) && annotationVal.length > 0) {
14722
14725
  throw new Error("Note 17 violation");
@@ -14742,9 +14745,9 @@ function annotationImpl(name, allowPaths) {
14742
14745
  MANY(() => {
14743
14746
  OR([
14744
14747
  { ALT: () => {
14745
- const node = SUBRULE(reifier, void 0);
14748
+ const node = SUBRULE(reifier);
14746
14749
  annotations.push(node);
14747
- currentReifier = node;
14750
+ currentReifier = node.val;
14748
14751
  } },
14749
14752
  { ALT: () => {
14750
14753
  ACTION(() => {
@@ -14768,11 +14771,11 @@ function annotationImpl(name, allowPaths) {
14768
14771
  },
14769
14772
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14770
14773
  for (const annotation2 of ast) {
14771
- if (F3.isTerm(annotation2)) {
14772
- F3.printFilter(annotation2, () => PRINT_WORD("~"));
14773
- SUBRULE(graphNodePath2, annotation2, void 0);
14774
+ if (F3.isTripleCollectionBlankNodeProperties(annotation2)) {
14775
+ SUBRULE(annotationBlockPath, annotation2);
14774
14776
  } else {
14775
- SUBRULE(annotationBlockPath, annotation2, void 0);
14777
+ F3.printFilter(annotation2, () => PRINT_WORD("~"));
14778
+ SUBRULE(graphNodePath2, annotation2.val);
14776
14779
  }
14777
14780
  }
14778
14781
  }
@@ -14787,7 +14790,7 @@ function annotationBlockImpl(name, allowPaths) {
14787
14790
  const open = CONSUME(annotationOpen);
14788
14791
  const res = SUBRULE(
14789
14792
  allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty,
14790
- { subject: arg }
14793
+ arg
14791
14794
  );
14792
14795
  const close = CONSUME(annotationClose);
14793
14796
  return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
@@ -14801,11 +14804,11 @@ function annotationBlockImpl(name, allowPaths) {
14801
14804
  for (const triple of ast.triples) {
14802
14805
  HANDLE_LOC(triple, () => {
14803
14806
  if (F3.isTerm(triple.predicate)) {
14804
- SUBRULE(graphNodePath2, triple.predicate, void 0);
14807
+ SUBRULE(graphNodePath2, triple.predicate);
14805
14808
  } else {
14806
14809
  SUBRULE(grammar_exports.pathGenerator, triple.predicate, void 0);
14807
14810
  }
14808
- SUBRULE(graphNodePath2, triple.object, void 0);
14811
+ SUBRULE(graphNodePath2, triple.object);
14809
14812
  F3.printFilter(ast, () => PRINT_WORD(";"));
14810
14813
  });
14811
14814
  }
@@ -14818,38 +14821,38 @@ var annotationBlock = annotationBlockImpl("annotationBlock", false);
14818
14821
  var graphNode2 = {
14819
14822
  name: "graphNode",
14820
14823
  impl: ($) => (C) => $.OR2([
14821
- { ALT: () => grammar_exports.graphNode.impl($)(C, void 0) },
14822
- { ALT: () => $.SUBRULE(reifiedTriple, void 0) }
14824
+ { ALT: () => grammar_exports.graphNode.impl($)(C) },
14825
+ { ALT: () => $.SUBRULE(reifiedTriple) }
14823
14826
  ])
14824
14827
  };
14825
14828
  var graphNodePath2 = {
14826
14829
  name: "graphNodePath",
14827
14830
  impl: ($) => (C) => $.OR2([
14828
- { ALT: () => grammar_exports.graphNodePath.impl($)(C, void 0) },
14829
- { ALT: () => $.SUBRULE(reifiedTriple, void 0) }
14831
+ { ALT: () => grammar_exports.graphNodePath.impl($)(C) },
14832
+ { ALT: () => $.SUBRULE(reifiedTriple) }
14830
14833
  ]),
14831
- gImpl: ($) => (ast, C, params) => {
14834
+ gImpl: ($) => (ast, C) => {
14832
14835
  if (C.factory.isTripleCollectionReifiedTriple(ast)) {
14833
- $.SUBRULE(reifiedTriple, ast, void 0);
14836
+ $.SUBRULE(reifiedTriple, ast);
14834
14837
  } else {
14835
- grammar_exports.graphNodePath.gImpl($)(ast, C, params);
14838
+ grammar_exports.graphNodePath.gImpl($)(ast, C);
14836
14839
  }
14837
14840
  }
14838
14841
  };
14839
14842
  var varOrTerm2 = {
14840
14843
  name: "varOrTerm",
14841
14844
  impl: ({ ACTION, SUBRULE, OR, CONSUME }) => (C) => OR([
14842
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
14843
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14844
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
14845
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
14846
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
14847
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
14845
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_) },
14846
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14847
+ { ALT: () => SUBRULE(rdfLiteral2) },
14848
+ { ALT: () => SUBRULE(grammar_exports.numericLiteral) },
14849
+ { ALT: () => SUBRULE(grammar_exports.booleanLiteral) },
14850
+ { ALT: () => SUBRULE(grammar_exports.blankNode) },
14848
14851
  { ALT: () => {
14849
14852
  const token = CONSUME(lexer_exports.terminals.nil);
14850
14853
  return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
14851
14854
  } },
14852
- { ALT: () => SUBRULE(tripleTerm, void 0) }
14855
+ { ALT: () => SUBRULE(tripleTerm) }
14853
14856
  ])
14854
14857
  // Generation remains untouched - go through graphTerm
14855
14858
  };
@@ -14857,10 +14860,10 @@ var reifiedTriple = {
14857
14860
  name: "reifiedTriple",
14858
14861
  impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
14859
14862
  const open = CONSUME(reificationOpen);
14860
- const subject = SUBRULE(reifiedTripleSubject, void 0);
14861
- const predicate = SUBRULE(grammar_exports.verb, void 0);
14862
- const object3 = SUBRULE(reifiedTripleObject, void 0);
14863
- const reifierVal = OPTION(() => SUBRULE(reifier, void 0));
14863
+ const subject = SUBRULE(reifiedTripleSubject);
14864
+ const predicate = SUBRULE(grammar_exports.verb);
14865
+ const object3 = SUBRULE(reifiedTripleObject);
14866
+ const reifierVal = OPTION(() => SUBRULE(reifier));
14864
14867
  const close = CONSUME(reificationClose);
14865
14868
  return ACTION(() => {
14866
14869
  if (reifierVal === void 0 && !C.parseMode.has("canCreateBlankNodes")) {
@@ -14871,35 +14874,35 @@ var reifiedTriple = {
14871
14874
  subject,
14872
14875
  predicate,
14873
14876
  object3,
14874
- reifierVal
14877
+ reifierVal?.val
14875
14878
  );
14876
14879
  });
14877
14880
  },
14878
14881
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14879
14882
  F3.printFilter(ast, () => PRINT_WORD("<<"));
14880
14883
  const triple = ast.triples[0];
14881
- SUBRULE(graphNodePath2, triple.subject, void 0);
14884
+ SUBRULE(graphNodePath2, triple.subject);
14882
14885
  if (F3.isPathPure(triple.predicate)) {
14883
14886
  SUBRULE(grammar_exports.pathGenerator, triple.predicate, void 0);
14884
14887
  } else {
14885
- SUBRULE(graphNodePath2, triple.predicate, void 0);
14888
+ SUBRULE(graphNodePath2, triple.predicate);
14886
14889
  }
14887
- SUBRULE(graphNodePath2, triple.object, void 0);
14888
- SUBRULE(annotationPath, [ast.identifier], void 0);
14890
+ SUBRULE(graphNodePath2, triple.object);
14891
+ SUBRULE(annotationPath, [F3.wrap(ast.identifier, ast.identifier.loc)]);
14889
14892
  F3.printFilter(ast, () => PRINT_WORD(">>"));
14890
14893
  }
14891
14894
  };
14892
14895
  var reifiedTripleSubject = {
14893
14896
  name: "reifiedTripleSubject",
14894
14897
  impl: ({ OR, SUBRULE }) => (C) => OR([
14895
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
14896
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14897
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
14898
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
14899
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
14900
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
14901
- { ALT: () => SUBRULE(reifiedTriple, void 0) },
14902
- { ALT: () => SUBRULE(tripleTerm, void 0) }
14898
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_) },
14899
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14900
+ { ALT: () => SUBRULE(rdfLiteral2) },
14901
+ { ALT: () => SUBRULE(grammar_exports.numericLiteral) },
14902
+ { ALT: () => SUBRULE(grammar_exports.booleanLiteral) },
14903
+ { ALT: () => SUBRULE(grammar_exports.blankNode) },
14904
+ { ALT: () => SUBRULE(reifiedTriple) },
14905
+ { ALT: () => SUBRULE(tripleTerm) }
14903
14906
  ])
14904
14907
  };
14905
14908
  var reifiedTripleObject = {
@@ -14910,30 +14913,30 @@ var tripleTerm = {
14910
14913
  name: "tripleTerm",
14911
14914
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
14912
14915
  const open = CONSUME(tripleTermOpen);
14913
- const subject = SUBRULE(tripleTermSubject, void 0);
14914
- const predicate = SUBRULE(grammar_exports.verb, void 0);
14915
- const object3 = SUBRULE(tripleTermObject, void 0);
14916
+ const subject = SUBRULE(tripleTermSubject);
14917
+ const predicate = SUBRULE(grammar_exports.verb);
14918
+ const object3 = SUBRULE(tripleTermObject);
14916
14919
  const close = CONSUME(tripleTermClose);
14917
14920
  return ACTION(() => C.factory.termTriple(subject, predicate, object3, C.factory.sourceLocation(open, close)));
14918
14921
  },
14919
14922
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F3 }) => {
14920
14923
  F3.printFilter(ast, () => PRINT_WORD("<<("));
14921
- SUBRULE(graphNodePath2, ast.subject, void 0);
14922
- SUBRULE(graphNodePath2, ast.predicate, void 0);
14923
- SUBRULE(graphNodePath2, ast.object, void 0);
14924
+ SUBRULE(graphNodePath2, ast.subject);
14925
+ SUBRULE(graphNodePath2, ast.predicate);
14926
+ SUBRULE(graphNodePath2, ast.object);
14924
14927
  F3.printFilter(ast, () => PRINT_WORD(")>>"));
14925
14928
  }
14926
14929
  };
14927
14930
  var tripleTermSubject = {
14928
14931
  name: "tripleTermSubject",
14929
14932
  impl: ({ SUBRULE, OR }) => (C) => OR([
14930
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
14931
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14932
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
14933
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
14934
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
14935
- { ALT: () => SUBRULE(grammar_exports.blankNode, void 0) },
14936
- { ALT: () => SUBRULE(tripleTerm, void 0) }
14933
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_) },
14934
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14935
+ { ALT: () => SUBRULE(rdfLiteral2) },
14936
+ { ALT: () => SUBRULE(grammar_exports.numericLiteral) },
14937
+ { ALT: () => SUBRULE(grammar_exports.booleanLiteral) },
14938
+ { ALT: () => SUBRULE(grammar_exports.blankNode) },
14939
+ { ALT: () => SUBRULE(tripleTerm) }
14937
14940
  ])
14938
14941
  };
14939
14942
  var tripleTermObject = {
@@ -14944,15 +14947,15 @@ var tripleTermData = {
14944
14947
  name: "tripleTermData",
14945
14948
  impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
14946
14949
  const open = CONSUME(tripleTermOpen);
14947
- const subject = SUBRULE(tripleTermDataSubject, void 0);
14950
+ const subject = SUBRULE(tripleTermDataSubject);
14948
14951
  const predicate = OR([
14949
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14952
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14950
14953
  { ALT: () => {
14951
14954
  const token = CONSUME(lexer_exports.a);
14952
14955
  return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /* TYPE */));
14953
14956
  } }
14954
14957
  ]);
14955
- const object3 = SUBRULE(tripleTermDataObject, void 0);
14958
+ const object3 = SUBRULE(tripleTermDataObject);
14956
14959
  const close = CONSUME(tripleTermClose);
14957
14960
  return ACTION(() => C.factory.termTriple(subject, predicate, object3, C.factory.sourceLocation(open, close)));
14958
14961
  }
@@ -14960,11 +14963,11 @@ var tripleTermData = {
14960
14963
  var tripleTermDataSubject = {
14961
14964
  name: "tripleTermDataSubject",
14962
14965
  impl: ({ OR, SUBRULE }) => () => OR([
14963
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
14964
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
14965
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
14966
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
14967
- { ALT: () => SUBRULE(tripleTermData, void 0) }
14966
+ { ALT: () => SUBRULE(grammar_exports.iri) },
14967
+ { ALT: () => SUBRULE(rdfLiteral2) },
14968
+ { ALT: () => SUBRULE(grammar_exports.numericLiteral) },
14969
+ { ALT: () => SUBRULE(grammar_exports.booleanLiteral) },
14970
+ { ALT: () => SUBRULE(tripleTermData) }
14968
14971
  ])
14969
14972
  };
14970
14973
  var tripleTermDataObject = {
@@ -14974,17 +14977,17 @@ var tripleTermDataObject = {
14974
14977
  var primaryExpression2 = {
14975
14978
  name: "primaryExpression",
14976
14979
  impl: ($) => (C) => $.OR2([
14977
- { ALT: () => grammar_exports.primaryExpression.impl($)(C, void 0) },
14978
- { ALT: () => $.SUBRULE(exprTripleTerm, void 0) }
14980
+ { ALT: () => grammar_exports.primaryExpression.impl($)(C) },
14981
+ { ALT: () => $.SUBRULE(exprTripleTerm) }
14979
14982
  ])
14980
14983
  };
14981
14984
  var exprTripleTerm = {
14982
14985
  name: "exprTripleTerm",
14983
14986
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
14984
14987
  const open = CONSUME(tripleTermOpen);
14985
- const subject = SUBRULE(exprTripleTermSubject, void 0);
14986
- const predicate = SUBRULE(grammar_exports.verb, void 0);
14987
- const object3 = SUBRULE(exprTripleTermObject, void 0);
14988
+ const subject = SUBRULE(exprTripleTermSubject);
14989
+ const predicate = SUBRULE(grammar_exports.verb);
14990
+ const object3 = SUBRULE(exprTripleTermObject);
14988
14991
  const close = CONSUME(tripleTermClose);
14989
14992
  return ACTION(() => C.factory.termTriple(
14990
14993
  subject,
@@ -14997,12 +15000,12 @@ var exprTripleTerm = {
14997
15000
  var exprTripleTermSubject = {
14998
15001
  name: "exprTripleTermSubject",
14999
15002
  impl: ({ OR, SUBRULE }) => (C) => OR([
15000
- { ALT: () => SUBRULE(grammar_exports.iri, void 0) },
15001
- { ALT: () => SUBRULE(rdfLiteral2, void 0) },
15002
- { ALT: () => SUBRULE(grammar_exports.numericLiteral, void 0) },
15003
- { ALT: () => SUBRULE(grammar_exports.booleanLiteral, void 0) },
15004
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_, void 0) },
15005
- { ALT: () => SUBRULE(exprTripleTerm, void 0) }
15003
+ { ALT: () => SUBRULE(grammar_exports.iri) },
15004
+ { ALT: () => SUBRULE(rdfLiteral2) },
15005
+ { ALT: () => SUBRULE(grammar_exports.numericLiteral) },
15006
+ { ALT: () => SUBRULE(grammar_exports.booleanLiteral) },
15007
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(grammar_exports.var_) },
15008
+ { ALT: () => SUBRULE(exprTripleTerm) }
15006
15009
  ])
15007
15010
  };
15008
15011
  var exprTripleTermObject = {
@@ -15021,22 +15024,22 @@ var builtinObject = funcExpr1(builtinOBJECT);
15021
15024
  var builtInCall2 = {
15022
15025
  name: "builtInCall",
15023
15026
  impl: ($) => (C) => $.OR2([
15024
- { ALT: () => grammar_exports.builtInCall.impl($)(C, void 0) },
15025
- { ALT: () => $.SUBRULE(builtinLangDir2, void 0) },
15026
- { ALT: () => $.SUBRULE(builtinLangStrDir, void 0) },
15027
- { ALT: () => $.SUBRULE(builtinHasLang2, void 0) },
15028
- { ALT: () => $.SUBRULE(builtinHasLangDir2, void 0) },
15029
- { ALT: () => $.SUBRULE(builtinIsTriple, void 0) },
15030
- { ALT: () => $.SUBRULE(builtinTriple, void 0) },
15031
- { ALT: () => $.SUBRULE(builtinSubject, void 0) },
15032
- { ALT: () => $.SUBRULE(builtinPredicate, void 0) },
15033
- { ALT: () => $.SUBRULE(builtinObject, void 0) }
15027
+ { ALT: () => grammar_exports.builtInCall.impl($)(C) },
15028
+ { ALT: () => $.SUBRULE(builtinLangDir2) },
15029
+ { ALT: () => $.SUBRULE(builtinLangStrDir) },
15030
+ { ALT: () => $.SUBRULE(builtinHasLang2) },
15031
+ { ALT: () => $.SUBRULE(builtinHasLangDir2) },
15032
+ { ALT: () => $.SUBRULE(builtinIsTriple) },
15033
+ { ALT: () => $.SUBRULE(builtinTriple) },
15034
+ { ALT: () => $.SUBRULE(builtinSubject) },
15035
+ { ALT: () => $.SUBRULE(builtinPredicate) },
15036
+ { ALT: () => $.SUBRULE(builtinObject) }
15034
15037
  ])
15035
15038
  };
15036
15039
  var rdfLiteral2 = {
15037
15040
  name: "rdfLiteral",
15038
15041
  impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR }) => (C) => {
15039
- const value = SUBRULE(grammar_exports.string, void 0);
15042
+ const value = SUBRULE(grammar_exports.string);
15040
15043
  return OPTION(() => OR([
15041
15044
  { ALT: () => {
15042
15045
  const langTag2 = CONSUME(LANG_DIR);
@@ -15046,13 +15049,13 @@ var rdfLiteral2 = {
15046
15049
  value.value,
15047
15050
  langTag2.image.slice(1).toLowerCase()
15048
15051
  );
15049
- langTagHasCorrectDomain(literal);
15052
+ langTagHasCorrectRange(literal);
15050
15053
  return literal;
15051
15054
  });
15052
15055
  } },
15053
15056
  { ALT: () => {
15054
15057
  CONSUME(lexer_exports.symbols.hathat);
15055
- const iriVal = SUBRULE(grammar_exports.iri, void 0);
15058
+ const iriVal = SUBRULE(grammar_exports.iri);
15056
15059
  return ACTION(() => C.factory.literalTerm(
15057
15060
  C.factory.sourceLocation(value, iriVal),
15058
15061
  value.value,
@@ -15069,17 +15072,17 @@ var generateTriplesBlock = {
15069
15072
  HANDLE_LOC(triple, () => {
15070
15073
  const nextTriple = ast.triples.at(index);
15071
15074
  if (F3.isTripleCollection(triple)) {
15072
- SUBRULE(graphNodePath2, triple, void 0);
15075
+ SUBRULE(graphNodePath2, triple);
15073
15076
  F3.printFilter(triple, () => PRINT_WORD("."));
15074
15077
  } else {
15075
- SUBRULE(graphNodePath2, triple.subject, void 0);
15078
+ SUBRULE(graphNodePath2, triple.subject);
15076
15079
  if (F3.isPathPure(triple.predicate)) {
15077
15080
  SUBRULE(grammar_exports.pathGenerator, triple.predicate, void 0);
15078
15081
  } else {
15079
- SUBRULE(graphNodePath2, triple.predicate, void 0);
15082
+ SUBRULE(graphNodePath2, triple.predicate);
15080
15083
  }
15081
- SUBRULE(graphNodePath2, triple.object, void 0);
15082
- SUBRULE(annotationPath, triple.annotations ?? [], void 0);
15084
+ SUBRULE(graphNodePath2, triple.object);
15085
+ SUBRULE(annotationPath, triple.annotations ?? []);
15083
15086
  if (nextTriple === void 0 || F3.isTripleCollection(nextTriple) || !F3.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
15084
15087
  F3.printFilter(ast, () => PRINT_WORD("."));
15085
15088
  } else if (F3.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
@@ -15094,11 +15097,11 @@ var generateTriplesBlock = {
15094
15097
  };
15095
15098
  var generateGraphTerm = {
15096
15099
  name: "graphTerm",
15097
- gImpl: ($) => (ast, C, par) => {
15100
+ gImpl: ($) => (ast, C) => {
15098
15101
  if (C.factory.isTermTriple(ast)) {
15099
- $.SUBRULE(tripleTerm, ast, void 0);
15102
+ $.SUBRULE(tripleTerm, ast);
15100
15103
  } else {
15101
- grammar_exports.graphTerm.gImpl($)(ast, C, par);
15104
+ grammar_exports.graphTerm.gImpl($)(ast, C);
15102
15105
  }
15103
15106
  }
15104
15107
  };