@traqula/parser-sparql-1-1 0.0.15 → 0.0.17

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 (2) hide show
  1. package/lib/index.cjs +566 -381
  2. package/package.json +5 -5
package/lib/index.cjs CHANGED
@@ -33,8 +33,8 @@ __export(index_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(index_exports);
35
35
 
36
- // ../../packages/core/lib/CoreFactory.js
37
- var CoreFactory = class {
36
+ // ../../packages/core/lib/AstCoreFactory.js
37
+ var AstCoreFactory = class {
38
38
  wrap(val, loc) {
39
39
  return { val, loc };
40
40
  }
@@ -9378,6 +9378,15 @@ var EmbeddedActionsParser = class extends Parser {
9378
9378
  }
9379
9379
  };
9380
9380
 
9381
+ // ../../packages/core/lib/utils.js
9382
+ function unCapitalize(str2) {
9383
+ return str2.charAt(0).toLowerCase() + str2.slice(1);
9384
+ }
9385
+ function createToken2(config) {
9386
+ return createToken(config);
9387
+ }
9388
+ var traqulaIndentation = "When you use this string, you expect traqula to handle indentation after every newline";
9389
+
9381
9390
  // ../../packages/core/lib/lexer-builder/LexerBuilder.js
9382
9391
  var LexerBuilder = class _LexerBuilder {
9383
9392
  tokens;
@@ -9740,16 +9749,13 @@ ${firstError.message}`);
9740
9749
  }
9741
9750
  };
9742
9751
 
9743
- // ../../packages/core/lib/utils.js
9744
- function unCapitalize(str2) {
9745
- return str2.charAt(0).toLowerCase() + str2.slice(1);
9746
- }
9747
- function createToken2(config) {
9748
- return createToken(config);
9749
- }
9750
-
9751
9752
  // ../../packages/core/lib/Transformers.js
9752
9753
  var TransformerType = class {
9754
+ clone(obj) {
9755
+ const newObj = Object.create(Object.getPrototypeOf(obj));
9756
+ Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
9757
+ return newObj;
9758
+ }
9753
9759
  safeObjectVisit(value, mapper) {
9754
9760
  if (value && typeof value === "object") {
9755
9761
  if (Array.isArray(value)) {
@@ -9759,104 +9765,213 @@ var TransformerType = class {
9759
9765
  }
9760
9766
  return value;
9761
9767
  }
9762
- transformNode(curObject, nodeCallBacks) {
9763
- let continueCheck;
9764
- let transformation;
9765
- const casted = curObject;
9766
- if (casted.type) {
9767
- continueCheck = nodeCallBacks[casted.type]?.continue;
9768
- transformation = nodeCallBacks[casted.type]?.transform;
9769
- }
9770
- let shouldContinue = true;
9771
- if (continueCheck) {
9772
- shouldContinue = continueCheck(curObject);
9773
- }
9774
- if (!shouldContinue) {
9775
- return curObject;
9776
- }
9777
- const copy3 = { ...curObject };
9778
- for (const [key, value] of Object.entries(copy3)) {
9779
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNode(obj, nodeCallBacks));
9780
- }
9781
- if (transformation) {
9782
- return transformation(copy3);
9783
- }
9784
- return copy3;
9768
+ /**
9769
+ * Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
9770
+ * @param startObject object to start iterating from
9771
+ * @param mapper mapper to transform the various objects - argument is a copy of the original
9772
+ * @param preVisitor callback that is evaluated before iterating deeper.
9773
+ * If continues is false, we do not iterate deeper, current object is still mapped. - default: true
9774
+ * If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
9775
+ * - Default false
9776
+ */
9777
+ transformObject(startObject, mapper, preVisitor = () => ({})) {
9778
+ let didShortCut = false;
9779
+ const recurse = (curObject) => {
9780
+ const copy3 = this.clone(curObject);
9781
+ const context = preVisitor(copy3);
9782
+ didShortCut = context.shortcut ?? false;
9783
+ const continues = context.continue ?? true;
9784
+ if (continues && !didShortCut) {
9785
+ for (const [key, value] of Object.entries(copy3)) {
9786
+ if (didShortCut) {
9787
+ return copy3;
9788
+ }
9789
+ copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
9790
+ }
9791
+ }
9792
+ return mapper(copy3);
9793
+ };
9794
+ return recurse(startObject);
9785
9795
  }
9786
- visitNode(curObject, nodeCallBacks) {
9787
- let callback;
9788
- const casted = curObject;
9789
- if (casted.type) {
9790
- callback = nodeCallBacks[casted.type];
9791
- }
9792
- let shouldIterate = true;
9793
- if (callback) {
9794
- shouldIterate = callback(curObject);
9795
- }
9796
- if (shouldIterate) {
9797
- for (const value of Object.values(curObject)) {
9798
- this.safeObjectVisit(value, (obj) => this.visitNode(obj, nodeCallBacks));
9796
+ /**
9797
+ * Visitor that visits all objects. Visits deeper objects first.
9798
+ */
9799
+ visitObject(startObject, visitor, preVisitor = () => ({})) {
9800
+ let didShortCut = false;
9801
+ const recurse = (curObject) => {
9802
+ const context = preVisitor(curObject);
9803
+ didShortCut = context.shortcut ?? false;
9804
+ const continues = context.continue ?? true;
9805
+ if (continues && !didShortCut) {
9806
+ for (const value of Object.values(curObject)) {
9807
+ if (didShortCut) {
9808
+ return;
9809
+ }
9810
+ this.safeObjectVisit(value, (obj) => recurse(obj));
9811
+ }
9799
9812
  }
9800
- }
9813
+ visitor(curObject);
9814
+ };
9815
+ recurse(startObject);
9816
+ }
9817
+ transformNode(startObject, nodeCallBacks) {
9818
+ const transformWrapper = (curObject) => {
9819
+ const casted = curObject;
9820
+ if (casted.type) {
9821
+ const ogFunc = nodeCallBacks[casted.type]?.transform;
9822
+ if (ogFunc) {
9823
+ return ogFunc(casted);
9824
+ }
9825
+ }
9826
+ return curObject;
9827
+ };
9828
+ const preTransformWrapper = (curObject) => {
9829
+ const casted = curObject;
9830
+ if (casted.type) {
9831
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9832
+ if (ogFunc) {
9833
+ return ogFunc(casted);
9834
+ }
9835
+ }
9836
+ return {};
9837
+ };
9838
+ return this.transformObject(startObject, transformWrapper, preTransformWrapper);
9839
+ }
9840
+ visitNode(startObject, nodeCallBacks) {
9841
+ const visitWrapper = (curObject) => {
9842
+ const casted = curObject;
9843
+ if (casted.type) {
9844
+ const ogFunc = nodeCallBacks[casted.type]?.visitor;
9845
+ if (ogFunc) {
9846
+ ogFunc(casted);
9847
+ }
9848
+ }
9849
+ };
9850
+ const preVisitWrapper = (curObject) => {
9851
+ const casted = curObject;
9852
+ if (casted.type) {
9853
+ const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
9854
+ if (ogFunc) {
9855
+ return ogFunc(casted);
9856
+ }
9857
+ }
9858
+ return {};
9859
+ };
9860
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9861
+ }
9862
+ traverseNodes(currentNode, traverse) {
9863
+ let didShortCut = false;
9864
+ const recurse = (curNode) => {
9865
+ const traverser = traverse[curNode.type];
9866
+ if (traverser) {
9867
+ const { next, shortcut } = traverser(curNode);
9868
+ didShortCut = shortcut ?? false;
9869
+ if (!didShortCut) {
9870
+ for (const node of next ?? []) {
9871
+ if (didShortCut) {
9872
+ return;
9873
+ }
9874
+ recurse(node);
9875
+ }
9876
+ }
9877
+ }
9878
+ };
9879
+ recurse(currentNode);
9801
9880
  }
9802
9881
  };
9803
9882
  var TransformerSubType = class extends TransformerType {
9804
- // Public visitObjects(curObject: object, visitor: (current: object) => void): void {
9805
- // for (const value of Object.values(curObject)) {
9806
- // this.safeObjectVisit(value, obj => this.visitObjects(obj, visitor));
9807
- // }
9808
- // }
9809
- transformNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9810
- let continueCheck;
9811
- let transformation;
9812
- const casted = curObject;
9813
- if (casted.type && casted.subType) {
9814
- const specific = nodeSpecificCallBacks[casted.type];
9815
- if (specific) {
9816
- continueCheck = specific[casted.subType]?.continue;
9817
- transformation = specific[casted.subType]?.transform;
9818
- }
9819
- }
9820
- let shouldContinue = true;
9821
- if (continueCheck) {
9822
- shouldContinue = continueCheck(curObject);
9823
- }
9824
- if (!shouldContinue) {
9825
- return curObject;
9826
- }
9827
- const copy3 = { ...curObject };
9828
- for (const [key, value] of Object.entries(copy3)) {
9829
- copy3[key] = this.safeObjectVisit(value, (obj) => this.transformNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9830
- }
9831
- if (transformation) {
9832
- return transformation(copy3);
9833
- }
9834
- return copy3;
9883
+ transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9884
+ const transformWrapper = (curObject) => {
9885
+ let ogTransform;
9886
+ const casted = curObject;
9887
+ if (casted.type && casted.subType) {
9888
+ const specific = nodeSpecificCallBacks[casted.type];
9889
+ if (specific) {
9890
+ ogTransform = specific[casted.subType]?.transform;
9891
+ }
9892
+ if (!ogTransform) {
9893
+ ogTransform = nodeCallBacks[casted.type]?.transform;
9894
+ }
9895
+ }
9896
+ return ogTransform ? ogTransform(casted) : curObject;
9897
+ };
9898
+ const preVisitWrapper = (curObject) => {
9899
+ let ogPreVisit;
9900
+ const casted = curObject;
9901
+ if (casted.type && casted.subType) {
9902
+ const specific = nodeSpecificCallBacks[casted.type];
9903
+ if (specific) {
9904
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9905
+ }
9906
+ if (!ogPreVisit) {
9907
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9908
+ }
9909
+ }
9910
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9911
+ };
9912
+ return this.transformObject(startObject, transformWrapper, preVisitWrapper);
9835
9913
  }
9836
9914
  /**
9837
9915
  * When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
9838
9916
  */
9839
- visitNodeSpecific(curObject, nodeCallBacks, nodeSpecificCallBacks = {}) {
9840
- let callback;
9841
- const casted = curObject;
9842
- if (casted.type && casted.subType) {
9843
- const specific = nodeSpecificCallBacks[casted.type];
9844
- if (specific) {
9845
- callback = specific[casted.subType];
9917
+ visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
9918
+ const visitWrapper = (curObject) => {
9919
+ let ogTransform;
9920
+ const casted = curObject;
9921
+ if (casted.type && casted.subType) {
9922
+ const specific = nodeSpecificCallBacks[casted.type];
9923
+ if (specific) {
9924
+ ogTransform = specific[casted.subType]?.visitor;
9925
+ }
9926
+ if (!ogTransform) {
9927
+ ogTransform = nodeCallBacks[casted.type]?.visitor;
9928
+ }
9846
9929
  }
9847
- }
9848
- if (!callback && casted.type) {
9849
- callback = nodeCallBacks[curObject.type];
9850
- }
9851
- let shouldIterate = true;
9852
- if (callback) {
9853
- shouldIterate = callback(curObject) ?? true;
9854
- }
9855
- if (shouldIterate) {
9856
- for (const value of Object.values(curObject)) {
9857
- this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
9930
+ if (ogTransform) {
9931
+ ogTransform(casted);
9858
9932
  }
9859
- }
9933
+ };
9934
+ const preVisitWrapper = (curObject) => {
9935
+ let ogPreVisit;
9936
+ const casted = curObject;
9937
+ if (casted.type && casted.subType) {
9938
+ const specific = nodeSpecificCallBacks[casted.type];
9939
+ if (specific) {
9940
+ ogPreVisit = specific[casted.subType]?.preVisitor;
9941
+ }
9942
+ if (!ogPreVisit) {
9943
+ ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
9944
+ }
9945
+ }
9946
+ return ogPreVisit ? ogPreVisit(casted) : curObject;
9947
+ };
9948
+ this.visitObject(startObject, visitWrapper, preVisitWrapper);
9949
+ }
9950
+ traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
9951
+ let didShortCut = false;
9952
+ const recurse = (curNode) => {
9953
+ let traverser;
9954
+ const subObj = traverseSubNode[curNode.type];
9955
+ if (subObj) {
9956
+ traverser = subObj[curNode.subType];
9957
+ }
9958
+ if (!traverser) {
9959
+ traverser = traverseNode[curNode.type];
9960
+ }
9961
+ if (traverser) {
9962
+ const { next, shortcut } = traverser(curNode);
9963
+ didShortCut = shortcut ?? false;
9964
+ if (!didShortCut) {
9965
+ for (const node of next ?? []) {
9966
+ if (didShortCut) {
9967
+ return;
9968
+ }
9969
+ recurse(node);
9970
+ }
9971
+ }
9972
+ }
9973
+ };
9974
+ recurse(currentNode);
9860
9975
  }
9861
9976
  };
9862
9977
 
@@ -11254,8 +11369,8 @@ function UpdateOperationFactoryMixin(Base) {
11254
11369
  };
11255
11370
  }
11256
11371
 
11257
- // ../../packages/rules-sparql-1-1/lib/factory.js
11258
- var Factory = class extends asArg(CoreFactory).call(ContextFactoryMixin).call(ExpressionFactoryMixin).call(GraphRefFactoryMixin).call(PathFactoryMixin).call(PatternFactoryMixin).call(QueryFactoryMixin).call(SolutionModifiersFactoryMixin).call(TermFactoryMixin).call(UpdateOperationFactoryMixin).returns() {
11372
+ // ../../packages/rules-sparql-1-1/lib/astFactory.js
11373
+ var AstFactory = class extends asArg(AstCoreFactory).call(ContextFactoryMixin).call(ExpressionFactoryMixin).call(GraphRefFactoryMixin).call(PathFactoryMixin).call(PatternFactoryMixin).call(QueryFactoryMixin).call(SolutionModifiersFactoryMixin).call(TermFactoryMixin).call(UpdateOperationFactoryMixin).returns() {
11259
11374
  alwaysSparql11(obj) {
11260
11375
  return true;
11261
11376
  }
@@ -11370,12 +11485,12 @@ var CommonIRIs;
11370
11485
  CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
11371
11486
  CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
11372
11487
  })(CommonIRIs || (CommonIRIs = {}));
11373
- var TransformerSparql11 = class extends TransformerSubType {
11488
+ var AstTransformer = class extends TransformerSubType {
11374
11489
  };
11375
11490
 
11376
11491
  // ../../packages/rules-sparql-1-1/lib/validation/validators.js
11377
- var F = new Factory();
11378
- var transformer = new TransformerSparql11();
11492
+ var F = new AstFactory();
11493
+ var transformer = new AstTransformer();
11379
11494
  function getAggregatesOfExpression(expression2) {
11380
11495
  if (F.isExpressionAggregate(expression2)) {
11381
11496
  return [expression2];
@@ -11454,77 +11569,69 @@ function queryIsGood(query2) {
11454
11569
  }
11455
11570
  }
11456
11571
  }
11572
+ function notUndefined(some2) {
11573
+ return some2 !== void 0;
11574
+ }
11457
11575
  function findPatternBoundedVars(iter, boundedVars) {
11458
- if (F.isQuery(iter) || F.isUpdate(iter)) {
11459
- if (F.isQuerySelect(iter) || F.isQueryDescribe(iter)) {
11460
- if (iter.where && iter.variables.some((x) => F.isWildcard(x))) {
11461
- findPatternBoundedVars(iter.where, boundedVars);
11462
- } else {
11463
- for (const v of iter.variables) {
11464
- findPatternBoundedVars(v, boundedVars);
11465
- }
11466
- }
11467
- if (iter.solutionModifiers.group) {
11468
- const grouping = iter.solutionModifiers.group;
11469
- for (const g of grouping.groupings) {
11470
- if ("variable" in g) {
11471
- findPatternBoundedVars(g.variable, boundedVars);
11472
- }
11473
- }
11474
- }
11475
- if (iter.values?.values && iter.values.values.length > 0) {
11476
- const values3 = iter.values.values;
11477
- for (const v of Object.keys(values3[0])) {
11576
+ transformer.traverseSubNodes(iter, {
11577
+ query: (op) => ({ next: [
11578
+ op.solutionModifiers.group
11579
+ ].filter(notUndefined) }),
11580
+ triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
11581
+ path: (op) => ({ next: op.items }),
11582
+ tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
11583
+ }, {
11584
+ query: {
11585
+ select: (op) => ({ next: [
11586
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11587
+ op.solutionModifiers.group,
11588
+ op.values
11589
+ ].filter(notUndefined) }),
11590
+ describe: (op) => ({ next: [
11591
+ ...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
11592
+ op.solutionModifiers.group,
11593
+ op.values
11594
+ ].filter(notUndefined) })
11595
+ },
11596
+ solutionModifier: {
11597
+ group: (op) => ({
11598
+ next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
11599
+ }),
11600
+ having: (op) => ({ next: op.having }),
11601
+ order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
11602
+ },
11603
+ pattern: {
11604
+ values: (op) => {
11605
+ for (const v of Object.keys(op.values.at(0) ?? {})) {
11478
11606
  boundedVars.add(v);
11479
11607
  }
11608
+ return {};
11609
+ },
11610
+ bgp: (op) => ({ next: op.triples }),
11611
+ group: (op) => ({ next: op.patterns }),
11612
+ union: (op) => ({ next: op.patterns }),
11613
+ optional: (op) => ({ next: op.patterns }),
11614
+ service: (op) => ({ next: [op.name, ...op.patterns] }),
11615
+ bind: (op) => ({ next: [op.variable] }),
11616
+ graph: (op) => ({ next: [op.name, ...op.patterns] }),
11617
+ minus: (op) => ({ next: op.patterns.slice(0, 1) })
11618
+ },
11619
+ term: {
11620
+ variable: (op) => {
11621
+ boundedVars.add(op.value);
11622
+ return {};
11480
11623
  }
11481
11624
  }
11482
- } else if (F.isTerm(iter)) {
11483
- if (F.isTermVariable(iter)) {
11484
- boundedVars.add(iter.value);
11485
- }
11486
- } else if (F.isTriple(iter)) {
11487
- findPatternBoundedVars(iter.subject, boundedVars);
11488
- findPatternBoundedVars(iter.predicate, boundedVars);
11489
- findPatternBoundedVars(iter.object, boundedVars);
11490
- } else if (F.isPath(iter)) {
11491
- if (!F.isTerm(iter)) {
11492
- for (const item of iter.items) {
11493
- findPatternBoundedVars(item, boundedVars);
11494
- }
11495
- }
11496
- } else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
11497
- for (const triple of iter.triples) {
11498
- findPatternBoundedVars(triple, boundedVars);
11499
- }
11500
- } else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
11501
- for (const pattern of iter.patterns) {
11502
- findPatternBoundedVars(pattern, boundedVars);
11503
- }
11504
- if (F.isPatternService(iter)) {
11505
- findPatternBoundedVars(iter.name, boundedVars);
11506
- }
11507
- } else if (F.isPatternBind(iter)) {
11508
- findPatternBoundedVars(iter.variable, boundedVars);
11509
- } else if (F.isPatternValues(iter)) {
11510
- for (const variable of Object.keys(iter.values.at(0) ?? {})) {
11511
- boundedVars.add(variable);
11512
- }
11513
- } else if (F.isPatternGraph(iter)) {
11514
- findPatternBoundedVars(iter.name, boundedVars);
11515
- for (const pattern of iter.patterns) {
11516
- findPatternBoundedVars(pattern, boundedVars);
11517
- }
11518
- }
11625
+ });
11519
11626
  }
11520
11627
  function checkNote13(patterns) {
11521
11628
  for (const [index, pattern] of patterns.entries()) {
11522
11629
  if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
11523
11630
  const bgp = patterns[index - 1];
11524
11631
  const variables = [];
11525
- transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
11632
+ transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
11526
11633
  variables.push(var_2);
11527
- } } });
11634
+ } } } });
11528
11635
  if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
11529
11636
  throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
11530
11637
  }
@@ -11550,12 +11657,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
11550
11657
  const operation = update2.operation;
11551
11658
  if (operation.subType === "insertdata") {
11552
11659
  const blankNodesHere = /* @__PURE__ */ new Set();
11553
- transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
11660
+ transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
11554
11661
  blankNodesHere.add(blankNode2.label);
11555
11662
  if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
11556
11663
  throw new Error("Detected reuse blank node across different INSERT DATA clauses");
11557
11664
  }
11558
- } } });
11665
+ } } } });
11559
11666
  for (const blankNode2 of blankNodesHere) {
11560
11667
  blankLabelsUsedInInsertData.add(blankNode2);
11561
11668
  }
@@ -11594,22 +11701,22 @@ var rdfLiteral = {
11594
11701
  return OPTION(() => OR([
11595
11702
  { ALT: () => {
11596
11703
  const lang2 = CONSUME(terminals_exports.langTag);
11597
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11704
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11598
11705
  } },
11599
11706
  { ALT: () => {
11600
11707
  CONSUME(symbols_exports.hathat);
11601
11708
  const iriVal = SUBRULE1(iri2);
11602
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
11709
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
11603
11710
  } }
11604
11711
  ])) ?? value;
11605
11712
  },
11606
- gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
11607
- factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11713
+ gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
11714
+ astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11608
11715
  if (ast.langOrIri) {
11609
11716
  if (typeof ast.langOrIri === "string") {
11610
- factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11717
+ astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11611
11718
  } else {
11612
- factory.printFilter(ast, () => PRINT("^^"));
11719
+ astFactory.printFilter(ast, () => PRINT("^^"));
11613
11720
  SUBRULE(iri2, ast.langOrIri);
11614
11721
  }
11615
11722
  }
@@ -11631,7 +11738,7 @@ var numericLiteralUnsigned = {
11631
11738
  { ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
11632
11739
  { ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
11633
11740
  ]);
11634
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11741
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11635
11742
  }
11636
11743
  };
11637
11744
  var numericLiteralPositive = {
@@ -11642,7 +11749,7 @@ var numericLiteralPositive = {
11642
11749
  { ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
11643
11750
  { ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
11644
11751
  ]);
11645
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11752
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11646
11753
  }
11647
11754
  };
11648
11755
  var numericLiteralNegative = {
@@ -11653,7 +11760,7 @@ var numericLiteralNegative = {
11653
11760
  { ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
11654
11761
  { ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
11655
11762
  ]);
11656
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11763
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11657
11764
  }
11658
11765
  };
11659
11766
  var booleanLiteral = {
@@ -11663,7 +11770,7 @@ var booleanLiteral = {
11663
11770
  { ALT: () => CONSUME(true_) },
11664
11771
  { ALT: () => CONSUME(false_) }
11665
11772
  ]);
11666
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11773
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11667
11774
  }
11668
11775
  };
11669
11776
  var string = {
@@ -11688,7 +11795,7 @@ var string = {
11688
11795
  } }
11689
11796
  ]);
11690
11797
  return ACTION(() => {
11691
- const F2 = C.factory;
11798
+ const F2 = C.astFactory;
11692
11799
  const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
11693
11800
  switch (char) {
11694
11801
  case "t":
@@ -11715,16 +11822,16 @@ var iri2 = {
11715
11822
  { ALT: () => SUBRULE(iriFull) },
11716
11823
  { ALT: () => SUBRULE(prefixedName) }
11717
11824
  ]),
11718
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11825
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11719
11826
  };
11720
11827
  var iriFull = {
11721
11828
  name: "iriFull",
11722
11829
  impl: ({ ACTION, CONSUME }) => (C) => {
11723
11830
  const iriToken = CONSUME(terminals_exports.iriRef);
11724
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11831
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11725
11832
  },
11726
- gImpl: ({ PRINT }) => (ast, { factory }) => {
11727
- factory.printFilter(ast, () => PRINT("<", ast.value, ">"));
11833
+ gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
11834
+ F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
11728
11835
  }
11729
11836
  };
11730
11837
  var prefixedName = {
@@ -11734,16 +11841,16 @@ var prefixedName = {
11734
11841
  const longName = CONSUME(terminals_exports.pNameLn);
11735
11842
  return ACTION(() => {
11736
11843
  const [prefix, localName] = longName.image.split(":");
11737
- return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
11844
+ return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
11738
11845
  });
11739
11846
  } },
11740
11847
  { ALT: () => {
11741
11848
  const shortName = CONSUME(terminals_exports.pNameNs);
11742
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11849
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11743
11850
  } }
11744
11851
  ]),
11745
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11746
- factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11852
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11853
+ F2.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11747
11854
  }
11748
11855
  };
11749
11856
  var canCreateBlankNodes = Symbol("canCreateBlankNodes");
@@ -11753,11 +11860,11 @@ var blankNode = {
11753
11860
  const result = OR([
11754
11861
  { ALT: () => {
11755
11862
  const labelToken = CONSUME(terminals_exports.blankNodeLabel);
11756
- return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
11863
+ return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
11757
11864
  } },
11758
11865
  { ALT: () => {
11759
11866
  const anonToken = CONSUME(terminals_exports.anon);
11760
- return ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocation(anonToken)));
11867
+ return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
11761
11868
  } }
11762
11869
  ]);
11763
11870
  ACTION(() => {
@@ -11767,15 +11874,15 @@ var blankNode = {
11767
11874
  });
11768
11875
  return result;
11769
11876
  },
11770
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11771
- factory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11877
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
11878
+ astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11772
11879
  }
11773
11880
  };
11774
11881
  var verbA = {
11775
11882
  name: "VerbA",
11776
11883
  impl: ({ ACTION, CONSUME }) => (C) => {
11777
11884
  const token = CONSUME(a);
11778
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11885
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11779
11886
  }
11780
11887
  };
11781
11888
 
@@ -11792,7 +11899,7 @@ var prologue = {
11792
11899
  ]));
11793
11900
  return result;
11794
11901
  },
11795
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11902
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11796
11903
  for (const context of ast) {
11797
11904
  if (F2.isContextDefinitionBase(context)) {
11798
11905
  SUBRULE(baseDecl2, context);
@@ -11807,11 +11914,12 @@ var baseDecl2 = {
11807
11914
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11808
11915
  const base = CONSUME(baseDecl);
11809
11916
  const val = SUBRULE(iriFull);
11810
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11917
+ return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
11811
11918
  },
11812
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11919
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11813
11920
  F2.printFilter(ast, () => PRINT_WORD("BASE"));
11814
11921
  SUBRULE(iri2, ast.value);
11922
+ F2.printFilter(ast, () => PRINT_WORD("\n"));
11815
11923
  }
11816
11924
  };
11817
11925
  var prefixDecl2 = {
@@ -11820,13 +11928,14 @@ var prefixDecl2 = {
11820
11928
  const prefix = CONSUME(prefixDecl);
11821
11929
  const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11822
11930
  const value = SUBRULE(iriFull);
11823
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11931
+ return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
11824
11932
  },
11825
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11933
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F2 }) => {
11826
11934
  F2.printFilter(ast, () => {
11827
11935
  PRINT_WORDS("PREFIX", `${ast.key}:`);
11828
11936
  });
11829
11937
  SUBRULE(iri2, ast.value);
11938
+ F2.printFilter(ast, () => PRINT_WORDS("\n"));
11830
11939
  }
11831
11940
  };
11832
11941
  var verb = {
@@ -11842,7 +11951,7 @@ var varOrTerm = {
11842
11951
  { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11843
11952
  { ALT: () => SUBRULE(graphTerm) }
11844
11953
  ]),
11845
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11954
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11846
11955
  if (F2.isTermVariable(ast)) {
11847
11956
  return SUBRULE(var_, ast);
11848
11957
  }
@@ -11863,9 +11972,9 @@ var var_ = {
11863
11972
  { ALT: () => CONSUME(terminals_exports.var1) },
11864
11973
  { ALT: () => CONSUME(terminals_exports.var2) }
11865
11974
  ]);
11866
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11975
+ return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
11867
11976
  },
11868
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11977
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11869
11978
  F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11870
11979
  }
11871
11980
  };
@@ -11879,10 +11988,10 @@ var graphTerm = {
11879
11988
  { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
11880
11989
  { ALT: () => {
11881
11990
  const tokenNil = CONSUME(terminals_exports.nil);
11882
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));
11991
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
11883
11992
  } }
11884
11993
  ]),
11885
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11994
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11886
11995
  if (F2.isTermNamed(ast)) {
11887
11996
  SUBRULE(iri2, ast);
11888
11997
  } else if (F2.isTermLiteral(ast)) {
@@ -11902,14 +12011,14 @@ function datasetClauseUsing(name, token) {
11902
12011
  return OR([
11903
12012
  { ALT: () => {
11904
12013
  const iri3 = SUBRULE(defaultGraphClause);
11905
- return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
12014
+ return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
11906
12015
  } },
11907
12016
  { ALT: () => {
11908
12017
  const namedClause = SUBRULE(namedGraphClause);
11909
- return ACTION(() => C.factory.wrap({
12018
+ return ACTION(() => C.astFactory.wrap({
11910
12019
  clauseType: "named",
11911
12020
  value: namedClause.val
11912
- }, C.factory.sourceLocation(start, namedClause)));
12021
+ }, C.astFactory.sourceLocation(start, namedClause)));
11913
12022
  } }
11914
12023
  ]);
11915
12024
  }
@@ -11930,9 +12039,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11930
12039
  const clause = SUBRULE(subRule);
11931
12040
  clauses.push(clause);
11932
12041
  });
11933
- return ACTION(() => C.factory.datasetClauses(clauses.map((clause) => clause.val), C.factory.sourceLocation(...clauses)));
12042
+ return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
11934
12043
  },
11935
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12044
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11936
12045
  for (const clause of ast.clauses) {
11937
12046
  F2.printFilter(ast, () => PRINT_WORD(fromUsing));
11938
12047
  if (clause.clauseType === "named") {
@@ -11950,7 +12059,7 @@ var namedGraphClause = {
11950
12059
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11951
12060
  const named2 = CONSUME(graph_exports.named);
11952
12061
  const iri3 = SUBRULE(sourceSelector);
11953
- return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
12062
+ return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
11954
12063
  }
11955
12064
  };
11956
12065
  var sourceSelector = {
@@ -11967,7 +12076,7 @@ function funcExpr1(func) {
11967
12076
  CONSUME(symbols_exports.LParen);
11968
12077
  const arg = SUBRULE(expression);
11969
12078
  const close = CONSUME(symbols_exports.RParen);
11970
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12079
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11971
12080
  }
11972
12081
  };
11973
12082
  }
@@ -11981,7 +12090,7 @@ function funcExpr2(func) {
11981
12090
  CONSUME(symbols_exports.comma);
11982
12091
  const arg2 = SUBRULE2(expression);
11983
12092
  const close = CONSUME(symbols_exports.RParen);
11984
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12093
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
11985
12094
  }
11986
12095
  };
11987
12096
  }
@@ -11997,7 +12106,7 @@ function funcExpr3(func) {
11997
12106
  CONSUME2(symbols_exports.comma);
11998
12107
  const arg3 = SUBRULE3(expression);
11999
12108
  const close = CONSUME(symbols_exports.RParen);
12000
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12109
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
12001
12110
  }
12002
12111
  };
12003
12112
  }
@@ -12009,7 +12118,7 @@ function funcVar1(func) {
12009
12118
  CONSUME(symbols_exports.LParen);
12010
12119
  const arg = SUBRULE(var_);
12011
12120
  const close = CONSUME(symbols_exports.RParen);
12012
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12121
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12013
12122
  }
12014
12123
  };
12015
12124
  }
@@ -12023,11 +12132,11 @@ function funcExprOrNil1(func) {
12023
12132
  CONSUME(symbols_exports.LParen);
12024
12133
  const arg = SUBRULE(expression);
12025
12134
  const close = CONSUME(symbols_exports.RParen);
12026
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12135
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12027
12136
  } },
12028
12137
  { ALT: () => {
12029
12138
  const nil2 = CONSUME(terminals_exports.nil);
12030
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12139
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12031
12140
  } }
12032
12141
  ]);
12033
12142
  }
@@ -12039,7 +12148,7 @@ function funcNil1(func) {
12039
12148
  impl: ({ ACTION, CONSUME }) => (C) => {
12040
12149
  const operator = CONSUME(func);
12041
12150
  const nil2 = CONSUME(terminals_exports.nil);
12042
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12151
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12043
12152
  }
12044
12153
  };
12045
12154
  }
@@ -12049,7 +12158,7 @@ function funcExprList1(func) {
12049
12158
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12050
12159
  const operator = CONSUME(func);
12051
12160
  const args = SUBRULE(expressionList);
12052
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12161
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
12053
12162
  }
12054
12163
  };
12055
12164
  }
@@ -12067,7 +12176,7 @@ function funcExpr2or3(func) {
12067
12176
  return SUBRULE3(expression);
12068
12177
  });
12069
12178
  const close = CONSUME(symbols_exports.RParen);
12070
- return ACTION(() => C.factory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.factory.sourceLocation(operator, close)));
12179
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
12071
12180
  }
12072
12181
  };
12073
12182
  }
@@ -12087,7 +12196,7 @@ function funcExpr3or4(func) {
12087
12196
  return SUBRULE4(expression);
12088
12197
  });
12089
12198
  const close = CONSUME(symbols_exports.RParen);
12090
- return ACTION(() => C.factory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12199
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
12091
12200
  }
12092
12201
  };
12093
12202
  }
@@ -12097,7 +12206,7 @@ function funcGroupGraphPattern(func) {
12097
12206
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12098
12207
  const operator = CONSUME(func);
12099
12208
  const group = SUBRULE(groupGraphPattern);
12100
- return ACTION(() => C.factory.expressionPatternOperation(operator.image, group, C.factory.sourceLocation(operator, group)));
12209
+ return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
12101
12210
  }
12102
12211
  };
12103
12212
  }
@@ -12110,7 +12219,7 @@ function baseAggregateFunc(func) {
12110
12219
  const distinct2 = OPTION(() => CONSUME(distinct));
12111
12220
  const expr1 = SUBRULE(expression);
12112
12221
  const close = CONSUME(symbols_exports.RParen);
12113
- return ACTION(() => C.factory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.factory.sourceLocation(operator, close)));
12222
+ return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
12114
12223
  }
12115
12224
  };
12116
12225
  }
@@ -12250,17 +12359,17 @@ var aggregateCount = {
12250
12359
  const expressionVal = OR([
12251
12360
  { ALT: () => {
12252
12361
  const starToken = CONSUME(symbols_exports.star);
12253
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12362
+ return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
12254
12363
  } },
12255
12364
  { ALT: () => SUBRULE(expression) }
12256
12365
  ]);
12257
12366
  const closeToken = CONSUME(symbols_exports.RParen);
12258
12367
  return ACTION(() => {
12259
- const F2 = C.factory;
12260
- if (C.factory.isWildcard(expressionVal)) {
12261
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
12368
+ const F2 = C.astFactory;
12369
+ if (C.astFactory.isWildcard(expressionVal)) {
12370
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12262
12371
  }
12263
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
12372
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12264
12373
  });
12265
12374
  }
12266
12375
  };
@@ -12284,7 +12393,7 @@ var aggregateGroup_concat = {
12284
12393
  });
12285
12394
  const closeToken = CONSUME(symbols_exports.RParen);
12286
12395
  return ACTION(() => {
12287
- const F2 = C.factory;
12396
+ const F2 = C.astFactory;
12288
12397
  return F2.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F2.sourceLocation(operatorToken, closeToken));
12289
12398
  });
12290
12399
  }
@@ -12314,7 +12423,7 @@ var aggregate = {
12314
12423
  });
12315
12424
  return result;
12316
12425
  },
12317
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12426
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12318
12427
  F2.printFilter(ast, () => {
12319
12428
  PRINT_WORD(ast.aggregation.toUpperCase(), "(");
12320
12429
  if (ast.distinct) {
@@ -12341,7 +12450,7 @@ var path = {
12341
12450
  };
12342
12451
  var pathGenerator = {
12343
12452
  name: "path",
12344
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
12453
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F2 }, braces = true) => {
12345
12454
  if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
12346
12455
  SUBRULE(iri2, ast);
12347
12456
  } else {
@@ -12390,7 +12499,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
12390
12499
  tailEnd = SUBRULE2(subRule);
12391
12500
  tail.push(tailEnd);
12392
12501
  });
12393
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12502
+ return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
12394
12503
  }
12395
12504
  };
12396
12505
  }
@@ -12401,7 +12510,7 @@ var pathEltOrInverse = {
12401
12510
  { ALT: () => {
12402
12511
  const hat2 = CONSUME(symbols_exports.hat);
12403
12512
  const item = SUBRULE2(pathElt);
12404
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12513
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12405
12514
  } }
12406
12515
  ])
12407
12516
  };
@@ -12412,7 +12521,7 @@ var pathElt = {
12412
12521
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12413
12522
  const item = SUBRULE(pathPrimary);
12414
12523
  const modification = OPTION(() => SUBRULE(pathMod));
12415
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12524
+ return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
12416
12525
  }
12417
12526
  };
12418
12527
  var pathMod = {
@@ -12444,7 +12553,7 @@ var pathNegatedPropertySet = {
12444
12553
  return OR([
12445
12554
  { ALT: () => {
12446
12555
  const noAlternative = SUBRULE1(pathOneInPropertySet);
12447
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12556
+ return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
12448
12557
  } },
12449
12558
  { ALT: () => {
12450
12559
  const open = CONSUME(symbols_exports.LParen);
@@ -12457,7 +12566,7 @@ var pathNegatedPropertySet = {
12457
12566
  });
12458
12567
  const close = CONSUME(symbols_exports.RParen);
12459
12568
  return ACTION(() => {
12460
- const F2 = C.factory;
12569
+ const F2 = C.astFactory;
12461
12570
  if (tail.length === 0) {
12462
12571
  return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12463
12572
  }
@@ -12478,7 +12587,7 @@ var pathOneInPropertySet = {
12478
12587
  { ALT: () => SUBRULE2(iri2) },
12479
12588
  { ALT: () => SUBRULE2(verbA) }
12480
12589
  ]);
12481
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12590
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12482
12591
  } }
12483
12592
  ])
12484
12593
  };
@@ -12503,33 +12612,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
12503
12612
  });
12504
12613
  }
12505
12614
  });
12506
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12615
+ return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
12507
12616
  };
12508
12617
  }
12509
12618
  var triplesBlock = {
12510
12619
  name: "triplesBlock",
12511
12620
  impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12512
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12621
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
12513
12622
  for (const [index, triple] of ast.triples.entries()) {
12514
12623
  HANDLE_LOC(triple, () => {
12515
12624
  const nextTriple = ast.triples.at(index);
12516
12625
  if (F2.isTripleCollection(triple)) {
12517
12626
  SUBRULE(graphNodePath, triple);
12518
- F2.printFilter(triple, () => PRINT_WORD("."));
12627
+ F2.printFilter(triple, () => PRINT_WORD(".\n"));
12519
12628
  } else {
12520
12629
  SUBRULE(graphNodePath, triple.subject);
12630
+ F2.printFilter(triple, () => PRINT_WORD(""));
12521
12631
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12522
12632
  SUBRULE(varOrTerm, triple.predicate);
12523
12633
  } else {
12524
12634
  SUBRULE(pathGenerator, triple.predicate, void 0);
12525
12635
  }
12636
+ F2.printFilter(triple, () => PRINT_WORD(""));
12526
12637
  SUBRULE(graphNodePath, triple.object);
12527
12638
  if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12528
- F2.printFilter(ast, () => PRINT_WORD("."));
12639
+ F2.printFilter(ast, () => PRINT_WORD(".\n"));
12529
12640
  } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12530
12641
  F2.printFilter(ast, () => PRINT_WORD(","));
12531
12642
  } else {
12532
- F2.printFilter(ast, () => PRINT_WORD(";"));
12643
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12533
12644
  }
12534
12645
  }
12535
12646
  });
@@ -12542,24 +12653,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
12542
12653
  impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12543
12654
  { ALT: () => {
12544
12655
  const subject = SUBRULE(varOrTerm);
12545
- const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.factory.dematerialized(subject)));
12656
+ const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
12546
12657
  return ACTION(() => {
12547
12658
  if (res.length > 0) {
12548
12659
  res[0].subject = subject;
12549
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12660
+ res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
12550
12661
  }
12551
12662
  return res;
12552
12663
  });
12553
12664
  } },
12554
12665
  { ALT: () => {
12555
12666
  const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12556
- const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.factory.graphNodeIdentifier(subjectNode)));
12667
+ const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
12557
12668
  return ACTION(() => {
12558
12669
  if (restNode.length === 0) {
12559
12670
  return [subjectNode];
12560
12671
  }
12561
12672
  restNode[0].subject = subjectNode;
12562
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12673
+ restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
12563
12674
  return restNode;
12564
12675
  });
12565
12676
  } }
@@ -12643,7 +12754,7 @@ function objectImpl(name, allowPaths) {
12643
12754
  name,
12644
12755
  impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12645
12756
  const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12646
- return ACTION(() => C.factory.triple(subject, predicate, node));
12757
+ return ACTION(() => C.astFactory.triple(subject, predicate, node));
12647
12758
  }
12648
12759
  };
12649
12760
  }
@@ -12660,7 +12771,7 @@ function collectionImpl(name, allowPaths) {
12660
12771
  });
12661
12772
  const endToken = CONSUME(symbols_exports.RParen);
12662
12773
  return ACTION(() => {
12663
- const F2 = C.factory;
12774
+ const F2 = C.astFactory;
12664
12775
  const triples = [];
12665
12776
  const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
12666
12777
  const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
@@ -12684,7 +12795,7 @@ function collectionImpl(name, allowPaths) {
12684
12795
  return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12685
12796
  });
12686
12797
  },
12687
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12798
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12688
12799
  F2.printFilter(ast, () => PRINT_WORD("("));
12689
12800
  for (const [idx, triple] of ast.triples.entries()) {
12690
12801
  if (idx % 2 === 0) {
@@ -12715,13 +12826,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
12715
12826
  name,
12716
12827
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12717
12828
  const startToken = CONSUME(symbols_exports.LSquare);
12718
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12829
+ const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
12719
12830
  const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12720
12831
  const endToken = CONSUME(symbols_exports.RSquare);
12721
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.factory.sourceLocation(startToken, endToken)));
12832
+ return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
12722
12833
  },
12723
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12724
- F2.printFilter(ast, () => PRINT("["));
12834
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
12835
+ const { astFactory: F2, indentInc } = c;
12836
+ F2.printFilter(ast, () => {
12837
+ c[traqulaIndentation] += indentInc;
12838
+ PRINT("[\n");
12839
+ });
12725
12840
  for (const triple of ast.triples) {
12726
12841
  HANDLE_LOC(triple, () => {
12727
12842
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
@@ -12729,11 +12844,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
12729
12844
  } else {
12730
12845
  SUBRULE(pathGenerator, triple.predicate, void 0);
12731
12846
  }
12847
+ F2.printFilter(triple, () => PRINT_WORD(""));
12732
12848
  SUBRULE(graphNodePath, triple.object);
12733
- F2.printFilter(ast, () => PRINT_WORD(";"));
12849
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12734
12850
  });
12735
12851
  }
12736
- F2.printFilter(ast, () => PRINT("]"));
12852
+ F2.printFilter(ast, () => {
12853
+ c[traqulaIndentation] -= indentInc;
12854
+ PRINT_ON_EMPTY("]");
12855
+ });
12737
12856
  }
12738
12857
  };
12739
12858
  }
@@ -12750,7 +12869,7 @@ function graphNodeImpl(name, allowPaths) {
12750
12869
  ALT: () => SUBRULE(triplesNodeRule)
12751
12870
  }
12752
12871
  ]),
12753
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12872
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12754
12873
  if (F2.isTerm(ast)) {
12755
12874
  SUBRULE(varOrTerm, ast);
12756
12875
  } else {
@@ -12768,9 +12887,9 @@ var whereClause = {
12768
12887
  impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12769
12888
  const where2 = OPTION(() => CONSUME(where));
12770
12889
  const group = SUBRULE(groupGraphPattern);
12771
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12890
+ return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
12772
12891
  },
12773
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12892
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12774
12893
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12775
12894
  SUBRULE(groupGraphPattern, ast.val);
12776
12895
  }
@@ -12784,19 +12903,26 @@ var groupGraphPattern = {
12784
12903
  { ALT: () => SUBRULE(groupGraphPatternSub) }
12785
12904
  ]);
12786
12905
  const close = CONSUME(symbols_exports.RCurly);
12787
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12906
+ return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
12788
12907
  },
12789
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12790
- F2.printFilter(ast, () => PRINT_WORD("{"));
12908
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12909
+ const { astFactory: F2, indentInc } = C;
12910
+ F2.printFilter(ast, () => {
12911
+ C[traqulaIndentation] += indentInc;
12912
+ PRINT_WORD("{\n");
12913
+ });
12791
12914
  for (const pattern of ast.patterns) {
12792
12915
  SUBRULE(generatePattern, pattern);
12793
12916
  }
12794
- F2.printFilter(ast, () => PRINT_WORD("}"));
12917
+ F2.printFilter(ast, () => {
12918
+ C[traqulaIndentation] -= indentInc;
12919
+ PRINT_ON_EMPTY("}\n");
12920
+ });
12795
12921
  }
12796
12922
  };
12797
12923
  var generatePattern = {
12798
12924
  name: "generatePattern",
12799
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12925
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12800
12926
  if (ast.type === "query") {
12801
12927
  SUBRULE(query, F2.querySelect({
12802
12928
  context: [],
@@ -12885,9 +13011,9 @@ var optionalGraphPattern = {
12885
13011
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12886
13012
  const optional2 = CONSUME(optional);
12887
13013
  const group = SUBRULE(groupGraphPattern);
12888
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
13014
+ return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
12889
13015
  },
12890
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13016
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12891
13017
  F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12892
13018
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12893
13019
  }
@@ -12898,9 +13024,9 @@ var graphGraphPattern = {
12898
13024
  const graph2 = CONSUME(graph_exports.graph);
12899
13025
  const name = SUBRULE(varOrIri);
12900
13026
  const group = SUBRULE(groupGraphPattern);
12901
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
13027
+ return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
12902
13028
  },
12903
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13029
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12904
13030
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12905
13031
  SUBRULE(varOrTerm, ast.name);
12906
13032
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
@@ -12916,9 +13042,9 @@ var serviceGraphPattern = {
12916
13042
  }) ?? false;
12917
13043
  const name = SUBRULE1(varOrIri);
12918
13044
  const group = SUBRULE1(groupGraphPattern);
12919
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
13045
+ return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
12920
13046
  },
12921
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13047
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12922
13048
  F2.printFilter(ast, () => {
12923
13049
  PRINT_WORD("SERVICE");
12924
13050
  if (ast.silent) {
@@ -12938,14 +13064,14 @@ var bind2 = {
12938
13064
  CONSUME(as);
12939
13065
  const variable = SUBRULE(var_);
12940
13066
  const close = CONSUME(symbols_exports.RParen);
12941
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
13067
+ return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
12942
13068
  },
12943
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13069
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12944
13070
  F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12945
13071
  SUBRULE(expression, ast.expression);
12946
13072
  F2.printFilter(ast, () => PRINT_WORD("AS"));
12947
13073
  SUBRULE(var_, ast.variable);
12948
- F2.printFilter(ast, () => PRINT_WORD(")"));
13074
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12949
13075
  }
12950
13076
  };
12951
13077
  var inlineData = {
@@ -12953,16 +13079,19 @@ var inlineData = {
12953
13079
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12954
13080
  const values3 = CONSUME(values2);
12955
13081
  const datablock = SUBRULE(dataBlock);
12956
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
13082
+ return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
12957
13083
  },
12958
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13084
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13085
+ const { astFactory: F2, indentInc } = C;
12959
13086
  const variables = Object.keys(ast.values.at(0) ?? {});
12960
13087
  F2.printFilter(ast, () => {
13088
+ PRINT_ON_EMPTY("");
12961
13089
  PRINT_WORD("VALUES", "(");
12962
13090
  for (const variable of variables) {
12963
13091
  PRINT_WORD(`?${variable}`);
12964
13092
  }
12965
- PRINT_WORD(")", "{");
13093
+ C[traqulaIndentation] += indentInc;
13094
+ PRINT_WORD(")", "{\n");
12966
13095
  });
12967
13096
  for (const mapping of ast.values) {
12968
13097
  F2.printFilter(ast, () => PRINT_WORD("("));
@@ -12973,9 +13102,12 @@ var inlineData = {
12973
13102
  SUBRULE(graphNodePath, mapping[variable]);
12974
13103
  }
12975
13104
  }
12976
- F2.printFilter(ast, () => PRINT_WORD(")"));
13105
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12977
13106
  }
12978
- F2.printFilter(ast, () => PRINT_WORD("}"));
13107
+ F2.printFilter(ast, () => {
13108
+ C[traqulaIndentation] -= indentInc;
13109
+ PRINT_ON_EMPTY("}\n");
13110
+ });
12979
13111
  }
12980
13112
  };
12981
13113
  var dataBlock = {
@@ -12998,7 +13130,7 @@ var inlineDataOneVar = {
12998
13130
  });
12999
13131
  });
13000
13132
  const close = CONSUME(symbols_exports.RCurly);
13001
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
13133
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
13002
13134
  }
13003
13135
  };
13004
13136
  var inlineDataFull = {
@@ -13015,7 +13147,7 @@ var inlineDataFull = {
13015
13147
  res.push({});
13016
13148
  });
13017
13149
  const close = CONSUME1(symbols_exports.RCurly);
13018
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
13150
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
13019
13151
  } },
13020
13152
  { ALT: () => {
13021
13153
  const open = CONSUME1(symbols_exports.LParen);
@@ -13047,7 +13179,7 @@ var inlineDataFull = {
13047
13179
  });
13048
13180
  });
13049
13181
  const close = CONSUME2(symbols_exports.RCurly);
13050
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
13182
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
13051
13183
  } }
13052
13184
  ]);
13053
13185
  }
@@ -13070,9 +13202,9 @@ var minusGraphPattern = {
13070
13202
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13071
13203
  const minus2 = CONSUME(minus);
13072
13204
  const group = SUBRULE(groupGraphPattern);
13073
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
13205
+ return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
13074
13206
  },
13075
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13207
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13076
13208
  F2.printFilter(ast, () => PRINT_WORD("MINUS"));
13077
13209
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
13078
13210
  }
@@ -13088,9 +13220,9 @@ var groupOrUnionGraphPattern = {
13088
13220
  const group2 = SUBRULE2(groupGraphPattern);
13089
13221
  groups.push(group2);
13090
13222
  });
13091
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(groups, C.factory.sourceLocation(group, groups.at(-1))));
13223
+ return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
13092
13224
  },
13093
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13225
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13094
13226
  if (F2.isPatternUnion(ast)) {
13095
13227
  const [head2, ...tail] = ast.patterns;
13096
13228
  SUBRULE(groupGraphPattern, head2);
@@ -13108,12 +13240,12 @@ var filter3 = {
13108
13240
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13109
13241
  const filterToken = CONSUME(filter2);
13110
13242
  const expression2 = SUBRULE(constraint);
13111
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
13243
+ return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
13112
13244
  },
13113
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13245
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13114
13246
  F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
13115
13247
  SUBRULE(expression, ast.expression);
13116
- F2.printFilter(ast, () => PRINT_WORD(")"));
13248
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
13117
13249
  }
13118
13250
  };
13119
13251
  var constraint = {
@@ -13129,7 +13261,7 @@ var functionCall = {
13129
13261
  impl: ({ ACTION, SUBRULE }) => (C) => {
13130
13262
  const func = SUBRULE(iri2);
13131
13263
  const args = SUBRULE(argList);
13132
- return ACTION(() => C.factory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.factory.sourceLocation(func, args)));
13264
+ return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
13133
13265
  }
13134
13266
  };
13135
13267
 
@@ -13139,7 +13271,7 @@ var argList = {
13139
13271
  impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
13140
13272
  { ALT: () => {
13141
13273
  const nil2 = CONSUME(terminals_exports.nil);
13142
- return ACTION(() => C.factory.wrap({ args: [], distinct: false }, C.factory.sourceLocation(nil2)));
13274
+ return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
13143
13275
  } },
13144
13276
  { ALT: () => {
13145
13277
  const args = [];
@@ -13156,10 +13288,10 @@ var argList = {
13156
13288
  }
13157
13289
  });
13158
13290
  const close = CONSUME(symbols_exports.RParen);
13159
- return ACTION(() => C.factory.wrap({ args, distinct: distinct2 }, C.factory.sourceLocation(open, close)));
13291
+ return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
13160
13292
  } }
13161
13293
  ]),
13162
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13294
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13163
13295
  F2.printFilter(ast, () => {
13164
13296
  PRINT_WORD("(");
13165
13297
  if (ast.val.distinct) {
@@ -13182,7 +13314,7 @@ var expressionList = {
13182
13314
  impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
13183
13315
  { ALT: () => {
13184
13316
  const nil2 = CONSUME(terminals_exports.nil);
13185
- return ACTION(() => C.factory.wrap([], C.factory.sourceLocation(nil2)));
13317
+ return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
13186
13318
  } },
13187
13319
  { ALT: () => {
13188
13320
  const open = CONSUME(symbols_exports.LParen);
@@ -13194,7 +13326,7 @@ var expressionList = {
13194
13326
  args.push(expr);
13195
13327
  });
13196
13328
  const close = CONSUME(symbols_exports.RParen);
13197
- return ACTION(() => C.factory.wrap(args, C.factory.sourceLocation(open, close)));
13329
+ return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
13198
13330
  } }
13199
13331
  ])
13200
13332
  };
@@ -13203,7 +13335,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13203
13335
  var expression = {
13204
13336
  name: "expression",
13205
13337
  impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13206
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13338
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13207
13339
  if (F2.isTerm(ast)) {
13208
13340
  SUBRULE(varOrTerm, ast);
13209
13341
  } else if (F2.isExpressionOperator(ast)) {
@@ -13268,7 +13400,7 @@ var conditionalOrExpression = {
13268
13400
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
13269
13401
  CONSUME(symbols_exports.logicOr);
13270
13402
  const args = SUBRULE2(conditionalAndExpression);
13271
- return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13403
+ return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
13272
13404
  }, ACTION, MANY)
13273
13405
  };
13274
13406
  var conditionalAndExpression = {
@@ -13276,7 +13408,7 @@ var conditionalAndExpression = {
13276
13408
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
13277
13409
  CONSUME(symbols_exports.logicAnd);
13278
13410
  const arg = SUBRULE2(valueLogical);
13279
- return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13411
+ return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
13280
13412
  }, ACTION, MANY)
13281
13413
  };
13282
13414
  var valueLogical = {
@@ -13298,7 +13430,7 @@ var relationalExpression = {
13298
13430
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13299
13431
  ]);
13300
13432
  const expr = SUBRULE2(numericExpression);
13301
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, expr], C.factory.sourceLocation(args1, expr)));
13433
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
13302
13434
  } },
13303
13435
  { ALT: () => {
13304
13436
  const operator = OR3([
@@ -13306,7 +13438,7 @@ var relationalExpression = {
13306
13438
  { ALT: () => CONSUME(notIn) }
13307
13439
  ]);
13308
13440
  const args = SUBRULE1(expressionList);
13309
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, ...args.val], C.factory.sourceLocation(args1, args)));
13441
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
13310
13442
  } }
13311
13443
  ]));
13312
13444
  return expression2 ?? args1;
@@ -13325,7 +13457,7 @@ var additiveExpression = {
13325
13457
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13326
13458
  ]);
13327
13459
  const arg = SUBRULE2(multiplicativeExpression);
13328
- return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13460
+ return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
13329
13461
  } },
13330
13462
  { ALT: () => {
13331
13463
  const { operator, startInt } = OR3([
@@ -13356,9 +13488,9 @@ var additiveExpression = {
13356
13488
  { ALT: () => CONSUME(symbols_exports.slash) }
13357
13489
  ]);
13358
13490
  const innerExpr = SUBRULE1(unaryExpression);
13359
- return ACTION(() => (leftInner) => C.factory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.factory.sourceLocation(leftInner, innerExpr)));
13491
+ return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
13360
13492
  }, ACTION, MANY2);
13361
- return (left) => C.factory.expressionOperation(operator, [left, multiplicativeExpr], C.factory.sourceLocation(left, multiplicativeExpr));
13493
+ return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
13362
13494
  } }
13363
13495
  ]), ACTION, MANY1)
13364
13496
  };
@@ -13375,7 +13507,7 @@ var multiplicativeExpression = {
13375
13507
  subType: "operation",
13376
13508
  operator: operator.image,
13377
13509
  args: [left, expr],
13378
- loc: C.factory.sourceLocation(left, expr)
13510
+ loc: C.astFactory.sourceLocation(left, expr)
13379
13511
  });
13380
13512
  }, ACTION, MANY)
13381
13513
  };
@@ -13390,7 +13522,7 @@ var unaryExpression = {
13390
13522
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13391
13523
  ]);
13392
13524
  const expr = SUBRULE2(primaryExpression);
13393
- return ACTION(() => C.factory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.factory.sourceLocation(operator, expr)));
13525
+ return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
13394
13526
  } }
13395
13527
  ])
13396
13528
  };
@@ -13413,7 +13545,7 @@ var brackettedExpression = {
13413
13545
  const expr = SUBRULE(expression);
13414
13546
  const close = CONSUME(symbols_exports.RParen);
13415
13547
  return ACTION(() => {
13416
- expr.loc = C.factory.sourceLocation(open, close);
13548
+ expr.loc = C.astFactory.sourceLocation(open, close);
13417
13549
  return expr;
13418
13550
  });
13419
13551
  }
@@ -13435,13 +13567,13 @@ var iriOrFunction = {
13435
13567
  function: iriVal,
13436
13568
  args: args.val.args,
13437
13569
  distinct: distinct2,
13438
- loc: C.factory.sourceLocation(iriVal, args)
13570
+ loc: C.astFactory.sourceLocation(iriVal, args)
13439
13571
  };
13440
13572
  });
13441
13573
  });
13442
13574
  return functionCall2 ?? iriVal;
13443
13575
  },
13444
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13576
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13445
13577
  if (F2.isTermNamed(ast)) {
13446
13578
  SUBRULE(iri2, ast);
13447
13579
  } else {
@@ -13494,11 +13626,14 @@ var groupClause = {
13494
13626
  type: "solutionModifier",
13495
13627
  subType: "group",
13496
13628
  groupings,
13497
- loc: C.factory.sourceLocation(start, groupings.at(-1))
13629
+ loc: C.astFactory.sourceLocation(start, groupings.at(-1))
13498
13630
  }));
13499
13631
  },
13500
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13501
- F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13632
+ gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13633
+ F2.printFilter(ast, () => {
13634
+ PRINT_ON_EMPTY("");
13635
+ PRINT_WORDS("GROUP", "BY");
13636
+ });
13502
13637
  for (const grouping of ast.groupings) {
13503
13638
  if (F2.isExpression(grouping)) {
13504
13639
  SUBRULE(expression, grouping);
@@ -13532,7 +13667,7 @@ var groupCondition = {
13532
13667
  return {
13533
13668
  variable,
13534
13669
  value: expressionValue,
13535
- loc: C.factory.sourceLocation(open, close)
13670
+ loc: C.astFactory.sourceLocation(open, close)
13536
13671
  };
13537
13672
  }
13538
13673
  return expressionValue;
@@ -13551,10 +13686,13 @@ var havingClause = {
13551
13686
  expressions.push(SUBRULE(havingCondition));
13552
13687
  });
13553
13688
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13554
- return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
13689
+ return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
13555
13690
  },
13556
- gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13557
- F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13691
+ gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13692
+ F2.printFilter(ast, () => {
13693
+ PRINT_ON_EMPTY("");
13694
+ PRINT_WORD("HAVING");
13695
+ });
13558
13696
  for (const having2 of ast.having) {
13559
13697
  SUBRULE(expression, having2);
13560
13698
  }
@@ -13575,10 +13713,13 @@ var orderClause = {
13575
13713
  orderings.push(SUBRULE1(orderCondition));
13576
13714
  });
13577
13715
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13578
- return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
13716
+ return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
13579
13717
  },
13580
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13581
- F2.printFilter(ast, () => PRINT_WORDS("ORDER", "BY"));
13718
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13719
+ F2.printFilter(ast, () => {
13720
+ PRINT_ON_EMPTY("");
13721
+ PRINT_WORDS("ORDER", "BY");
13722
+ });
13582
13723
  for (const ordering of ast.orderDefs) {
13583
13724
  if (ordering.descending) {
13584
13725
  F2.printFilter(ast, () => PRINT_WORDS("DESC"));
@@ -13609,7 +13750,7 @@ var orderCondition = {
13609
13750
  return ACTION(() => ({
13610
13751
  expression: expr,
13611
13752
  descending: descending[0],
13612
- loc: C.factory.sourceLocation(descending[1], expr)
13753
+ loc: C.astFactory.sourceLocation(descending[1], expr)
13613
13754
  }));
13614
13755
  } },
13615
13756
  { ALT: () => {
@@ -13628,16 +13769,17 @@ var limitOffsetClauses = {
13628
13769
  { ALT: () => {
13629
13770
  const limit2 = SUBRULE1(limitClause);
13630
13771
  const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13631
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.factory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13772
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13632
13773
  } },
13633
13774
  { ALT: () => {
13634
13775
  const offset2 = SUBRULE2(offsetClause);
13635
13776
  const limit2 = OPTION2(() => SUBRULE2(limitClause));
13636
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.factory.sourceLocation(offset2, limit2)));
13777
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
13637
13778
  } }
13638
13779
  ]),
13639
- gImpl: ({ PRINT_WORDS }) => (ast, { factory: F2 }) => {
13780
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13640
13781
  F2.printFilter(ast, () => {
13782
+ PRINT_ON_EMPTY("");
13641
13783
  if (ast.limit) {
13642
13784
  PRINT_WORDS("LIMIT", String(ast.limit));
13643
13785
  }
@@ -13653,7 +13795,7 @@ var limitClause = {
13653
13795
  const offset2 = CONSUME(limit);
13654
13796
  const value = CONSUME(terminals_exports.integer);
13655
13797
  const val = Number.parseInt(value.image, 10);
13656
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13798
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13657
13799
  }
13658
13800
  };
13659
13801
  var offsetClause = {
@@ -13662,7 +13804,7 @@ var offsetClause = {
13662
13804
  const offset2 = CONSUME(offset);
13663
13805
  const value = CONSUME(terminals_exports.integer);
13664
13806
  const val = Number.parseInt(value.image, 10);
13665
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13807
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13666
13808
  }
13667
13809
  };
13668
13810
 
@@ -13687,10 +13829,10 @@ var query = {
13687
13829
  ...subType,
13688
13830
  type: "query",
13689
13831
  ...values3 && { values: values3 },
13690
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
13832
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
13691
13833
  }));
13692
13834
  },
13693
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13835
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13694
13836
  SUBRULE(prologue, ast.context);
13695
13837
  if (F2.isQuerySelect(ast)) {
13696
13838
  SUBRULE(selectQuery, ast);
@@ -13720,13 +13862,13 @@ var selectQuery = {
13720
13862
  solutionModifiers: modifiers,
13721
13863
  datasets: from2,
13722
13864
  ...selectVal.val,
13723
- loc: C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13865
+ loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13724
13866
  };
13725
13867
  queryIsGood(ret);
13726
13868
  return ret;
13727
13869
  });
13728
13870
  },
13729
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13871
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13730
13872
  SUBRULE(selectClause, F2.wrap({
13731
13873
  variables: ast.variables,
13732
13874
  distinct: ast.distinct,
@@ -13744,14 +13886,14 @@ var subSelect = {
13744
13886
  const where2 = SUBRULE(whereClause);
13745
13887
  const modifiers = SUBRULE(solutionModifier);
13746
13888
  const values3 = SUBRULE(valuesClause);
13747
- return ACTION(() => C.factory.querySelect({
13889
+ return ACTION(() => C.astFactory.querySelect({
13748
13890
  where: where2.val,
13749
- datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
13891
+ datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
13750
13892
  context: [],
13751
13893
  solutionModifiers: modifiers,
13752
13894
  ...selectVal.val,
13753
13895
  ...values3 && { values: values3 }
13754
- }, C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13896
+ }, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13755
13897
  }
13756
13898
  };
13757
13899
  var selectClause = {
@@ -13782,7 +13924,7 @@ var selectClause = {
13782
13924
  const star2 = CONSUME(symbols_exports.star);
13783
13925
  return ACTION(() => {
13784
13926
  last2 = star2;
13785
- return { variables: [C.factory.wildcard(C.factory.sourceLocation(star2))], ...distRed };
13927
+ return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
13786
13928
  });
13787
13929
  } },
13788
13930
  { ALT: () => {
@@ -13812,7 +13954,7 @@ var selectClause = {
13812
13954
  throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
13813
13955
  }
13814
13956
  usedVars.push(variable);
13815
- variables.push(C.factory.patternBind(expr, variable, C.factory.sourceLocation(open, last2)));
13957
+ variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
13816
13958
  });
13817
13959
  } }
13818
13960
  ]));
@@ -13820,9 +13962,9 @@ var selectClause = {
13820
13962
  } }
13821
13963
  ]);
13822
13964
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13823
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(select2, last2)));
13965
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
13824
13966
  },
13825
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13967
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13826
13968
  F2.printFilter(ast, () => {
13827
13969
  PRINT_WORD("SELECT");
13828
13970
  if (ast.val.distinct) {
@@ -13862,7 +14004,7 @@ var constructQuery = {
13862
14004
  datasets: from2,
13863
14005
  where: where2.val,
13864
14006
  solutionModifiers: modifiers,
13865
- loc: C.factory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
14007
+ loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13866
14008
  }));
13867
14009
  } },
13868
14010
  { ALT: () => {
@@ -13874,19 +14016,26 @@ var constructQuery = {
13874
14016
  subType: "construct",
13875
14017
  template: template.val,
13876
14018
  datasets: from2,
13877
- where: C.factory.patternGroup([template.val], C.factory.sourceLocation()),
14019
+ where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
13878
14020
  solutionModifiers: modifiers,
13879
- loc: C.factory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
14021
+ loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13880
14022
  }));
13881
14023
  } }
13882
14024
  ]);
13883
14025
  },
13884
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14026
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14027
+ const { astFactory: F2, indentInc } = C;
13885
14028
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13886
14029
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13887
- F2.printFilter(ast, () => PRINT_WORD("{"));
14030
+ F2.printFilter(ast, () => {
14031
+ C[traqulaIndentation] += indentInc;
14032
+ PRINT_WORD("{\n");
14033
+ });
13888
14034
  SUBRULE(triplesBlock, ast.template);
13889
- F2.printFilter(ast, () => PRINT_WORD("}"));
14035
+ F2.printFilter(ast, () => {
14036
+ C[traqulaIndentation] -= indentInc;
14037
+ PRINT_ON_EMPTY("}\n");
14038
+ });
13890
14039
  }
13891
14040
  SUBRULE(datasetClauseStar, ast.datasets);
13892
14041
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
@@ -13911,7 +14060,7 @@ var describeQuery = {
13911
14060
  } },
13912
14061
  { ALT: () => {
13913
14062
  const star2 = CONSUME(symbols_exports.star);
13914
- return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
14063
+ return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
13915
14064
  } }
13916
14065
  ]);
13917
14066
  const from2 = SUBRULE1(datasetClauseStar);
@@ -13923,10 +14072,10 @@ var describeQuery = {
13923
14072
  datasets: from2,
13924
14073
  ...where2 && { where: where2.val },
13925
14074
  solutionModifiers: modifiers,
13926
- loc: C.factory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
14075
+ loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13927
14076
  }));
13928
14077
  },
13929
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14078
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13930
14079
  F2.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
13931
14080
  if (F2.isWildcard(ast.variables[0])) {
13932
14081
  F2.printFilter(ast, () => PRINT_WORD("*"));
@@ -13954,10 +14103,10 @@ var askQuery = {
13954
14103
  datasets: from2,
13955
14104
  where: where2.val,
13956
14105
  solutionModifiers: modifiers,
13957
- loc: C.factory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
14106
+ loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13958
14107
  }));
13959
14108
  },
13960
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14109
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13961
14110
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
13962
14111
  SUBRULE(datasetClauseStar, ast.datasets);
13963
14112
  SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
@@ -13974,7 +14123,7 @@ var constructTemplate = {
13974
14123
  const open = CONSUME(symbols_exports.LCurly);
13975
14124
  const triples = OPTION(() => SUBRULE1(constructTriples));
13976
14125
  const close = CONSUME(symbols_exports.RCurly);
13977
- return ACTION(() => C.factory.wrap(triples ?? C.factory.patternBgp([], C.factory.sourceLocation()), C.factory.sourceLocation(open, close)));
14126
+ return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
13978
14127
  }
13979
14128
  };
13980
14129
  var constructTriples = {
@@ -14011,13 +14160,13 @@ var update = {
14011
14160
  const update2 = {
14012
14161
  type: "update",
14013
14162
  updates,
14014
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14163
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14015
14164
  };
14016
14165
  updateNoReuseBlankNodeLabels(update2);
14017
14166
  return update2;
14018
14167
  });
14019
14168
  },
14020
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14169
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14021
14170
  const [head2, ...tail] = ast.updates;
14022
14171
  if (head2) {
14023
14172
  SUBRULE(prologue, head2.context);
@@ -14097,9 +14246,9 @@ var load2 = {
14097
14246
  CONSUME(loadInto);
14098
14247
  return SUBRULE1(graphRef);
14099
14248
  });
14100
- return ACTION(() => C.factory.updateOperationLoad(C.factory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14249
+ return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14101
14250
  },
14102
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14251
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14103
14252
  F2.printFilter(ast, () => {
14104
14253
  PRINT_WORD("LOAD");
14105
14254
  if (ast.silent) {
@@ -14120,9 +14269,9 @@ function clearOrDrop(operation) {
14120
14269
  const opToken = CONSUME(operation);
14121
14270
  const silent2 = OPTION(() => CONSUME(silent));
14122
14271
  const destination = SUBRULE1(graphRefAll);
14123
- return ACTION(() => C.factory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.factory.sourceLocation(opToken, destination)));
14272
+ return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
14124
14273
  },
14125
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14274
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14126
14275
  F2.printFilter(ast, () => {
14127
14276
  PRINT_WORD(operation.name.toUpperCase());
14128
14277
  if (ast.silent) {
@@ -14141,9 +14290,9 @@ var create2 = {
14141
14290
  const createToken3 = CONSUME(create);
14142
14291
  const silent2 = OPTION(() => CONSUME(silent));
14143
14292
  const destination = SUBRULE1(graphRef);
14144
- return ACTION(() => C.factory.updateOperationCreate(destination, Boolean(silent2), C.factory.sourceLocation(createToken3, destination)));
14293
+ return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
14145
14294
  },
14146
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14295
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14147
14296
  F2.printFilter(ast, () => {
14148
14297
  PRINT_WORD("CREATE");
14149
14298
  if (ast.silent) {
@@ -14162,9 +14311,9 @@ function copyMoveAddOperation(operation) {
14162
14311
  const source = SUBRULE1(graphOrDefault);
14163
14312
  CONSUME(to);
14164
14313
  const destination = SUBRULE2(graphOrDefault);
14165
- return ACTION(() => C.factory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.factory.sourceLocation(op, destination)));
14314
+ return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
14166
14315
  },
14167
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14316
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14168
14317
  F2.printFilter(ast, () => {
14169
14318
  PRINT_WORD(operation.name.toUpperCase());
14170
14319
  if (ast.silent) {
@@ -14186,7 +14335,7 @@ var quadPattern = {
14186
14335
  const open = CONSUME(symbols_exports.LCurly);
14187
14336
  const val = SUBRULE1(quads);
14188
14337
  const close = CONSUME(symbols_exports.RCurly);
14189
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14338
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14190
14339
  }
14191
14340
  };
14192
14341
  var quadData = {
@@ -14197,7 +14346,7 @@ var quadData = {
14197
14346
  const val = SUBRULE1(quads);
14198
14347
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14199
14348
  const close = CONSUME(symbols_exports.RCurly);
14200
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14349
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14201
14350
  }
14202
14351
  };
14203
14352
  function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
@@ -14214,12 +14363,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14214
14363
  if (name !== "insertData") {
14215
14364
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14216
14365
  }
14217
- return ACTION(() => C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));
14366
+ return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
14218
14367
  },
14219
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14220
- F2.printFilter(ast, () => PRINT_WORD(subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE", "{"));
14368
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14369
+ const { astFactory: F2, indentInc } = C;
14370
+ F2.printFilter(ast, () => {
14371
+ C[traqulaIndentation] += indentInc;
14372
+ if (subType === "insertdata") {
14373
+ PRINT_WORD("INSERT DATA");
14374
+ } else if (subType === "deletedata") {
14375
+ PRINT_WORD("DELETE DATA");
14376
+ } else if (subType === "deletewhere") {
14377
+ PRINT_WORD("DELETE WHERE");
14378
+ }
14379
+ PRINT_WORD("{\n");
14380
+ });
14221
14381
  SUBRULE(quads, F2.wrap(ast.data, ast.loc));
14222
- F2.printFilter(ast, () => PRINT_WORD("}"));
14382
+ F2.printFilter(ast, () => {
14383
+ C[traqulaIndentation] -= indentInc;
14384
+ PRINT_ON_EMPTY("}\n");
14385
+ });
14223
14386
  }
14224
14387
  };
14225
14388
  }
@@ -14248,22 +14411,35 @@ var modify = {
14248
14411
  const using = SUBRULE1(usingClauseStar);
14249
14412
  CONSUME(where);
14250
14413
  const where2 = SUBRULE1(groupGraphPattern);
14251
- return ACTION(() => C.factory.updateOperationModify(C.factory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
14414
+ return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
14252
14415
  },
14253
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14416
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14417
+ const { astFactory: F2, indentInc } = C;
14254
14418
  if (ast.graph) {
14255
14419
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
14256
14420
  SUBRULE(iri2, ast.graph);
14257
14421
  }
14258
14422
  if (ast.delete.length > 0) {
14259
- F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14423
+ F2.printFilter(ast, () => {
14424
+ C[traqulaIndentation] += indentInc;
14425
+ PRINT_WORD("DELETE", "{\n");
14426
+ });
14260
14427
  SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
14261
- F2.printFilter(ast, () => PRINT_WORD("}"));
14428
+ F2.printFilter(ast, () => {
14429
+ C[traqulaIndentation] -= indentInc;
14430
+ PRINT_ON_EMPTY("}\n");
14431
+ });
14262
14432
  }
14263
14433
  if (ast.insert.length > 0) {
14264
- F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14434
+ F2.printFilter(ast, () => {
14435
+ C[traqulaIndentation] += indentInc;
14436
+ PRINT_WORD("INSERT", "{\n");
14437
+ });
14265
14438
  SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
14266
- F2.printFilter(ast, () => PRINT_WORD("}"));
14439
+ F2.printFilter(ast, () => {
14440
+ C[traqulaIndentation] -= indentInc;
14441
+ PRINT_ON_EMPTY("}\n");
14442
+ });
14267
14443
  }
14268
14444
  SUBRULE(usingClauseStar, ast.from);
14269
14445
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
@@ -14277,7 +14453,7 @@ var deleteClause2 = {
14277
14453
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14278
14454
  const del = SUBRULE(quadPattern);
14279
14455
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14280
- return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14456
+ return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
14281
14457
  }
14282
14458
  };
14283
14459
  var insertClause2 = {
@@ -14285,7 +14461,7 @@ var insertClause2 = {
14285
14461
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14286
14462
  const insertToken = CONSUME(insertClause);
14287
14463
  const insert = SUBRULE(quadPattern);
14288
- return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14464
+ return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
14289
14465
  }
14290
14466
  };
14291
14467
  var graphOrDefault = {
@@ -14293,12 +14469,12 @@ var graphOrDefault = {
14293
14469
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
14294
14470
  { ALT: () => {
14295
14471
  const def = CONSUME(graph_exports.default_);
14296
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14472
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14297
14473
  } },
14298
14474
  { ALT: () => {
14299
14475
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14300
14476
  const name = SUBRULE1(iri2);
14301
- return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14477
+ return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
14302
14478
  } }
14303
14479
  ])
14304
14480
  };
@@ -14307,9 +14483,9 @@ var graphRef = {
14307
14483
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14308
14484
  const graph2 = CONSUME(graph_exports.graph);
14309
14485
  const val = SUBRULE(iri2);
14310
- return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14486
+ return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
14311
14487
  },
14312
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14488
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14313
14489
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14314
14490
  SUBRULE(iri2, ast.graph);
14315
14491
  }
@@ -14320,18 +14496,18 @@ var graphRefAll = {
14320
14496
  { ALT: () => SUBRULE(graphRef) },
14321
14497
  { ALT: () => {
14322
14498
  const def = CONSUME(graph_exports.default_);
14323
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14499
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14324
14500
  } },
14325
14501
  { ALT: () => {
14326
14502
  const named2 = CONSUME(graph_exports.named);
14327
- return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named2)));
14503
+ return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
14328
14504
  } },
14329
14505
  { ALT: () => {
14330
14506
  const graphAll2 = CONSUME(graph_exports.graphAll);
14331
- return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll2)));
14507
+ return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
14332
14508
  } }
14333
14509
  ]),
14334
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14510
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14335
14511
  if (F2.isGraphRefSpecific(ast)) {
14336
14512
  SUBRULE(graphRef, ast);
14337
14513
  } else if (F2.isGraphRefDefault(ast)) {
@@ -14368,9 +14544,9 @@ var quads = {
14368
14544
  ACTION(() => quads2.push(triples));
14369
14545
  });
14370
14546
  });
14371
- return ACTION(() => C.factory.wrap(quads2, C.factory.sourceLocation(quads2.at(0), last2)));
14547
+ return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
14372
14548
  },
14373
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14549
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14374
14550
  for (const quad of ast.val) {
14375
14551
  if (F2.isPattern(quad)) {
14376
14552
  SUBRULE(triplesBlock, quad);
@@ -14388,14 +14564,21 @@ var quadsNotTriples = {
14388
14564
  CONSUME(symbols_exports.LCurly);
14389
14565
  const triples = OPTION(() => SUBRULE1(triplesTemplate));
14390
14566
  const close = CONSUME(symbols_exports.RCurly);
14391
- return ACTION(() => C.factory.graphQuads(name, triples ?? C.factory.patternBgp([], C.factory.sourceLocationNoMaterialize()), C.factory.sourceLocation(graph2, close)));
14567
+ return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
14392
14568
  },
14393
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14569
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14570
+ const { astFactory: F2, indentInc } = C;
14394
14571
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14395
14572
  SUBRULE(varOrTerm, ast.graph);
14396
- F2.printFilter(ast, () => PRINT_WORD("{"));
14573
+ F2.printFilter(ast, () => {
14574
+ C[traqulaIndentation] += indentInc;
14575
+ PRINT_WORD("{\n");
14576
+ });
14397
14577
  SUBRULE(triplesBlock, ast.triples);
14398
- F2.printFilter(ast, () => PRINT_WORD("}"));
14578
+ F2.printFilter(ast, () => {
14579
+ C[traqulaIndentation] -= indentInc;
14580
+ PRINT_ON_EMPTY("}\n");
14581
+ });
14399
14582
  }
14400
14583
  };
14401
14584
 
@@ -14418,7 +14601,7 @@ var queryOrUpdate = {
14418
14601
  ...subType,
14419
14602
  type: "query",
14420
14603
  ...values3 && { values: values3 },
14421
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
14604
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
14422
14605
  }));
14423
14606
  } },
14424
14607
  { ALT: () => {
@@ -14442,7 +14625,7 @@ var queryOrUpdate = {
14442
14625
  const update2 = {
14443
14626
  type: "update",
14444
14627
  updates,
14445
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14628
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14446
14629
  };
14447
14630
  updateNoReuseBlankNodeLabels(update2);
14448
14631
  return update2;
@@ -14450,7 +14633,7 @@ var queryOrUpdate = {
14450
14633
  } }
14451
14634
  ]);
14452
14635
  },
14453
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14636
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14454
14637
  if (F2.isQuery(ast)) {
14455
14638
  SUBRULE(query, ast);
14456
14639
  } else {
@@ -14462,13 +14645,15 @@ var queryOrUpdate = {
14462
14645
  // ../../packages/rules-sparql-1-1/lib/MinimalSparqlParser.js
14463
14646
  function completeParseContext(context) {
14464
14647
  return {
14465
- factory: context.factory ?? new Factory(),
14648
+ astFactory: context.astFactory ?? new AstFactory(),
14466
14649
  baseIRI: context.baseIRI,
14467
14650
  prefixes: { ...context.prefixes },
14468
14651
  origSource: context.origSource ?? "",
14469
14652
  offset: context.offset,
14470
14653
  parseMode: context.parseMode ? new Set(context.parseMode) : /* @__PURE__ */ new Set(["canParseVars", "canCreateBlankNodes"]),
14471
- skipValidation: context.skipValidation ?? false
14654
+ skipValidation: context.skipValidation ?? false,
14655
+ [traqulaIndentation]: context[traqulaIndentation] ?? 0,
14656
+ indentInc: context.indentInc ?? 2
14472
14657
  };
14473
14658
  }
14474
14659
  var MinimalSparqlParser = class {
@@ -14476,7 +14661,7 @@ var MinimalSparqlParser = class {
14476
14661
  constructor(parser) {
14477
14662
  this.parser = parser;
14478
14663
  }
14479
- F = new Factory();
14664
+ F = new AstFactory();
14480
14665
  parse(query2, context = {}) {
14481
14666
  return this.parser.queryOrUpdate(query2, completeParseContext(context));
14482
14667
  }