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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs CHANGED
@@ -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,14 +9749,6 @@ ${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 {
9753
9754
  safeObjectVisit(value, mapper) {
@@ -11254,8 +11255,8 @@ function UpdateOperationFactoryMixin(Base) {
11254
11255
  };
11255
11256
  }
11256
11257
 
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() {
11258
+ // ../../packages/rules-sparql-1-1/lib/astFactory.js
11259
+ 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
11260
  alwaysSparql11(obj) {
11260
11261
  return true;
11261
11262
  }
@@ -11374,7 +11375,7 @@ var TransformerSparql11 = class extends TransformerSubType {
11374
11375
  };
11375
11376
 
11376
11377
  // ../../packages/rules-sparql-1-1/lib/validation/validators.js
11377
- var F = new Factory();
11378
+ var F = new AstFactory();
11378
11379
  var transformer = new TransformerSparql11();
11379
11380
  function getAggregatesOfExpression(expression2) {
11380
11381
  if (F.isExpressionAggregate(expression2)) {
@@ -11594,22 +11595,22 @@ var rdfLiteral = {
11594
11595
  return OPTION(() => OR([
11595
11596
  { ALT: () => {
11596
11597
  const lang2 = CONSUME(terminals_exports.langTag);
11597
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11598
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11598
11599
  } },
11599
11600
  { ALT: () => {
11600
11601
  CONSUME(symbols_exports.hathat);
11601
11602
  const iriVal = SUBRULE1(iri2);
11602
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
11603
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
11603
11604
  } }
11604
11605
  ])) ?? value;
11605
11606
  },
11606
- gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
11607
- factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11607
+ gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
11608
+ astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11608
11609
  if (ast.langOrIri) {
11609
11610
  if (typeof ast.langOrIri === "string") {
11610
- factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11611
+ astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11611
11612
  } else {
11612
- factory.printFilter(ast, () => PRINT("^^"));
11613
+ astFactory.printFilter(ast, () => PRINT("^^"));
11613
11614
  SUBRULE(iri2, ast.langOrIri);
11614
11615
  }
11615
11616
  }
@@ -11631,7 +11632,7 @@ var numericLiteralUnsigned = {
11631
11632
  { ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
11632
11633
  { ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
11633
11634
  ]);
11634
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11635
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11635
11636
  }
11636
11637
  };
11637
11638
  var numericLiteralPositive = {
@@ -11642,7 +11643,7 @@ var numericLiteralPositive = {
11642
11643
  { ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
11643
11644
  { ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
11644
11645
  ]);
11645
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11646
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11646
11647
  }
11647
11648
  };
11648
11649
  var numericLiteralNegative = {
@@ -11653,7 +11654,7 @@ var numericLiteralNegative = {
11653
11654
  { ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
11654
11655
  { ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
11655
11656
  ]);
11656
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11657
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11657
11658
  }
11658
11659
  };
11659
11660
  var booleanLiteral = {
@@ -11663,7 +11664,7 @@ var booleanLiteral = {
11663
11664
  { ALT: () => CONSUME(true_) },
11664
11665
  { ALT: () => CONSUME(false_) }
11665
11666
  ]);
11666
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11667
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11667
11668
  }
11668
11669
  };
11669
11670
  var string = {
@@ -11688,7 +11689,7 @@ var string = {
11688
11689
  } }
11689
11690
  ]);
11690
11691
  return ACTION(() => {
11691
- const F2 = C.factory;
11692
+ const F2 = C.astFactory;
11692
11693
  const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
11693
11694
  switch (char) {
11694
11695
  case "t":
@@ -11715,16 +11716,16 @@ var iri2 = {
11715
11716
  { ALT: () => SUBRULE(iriFull) },
11716
11717
  { ALT: () => SUBRULE(prefixedName) }
11717
11718
  ]),
11718
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11719
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11719
11720
  };
11720
11721
  var iriFull = {
11721
11722
  name: "iriFull",
11722
11723
  impl: ({ ACTION, CONSUME }) => (C) => {
11723
11724
  const iriToken = CONSUME(terminals_exports.iriRef);
11724
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11725
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11725
11726
  },
11726
- gImpl: ({ PRINT }) => (ast, { factory }) => {
11727
- factory.printFilter(ast, () => PRINT("<", ast.value, ">"));
11727
+ gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
11728
+ F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
11728
11729
  }
11729
11730
  };
11730
11731
  var prefixedName = {
@@ -11734,16 +11735,16 @@ var prefixedName = {
11734
11735
  const longName = CONSUME(terminals_exports.pNameLn);
11735
11736
  return ACTION(() => {
11736
11737
  const [prefix, localName] = longName.image.split(":");
11737
- return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
11738
+ return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
11738
11739
  });
11739
11740
  } },
11740
11741
  { ALT: () => {
11741
11742
  const shortName = CONSUME(terminals_exports.pNameNs);
11742
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11743
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11743
11744
  } }
11744
11745
  ]),
11745
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11746
- factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11746
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11747
+ F2.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11747
11748
  }
11748
11749
  };
11749
11750
  var canCreateBlankNodes = Symbol("canCreateBlankNodes");
@@ -11753,11 +11754,11 @@ var blankNode = {
11753
11754
  const result = OR([
11754
11755
  { ALT: () => {
11755
11756
  const labelToken = CONSUME(terminals_exports.blankNodeLabel);
11756
- return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
11757
+ return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
11757
11758
  } },
11758
11759
  { ALT: () => {
11759
11760
  const anonToken = CONSUME(terminals_exports.anon);
11760
- return ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocation(anonToken)));
11761
+ return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
11761
11762
  } }
11762
11763
  ]);
11763
11764
  ACTION(() => {
@@ -11767,15 +11768,15 @@ var blankNode = {
11767
11768
  });
11768
11769
  return result;
11769
11770
  },
11770
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11771
- factory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11771
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
11772
+ astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11772
11773
  }
11773
11774
  };
11774
11775
  var verbA = {
11775
11776
  name: "VerbA",
11776
11777
  impl: ({ ACTION, CONSUME }) => (C) => {
11777
11778
  const token = CONSUME(a);
11778
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11779
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11779
11780
  }
11780
11781
  };
11781
11782
 
@@ -11792,7 +11793,7 @@ var prologue = {
11792
11793
  ]));
11793
11794
  return result;
11794
11795
  },
11795
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11796
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11796
11797
  for (const context of ast) {
11797
11798
  if (F2.isContextDefinitionBase(context)) {
11798
11799
  SUBRULE(baseDecl2, context);
@@ -11807,11 +11808,12 @@ var baseDecl2 = {
11807
11808
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11808
11809
  const base = CONSUME(baseDecl);
11809
11810
  const val = SUBRULE(iriFull);
11810
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11811
+ return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
11811
11812
  },
11812
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11813
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11813
11814
  F2.printFilter(ast, () => PRINT_WORD("BASE"));
11814
11815
  SUBRULE(iri2, ast.value);
11816
+ F2.printFilter(ast, () => PRINT_WORD("\n"));
11815
11817
  }
11816
11818
  };
11817
11819
  var prefixDecl2 = {
@@ -11820,13 +11822,14 @@ var prefixDecl2 = {
11820
11822
  const prefix = CONSUME(prefixDecl);
11821
11823
  const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11822
11824
  const value = SUBRULE(iriFull);
11823
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11825
+ return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
11824
11826
  },
11825
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11827
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F2 }) => {
11826
11828
  F2.printFilter(ast, () => {
11827
11829
  PRINT_WORDS("PREFIX", `${ast.key}:`);
11828
11830
  });
11829
11831
  SUBRULE(iri2, ast.value);
11832
+ F2.printFilter(ast, () => PRINT_WORDS("\n"));
11830
11833
  }
11831
11834
  };
