@traqula/rules-sparql-1-1-adjust 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.
Files changed (3) hide show
  1. package/README.md +0 -2
  2. package/lib/index.cjs +1445 -1444
  3. package/package.json +4 -4
package/lib/index.cjs CHANGED
@@ -11337,7 +11337,7 @@ function stringEscapedLexical(str2) {
11337
11337
  var rdfLiteral = {
11338
11338
  name: "rdfLiteral",
11339
11339
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
11340
- const value = SUBRULE1(string, void 0);
11340
+ const value = SUBRULE1(string);
11341
11341
  return OPTION(() => OR([
11342
11342
  { ALT: () => {
11343
11343
  const lang2 = CONSUME(terminals_exports.langTag);
@@ -11349,7 +11349,7 @@ var rdfLiteral = {
11349
11349
  } },
11350
11350
  { ALT: () => {
11351
11351
  CONSUME(symbols_exports.hathat);
11352
- const iriVal = SUBRULE1(iri2, void 0);
11352
+ const iriVal = SUBRULE1(iri2);
11353
11353
  return ACTION(() => C.factory.literalTerm(
11354
11354
  C.factory.sourceLocation(value, iriVal),
11355
11355
  value.value,
@@ -11365,7 +11365,7 @@ var rdfLiteral = {
11365
11365
  factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11366
11366
  } else {
11367
11367
  factory.printFilter(ast, () => PRINT("^^"));
11368
- SUBRULE(iri2, ast.langOrIri, void 0);
11368
+ SUBRULE(iri2, ast.langOrIri);
11369
11369
  }
11370
11370
  }
11371
11371
  }
@@ -11373,9 +11373,9 @@ var rdfLiteral = {
11373
11373
  var numericLiteral = {
11374
11374
  name: "numericLiteral",
11375
11375
  impl: ({ SUBRULE, OR }) => () => OR([
11376
- { ALT: () => SUBRULE(numericLiteralUnsigned, void 0) },
11377
- { ALT: () => SUBRULE(numericLiteralPositive, void 0) },
11378
- { ALT: () => SUBRULE(numericLiteralNegative, void 0) }
11376
+ { ALT: () => SUBRULE(numericLiteralUnsigned) },
11377
+ { ALT: () => SUBRULE(numericLiteralPositive) },
11378
+ { ALT: () => SUBRULE(numericLiteralNegative) }
11379
11379
  ])
11380
11380
  };
11381
11381
  var numericLiteralUnsigned = {
@@ -11483,10 +11483,10 @@ var string = {
11483
11483
  var iri2 = {
11484
11484
  name: "iri",
11485
11485
  impl: ({ SUBRULE, OR }) => () => OR([
11486
- { ALT: () => SUBRULE(iriFull, void 0) },
11487
- { ALT: () => SUBRULE(prefixedName, void 0) }
11486
+ { ALT: () => SUBRULE(iriFull) },
11487
+ { ALT: () => SUBRULE(prefixedName) }
11488
11488
  ]),
11489
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, void 0) : SUBRULE(iriFull, ast, void 0)
11489
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11490
11490
  };
11491
11491
  var iriFull = {
11492
11492
  name: "iriFull",
@@ -11558,11 +11558,11 @@ function datasetClauseUsing(name, token) {
11558
11558
  const start = CONSUME(token);
11559
11559
  return OR([
11560
11560
  { ALT: () => {
11561
- const iri3 = SUBRULE(defaultGraphClause, void 0);
11561
+ const iri3 = SUBRULE(defaultGraphClause);
11562
11562
  return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11563
11563
  } },
11564
11564
  { ALT: () => {
11565
- const namedClause = SUBRULE(namedGraphClause, void 0);
11565
+ const namedClause = SUBRULE(namedGraphClause);
11566
11566
  return ACTION(() => C.factory.wrap({
11567
11567
  clauseType: "named",
11568
11568
  value: namedClause.val
@@ -11575,7 +11575,7 @@ function datasetClauseUsing(name, token) {
11575
11575
  var datasetClause = datasetClauseUsing("datasetClause", from);
11576
11576
  var defaultGraphClause = {
11577
11577
  name: "defaultGraphClause",
11578
- impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, void 0)
11578
+ impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
11579
11579
  };
11580
11580
  var usingClause2 = datasetClauseUsing("usingClause", usingClause);
11581
11581
  function datasetClauseUsingStar(name, subRule, fromUsing) {
@@ -11584,7 +11584,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11584
11584
  impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
11585
11585
  const clauses = [];
11586
11586
  MANY(() => {
11587
- const clause = SUBRULE(subRule, void 0);
11587
+ const clause = SUBRULE(subRule);
11588
11588
  clauses.push(clause);
11589
11589
  });
11590
11590
  return ACTION(() => C.factory.datasetClauses(
@@ -11598,7 +11598,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11598
11598
  if (clause.clauseType === "named") {
11599
11599
  F2.printFilter(ast, () => PRINT_WORD("NAMED"));
11600
11600
  }
11601
- SUBRULE(iri2, clause.value, void 0);
11601
+ SUBRULE(iri2, clause.value);
11602
11602
  }
11603
11603
  }
11604
11604
  };
@@ -11609,1389 +11609,1390 @@ var namedGraphClause = {
11609
11609
  name: "namedGraphClause",
11610
11610
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11611
11611
  const named2 = CONSUME(graph_exports.named);
11612
- const iri3 = SUBRULE(sourceSelector, void 0);
11612
+ const iri3 = SUBRULE(sourceSelector);
11613
11613
  return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11614
11614
  }
11615
11615
  };
11616
11616
  var sourceSelector = {
11617
11617
  name: "sourceSelector",
11618
- impl: ({ SUBRULE }) => () => SUBRULE(iri2, void 0)
11618
+ impl: ({ SUBRULE }) => () => SUBRULE(iri2)
11619
11619
  };
11620
11620
 
11621
- // ../rules-sparql-1-1/lib/grammar/general.ts
11622
- var prologue = {
11623
- name: "prologue",
11624
- impl: ({ SUBRULE, MANY, OR }) => () => {
11625
- const result = [];
11626
- MANY(() => OR([
11627
- { ALT: () => result.push(SUBRULE(baseDecl2, void 0)) },
11628
- // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
11629
- // We might need to check this.
11630
- { ALT: () => result.push(SUBRULE(prefixDecl2, void 0)) }
11631
- ]));
11632
- return result;
11633
- },
11634
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11635
- for (const context of ast) {
11636
- if (F2.isContextDefinitionBase(context)) {
11637
- SUBRULE(baseDecl2, context, void 0);
11638
- } else if (F2.isContextDefinitionPrefix(context)) {
11639
- SUBRULE(prefixDecl2, context, void 0);
11640
- }
11641
- }
11642
- }
11643
- };
11644
- var baseDecl2 = {
11645
- name: "baseDecl",
11646
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11647
- const base = CONSUME(baseDecl);
11648
- const val = SUBRULE(iriFull, void 0);
11649
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11650
- },
11651
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11652
- F2.printFilter(ast, () => PRINT_WORD("BASE"));
11653
- SUBRULE(iri2, ast.value, void 0);
11654
- }
11655
- };
11656
- var prefixDecl2 = {
11657
- name: "prefixDecl",
11658
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11659
- const prefix = CONSUME(prefixDecl);
11660
- const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11661
- const value = SUBRULE(iriFull, void 0);
11662
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11663
- },
11664
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11665
- F2.printFilter(ast, () => {
11666
- PRINT_WORDS("PREFIX", `${ast.key}:`);
11667
- });
11668
- SUBRULE(iri2, ast.value, void 0);
11669
- }
11670
- };
11671
- var verb = {
11672
- name: "verb",
11673
- impl: ({ SUBRULE, OR }) => () => OR([
11674
- { ALT: () => SUBRULE(varOrIri, void 0) },
11675
- { ALT: () => SUBRULE(verbA, void 0) }
11676
- ])
11677
- };
11678
- var varOrTerm = {
11679
- name: "varOrTerm",
11680
- impl: ({ SUBRULE, OR }) => (C) => OR([
11681
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11682
- { ALT: () => SUBRULE(graphTerm, void 0) }
11683
- ]),
11684
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11685
- if (F2.isTermVariable(ast)) {
11686
- return SUBRULE(var_, ast, void 0);
11687
- }
11688
- return SUBRULE(graphTerm, ast, void 0);
11689
- }
11690
- };
11691
- var varOrIri = {
11692
- name: "varOrIri",
11693
- impl: ({ SUBRULE, OR }) => (C) => OR([
11694
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11695
- { ALT: () => SUBRULE(iri2, void 0) }
11696
- ])
11697
- };
11698
- var var_ = {
11699
- name: "var",
11700
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
11701
- const varToken = OR([
11702
- { ALT: () => CONSUME(terminals_exports.var1) },
11703
- { ALT: () => CONSUME(terminals_exports.var2) }
11704
- ]);
11705
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11706
- },
11707
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11708
- F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11709
- }
11710
- };
11711
- var graphTerm = {
11712
- name: "graphTerm",
11713
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
11714
- { ALT: () => SUBRULE(iri2, void 0) },
11715
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
11716
- { ALT: () => SUBRULE(numericLiteral, void 0) },
11717
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
11718
- { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
11719
- { ALT: () => {
11720
- const tokenNil = CONSUME(terminals_exports.nil);
11721
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
11722
- } }
11723
- ]),
11724
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11725
- if (F2.isTermNamed(ast)) {
11726
- SUBRULE(iri2, ast, void 0);
11727
- } else if (F2.isTermLiteral(ast)) {
11728
- SUBRULE(rdfLiteral, ast, void 0);
11729
- } else if (F2.isTermBlank(ast)) {
11730
- SUBRULE(blankNode, ast, void 0);
11731
- }
11732
- }
11733
- };
11734
-
11735
- // ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
11736
- var path = {
11737
- name: "path",
11738
- impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
11739
- };
11740
- var pathGenerator = {
11741
- name: "path",
11742
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
11743
- if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
11744
- SUBRULE(iri2, ast, void 0);
11745
- } else {
11746
- F2.printFilter(ast, () => braces && PRINT("("));
11747
- switch (ast.subType) {
11748
- case "|":
11749
- case "/": {
11750
- const [head2, ...tail] = ast.items;
11751
- SUBRULE(pathGenerator, head2, braces);
11752
- for (const val of tail) {
11753
- F2.printFilter(ast, () => PRINT(ast.subType));
11754
- SUBRULE(pathGenerator, val, braces);
11755
- }
11756
- break;
11757
- }
11758
- case "^":
11759
- F2.printFilter(ast, () => PRINT("^"));
11760
- SUBRULE(pathGenerator, ast.items[0], braces);
11761
- break;
11762
- case "?":
11763
- case "*":
11764
- case "+":
11765
- SUBRULE(pathGenerator, ast.items[0], braces);
11766
- F2.printFilter(ast, () => PRINT(ast.subType));
11767
- break;
11768
- case "!":
11769
- F2.printFilter(ast, () => PRINT("!"));
11770
- F2.printFilter(ast, () => PRINT("("));
11771
- SUBRULE(pathGenerator, ast.items[0], false);
11772
- F2.printFilter(ast, () => PRINT(")"));
11773
- break;
11774
- }
11775
- F2.printFilter(ast, () => braces && PRINT(")"));
11776
- }
11777
- }
11778
- };
11779
- function pathChainHelper(name, SEP, subType, subRule) {
11621
+ // ../rules-sparql-1-1/lib/expressionHelpers.ts
11622
+ function funcExpr1(func) {
11780
11623
  return {
11781
- name,
11782
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
11783
- const head2 = SUBRULE1(subRule, void 0);
11784
- let tailEnd = head2;
11785
- const tail = [];
11786
- MANY(() => {
11787
- CONSUME(SEP);
11788
- tailEnd = SUBRULE2(subRule, void 0);
11789
- tail.push(tailEnd);
11790
- });
11791
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
11624
+ name: unCapitalize(func.name),
11625
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11626
+ const operator = CONSUME(func);
11627
+ CONSUME(symbols_exports.LParen);
11628
+ const arg = SUBRULE(expression);
11629
+ const close = CONSUME(symbols_exports.RParen);
11630
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11792
11631
  }
11793
11632
  };
11794
11633
  }
11795
- var pathEltOrInverse = {
11796
- name: "pathEltOrInverse",
11797
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
11798
- { ALT: () => SUBRULE1(pathElt, void 0) },
11799
- { ALT: () => {
11800
- const hat2 = CONSUME(symbols_exports.hat);
11801
- const item = SUBRULE2(pathElt, void 0);
11802
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
11803
- } }
11804
- ])
11805
- };
11806
- var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
11807
- var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
11808
- var pathElt = {
11809
- name: "pathElt",
11810
- impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
11811
- const item = SUBRULE(pathPrimary, void 0);
11812
- const modification = OPTION(() => SUBRULE(pathMod, void 0));
11813
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
11814
- }
11815
- };
11816
- var pathMod = {
11817
- name: "pathMod",
11818
- impl: ({ CONSUME, OR }) => () => OR([
11819
- { ALT: () => CONSUME(symbols_exports.question) },
11820
- { ALT: () => CONSUME(symbols_exports.star) },
11821
- { ALT: () => CONSUME(symbols_exports.opPlus) }
11822
- ])
11823
- };
11824
- var pathPrimary = {
11825
- name: "pathPrimary",
11826
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
11827
- { ALT: () => SUBRULE(iri2, void 0) },
11828
- { ALT: () => SUBRULE(verbA, void 0) },
11829
- { ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
11830
- { ALT: () => {
11634
+ function funcExpr2(func) {
11635
+ return {
11636
+ name: unCapitalize(func.name),
11637
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
11638
+ const operator = CONSUME(func);
11831
11639
  CONSUME(symbols_exports.LParen);
11832
- const resRecursive = SUBRULE(path, void 0);
11833
- CONSUME(symbols_exports.RParen);
11834
- return resRecursive;
11835
- } }
11836
- ])
11837
- };
11838
- var pathNegatedPropertySet = {
11839
- name: "pathNegatedPropertySet",
11840
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
11841
- const exclamation2 = CONSUME(symbols_exports.exclamation);
11842
- return OR([
11843
- { ALT: () => {
11844
- const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
11845
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
11846
- } },
11847
- { ALT: () => {
11848
- const open = CONSUME(symbols_exports.LParen);
11849
- const head2 = SUBRULE2(pathOneInPropertySet, void 0);
11850
- const tail = [];
11851
- MANY(() => {
11852
- CONSUME(symbols_exports.pipe);
11853
- const item = SUBRULE3(pathOneInPropertySet, void 0);
11854
- tail.push(item);
11855
- });
11856
- const close = CONSUME(symbols_exports.RParen);
11857
- return ACTION(() => {
11858
- const F2 = C.factory;
11859
- if (tail.length === 0) {
11860
- return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
11861
- }
11862
- return F2.path(
11863
- "!",
11864
- [F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
11865
- F2.sourceLocation(exclamation2, close)
11866
- );
11867
- });
11868
- } }
11869
- ]);
11870
- }
11871
- };
11872
- var pathOneInPropertySet = {
11873
- name: "pathOneInPropertySet",
11874
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
11875
- { ALT: () => SUBRULE1(iri2, void 0) },
11876
- { ALT: () => SUBRULE1(verbA, void 0) },
11877
- { ALT: () => {
11878
- const hat2 = CONSUME(symbols_exports.hat);
11879
- const item = OR2([
11880
- { ALT: () => SUBRULE2(iri2, void 0) },
11881
- { ALT: () => SUBRULE2(verbA, void 0) }
11882
- ]);
11883
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
11884
- } }
11885
- ])
11886
- };
11887
-
11888
- // ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
11889
- function triplesDotSeperated(triplesSameSubjectSubrule) {
11890
- return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
11891
- const triples = [];
11892
- let parsedDot = true;
11893
- let dotToken;
11894
- AT_LEAST_ONE({
11895
- GATE: () => parsedDot,
11896
- DEF: () => {
11897
- parsedDot = false;
11898
- const template = SUBRULE(triplesSameSubjectSubrule, void 0);
11899
- ACTION(() => {
11900
- triples.push(...template);
11901
- });
11902
- OPTION(() => {
11903
- dotToken = CONSUME(symbols_exports.dot);
11904
- parsedDot = true;
11905
- });
11906
- }
11907
- });
11908
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
11909
- };
11910
- }
11911
- var triplesBlock = {
11912
- name: "triplesBlock",
11913
- impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
11914
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
11915
- for (const [index, triple] of ast.triples.entries()) {
11916
- HANDLE_LOC(triple, () => {
11917
- const nextTriple = ast.triples.at(index);
11918
- if (F2.isTripleCollection(triple)) {
11919
- SUBRULE(graphNodePath, triple, void 0);
11920
- F2.printFilter(triple, () => PRINT_WORD("."));
11921
- } else {
11922
- SUBRULE(graphNodePath, triple.subject, void 0);
11923
- if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
11924
- SUBRULE(varOrTerm, triple.predicate, void 0);
11925
- } else {
11926
- SUBRULE(pathGenerator, triple.predicate, void 0);
11927
- }
11928
- SUBRULE(graphNodePath, triple.object, void 0);
11929
- if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
11930
- F2.printFilter(ast, () => PRINT_WORD("."));
11931
- } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
11932
- F2.printFilter(ast, () => PRINT_WORD(","));
11933
- } else {
11934
- F2.printFilter(ast, () => PRINT_WORD(";"));
11935
- }
11936
- }
11937
- });
11640
+ const arg1 = SUBRULE1(expression);
11641
+ CONSUME(symbols_exports.comma);
11642
+ const arg2 = SUBRULE2(expression);
11643
+ const close = CONSUME(symbols_exports.RParen);
11644
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
11938
11645
  }
11939
- }
11940
- };
11941
- function triplesSameSubjectImpl(name, allowPaths) {
11942
- return {
11943
- name,
11944
- impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
11945
- { ALT: () => {
11946
- const subject = SUBRULE(varOrTerm, void 0);
11947
- const res = SUBRULE(
11948
- allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
11949
- { subject: ACTION(() => C.factory.dematerialized(subject)) }
11950
- );
11951
- return ACTION(() => {
11952
- if (res.length > 0) {
11953
- res[0].subject = subject;
11954
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
11955
- }
11956
- return res;
11957
- });
11958
- } },
11959
- { ALT: () => {
11960
- const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
11961
- const restNode = SUBRULE(
11962
- allowPaths ? propertyListPath : propertyList,
11963
- { subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
11964
- );
11965
- return ACTION(() => {
11966
- if (restNode.length === 0) {
11967
- return [subjectNode];
11968
- }
11969
- restNode[0].subject = subjectNode;
11970
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
11971
- return restNode;
11972
- });
11973
- } }
11974
- ])
11975
11646
  };
11976
11647
  }
11977
- var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
11978
- var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
11979
- var triplesTemplate = {
11980
- name: "triplesTemplate",
11981
- impl: triplesDotSeperated(triplesSameSubject)
11982
- };
11983
- function propertyListImpl(name, allowPaths) {
11648
+ function funcExpr3(func) {
11984
11649
  return {
11985
- name,
11986
- impl: ({ SUBRULE, OPTION }) => (_, arg) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, arg)) ?? []
11650
+ name: unCapitalize(func.name),
11651
+ impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
11652
+ const operator = CONSUME(func);
11653
+ CONSUME(symbols_exports.LParen);
11654
+ const arg1 = SUBRULE1(expression);
11655
+ CONSUME1(symbols_exports.comma);
11656
+ const arg2 = SUBRULE2(expression);
11657
+ CONSUME2(symbols_exports.comma);
11658
+ const arg3 = SUBRULE3(expression);
11659
+ const close = CONSUME(symbols_exports.RParen);
11660
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11661
+ }
11987
11662
  };
11988
11663
  }
11989
- var propertyList = propertyListImpl("propertyList", false);
11990
- var propertyListPath = propertyListImpl("propertyListPath", true);
11991
- function propertyListNotEmptyImplementation(name, allowPaths) {
11664
+ function funcVar1(func) {
11992
11665
  return {
11993
- name,
11994
- impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, arg) => {
11995
- const result = [];
11996
- let parsedSemi = true;
11997
- AT_LEAST_ONE({
11998
- GATE: () => parsedSemi,
11999
- DEF: () => {
12000
- parsedSemi = false;
12001
- const predicate = allowPaths ? OR1([
12002
- { ALT: () => SUBRULE1(verbPath, void 0) },
12003
- { ALT: () => SUBRULE1(verbSimple, void 0) }
12004
- ]) : SUBRULE1(verb, void 0);
12005
- const triples = SUBRULE1(
12006
- allowPaths ? objectListPath : objectList,
12007
- ACTION(() => ({ subject: arg.subject, predicate }))
12008
- );
12009
- MANY2(() => {
12010
- CONSUME(symbols_exports.semi);
12011
- parsedSemi = true;
12012
- });
12013
- ACTION(() => {
12014
- result.push(...triples);
12015
- });
12016
- }
12017
- });
12018
- return result;
11666
+ name: unCapitalize(func.name),
11667
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11668
+ const operator = CONSUME(func);
11669
+ CONSUME(symbols_exports.LParen);
11670
+ const arg = SUBRULE(var_);
11671
+ const close = CONSUME(symbols_exports.RParen);
11672
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12019
11673
  }
12020
11674
  };
12021
11675
  }
12022
- var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12023
- var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12024
- var verbPath = {
12025
- name: "verbPath",
12026
- impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
12027
- };
12028
- var verbSimple = {
12029
- name: "verbSimple",
12030
- impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
12031
- };
12032
- function objectListImpl(name, allowPaths) {
11676
+ function funcExprOrNil1(func) {
12033
11677
  return {
12034
- name,
12035
- impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, arg) => {
12036
- const objects = [];
12037
- AT_LEAST_ONE_SEP({
12038
- SEP: symbols_exports.comma,
12039
- DEF: () => {
12040
- const objectTriple = SUBRULE(allowPaths ? objectPath : object, arg);
12041
- ACTION(() => {
12042
- objects.push(objectTriple);
12043
- });
12044
- }
12045
- });
12046
- return objects;
11678
+ name: unCapitalize(func.name),
11679
+ impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
11680
+ const operator = CONSUME(func);
11681
+ return OR([
11682
+ { ALT: () => {
11683
+ CONSUME(symbols_exports.LParen);
11684
+ const arg = SUBRULE(expression);
11685
+ const close = CONSUME(symbols_exports.RParen);
11686
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11687
+ } },
11688
+ { ALT: () => {
11689
+ const nil2 = CONSUME(terminals_exports.nil);
11690
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
11691
+ } }
11692
+ ]);
12047
11693
  }
12048
11694
  };
12049
11695
  }
12050
- var objectList = objectListImpl("objectList", false);
12051
- var objectListPath = objectListImpl("objectListPath", true);
12052
- function objectImpl(name, allowPaths) {
11696
+ function funcNil1(func) {
12053
11697
  return {
12054
- name,
12055
- impl: ({ ACTION, SUBRULE }) => (C, arg) => {
12056
- const node = SUBRULE(allowPaths ? graphNodePath : graphNode, void 0);
12057
- return ACTION(() => C.factory.triple(arg.subject, arg.predicate, node));
11698
+ name: unCapitalize(func.name),
11699
+ impl: ({ ACTION, CONSUME }) => (C) => {
11700
+ const operator = CONSUME(func);
11701
+ const nil2 = CONSUME(terminals_exports.nil);
11702
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12058
11703
  }
12059
11704
  };
12060
11705
  }
12061
- var object = objectImpl("object", false);
12062
- var objectPath = objectImpl("objectPath", true);
12063
- function collectionImpl(name, allowPaths) {
11706
+ function funcExprList1(func) {
12064
11707
  return {
12065
- name,
12066
- impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12067
- const terms = [];
12068
- const startToken = CONSUME(symbols_exports.LParen);
12069
- AT_LEAST_ONE(() => {
12070
- terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode, void 0));
12071
- });
12072
- const endToken = CONSUME(symbols_exports.RParen);
12073
- return ACTION(() => {
12074
- const F2 = C.factory;
12075
- const triples = [];
12076
- const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12077
- const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12078
- const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12079
- const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12080
- let iterHead = listHead;
12081
- for (const [index, term] of terms.entries()) {
12082
- const lastInList = index === terms.length - 1;
12083
- const headTriple = F2.triple(
12084
- iterHead,
12085
- predFirst,
12086
- term
12087
- );
12088
- triples.push(headTriple);
12089
- if (lastInList) {
12090
- const nilTriple = F2.triple(iterHead, predRest, predNil);
12091
- triples.push(nilTriple);
12092
- } else {
12093
- const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12094
- const linkTriple = F2.triple(iterHead, predRest, tail);
12095
- triples.push(linkTriple);
12096
- iterHead = tail;
12097
- }
12098
- }
12099
- return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
11708
+ name: unCapitalize(func.name),
11709
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11710
+ const operator = CONSUME(func);
11711
+ const args = SUBRULE(expressionList);
11712
+ return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
11713
+ }
11714
+ };
11715
+ }
11716
+ function funcExpr2or3(func) {
11717
+ return {
11718
+ name: unCapitalize(func.name),
11719
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
11720
+ const operator = CONSUME(func);
11721
+ CONSUME(symbols_exports.LParen);
11722
+ const arg1 = SUBRULE1(expression);
11723
+ CONSUME1(symbols_exports.comma);
11724
+ const arg2 = SUBRULE2(expression);
11725
+ const arg3 = OPTION(() => {
11726
+ CONSUME2(symbols_exports.comma);
11727
+ return SUBRULE3(expression);
12100
11728
  });
12101
- },
12102
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12103
- F2.printFilter(ast, () => PRINT_WORD("("));
12104
- for (const [idx, triple] of ast.triples.entries()) {
12105
- if (idx % 2 === 0) {
12106
- SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object, void 0);
12107
- }
12108
- }
12109
- F2.printFilter(ast, () => PRINT_WORD(")"));
11729
+ const close = CONSUME(symbols_exports.RParen);
11730
+ return ACTION(() => C.factory.expressionOperation(
11731
+ operator.image,
11732
+ arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
11733
+ C.factory.sourceLocation(operator, close)
11734
+ ));
12110
11735
  }
12111
11736
  };
12112
11737
  }
12113
- var collection = collectionImpl("collection", false);
12114
- var collectionPath = collectionImpl("collectionPath", true);
12115
- function triplesNodeImpl(name, allowPaths) {
11738
+ function funcExpr3or4(func) {
12116
11739
  return {
12117
- name,
12118
- impl: ({ SUBRULE, OR }) => () => OR([
12119
- { ALT: () => SUBRULE(allowPaths ? collectionPath : collection, void 0) },
12120
- { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, void 0) }
12121
- ]),
12122
- gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast, void 0) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast, void 0)
11740
+ name: unCapitalize(func.name),
11741
+ impl: ({
11742
+ ACTION,
11743
+ CONSUME,
11744
+ SUBRULE1,
11745
+ SUBRULE2,
11746
+ SUBRULE3,
11747
+ SUBRULE4,
11748
+ CONSUME1,
11749
+ OPTION,
11750
+ CONSUME2,
11751
+ CONSUME3
11752
+ }) => (C) => {
11753
+ const operator = CONSUME(func);
11754
+ CONSUME(symbols_exports.LParen);
11755
+ const arg1 = SUBRULE1(expression);
11756
+ CONSUME1(symbols_exports.comma);
11757
+ const arg2 = SUBRULE2(expression);
11758
+ CONSUME2(symbols_exports.comma);
11759
+ const arg3 = SUBRULE3(expression);
11760
+ const arg4 = OPTION(() => {
11761
+ CONSUME3(symbols_exports.comma);
11762
+ return SUBRULE4(expression);
11763
+ });
11764
+ const close = CONSUME(symbols_exports.RParen);
11765
+ return ACTION(() => C.factory.expressionOperation(
11766
+ operator.image,
11767
+ arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
11768
+ C.factory.sourceLocation(operator, close)
11769
+ ));
11770
+ }
12123
11771
  };
12124
11772
  }
12125
- var triplesNode = triplesNodeImpl("triplesNode", false);
12126
- var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12127
- function blankNodePropertyListImpl(name, allowPaths) {
12128
- const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
11773
+ function funcGroupGraphPattern(func) {
12129
11774
  return {
12130
- name,
11775
+ name: unCapitalize(func.name),
12131
11776
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12132
- const startToken = CONSUME(symbols_exports.LSquare);
12133
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12134
- const propList = SUBRULE(propertyPathNotEmptyImpl, { subject: blankNode2 });
12135
- const endToken = CONSUME(symbols_exports.RSquare);
12136
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12137
- blankNode2,
12138
- propList,
12139
- C.factory.sourceLocation(startToken, endToken)
11777
+ const operator = CONSUME(func);
11778
+ const group = SUBRULE(groupGraphPattern);
11779
+ return ACTION(() => C.factory.expressionPatternOperation(
11780
+ operator.image,
11781
+ group,
11782
+ C.factory.sourceLocation(operator, group)
12140
11783
  ));
12141
- },
12142
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12143
- F2.printFilter(ast, () => PRINT("["));
12144
- for (const triple of ast.triples) {
12145
- HANDLE_LOC(triple, () => {
12146
- if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12147
- SUBRULE(varOrTerm, triple.predicate, void 0);
12148
- } else {
12149
- SUBRULE(pathGenerator, triple.predicate, void 0);
12150
- }
12151
- SUBRULE(graphNodePath, triple.object, void 0);
12152
- F2.printFilter(ast, () => PRINT_WORD(";"));
12153
- });
12154
- }
12155
- F2.printFilter(ast, () => PRINT("]"));
12156
11784
  }
12157
11785
  };
12158
11786
  }
12159
- var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12160
- var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12161
- function graphNodeImpl(name, allowPaths) {
12162
- const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
11787
+ function baseAggregateFunc(func) {
12163
11788
  return {
12164
- name,
12165
- impl: ({ SUBRULE, OR }) => (C) => OR([
12166
- { ALT: () => SUBRULE(varOrTerm, void 0) },
12167
- {
12168
- GATE: () => C.parseMode.has("canCreateBlankNodes"),
12169
- ALT: () => SUBRULE(triplesNodeRule, void 0)
12170
- }
12171
- ]),
12172
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12173
- if (F2.isTerm(ast)) {
12174
- SUBRULE(varOrTerm, ast, void 0);
12175
- } else {
12176
- SUBRULE(triplesNodeRule, ast, void 0);
12177
- }
11789
+ name: unCapitalize(func.name),
11790
+ impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
11791
+ const operator = CONSUME(func);
11792
+ CONSUME(symbols_exports.LParen);
11793
+ const distinct2 = OPTION(() => CONSUME(distinct));
11794
+ const expr1 = SUBRULE(expression);
11795
+ const close = CONSUME(symbols_exports.RParen);
11796
+ return ACTION(() => C.factory.aggregate(
11797
+ operator.image,
11798
+ distinct2 !== void 0,
11799
+ expr1,
11800
+ void 0,
11801
+ C.factory.sourceLocation(operator, close)
11802
+ ));
12178
11803
  }
12179
11804
  };
12180
11805
  }
12181
- var graphNode = graphNodeImpl("graphNode", false);
12182
- var graphNodePath = graphNodeImpl("graphNodePath", true);
12183
11806
 
12184
- // ../rules-sparql-1-1/lib/grammar/whereClause.ts
12185
- var whereClause = {
12186
- name: "whereClause",
12187
- impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12188
- const where2 = OPTION(() => CONSUME(where));
12189
- const group = SUBRULE(groupGraphPattern, void 0);
12190
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12191
- },
12192
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12193
- F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12194
- SUBRULE(groupGraphPattern, ast.val, void 0);
11807
+ // ../rules-sparql-1-1/lib/grammar/builtIn.ts
11808
+ var builtInStr = funcExpr1(BuildinCalls_exports.str);
11809
+ var builtInLang = funcExpr1(BuildinCalls_exports.lang);
11810
+ var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
11811
+ var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
11812
+ var builtInBound = funcVar1(BuildinCalls_exports.bound);
11813
+ var builtInIri = funcExpr1(BuildinCalls_exports.iri);
11814
+ var builtInUri = funcExpr1(BuildinCalls_exports.uri);
11815
+ var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
11816
+ var builtInRand = funcNil1(BuildinCalls_exports.rand);
11817
+ var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
11818
+ var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
11819
+ var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
11820
+ var builtInRound = funcExpr1(BuildinCalls_exports.round);
11821
+ var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
11822
+ var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
11823
+ var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
11824
+ var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
11825
+ var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
11826
+ var builtInContains = funcExpr2(BuildinCalls_exports.contains);
11827
+ var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
11828
+ var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
11829
+ var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
11830
+ var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
11831
+ var builtInYear = funcExpr1(BuildinCalls_exports.year);
11832
+ var builtInMonth = funcExpr1(BuildinCalls_exports.month);
11833
+ var builtInDay = funcExpr1(BuildinCalls_exports.day);
11834
+ var builtInHours = funcExpr1(BuildinCalls_exports.hours);
11835
+ var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
11836
+ var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
11837
+ var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
11838
+ var builtInTz = funcExpr1(BuildinCalls_exports.tz);
11839
+ var builtInNow = funcNil1(BuildinCalls_exports.now);
11840
+ var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
11841
+ var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
11842
+ var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
11843
+ var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
11844
+ var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
11845
+ var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
11846
+ var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
11847
+ var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
11848
+ var builtInIf = funcExpr3(BuildinCalls_exports.if_);
11849
+ var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
11850
+ var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
11851
+ var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
11852
+ var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
11853
+ var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
11854
+ var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
11855
+ var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
11856
+ var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
11857
+ function builtInCallList(SUBRULE) {
11858
+ return [
11859
+ { ALT: () => SUBRULE(aggregate) },
11860
+ { ALT: () => SUBRULE(builtInStr) },
11861
+ { ALT: () => SUBRULE(builtInLang) },
11862
+ { ALT: () => SUBRULE(builtInLangmatches) },
11863
+ { ALT: () => SUBRULE(builtInDatatype) },
11864
+ { ALT: () => SUBRULE(builtInBound) },
11865
+ { ALT: () => SUBRULE(builtInIri) },
11866
+ { ALT: () => SUBRULE(builtInUri) },
11867
+ { ALT: () => SUBRULE(builtInBnodeSparqlJs) },
11868
+ { ALT: () => SUBRULE(builtInRand) },
11869
+ { ALT: () => SUBRULE(builtInAbs) },
11870
+ { ALT: () => SUBRULE(builtInCeil) },
11871
+ { ALT: () => SUBRULE(builtInFloor) },
11872
+ { ALT: () => SUBRULE(builtInRound) },
11873
+ { ALT: () => SUBRULE(builtInConcat) },
11874
+ { ALT: () => SUBRULE(substringExpression) },
11875
+ { ALT: () => SUBRULE(builtInStrlen) },
11876
+ { ALT: () => SUBRULE(strReplaceExpression) },
11877
+ { ALT: () => SUBRULE(builtInUcase) },
11878
+ { ALT: () => SUBRULE(builtInLcase) },
11879
+ { ALT: () => SUBRULE(builtInEncode_for_uri) },
11880
+ { ALT: () => SUBRULE(builtInContains) },
11881
+ { ALT: () => SUBRULE(builtInStrstarts) },
11882
+ { ALT: () => SUBRULE(builtInStrends) },
11883
+ { ALT: () => SUBRULE(builtInStrbefore) },
11884
+ { ALT: () => SUBRULE(builtInStrafter) },
11885
+ { ALT: () => SUBRULE(builtInYear) },
11886
+ { ALT: () => SUBRULE(builtInMonth) },
11887
+ { ALT: () => SUBRULE(builtInDay) },
11888
+ { ALT: () => SUBRULE(builtInHours) },
11889
+ { ALT: () => SUBRULE(builtInMinutes) },
11890
+ { ALT: () => SUBRULE(builtInSeconds) },
11891
+ { ALT: () => SUBRULE(builtInTimezone) },
11892
+ { ALT: () => SUBRULE(builtInTz) },
11893
+ { ALT: () => SUBRULE(builtInNow) },
11894
+ { ALT: () => SUBRULE(builtInUuid) },
11895
+ { ALT: () => SUBRULE(builtInStruuid) },
11896
+ { ALT: () => SUBRULE(builtInMd5) },
11897
+ { ALT: () => SUBRULE(builtInSha1) },
11898
+ { ALT: () => SUBRULE(builtInSha256) },
11899
+ { ALT: () => SUBRULE(builtInSha384) },
11900
+ { ALT: () => SUBRULE(builtInSha512) },
11901
+ { ALT: () => SUBRULE(builtInCoalesce) },
11902
+ { ALT: () => SUBRULE(builtInIf) },
11903
+ { ALT: () => SUBRULE(builtInStrlang) },
11904
+ { ALT: () => SUBRULE(builtInStrdt) },
11905
+ { ALT: () => SUBRULE(builtInSameterm) },
11906
+ { ALT: () => SUBRULE(builtInIsiri) },
11907
+ { ALT: () => SUBRULE(builtInIsuri) },
11908
+ { ALT: () => SUBRULE(builtInIsblank) },
11909
+ { ALT: () => SUBRULE(builtInIsliteral) },
11910
+ { ALT: () => SUBRULE(builtInIsnumeric) },
11911
+ { ALT: () => SUBRULE(regexExpression) },
11912
+ { ALT: () => SUBRULE(existsFunc) },
11913
+ { ALT: () => SUBRULE(notExistsFunc) }
11914
+ ];
11915
+ }
11916
+ var builtInCall = {
11917
+ name: "builtInCall",
11918
+ impl: ({ OR, SUBRULE, cache }) => () => {
11919
+ const cached = cache.get(builtInCall);
11920
+ if (cached) {
11921
+ return OR(cached);
11922
+ }
11923
+ const builtIns = builtInCallList(SUBRULE);
11924
+ cache.set(builtInCall, builtIns);
11925
+ return OR(builtIns);
11926
+ }
11927
+ };
11928
+ var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
11929
+ var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
11930
+ var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
11931
+ var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
11932
+ var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
11933
+ var aggregateCount = {
11934
+ name: unCapitalize(BuildinCalls_exports.count.name),
11935
+ impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
11936
+ const operatorToken = CONSUME(BuildinCalls_exports.count);
11937
+ CONSUME(symbols_exports.LParen);
11938
+ const distinctToken = OPTION(() => CONSUME(distinct));
11939
+ const expressionVal = OR([
11940
+ { ALT: () => {
11941
+ const starToken = CONSUME(symbols_exports.star);
11942
+ return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
11943
+ } },
11944
+ { ALT: () => SUBRULE(expression) }
11945
+ ]);
11946
+ const closeToken = CONSUME(symbols_exports.RParen);
11947
+ return ACTION(() => {
11948
+ const F2 = C.factory;
11949
+ if (C.factory.isWildcard(expressionVal)) {
11950
+ return F2.aggregate(
11951
+ operatorToken.image,
11952
+ Boolean(distinctToken),
11953
+ expressionVal,
11954
+ void 0,
11955
+ C.factory.sourceLocation(operatorToken, closeToken)
11956
+ );
11957
+ }
11958
+ return F2.aggregate(
11959
+ operatorToken.image,
11960
+ Boolean(distinctToken),
11961
+ expressionVal,
11962
+ void 0,
11963
+ C.factory.sourceLocation(operatorToken, closeToken)
11964
+ );
11965
+ });
11966
+ }
11967
+ };
11968
+ var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
11969
+ var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
11970
+ var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
11971
+ var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
11972
+ var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
11973
+ var aggregateGroup_concat = {
11974
+ name: unCapitalize(BuildinCalls_exports.groupConcat.name),
11975
+ impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
11976
+ const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
11977
+ CONSUME(symbols_exports.LParen);
11978
+ const distinctToken = OPTION1(() => CONSUME(distinct));
11979
+ const expr = SUBRULE(expression);
11980
+ const sep = OPTION2(() => {
11981
+ CONSUME(symbols_exports.semi);
11982
+ CONSUME(separator);
11983
+ CONSUME(symbols_exports.equal);
11984
+ return SUBRULE(string);
11985
+ });
11986
+ const closeToken = CONSUME(symbols_exports.RParen);
11987
+ return ACTION(() => {
11988
+ const F2 = C.factory;
11989
+ return F2.aggregate(
11990
+ operatorToken.image,
11991
+ Boolean(distinctToken),
11992
+ expr,
11993
+ sep?.value ?? " ",
11994
+ F2.sourceLocation(operatorToken, closeToken)
11995
+ );
11996
+ });
12195
11997
  }