11832
11835
  var verb = {
@@ -11842,7 +11845,7 @@ var varOrTerm = {
11842
11845
  { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11843
11846
  { ALT: () => SUBRULE(graphTerm) }
11844
11847
  ]),
11845
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11848
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11846
11849
  if (F2.isTermVariable(ast)) {
11847
11850
  return SUBRULE(var_, ast);
11848
11851
  }
@@ -11863,9 +11866,9 @@ var var_ = {
11863
11866
  { ALT: () => CONSUME(terminals_exports.var1) },
11864
11867
  { ALT: () => CONSUME(terminals_exports.var2) }
11865
11868
  ]);
11866
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11869
+ return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
11867
11870
  },
11868
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11871
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11869
11872
  F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11870
11873
  }
11871
11874
  };
@@ -11879,10 +11882,10 @@ var graphTerm = {
11879
11882
  { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
11880
11883
  { ALT: () => {
11881
11884
  const tokenNil = CONSUME(terminals_exports.nil);
11882
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));
11885
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
11883
11886
  } }
11884
11887
  ]),
11885
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11888
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11886
11889
  if (F2.isTermNamed(ast)) {
11887
11890
  SUBRULE(iri2, ast);
11888
11891
  } else if (F2.isTermLiteral(ast)) {
@@ -11902,14 +11905,14 @@ function datasetClauseUsing(name, token) {
11902
11905
  return OR([
11903
11906
  { ALT: () => {
11904
11907
  const iri3 = SUBRULE(defaultGraphClause);
11905
- return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11908
+ return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
11906
11909
  } },
11907
11910
  { ALT: () => {
11908
11911
  const namedClause = SUBRULE(namedGraphClause);
11909
- return ACTION(() => C.factory.wrap({
11912
+ return ACTION(() => C.astFactory.wrap({
11910
11913
  clauseType: "named",
11911
11914
  value: namedClause.val
11912
- }, C.factory.sourceLocation(start, namedClause)));
11915
+ }, C.astFactory.sourceLocation(start, namedClause)));
11913
11916
  } }
11914
11917
  ]);
11915
11918
  }
@@ -11930,9 +11933,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11930
11933
  const clause = SUBRULE(subRule);
11931
11934
  clauses.push(clause);
11932
11935
  });
11933
- return ACTION(() => C.factory.datasetClauses(clauses.map((clause) => clause.val), C.factory.sourceLocation(...clauses)));
11936
+ return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
11934
11937
  },
11935
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11938
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11936
11939
  for (const clause of ast.clauses) {
11937
11940
  F2.printFilter(ast, () => PRINT_WORD(fromUsing));
11938
11941
  if (clause.clauseType === "named") {
@@ -11950,7 +11953,7 @@ var namedGraphClause = {
11950
11953
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11951
11954
  const named2 = CONSUME(graph_exports.named);
11952
11955
  const iri3 = SUBRULE(sourceSelector);
11953
- return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11956
+ return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
11954
11957
  }
11955
11958
  };
11956
11959
  var sourceSelector = {
@@ -11967,7 +11970,7 @@ function funcExpr1(func) {
11967
11970
  CONSUME(symbols_exports.LParen);
11968
11971
  const arg = SUBRULE(expression);
11969
11972
  const close = CONSUME(symbols_exports.RParen);
11970
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11973
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11971
11974
  }
11972
11975
  };
11973
11976
  }
@@ -11981,7 +11984,7 @@ function funcExpr2(func) {
11981
11984
  CONSUME(symbols_exports.comma);
11982
11985
  const arg2 = SUBRULE2(expression);
11983
11986
  const close = CONSUME(symbols_exports.RParen);
11984
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
11987
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
11985
11988
  }
11986
11989
  };
11987
11990
  }
@@ -11997,7 +12000,7 @@ function funcExpr3(func) {
11997
12000
  CONSUME2(symbols_exports.comma);
11998
12001
  const arg3 = SUBRULE3(expression);
11999
12002
  const close = CONSUME(symbols_exports.RParen);
12000
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12003
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
12001
12004
  }
12002
12005
  };
12003
12006
  }
@@ -12009,7 +12012,7 @@ function funcVar1(func) {
12009
12012
  CONSUME(symbols_exports.LParen);
12010
12013
  const arg = SUBRULE(var_);
12011
12014
  const close = CONSUME(symbols_exports.RParen);
12012
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12015
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12013
12016
  }
12014
12017
  };
12015
12018
  }
@@ -12023,11 +12026,11 @@ function funcExprOrNil1(func) {
12023
12026
  CONSUME(symbols_exports.LParen);
12024
12027
  const arg = SUBRULE(expression);
12025
12028
  const close = CONSUME(symbols_exports.RParen);
12026
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12029
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12027
12030
  } },
12028
12031
  { ALT: () => {
12029
12032
  const nil2 = CONSUME(terminals_exports.nil);
12030
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12033
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12031
12034
  } }
12032
12035
  ]);
12033
12036
  }
@@ -12039,7 +12042,7 @@ function funcNil1(func) {
12039
12042
  impl: ({ ACTION, CONSUME }) => (C) => {
12040
12043
  const operator = CONSUME(func);
12041
12044
  const nil2 = CONSUME(terminals_exports.nil);
12042
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12045
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12043
12046
  }
12044
12047
  };
12045
12048
  }
@@ -12049,7 +12052,7 @@ function funcExprList1(func) {
12049
12052
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12050
12053
  const operator = CONSUME(func);
12051
12054
  const args = SUBRULE(expressionList);
12052
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12055
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
12053
12056
  }
12054
12057
  };
12055
12058
  }
@@ -12067,7 +12070,7 @@ function funcExpr2or3(func) {
12067
12070
  return SUBRULE3(expression);
12068
12071
  });
12069
12072
  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)));
12073
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
12071
12074
  }
12072
12075
  };
12073
12076
  }
@@ -12087,7 +12090,7 @@ function funcExpr3or4(func) {
12087
12090
  return SUBRULE4(expression);
12088
12091
  });
12089
12092
  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)));
12093
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
12091
12094
  }
12092
12095
  };
12093
12096
  }
@@ -12097,7 +12100,7 @@ function funcGroupGraphPattern(func) {
12097
12100
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12098
12101
  const operator = CONSUME(func);
12099
12102
  const group = SUBRULE(groupGraphPattern);
12100
- return ACTION(() => C.factory.expressionPatternOperation(operator.image, group, C.factory.sourceLocation(operator, group)));
12103
+ return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
12101
12104
  }
12102
12105
  };
12103
12106
  }
@@ -12110,7 +12113,7 @@ function baseAggregateFunc(func) {
12110
12113
  const distinct2 = OPTION(() => CONSUME(distinct));
12111
12114
  const expr1 = SUBRULE(expression);
12112
12115
  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)));
12116
+ return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
12114
12117
  }
12115
12118
  };
12116
12119
  }
@@ -12250,17 +12253,17 @@ var aggregateCount = {
12250
12253
  const expressionVal = OR([
12251
12254
  { ALT: () => {
12252
12255
  const starToken = CONSUME(symbols_exports.star);
12253
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12256
+ return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
12254
12257
  } },
12255
12258
  { ALT: () => SUBRULE(expression) }
12256
12259
  ]);
12257
12260
  const closeToken = CONSUME(symbols_exports.RParen);
12258
12261
  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));
12262
+ const F2 = C.astFactory;
12263
+ if (C.astFactory.isWildcard(expressionVal)) {
12264
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12262
12265
  }
12263
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
12266
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12264
12267
  });
12265
12268
  }
12266
12269
  };
@@ -12284,7 +12287,7 @@ var aggregateGroup_concat = {
12284
12287
  });
12285
12288
  const closeToken = CONSUME(symbols_exports.RParen);
12286
12289
  return ACTION(() => {
12287
- const F2 = C.factory;
12290
+ const F2 = C.astFactory;
12288
12291
  return F2.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F2.sourceLocation(operatorToken, closeToken));
12289
12292
  });
12290
12293
  }
@@ -12314,7 +12317,7 @@ var aggregate = {
12314
12317
  });
12315
12318
  return result;
12316
12319
  },
12317
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12320
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12318
12321
  F2.printFilter(ast, () => {
12319
12322
  PRINT_WORD(ast.aggregation.toUpperCase(), "(");
12320
12323
  if (ast.distinct) {
@@ -12341,7 +12344,7 @@ var path = {
12341
12344
  };
12342
12345
  var pathGenerator = {
12343
12346
  name: "path",
12344
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
12347
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F2 }, braces = true) => {
12345
12348
  if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
12346
12349
  SUBRULE(iri2, ast);
12347
12350
  } else {
@@ -12390,7 +12393,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
12390
12393
  tailEnd = SUBRULE2(subRule);
12391
12394
  tail.push(tailEnd);
12392
12395
  });
12393
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12396
+ return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
12394
12397
  }
12395
12398
  };
12396
12399
  }
@@ -12401,7 +12404,7 @@ var pathEltOrInverse = {
12401
12404
  { ALT: () => {
12402
12405
  const hat2 = CONSUME(symbols_exports.hat);
12403
12406
  const item = SUBRULE2(pathElt);
12404
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12407
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12405
12408
  } }
12406
12409
  ])
12407
12410
  };
@@ -12412,7 +12415,7 @@ var pathElt = {
12412
12415
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12413
12416
  const item = SUBRULE(pathPrimary);
12414
12417
  const modification = OPTION(() => SUBRULE(pathMod));
12415
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12418
+ return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
12416
12419
  }
12417
12420
  };
12418
12421
  var pathMod = {
@@ -12444,7 +12447,7 @@ var pathNegatedPropertySet = {
12444
12447
  return OR([
12445
12448
  { ALT: () => {
12446
12449
  const noAlternative = SUBRULE1(pathOneInPropertySet);
12447
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12450
+ return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
12448
12451
  } },
12449
12452
  { ALT: () => {
12450
12453
  const open = CONSUME(symbols_exports.LParen);
@@ -12457,7 +12460,7 @@ var pathNegatedPropertySet = {
12457
12460
  });
12458
12461
  const close = CONSUME(symbols_exports.RParen);
12459
12462
  return ACTION(() => {
12460
- const F2 = C.factory;
12463
+ const F2 = C.astFactory;
12461
12464
  if (tail.length === 0) {
12462
12465
  return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12463
12466
  }
@@ -12478,7 +12481,7 @@ var pathOneInPropertySet = {
12478
12481
  { ALT: () => SUBRULE2(iri2) },
12479
12482
  { ALT: () => SUBRULE2(verbA) }
12480
12483
  ]);
12481
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12484
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12482
12485
  } }
12483
12486
  ])
12484
12487
  };
@@ -12503,33 +12506,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
12503
12506
  });
12504
12507
  }
12505
12508
  });
12506
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12509
+ return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
12507
12510
  };
12508
12511
  }
12509
12512
  var triplesBlock = {
12510
12513
  name: "triplesBlock",
12511
12514
  impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12512
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12515
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
12513
12516
  for (const [index, triple] of ast.triples.entries()) {
12514
12517
  HANDLE_LOC(triple, () => {
12515
12518
  const nextTriple = ast.triples.at(index);
12516
12519
  if (F2.isTripleCollection(triple)) {
12517
12520
  SUBRULE(graphNodePath, triple);
12518
- F2.printFilter(triple, () => PRINT_WORD("."));
12521
+ F2.printFilter(triple, () => PRINT_WORD(".\n"));
12519
12522
  } else {
12520
12523
  SUBRULE(graphNodePath, triple.subject);
12524
+ F2.printFilter(triple, () => PRINT_WORD(""));
12521
12525
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12522
12526
  SUBRULE(varOrTerm, triple.predicate);
12523
12527
  } else {
12524
12528
  SUBRULE(pathGenerator, triple.predicate, void 0);
12525
12529
  }
12530
+ F2.printFilter(triple, () => PRINT_WORD(""));
12526
12531
  SUBRULE(graphNodePath, triple.object);
12527
12532
  if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12528
- F2.printFilter(ast, () => PRINT_WORD("."));
12533
+ F2.printFilter(ast, () => PRINT_WORD(".\n"));
12529
12534
  } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12530
12535
  F2.printFilter(ast, () => PRINT_WORD(","));
12531
12536
  } else {
12532
- F2.printFilter(ast, () => PRINT_WORD(";"));
12537
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12533
12538
  }
12534
12539
  }
12535
12540
  });
@@ -12542,24 +12547,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
12542
12547
  impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12543
12548
  { ALT: () => {
12544
12549
  const subject = SUBRULE(varOrTerm);
12545
- const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.factory.dematerialized(subject)));
12550
+ const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
12546
12551
  return ACTION(() => {
12547
12552
  if (res.length > 0) {
12548
12553
  res[0].subject = subject;
12549
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12554
+ res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
12550
12555
  }
12551
12556
  return res;
12552
12557
  });
12553
12558
  } },
12554
12559
  { ALT: () => {
12555
12560
  const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12556
- const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.factory.graphNodeIdentifier(subjectNode)));
12561
+ const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
12557
12562
  return ACTION(() => {
12558
12563
  if (restNode.length === 0) {
12559
12564
  return [subjectNode];
12560
12565
  }
12561
12566
  restNode[0].subject = subjectNode;
12562
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12567
+ restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
12563
12568
  return restNode;
12564
12569
  });
12565
12570
  } }
@@ -12643,7 +12648,7 @@ function objectImpl(name, allowPaths) {
12643
12648
  name,
12644
12649
  impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12645
12650
  const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12646
- return ACTION(() => C.factory.triple(subject, predicate, node));
12651
+ return ACTION(() => C.astFactory.triple(subject, predicate, node));
12647
12652
  }
12648
12653
  };
12649
12654
  }
@@ -12660,7 +12665,7 @@ function collectionImpl(name, allowPaths) {
12660
12665
  });
12661
12666
  const endToken = CONSUME(symbols_exports.RParen);
12662
12667
  return ACTION(() => {
12663
- const F2 = C.factory;
12668
+ const F2 = C.astFactory;
12664
12669
  const triples = [];
12665
12670
  const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
12666
12671
  const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
@@ -12684,7 +12689,7 @@ function collectionImpl(name, allowPaths) {
12684
12689
  return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12685
12690
  });
12686
12691
  },
12687
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12692
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12688
12693
  F2.printFilter(ast, () => PRINT_WORD("("));
12689
12694
  for (const [idx, triple] of ast.triples.entries()) {
12690
12695
  if (idx % 2 === 0) {
@@ -12715,13 +12720,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
12715
12720
  name,
12716
12721
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12717
12722
  const startToken = CONSUME(symbols_exports.LSquare);
12718
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12723
+ const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
12719
12724
  const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12720
12725
  const endToken = CONSUME(symbols_exports.RSquare);
12721
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.factory.sourceLocation(startToken, endToken)));
12726
+ return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
12722
12727
  },
12723
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12724
- F2.printFilter(ast, () => PRINT("["));
12728
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
12729
+ const { astFactory: F2, indentInc } = c;
12730
+ F2.printFilter(ast, () => {
12731
+ c[traqulaIndentation] += indentInc;
12732
+ PRINT("[\n");
12733
+ });
12725
12734
  for (const triple of ast.triples) {
12726
12735
  HANDLE_LOC(triple, () => {
12727
12736
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
@@ -12729,11 +12738,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
12729
12738
  } else {
12730
12739
  SUBRULE(pathGenerator, triple.predicate, void 0);
12731
12740
  }
12741
+ F2.printFilter(triple, () => PRINT_WORD(""));
12732
12742
  SUBRULE(graphNodePath, triple.object);
12733
- F2.printFilter(ast, () => PRINT_WORD(";"));
12743
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12734
12744
  });