12196
11998
  };
12197
- var groupGraphPattern = {
12198
- name: "groupGraphPattern",
12199
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12200
- const open = CONSUME(symbols_exports.LCurly);
12201
- const patterns = OR([
12202
- { ALT: () => [SUBRULE(subSelect, void 0)] },
12203
- { ALT: () => SUBRULE(groupGraphPatternSub, void 0) }
11999
+ var aggregate = {
12000
+ name: "aggregate",
12001
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => {
12002
+ const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
12003
+ ACTION(() => C.parseMode.add("inAggregate"));
12004
+ const result = OR([
12005
+ { ALT: () => SUBRULE(aggregateCount) },
12006
+ { ALT: () => SUBRULE(aggregateSum) },
12007
+ { ALT: () => SUBRULE(aggregateMin) },
12008
+ { ALT: () => SUBRULE(aggregateMax) },
12009
+ { ALT: () => SUBRULE(aggregateAvg) },
12010
+ { ALT: () => SUBRULE(aggregateSample) },
12011
+ { ALT: () => SUBRULE(aggregateGroup_concat) }
12204
12012
  ]);
12205
- const close = CONSUME(symbols_exports.RCurly);
12206
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12013
+ ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
12014
+ ACTION(() => {
12015
+ if (!C.parseMode.has("canParseAggregate")) {
12016
+ throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
12017
+ }
12018
+ if (C.parseMode.has("inAggregate")) {
12019
+ throw new Error("An aggregate function is not allowed within an aggregate function.");
12020
+ }
12021
+ });
12022
+ return result;
12207
12023
  },
12208
12024
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12209
- F2.printFilter(ast, () => PRINT_WORD("{"));
12210
- for (const pattern of ast.patterns) {
12211
- SUBRULE(generatePattern, pattern, void 0);
12025
+ F2.printFilter(ast, () => {
12026
+ PRINT_WORD(ast.aggregation, "(");
12027
+ if (ast.distinct) {
12028
+ PRINT_WORD("DISTINCT");
12029
+ }
12030
+ });
12031
+ const arg = ast.expression[0];
12032
+ if (F2.isWildcard(arg)) {
12033
+ F2.printFilter(ast, () => PRINT_WORD("*"));
12034
+ } else {
12035
+ SUBRULE(expression, arg);
12212
12036
  }
12213
- F2.printFilter(ast, () => PRINT_WORD("}"));
12037
+ if (F2.isExpressionAggregateSeparator(ast)) {
12038
+ F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
12039
+ }
12040
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12214
12041
  }
12215
12042
  };
12216
- var generatePattern = {
12217
- name: "generatePattern",
12043
+
12044
+ // ../rules-sparql-1-1/lib/grammar/general.ts
12045
+ var prologue = {
12046
+ name: "prologue",
12047
+ impl: ({ SUBRULE, MANY, OR }) => () => {
12048
+ const result = [];
12049
+ MANY(() => OR([
12050
+ { ALT: () => result.push(SUBRULE(baseDecl2)) },
12051
+ // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
12052
+ // We might need to check this.
12053
+ { ALT: () => result.push(SUBRULE(prefixDecl2)) }
12054
+ ]));
12055
+ return result;
12056
+ },
12218
12057
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12219
- if (ast.type === "query") {
12220
- SUBRULE(query, F2.querySelect({
12221
- context: [],
12222
- datasets: F2.datasetClauses([], F2.sourceLocation()),
12223
- where: ast.where,
12224
- variables: ast.variables,
12225
- solutionModifiers: ast.solutionModifiers,
12226
- values: ast.values,
12227
- distinct: ast.distinct,
12228
- reduced: ast.reduced
12229
- }, ast.loc), void 0);
12230
- } else if (ast.subType === "group") {
12231
- SUBRULE(groupGraphPattern, ast, void 0);
12232
- } else if (ast.subType === "bgp") {
12233
- SUBRULE(triplesBlock, ast, void 0);
12234
- } else {
12235
- SUBRULE(graphPatternNotTriples, ast, void 0);
12058
+ for (const context of ast) {
12059
+ if (F2.isContextDefinitionBase(context)) {
12060
+ SUBRULE(baseDecl2, context);
12061
+ } else if (F2.isContextDefinitionPrefix(context)) {
12062
+ SUBRULE(prefixDecl2, context);
12063
+ }
12236
12064
  }
12237
12065
  }
12238
12066
  };
12239
- var groupGraphPatternSub = {
12240
- name: "groupGraphPatternSub",
12241
- impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12242
- const patterns = [];
12243
- const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock, void 0));
12244
- if (bgpPattern) {
12245
- patterns.push(bgpPattern);
12246
- }
12247
- MANY(() => {
12248
- const notTriples = SUBRULE(graphPatternNotTriples, void 0);
12249
- patterns.push(notTriples);
12250
- OPTION2(() => CONSUME(symbols_exports.dot));
12251
- const moreTriples = OPTION3(() => SUBRULE2(triplesBlock, void 0));
12252
- if (moreTriples) {
12253
- patterns.push(moreTriples);
12254
- }
12067
+ var baseDecl2 = {
12068
+ name: "baseDecl",
12069
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12070
+ const base = CONSUME(baseDecl);
12071
+ const val = SUBRULE(iriFull);
12072
+ return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
12073
+ },
12074
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12075
+ F2.printFilter(ast, () => PRINT_WORD("BASE"));
12076
+ SUBRULE(iri2, ast.value);
12077
+ }
12078
+ };
12079
+ var prefixDecl2 = {
12080
+ name: "prefixDecl",
12081
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12082
+ const prefix = CONSUME(prefixDecl);
12083
+ const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
12084
+ const value = SUBRULE(iriFull);
12085
+ return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
12086
+ },
12087
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
12088
+ F2.printFilter(ast, () => {
12089
+ PRINT_WORDS("PREFIX", `${ast.key}:`);
12255
12090
  });
12256
- ACTION(() => checkNote13(patterns));
12257
- return patterns;
12091
+ SUBRULE(iri2, ast.value);
12258
12092
  }
12259
12093
  };
12260
- var graphPatternNotTriples = {
12261
- name: "graphPatternNotTriples",
12094
+ var verb = {
12095
+ name: "verb",
12262
12096
  impl: ({ SUBRULE, OR }) => () => OR([
12263
- { ALT: () => SUBRULE(groupOrUnionGraphPattern, void 0) },
12264
- { ALT: () => SUBRULE(optionalGraphPattern, void 0) },
12265
- { ALT: () => SUBRULE(minusGraphPattern, void 0) },
12266
- { ALT: () => SUBRULE(graphGraphPattern, void 0) },
12267
- { ALT: () => SUBRULE(serviceGraphPattern, void 0) },
12268
- { ALT: () => SUBRULE(filter3, void 0) },
12269
- { ALT: () => SUBRULE(bind2, void 0) },
12270
- { ALT: () => SUBRULE(inlineData, void 0) }
12097
+ { ALT: () => SUBRULE(varOrIri) },
12098
+ { ALT: () => SUBRULE(verbA) }
12099
+ ])
12100
+ };
12101
+ var varOrTerm = {
12102
+ name: "varOrTerm",
12103
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12104
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12105
+ { ALT: () => SUBRULE(graphTerm) }
12271
12106
  ]),
12272
- gImpl: ({ SUBRULE }) => (ast) => {
12273
- switch (ast.subType) {
12274
- case "group":
12275
- case "union":
12276
- SUBRULE(groupOrUnionGraphPattern, ast, void 0);
12277
- break;
12278
- case "optional":
12279
- SUBRULE(optionalGraphPattern, ast, void 0);
12280
- break;
12281
- case "minus":
12282
- SUBRULE(minusGraphPattern, ast, void 0);
12283
- break;
12284
- case "graph":
12285
- SUBRULE(graphGraphPattern, ast, void 0);
12286
- break;
12287
- case "service":
12288
- SUBRULE(serviceGraphPattern, ast, void 0);
12289
- break;
12290
- case "filter":
12291
- SUBRULE(filter3, ast, void 0);
12292
- break;
12293
- case "bind":
12294
- SUBRULE(bind2, ast, void 0);
12295
- break;
12296
- case "values":
12297
- SUBRULE(inlineData, ast, void 0);
12298
- break;
12107
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12108
+ if (F2.isTermVariable(ast)) {
12109
+ return SUBRULE(var_, ast);
12299
12110
  }
12111
+ return SUBRULE(graphTerm, ast);
12300
12112
  }
12301
12113
  };
12302
- var optionalGraphPattern = {
12303
- name: "optionalGraphPattern",
12304
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12305
- const optional2 = CONSUME(optional);
12306
- const group = SUBRULE(groupGraphPattern, void 0);
12307
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12308
- },
12309
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12310
- F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12311
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12312
- }
12114
+ var varOrIri = {
12115
+ name: "varOrIri",
12116
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12117
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12118
+ { ALT: () => SUBRULE(iri2) }
12119
+ ])
12313
12120
  };
12314
- var graphGraphPattern = {
12315
- name: "graphGraphPattern",
12316
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12317
- const graph2 = CONSUME(graph_exports.graph);
12318
- const name = SUBRULE(varOrIri, void 0);
12319
- const group = SUBRULE(groupGraphPattern, void 0);
12320
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12121
+ var var_ = {
12122
+ name: "var",
12123
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
12124
+ const varToken = OR([
12125
+ { ALT: () => CONSUME(terminals_exports.var1) },
12126
+ { ALT: () => CONSUME(terminals_exports.var2) }
12127
+ ]);
12128
+ return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
12321
12129
  },
12322
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12323
- F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12324
- SUBRULE(varOrTerm, ast.name, void 0);
12325
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12130
+ gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
12131
+ F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
12326
12132
  }
12327
12133
  };
12328
- var serviceGraphPattern = {
12329
- name: "serviceGraphPattern",
12330
- impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12331
- const service2 = CONSUME(service);
12332
- const silent2 = OPTION(() => {
12333
- CONSUME(silent);
12334
- return true;
12335
- }) ?? false;
12336
- const name = SUBRULE1(varOrIri, void 0);
12337
- const group = SUBRULE1(groupGraphPattern, void 0);
12338
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12339
- },
12340
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12341
- F2.printFilter(ast, () => {
12342
- PRINT_WORD("SERVICE");
12343
- if (ast.silent) {
12344
- PRINT_WORD("SILENT");
12345
- }
12346
- });
12347
- SUBRULE(varOrTerm, ast.name, void 0);
12348
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12134
+ var graphTerm = {
12135
+ name: "graphTerm",
12136
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
12137
+ { ALT: () => SUBRULE(iri2) },
12138
+ { ALT: () => SUBRULE(rdfLiteral) },
12139
+ { ALT: () => SUBRULE(numericLiteral) },
12140
+ { ALT: () => SUBRULE(booleanLiteral) },
12141
+ { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
12142
+ { ALT: () => {
12143
+ const tokenNil = CONSUME(terminals_exports.nil);
12144
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
12145
+ } }
12146
+ ]),
12147
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12148
+ if (F2.isTermNamed(ast)) {
12149
+ SUBRULE(iri2, ast);
12150
+ } else if (F2.isTermLiteral(ast)) {
12151
+ SUBRULE(rdfLiteral, ast);
12152
+ } else if (F2.isTermBlank(ast)) {
12153
+ SUBRULE(blankNode, ast);
12154
+ }
12349
12155
  }
12350
12156
  };
12351
- var bind2 = {
12352
- name: "bind",
12353
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12354
- const bind3 = CONSUME(bind);
12355
- CONSUME(symbols_exports.LParen);
12356
- const expressionVal = SUBRULE(expression, void 0);
12357
- CONSUME(as);
12358
- const variable = SUBRULE(var_, void 0);
12359
- const close = CONSUME(symbols_exports.RParen);
12360
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12361
- },
12362
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12363
- F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12364
- SUBRULE(expression, ast.expression, void 0);
12365
- F2.printFilter(ast, () => PRINT_WORD("AS"));
12366
- SUBRULE(var_, ast.variable, void 0);
12367
- F2.printFilter(ast, () => PRINT_WORD(")"));
12368
- }
12157
+
12158
+ // ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
12159
+ var path = {
12160
+ name: "path",
12161
+ impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
12369
12162
  };
12370
- var inlineData = {
12371
- name: "inlineData",
12372
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12373
- const values3 = CONSUME(values2);
12374
- const datablock = SUBRULE(dataBlock, void 0);
12375
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12376
- },
12377
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12378
- const variables = Object.keys(ast.values[0]);
12379
- F2.printFilter(ast, () => {
12380
- PRINT_WORD("VALUES", "(");
12381
- for (const variable of variables) {
12382
- PRINT_WORD(`?${variable}`);
12383
- }
12384
- PRINT_WORD(")", "{");
12385
- });
12386
- for (const mapping of ast.values) {
12387
- F2.printFilter(ast, () => PRINT_WORD("("));
12388
- for (const variable of variables) {
12389
- if (mapping[variable] === void 0) {
12390
- F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
12391
- } else {
12392
- SUBRULE(graphNodePath, mapping[variable], void 0);
12163
+ var pathGenerator = {
12164
+ name: "path",
12165
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
12166
+ if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
12167
+ SUBRULE(iri2, ast);
12168
+ } else {
12169
+ F2.printFilter(ast, () => braces && PRINT("("));
12170
+ switch (ast.subType) {
12171
+ case "|":
12172
+ case "/": {
12173
+ const [head2, ...tail] = ast.items;
12174
+ SUBRULE(pathGenerator, head2, braces);
12175
+ for (const val of tail) {
12176
+ F2.printFilter(ast, () => PRINT(ast.subType));
12177
+ SUBRULE(pathGenerator, val, braces);
12178
+ }
12179
+ break;
12393
12180
  }
12181
+ case "^":
12182
+ F2.printFilter(ast, () => PRINT("^"));
12183
+ SUBRULE(pathGenerator, ast.items[0], braces);
12184
+ break;
12185
+ case "?":
12186
+ case "*":
12187
+ case "+":
12188
+ SUBRULE(pathGenerator, ast.items[0], braces);
12189
+ F2.printFilter(ast, () => PRINT(ast.subType));
12190
+ break;
12191
+ case "!":
12192
+ F2.printFilter(ast, () => PRINT("!"));
12193
+ F2.printFilter(ast, () => PRINT("("));
12194
+ SUBRULE(pathGenerator, ast.items[0], false);
12195
+ F2.printFilter(ast, () => PRINT(")"));
12196
+ break;
12394
12197
  }
12395
- F2.printFilter(ast, () => PRINT_WORD(")"));
12198
+ F2.printFilter(ast, () => braces && PRINT(")"));
12396
12199
  }
12397
- F2.printFilter(ast, () => PRINT_WORD("}"));
12398
12200
  }
12399
12201
  };
12400
- var dataBlock = {
12401
- name: "dataBlock",
12402
- impl: ({ SUBRULE, OR }) => () => OR([
12403
- { ALT: () => SUBRULE(inlineDataOneVar, void 0) },
12404
- { ALT: () => SUBRULE(inlineDataFull, void 0) }
12202
+ function pathChainHelper(name, SEP, subType, subRule) {
12203
+ return {
12204
+ name,
12205
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
12206
+ const head2 = SUBRULE1(subRule);
12207
+ let tailEnd = head2;
12208
+ const tail = [];
12209
+ MANY(() => {
12210
+ CONSUME(SEP);
12211
+ tailEnd = SUBRULE2(subRule);
12212
+ tail.push(tailEnd);
12213
+ });
12214
+ return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12215
+ }
12216
+ };
12217
+ }
12218
+ var pathEltOrInverse = {
12219
+ name: "pathEltOrInverse",
12220
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
12221
+ { ALT: () => SUBRULE1(pathElt) },
12222
+ { ALT: () => {
12223
+ const hat2 = CONSUME(symbols_exports.hat);
12224
+ const item = SUBRULE2(pathElt);
12225
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12226
+ } }
12405
12227
  ])
12406
12228
  };
12407
- var inlineDataOneVar = {
12408
- name: "inlineDataOneVar",
12409
- impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12410
- const res = [];
12411
- const varVal = SUBRULE(var_, void 0);
12412
- CONSUME(symbols_exports.LCurly);
12413
- MANY(() => {
12414
- const value = SUBRULE(dataBlockValue, void 0);
12415
- ACTION(() => {
12416
- res.push({ [varVal.value]: value });
12417
- });
12418
- });
12419
- const close = CONSUME(symbols_exports.RCurly);
12420
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
12229
+ var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
12230
+ var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
12231
+ var pathElt = {
12232
+ name: "pathElt",
12233
+ impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12234
+ const item = SUBRULE(pathPrimary);
12235
+ const modification = OPTION(() => SUBRULE(pathMod));
12236
+ return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12421
12237
  }
12422
12238
  };
12423
- var inlineDataFull = {
12424
- name: "inlineDataFull",
12425
- impl: ({
12426
- ACTION,
12427
- OR,
12428
- MANY1,
12429
- MANY2,
12430
- MANY3,
12431
- MANY4,
12432
- SUBRULE,
12433
- CONSUME1,
12434
- CONSUME2
12435
- }) => (C) => {
12436
- const res = [];
12437
- const vars = [];
12239
+ var pathMod = {
12240
+ name: "pathMod",
12241
+ impl: ({ CONSUME, OR }) => () => OR([
12242
+ { ALT: () => CONSUME(symbols_exports.question) },
12243
+ { ALT: () => CONSUME(symbols_exports.star) },
12244
+ { ALT: () => CONSUME(symbols_exports.opPlus) }
12245
+ ])
12246
+ };
12247
+ var pathPrimary = {
12248
+ name: "pathPrimary",
12249
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12250
+ { ALT: () => SUBRULE(iri2) },
12251
+ { ALT: () => SUBRULE(verbA) },
12252
+ { ALT: () => SUBRULE(pathNegatedPropertySet) },
12253
+ { ALT: () => {
12254
+ CONSUME(symbols_exports.LParen);
12255
+ const resRecursive = SUBRULE(path);
12256
+ CONSUME(symbols_exports.RParen);
12257
+ return resRecursive;
12258
+ } }
12259
+ ])
12260
+ };
12261
+ var pathNegatedPropertySet = {
12262
+ name: "pathNegatedPropertySet",
12263
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
12264
+ const exclamation2 = CONSUME(symbols_exports.exclamation);
12438
12265
  return OR([
12439
12266
  { ALT: () => {
12440
- const nil2 = CONSUME1(terminals_exports.nil);
12441
- CONSUME1(symbols_exports.LCurly);
12442
- MANY1(() => {
12443
- CONSUME2(terminals_exports.nil);
12444
- res.push({});
12445
- });
12446
- const close = CONSUME1(symbols_exports.RCurly);
12447
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12267
+ const noAlternative = SUBRULE1(pathOneInPropertySet);
12268
+ return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12448
12269
  } },
12449
12270
  { ALT: () => {
12450
- const open = CONSUME1(symbols_exports.LParen);
12451
- MANY2(() => {
12452
- vars.push(SUBRULE(var_, void 0));
12271
+ const open = CONSUME(symbols_exports.LParen);
12272
+ const head2 = SUBRULE2(pathOneInPropertySet);
12273
+ const tail = [];
12274
+ MANY(() => {
12275
+ CONSUME(symbols_exports.pipe);
12276
+ const item = SUBRULE3(pathOneInPropertySet);
12277
+ tail.push(item);
12453
12278
  });
12454
- CONSUME1(symbols_exports.RParen);
12455
- CONSUME2(symbols_exports.LCurly);
12456
- MANY3(() => {
12457
- let parsedValues = 0;
12458
- const currentRow = {};
12459
- CONSUME2(symbols_exports.LParen);
12460
- MANY4(() => {
12461
- if (parsedValues >= vars.length) {
12462
- throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12463
- }
12464
- const value = SUBRULE(dataBlockValue, void 0);
12465
- ACTION(() => {
12466
- currentRow[vars[parsedValues].value] = value;
12467
- parsedValues++;
12468
- });
12469
- });
12470
- CONSUME2(symbols_exports.RParen);
12471
- ACTION(() => {
12472
- res.push(currentRow);
12473
- if (vars.length !== parsedValues) {
12474
- throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
12475
- }
12476
- });
12279
+ const close = CONSUME(symbols_exports.RParen);
12280
+ return ACTION(() => {
12281
+ const F2 = C.factory;
12282
+ if (tail.length === 0) {
12283
+ return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12284
+ }
12285
+ return F2.path(
12286
+ "!",
12287
+ [F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
12288
+ F2.sourceLocation(exclamation2, close)
12289
+ );
12477
12290
  });
12478
- const close = CONSUME2(symbols_exports.RCurly);
12479
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
12480
12291
  } }
12481
12292
  ]);
12482
12293
  }
12483
12294
  };
12484
- var dataBlockValue = {
12485
- name: "dataBlockValue",
12486
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12487
- { ALT: () => SUBRULE(iri2, void 0) },
12488
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
12489
- { ALT: () => SUBRULE(numericLiteral, void 0) },
12490
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
12295
+ var pathOneInPropertySet = {
12296
+ name: "pathOneInPropertySet",
12297
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
12298
+ { ALT: () => SUBRULE1(iri2) },
12299
+ { ALT: () => SUBRULE1(verbA) },
12491
12300
  { ALT: () => {
12492
- CONSUME(undef);
12493
- return void 0;
12301
+ const hat2 = CONSUME(symbols_exports.hat);
12302
+ const item = OR2([
12303
+ { ALT: () => SUBRULE2(iri2) },
12304
+ { ALT: () => SUBRULE2(verbA) }
12305
+ ]);
12306
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12494
12307
  } }
12495
12308
  ])
12496
12309
  };
12497
- var minusGraphPattern = {
12498
- name: "minusGraphPattern",
12499
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12500
- const minus2 = CONSUME(minus);
12501
- const group = SUBRULE(groupGraphPattern, void 0);
12502
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
12503
- },
12504
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12505
- F2.printFilter(ast, () => PRINT_WORD("MINUS"));
12506
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12507
- }
12508
- };
12509
- var groupOrUnionGraphPattern = {
12510
- name: "groupOrUnionGraphPattern",
12511
- impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
12512
- const groups = [];
12513
- const group = SUBRULE1(groupGraphPattern, void 0);
12514
- groups.push(group);
12515
- MANY(() => {
12516
- CONSUME(union);
12517
- const group2 = SUBRULE2(groupGraphPattern, void 0);
12518
- groups.push(group2);
12519
- });
12520
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
12521
- groups,
12522
- C.factory.sourceLocation(group, groups.at(-1))
12523
- ));
12524
- },
12525
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12526
- if (F2.isPatternUnion(ast)) {
12527
- const [head2, ...tail] = ast.patterns;
12528
- SUBRULE(groupGraphPattern, head2, void 0);
12529
- for (const pattern of tail) {
12530
- F2.printFilter(ast, () => PRINT_WORD("UNION"));
12531
- SUBRULE(groupGraphPattern, pattern, void 0);
12532
- }
12533
- } else {
12534
- SUBRULE(groupGraphPattern, ast, void 0);
12535
- }
12536
- }
12537
- };
12538
- var filter3 = {
12539
- name: "filter",
12540
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12541
- const filterToken = CONSUME(filter2);
12542
- const expression2 = SUBRULE(constraint, void 0);
12543
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
12544
- },
12545
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12546
- F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
12547
- SUBRULE(expression, ast.expression, void 0);
12548
- F2.printFilter(ast, () => PRINT_WORD(")"));
12549
- }
12550
- };
12551
- var constraint = {
12552
- name: "constraint",
12553
- impl: ({ SUBRULE, OR }) => () => OR([
12554
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
12555
- { ALT: () => SUBRULE(builtInCall, void 0) },
12556
- { ALT: () => SUBRULE(functionCall, void 0) }
12557
- ])
12558
- };
12559
- var functionCall = {
12560
- name: "functionCall",
12561
- impl: ({ ACTION, SUBRULE }) => (C) => {
12562
- const func = SUBRULE(iri2, void 0);
12563
- const args = SUBRULE(argList, void 0);
12564
- return ACTION(() => C.factory.expressionFunctionCall(
12565
- func,
12566
- args.val.args,
12567
- args.val.distinct,
12568
- C.factory.sourceLocation(func, args)
12569
- ));
12570
- }
12571
- };
12572
12310
 