12735
12745
  }
12736
- F2.printFilter(ast, () => PRINT("]"));
12746
+ F2.printFilter(ast, () => {
12747
+ c[traqulaIndentation] -= indentInc;
12748
+ PRINT_ON_EMPTY("]");
12749
+ });
12737
12750
  }
12738
12751
  };
12739
12752
  }
@@ -12750,7 +12763,7 @@ function graphNodeImpl(name, allowPaths) {
12750
12763
  ALT: () => SUBRULE(triplesNodeRule)
12751
12764
  }
12752
12765
  ]),
12753
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12766
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12754
12767
  if (F2.isTerm(ast)) {
12755
12768
  SUBRULE(varOrTerm, ast);
12756
12769
  } else {
@@ -12768,9 +12781,9 @@ var whereClause = {
12768
12781
  impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12769
12782
  const where2 = OPTION(() => CONSUME(where));
12770
12783
  const group = SUBRULE(groupGraphPattern);
12771
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12784
+ return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
12772
12785
  },
12773
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12786
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12774
12787
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12775
12788
  SUBRULE(groupGraphPattern, ast.val);
12776
12789
  }
@@ -12784,19 +12797,26 @@ var groupGraphPattern = {
12784
12797
  { ALT: () => SUBRULE(groupGraphPatternSub) }
12785
12798
  ]);
12786
12799
  const close = CONSUME(symbols_exports.RCurly);
12787
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12800
+ return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
12788
12801
  },
12789
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12790
- F2.printFilter(ast, () => PRINT_WORD("{"));
12802
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12803
+ const { astFactory: F2, indentInc } = C;
12804
+ F2.printFilter(ast, () => {
12805
+ C[traqulaIndentation] += indentInc;
12806
+ PRINT_WORD("{\n");
12807
+ });
12791
12808
  for (const pattern of ast.patterns) {
12792
12809
  SUBRULE(generatePattern, pattern);
12793
12810
  }
12794
- F2.printFilter(ast, () => PRINT_WORD("}"));
12811
+ F2.printFilter(ast, () => {
12812
+ C[traqulaIndentation] -= indentInc;
12813
+ PRINT_ON_EMPTY("}\n");
12814
+ });
12795
12815
  }
12796
12816
  };
12797
12817
  var generatePattern = {
12798
12818
  name: "generatePattern",
12799
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12819
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12800
12820
  if (ast.type === "query") {
12801
12821
  SUBRULE(query, F2.querySelect({
12802
12822
  context: [],
@@ -12885,9 +12905,9 @@ var optionalGraphPattern = {
12885
12905
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12886
12906
  const optional2 = CONSUME(optional);
12887
12907
  const group = SUBRULE(groupGraphPattern);
12888
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12908
+ return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
12889
12909
  },
12890
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12910
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12891
12911
  F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12892
12912
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12893
12913
  }
@@ -12898,9 +12918,9 @@ var graphGraphPattern = {
12898
12918
  const graph2 = CONSUME(graph_exports.graph);
12899
12919
  const name = SUBRULE(varOrIri);
12900
12920
  const group = SUBRULE(groupGraphPattern);
12901
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12921
+ return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
12902
12922
  },
12903
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12923
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12904
12924
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12905
12925
  SUBRULE(varOrTerm, ast.name);
12906
12926
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
@@ -12916,9 +12936,9 @@ var serviceGraphPattern = {
12916
12936
  }) ?? false;
12917
12937
  const name = SUBRULE1(varOrIri);
12918
12938
  const group = SUBRULE1(groupGraphPattern);
12919
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12939
+ return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
12920
12940
  },
12921
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12941
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12922
12942
  F2.printFilter(ast, () => {
12923
12943
  PRINT_WORD("SERVICE");
12924
12944
  if (ast.silent) {
@@ -12938,14 +12958,14 @@ var bind2 = {
12938
12958
  CONSUME(as);
12939
12959
  const variable = SUBRULE(var_);
12940
12960
  const close = CONSUME(symbols_exports.RParen);
12941
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12961
+ return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
12942
12962
  },
12943
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12963
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12944
12964
  F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12945
12965
  SUBRULE(expression, ast.expression);
12946
12966
  F2.printFilter(ast, () => PRINT_WORD("AS"));
12947
12967
  SUBRULE(var_, ast.variable);
12948
- F2.printFilter(ast, () => PRINT_WORD(")"));
12968
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12949
12969
  }
12950
12970
  };
12951
12971
  var inlineData = {
@@ -12953,16 +12973,19 @@ var inlineData = {
12953
12973
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12954
12974
  const values3 = CONSUME(values2);
12955
12975
  const datablock = SUBRULE(dataBlock);
12956
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12976
+ return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
12957
12977
  },
12958
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12978
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12979
+ const { astFactory: F2, indentInc } = C;
12959
12980
  const variables = Object.keys(ast.values.at(0) ?? {});
12960
12981
  F2.printFilter(ast, () => {
12982
+ PRINT_ON_EMPTY("");
12961
12983
  PRINT_WORD("VALUES", "(");
12962
12984
  for (const variable of variables) {
12963
12985
  PRINT_WORD(`?${variable}`);
12964
12986
  }
12965
- PRINT_WORD(")", "{");
12987
+ C[traqulaIndentation] += indentInc;
12988
+ PRINT_WORD(")", "{\n");
12966
12989
  });
12967
12990
  for (const mapping of ast.values) {
12968
12991
  F2.printFilter(ast, () => PRINT_WORD("("));
@@ -12973,9 +12996,12 @@ var inlineData = {
12973
12996
  SUBRULE(graphNodePath, mapping[variable]);
12974
12997
  }
12975
12998
  }
12976
- F2.printFilter(ast, () => PRINT_WORD(")"));
12999
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12977
13000
  }
12978
- F2.printFilter(ast, () => PRINT_WORD("}"));
13001
+ F2.printFilter(ast, () => {
13002
+ C[traqulaIndentation] -= indentInc;
13003
+ PRINT_ON_EMPTY("}\n");
13004
+ });
12979
13005
  }
12980
13006
  };
12981
13007
  var dataBlock = {
@@ -12998,7 +13024,7 @@ var inlineDataOneVar = {
12998
13024
  });
12999
13025
  });
13000
13026
  const close = CONSUME(symbols_exports.RCurly);
13001
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
13027
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
13002
13028
  }
13003
13029
  };
13004
13030
  var inlineDataFull = {
@@ -13015,7 +13041,7 @@ var inlineDataFull = {
13015
13041
  res.push({});
13016
13042
  });
13017
13043
  const close = CONSUME1(symbols_exports.RCurly);
13018
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
13044
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
13019
13045
  } },
13020
13046
  { ALT: () => {
13021
13047
  const open = CONSUME1(symbols_exports.LParen);
@@ -13047,7 +13073,7 @@ var inlineDataFull = {
13047
13073
  });
13048
13074
  });
13049
13075
  const close = CONSUME2(symbols_exports.RCurly);
13050
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
13076
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
13051
13077
  } }
13052
13078
  ]);
13053
13079
  }
@@ -13070,9 +13096,9 @@ var minusGraphPattern = {
13070
13096
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13071
13097
  const minus2 = CONSUME(minus);
13072
13098
  const group = SUBRULE(groupGraphPattern);
13073
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
13099
+ return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
13074
13100
  },
13075
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13101
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13076
13102
  F2.printFilter(ast, () => PRINT_WORD("MINUS"));
13077
13103
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
13078
13104
  }
@@ -13088,9 +13114,9 @@ var groupOrUnionGraphPattern = {
13088
13114
  const group2 = SUBRULE2(groupGraphPattern);
13089
13115
  groups.push(group2);
13090
13116
  });
13091
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(groups, C.factory.sourceLocation(group, groups.at(-1))));
13117
+ return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
13092
13118
  },
13093
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13119
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13094
13120
  if (F2.isPatternUnion(ast)) {
13095
13121
  const [head2, ...tail] = ast.patterns;
13096
13122
  SUBRULE(groupGraphPattern, head2);
@@ -13108,12 +13134,12 @@ var filter3 = {
13108
13134
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13109
13135
  const filterToken = CONSUME(filter2);
13110
13136
  const expression2 = SUBRULE(constraint);
13111
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
13137
+ return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
13112
13138
  },
13113
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13139
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13114
13140
  F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
13115
13141
  SUBRULE(expression, ast.expression);
13116
- F2.printFilter(ast, () => PRINT_WORD(")"));
13142
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
13117
13143
  }
13118
13144
  };
13119
13145
  var constraint = {
@@ -13129,7 +13155,7 @@ var functionCall = {
13129
13155
  impl: ({ ACTION, SUBRULE }) => (C) => {
13130
13156
  const func = SUBRULE(iri2);
13131
13157
  const args = SUBRULE(argList);
13132
- return ACTION(() => C.factory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.factory.sourceLocation(func, args)));
13158
+ return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
13133
13159
  }
13134
13160
  };
13135
13161
 
@@ -13139,7 +13165,7 @@ var argList = {
13139
13165
  impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
13140
13166
  { ALT: () => {
13141
13167
  const nil2 = CONSUME(terminals_exports.nil);
13142
- return ACTION(() => C.factory.wrap({ args: [], distinct: false }, C.factory.sourceLocation(nil2)));
13168
+ return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
13143
13169
  } },
13144
13170
  { ALT: () => {
13145
13171
  const args = [];
@@ -13156,10 +13182,10 @@ var argList = {
13156
13182
  }
13157
13183
  });
13158
13184
  const close = CONSUME(symbols_exports.RParen);
13159
- return ACTION(() => C.factory.wrap({ args, distinct: distinct2 }, C.factory.sourceLocation(open, close)));
13185
+ return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
13160
13186
  } }
13161
13187
  ]),
13162
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13188
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13163
13189
  F2.printFilter(ast, () => {
13164
13190
  PRINT_WORD("(");
13165
13191
  if (ast.val.distinct) {
@@ -13182,7 +13208,7 @@ var expressionList = {
13182
13208
  impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
13183
13209
  { ALT: () => {
13184
13210
  const nil2 = CONSUME(terminals_exports.nil);
13185
- return ACTION(() => C.factory.wrap([], C.factory.sourceLocation(nil2)));
13211
+ return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
13186
13212
  } },
13187
13213
  { ALT: () => {
13188
13214
  const open = CONSUME(symbols_exports.LParen);
@@ -13194,7 +13220,7 @@ var expressionList = {
13194
13220
  args.push(expr);
13195
13221
  });
13196
13222
  const close = CONSUME(symbols_exports.RParen);
13197
- return ACTION(() => C.factory.wrap(args, C.factory.sourceLocation(open, close)));
13223
+ return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
13198
13224
  } }
13199
13225
  ])
13200
13226
  };
@@ -13203,7 +13229,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13203
13229
  var expression = {
13204
13230
  name: "expression",
13205
13231
  impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13206
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13232
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13207
13233
  if (F2.isTerm(ast)) {
13208
13234
  SUBRULE(varOrTerm, ast);
13209
13235
  } else if (F2.isExpressionOperator(ast)) {
@@ -13268,7 +13294,7 @@ var conditionalOrExpression = {
13268
13294
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
13269
13295
  CONSUME(symbols_exports.logicOr);
13270
13296
  const args = SUBRULE2(conditionalAndExpression);
13271
- return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13297
+ return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
13272
13298
  }, ACTION, MANY)
13273
13299
  };
13274
13300
  var conditionalAndExpression = {
@@ -13276,7 +13302,7 @@ var conditionalAndExpression = {
13276
13302
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
13277
13303
  CONSUME(symbols_exports.logicAnd);
13278
13304
  const arg = SUBRULE2(valueLogical);
13279
- return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13305
+ return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
13280
13306
  }, ACTION, MANY)
13281
13307
  };
13282
13308
  var valueLogical = {
@@ -13298,7 +13324,7 @@ var relationalExpression = {
13298
13324
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13299
13325
  ]);
13300
13326
  const expr = SUBRULE2(numericExpression);
13301
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, expr], C.factory.sourceLocation(args1, expr)));
13327
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
13302
13328
  } },
13303
13329
  { ALT: () => {
13304
13330
  const operator = OR3([
@@ -13306,7 +13332,7 @@ var relationalExpression = {
13306
13332
  { ALT: () => CONSUME(notIn) }
13307
13333
  ]);
13308
13334
  const args = SUBRULE1(expressionList);
13309
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, ...args.val], C.factory.sourceLocation(args1, args)));
13335
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
13310
13336
  } }
13311
13337
  ]));
13312
13338
  return expression2 ?? args1;
@@ -13325,7 +13351,7 @@ var additiveExpression = {
13325
13351
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13326
13352
  ]);
13327
13353
  const arg = SUBRULE2(multiplicativeExpression);
13328
- return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13354
+ return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
13329
13355
  } },
13330
13356
  { ALT: () => {
13331
13357
  const { operator, startInt } = OR3([
@@ -13356,9 +13382,9 @@ var additiveExpression = {
13356
13382
  { ALT: () => CONSUME(symbols_exports.slash) }
13357
13383
  ]);
13358
13384
  const innerExpr = SUBRULE1(unaryExpression);
13359
- return ACTION(() => (leftInner) => C.factory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.factory.sourceLocation(leftInner, innerExpr)));
13385
+ return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
13360
13386
  }, ACTION, MANY2);
13361
- return (left) => C.factory.expressionOperation(operator, [left, multiplicativeExpr], C.factory.sourceLocation(left, multiplicativeExpr));
13387
+ return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
13362
13388
  } }
13363
13389
  ]), ACTION, MANY1)
13364
13390
  };
@@ -13375,7 +13401,7 @@ var multiplicativeExpression = {
13375
13401
  subType: "operation",
13376
13402
  operator: operator.image,
13377
13403
  args: [left, expr],
13378
- loc: C.factory.sourceLocation(left, expr)
13404
+ loc: C.astFactory.sourceLocation(left, expr)
13379
13405
  });
13380
13406
  }, ACTION, MANY)
13381
13407
  };
@@ -13390,7 +13416,7 @@ var unaryExpression = {
13390
13416
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13391
13417
  ]);
13392
13418
  const expr = SUBRULE2(primaryExpression);
13393
- return ACTION(() => C.factory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.factory.sourceLocation(operator, expr)));
13419
+ return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
13394
13420
  } }
13395
13421
  ])
13396
13422
  };
@@ -13413,7 +13439,7 @@ var brackettedExpression = {
13413
13439
  const expr = SUBRULE(expression);
13414
13440
  const close = CONSUME(symbols_exports.RParen);
13415
13441
  return ACTION(() => {
13416
- expr.loc = C.factory.sourceLocation(open, close);
13442
+ expr.loc = C.astFactory.sourceLocation(open, close);
13417
13443
  return expr;
13418
13444
  });
13419
13445
  }
@@ -13435,13 +13461,13 @@ var iriOrFunction = {
13435
13461
  function: iriVal,
13436
13462
  args: args.val.args,
13437
13463
  distinct: distinct2,
13438
- loc: C.factory.sourceLocation(iriVal, args)
13464
+ loc: C.astFactory.sourceLocation(iriVal, args)
13439
13465
  };
13440
13466
  });
13441
13467
  });
13442
13468
  return functionCall2 ?? iriVal;
13443
13469
  },
13444
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13470
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13445
13471
  if (F2.isTermNamed(ast)) {
13446
13472
  SUBRULE(iri2, ast);
13447
13473
  } else {
@@ -13494,11 +13520,14 @@ var groupClause = {
13494
13520
  type: "solutionModifier",
13495
13521
  subType: "group",
13496
13522
  groupings,
13497
- loc: C.factory.sourceLocation(start, groupings.at(-1))
13523
+ loc: C.astFactory.sourceLocation(start, groupings.at(-1))
13498
13524
  }));