12573
- // ../rules-sparql-1-1/lib/expressionHelpers.ts
12574
- function funcExpr1(func) {
12575
- return {
12576
- name: unCapitalize(func.name),
12577
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12578
- const operator = CONSUME(func);
12579
- CONSUME(symbols_exports.LParen);
12580
- const arg = SUBRULE(expression, void 0);
12581
- const close = CONSUME(symbols_exports.RParen);
12582
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12583
- }
12311
+ // ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
12312
+ function triplesDotSeperated(triplesSameSubjectSubrule) {
12313
+ return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
12314
+ const triples = [];
12315
+ let parsedDot = true;
12316
+ let dotToken;
12317
+ AT_LEAST_ONE({
12318
+ GATE: () => parsedDot,
12319
+ DEF: () => {
12320
+ parsedDot = false;
12321
+ const template = SUBRULE(triplesSameSubjectSubrule);
12322
+ ACTION(() => {
12323
+ triples.push(...template);
12324
+ });
12325
+ OPTION(() => {
12326
+ dotToken = CONSUME(symbols_exports.dot);
12327
+ parsedDot = true;
12328
+ });
12329
+ }
12330
+ });
12331
+ return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12584
12332
  };
12585
12333
  }
12586
- function funcExpr2(func) {
12587
- return {
12588
- name: unCapitalize(func.name),
12589
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
12590
- const operator = CONSUME(func);
12591
- CONSUME(symbols_exports.LParen);
12592
- const arg1 = SUBRULE1(expression, void 0);
12593
- CONSUME(symbols_exports.comma);
12594
- const arg2 = SUBRULE2(expression, void 0);
12595
- const close = CONSUME(symbols_exports.RParen);
12596
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12334
+ var triplesBlock = {
12335
+ name: "triplesBlock",
12336
+ impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12337
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12338
+ for (const [index, triple] of ast.triples.entries()) {
12339
+ HANDLE_LOC(triple, () => {
12340
+ const nextTriple = ast.triples.at(index);
12341
+ if (F2.isTripleCollection(triple)) {
12342
+ SUBRULE(graphNodePath, triple);
12343
+ F2.printFilter(triple, () => PRINT_WORD("."));
12344
+ } else {
12345
+ SUBRULE(graphNodePath, triple.subject);
12346
+ if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12347
+ SUBRULE(varOrTerm, triple.predicate);
12348
+ } else {
12349
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12350
+ }
12351
+ SUBRULE(graphNodePath, triple.object);
12352
+ if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12353
+ F2.printFilter(ast, () => PRINT_WORD("."));
12354
+ } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12355
+ F2.printFilter(ast, () => PRINT_WORD(","));
12356
+ } else {
12357
+ F2.printFilter(ast, () => PRINT_WORD(";"));
12358
+ }
12359
+ }
12360
+ });
12597
12361
  }
12598
- };
12599
- }
12600
- function funcExpr3(func) {
12362
+ }
12363
+ };
12364
+ function triplesSameSubjectImpl(name, allowPaths) {
12601
12365
  return {
12602
- name: unCapitalize(func.name),
12603
- impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
12604
- const operator = CONSUME(func);
12605
- CONSUME(symbols_exports.LParen);
12606
- const arg1 = SUBRULE1(expression, void 0);
12607
- CONSUME1(symbols_exports.comma);
12608
- const arg2 = SUBRULE2(expression, void 0);
12609
- CONSUME2(symbols_exports.comma);
12610
- const arg3 = SUBRULE3(expression, void 0);
12611
- const close = CONSUME(symbols_exports.RParen);
12612
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12613
- }
12366
+ name,
12367
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12368
+ { ALT: () => {
12369
+ const subject = SUBRULE(varOrTerm);
12370
+ const res = SUBRULE(
12371
+ allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
12372
+ ACTION(() => C.factory.dematerialized(subject))
12373
+ );
12374
+ return ACTION(() => {
12375
+ if (res.length > 0) {
12376
+ res[0].subject = subject;
12377
+ res[0].loc = C.factory.sourceLocation(subject, res[0]);
12378
+ }
12379
+ return res;
12380
+ });
12381
+ } },
12382
+ { ALT: () => {
12383
+ const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12384
+ const restNode = SUBRULE(
12385
+ allowPaths ? propertyListPath : propertyList,
12386
+ ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
12387
+ );
12388
+ return ACTION(() => {
12389
+ if (restNode.length === 0) {
12390
+ return [subjectNode];
12391
+ }
12392
+ restNode[0].subject = subjectNode;
12393
+ restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12394
+ return restNode;
12395
+ });
12396
+ } }
12397
+ ])
12614
12398
  };
12615
12399
  }
12616
- function funcVar1(func) {
12400
+ var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
12401
+ var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
12402
+ var triplesTemplate = {
12403
+ name: "triplesTemplate",
12404
+ impl: triplesDotSeperated(triplesSameSubject)
12405
+ };
12406
+ function propertyListImpl(name, allowPaths) {
12617
12407
  return {
12618
- name: unCapitalize(func.name),
12619
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12620
- const operator = CONSUME(func);
12621
- CONSUME(symbols_exports.LParen);
12622
- const arg = SUBRULE(var_, void 0);
12623
- const close = CONSUME(symbols_exports.RParen);
12624
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12625
- }
12408
+ name,
12409
+ impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
12626
12410
  };
12627
12411
  }
12628
- function funcExprOrNil1(func) {
12412
+ var propertyList = propertyListImpl("propertyList", false);
12413
+ var propertyListPath = propertyListImpl("propertyListPath", true);
12414
+ function propertyListNotEmptyImplementation(name, allowPaths) {
12629
12415
  return {
12630
- name: unCapitalize(func.name),
12631
- impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
12632
- const operator = CONSUME(func);
12633
- return OR([
12634
- { ALT: () => {
12635
- CONSUME(symbols_exports.LParen);
12636
- const arg = SUBRULE(expression, void 0);
12637
- const close = CONSUME(symbols_exports.RParen);
12638
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12639
- } },
12640
- { ALT: () => {
12641
- const nil2 = CONSUME(terminals_exports.nil);
12642
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12643
- } }
12644
- ]);
12416
+ name,
12417
+ impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
12418
+ const result = [];
12419
+ let parsedSemi = true;
12420
+ AT_LEAST_ONE({
12421
+ GATE: () => parsedSemi,
12422
+ DEF: () => {
12423
+ parsedSemi = false;
12424
+ const predicate = allowPaths ? OR1([
12425
+ { ALT: () => SUBRULE1(verbPath) },
12426
+ { ALT: () => SUBRULE1(verbSimple) }
12427
+ ]) : SUBRULE1(verb);
12428
+ const triples = SUBRULE1(
12429
+ allowPaths ? objectListPath : objectList,
12430
+ subject,
12431
+ predicate
12432
+ );
12433
+ MANY2(() => {
12434
+ CONSUME(symbols_exports.semi);
12435
+ parsedSemi = true;
12436
+ });
12437
+ ACTION(() => {
12438
+ result.push(...triples);
12439
+ });
12440
+ }
12441
+ });
12442
+ return result;
12645
12443
  }
12646
12444
  };
12647
12445
  }