13499
13525
  },
13500
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13501
- F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13526
+ gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13527
+ F2.printFilter(ast, () => {
13528
+ PRINT_ON_EMPTY("");
13529
+ PRINT_WORDS("GROUP", "BY");
13530
+ });
13502
13531
  for (const grouping of ast.groupings) {
13503
13532
  if (F2.isExpression(grouping)) {
13504
13533
  SUBRULE(expression, grouping);
@@ -13532,7 +13561,7 @@ var groupCondition = {
13532
13561
  return {
13533
13562
  variable,
13534
13563
  value: expressionValue,
13535
- loc: C.factory.sourceLocation(open, close)
13564
+ loc: C.astFactory.sourceLocation(open, close)
13536
13565
  };
13537
13566
  }
13538
13567
  return expressionValue;
@@ -13551,10 +13580,13 @@ var havingClause = {
13551
13580
  expressions.push(SUBRULE(havingCondition));
13552
13581
  });
13553
13582
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13554
- return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
13583
+ return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
13555
13584
  },
13556
- gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13557
- F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13585
+ gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13586
+ F2.printFilter(ast, () => {
13587
+ PRINT_ON_EMPTY("");
13588
+ PRINT_WORD("HAVING");
13589
+ });
13558
13590
  for (const having2 of ast.having) {
13559
13591
  SUBRULE(expression, having2);
13560
13592
  }
@@ -13575,10 +13607,13 @@ var orderClause = {
13575
13607
  orderings.push(SUBRULE1(orderCondition));
13576
13608
  });
13577
13609
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13578
- return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
13610
+ return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
13579
13611
  },
13580
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13581
- F2.printFilter(ast, () => PRINT_WORDS("ORDER", "BY"));
13612
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13613
+ F2.printFilter(ast, () => {
13614
+ PRINT_ON_EMPTY("");
13615
+ PRINT_WORDS("ORDER", "BY");
13616
+ });
13582
13617
  for (const ordering of ast.orderDefs) {
13583
13618
  if (ordering.descending) {
13584
13619
  F2.printFilter(ast, () => PRINT_WORDS("DESC"));
@@ -13609,7 +13644,7 @@ var orderCondition = {
13609
13644
  return ACTION(() => ({
13610
13645
  expression: expr,
13611
13646
  descending: descending[0],
13612
- loc: C.factory.sourceLocation(descending[1], expr)
13647
+ loc: C.astFactory.sourceLocation(descending[1], expr)
13613
13648
  }));
13614
13649
  } },
13615
13650
  { ALT: () => {
@@ -13628,16 +13663,17 @@ var limitOffsetClauses = {
13628
13663
  { ALT: () => {
13629
13664
  const limit2 = SUBRULE1(limitClause);
13630
13665
  const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13631
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.factory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13666
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13632
13667
  } },
13633
13668
  { ALT: () => {
13634
13669
  const offset2 = SUBRULE2(offsetClause);
13635
13670
  const limit2 = OPTION2(() => SUBRULE2(limitClause));
13636
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.factory.sourceLocation(offset2, limit2)));
13671
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
13637
13672
  } }
13638
13673
  ]),
13639
- gImpl: ({ PRINT_WORDS }) => (ast, { factory: F2 }) => {
13674
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13640
13675
  F2.printFilter(ast, () => {
13676
+ PRINT_ON_EMPTY("");
13641
13677
  if (ast.limit) {
13642
13678
  PRINT_WORDS("LIMIT", String(ast.limit));
13643
13679
  }
@@ -13653,7 +13689,7 @@ var limitClause = {
13653
13689
  const offset2 = CONSUME(limit);
13654
13690
  const value = CONSUME(terminals_exports.integer);
13655
13691
  const val = Number.parseInt(value.image, 10);
13656
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13692
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13657
13693
  }
13658
13694
  };
13659
13695
  var offsetClause = {
@@ -13662,7 +13698,7 @@ var offsetClause = {
13662
13698
  const offset2 = CONSUME(offset);
13663
13699
  const value = CONSUME(terminals_exports.integer);
13664
13700
  const val = Number.parseInt(value.image, 10);
13665
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13701
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13666
13702
  }
13667
13703
  };
13668
13704
 
@@ -13687,10 +13723,10 @@ var query = {
13687
13723
  ...subType,
13688
13724
  type: "query",
13689
13725
  ...values3 && { values: values3 },
13690
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
13726
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
13691
13727
  }));
13692
13728
  },
13693
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13729
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13694
13730
  SUBRULE(prologue, ast.context);
13695
13731
  if (F2.isQuerySelect(ast)) {
13696
13732
  SUBRULE(selectQuery, ast);
@@ -13720,13 +13756,13 @@ var selectQuery = {
13720
13756
  solutionModifiers: modifiers,
13721
13757
  datasets: from2,
13722
13758
  ...selectVal.val,
13723
- loc: C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13759
+ loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13724
13760
  };
13725
13761
  queryIsGood(ret);
13726
13762
  return ret;
13727
13763
  });
13728
13764
  },
13729
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13765
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13730
13766
  SUBRULE(selectClause, F2.wrap({
13731
13767
  variables: ast.variables,
13732
13768
  distinct: ast.distinct,
@@ -13744,14 +13780,14 @@ var subSelect = {
13744
13780
  const where2 = SUBRULE(whereClause);
13745
13781
  const modifiers = SUBRULE(solutionModifier);
13746
13782
  const values3 = SUBRULE(valuesClause);
13747
- return ACTION(() => C.factory.querySelect({
13783
+ return ACTION(() => C.astFactory.querySelect({
13748
13784
  where: where2.val,
13749
- datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
13785
+ datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
13750
13786
  context: [],
13751
13787
  solutionModifiers: modifiers,
13752
13788
  ...selectVal.val,
13753
13789
  ...values3 && { values: values3 }
13754
- }, C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13790
+ }, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13755
13791
  }
13756
13792
  };
13757
13793
  var selectClause = {
@@ -13782,7 +13818,7 @@ var selectClause = {
13782
13818
  const star2 = CONSUME(symbols_exports.star);
13783
13819
  return ACTION(() => {
13784
13820
  last2 = star2;
13785
- return { variables: [C.factory.wildcard(C.factory.sourceLocation(star2))], ...distRed };
13821
+ return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
13786
13822
  });
13787
13823
  } },
13788
13824
  { ALT: () => {
@@ -13812,7 +13848,7 @@ var selectClause = {
13812
13848
  throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
13813
13849
  }
13814
13850
  usedVars.push(variable);
13815
- variables.push(C.factory.patternBind(expr, variable, C.factory.sourceLocation(open, last2)));
13851
+ variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
13816
13852
  });
13817
13853
  } }
13818
13854
  ]));
@@ -13820,9 +13856,9 @@ var selectClause = {
13820
13856
  } }
13821
13857
  ]);
13822
13858
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13823
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(select2, last2)));
13859
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
13824
13860
  },
13825
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13861
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13826
13862
  F2.printFilter(ast, () => {
13827
13863
  PRINT_WORD("SELECT");
13828
13864
  if (ast.val.distinct) {
@@ -13862,7 +13898,7 @@ var constructQuery = {
13862
13898
  datasets: from2,
13863
13899
  where: where2.val,
13864
13900
  solutionModifiers: modifiers,
13865
- loc: C.factory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13901
+ loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13866
13902
  }));
13867
13903
  } },
13868
13904
  { ALT: () => {
@@ -13874,19 +13910,26 @@ var constructQuery = {
13874
13910
  subType: "construct",
13875
13911
  template: template.val,
13876
13912
  datasets: from2,
13877
- where: C.factory.patternGroup([template.val], C.factory.sourceLocation()),
13913
+ where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
13878
13914
  solutionModifiers: modifiers,
13879
- loc: C.factory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13915
+ loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13880
13916
  }));