12648
- function funcNil1(func) {
12446
+ var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12447
+ var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12448
+ var verbPath = {
12449
+ name: "verbPath",
12450
+ impl: ({ SUBRULE }) => () => SUBRULE(path)
12451
+ };
12452
+ var verbSimple = {
12453
+ name: "verbSimple",
12454
+ impl: ({ SUBRULE }) => () => SUBRULE(var_)
12455
+ };
12456
+ function objectListImpl(name, allowPaths) {
12649
12457
  return {
12650
- name: unCapitalize(func.name),
12651
- impl: ({ ACTION, CONSUME }) => (C) => {
12652
- const operator = CONSUME(func);
12653
- const nil2 = CONSUME(terminals_exports.nil);
12654
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12458
+ name,
12459
+ impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
12460
+ const objects = [];
12461
+ AT_LEAST_ONE_SEP({
12462
+ SEP: symbols_exports.comma,
12463
+ DEF: () => {
12464
+ const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
12465
+ ACTION(() => {
12466
+ objects.push(objectTriple);
12467
+ });
12468
+ }
12469
+ });
12470
+ return objects;
12655
12471
  }
12656
12472
  };
12657
12473
  }
12658
- function funcExprList1(func) {
12474
+ var objectList = objectListImpl("objectList", false);
12475
+ var objectListPath = objectListImpl("objectListPath", true);
12476
+ function objectImpl(name, allowPaths) {
12659
12477
  return {
12660
- name: unCapitalize(func.name),
12661
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12662
- const operator = CONSUME(func);
12663
- const args = SUBRULE(expressionList, void 0);
12664
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12478
+ name,
12479
+ impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12480
+ const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12481
+ return ACTION(() => C.factory.triple(subject, predicate, node));
12665
12482
  }
12666
12483
  };
12667
12484
  }
12668
- function funcExpr2or3(func) {
12485
+ var object = objectImpl("object", false);
12486
+ var objectPath = objectImpl("objectPath", true);
12487
+ function collectionImpl(name, allowPaths) {
12669
12488
  return {
12670
- name: unCapitalize(func.name),
12671
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
12672
- const operator = CONSUME(func);
12673
- CONSUME(symbols_exports.LParen);
12674
- const arg1 = SUBRULE1(expression, void 0);
12675
- CONSUME1(symbols_exports.comma);
12676
- const arg2 = SUBRULE2(expression, void 0);
12677
- const arg3 = OPTION(() => {
12678
- CONSUME2(symbols_exports.comma);
12679
- return SUBRULE3(expression, void 0);
12489
+ name,
12490
+ impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12491
+ const terms = [];
12492
+ const startToken = CONSUME(symbols_exports.LParen);
12493
+ AT_LEAST_ONE(() => {
12494
+ terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
12680
12495
  });
12681
- const close = CONSUME(symbols_exports.RParen);
12682
- return ACTION(() => C.factory.expressionOperation(
12683
- operator.image,
12684
- arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
12685
- C.factory.sourceLocation(operator, close)
12686
- ));
12496
+ const endToken = CONSUME(symbols_exports.RParen);
12497
+ return ACTION(() => {
12498
+ const F2 = C.factory;
12499
+ const triples = [];
12500
+ const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12501
+ const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12502
+ const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12503
+ const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12504
+ let iterHead = listHead;
12505
+ for (const [index, term] of terms.entries()) {
12506
+ const lastInList = index === terms.length - 1;
12507
+ const headTriple = F2.triple(
12508
+ iterHead,
12509
+ predFirst,
12510
+ term
12511
+ );
12512
+ triples.push(headTriple);
12513
+ if (lastInList) {
12514
+ const nilTriple = F2.triple(iterHead, predRest, predNil);
12515
+ triples.push(nilTriple);
12516
+ } else {
12517
+ const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12518
+ const linkTriple = F2.triple(iterHead, predRest, tail);
12519
+ triples.push(linkTriple);
12520
+ iterHead = tail;
12521
+ }
12522
+ }
12523
+ return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12524
+ });
12525
+ },
12526
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12527
+ F2.printFilter(ast, () => PRINT_WORD("("));
12528
+ for (const [idx, triple] of ast.triples.entries()) {
12529
+ if (idx % 2 === 0) {
12530
+ SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
12531
+ }
12532
+ }
12533
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12687
12534
  }
12688
12535
  };
12689
12536
  }
12690
- function funcExpr3or4(func) {
12691
- return {
12692
- name: unCapitalize(func.name),
12693
- impl: ({
12694
- ACTION,
12695
- CONSUME,
12696
- SUBRULE1,
12697
- SUBRULE2,
12698
- SUBRULE3,
12699
- SUBRULE4,
12700
- CONSUME1,
12701
- OPTION,
12702
- CONSUME2,
12703
- CONSUME3
12704
- }) => (C) => {
12705
- const operator = CONSUME(func);
12706
- CONSUME(symbols_exports.LParen);
12707
- const arg1 = SUBRULE1(expression, void 0);
12708
- CONSUME1(symbols_exports.comma);
12709
- const arg2 = SUBRULE2(expression, void 0);
12710
- CONSUME2(symbols_exports.comma);
12711
- const arg3 = SUBRULE3(expression, void 0);
12712
- const arg4 = OPTION(() => {
12713
- CONSUME3(symbols_exports.comma);
12714
- return SUBRULE4(expression, void 0);
12715
- });
12716
- const close = CONSUME(symbols_exports.RParen);
12717
- return ACTION(() => C.factory.expressionOperation(
12718
- operator.image,
12719
- arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
12720
- C.factory.sourceLocation(operator, close)
12721
- ));
12722
- }
12537
+ var collection = collectionImpl("collection", false);
12538
+ var collectionPath = collectionImpl("collectionPath", true);
12539
+ function triplesNodeImpl(name, allowPaths) {
12540
+ return {
12541
+ name,
12542
+ impl: ({ SUBRULE, OR }) => () => OR([
12543
+ { ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
12544
+ { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
12545
+ ]),
12546
+ gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
12723
12547
  };
12724
12548
  }
12725
- function funcGroupGraphPattern(func) {
12549
+ var triplesNode = triplesNodeImpl("triplesNode", false);
12550
+ var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12551
+ function blankNodePropertyListImpl(name, allowPaths) {
12552
+ const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
12726
12553
  return {
12727
- name: unCapitalize(func.name),
12554
+ name,
12728
12555
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12729
- const operator = CONSUME(func);
12730
- const group = SUBRULE(groupGraphPattern, void 0);
12731
- return ACTION(() => C.factory.expressionPatternOperation(
12732
- operator.image,
12733
- group,
12734
- C.factory.sourceLocation(operator, group)
12556
+ const startToken = CONSUME(symbols_exports.LSquare);
12557
+ const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12558
+ const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12559
+ const endToken = CONSUME(symbols_exports.RSquare);
12560
+ return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12561
+ blankNode2,
12562
+ propList,
12563
+ C.factory.sourceLocation(startToken, endToken)
12735
12564
  ));
12565
+ },
12566
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12567
+ F2.printFilter(ast, () => PRINT("["));
12568
+ for (const triple of ast.triples) {
12569
+ HANDLE_LOC(triple, () => {
12570
+ if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12571
+ SUBRULE(varOrTerm, triple.predicate);
12572
+ } else {
12573
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12574
+ }
12575
+ SUBRULE(graphNodePath, triple.object);
12576
+ F2.printFilter(ast, () => PRINT_WORD(";"));
12577
+ });
12578
+ }
12579
+ F2.printFilter(ast, () => PRINT("]"));
12736
12580
  }
12737
12581
  };
12738
12582
  }
12739
- function baseAggregateFunc(func) {
12583
+ var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12584
+ var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12585
+ function graphNodeImpl(name, allowPaths) {
12586
+ const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
12740
12587
  return {
12741
- name: unCapitalize(func.name),
12742
- impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
12743
- const operator = CONSUME(func);
12744
- CONSUME(symbols_exports.LParen);
12745
- const distinct2 = OPTION(() => CONSUME(distinct));
12746
- const expr1 = SUBRULE(expression, void 0);
12747
- const close = CONSUME(symbols_exports.RParen);
12748
- return ACTION(() => C.factory.aggregate(
12749
- operator.image,
12750
- distinct2 !== void 0,
12751
- expr1,
12752
- void 0,
12753
- C.factory.sourceLocation(operator, close)
12754
- ));
12588
+ name,
12589
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12590
+ { ALT: () => SUBRULE(varOrTerm) },
12591
+ {
12592
+ GATE: () => C.parseMode.has("canCreateBlankNodes"),
12593
+ ALT: () => SUBRULE(triplesNodeRule)
12594
+ }
12595
+ ]),
12596
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12597
+ if (F2.isTerm(ast)) {
12598
+ SUBRULE(varOrTerm, ast);
12599
+ } else {
12600
+ SUBRULE(triplesNodeRule, ast);
12601
+ }
12755
12602
  }
12756
12603
  };
12757
12604
  }
12605
+ var graphNode = graphNodeImpl("graphNode", false);
12606
+ var graphNodePath = graphNodeImpl("graphNodePath", true);
12758
12607
 
12759
- // ../rules-sparql-1-1/lib/grammar/builtIn.ts
12760
- var builtInStr = funcExpr1(BuildinCalls_exports.str);
12761
- var builtInLang = funcExpr1(BuildinCalls_exports.lang);
12762
- var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
12763
- var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
12764
- var builtInBound = funcVar1(BuildinCalls_exports.bound);
12765
- var builtInIri = funcExpr1(BuildinCalls_exports.iri);
12766
- var builtInUri = funcExpr1(BuildinCalls_exports.uri);
12767
- var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
12768
- var builtInRand = funcNil1(BuildinCalls_exports.rand);
12769
- var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
12770
- var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
12771
- var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
12772
- var builtInRound = funcExpr1(BuildinCalls_exports.round);
12773
- var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
12774
- var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
12775
- var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
12776
- var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
12777
- var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
12778
- var builtInContains = funcExpr2(BuildinCalls_exports.contains);
12779
- var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
12780
- var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
12781
- var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
12782
- var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
12783
- var builtInYear = funcExpr1(BuildinCalls_exports.year);
12784
- var builtInMonth = funcExpr1(BuildinCalls_exports.month);
12785
- var builtInDay = funcExpr1(BuildinCalls_exports.day);
12786
- var builtInHours = funcExpr1(BuildinCalls_exports.hours);
12787
- var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
12788
- var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
12789
- var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
12790
- var builtInTz = funcExpr1(BuildinCalls_exports.tz);
12791
- var builtInNow = funcNil1(BuildinCalls_exports.now);
12792
- var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
12793
- var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
12794
- var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
12795
- var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
12796
- var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
12797
- var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
12798
- var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
12799
- var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
12800
- var builtInIf = funcExpr3(BuildinCalls_exports.if_);
12801
- var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
12802
- var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
12803
- var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
12804
- var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
12805
- var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
12806
- var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
12807
- var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
12808
- var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
12809
- function builtInCallList(SUBRULE) {
12810
- return [
12811
- { ALT: () => SUBRULE(aggregate, void 0) },
12812
- { ALT: () => SUBRULE(builtInStr, void 0) },
12813
- { ALT: () => SUBRULE(builtInLang, void 0) },
12814
- { ALT: () => SUBRULE(builtInLangmatches, void 0) },
12815
- { ALT: () => SUBRULE(builtInDatatype, void 0) },
12816
- { ALT: () => SUBRULE(builtInBound, void 0) },
12817
- { ALT: () => SUBRULE(builtInIri, void 0) },
12818
- { ALT: () => SUBRULE(builtInUri, void 0) },
12819
- { ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
12820
- { ALT: () => SUBRULE(builtInRand, void 0) },
12821
- { ALT: () => SUBRULE(builtInAbs, void 0) },
12822
- { ALT: () => SUBRULE(builtInCeil, void 0) },
12823
- { ALT: () => SUBRULE(builtInFloor, void 0) },
12824
- { ALT: () => SUBRULE(builtInRound, void 0) },
12825
- { ALT: () => SUBRULE(builtInConcat, void 0) },
12826
- { ALT: () => SUBRULE(substringExpression, void 0) },
12827
- { ALT: () => SUBRULE(builtInStrlen, void 0) },
12828
- { ALT: () => SUBRULE(strReplaceExpression, void 0) },
12829
- { ALT: () => SUBRULE(builtInUcase, void 0) },
12830
- { ALT: () => SUBRULE(builtInLcase, void 0) },
12831
- { ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
12832
- { ALT: () => SUBRULE(builtInContains, void 0) },
12833
- { ALT: () => SUBRULE(builtInStrstarts, void 0) },
12834
- { ALT: () => SUBRULE(builtInStrends, void 0) },
12835
- { ALT: () => SUBRULE(builtInStrbefore, void 0) },
12836
- { ALT: () => SUBRULE(builtInStrafter, void 0) },
12837
- { ALT: () => SUBRULE(builtInYear, void 0) },
12838
- { ALT: () => SUBRULE(builtInMonth, void 0) },
12839
- { ALT: () => SUBRULE(builtInDay, void 0) },
12840
- { ALT: () => SUBRULE(builtInHours, void 0) },
12841
- { ALT: () => SUBRULE(builtInMinutes, void 0) },
12842
- { ALT: () => SUBRULE(builtInSeconds, void 0) },
12843
- { ALT: () => SUBRULE(builtInTimezone, void 0) },
12844
- { ALT: () => SUBRULE(builtInTz, void 0) },
12845
- { ALT: () => SUBRULE(builtInNow, void 0) },
12846
- { ALT: () => SUBRULE(builtInUuid, void 0) },
12847
- { ALT: () => SUBRULE(builtInStruuid, void 0) },
12848
- { ALT: () => SUBRULE(builtInMd5, void 0) },
12849
- { ALT: () => SUBRULE(builtInSha1, void 0) },
12850
- { ALT: () => SUBRULE(builtInSha256, void 0) },
12851
- { ALT: () => SUBRULE(builtInSha384, void 0) },
12852
- { ALT: () => SUBRULE(builtInSha512, void 0) },
12853
- { ALT: () => SUBRULE(builtInCoalesce, void 0) },
12854
- { ALT: () => SUBRULE(builtInIf, void 0) },
12855
- { ALT: () => SUBRULE(builtInStrlang, void 0) },
12856
- { ALT: () => SUBRULE(builtInStrdt, void 0) },
12857
- { ALT: () => SUBRULE(builtInSameterm, void 0) },
12858
- { ALT: () => SUBRULE(builtInIsiri, void 0) },
12859
- { ALT: () => SUBRULE(builtInIsuri, void 0) },
12860
- { ALT: () => SUBRULE(builtInIsblank, void 0) },
12861
- { ALT: () => SUBRULE(builtInIsliteral, void 0) },
12862
- { ALT: () => SUBRULE(builtInIsnumeric, void 0) },
12863
- { ALT: () => SUBRULE(regexExpression, void 0) },
12864
- { ALT: () => SUBRULE(existsFunc, void 0) },
12865
- { ALT: () => SUBRULE(notExistsFunc, void 0) }
12866
- ];
12867
- }
12868
- var builtInCall = {
12869
- name: "builtInCall",
12870
- impl: ({ OR, SUBRULE, cache }) => () => {
12871
- const cached = cache.get(builtInCall);
12872
- if (cached) {
12873
- return OR(cached);
12874
- }
12875
- const builtIns = builtInCallList(SUBRULE);
12876
- cache.set(builtInCall, builtIns);
12877
- return OR(builtIns);
12608
+ // ../rules-sparql-1-1/lib/grammar/whereClause.ts
12609
+ var whereClause = {
12610
+ name: "whereClause",
12611
+ impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12612
+ const where2 = OPTION(() => CONSUME(where));
12613
+ const group = SUBRULE(groupGraphPattern);
12614
+ return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12615
+ },
12616
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12617
+ F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12618
+ SUBRULE(groupGraphPattern, ast.val);
12878
12619
  }
12879
12620
  };
12880
- var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
12881
- var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
12882
- var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
12883
- var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
12884
- var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
12885
- var aggregateCount = {
12886
- name: unCapitalize(BuildinCalls_exports.count.name),
12887
- impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
12888
- const operatorToken = CONSUME(BuildinCalls_exports.count);
12889
- CONSUME(symbols_exports.LParen);
12890
- const distinctToken = OPTION(() => CONSUME(distinct));
12891
- const expressionVal = OR([
12892
- { ALT: () => {
12893
- const starToken = CONSUME(symbols_exports.star);
12894
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12895
- } },
12896
- { ALT: () => SUBRULE(expression, void 0) }
12621
+ var groupGraphPattern = {
12622
+ name: "groupGraphPattern",
12623
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12624
+ const open = CONSUME(symbols_exports.LCurly);
12625
+ const patterns = OR([
12626
+ { ALT: () => [SUBRULE(subSelect)] },
12627
+ { ALT: () => SUBRULE(groupGraphPatternSub) }
12897
12628
  ]);
12898
- const closeToken = CONSUME(symbols_exports.RParen);
12899
- return ACTION(() => {
12900
- const F2 = C.factory;
12901
- if (C.factory.isWildcard(expressionVal)) {
12902
- return F2.aggregate(
12903
- operatorToken.image,
12904
- Boolean(distinctToken),
12905
- expressionVal,
12906
- void 0,
12907
- C.factory.sourceLocation(operatorToken, closeToken)
12908
- );
12629
+ const close = CONSUME(symbols_exports.RCurly);
12630
+ return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12631
+ },
12632
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12633
+ F2.printFilter(ast, () => PRINT_WORD("{"));
12634
+ for (const pattern of ast.patterns) {
12635
+ SUBRULE(generatePattern, pattern);
12636
+ }
12637
+ F2.printFilter(ast, () => PRINT_WORD("}"));
12638
+ }
12639
+ };
12640
+ var generatePattern = {
12641
+ name: "generatePattern",
12642
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12643
+ if (ast.type === "query") {
12644
+ SUBRULE(query, F2.querySelect({
12645
+ context: [],
12646
+ datasets: F2.datasetClauses([], F2.sourceLocation()),
12647
+ where: ast.where,
12648
+ variables: ast.variables,
12649
+ solutionModifiers: ast.solutionModifiers,
12650
+ values: ast.values,
12651
+ distinct: ast.distinct,
12652
+ reduced: ast.reduced
12653
+ }, ast.loc));
12654
+ } else if (ast.subType === "group") {
12655
+ SUBRULE(groupGraphPattern, ast);
12656
+ } else if (ast.subType === "bgp") {
12657
+ SUBRULE(triplesBlock, ast);
12658
+ } else {
12659
+ SUBRULE(graphPatternNotTriples, ast);
12660
+ }
12661
+ }
12662
+ };
12663
+ var groupGraphPatternSub = {
12664
+ name: "groupGraphPatternSub",
12665
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12666
+ const patterns = [];
12667
+ const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
12668
+ if (bgpPattern) {
12669
+ patterns.push(bgpPattern);
12670
+ }
12671
+ MANY(() => {
12672
+ const notTriples = SUBRULE(graphPatternNotTriples);
12673
+ patterns.push(notTriples);
12674
+ OPTION2(() => CONSUME(symbols_exports.dot));
12675
+ const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
12676
+ if (moreTriples) {
12677
+ patterns.push(moreTriples);
12678
+ }
12679
+ });
12680
+ ACTION(() => checkNote13(patterns));
12681
+ return patterns;
12682
+ }
12683
+ };
12684
+ var graphPatternNotTriples = {
12685
+ name: "graphPatternNotTriples",
12686
+ impl: ({ SUBRULE, OR }) => () => OR([
12687
+ { ALT: () => SUBRULE(groupOrUnionGraphPattern) },
12688
+ { ALT: () => SUBRULE(optionalGraphPattern) },
12689
+ { ALT: () => SUBRULE(minusGraphPattern) },
12690
+ { ALT: () => SUBRULE(graphGraphPattern) },
12691
+ { ALT: () => SUBRULE(serviceGraphPattern) },
12692
+ { ALT: () => SUBRULE(filter3) },
12693
+ { ALT: () => SUBRULE(bind2) },
12694
+ { ALT: () => SUBRULE(inlineData) }
12695
+ ]),
12696
+ gImpl: ({ SUBRULE }) => (ast) => {
12697
+ switch (ast.subType) {
12698
+ case "group":
12699
+ case "union":
12700
+ SUBRULE(groupOrUnionGraphPattern, ast);
12701
+ break;
12702
+ case "optional":
12703
+ SUBRULE(optionalGraphPattern, ast);
12704
+ break;
12705
+ case "minus":
12706
+ SUBRULE(minusGraphPattern, ast);
12707
+ break;
12708
+ case "graph":
12709
+ SUBRULE(graphGraphPattern, ast);
12710
+ break;
12711
+ case "service":
12712
+ SUBRULE(serviceGraphPattern, ast);
12713
+ break;
12714
+ case "filter":
12715
+ SUBRULE(filter3, ast);
12716
+ break;
12717
+ case "bind":
12718
+ SUBRULE(bind2, ast);
12719
+ break;
12720
+ case "values":
12721
+ SUBRULE(inlineData, ast);
12722
+ break;
12723
+ }
12724
+ }
12725
+ };
12726
+ var optionalGraphPattern = {
12727
+ name: "optionalGraphPattern",
12728
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12729
+ const optional2 = CONSUME(optional);
12730
+ const group = SUBRULE(groupGraphPattern);
12731
+ return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12732
+ },
12733
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12734
+ F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12735
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12736
+ }
12737
+ };
12738
+ var graphGraphPattern = {
12739
+ name: "graphGraphPattern",
12740
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12741
+ const graph2 = CONSUME(graph_exports.graph);
12742
+ const name = SUBRULE(varOrIri);
12743
+ const group = SUBRULE(groupGraphPattern);
12744
+ return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12745
+ },
12746
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12747
+ F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12748
+ SUBRULE(varOrTerm, ast.name);
12749
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12750
+ }
12751
+ };
12752
+ var serviceGraphPattern = {
12753
+ name: "serviceGraphPattern",
12754
+ impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12755
+ const service2 = CONSUME(service);
12756
+ const silent2 = OPTION(() => {
12757
+ CONSUME(silent);
12758
+ return true;
12759
+ }) ?? false;
12760
+ const name = SUBRULE1(varOrIri);
12761
+ const group = SUBRULE1(groupGraphPattern);
12762
+ return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12763
+ },
12764
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12765
+ F2.printFilter(ast, () => {
12766
+ PRINT_WORD("SERVICE");
12767
+ if (ast.silent) {
12768
+ PRINT_WORD("SILENT");
12909
12769
  }
12910
- return F2.aggregate(
12911
- operatorToken.image,
12912
- Boolean(distinctToken),
12913
- expressionVal,
12914
- void 0,
12915
- C.factory.sourceLocation(operatorToken, closeToken)
12916
- );
12917
12770
  });
12771
+ SUBRULE(varOrTerm, ast.name);
12772
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12918
12773
  }
12919
12774
  };
12920
- var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
12921
- var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
12922
- var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
12923
- var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
12924
- var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
12925
- var aggregateGroup_concat = {
12926
- name: unCapitalize(BuildinCalls_exports.groupConcat.name),
12927
- impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
12928
- const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12775
+ var bind2 = {
12776
+ name: "bind",
12777
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12778
+ const bind3 = CONSUME(bind);
12929
12779
  CONSUME(symbols_exports.LParen);
12930
- const distinctToken = OPTION1(() => CONSUME(distinct));
12931
- const expr = SUBRULE(expression, void 0);
12932
- const sep = OPTION2(() => {
12933
- CONSUME(symbols_exports.semi);
12934
- CONSUME(separator);
12935
- CONSUME(symbols_exports.equal);
12936
- return SUBRULE(string, void 0);
12780
+ const expressionVal = SUBRULE(expression);
12781
+ CONSUME(as);
12782
+ const variable = SUBRULE(var_);
12783
+ const close = CONSUME(symbols_exports.RParen);
12784
+ return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12785
+ },
12786
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12787
+ F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12788
+ SUBRULE(expression, ast.expression);
12789
+ F2.printFilter(ast, () => PRINT_WORD("AS"));
12790
+ SUBRULE(var_, ast.variable);
12791
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12792
+ }
12793
+ };
12794
+ var inlineData = {
12795
+ name: "inlineData",
12796
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12797
+ const values3 = CONSUME(values2);
12798
+ const datablock = SUBRULE(dataBlock);
12799
+ return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12800
+ },
12801
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12802
+ const variables = Object.keys(ast.values[0]);
12803
+ F2.printFilter(ast, () => {
12804
+ PRINT_WORD("VALUES", "(");
12805
+ for (const variable of variables) {
12806
+ PRINT_WORD(`?${variable}`);
12807
+ }
12808
+ PRINT_WORD(")", "{");
12937
12809
  });
12938
- const closeToken = CONSUME(symbols_exports.RParen);
12939
- return ACTION(() => {
12940
- const F2 = C.factory;
12941
- return F2.aggregate(
12942
- operatorToken.image,
12943
- Boolean(distinctToken),
12944
- expr,
12945
- sep?.value ?? " ",
12946
- F2.sourceLocation(operatorToken, closeToken)
12947
- );
12810
+ for (const mapping of ast.values) {
12811
+ F2.printFilter(ast, () => PRINT_WORD("("));
12812
+ for (const variable of variables) {
12813
+ if (mapping[variable] === void 0) {
12814
+ F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
12815
+ } else {
12816
+ SUBRULE(graphNodePath, mapping[variable]);
12817
+ }
12818
+ }
12819
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12820
+ }
12821
+ F2.printFilter(ast, () => PRINT_WORD("}"));
12822
+ }
12823
+ };
12824
+ var dataBlock = {
12825
+ name: "dataBlock",
12826
+ impl: ({ SUBRULE, OR }) => () => OR([
12827
+ { ALT: () => SUBRULE(inlineDataOneVar) },
12828
+ { ALT: () => SUBRULE(inlineDataFull) }
12829
+ ])
12830
+ };
12831
+ var inlineDataOneVar = {
12832
+ name: "inlineDataOneVar",
12833
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12834
+ const res = [];
12835
+ const varVal = SUBRULE(var_);
12836
+ CONSUME(symbols_exports.LCurly);
12837
+ MANY(() => {
12838
+ const value = SUBRULE(dataBlockValue);
12839
+ ACTION(() => {
12840
+ res.push({ [varVal.value]: value });
12841
+ });
12948
12842
  });
12843
+ const close = CONSUME(symbols_exports.RCurly);
12844
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
12949
12845
  }
12950
12846
  };