13881
13917
  } }
13882
13918
  ]);
13883
13919
  },
13884
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13920
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13921
+ const { astFactory: F2, indentInc } = C;
13885
13922
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13886
13923
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13887
- F2.printFilter(ast, () => PRINT_WORD("{"));
13924
+ F2.printFilter(ast, () => {
13925
+ C[traqulaIndentation] += indentInc;
13926
+ PRINT_WORD("{\n");
13927
+ });
13888
13928
  SUBRULE(triplesBlock, ast.template);
13889
- F2.printFilter(ast, () => PRINT_WORD("}"));
13929
+ F2.printFilter(ast, () => {
13930
+ C[traqulaIndentation] -= indentInc;
13931
+ PRINT_ON_EMPTY("}\n");
13932
+ });
13890
13933
  }
13891
13934
  SUBRULE(datasetClauseStar, ast.datasets);
13892
13935
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
@@ -13911,7 +13954,7 @@ var describeQuery = {
13911
13954
  } },
13912
13955
  { ALT: () => {
13913
13956
  const star2 = CONSUME(symbols_exports.star);
13914
- return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
13957
+ return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
13915
13958
  } }
13916
13959
  ]);
13917
13960
  const from2 = SUBRULE1(datasetClauseStar);
@@ -13923,10 +13966,10 @@ var describeQuery = {
13923
13966
  datasets: from2,
13924
13967
  ...where2 && { where: where2.val },
13925
13968
  solutionModifiers: modifiers,
13926
- loc: C.factory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13969
+ loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13927
13970
  }));
13928
13971
  },
13929
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13972
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13930
13973
  F2.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
13931
13974
  if (F2.isWildcard(ast.variables[0])) {
13932
13975
  F2.printFilter(ast, () => PRINT_WORD("*"));
@@ -13954,10 +13997,10 @@ var askQuery = {
13954
13997
  datasets: from2,
13955
13998
  where: where2.val,
13956
13999
  solutionModifiers: modifiers,
13957
- loc: C.factory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
14000
+ loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13958
14001
  }));
13959
14002
  },
13960
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14003
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13961
14004
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
13962
14005
  SUBRULE(datasetClauseStar, ast.datasets);
13963
14006
  SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
@@ -13974,7 +14017,7 @@ var constructTemplate = {
13974
14017
  const open = CONSUME(symbols_exports.LCurly);
13975
14018
  const triples = OPTION(() => SUBRULE1(constructTriples));
13976
14019
  const close = CONSUME(symbols_exports.RCurly);
13977
- return ACTION(() => C.factory.wrap(triples ?? C.factory.patternBgp([], C.factory.sourceLocation()), C.factory.sourceLocation(open, close)));
14020
+ return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
13978
14021
  }
13979
14022
  };
13980
14023
  var constructTriples = {
@@ -14011,13 +14054,13 @@ var update = {
14011
14054
  const update2 = {
14012
14055
  type: "update",
14013
14056
  updates,
14014
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14057
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14015
14058
  };
14016
14059
  updateNoReuseBlankNodeLabels(update2);
14017
14060
  return update2;
14018
14061
  });
14019
14062
  },
14020
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14063
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14021
14064
  const [head2, ...tail] = ast.updates;
14022
14065
  if (head2) {
14023
14066
  SUBRULE(prologue, head2.context);
@@ -14097,9 +14140,9 @@ var load2 = {
14097
14140
  CONSUME(loadInto);
14098
14141
  return SUBRULE1(graphRef);
14099
14142
  });
14100
- return ACTION(() => C.factory.updateOperationLoad(C.factory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14143
+ return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14101
14144
  },
14102
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14145
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14103
14146
  F2.printFilter(ast, () => {
14104
14147
  PRINT_WORD("LOAD");
14105
14148
  if (ast.silent) {
@@ -14120,9 +14163,9 @@ function clearOrDrop(operation) {
14120
14163
  const opToken = CONSUME(operation);
14121
14164
  const silent2 = OPTION(() => CONSUME(silent));
14122
14165
  const destination = SUBRULE1(graphRefAll);
14123
- return ACTION(() => C.factory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.factory.sourceLocation(opToken, destination)));
14166
+ return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
14124
14167
  },
14125
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14168
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14126
14169
  F2.printFilter(ast, () => {
14127
14170
  PRINT_WORD(operation.name.toUpperCase());
14128
14171
  if (ast.silent) {
@@ -14141,9 +14184,9 @@ var create2 = {
14141
14184
  const createToken3 = CONSUME(create);
14142
14185
  const silent2 = OPTION(() => CONSUME(silent));
14143
14186
  const destination = SUBRULE1(graphRef);
14144
- return ACTION(() => C.factory.updateOperationCreate(destination, Boolean(silent2), C.factory.sourceLocation(createToken3, destination)));
14187
+ return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
14145
14188
  },
14146
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14189
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14147
14190
  F2.printFilter(ast, () => {
14148
14191
  PRINT_WORD("CREATE");
14149
14192
  if (ast.silent) {
@@ -14162,9 +14205,9 @@ function copyMoveAddOperation(operation) {
14162
14205
  const source = SUBRULE1(graphOrDefault);
14163
14206
  CONSUME(to);
14164
14207
  const destination = SUBRULE2(graphOrDefault);
14165
- return ACTION(() => C.factory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.factory.sourceLocation(op, destination)));
14208
+ return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
14166
14209
  },
14167
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14210
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14168
14211
  F2.printFilter(ast, () => {
14169
14212
  PRINT_WORD(operation.name.toUpperCase());
14170
14213
  if (ast.silent) {
@@ -14186,7 +14229,7 @@ var quadPattern = {
14186
14229
  const open = CONSUME(symbols_exports.LCurly);
14187
14230
  const val = SUBRULE1(quads);
14188
14231
  const close = CONSUME(symbols_exports.RCurly);
14189
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14232
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14190
14233
  }
14191
14234
  };
14192
14235
  var quadData = {
@@ -14197,7 +14240,7 @@ var quadData = {
14197
14240
  const val = SUBRULE1(quads);
14198
14241
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14199
14242
  const close = CONSUME(symbols_exports.RCurly);
14200
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14243
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14201
14244
  }
14202
14245
  };
14203
14246
  function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
@@ -14214,12 +14257,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14214
14257
  if (name !== "insertData") {
14215
14258
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14216
14259
  }
14217
- return ACTION(() => C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));
14260
+ return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
14218
14261
  },
14219
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14220
- F2.printFilter(ast, () => PRINT_WORD(subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE", "{"));
14262
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14263
+ const { astFactory: F2, indentInc } = C;
14264
+ F2.printFilter(ast, () => {
14265
+ C[traqulaIndentation] += indentInc;
14266
+ if (subType === "insertdata") {
14267
+ PRINT_WORD("INSERT DATA");
14268
+ } else if (subType === "deletedata") {
14269
+ PRINT_WORD("DELETE DATA");
14270
+ } else if (subType === "deletewhere") {
14271
+ PRINT_WORD("DELETE WHERE");
14272
+ }
14273
+ PRINT_WORD("{\n");
14274
+ });
14221
14275
  SUBRULE(quads, F2.wrap(ast.data, ast.loc));
14222
- F2.printFilter(ast, () => PRINT_WORD("}"));
14276
+ F2.printFilter(ast, () => {
14277
+ C[traqulaIndentation] -= indentInc;
14278
+ PRINT_ON_EMPTY("}\n");
14279
+ });
14223
14280
  }
14224
14281
  };
14225
14282
  }
@@ -14248,22 +14305,35 @@ var modify = {
14248
14305
  const using = SUBRULE1(usingClauseStar);
14249
14306
  CONSUME(where);
14250
14307
  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));
14308
+ return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
14252
14309
  },
14253
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14310
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14311
+ const { astFactory: F2, indentInc } = C;
14254
14312
  if (ast.graph) {
14255
14313
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
14256
14314
  SUBRULE(iri2, ast.graph);
14257
14315
  }
14258
14316
  if (ast.delete.length > 0) {
14259
- F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14317
+ F2.printFilter(ast, () => {
14318
+ C[traqulaIndentation] += indentInc;
14319
+ PRINT_WORD("DELETE", "{\n");
14320
+ });
14260
14321
  SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
14261
- F2.printFilter(ast, () => PRINT_WORD("}"));
14322
+ F2.printFilter(ast, () => {
14323
+ C[traqulaIndentation] -= indentInc;
14324
+ PRINT_ON_EMPTY("}\n");
14325
+ });
14262
14326
  }
14263
14327
  if (ast.insert.length > 0) {
14264
- F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14328
+ F2.printFilter(ast, () => {
14329
+ C[traqulaIndentation] += indentInc;
14330
+ PRINT_WORD("INSERT", "{\n");
14331
+ });
14265
14332
  SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
14266
- F2.printFilter(ast, () => PRINT_WORD("}"));
14333
+ F2.printFilter(ast, () => {
14334
+ C[traqulaIndentation] -= indentInc;
14335
+ PRINT_ON_EMPTY("}\n");
14336
+ });
14267
14337
  }
14268
14338
  SUBRULE(usingClauseStar, ast.from);
14269
14339
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
@@ -14277,7 +14347,7 @@ var deleteClause2 = {
14277
14347
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14278
14348
  const del = SUBRULE(quadPattern);
14279
14349
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14280
- return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14350
+ return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
14281
14351
  }
14282
14352
  };
14283
14353
  var insertClause2 = {
@@ -14285,7 +14355,7 @@ var insertClause2 = {
14285
14355
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14286
14356
  const insertToken = CONSUME(insertClause);
14287
14357
  const insert = SUBRULE(quadPattern);
14288
- return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14358
+ return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
14289
14359
  }
14290
14360
  };
14291
14361
  var graphOrDefault = {
@@ -14293,12 +14363,12 @@ var graphOrDefault = {
14293
14363
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
14294
14364
  { ALT: () => {
14295
14365
  const def = CONSUME(graph_exports.default_);
14296
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14366
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14297
14367
  } },
14298
14368
  { ALT: () => {
14299
14369
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14300
14370
  const name = SUBRULE1(iri2);
14301
- return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14371
+ return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
14302
14372
  } }
14303
14373
  ])
14304
14374
  };
@@ -14307,9 +14377,9 @@ var graphRef = {
14307
14377
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14308
14378
  const graph2 = CONSUME(graph_exports.graph);
14309
14379
  const val = SUBRULE(iri2);
14310
- return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14380
+ return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
14311
14381
  },
14312
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14382
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14313
14383
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14314
14384
  SUBRULE(iri2, ast.graph);
14315
14385
  }
@@ -14320,18 +14390,18 @@ var graphRefAll = {
14320
14390
  { ALT: () => SUBRULE(graphRef) },
14321
14391
  { ALT: () => {
14322
14392
  const def = CONSUME(graph_exports.default_);
14323
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14393
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14324
14394
  } },
14325
14395
  { ALT: () => {
14326
14396
  const named2 = CONSUME(graph_exports.named);
14327
- return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named2)));
14397
+ return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
14328
14398
  } },
14329
14399
  { ALT: () => {
14330
14400
  const graphAll2 = CONSUME(graph_exports.graphAll);
14331
- return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll2)));
14401
+ return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
14332
14402
  } }