12951
- var aggregate = {
12952
- name: "aggregate",
12953
- impl: ({ ACTION, SUBRULE, OR }) => (C) => {
12954
- const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
12955
- ACTION(() => C.parseMode.add("inAggregate"));
12956
- const result = OR([
12957
- { ALT: () => SUBRULE(aggregateCount, void 0) },
12958
- { ALT: () => SUBRULE(aggregateSum, void 0) },
12959
- { ALT: () => SUBRULE(aggregateMin, void 0) },
12960
- { ALT: () => SUBRULE(aggregateMax, void 0) },
12961
- { ALT: () => SUBRULE(aggregateAvg, void 0) },
12962
- { ALT: () => SUBRULE(aggregateSample, void 0) },
12963
- { ALT: () => SUBRULE(aggregateGroup_concat, void 0) }
12847
+ var inlineDataFull = {
12848
+ name: "inlineDataFull",
12849
+ impl: ({
12850
+ ACTION,
12851
+ OR,
12852
+ MANY1,
12853
+ MANY2,
12854
+ MANY3,
12855
+ MANY4,
12856
+ SUBRULE,
12857
+ CONSUME1,
12858
+ CONSUME2
12859
+ }) => (C) => {
12860
+ const res = [];
12861
+ const vars = [];
12862
+ return OR([
12863
+ { ALT: () => {
12864
+ const nil2 = CONSUME1(terminals_exports.nil);
12865
+ CONSUME1(symbols_exports.LCurly);
12866
+ MANY1(() => {
12867
+ CONSUME2(terminals_exports.nil);
12868
+ res.push({});
12869
+ });
12870
+ const close = CONSUME1(symbols_exports.RCurly);
12871
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12872
+ } },
12873
+ { ALT: () => {
12874
+ const open = CONSUME1(symbols_exports.LParen);
12875
+ MANY2(() => {
12876
+ vars.push(SUBRULE(var_));
12877
+ });
12878
+ CONSUME1(symbols_exports.RParen);
12879
+ CONSUME2(symbols_exports.LCurly);
12880
+ MANY3(() => {
12881
+ let parsedValues = 0;
12882
+ const currentRow = {};
12883
+ CONSUME2(symbols_exports.LParen);
12884
+ MANY4(() => {
12885
+ if (parsedValues >= vars.length) {
12886
+ throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12887
+ }
12888
+ const value = SUBRULE(dataBlockValue);
12889
+ ACTION(() => {
12890
+ currentRow[vars[parsedValues].value] = value;
12891
+ parsedValues++;
12892
+ });
12893
+ });
12894
+ CONSUME2(symbols_exports.RParen);
12895
+ ACTION(() => {
12896
+ res.push(currentRow);
12897
+ if (vars.length !== parsedValues) {
12898
+ throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
12899
+ }
12900
+ });
12901
+ });
12902
+ const close = CONSUME2(symbols_exports.RCurly);
12903
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
12904
+ } }
12964
12905
  ]);
12965
- ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
12966
- ACTION(() => {
12967
- if (!C.parseMode.has("canParseAggregate")) {
12968
- throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
12969
- }
12970
- if (C.parseMode.has("inAggregate")) {
12971
- throw new Error("An aggregate function is not allowed within an aggregate function.");
12972
- }
12906
+ }
12907
+ };
12908
+ var dataBlockValue = {
12909
+ name: "dataBlockValue",
12910
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12911
+ { ALT: () => SUBRULE(iri2) },
12912
+ { ALT: () => SUBRULE(rdfLiteral) },
12913
+ { ALT: () => SUBRULE(numericLiteral) },
12914
+ { ALT: () => SUBRULE(booleanLiteral) },
12915
+ { ALT: () => {
12916
+ CONSUME(undef);
12917
+ return void 0;
12918
+ } }
12919
+ ])
12920
+ };
12921
+ var minusGraphPattern = {
12922
+ name: "minusGraphPattern",
12923
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12924
+ const minus2 = CONSUME(minus);
12925
+ const group = SUBRULE(groupGraphPattern);
12926
+ return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
12927
+ },
12928
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12929
+ F2.printFilter(ast, () => PRINT_WORD("MINUS"));
12930
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12931
+ }
12932
+ };
12933
+ var groupOrUnionGraphPattern = {
12934
+ name: "groupOrUnionGraphPattern",
12935
+ impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
12936
+ const groups = [];
12937
+ const group = SUBRULE1(groupGraphPattern);
12938
+ groups.push(group);
12939
+ MANY(() => {
12940
+ CONSUME(union);
12941
+ const group2 = SUBRULE2(groupGraphPattern);
12942
+ groups.push(group2);
12973
12943
  });
12974
- return result;
12944
+ return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
12945
+ groups,
12946
+ C.factory.sourceLocation(group, groups.at(-1))
12947
+ ));
12975
12948
  },
12976
12949
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12977
- F2.printFilter(ast, () => {
12978
- PRINT_WORD(ast.aggregation, "(");
12979
- if (ast.distinct) {
12980
- PRINT_WORD("DISTINCT");
12950
+ if (F2.isPatternUnion(ast)) {
12951
+ const [head2, ...tail] = ast.patterns;
12952
+ SUBRULE(groupGraphPattern, head2);
12953
+ for (const pattern of tail) {
12954
+ F2.printFilter(ast, () => PRINT_WORD("UNION"));
12955
+ SUBRULE(groupGraphPattern, pattern);
12981
12956
  }
12982
- });
12983
- const arg = ast.expression[0];
12984
- if (F2.isWildcard(arg)) {
12985
- F2.printFilter(ast, () => PRINT_WORD("*"));
12986
12957
  } else {
12987
- SUBRULE(expression, arg, void 0);
12988
- }
12989
- if (F2.isExpressionAggregateSeparator(ast)) {
12990
- F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
12958
+ SUBRULE(groupGraphPattern, ast);
12991
12959
  }
12960
+ }
12961
+ };
12962
+ var filter3 = {
12963
+ name: "filter",
12964
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12965
+ const filterToken = CONSUME(filter2);
12966
+ const expression2 = SUBRULE(constraint);
12967
+ return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
12968
+ },
12969
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12970
+ F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
12971
+ SUBRULE(expression, ast.expression);
12992
12972
  F2.printFilter(ast, () => PRINT_WORD(")"));
12993
12973
  }
12994
12974
  };
12975
+ var constraint = {
12976
+ name: "constraint",
12977
+ impl: ({ SUBRULE, OR }) => () => OR([
12978
+ { ALT: () => SUBRULE(brackettedExpression) },
12979
+ { ALT: () => SUBRULE(builtInCall) },
12980
+ { ALT: () => SUBRULE(functionCall) }
12981
+ ])
12982
+ };
12983
+ var functionCall = {
12984
+ name: "functionCall",
12985
+ impl: ({ ACTION, SUBRULE }) => (C) => {
12986
+ const func = SUBRULE(iri2);
12987
+ const args = SUBRULE(argList);
12988
+ return ACTION(() => C.factory.expressionFunctionCall(
12989
+ func,
12990
+ args.val.args,
12991
+ args.val.distinct,
12992
+ C.factory.sourceLocation(func, args)
12993
+ ));
12994
+ }
12995
+ };
12995
12996
 
12996
12997
  // ../rules-sparql-1-1/lib/grammar/expression.ts
12997
12998
  var argList = {
@@ -13011,7 +13012,7 @@ var argList = {
13011
13012
  AT_LEAST_ONE_SEP({
13012
13013
  SEP: symbols_exports.comma,
13013
13014
  DEF: () => {
13014
- const arg = SUBRULE1(expression, void 0);
13015
+ const arg = SUBRULE1(expression);
13015
13016
  args.push(arg);
13016
13017
  }
13017
13018
  });
@@ -13028,11 +13029,11 @@ var argList = {
13028
13029
  });
13029
13030
  const [head2, ...tail] = ast.val.args;
13030
13031
  if (head2) {
13031
- SUBRULE(expression, head2, void 0);
13032
+ SUBRULE(expression, head2);
13032
13033
  }
13033
13034
  for (const expr of tail) {
13034
13035
  F2.printFilter(ast, () => PRINT_WORD(","));
13035
- SUBRULE(expression, expr, void 0);
13036
+ SUBRULE(expression, expr);
13036
13037
  }
13037
13038
  F2.printFilter(ast, () => PRINT_WORD(")"));
13038
13039
  }
@@ -13046,11 +13047,11 @@ var expressionList = {
13046
13047
  } },
13047
13048
  { ALT: () => {
13048
13049
  const open = CONSUME(symbols_exports.LParen);
13049
- const expr1 = SUBRULE1(expression, void 0);
13050
+ const expr1 = SUBRULE1(expression);
13050
13051
  const args = [expr1];
13051
13052
  MANY(() => {
13052
13053
  CONSUME(symbols_exports.comma);
13053
- const expr = SUBRULE2(expression, void 0);
13054
+ const expr = SUBRULE2(expression);
13054
13055
  args.push(expr);
13055
13056
  });
13056
13057
  const close = CONSUME(symbols_exports.RParen);
@@ -13062,15 +13063,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
13062
13063
  var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13063
13064
  var expression = {
13064
13065
  name: "expression",
13065
- impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, void 0),
13066
+ impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13066
13067
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13067
13068
  if (F2.isTerm(ast)) {
13068
- SUBRULE(varOrTerm, ast, void 0);
13069
+ SUBRULE(varOrTerm, ast);
13069
13070
  } else if (F2.isExpressionOperator(ast)) {
13070
13071
  if (infixOperators.has(ast.operator)) {
13071
13072
  const [left, ...right] = ast.args;
13072
13073
  F2.printFilter(ast, () => PRINT_WORD("("));
13073
- SUBRULE(expression, left, void 0);
13074
+ SUBRULE(expression, left);
13074
13075
  F2.printFilter(ast, () => {
13075
13076
  if (ast.operator === "notin") {
13076
13077
  PRINT_WORD("NOT IN");
@@ -13081,35 +13082,35 @@ var expression = {
13081
13082
  }
13082
13083
  });
13083
13084
  if (right.length === 1) {
13084
- SUBRULE(expression, right[0], void 0);
13085
+ SUBRULE(expression, right[0]);
13085
13086
  } else {
13086
- SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc), void 0);
13087
+ SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc));
13087
13088
  }
13088
13089
  F2.printFilter(ast, () => PRINT_WORD(")"));
13089
13090
  } else if (prefixOperator.has(ast.operator)) {
13090
13091
  const [expr] = ast.args;
13091
13092
  F2.printFilter(ast, () => PRINT_WORD(ast.operator));
13092
- SUBRULE(expression, expr, void 0);
13093
+ SUBRULE(expression, expr);
13093
13094
  } else {
13094
13095
  F2.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
13095
13096
  const [head2, ...tail] = ast.args;
13096
13097
  if (head2) {
13097
- SUBRULE(expression, head2, void 0);
13098
+ SUBRULE(expression, head2);
13098
13099
  }
13099
13100
  for (const arg of tail) {
13100
13101
  F2.printFilter(ast, () => PRINT_WORD(","));
13101
- SUBRULE(expression, arg, void 0);
13102
+ SUBRULE(expression, arg);
13102
13103
  }
13103
13104
  F2.printFilter(ast, () => PRINT_WORD(")"));
13104
13105
  }
13105
13106
  } else if (F2.isExpressionPatternOperation(ast)) {
13106
13107
  const patterns = ast.args;
13107
13108
  F2.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
13108
- SUBRULE(groupGraphPattern, patterns, void 0);
13109
+ SUBRULE(groupGraphPattern, patterns);
13109
13110
  } else if (F2.isExpressionFunctionCall(ast)) {
13110
- SUBRULE(iriOrFunction, ast, void 0);
13111
+ SUBRULE(iriOrFunction, ast);
13111
13112
  } else if (F2.isExpressionAggregate(ast)) {
13112
- SUBRULE(aggregate, ast, void 0);
13113
+ SUBRULE(aggregate, ast);
13113
13114
  }
13114
13115
  }
13115
13116
  };