14333
14403
  ]),
14334
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14404
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14335
14405
  if (F2.isGraphRefSpecific(ast)) {
14336
14406
  SUBRULE(graphRef, ast);
14337
14407
  } else if (F2.isGraphRefDefault(ast)) {
@@ -14368,9 +14438,9 @@ var quads = {
14368
14438
  ACTION(() => quads2.push(triples));
14369
14439
  });
14370
14440
  });
14371
- return ACTION(() => C.factory.wrap(quads2, C.factory.sourceLocation(quads2.at(0), last2)));
14441
+ return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
14372
14442
  },
14373
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14443
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14374
14444
  for (const quad of ast.val) {
14375
14445
  if (F2.isPattern(quad)) {
14376
14446
  SUBRULE(triplesBlock, quad);
@@ -14388,14 +14458,21 @@ var quadsNotTriples = {
14388
14458
  CONSUME(symbols_exports.LCurly);
14389
14459
  const triples = OPTION(() => SUBRULE1(triplesTemplate));
14390
14460
  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)));
14461
+ return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
14392
14462
  },
14393
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14463
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14464
+ const { astFactory: F2, indentInc } = C;
14394
14465
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14395
14466
  SUBRULE(varOrTerm, ast.graph);
14396
- F2.printFilter(ast, () => PRINT_WORD("{"));
14467
+ F2.printFilter(ast, () => {
14468
+ C[traqulaIndentation] += indentInc;
14469
+ PRINT_WORD("{\n");
14470
+ });
14397
14471
  SUBRULE(triplesBlock, ast.triples);
14398
- F2.printFilter(ast, () => PRINT_WORD("}"));
14472
+ F2.printFilter(ast, () => {
14473
+ C[traqulaIndentation] -= indentInc;
14474
+ PRINT_ON_EMPTY("}\n");
14475
+ });
14399
14476
  }
14400
14477
  };
14401
14478
 
@@ -14418,7 +14495,7 @@ var queryOrUpdate = {
14418
14495
  ...subType,
14419
14496
  type: "query",
14420
14497
  ...values3 && { values: values3 },
14421
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
14498
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
14422
14499
  }));
14423
14500
  } },
14424
14501
  { ALT: () => {
@@ -14442,7 +14519,7 @@ var queryOrUpdate = {
14442
14519
  const update2 = {
14443
14520
  type: "update",
14444
14521
  updates,
14445
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14522
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14446
14523
  };
14447
14524
  updateNoReuseBlankNodeLabels(update2);
14448
14525
  return update2;
@@ -14450,7 +14527,7 @@ var queryOrUpdate = {
14450
14527
  } }
14451
14528
  ]);
14452
14529
  },
14453
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14530
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14454
14531
  if (F2.isQuery(ast)) {
14455
14532
  SUBRULE(query, ast);
14456
14533
  } else {
@@ -14462,13 +14539,15 @@ var queryOrUpdate = {
14462
14539
  // ../../packages/rules-sparql-1-1/lib/MinimalSparqlParser.js
14463
14540
  function completeParseContext(context) {
14464
14541
  return {
14465
- factory: context.factory ?? new Factory(),
14542
+ astFactory: context.astFactory ?? new AstFactory(),
14466
14543
  baseIRI: context.baseIRI,
14467
14544
  prefixes: { ...context.prefixes },
14468
14545
  origSource: context.origSource ?? "",
14469
14546
  offset: context.offset,
14470
14547
  parseMode: context.parseMode ? new Set(context.parseMode) : /* @__PURE__ */ new Set(["canParseVars", "canCreateBlankNodes"]),
14471
- skipValidation: context.skipValidation ?? false
14548
+ skipValidation: context.skipValidation ?? false,
14549
+ [traqulaIndentation]: context[traqulaIndentation] ?? 0,
14550
+ indentInc: context.indentInc ?? 2
14472
14551
  };
14473
14552
  }
14474
14553
  var MinimalSparqlParser = class {
@@ -14476,7 +14555,7 @@ var MinimalSparqlParser = class {
14476
14555
  constructor(parser) {
14477
14556
  this.parser = parser;
14478
14557
  }
14479
- F = new Factory();
14558
+ F = new AstFactory();
14480
14559
  parse(query2, context = {}) {
14481
14560
  return this.parser.queryOrUpdate(query2, completeParseContext(context));
14482
14561
  }