@@ -13126,10 +13127,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
13126
13127
  var conditionalOrExpression = {
13127
13128
  name: "conditionalOrExpression",
13128
13129
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
13129
- () => SUBRULE1(conditionalAndExpression, void 0),
13130
+ () => SUBRULE1(conditionalAndExpression),
13130
13131
  () => {
13131
13132
  CONSUME(symbols_exports.logicOr);
13132
- const args = SUBRULE2(conditionalAndExpression, void 0);
13133
+ const args = SUBRULE2(conditionalAndExpression);
13133
13134
  return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13134
13135
  },
13135
13136
  ACTION,
@@ -13139,10 +13140,10 @@ var conditionalOrExpression = {
13139
13140
  var conditionalAndExpression = {
13140
13141
  name: "conditionalAndExpression",
13141
13142
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
13142
- () => SUBRULE1(valueLogical, void 0),
13143
+ () => SUBRULE1(valueLogical),
13143
13144
  () => {
13144
13145
  CONSUME(symbols_exports.logicAnd);
13145
- const arg = SUBRULE2(valueLogical, void 0);
13146
+ const arg = SUBRULE2(valueLogical);
13146
13147
  return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13147
13148
  },
13148
13149
  ACTION,
@@ -13151,12 +13152,12 @@ var conditionalAndExpression = {
13151
13152
  };
13152
13153
  var valueLogical = {
13153
13154
  name: "valueLogical",
13154
- impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression, void 0)
13155
+ impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
13155
13156
  };
13156
13157
  var relationalExpression = {
13157
13158
  name: "relationalExpression",
13158
13159
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
13159
- const args1 = SUBRULE1(numericExpression, void 0);
13160
+ const args1 = SUBRULE1(numericExpression);
13160
13161
  const expression2 = OPTION(() => OR1([
13161
13162
  { ALT: () => {
13162
13163
  const operator = OR2([
@@ -13167,7 +13168,7 @@ var relationalExpression = {
13167
13168
  { ALT: () => CONSUME(symbols_exports.lessThanEqual) },
13168
13169
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13169
13170
  ]);
13170
- const expr = SUBRULE2(numericExpression, void 0);
13171
+ const expr = SUBRULE2(numericExpression);
13171
13172
  return ACTION(() => C.factory.expressionOperation(
13172
13173
  operator.image,
13173
13174
  [args1, expr],
@@ -13179,7 +13180,7 @@ var relationalExpression = {
13179
13180
  { ALT: () => CONSUME(in_) },
13180
13181
  { ALT: () => CONSUME(notIn) }
13181
13182
  ]);
13182
- const args = SUBRULE1(expressionList, void 0);
13183
+ const args = SUBRULE1(expressionList);
13183
13184
  return ACTION(() => C.factory.expressionOperation(
13184
13185
  operator.image,
13185
13186
  [args1, ...args.val],
@@ -13192,25 +13193,25 @@ var relationalExpression = {
13192
13193
  };
13193
13194
  var numericExpression = {
13194
13195
  name: "numericExpression",
13195
- impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression, void 0)
13196
+ impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
13196
13197
  };
13197
13198
  var additiveExpression = {
13198
13199
  name: "additiveExpression",
13199
13200
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
13200
- () => SUBRULE1(multiplicativeExpression, void 0),
13201
+ () => SUBRULE1(multiplicativeExpression),
13201
13202
  () => OR1([
13202
13203
  { ALT: () => {
13203
13204
  const operator = OR2([
13204
13205
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13205
13206
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13206
13207
  ]);
13207
- const arg = SUBRULE2(multiplicativeExpression, void 0);
13208
+ const arg = SUBRULE2(multiplicativeExpression);
13208
13209
  return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13209
13210
  } },
13210
13211
  { ALT: () => {
13211
13212
  const { operator, startInt } = OR3([
13212
13213
  { ALT: () => {
13213
- const integer2 = SUBRULE(numericLiteralPositive, void 0);
13214
+ const integer2 = SUBRULE(numericLiteralPositive);
13214
13215
  return ACTION(() => {
13215
13216
  integer2.value = integer2.value.replace(/^\+/u, "");
13216
13217
  return {
@@ -13220,7 +13221,7 @@ var additiveExpression = {
13220
13221
  });
13221
13222
  } },
13222
13223
  { ALT: () => {
13223
- const integer2 = SUBRULE(numericLiteralNegative, void 0);
13224
+ const integer2 = SUBRULE(numericLiteralNegative);
13224
13225
  return ACTION(() => {
13225
13226
  integer2.value = integer2.value.replace(/^-/u, "");
13226
13227
  return {
@@ -13237,7 +13238,7 @@ var additiveExpression = {
13237
13238
  { ALT: () => CONSUME(symbols_exports.star) },
13238
13239
  { ALT: () => CONSUME(symbols_exports.slash) }
13239
13240
  ]);
13240
- const innerExpr = SUBRULE1(unaryExpression, void 0);
13241
+ const innerExpr = SUBRULE1(unaryExpression);
13241
13242
  return ACTION(() => (leftInner) => C.factory.expressionOperation(
13242
13243
  innerOperator.image,
13243
13244
  [leftInner, innerExpr],
@@ -13261,13 +13262,13 @@ var additiveExpression = {
13261
13262
  var multiplicativeExpression = {
13262
13263
  name: "multiplicativeExpression",
13263
13264
  impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
13264
- () => SUBRULE1(unaryExpression, void 0),
13265
+ () => SUBRULE1(unaryExpression),
13265
13266
  () => {
13266
13267
  const operator = OR([
13267
13268
  { ALT: () => CONSUME(symbols_exports.star) },
13268
13269
  { ALT: () => CONSUME(symbols_exports.slash) }
13269
13270
  ]);
13270
- const expr = SUBRULE2(unaryExpression, void 0);
13271
+ const expr = SUBRULE2(unaryExpression);
13271
13272
  return (left) => ({
13272
13273
  type: "expression",
13273
13274
  subType: "operation",
@@ -13283,14 +13284,14 @@ var multiplicativeExpression = {
13283
13284
  var unaryExpression = {
13284
13285
  name: "unaryExpression",
13285
13286
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
13286
- { ALT: () => SUBRULE1(primaryExpression, void 0) },
13287
+ { ALT: () => SUBRULE1(primaryExpression) },
13287
13288
  { ALT: () => {
13288
13289
  const operator = OR2([
13289
13290
  { ALT: () => CONSUME(symbols_exports.exclamation) },
13290
13291
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13291
13292
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13292
13293
  ]);
13293
- const expr = SUBRULE2(primaryExpression, void 0);
13294
+ const expr = SUBRULE2(primaryExpression);
13294
13295
  return ACTION(() => ({
13295
13296
  type: "expression",
13296
13297
  subType: "operation",
@@ -13304,20 +13305,20 @@ var unaryExpression = {
13304
13305
  var primaryExpression = {
13305
13306
  name: "primaryExpression",
13306
13307
  impl: ({ SUBRULE, OR }) => () => OR([
13307
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
13308
- { ALT: () => SUBRULE(builtInCall, void 0) },
13309
- { ALT: () => SUBRULE(iriOrFunction, void 0) },
13310
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
13311
- { ALT: () => SUBRULE(numericLiteral, void 0) },
13312
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
13313
- { ALT: () => SUBRULE(var_, void 0) }
13308
+ { ALT: () => SUBRULE(brackettedExpression) },
13309
+ { ALT: () => SUBRULE(builtInCall) },
13310
+ { ALT: () => SUBRULE(iriOrFunction) },
13311
+ { ALT: () => SUBRULE(rdfLiteral) },
13312
+ { ALT: () => SUBRULE(numericLiteral) },
13313
+ { ALT: () => SUBRULE(booleanLiteral) },
13314
+ { ALT: () => SUBRULE(var_) }
13314
13315
  ])
13315
13316
  };
13316
13317
  var brackettedExpression = {
13317
13318
  name: "brackettedExpression",
13318
13319
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13319
13320
  const open = CONSUME(symbols_exports.LParen);
13320
- const expr = SUBRULE(expression, void 0);
13321
+ const expr = SUBRULE(expression);
13321
13322
  const close = CONSUME(symbols_exports.RParen);
13322
13323
  return ACTION(() => {
13323
13324
  expr.loc = C.factory.sourceLocation(open, close);
@@ -13328,9 +13329,9 @@ var brackettedExpression = {
13328
13329
  var iriOrFunction = {
13329
13330
  name: "iriOrFunction",
13330
13331
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
13331
- const iriVal = SUBRULE(iri2, void 0);
13332
+ const iriVal = SUBRULE(iri2);
13332
13333
  const functionCall2 = OPTION(() => {
13333
- const args = SUBRULE(argList, void 0);
13334
+ const args = SUBRULE(argList);
13334
13335
  return ACTION(() => {
13335
13336
  const distinct2 = args.val.distinct;
13336
13337
  if (!C.parseMode.has("canParseAggregate") && distinct2) {
@@ -13350,10 +13351,10 @@ var iriOrFunction = {
13350
13351
  },
13351
13352
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13352
13353
  if (F2.isTermNamed(ast)) {
13353
- SUBRULE(iri2, ast, void 0);
13354
+ SUBRULE(iri2, ast);
13354
13355
  } else {
13355
- SUBRULE(iri2, ast.function, void 0);
13356
- SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc), void 0);
13356
+ SUBRULE(iri2, ast.function);
13357
+ SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
13357
13358
  }
13358
13359
  }
13359
13360
  };
@@ -13362,10 +13363,10 @@ var iriOrFunction = {
13362
13363
  var solutionModifier = {
13363
13364
  name: "solutionModifier",
13364
13365
  impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
13365
- const group = OPTION1(() => SUBRULE(groupClause, void 0));
13366
- const having2 = OPTION2(() => SUBRULE(havingClause, void 0));
13367
- const order2 = OPTION3(() => SUBRULE(orderClause, void 0));
13368
- const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses, void 0));
13366
+ const group = OPTION1(() => SUBRULE(groupClause));
13367
+ const having2 = OPTION2(() => SUBRULE(havingClause));
13368
+ const order2 = OPTION3(() => SUBRULE(orderClause));
13369
+ const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
13369
13370
  return ACTION(() => ({
13370
13371
  ...limitOffset && { limitOffset },
13371
13372
  ...group && { group },
@@ -13375,16 +13376,16 @@ var solutionModifier = {
13375
13376
  },
13376
13377
  gImpl: ({ SUBRULE }) => (ast) => {
13377
13378
  if (ast.group) {
13378
- SUBRULE(groupClause, ast.group, void 0);
13379
+ SUBRULE(groupClause, ast.group);
13379
13380
  }
13380
13381
  if (ast.having) {
13381
- SUBRULE(havingClause, ast.having, void 0);
13382
+ SUBRULE(havingClause, ast.having);
13382
13383
  }
13383
13384
  if (ast.order) {
13384
- SUBRULE(orderClause, ast.order, void 0);
13385
+ SUBRULE(orderClause, ast.order);
13385
13386
  }
13386
13387
  if (ast.limitOffset) {
13387
- SUBRULE(limitOffsetClauses, ast.limitOffset, void 0);
13388
+ SUBRULE(limitOffsetClauses, ast.limitOffset);
13388
13389
  }
13389
13390
  }
13390
13391
  };
@@ -13395,7 +13396,7 @@ var groupClause = {
13395
13396
  const start = CONSUME(groupByGroup);
13396
13397
  CONSUME(by);
13397
13398
  AT_LEAST_ONE(() => {
13398
- groupings.push(SUBRULE1(groupCondition, void 0));
13399
+ groupings.push(SUBRULE1(groupCondition));
13399
13400
  });
13400
13401
  return ACTION(() => ({
13401
13402
  type: "solutionModifier",
@@ -13408,12 +13409,12 @@ var groupClause = {
13408
13409
  F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13409
13410
  for (const grouping of ast.groupings) {
13410
13411
  if (F2.isExpression(grouping)) {
13411
- SUBRULE(expression, grouping, void 0);
13412
+ SUBRULE(expression, grouping);
13412
13413
  } else {
13413
13414
  F2.printFilter(ast, () => PRINT_WORDS("("));
13414
- SUBRULE(expression, grouping.value, void 0);
13415
+ SUBRULE(expression, grouping.value);
13415
13416
  F2.printFilter(ast, () => PRINT_WORDS("AS"));
13416
- SUBRULE(var_, grouping.variable, void 0);
13417
+ SUBRULE(var_, grouping.variable);
13417
13418
  F2.printFilter(ast, () => PRINT_WORDS(")"));
13418
13419
  }
13419
13420
  }
@@ -13422,16 +13423,16 @@ var groupClause = {
13422
13423
  var groupCondition = {
13423
13424
  name: "groupCondition",
13424
13425
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
13425
- { ALT: () => SUBRULE(builtInCall, void 0) },
13426
- { ALT: () => SUBRULE(functionCall, void 0) },
13427
- { ALT: () => SUBRULE2(var_, void 0) },
13426
+ { ALT: () => SUBRULE(builtInCall) },
13427
+ { ALT: () => SUBRULE(functionCall) },
13428
+ { ALT: () => SUBRULE2(var_) },
13428
13429
  {
13429
13430
  ALT: () => {
13430
13431
  const open = CONSUME(symbols_exports.LParen);
13431
- const expressionValue = SUBRULE(expression, void 0);
13432
+ const expressionValue = SUBRULE(expression);
13432
13433
  const variable = OPTION(() => {
13433
13434
  CONSUME(as);
13434
- return SUBRULE1(var_, void 0);
13435
+ return SUBRULE1(var_);
13435
13436
  });
13436
13437
  const close = CONSUME(symbols_exports.RParen);
13437
13438
  return ACTION(() => {
@@ -13455,7 +13456,7 @@ var havingClause = {
13455
13456
  const expressions = [];
13456
13457
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13457
13458
  AT_LEAST_ONE(() => {
13458
- expressions.push(SUBRULE(havingCondition, void 0));
13459
+ expressions.push(SUBRULE(havingCondition));
13459
13460
  });
13460
13461
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13461
13462
  return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
@@ -13463,13 +13464,13 @@ var havingClause = {
13463
13464
  gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13464
13465
  F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13465
13466
  for (const having2 of ast.having) {
13466
- SUBRULE(expression, having2, void 0);
13467
+ SUBRULE(expression, having2);
13467
13468
  }
13468
13469
  }
13469
13470
  };
13470
13471
  var havingCondition = {
13471
13472
  name: "havingCondition",
13472
- impl: ({ SUBRULE }) => () => SUBRULE(constraint, void 0)
13473
+ impl: ({ SUBRULE }) => () => SUBRULE(constraint)
13473
13474
  };
13474
13475
  var orderClause = {
13475
13476
  name: "orderClause",
@@ -13479,7 +13480,7 @@ var orderClause = {
13479
13480
  const orderings = [];
13480
13481
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13481
13482
  AT_LEAST_ONE(() => {
13482
- orderings.push(SUBRULE1(orderCondition, void 0));
13483
+ orderings.push(SUBRULE1(orderCondition));
13483
13484
  });
13484
13485
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13485
13486
  return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
@@ -13493,7 +13494,7 @@ var orderClause = {
13493
13494
  F2.printFilter(ast, () => PRINT_WORDS("ASC"));
13494
13495
  }
13495
13496
  F2.printFilter(ast, () => PRINT_WORDS("("));
13496
- SUBRULE(expression, ordering.expression, void 0);
13497
+ SUBRULE(expression, ordering.expression);
13497
13498
  F2.printFilter(ast, () => PRINT_WORDS(")"));
13498
13499
  }
13499
13500
  }
@@ -13512,7 +13513,7 @@ var orderCondition = {
13512
13513
  return [true, token];
13513
13514
  } }
13514
13515
  ]);
13515
- const expr = SUBRULE(brackettedExpression, void 0);
13516
+ const expr = SUBRULE(brackettedExpression);
13516
13517
  return ACTION(() => ({
13517
13518
  expression: expr,
13518
13519
  descending: descending[0],
@@ -13520,11 +13521,11 @@ var orderCondition = {
13520
13521
  }));
13521
13522
  } },
13522
13523
  { ALT: () => {
13523
- const expr = SUBRULE(constraint, void 0);
13524
+ const expr = SUBRULE(constraint);
13524
13525
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13525
13526
  } },
13526
13527
  { ALT: () => {
13527
- const expr = SUBRULE(var_, void 0);
13528
+ const expr = SUBRULE(var_);
13528
13529
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13529
13530
  } }
13530
13531
  ])
@@ -13533,8 +13534,8 @@ var limitOffsetClauses = {
13533
13534
  name: "limitOffsetClauses",
13534
13535
  impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
13535
13536
  { ALT: () => {
13536
- const limit2 = SUBRULE1(limitClause, void 0);
13537
- const offset2 = OPTION1(() => SUBRULE1(offsetClause, void 0));
13537
+ const limit2 = SUBRULE1(limitClause);
13538
+ const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13538
13539
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13539
13540
  limit2.val,
13540
13541
  offset2?.val,
@@ -13542,8 +13543,8 @@ var limitOffsetClauses = {
13542
13543
  ));
13543
13544
  } },
13544
13545
  { ALT: () => {
13545
- const offset2 = SUBRULE2(offsetClause, void 0);
13546
- const limit2 = OPTION2(() => SUBRULE2(limitClause, void 0));
13546
+ const offset2 = SUBRULE2(offsetClause);
13547
+ const limit2 = OPTION2(() => SUBRULE2(limitClause));
13547
13548
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13548
13549
  limit2?.val,
13549
13550
  offset2.val,
@@ -13581,22 +13582,22 @@ var offsetClause = {
13581
13582
  }
13582
13583
  };
13583
13584
 
13584
- // ../rules-sparql-1-1/lib/grammar/queryUnit/queryUnit.ts
13585
+ // ../rules-sparql-1-1/lib/grammar/queryUnit.ts
13585
13586
  var queryUnit = {
13586
13587
  name: "queryUnit",
13587
- impl: ({ SUBRULE }) => () => SUBRULE(query, void 0)
13588
+ impl: ({ SUBRULE }) => () => SUBRULE(query)
13588
13589
  };
13589
13590
  var query = {
13590
13591
  name: "query",
13591
13592
  impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13592
- const prologueValues = SUBRULE(prologue, void 0);
13593
+ const prologueValues = SUBRULE(prologue);
13593
13594
  const subType = OR([
13594
- { ALT: () => SUBRULE(selectQuery, void 0) },
13595
- { ALT: () => SUBRULE(constructQuery, void 0) },
13596
- { ALT: () => SUBRULE(describeQuery, void 0) },
13597
- { ALT: () => SUBRULE(askQuery, void 0) }
13595
+ { ALT: () => SUBRULE(selectQuery) },
13596
+ { ALT: () => SUBRULE(constructQuery) },
13597
+ { ALT: () => SUBRULE(describeQuery) },
13598
+ { ALT: () => SUBRULE(askQuery) }
13598
13599
  ]);
13599
- const values3 = SUBRULE(valuesClause, void 0);
13600
+ const values3 = SUBRULE(valuesClause);
13600
13601
  return ACTION(() => ({
13601
13602
  context: prologueValues,
13602
13603
  ...subType,
@@ -13610,28 +13611,28 @@ var query = {
13610
13611
  }));
13611
13612
  },
13612
13613
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13613
- SUBRULE(prologue, ast.context, void 0);
13614
+ SUBRULE(prologue, ast.context);
13614
13615
  if (F2.isQuerySelect(ast)) {
13615
- SUBRULE(selectQuery, ast, void 0);
13616
+ SUBRULE(selectQuery, ast);
13616
13617
  } else if (F2.isQueryConstruct(ast)) {
13617
- SUBRULE(constructQuery, ast, void 0);
13618
+ SUBRULE(constructQuery, ast);
13618
13619
  } else if (F2.isQueryDescribe(ast)) {
13619
- SUBRULE(describeQuery, ast, void 0);
13620
+ SUBRULE(describeQuery, ast);
13620
13621
  } else if (F2.isQueryAsk(ast)) {
13621
- SUBRULE(askQuery, ast, void 0);
13622
+ SUBRULE(askQuery, ast);
13622
13623
  }
13623
13624
  if (ast.values) {
13624
- SUBRULE(inlineData, ast.values, void 0);
13625
+ SUBRULE(inlineData, ast.values);
13625
13626
  }
13626
13627
  }
13627
13628
  };
13628
13629
  var selectQuery = {
13629
13630
  name: "selectQuery",
13630
13631
  impl: ({ ACTION, SUBRULE }) => (C) => {
13631
- const selectVal = SUBRULE(selectClause, void 0);
13632
- const from2 = SUBRULE(datasetClauseStar, void 0);
13633
- const where2 = SUBRULE(whereClause, void 0);
13634
- const modifiers = SUBRULE(solutionModifier, void 0);
13632
+ const selectVal = SUBRULE(selectClause);
13633
+ const from2 = SUBRULE(datasetClauseStar);
13634
+ const where2 = SUBRULE(whereClause);
13635
+ const modifiers = SUBRULE(solutionModifier);
13635
13636
  return ACTION(() => {
13636
13637
  const ret = {
13637
13638
  subType: "select",
@@ -13657,19 +13658,19 @@ var selectQuery = {
13657
13658
  variables: ast.variables,
13658
13659
  distinct: ast.distinct,
13659
13660
  reduced: ast.reduced
13660
- }, F2.sourceLocation(...ast.variables)), void 0);
13661
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13662
- SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc), void 0);
13663
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13661
+ }, F2.sourceLocation(...ast.variables)));
13662
+ SUBRULE(datasetClauseStar, ast.datasets);
13663
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
13664
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13664
13665
  }
13665
13666
  };
13666
13667
  var subSelect = {
13667
13668
  name: "subSelect",
13668
13669
  impl: ({ ACTION, SUBRULE }) => (C) => {
13669
- const selectVal = SUBRULE(selectClause, void 0);
13670
- const where2 = SUBRULE(whereClause, void 0);
13671
- const modifiers = SUBRULE(solutionModifier, void 0);
13672
- const values3 = SUBRULE(valuesClause, void 0);
13670
+ const selectVal = SUBRULE(selectClause);
13671
+ const where2 = SUBRULE(whereClause);
13672
+ const modifiers = SUBRULE(solutionModifier);
13673
+ const values3 = SUBRULE(valuesClause);
13673
13674
  return ACTION(() => C.factory.querySelect({
13674
13675
  where: where2.val,
13675
13676
  datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
@@ -13734,7 +13735,7 @@ var selectClause = {
13734
13735
  const variables = [];
13735
13736
  AT_LEAST_ONE(() => OR3([
13736
13737
  { ALT: () => {
13737
- const raw = SUBRULE1(var_, void 0);
13738
+ const raw = SUBRULE1(var_);
13738
13739
  ACTION(() => {
13739
13740
  if (usedVars.some((v) => v.value === raw.value)) {
13740
13741
  throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
@@ -13746,9 +13747,9 @@ var selectClause = {
13746
13747
  } },
13747
13748
  { ALT: () => {
13748
13749
  const open = CONSUME(symbols_exports.LParen);
13749
- const expr = SUBRULE1(expression, void 0);
13750
+ const expr = SUBRULE1(expression);
13750
13751
  CONSUME(as);
13751
- const variable = SUBRULE2(var_, void 0);
13752
+ const variable = SUBRULE2(var_);
13752
13753
  const close = CONSUME(symbols_exports.RParen);
13753
13754
  ACTION(() => {
13754
13755
  last2 = close;
@@ -13779,12 +13780,12 @@ var selectClause = {
13779
13780
  if (F2.isWildcard(variable)) {
13780
13781
  F2.printFilter(ast, () => PRINT_WORD("*"));
13781
13782
  } else if (F2.isTerm(variable)) {
13782
- SUBRULE(var_, variable, void 0);
13783
+ SUBRULE(var_, variable);
13783
13784
  } else {
13784
13785
  F2.printFilter(ast, () => PRINT_WORD("("));
13785
- SUBRULE(expression, variable.expression, void 0);
13786
+ SUBRULE(expression, variable.expression);
13786
13787
  F2.printFilter(ast, () => PRINT_WORD("AS"));
13787
- SUBRULE(var_, variable.variable, void 0);
13788
+ SUBRULE(var_, variable.variable);
13788
13789
  F2.printFilter(ast, () => PRINT_WORD(")"));
13789
13790
  }
13790
13791
  }
@@ -13796,10 +13797,10 @@ var constructQuery = {
13796
13797
  const construct2 = CONSUME(construct);
13797
13798
  return OR([
13798
13799
  { ALT: () => {
13799
- const template = SUBRULE1(constructTemplate, void 0);
13800
- const from2 = SUBRULE1(datasetClauseStar, void 0);
13801
- const where2 = SUBRULE1(whereClause, void 0);
13802
- const modifiers = SUBRULE1(solutionModifier, void 0);
13800
+ const template = SUBRULE1(constructTemplate);
13801
+ const from2 = SUBRULE1(datasetClauseStar);
13802
+ const where2 = SUBRULE1(whereClause);
13803
+ const modifiers = SUBRULE1(solutionModifier);
13803
13804
  return ACTION(() => ({
13804
13805
  subType: "construct",
13805
13806
  template: template.val,
@@ -13817,10 +13818,10 @@ var constructQuery = {
13817
13818
  }));
13818
13819
  } },
13819
13820
  { ALT: () => {
13820
- const from2 = SUBRULE2(datasetClauseStar, void 0);
13821
+ const from2 = SUBRULE2(datasetClauseStar);
13821
13822
  CONSUME(where);
13822
- const template = SUBRULE2(constructTemplate, void 0);
13823
- const modifiers = SUBRULE2(solutionModifier, void 0);
13823
+ const template = SUBRULE2(constructTemplate);
13824
+ const modifiers = SUBRULE2(solutionModifier);
13824
13825
  return ACTION(() => ({
13825
13826
  subType: "construct",
13826
13827
  template: template.val,
@@ -13843,16 +13844,16 @@ var constructQuery = {
13843
13844
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13844
13845
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13845
13846
  F2.printFilter(ast, () => PRINT_WORD("{"));
13846
- SUBRULE(triplesBlock, ast.template, void 0);
13847
+ SUBRULE(triplesBlock, ast.template);
13847
13848
  F2.printFilter(ast, () => PRINT_WORD("}"));
13848
13849
  }
13849
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13850
+ SUBRULE(datasetClauseStar, ast.datasets);
13850
13851
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13851
- SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc), void 0);
13852
+ SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc));
13852
13853
  } else {
13853
- SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc), void 0);
13854
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
13854
13855
  }
13855
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13856
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13856
13857
  }
13857
13858
  };
13858
13859
  var describeQuery = {
@@ -13863,7 +13864,7 @@ var describeQuery = {
13863
13864
  { ALT: () => {
13864
13865
  const variables2 = [];
13865
13866
  AT_LEAST_ONE(() => {
13866
- variables2.push(SUBRULE1(varOrIri, void 0));
13867
+ variables2.push(SUBRULE1(varOrIri));
13867
13868
  });
13868
13869
  return variables2;
13869
13870
  } },
@@ -13872,9 +13873,9 @@ var describeQuery = {
13872
13873
  return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
13873
13874
  } }
13874
13875
  ]);
13875
- const from2 = SUBRULE1(datasetClauseStar, void 0);
13876
- const where2 = OPTION(() => SUBRULE1(whereClause, void 0));
13877
- const modifiers = SUBRULE1(solutionModifier, void 0);
13876
+ const from2 = SUBRULE1(datasetClauseStar);
13877
+ const where2 = OPTION(() => SUBRULE1(whereClause));
13878
+ const modifiers = SUBRULE1(solutionModifier);
13878
13879
  return ACTION(() => ({
13879
13880
  subType: "describe",
13880
13881
  variables,
@@ -13899,23 +13900,23 @@ var describeQuery = {
13899
13900
  F2.printFilter(ast, () => PRINT_WORD("*"));
13900
13901
  } else {
13901
13902
  for (const variable of ast.variables) {
13902
- SUBRULE(varOrTerm, variable, void 0);
13903
+ SUBRULE(varOrTerm, variable);
13903
13904
  }
13904
13905
  }
13905
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13906
+ SUBRULE(datasetClauseStar, ast.datasets);
13906
13907
  if (ast.where) {
13907
- SUBRULE(whereClause, F2.wrap(ast.where, ast.loc), void 0);
13908
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
13908
13909
  }
13909
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13910
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13910
13911
  }
13911
13912
  };
13912
13913
  var askQuery = {
13913
13914
  name: "askQuery",
13914
13915
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13915
13916
  const ask2 = CONSUME(ask);
13916
- const from2 = SUBRULE(datasetClauseStar, void 0);
13917
- const where2 = SUBRULE(whereClause, void 0);
13918
- const modifiers = SUBRULE(solutionModifier, void 0);
13917
+ const from2 = SUBRULE(datasetClauseStar);
13918
+ const where2 = SUBRULE(whereClause);
13919
+ const modifiers = SUBRULE(solutionModifier);
13919
13920
  return ACTION(() => ({
13920
13921
  subType: "ask",
13921
13922
  datasets: from2,
@@ -13934,20 +13935,20 @@ var askQuery = {
13934
13935
  },
13935
13936
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13936
13937
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
13937
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13938
- SUBRULE(whereClause, F2.wrap(ast.where, ast.loc), void 0);
13939
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13938
+ SUBRULE(datasetClauseStar, ast.datasets);
13939
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
13940
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13940
13941
  }
13941
13942
  };
13942
13943
  var valuesClause = {
13943
13944
  name: "valuesClause",
13944
- impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData, void 0))
13945
+ impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
13945
13946
  };
13946
13947
  var constructTemplate = {
13947
13948
  name: "constructTemplate",
13948
13949
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
13949
13950
  const open = CONSUME(symbols_exports.LCurly);
13950
- const triples = OPTION(() => SUBRULE1(constructTriples, void 0));
13951
+ const triples = OPTION(() => SUBRULE1(constructTriples));
13951
13952
  const close = CONSUME(symbols_exports.RCurly);
13952
13953
  return ACTION(() => C.factory.wrap(
13953
13954
  triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
@@ -13960,27 +13961,27 @@ var constructTriples = {
13960
13961
  impl: triplesTemplate.impl
13961
13962
  };
13962
13963
 
13963
- // ../rules-sparql-1-1/lib/grammar/updateUnit/updateUnit.ts
13964
+ // ../rules-sparql-1-1/lib/grammar/updateUnit.ts
13964
13965
  var updateUnit = {
13965
13966
  name: "updateUnit",
13966
- impl: ({ SUBRULE }) => () => SUBRULE(update, void 0)
13967
+ impl: ({ SUBRULE }) => () => SUBRULE(update)
13967
13968
  };
13968
13969
  var update = {
13969
13970
  name: "update",
13970
13971
  impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
13971
13972
  const updates = [];
13972
- const prologueValues = SUBRULE1(prologue, void 0);
13973
+ const prologueValues = SUBRULE1(prologue);
13973
13974
  updates.push({ context: prologueValues });
13974
13975
  let parsedSemi = true;
13975
13976
  MANY({
13976
13977
  GATE: () => parsedSemi,
13977
13978
  DEF: () => {
13978
13979
  parsedSemi = false;
13979
- updates.at(-1).operation = SUBRULE(update1, void 0);
13980
+ updates.at(-1).operation = SUBRULE(update1);
13980
13981
  OPTION1(() => {
13981
13982
  CONSUME(symbols_exports.semi);
13982
13983
  parsedSemi = true;
13983
- const innerPrologue = SUBRULE2(prologue, void 0);
13984
+ const innerPrologue = SUBRULE2(prologue);
13984
13985
  updates.push({ context: innerPrologue });
13985
13986
  });
13986
13987
  }
@@ -14002,9 +14003,9 @@ var update = {
14002
14003
  },
14003
14004
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14004
14005
  for (const update2 of ast.updates) {
14005
- SUBRULE(prologue, update2.context, void 0);
14006
+ SUBRULE(prologue, update2.context);
14006
14007
  if (update2.operation) {
14007
- SUBRULE(update1, update2.operation, void 0);
14008
+ SUBRULE(update1, update2.operation);
14008
14009
  F2.printFilter(ast, () => PRINT_WORD(" ;\n"));
14009
14010
  }
14010
14011
  }
@@ -14013,52 +14014,52 @@ var update = {
14013
14014
  var update1 = {
14014
14015
  name: "update1",
14015
14016
  impl: ({ SUBRULE, OR }) => () => OR([
14016
- { ALT: () => SUBRULE(load2, void 0) },
14017
- { ALT: () => SUBRULE(clear2, void 0) },
14018
- { ALT: () => SUBRULE(drop3, void 0) },
14019
- { ALT: () => SUBRULE(add2, void 0) },
14020
- { ALT: () => SUBRULE(move2, void 0) },
14021
- { ALT: () => SUBRULE(copy2, void 0) },
14022
- { ALT: () => SUBRULE(create2, void 0) },
14023
- { ALT: () => SUBRULE(insertData, void 0) },
14024
- { ALT: () => SUBRULE(deleteData, void 0) },
14025
- { ALT: () => SUBRULE(deleteWhere, void 0) },
14026
- { ALT: () => SUBRULE(modify, void 0) }
14017
+ { ALT: () => SUBRULE(load2) },
14018
+ { ALT: () => SUBRULE(clear2) },
14019
+ { ALT: () => SUBRULE(drop3) },
14020
+ { ALT: () => SUBRULE(add2) },
14021
+ { ALT: () => SUBRULE(move2) },
14022
+ { ALT: () => SUBRULE(copy2) },
14023
+ { ALT: () => SUBRULE(create2) },
14024
+ { ALT: () => SUBRULE(insertData) },
14025
+ { ALT: () => SUBRULE(deleteData) },
14026
+ { ALT: () => SUBRULE(deleteWhere) },
14027
+ { ALT: () => SUBRULE(modify) }
14027
14028
  ]),
14028
14029
  gImpl: ({ SUBRULE }) => (ast) => {
14029
14030
  switch (ast.subType) {
14030
14031
  case "load":
14031
- SUBRULE(load2, ast, void 0);
14032
+ SUBRULE(load2, ast);
14032
14033
  break;
14033
14034
  case "clear":
14034
- SUBRULE(clear2, ast, void 0);
14035
+ SUBRULE(clear2, ast);
14035
14036
  break;
14036
14037
  case "drop":
14037
- SUBRULE(drop3, ast, void 0);
14038
+ SUBRULE(drop3, ast);
14038
14039
  break;
14039
14040
  case "add":
14040
- SUBRULE(add2, ast, void 0);
14041
+ SUBRULE(add2, ast);
14041
14042
  break;
14042
14043
  case "move":
14043
- SUBRULE(move2, ast, void 0);
14044
+ SUBRULE(move2, ast);
14044
14045
  break;
14045
14046
  case "copy":
14046
- SUBRULE(copy2, ast, void 0);
14047
+ SUBRULE(copy2, ast);
14047
14048
  break;
14048
14049
  case "create":
14049
- SUBRULE(create2, ast, void 0);
14050
+ SUBRULE(create2, ast);
14050
14051
  break;
14051
14052
  case "insertdata":
14052
- SUBRULE(insertData, ast, void 0);
14053
+ SUBRULE(insertData, ast);
14053
14054
  break;
14054
14055
  case "deletedata":
14055
- SUBRULE(deleteData, ast, void 0);
14056
+ SUBRULE(deleteData, ast);
14056
14057
  break;
14057
14058
  case "deletewhere":
14058
- SUBRULE(deleteWhere, ast, void 0);
14059
+ SUBRULE(deleteWhere, ast);
14059
14060
  break;
14060
14061
  case "modify":
14061
- SUBRULE(modify, ast, void 0);
14062
+ SUBRULE(modify, ast);
14062
14063
  break;
14063
14064
  }
14064
14065
  }
@@ -14068,10 +14069,10 @@ var load2 = {
14068
14069
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
14069
14070
  const loadToken = CONSUME(load);
14070
14071
  const silent2 = OPTION1(() => CONSUME(silent));
14071
- const source = SUBRULE1(iri2, void 0);
14072
+ const source = SUBRULE1(iri2);
14072
14073
  const destination = OPTION2(() => {
14073
14074
  CONSUME(loadInto);
14074
- return SUBRULE1(graphRef, void 0);
14075
+ return SUBRULE1(graphRef);
14075
14076
  });
14076
14077
  return ACTION(() => C.factory.updateOperationLoad(
14077
14078
  C.factory.sourceLocation(loadToken, source, destination),
@@ -14087,10 +14088,10 @@ var load2 = {
14087
14088
  PRINT_WORD("SILENT");
14088
14089
  }
14089
14090
  });
14090
- SUBRULE(iri2, ast.source, void 0);
14091
+ SUBRULE(iri2, ast.source);
14091
14092
  if (ast.destination) {
14092
14093
  F2.printFilter(ast, () => PRINT_WORD("INTO"));
14093
- SUBRULE(graphRefAll, ast.destination, void 0);
14094
+ SUBRULE(graphRefAll, ast.destination);
14094
14095
  }
14095
14096
  }
14096
14097
  };
@@ -14100,7 +14101,7 @@ function clearOrDrop(operation) {
14100
14101
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14101
14102
  const opToken = CONSUME(operation);
14102
14103
  const silent2 = OPTION(() => CONSUME(silent));
14103
- const destination = SUBRULE1(graphRefAll, void 0);
14104
+ const destination = SUBRULE1(graphRefAll);
14104
14105
  return ACTION(() => C.factory.updateOperationClearDrop(
14105
14106
  unCapitalize(operation.name),
14106
14107
  Boolean(silent2),
@@ -14115,7 +14116,7 @@ function clearOrDrop(operation) {
14115
14116
  PRINT_WORD("SILENT");
14116
14117
  }
14117
14118
  });
14118
- SUBRULE(graphRefAll, ast.destination, void 0);
14119
+ SUBRULE(graphRefAll, ast.destination);
14119
14120
  }
14120
14121
  };
14121
14122
  }
@@ -14126,7 +14127,7 @@ var create2 = {
14126
14127
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14127
14128
  const createToken3 = CONSUME(create);
14128
14129
  const silent2 = OPTION(() => CONSUME(silent));
14129
- const destination = SUBRULE1(graphRef, void 0);
14130
+ const destination = SUBRULE1(graphRef);
14130
14131
  return ACTION(() => C.factory.updateOperationCreate(
14131
14132
  destination,
14132
14133
  Boolean(silent2),
@@ -14140,7 +14141,7 @@ var create2 = {
14140
14141
  PRINT_WORD("SILENT");
14141
14142
  }
14142
14143
  });
14143
- SUBRULE(graphRefAll, ast.destination, void 0);
14144
+ SUBRULE(graphRefAll, ast.destination);
14144
14145
  }
14145
14146
  };
14146
14147
  function copyMoveAddOperation(operation) {
@@ -14149,9 +14150,9 @@ function copyMoveAddOperation(operation) {
14149
14150
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
14150
14151
  const op = CONSUME(operation);
14151
14152
  const silent2 = OPTION(() => CONSUME(silent));
14152
- const source = SUBRULE1(graphOrDefault, void 0);
14153
+ const source = SUBRULE1(graphOrDefault);
14153
14154
  CONSUME(to);
14154
- const destination = SUBRULE2(graphOrDefault, void 0);
14155
+ const destination = SUBRULE2(graphOrDefault);
14155
14156
  return ACTION(() => C.factory.updateOperationAddMoveCopy(
14156
14157
  unCapitalize(operation.name),
14157
14158
  source,
@@ -14167,9 +14168,9 @@ function copyMoveAddOperation(operation) {
14167
14168
  PRINT_WORD("SILENT");
14168
14169
  }
14169
14170
  });
14170
- SUBRULE(graphRefAll, ast.source, void 0);
14171
+ SUBRULE(graphRefAll, ast.source);
14171
14172
  F2.printFilter(ast, () => PRINT_WORD("TO"));
14172
- SUBRULE(graphRefAll, ast.destination, void 0);
14173
+ SUBRULE(graphRefAll, ast.destination);
14173
14174
  }
14174
14175
  };
14175
14176
  }
@@ -14180,7 +14181,7 @@ var quadPattern = {
14180
14181
  name: "quadPattern",
14181
14182
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14182
14183
  const open = CONSUME(symbols_exports.LCurly);
14183
- const val = SUBRULE1(quads, void 0);
14184
+ const val = SUBRULE1(quads);
14184
14185
  const close = CONSUME(symbols_exports.RCurly);
14185
14186
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14186
14187
  }
@@ -14190,7 +14191,7 @@ var quadData = {
14190
14191
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14191
14192
  const open = CONSUME(symbols_exports.LCurly);
14192
14193
  const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
14193
- const val = SUBRULE1(quads, void 0);
14194
+ const val = SUBRULE1(quads);
14194
14195
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14195
14196
  const close = CONSUME(symbols_exports.RCurly);
14196
14197
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
@@ -14206,7 +14207,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14206
14207
  if (name !== "insertData") {
14207
14208
  couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14208
14209
  }
14209
- const data = SUBRULE1(dataRule, void 0);
14210
+ const data = SUBRULE1(dataRule);
14210
14211
  if (name !== "insertData") {
14211
14212
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14212
14213
  }
@@ -14217,7 +14218,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14217
14218
  subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
14218
14219
  "{"
14219
14220
  ));
14220
- SUBRULE(quads, F2.wrap(ast.data, ast.loc), void 0);
14221
+ SUBRULE(quads, F2.wrap(ast.data, ast.loc));
14221
14222
  F2.printFilter(ast, () => PRINT_WORD("}"));
14222
14223
  }
14223
14224
  };
@@ -14230,23 +14231,23 @@ var modify = {
14230
14231
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
14231
14232
  const graph2 = OPTION1(() => {
14232
14233
  const withToken = CONSUME(modifyWith);
14233
- const graph3 = SUBRULE1(iri2, void 0);
14234
+ const graph3 = SUBRULE1(iri2);
14234
14235
  return { withToken, graph: graph3 };
14235
14236
  });
14236
14237
  const { insert, del } = OR([
14237
14238
  { ALT: () => {
14238
- const del2 = SUBRULE1(deleteClause2, void 0);
14239
- const insert2 = OPTION2(() => SUBRULE1(insertClause2, void 0));
14239
+ const del2 = SUBRULE1(deleteClause2);
14240
+ const insert2 = OPTION2(() => SUBRULE1(insertClause2));
14240
14241
  return { del: del2, insert: insert2 };
14241
14242
  } },
14242
14243
  { ALT: () => {
14243
- const insert2 = SUBRULE2(insertClause2, void 0);
14244
+ const insert2 = SUBRULE2(insertClause2);
14244
14245
  return { insert: insert2, del: void 0 };
14245
14246
  } }
14246
14247
  ]);
14247
- const using = SUBRULE1(usingClauseStar, void 0);
14248
+ const using = SUBRULE1(usingClauseStar);
14248
14249
  CONSUME(where);
14249
- const where2 = SUBRULE1(groupGraphPattern, void 0);
14250
+ const where2 = SUBRULE1(groupGraphPattern);
14250
14251
  return ACTION(() => C.factory.updateOperationModify(
14251
14252
  C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
14252
14253
  insert?.val ?? [],
@@ -14259,21 +14260,21 @@ var modify = {
14259
14260
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14260
14261
  if (ast.graph) {
14261
14262
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
14262
- SUBRULE(iri2, ast.graph, void 0);
14263
+ SUBRULE(iri2, ast.graph);
14263
14264
  }
14264
14265
  if (ast.delete.length > 0) {
14265
14266
  F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14266
- SUBRULE(quads, F2.wrap(ast.delete, ast.loc), void 0);
14267
+ SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
14267
14268
  F2.printFilter(ast, () => PRINT_WORD("}"));
14268
14269
  }
14269
14270
  if (ast.insert.length > 0) {
14270
14271
  F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14271
- SUBRULE(quads, F2.wrap(ast.insert, ast.loc), void 0);
14272
+ SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
14272
14273
  F2.printFilter(ast, () => PRINT_WORD("}"));
14273
14274
  }
14274
- SUBRULE(usingClauseStar, ast.from, void 0);
14275
+ SUBRULE(usingClauseStar, ast.from);
14275
14276
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
14276
- SUBRULE(groupGraphPattern, ast.where, void 0);
14277
+ SUBRULE(groupGraphPattern, ast.where);
14277
14278
  }
14278
14279
  };
14279
14280
  var deleteClause2 = {
@@ -14281,7 +14282,7 @@ var deleteClause2 = {
14281
14282
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14282
14283
  const delToken = CONSUME(deleteClause);
14283
14284
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14284
- const del = SUBRULE(quadPattern, void 0);
14285
+ const del = SUBRULE(quadPattern);
14285
14286
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14286
14287
  return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14287
14288
  }
@@ -14290,7 +14291,7 @@ var insertClause2 = {
14290
14291
  name: "insertClause",
14291
14292
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14292
14293
  const insertToken = CONSUME(insertClause);
14293
- const insert = SUBRULE(quadPattern, void 0);
14294
+ const insert = SUBRULE(quadPattern);
14294
14295
  return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14295
14296
  }
14296
14297
  };
@@ -14303,7 +14304,7 @@ var graphOrDefault = {
14303
14304
  } },
14304
14305
  { ALT: () => {
14305
14306
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14306
- const name = SUBRULE1(iri2, void 0);
14307
+ const name = SUBRULE1(iri2);
14307
14308
  return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14308
14309
  } }
14309
14310
  ])
@@ -14312,18 +14313,18 @@ var graphRef = {
14312
14313
  name: "graphRef",
14313
14314
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14314
14315
  const graph2 = CONSUME(graph_exports.graph);
14315
- const val = SUBRULE(iri2, void 0);
14316
+ const val = SUBRULE(iri2);
14316
14317
  return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14317
14318
  },
14318
14319
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14319
14320
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14320
- SUBRULE(iri2, ast.graph, void 0);
14321
+ SUBRULE(iri2, ast.graph);
14321
14322
  }
14322
14323
  };
14323
14324
  var graphRefAll = {
14324
14325
  name: "graphRefAll",
14325
14326
  impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
14326
- { ALT: () => SUBRULE(graphRef, void 0) },
14327
+ { ALT: () => SUBRULE(graphRef) },
14327
14328
  { ALT: () => {
14328
14329
  const def = CONSUME(graph_exports.default_);
14329
14330
  return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
@@ -14339,7 +14340,7 @@ var graphRefAll = {
14339
14340
  ]),
14340
14341
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14341
14342
  if (F2.isGraphRefSpecific(ast)) {
14342
- SUBRULE(graphRef, ast, void 0);
14343
+ SUBRULE(graphRef, ast);
14343
14344
  } else if (F2.isGraphRefDefault(ast)) {
14344
14345
  F2.printFilter(ast, () => PRINT_WORD("DEFAULT"));
14345
14346
  } else if (F2.isGraphRefNamed(ast)) {
@@ -14355,12 +14356,12 @@ var quads = {
14355
14356
  const quads2 = [];
14356
14357
  let last2;
14357
14358
  OPTION1(() => {
14358
- const triples = SUBRULE1(triplesTemplate, void 0);
14359
+ const triples = SUBRULE1(triplesTemplate);
14359
14360
  last2 = triples;
14360
14361
  ACTION(() => quads2.push(triples));
14361
14362
  });
14362
14363
  MANY(() => {
14363
- const notTriples = SUBRULE(quadsNotTriples, void 0);
14364
+ const notTriples = SUBRULE(quadsNotTriples);
14364
14365
  last2 = notTriples;
14365
14366
  quads2.push(notTriples);
14366
14367
  OPTION2(() => {
@@ -14369,7 +14370,7 @@ var quads = {
14369
14370
  return dotToken;
14370
14371
  });
14371
14372
  OPTION3(() => {
14372
- const triples = SUBRULE2(triplesTemplate, void 0);
14373
+ const triples = SUBRULE2(triplesTemplate);
14373
14374
  last2 = triples;
14374
14375
  ACTION(() => quads2.push(triples));
14375
14376
  });
@@ -14379,9 +14380,9 @@ var quads = {
14379
14380
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14380
14381
  for (const quad of ast.val) {
14381
14382
  if (F2.isPattern(quad)) {
14382
- SUBRULE(triplesBlock, quad, void 0);
14383
+ SUBRULE(triplesBlock, quad);
14383
14384
  } else {
14384
- SUBRULE(quadsNotTriples, quad, void 0);
14385
+ SUBRULE(quadsNotTriples, quad);
14385
14386
  }
14386
14387
  }
14387
14388
  }
@@ -14390,9 +14391,9 @@ var quadsNotTriples = {
14390
14391
  name: "quadsNotTriples",
14391
14392
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14392
14393
  const graph2 = CONSUME(graph_exports.graph);
14393
- const name = SUBRULE1(varOrIri, void 0);
14394
+ const name = SUBRULE1(varOrIri);
14394
14395
  CONSUME(symbols_exports.LCurly);
14395
- const triples = OPTION(() => SUBRULE1(triplesTemplate, void 0));
14396
+ const triples = OPTION(() => SUBRULE1(triplesTemplate));
14396
14397
  const close = CONSUME(symbols_exports.RCurly);
14397
14398
  return ACTION(() => C.factory.graphQuads(
14398
14399
  name,
@@ -14402,9 +14403,9 @@ var quadsNotTriples = {
14402
14403
  },
14403
14404
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14404
14405
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14405
- SUBRULE(varOrTerm, ast.graph, void 0);
14406
+ SUBRULE(varOrTerm, ast.graph);
14406
14407
  F2.printFilter(ast, () => PRINT_WORD("{"));
14407
- SUBRULE(triplesBlock, ast.triples, void 0);
14408
+ SUBRULE(triplesBlock, ast.triples);
14408
14409
  F2.printFilter(ast, () => PRINT_WORD("}"));
14409
14410
  }
14410
14411
  };