@traqula/parser-sparql-1-1-adjust 0.0.14 → 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.
Files changed (2) hide show
  1. package/lib/index.cjs +310 -231
  2. package/package.json +7 -7
package/lib/index.cjs CHANGED
@@ -26,8 +26,8 @@ __export(index_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(index_exports);
28
28
 
29
- // ../../packages/core/lib/CoreFactory.js
30
- var CoreFactory = class {
29
+ // ../../packages/core/lib/AstCoreFactory.js
30
+ var AstCoreFactory = class {
31
31
  wrap(val, loc) {
32
32
  return { val, loc };
33
33
  }
@@ -9371,6 +9371,15 @@ var EmbeddedActionsParser = class extends Parser {
9371
9371
  }
9372
9372
  };
9373
9373
 
9374
+ // ../../packages/core/lib/utils.js
9375
+ function unCapitalize(str2) {
9376
+ return str2.charAt(0).toLowerCase() + str2.slice(1);
9377
+ }
9378
+ function createToken2(config) {
9379
+ return createToken(config);
9380
+ }
9381
+ var traqulaIndentation = "When you use this string, you expect traqula to handle indentation after every newline";
9382
+
9374
9383
  // ../../packages/core/lib/lexer-builder/LexerBuilder.js
9375
9384
  var LexerBuilder = class _LexerBuilder {
9376
9385
  tokens;
@@ -9733,14 +9742,6 @@ ${firstError.message}`);
9733
9742
  }
9734
9743
  };
9735
9744
 
9736
- // ../../packages/core/lib/utils.js
9737
- function unCapitalize(str2) {
9738
- return str2.charAt(0).toLowerCase() + str2.slice(1);
9739
- }
9740
- function createToken2(config) {
9741
- return createToken(config);
9742
- }
9743
-
9744
9745
  // ../../packages/core/lib/Transformers.js
9745
9746
  var TransformerType = class {
9746
9747
  safeObjectVisit(value, mapper) {
@@ -11247,8 +11248,8 @@ function UpdateOperationFactoryMixin(Base) {
11247
11248
  };
11248
11249
  }
11249
11250
 
11250
- // ../../packages/rules-sparql-1-1/lib/factory.js
11251
- 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() {
11251
+ // ../../packages/rules-sparql-1-1/lib/astFactory.js
11252
+ 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() {
11252
11253
  alwaysSparql11(obj) {
11253
11254
  return true;
11254
11255
  }
@@ -11367,7 +11368,7 @@ var TransformerSparql11 = class extends TransformerSubType {
11367
11368
  };
11368
11369
 
11369
11370
  // ../../packages/rules-sparql-1-1/lib/validation/validators.js
11370
- var F = new Factory();
11371
+ var F = new AstFactory();
11371
11372
  var transformer = new TransformerSparql11();
11372
11373
  function getAggregatesOfExpression(expression2) {
11373
11374
  if (F.isExpressionAggregate(expression2)) {
@@ -11587,22 +11588,22 @@ var rdfLiteral = {
11587
11588
  return OPTION(() => OR([
11588
11589
  { ALT: () => {
11589
11590
  const lang2 = CONSUME(terminals_exports.langTag);
11590
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11591
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11591
11592
  } },
11592
11593
  { ALT: () => {
11593
11594
  CONSUME(symbols_exports.hathat);
11594
11595
  const iriVal = SUBRULE1(iri2);
11595
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
11596
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
11596
11597
  } }
11597
11598
  ])) ?? value;
11598
11599
  },
11599
- gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
11600
- factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11600
+ gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
11601
+ astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11601
11602
  if (ast.langOrIri) {
11602
11603
  if (typeof ast.langOrIri === "string") {
11603
- factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11604
+ astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11604
11605
  } else {
11605
- factory.printFilter(ast, () => PRINT("^^"));
11606
+ astFactory.printFilter(ast, () => PRINT("^^"));
11606
11607
  SUBRULE(iri2, ast.langOrIri);
11607
11608
  }
11608
11609
  }
@@ -11624,7 +11625,7 @@ var numericLiteralUnsigned = {
11624
11625
  { ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
11625
11626
  { ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
11626
11627
  ]);
11627
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11628
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11628
11629
  }
11629
11630
  };
11630
11631
  var numericLiteralPositive = {
@@ -11635,7 +11636,7 @@ var numericLiteralPositive = {
11635
11636
  { ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
11636
11637
  { ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
11637
11638
  ]);
11638
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11639
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11639
11640
  }
11640
11641
  };
11641
11642
  var numericLiteralNegative = {
@@ -11646,7 +11647,7 @@ var numericLiteralNegative = {
11646
11647
  { ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
11647
11648
  { ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
11648
11649
  ]);
11649
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11650
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11650
11651
  }
11651
11652
  };
11652
11653
  var booleanLiteral = {
@@ -11656,7 +11657,7 @@ var booleanLiteral = {
11656
11657
  { ALT: () => CONSUME(true_) },
11657
11658
  { ALT: () => CONSUME(false_) }
11658
11659
  ]);
11659
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11660
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11660
11661
  }
11661
11662
  };
11662
11663
  var string = {
@@ -11681,7 +11682,7 @@ var string = {
11681
11682
  } }
11682
11683
  ]);
11683
11684
  return ACTION(() => {
11684
- const F2 = C.factory;
11685
+ const F2 = C.astFactory;
11685
11686
  const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
11686
11687
  switch (char) {
11687
11688
  case "t":
@@ -11708,16 +11709,16 @@ var iri2 = {
11708
11709
  { ALT: () => SUBRULE(iriFull) },
11709
11710
  { ALT: () => SUBRULE(prefixedName) }
11710
11711
  ]),
11711
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11712
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11712
11713
  };
11713
11714
  var iriFull = {
11714
11715
  name: "iriFull",
11715
11716
  impl: ({ ACTION, CONSUME }) => (C) => {
11716
11717
  const iriToken = CONSUME(terminals_exports.iriRef);
11717
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11718
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11718
11719
  },
11719
- gImpl: ({ PRINT }) => (ast, { factory }) => {
11720
- factory.printFilter(ast, () => PRINT("<", ast.value, ">"));
11720
+ gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
11721
+ F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
11721
11722
  }
11722
11723
  };
11723
11724
  var prefixedName = {
@@ -11727,16 +11728,16 @@ var prefixedName = {
11727
11728
  const longName = CONSUME(terminals_exports.pNameLn);
11728
11729
  return ACTION(() => {
11729
11730
  const [prefix, localName] = longName.image.split(":");
11730
- return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
11731
+ return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
11731
11732
  });
11732
11733
  } },
11733
11734
  { ALT: () => {
11734
11735
  const shortName = CONSUME(terminals_exports.pNameNs);
11735
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11736
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11736
11737
  } }
11737
11738
  ]),
11738
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11739
- factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11739
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11740
+ F2.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11740
11741
  }
11741
11742
  };
11742
11743
  var canCreateBlankNodes = Symbol("canCreateBlankNodes");
@@ -11746,11 +11747,11 @@ var blankNode = {
11746
11747
  const result = OR([
11747
11748
  { ALT: () => {
11748
11749
  const labelToken = CONSUME(terminals_exports.blankNodeLabel);
11749
- return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
11750
+ return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
11750
11751
  } },
11751
11752
  { ALT: () => {
11752
11753
  const anonToken = CONSUME(terminals_exports.anon);
11753
- return ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocation(anonToken)));
11754
+ return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
11754
11755
  } }
11755
11756
  ]);
11756
11757
  ACTION(() => {
@@ -11760,15 +11761,15 @@ var blankNode = {
11760
11761
  });
11761
11762
  return result;
11762
11763
  },
11763
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11764
- factory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11764
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
11765
+ astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11765
11766
  }
11766
11767
  };
11767
11768
  var verbA = {
11768
11769
  name: "VerbA",
11769
11770
  impl: ({ ACTION, CONSUME }) => (C) => {
11770
11771
  const token = CONSUME(a);
11771
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11772
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11772
11773
  }
11773
11774
  };
11774
11775
 
@@ -11785,7 +11786,7 @@ var prologue = {
11785
11786
  ]));
11786
11787
  return result;
11787
11788
  },
11788
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11789
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11789
11790
  for (const context of ast) {
11790
11791
  if (F2.isContextDefinitionBase(context)) {
11791
11792
  SUBRULE(baseDecl2, context);
@@ -11800,11 +11801,12 @@ var baseDecl2 = {
11800
11801
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11801
11802
  const base = CONSUME(baseDecl);
11802
11803
  const val = SUBRULE(iriFull);
11803
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11804
+ return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
11804
11805
  },
11805
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11806
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11806
11807
  F2.printFilter(ast, () => PRINT_WORD("BASE"));
11807
11808
  SUBRULE(iri2, ast.value);
11809
+ F2.printFilter(ast, () => PRINT_WORD("\n"));
11808
11810
  }
11809
11811
  };
11810
11812
  var prefixDecl2 = {
@@ -11813,13 +11815,14 @@ var prefixDecl2 = {
11813
11815
  const prefix = CONSUME(prefixDecl);
11814
11816
  const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11815
11817
  const value = SUBRULE(iriFull);
11816
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11818
+ return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
11817
11819
  },
11818
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11820
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F2 }) => {
11819
11821
  F2.printFilter(ast, () => {
11820
11822
  PRINT_WORDS("PREFIX", `${ast.key}:`);
11821
11823
  });
11822
11824
  SUBRULE(iri2, ast.value);
11825
+ F2.printFilter(ast, () => PRINT_WORDS("\n"));
11823
11826
  }
11824
11827
  };
11825
11828
  var verb = {
@@ -11835,7 +11838,7 @@ var varOrTerm = {
11835
11838
  { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11836
11839
  { ALT: () => SUBRULE(graphTerm) }
11837
11840
  ]),
11838
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11841
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11839
11842
  if (F2.isTermVariable(ast)) {
11840
11843
  return SUBRULE(var_, ast);
11841
11844
  }
@@ -11856,9 +11859,9 @@ var var_ = {
11856
11859
  { ALT: () => CONSUME(terminals_exports.var1) },
11857
11860
  { ALT: () => CONSUME(terminals_exports.var2) }
11858
11861
  ]);
11859
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11862
+ return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
11860
11863
  },
11861
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11864
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11862
11865
  F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11863
11866
  }
11864
11867
  };
@@ -11872,10 +11875,10 @@ var graphTerm = {
11872
11875
  { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
11873
11876
  { ALT: () => {
11874
11877
  const tokenNil = CONSUME(terminals_exports.nil);
11875
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));
11878
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
11876
11879
  } }
11877
11880
  ]),
11878
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11881
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11879
11882
  if (F2.isTermNamed(ast)) {
11880
11883
  SUBRULE(iri2, ast);
11881
11884
  } else if (F2.isTermLiteral(ast)) {
@@ -11895,14 +11898,14 @@ function datasetClauseUsing(name, token) {
11895
11898
  return OR([
11896
11899
  { ALT: () => {
11897
11900
  const iri3 = SUBRULE(defaultGraphClause);
11898
- return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11901
+ return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
11899
11902
  } },
11900
11903
  { ALT: () => {
11901
11904
  const namedClause = SUBRULE(namedGraphClause);
11902
- return ACTION(() => C.factory.wrap({
11905
+ return ACTION(() => C.astFactory.wrap({
11903
11906
  clauseType: "named",
11904
11907
  value: namedClause.val
11905
- }, C.factory.sourceLocation(start, namedClause)));
11908
+ }, C.astFactory.sourceLocation(start, namedClause)));
11906
11909
  } }
11907
11910
  ]);
11908
11911
  }
@@ -11923,9 +11926,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11923
11926
  const clause = SUBRULE(subRule);
11924
11927
  clauses.push(clause);
11925
11928
  });
11926
- return ACTION(() => C.factory.datasetClauses(clauses.map((clause) => clause.val), C.factory.sourceLocation(...clauses)));
11929
+ return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
11927
11930
  },
11928
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11931
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11929
11932
  for (const clause of ast.clauses) {
11930
11933
  F2.printFilter(ast, () => PRINT_WORD(fromUsing));
11931
11934
  if (clause.clauseType === "named") {
@@ -11943,7 +11946,7 @@ var namedGraphClause = {
11943
11946
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11944
11947
  const named2 = CONSUME(graph_exports.named);
11945
11948
  const iri3 = SUBRULE(sourceSelector);
11946
- return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11949
+ return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
11947
11950
  }
11948
11951
  };
11949
11952
  var sourceSelector = {
@@ -11960,7 +11963,7 @@ function funcExpr1(func) {
11960
11963
  CONSUME(symbols_exports.LParen);
11961
11964
  const arg = SUBRULE(expression);
11962
11965
  const close = CONSUME(symbols_exports.RParen);
11963
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11966
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11964
11967
  }
11965
11968
  };
11966
11969
  }
@@ -11974,7 +11977,7 @@ function funcExpr2(func) {
11974
11977
  CONSUME(symbols_exports.comma);
11975
11978
  const arg2 = SUBRULE2(expression);
11976
11979
  const close = CONSUME(symbols_exports.RParen);
11977
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
11980
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
11978
11981
  }
11979
11982
  };
11980
11983
  }
@@ -11990,7 +11993,7 @@ function funcExpr3(func) {
11990
11993
  CONSUME2(symbols_exports.comma);
11991
11994
  const arg3 = SUBRULE3(expression);
11992
11995
  const close = CONSUME(symbols_exports.RParen);
11993
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11996
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
11994
11997
  }
11995
11998
  };
11996
11999
  }
@@ -12002,7 +12005,7 @@ function funcVar1(func) {
12002
12005
  CONSUME(symbols_exports.LParen);
12003
12006
  const arg = SUBRULE(var_);
12004
12007
  const close = CONSUME(symbols_exports.RParen);
12005
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12008
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12006
12009
  }
12007
12010
  };
12008
12011
  }
@@ -12016,11 +12019,11 @@ function funcExprOrNil1(func) {
12016
12019
  CONSUME(symbols_exports.LParen);
12017
12020
  const arg = SUBRULE(expression);
12018
12021
  const close = CONSUME(symbols_exports.RParen);
12019
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12022
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
12020
12023
  } },
12021
12024
  { ALT: () => {
12022
12025
  const nil2 = CONSUME(terminals_exports.nil);
12023
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12026
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12024
12027
  } }
12025
12028
  ]);
12026
12029
  }
@@ -12032,7 +12035,7 @@ function funcNil1(func) {
12032
12035
  impl: ({ ACTION, CONSUME }) => (C) => {
12033
12036
  const operator = CONSUME(func);
12034
12037
  const nil2 = CONSUME(terminals_exports.nil);
12035
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12038
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
12036
12039
  }
12037
12040
  };
12038
12041
  }
@@ -12042,7 +12045,7 @@ function funcExprList1(func) {
12042
12045
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12043
12046
  const operator = CONSUME(func);
12044
12047
  const args = SUBRULE(expressionList);
12045
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12048
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
12046
12049
  }
12047
12050
  };
12048
12051
  }
@@ -12060,7 +12063,7 @@ function funcExpr2or3(func) {
12060
12063
  return SUBRULE3(expression);
12061
12064
  });
12062
12065
  const close = CONSUME(symbols_exports.RParen);
12063
- return ACTION(() => C.factory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.factory.sourceLocation(operator, close)));
12066
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
12064
12067
  }
12065
12068
  };
12066
12069
  }
@@ -12080,7 +12083,7 @@ function funcExpr3or4(func) {
12080
12083
  return SUBRULE4(expression);
12081
12084
  });
12082
12085
  const close = CONSUME(symbols_exports.RParen);
12083
- return ACTION(() => C.factory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12086
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
12084
12087
  }
12085
12088
  };
12086
12089
  }
@@ -12090,7 +12093,7 @@ function funcGroupGraphPattern(func) {
12090
12093
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12091
12094
  const operator = CONSUME(func);
12092
12095
  const group = SUBRULE(groupGraphPattern);
12093
- return ACTION(() => C.factory.expressionPatternOperation(operator.image, group, C.factory.sourceLocation(operator, group)));
12096
+ return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
12094
12097
  }
12095
12098
  };
12096
12099
  }
@@ -12103,7 +12106,7 @@ function baseAggregateFunc(func) {
12103
12106
  const distinct2 = OPTION(() => CONSUME(distinct));
12104
12107
  const expr1 = SUBRULE(expression);
12105
12108
  const close = CONSUME(symbols_exports.RParen);
12106
- return ACTION(() => C.factory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.factory.sourceLocation(operator, close)));
12109
+ return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
12107
12110
  }
12108
12111
  };
12109
12112
  }
@@ -12243,17 +12246,17 @@ var aggregateCount = {
12243
12246
  const expressionVal = OR([
12244
12247
  { ALT: () => {
12245
12248
  const starToken = CONSUME(symbols_exports.star);
12246
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12249
+ return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
12247
12250
  } },
12248
12251
  { ALT: () => SUBRULE(expression) }
12249
12252
  ]);
12250
12253
  const closeToken = CONSUME(symbols_exports.RParen);
12251
12254
  return ACTION(() => {
12252
- const F2 = C.factory;
12253
- if (C.factory.isWildcard(expressionVal)) {
12254
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
12255
+ const F2 = C.astFactory;
12256
+ if (C.astFactory.isWildcard(expressionVal)) {
12257
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12255
12258
  }
12256
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
12259
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
12257
12260
  });
12258
12261
  }
12259
12262
  };
@@ -12277,7 +12280,7 @@ var aggregateGroup_concat = {
12277
12280
  });
12278
12281
  const closeToken = CONSUME(symbols_exports.RParen);
12279
12282
  return ACTION(() => {
12280
- const F2 = C.factory;
12283
+ const F2 = C.astFactory;
12281
12284
  return F2.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F2.sourceLocation(operatorToken, closeToken));
12282
12285
  });
12283
12286
  }
@@ -12307,7 +12310,7 @@ var aggregate = {
12307
12310
  });
12308
12311
  return result;
12309
12312
  },
12310
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12313
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12311
12314
  F2.printFilter(ast, () => {
12312
12315
  PRINT_WORD(ast.aggregation.toUpperCase(), "(");
12313
12316
  if (ast.distinct) {
@@ -12334,7 +12337,7 @@ var path = {
12334
12337
  };
12335
12338
  var pathGenerator = {
12336
12339
  name: "path",
12337
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
12340
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F2 }, braces = true) => {
12338
12341
  if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
12339
12342
  SUBRULE(iri2, ast);
12340
12343
  } else {
@@ -12383,7 +12386,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
12383
12386
  tailEnd = SUBRULE2(subRule);
12384
12387
  tail.push(tailEnd);
12385
12388
  });
12386
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12389
+ return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
12387
12390
  }
12388
12391
  };
12389
12392
  }
@@ -12394,7 +12397,7 @@ var pathEltOrInverse = {
12394
12397
  { ALT: () => {
12395
12398
  const hat2 = CONSUME(symbols_exports.hat);
12396
12399
  const item = SUBRULE2(pathElt);
12397
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12400
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12398
12401
  } }
12399
12402
  ])
12400
12403
  };
@@ -12405,7 +12408,7 @@ var pathElt = {
12405
12408
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12406
12409
  const item = SUBRULE(pathPrimary);
12407
12410
  const modification = OPTION(() => SUBRULE(pathMod));
12408
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12411
+ return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
12409
12412
  }
12410
12413
  };
12411
12414
  var pathMod = {
@@ -12437,7 +12440,7 @@ var pathNegatedPropertySet = {
12437
12440
  return OR([
12438
12441
  { ALT: () => {
12439
12442
  const noAlternative = SUBRULE1(pathOneInPropertySet);
12440
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12443
+ return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
12441
12444
  } },
12442
12445
  { ALT: () => {
12443
12446
  const open = CONSUME(symbols_exports.LParen);
@@ -12450,7 +12453,7 @@ var pathNegatedPropertySet = {
12450
12453
  });
12451
12454
  const close = CONSUME(symbols_exports.RParen);
12452
12455
  return ACTION(() => {
12453
- const F2 = C.factory;
12456
+ const F2 = C.astFactory;
12454
12457
  if (tail.length === 0) {
12455
12458
  return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12456
12459
  }
@@ -12471,7 +12474,7 @@ var pathOneInPropertySet = {
12471
12474
  { ALT: () => SUBRULE2(iri2) },
12472
12475
  { ALT: () => SUBRULE2(verbA) }
12473
12476
  ]);
12474
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12477
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12475
12478
  } }
12476
12479
  ])
12477
12480
  };
@@ -12496,33 +12499,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
12496
12499
  });
12497
12500
  }
12498
12501
  });
12499
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12502
+ return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
12500
12503
  };
12501
12504
  }
12502
12505
  var triplesBlock = {
12503
12506
  name: "triplesBlock",
12504
12507
  impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12505
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12508
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
12506
12509
  for (const [index, triple] of ast.triples.entries()) {
12507
12510
  HANDLE_LOC(triple, () => {
12508
12511
  const nextTriple = ast.triples.at(index);
12509
12512
  if (F2.isTripleCollection(triple)) {
12510
12513
  SUBRULE(graphNodePath, triple);
12511
- F2.printFilter(triple, () => PRINT_WORD("."));
12514
+ F2.printFilter(triple, () => PRINT_WORD(".\n"));
12512
12515
  } else {
12513
12516
  SUBRULE(graphNodePath, triple.subject);
12517
+ F2.printFilter(triple, () => PRINT_WORD(""));
12514
12518
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12515
12519
  SUBRULE(varOrTerm, triple.predicate);
12516
12520
  } else {
12517
12521
  SUBRULE(pathGenerator, triple.predicate, void 0);
12518
12522
  }
12523
+ F2.printFilter(triple, () => PRINT_WORD(""));
12519
12524
  SUBRULE(graphNodePath, triple.object);
12520
12525
  if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12521
- F2.printFilter(ast, () => PRINT_WORD("."));
12526
+ F2.printFilter(ast, () => PRINT_WORD(".\n"));
12522
12527
  } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12523
12528
  F2.printFilter(ast, () => PRINT_WORD(","));
12524
12529
  } else {
12525
- F2.printFilter(ast, () => PRINT_WORD(";"));
12530
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12526
12531
  }
12527
12532
  }
12528
12533
  });
@@ -12535,24 +12540,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
12535
12540
  impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12536
12541
  { ALT: () => {
12537
12542
  const subject = SUBRULE(varOrTerm);
12538
- const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.factory.dematerialized(subject)));
12543
+ const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
12539
12544
  return ACTION(() => {
12540
12545
  if (res.length > 0) {
12541
12546
  res[0].subject = subject;
12542
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12547
+ res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
12543
12548
  }
12544
12549
  return res;
12545
12550
  });
12546
12551
  } },
12547
12552
  { ALT: () => {
12548
12553
  const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12549
- const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.factory.graphNodeIdentifier(subjectNode)));
12554
+ const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
12550
12555
  return ACTION(() => {
12551
12556
  if (restNode.length === 0) {
12552
12557
  return [subjectNode];
12553
12558
  }
12554
12559
  restNode[0].subject = subjectNode;
12555
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12560
+ restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
12556
12561
  return restNode;
12557
12562
  });
12558
12563
  } }
@@ -12636,7 +12641,7 @@ function objectImpl(name, allowPaths) {
12636
12641
  name,
12637
12642
  impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12638
12643
  const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12639
- return ACTION(() => C.factory.triple(subject, predicate, node));
12644
+ return ACTION(() => C.astFactory.triple(subject, predicate, node));
12640
12645
  }
12641
12646
  };
12642
12647
  }
@@ -12653,7 +12658,7 @@ function collectionImpl(name, allowPaths) {
12653
12658
  });
12654
12659
  const endToken = CONSUME(symbols_exports.RParen);
12655
12660
  return ACTION(() => {
12656
- const F2 = C.factory;
12661
+ const F2 = C.astFactory;
12657
12662
  const triples = [];
12658
12663
  const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
12659
12664
  const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
@@ -12677,7 +12682,7 @@ function collectionImpl(name, allowPaths) {
12677
12682
  return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12678
12683
  });
12679
12684
  },
12680
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12685
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12681
12686
  F2.printFilter(ast, () => PRINT_WORD("("));
12682
12687
  for (const [idx, triple] of ast.triples.entries()) {
12683
12688
  if (idx % 2 === 0) {
@@ -12708,13 +12713,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
12708
12713
  name,
12709
12714
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12710
12715
  const startToken = CONSUME(symbols_exports.LSquare);
12711
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12716
+ const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
12712
12717
  const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12713
12718
  const endToken = CONSUME(symbols_exports.RSquare);
12714
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.factory.sourceLocation(startToken, endToken)));
12719
+ return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
12715
12720
  },
12716
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12717
- F2.printFilter(ast, () => PRINT("["));
12721
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
12722
+ const { astFactory: F2, indentInc } = c;
12723
+ F2.printFilter(ast, () => {
12724
+ c[traqulaIndentation] += indentInc;
12725
+ PRINT("[\n");
12726
+ });
12718
12727
  for (const triple of ast.triples) {
12719
12728
  HANDLE_LOC(triple, () => {
12720
12729
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
@@ -12722,11 +12731,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
12722
12731
  } else {
12723
12732
  SUBRULE(pathGenerator, triple.predicate, void 0);
12724
12733
  }
12734
+ F2.printFilter(triple, () => PRINT_WORD(""));
12725
12735
  SUBRULE(graphNodePath, triple.object);
12726
- F2.printFilter(ast, () => PRINT_WORD(";"));
12736
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12727
12737
  });
12728
12738
  }
12729
- F2.printFilter(ast, () => PRINT("]"));
12739
+ F2.printFilter(ast, () => {
12740
+ c[traqulaIndentation] -= indentInc;
12741
+ PRINT_ON_EMPTY("]");
12742
+ });
12730
12743
  }
12731
12744
  };
12732
12745
  }
@@ -12743,7 +12756,7 @@ function graphNodeImpl(name, allowPaths) {
12743
12756
  ALT: () => SUBRULE(triplesNodeRule)
12744
12757
  }
12745
12758
  ]),
12746
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12759
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12747
12760
  if (F2.isTerm(ast)) {
12748
12761
  SUBRULE(varOrTerm, ast);
12749
12762
  } else {
@@ -12761,9 +12774,9 @@ var whereClause = {
12761
12774
  impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12762
12775
  const where2 = OPTION(() => CONSUME(where));
12763
12776
  const group = SUBRULE(groupGraphPattern);
12764
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12777
+ return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
12765
12778
  },
12766
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12779
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12767
12780
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12768
12781
  SUBRULE(groupGraphPattern, ast.val);
12769
12782
  }
@@ -12777,19 +12790,26 @@ var groupGraphPattern = {
12777
12790
  { ALT: () => SUBRULE(groupGraphPatternSub) }
12778
12791
  ]);
12779
12792
  const close = CONSUME(symbols_exports.RCurly);
12780
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12793
+ return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
12781
12794
  },
12782
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12783
- F2.printFilter(ast, () => PRINT_WORD("{"));
12795
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12796
+ const { astFactory: F2, indentInc } = C;
12797
+ F2.printFilter(ast, () => {
12798
+ C[traqulaIndentation] += indentInc;
12799
+ PRINT_WORD("{\n");
12800
+ });
12784
12801
  for (const pattern of ast.patterns) {
12785
12802
  SUBRULE(generatePattern, pattern);
12786
12803
  }
12787
- F2.printFilter(ast, () => PRINT_WORD("}"));
12804
+ F2.printFilter(ast, () => {
12805
+ C[traqulaIndentation] -= indentInc;
12806
+ PRINT_ON_EMPTY("}\n");
12807
+ });
12788
12808
  }
12789
12809
  };
12790
12810
  var generatePattern = {
12791
12811
  name: "generatePattern",
12792
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12812
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12793
12813
  if (ast.type === "query") {
12794
12814
  SUBRULE(query, F2.querySelect({
12795
12815
  context: [],
@@ -12878,9 +12898,9 @@ var optionalGraphPattern = {
12878
12898
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12879
12899
  const optional2 = CONSUME(optional);
12880
12900
  const group = SUBRULE(groupGraphPattern);
12881
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12901
+ return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
12882
12902
  },
12883
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12903
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12884
12904
  F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12885
12905
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12886
12906
  }
@@ -12891,9 +12911,9 @@ var graphGraphPattern = {
12891
12911
  const graph2 = CONSUME(graph_exports.graph);
12892
12912
  const name = SUBRULE(varOrIri);
12893
12913
  const group = SUBRULE(groupGraphPattern);
12894
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12914
+ return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
12895
12915
  },
12896
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12916
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12897
12917
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12898
12918
  SUBRULE(varOrTerm, ast.name);
12899
12919
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
@@ -12909,9 +12929,9 @@ var serviceGraphPattern = {
12909
12929
  }) ?? false;
12910
12930
  const name = SUBRULE1(varOrIri);
12911
12931
  const group = SUBRULE1(groupGraphPattern);
12912
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12932
+ return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
12913
12933
  },
12914
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12934
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12915
12935
  F2.printFilter(ast, () => {
12916
12936
  PRINT_WORD("SERVICE");
12917
12937
  if (ast.silent) {
@@ -12931,14 +12951,14 @@ var bind2 = {
12931
12951
  CONSUME(as);
12932
12952
  const variable = SUBRULE(var_);
12933
12953
  const close = CONSUME(symbols_exports.RParen);
12934
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12954
+ return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
12935
12955
  },
12936
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12956
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12937
12957
  F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12938
12958
  SUBRULE(expression, ast.expression);
12939
12959
  F2.printFilter(ast, () => PRINT_WORD("AS"));
12940
12960
  SUBRULE(var_, ast.variable);
12941
- F2.printFilter(ast, () => PRINT_WORD(")"));
12961
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12942
12962
  }
12943
12963
  };
12944
12964
  var inlineData = {
@@ -12946,16 +12966,19 @@ var inlineData = {
12946
12966
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12947
12967
  const values3 = CONSUME(values2);
12948
12968
  const datablock = SUBRULE(dataBlock);
12949
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12969
+ return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
12950
12970
  },
12951
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12971
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12972
+ const { astFactory: F2, indentInc } = C;
12952
12973
  const variables = Object.keys(ast.values.at(0) ?? {});
12953
12974
  F2.printFilter(ast, () => {
12975
+ PRINT_ON_EMPTY("");
12954
12976
  PRINT_WORD("VALUES", "(");
12955
12977
  for (const variable of variables) {
12956
12978
  PRINT_WORD(`?${variable}`);
12957
12979
  }
12958
- PRINT_WORD(")", "{");
12980
+ C[traqulaIndentation] += indentInc;
12981
+ PRINT_WORD(")", "{\n");
12959
12982
  });
12960
12983
  for (const mapping of ast.values) {
12961
12984
  F2.printFilter(ast, () => PRINT_WORD("("));
@@ -12966,9 +12989,12 @@ var inlineData = {
12966
12989
  SUBRULE(graphNodePath, mapping[variable]);
12967
12990
  }
12968
12991
  }
12969
- F2.printFilter(ast, () => PRINT_WORD(")"));
12992
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12970
12993
  }
12971
- F2.printFilter(ast, () => PRINT_WORD("}"));
12994
+ F2.printFilter(ast, () => {
12995
+ C[traqulaIndentation] -= indentInc;
12996
+ PRINT_ON_EMPTY("}\n");
12997
+ });
12972
12998
  }
12973
12999
  };
12974
13000
  var dataBlock = {
@@ -12991,7 +13017,7 @@ var inlineDataOneVar = {
12991
13017
  });
12992
13018
  });
12993
13019
  const close = CONSUME(symbols_exports.RCurly);
12994
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
13020
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
12995
13021
  }
12996
13022
  };
12997
13023
  var inlineDataFull = {
@@ -13008,7 +13034,7 @@ var inlineDataFull = {
13008
13034
  res.push({});
13009
13035
  });
13010
13036
  const close = CONSUME1(symbols_exports.RCurly);
13011
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
13037
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
13012
13038
  } },
13013
13039
  { ALT: () => {
13014
13040
  const open = CONSUME1(symbols_exports.LParen);
@@ -13040,7 +13066,7 @@ var inlineDataFull = {
13040
13066
  });
13041
13067
  });
13042
13068
  const close = CONSUME2(symbols_exports.RCurly);
13043
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
13069
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
13044
13070
  } }
13045
13071
  ]);
13046
13072
  }
@@ -13063,9 +13089,9 @@ var minusGraphPattern = {
13063
13089
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13064
13090
  const minus2 = CONSUME(minus);
13065
13091
  const group = SUBRULE(groupGraphPattern);
13066
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
13092
+ return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
13067
13093
  },
13068
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13094
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13069
13095
  F2.printFilter(ast, () => PRINT_WORD("MINUS"));
13070
13096
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
13071
13097
  }
@@ -13081,9 +13107,9 @@ var groupOrUnionGraphPattern = {
13081
13107
  const group2 = SUBRULE2(groupGraphPattern);
13082
13108
  groups.push(group2);
13083
13109
  });
13084
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(groups, C.factory.sourceLocation(group, groups.at(-1))));
13110
+ return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
13085
13111
  },
13086
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13112
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13087
13113
  if (F2.isPatternUnion(ast)) {
13088
13114
  const [head2, ...tail] = ast.patterns;
13089
13115
  SUBRULE(groupGraphPattern, head2);
@@ -13101,12 +13127,12 @@ var filter3 = {
13101
13127
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13102
13128
  const filterToken = CONSUME(filter2);
13103
13129
  const expression2 = SUBRULE(constraint);
13104
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
13130
+ return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
13105
13131
  },
13106
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13132
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13107
13133
  F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
13108
13134
  SUBRULE(expression, ast.expression);
13109
- F2.printFilter(ast, () => PRINT_WORD(")"));
13135
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
13110
13136
  }
13111
13137
  };
13112
13138
  var constraint = {
@@ -13122,7 +13148,7 @@ var functionCall = {
13122
13148
  impl: ({ ACTION, SUBRULE }) => (C) => {
13123
13149
  const func = SUBRULE(iri2);
13124
13150
  const args = SUBRULE(argList);
13125
- return ACTION(() => C.factory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.factory.sourceLocation(func, args)));
13151
+ return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
13126
13152
  }
13127
13153
  };
13128
13154
 
@@ -13132,7 +13158,7 @@ var argList = {
13132
13158
  impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
13133
13159
  { ALT: () => {
13134
13160
  const nil2 = CONSUME(terminals_exports.nil);
13135
- return ACTION(() => C.factory.wrap({ args: [], distinct: false }, C.factory.sourceLocation(nil2)));
13161
+ return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
13136
13162
  } },
13137
13163
  { ALT: () => {
13138
13164
  const args = [];
@@ -13149,10 +13175,10 @@ var argList = {
13149
13175
  }
13150
13176
  });
13151
13177
  const close = CONSUME(symbols_exports.RParen);
13152
- return ACTION(() => C.factory.wrap({ args, distinct: distinct2 }, C.factory.sourceLocation(open, close)));
13178
+ return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
13153
13179
  } }
13154
13180
  ]),
13155
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13181
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13156
13182
  F2.printFilter(ast, () => {
13157
13183
  PRINT_WORD("(");
13158
13184
  if (ast.val.distinct) {
@@ -13175,7 +13201,7 @@ var expressionList = {
13175
13201
  impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
13176
13202
  { ALT: () => {
13177
13203
  const nil2 = CONSUME(terminals_exports.nil);
13178
- return ACTION(() => C.factory.wrap([], C.factory.sourceLocation(nil2)));
13204
+ return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
13179
13205
  } },
13180
13206
  { ALT: () => {
13181
13207
  const open = CONSUME(symbols_exports.LParen);
@@ -13187,7 +13213,7 @@ var expressionList = {
13187
13213
  args.push(expr);
13188
13214
  });
13189
13215
  const close = CONSUME(symbols_exports.RParen);
13190
- return ACTION(() => C.factory.wrap(args, C.factory.sourceLocation(open, close)));
13216
+ return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
13191
13217
  } }
13192
13218
  ])
13193
13219
  };
@@ -13196,7 +13222,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13196
13222
  var expression = {
13197
13223
  name: "expression",
13198
13224
  impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13199
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13225
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13200
13226
  if (F2.isTerm(ast)) {
13201
13227
  SUBRULE(varOrTerm, ast);
13202
13228
  } else if (F2.isExpressionOperator(ast)) {
@@ -13261,7 +13287,7 @@ var conditionalOrExpression = {
13261
13287
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
13262
13288
  CONSUME(symbols_exports.logicOr);
13263
13289
  const args = SUBRULE2(conditionalAndExpression);
13264
- return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13290
+ return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
13265
13291
  }, ACTION, MANY)
13266
13292
  };
13267
13293
  var conditionalAndExpression = {
@@ -13269,7 +13295,7 @@ var conditionalAndExpression = {
13269
13295
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
13270
13296
  CONSUME(symbols_exports.logicAnd);
13271
13297
  const arg = SUBRULE2(valueLogical);
13272
- return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13298
+ return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
13273
13299
  }, ACTION, MANY)
13274
13300
  };
13275
13301
  var valueLogical = {
@@ -13291,7 +13317,7 @@ var relationalExpression = {
13291
13317
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13292
13318
  ]);
13293
13319
  const expr = SUBRULE2(numericExpression);
13294
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, expr], C.factory.sourceLocation(args1, expr)));
13320
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
13295
13321
  } },
13296
13322
  { ALT: () => {
13297
13323
  const operator = OR3([
@@ -13299,7 +13325,7 @@ var relationalExpression = {
13299
13325
  { ALT: () => CONSUME(notIn) }
13300
13326
  ]);
13301
13327
  const args = SUBRULE1(expressionList);
13302
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, ...args.val], C.factory.sourceLocation(args1, args)));
13328
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
13303
13329
  } }
13304
13330
  ]));
13305
13331
  return expression2 ?? args1;
@@ -13318,7 +13344,7 @@ var additiveExpression = {
13318
13344
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13319
13345
  ]);
13320
13346
  const arg = SUBRULE2(multiplicativeExpression);
13321
- return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13347
+ return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
13322
13348
  } },
13323
13349
  { ALT: () => {
13324
13350
  const { operator, startInt } = OR3([
@@ -13349,9 +13375,9 @@ var additiveExpression = {
13349
13375
  { ALT: () => CONSUME(symbols_exports.slash) }
13350
13376
  ]);
13351
13377
  const innerExpr = SUBRULE1(unaryExpression);
13352
- return ACTION(() => (leftInner) => C.factory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.factory.sourceLocation(leftInner, innerExpr)));
13378
+ return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
13353
13379
  }, ACTION, MANY2);
13354
- return (left) => C.factory.expressionOperation(operator, [left, multiplicativeExpr], C.factory.sourceLocation(left, multiplicativeExpr));
13380
+ return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
13355
13381
  } }
13356
13382
  ]), ACTION, MANY1)
13357
13383
  };
@@ -13368,7 +13394,7 @@ var multiplicativeExpression = {
13368
13394
  subType: "operation",
13369
13395
  operator: operator.image,
13370
13396
  args: [left, expr],
13371
- loc: C.factory.sourceLocation(left, expr)
13397
+ loc: C.astFactory.sourceLocation(left, expr)
13372
13398
  });
13373
13399
  }, ACTION, MANY)
13374
13400
  };
@@ -13383,7 +13409,7 @@ var unaryExpression = {
13383
13409
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13384
13410
  ]);
13385
13411
  const expr = SUBRULE2(primaryExpression);
13386
- return ACTION(() => C.factory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.factory.sourceLocation(operator, expr)));
13412
+ return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
13387
13413
  } }
13388
13414
  ])
13389
13415
  };
@@ -13406,7 +13432,7 @@ var brackettedExpression = {
13406
13432
  const expr = SUBRULE(expression);
13407
13433
  const close = CONSUME(symbols_exports.RParen);
13408
13434
  return ACTION(() => {
13409
- expr.loc = C.factory.sourceLocation(open, close);
13435
+ expr.loc = C.astFactory.sourceLocation(open, close);
13410
13436
  return expr;
13411
13437
  });
13412
13438
  }
@@ -13428,13 +13454,13 @@ var iriOrFunction = {
13428
13454
  function: iriVal,
13429
13455
  args: args.val.args,
13430
13456
  distinct: distinct2,
13431
- loc: C.factory.sourceLocation(iriVal, args)
13457
+ loc: C.astFactory.sourceLocation(iriVal, args)
13432
13458
  };
13433
13459
  });
13434
13460
  });
13435
13461
  return functionCall2 ?? iriVal;
13436
13462
  },
13437
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13463
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13438
13464
  if (F2.isTermNamed(ast)) {
13439
13465
  SUBRULE(iri2, ast);
13440
13466
  } else {
@@ -13487,11 +13513,14 @@ var groupClause = {
13487
13513
  type: "solutionModifier",
13488
13514
  subType: "group",
13489
13515
  groupings,
13490
- loc: C.factory.sourceLocation(start, groupings.at(-1))
13516
+ loc: C.astFactory.sourceLocation(start, groupings.at(-1))
13491
13517
  }));
13492
13518
  },
13493
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13494
- F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13519
+ gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13520
+ F2.printFilter(ast, () => {
13521
+ PRINT_ON_EMPTY("");
13522
+ PRINT_WORDS("GROUP", "BY");
13523
+ });
13495
13524
  for (const grouping of ast.groupings) {
13496
13525
  if (F2.isExpression(grouping)) {
13497
13526
  SUBRULE(expression, grouping);
@@ -13525,7 +13554,7 @@ var groupCondition = {
13525
13554
  return {
13526
13555
  variable,
13527
13556
  value: expressionValue,
13528
- loc: C.factory.sourceLocation(open, close)
13557
+ loc: C.astFactory.sourceLocation(open, close)
13529
13558
  };
13530
13559
  }
13531
13560
  return expressionValue;
@@ -13544,10 +13573,13 @@ var havingClause = {
13544
13573
  expressions.push(SUBRULE(havingCondition));
13545
13574
  });
13546
13575
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13547
- return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
13576
+ return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
13548
13577
  },
13549
- gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13550
- F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13578
+ gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13579
+ F2.printFilter(ast, () => {
13580
+ PRINT_ON_EMPTY("");
13581
+ PRINT_WORD("HAVING");
13582
+ });
13551
13583
  for (const having2 of ast.having) {
13552
13584
  SUBRULE(expression, having2);
13553
13585
  }
@@ -13568,10 +13600,13 @@ var orderClause = {
13568
13600
  orderings.push(SUBRULE1(orderCondition));
13569
13601
  });
13570
13602
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13571
- return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
13603
+ return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
13572
13604
  },
13573
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13574
- F2.printFilter(ast, () => PRINT_WORDS("ORDER", "BY"));
13605
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13606
+ F2.printFilter(ast, () => {
13607
+ PRINT_ON_EMPTY("");
13608
+ PRINT_WORDS("ORDER", "BY");
13609
+ });
13575
13610
  for (const ordering of ast.orderDefs) {
13576
13611
  if (ordering.descending) {
13577
13612
  F2.printFilter(ast, () => PRINT_WORDS("DESC"));
@@ -13602,7 +13637,7 @@ var orderCondition = {
13602
13637
  return ACTION(() => ({
13603
13638
  expression: expr,
13604
13639
  descending: descending[0],
13605
- loc: C.factory.sourceLocation(descending[1], expr)
13640
+ loc: C.astFactory.sourceLocation(descending[1], expr)
13606
13641
  }));
13607
13642
  } },
13608
13643
  { ALT: () => {
@@ -13621,16 +13656,17 @@ var limitOffsetClauses = {
13621
13656
  { ALT: () => {
13622
13657
  const limit2 = SUBRULE1(limitClause);
13623
13658
  const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13624
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.factory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13659
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13625
13660
  } },
13626
13661
  { ALT: () => {
13627
13662
  const offset2 = SUBRULE2(offsetClause);
13628
13663
  const limit2 = OPTION2(() => SUBRULE2(limitClause));
13629
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.factory.sourceLocation(offset2, limit2)));
13664
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
13630
13665
  } }
13631
13666
  ]),
13632
- gImpl: ({ PRINT_WORDS }) => (ast, { factory: F2 }) => {
13667
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13633
13668
  F2.printFilter(ast, () => {
13669
+ PRINT_ON_EMPTY("");
13634
13670
  if (ast.limit) {
13635
13671
  PRINT_WORDS("LIMIT", String(ast.limit));
13636
13672
  }
@@ -13646,7 +13682,7 @@ var limitClause = {
13646
13682
  const offset2 = CONSUME(limit);
13647
13683
  const value = CONSUME(terminals_exports.integer);
13648
13684
  const val = Number.parseInt(value.image, 10);
13649
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13685
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13650
13686
  }
13651
13687
  };
13652
13688
  var offsetClause = {
@@ -13655,7 +13691,7 @@ var offsetClause = {
13655
13691
  const offset2 = CONSUME(offset);
13656
13692
  const value = CONSUME(terminals_exports.integer);
13657
13693
  const val = Number.parseInt(value.image, 10);
13658
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13694
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13659
13695
  }
13660
13696
  };
13661
13697
 
@@ -13680,10 +13716,10 @@ var query = {
13680
13716
  ...subType,
13681
13717
  type: "query",
13682
13718
  ...values3 && { values: values3 },
13683
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
13719
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
13684
13720
  }));
13685
13721
  },
13686
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13722
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13687
13723
  SUBRULE(prologue, ast.context);
13688
13724
  if (F2.isQuerySelect(ast)) {
13689
13725
  SUBRULE(selectQuery, ast);
@@ -13713,13 +13749,13 @@ var selectQuery = {
13713
13749
  solutionModifiers: modifiers,
13714
13750
  datasets: from2,
13715
13751
  ...selectVal.val,
13716
- loc: C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13752
+ loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13717
13753
  };
13718
13754
  queryIsGood(ret);
13719
13755
  return ret;
13720
13756
  });
13721
13757
  },
13722
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13758
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13723
13759
  SUBRULE(selectClause, F2.wrap({
13724
13760
  variables: ast.variables,
13725
13761
  distinct: ast.distinct,
@@ -13737,14 +13773,14 @@ var subSelect = {
13737
13773
  const where2 = SUBRULE(whereClause);
13738
13774
  const modifiers = SUBRULE(solutionModifier);
13739
13775
  const values3 = SUBRULE(valuesClause);
13740
- return ACTION(() => C.factory.querySelect({
13776
+ return ACTION(() => C.astFactory.querySelect({
13741
13777
  where: where2.val,
13742
- datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
13778
+ datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
13743
13779
  context: [],
13744
13780
  solutionModifiers: modifiers,
13745
13781
  ...selectVal.val,
13746
13782
  ...values3 && { values: values3 }
13747
- }, C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13783
+ }, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13748
13784
  }
13749
13785
  };
13750
13786
  var selectClause = {
@@ -13775,7 +13811,7 @@ var selectClause = {
13775
13811
  const star2 = CONSUME(symbols_exports.star);
13776
13812
  return ACTION(() => {
13777
13813
  last2 = star2;
13778
- return { variables: [C.factory.wildcard(C.factory.sourceLocation(star2))], ...distRed };
13814
+ return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
13779
13815
  });
13780
13816
  } },
13781
13817
  { ALT: () => {
@@ -13805,7 +13841,7 @@ var selectClause = {
13805
13841
  throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
13806
13842
  }
13807
13843
  usedVars.push(variable);
13808
- variables.push(C.factory.patternBind(expr, variable, C.factory.sourceLocation(open, last2)));
13844
+ variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
13809
13845
  });
13810
13846
  } }
13811
13847
  ]));
@@ -13813,9 +13849,9 @@ var selectClause = {
13813
13849
  } }
13814
13850
  ]);
13815
13851
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13816
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(select2, last2)));
13852
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
13817
13853
  },
13818
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13854
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13819
13855
  F2.printFilter(ast, () => {
13820
13856
  PRINT_WORD("SELECT");
13821
13857
  if (ast.val.distinct) {
@@ -13855,7 +13891,7 @@ var constructQuery = {
13855
13891
  datasets: from2,
13856
13892
  where: where2.val,
13857
13893
  solutionModifiers: modifiers,
13858
- loc: C.factory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13894
+ loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13859
13895
  }));
13860
13896
  } },
13861
13897
  { ALT: () => {
@@ -13867,19 +13903,26 @@ var constructQuery = {
13867
13903
  subType: "construct",
13868
13904
  template: template.val,
13869
13905
  datasets: from2,
13870
- where: C.factory.patternGroup([template.val], C.factory.sourceLocation()),
13906
+ where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
13871
13907
  solutionModifiers: modifiers,
13872
- loc: C.factory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13908
+ loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13873
13909
  }));
13874
13910
  } }
13875
13911
  ]);
13876
13912
  },
13877
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13913
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13914
+ const { astFactory: F2, indentInc } = C;
13878
13915
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13879
13916
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13880
- F2.printFilter(ast, () => PRINT_WORD("{"));
13917
+ F2.printFilter(ast, () => {
13918
+ C[traqulaIndentation] += indentInc;
13919
+ PRINT_WORD("{\n");
13920
+ });
13881
13921
  SUBRULE(triplesBlock, ast.template);
13882
- F2.printFilter(ast, () => PRINT_WORD("}"));
13922
+ F2.printFilter(ast, () => {
13923
+ C[traqulaIndentation] -= indentInc;
13924
+ PRINT_ON_EMPTY("}\n");
13925
+ });
13883
13926
  }
13884
13927
  SUBRULE(datasetClauseStar, ast.datasets);
13885
13928
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
@@ -13904,7 +13947,7 @@ var describeQuery = {
13904
13947
  } },
13905
13948
  { ALT: () => {
13906
13949
  const star2 = CONSUME(symbols_exports.star);
13907
- return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
13950
+ return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
13908
13951
  } }
13909
13952
  ]);
13910
13953
  const from2 = SUBRULE1(datasetClauseStar);
@@ -13916,10 +13959,10 @@ var describeQuery = {
13916
13959
  datasets: from2,
13917
13960
  ...where2 && { where: where2.val },
13918
13961
  solutionModifiers: modifiers,
13919
- loc: C.factory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13962
+ loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13920
13963
  }));
13921
13964
  },
13922
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13965
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13923
13966
  F2.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
13924
13967
  if (F2.isWildcard(ast.variables[0])) {
13925
13968
  F2.printFilter(ast, () => PRINT_WORD("*"));
@@ -13947,10 +13990,10 @@ var askQuery = {
13947
13990
  datasets: from2,
13948
13991
  where: where2.val,
13949
13992
  solutionModifiers: modifiers,
13950
- loc: C.factory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13993
+ loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13951
13994
  }));
13952
13995
  },
13953
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13996
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13954
13997
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
13955
13998
  SUBRULE(datasetClauseStar, ast.datasets);
13956
13999
  SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
@@ -13967,7 +14010,7 @@ var constructTemplate = {
13967
14010
  const open = CONSUME(symbols_exports.LCurly);
13968
14011
  const triples = OPTION(() => SUBRULE1(constructTriples));
13969
14012
  const close = CONSUME(symbols_exports.RCurly);
13970
- return ACTION(() => C.factory.wrap(triples ?? C.factory.patternBgp([], C.factory.sourceLocation()), C.factory.sourceLocation(open, close)));
14013
+ return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
13971
14014
  }
13972
14015
  };
13973
14016
  var constructTriples = {
@@ -14004,13 +14047,13 @@ var update = {
14004
14047
  const update2 = {
14005
14048
  type: "update",
14006
14049
  updates,
14007
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14050
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14008
14051
  };
14009
14052
  updateNoReuseBlankNodeLabels(update2);
14010
14053
  return update2;
14011
14054
  });
14012
14055
  },
14013
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14056
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14014
14057
  const [head2, ...tail] = ast.updates;
14015
14058
  if (head2) {
14016
14059
  SUBRULE(prologue, head2.context);
@@ -14090,9 +14133,9 @@ var load2 = {
14090
14133
  CONSUME(loadInto);
14091
14134
  return SUBRULE1(graphRef);
14092
14135
  });
14093
- return ACTION(() => C.factory.updateOperationLoad(C.factory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14136
+ return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
14094
14137
  },
14095
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14138
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14096
14139
  F2.printFilter(ast, () => {
14097
14140
  PRINT_WORD("LOAD");
14098
14141
  if (ast.silent) {
@@ -14113,9 +14156,9 @@ function clearOrDrop(operation) {
14113
14156
  const opToken = CONSUME(operation);
14114
14157
  const silent2 = OPTION(() => CONSUME(silent));
14115
14158
  const destination = SUBRULE1(graphRefAll);
14116
- return ACTION(() => C.factory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.factory.sourceLocation(opToken, destination)));
14159
+ return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
14117
14160
  },
14118
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14161
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14119
14162
  F2.printFilter(ast, () => {
14120
14163
  PRINT_WORD(operation.name.toUpperCase());
14121
14164
  if (ast.silent) {
@@ -14134,9 +14177,9 @@ var create2 = {
14134
14177
  const createToken3 = CONSUME(create);
14135
14178
  const silent2 = OPTION(() => CONSUME(silent));
14136
14179
  const destination = SUBRULE1(graphRef);
14137
- return ACTION(() => C.factory.updateOperationCreate(destination, Boolean(silent2), C.factory.sourceLocation(createToken3, destination)));
14180
+ return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
14138
14181
  },
14139
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14182
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14140
14183
  F2.printFilter(ast, () => {
14141
14184
  PRINT_WORD("CREATE");
14142
14185
  if (ast.silent) {
@@ -14155,9 +14198,9 @@ function copyMoveAddOperation(operation) {
14155
14198
  const source = SUBRULE1(graphOrDefault);
14156
14199
  CONSUME(to);
14157
14200
  const destination = SUBRULE2(graphOrDefault);
14158
- return ACTION(() => C.factory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.factory.sourceLocation(op, destination)));
14201
+ return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
14159
14202
  },
14160
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14203
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14161
14204
  F2.printFilter(ast, () => {
14162
14205
  PRINT_WORD(operation.name.toUpperCase());
14163
14206
  if (ast.silent) {
@@ -14179,7 +14222,7 @@ var quadPattern = {
14179
14222
  const open = CONSUME(symbols_exports.LCurly);
14180
14223
  const val = SUBRULE1(quads);
14181
14224
  const close = CONSUME(symbols_exports.RCurly);
14182
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14225
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14183
14226
  }
14184
14227
  };
14185
14228
  var quadData = {
@@ -14190,7 +14233,7 @@ var quadData = {
14190
14233
  const val = SUBRULE1(quads);
14191
14234
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14192
14235
  const close = CONSUME(symbols_exports.RCurly);
14193
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14236
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
14194
14237
  }
14195
14238
  };
14196
14239
  function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
@@ -14207,12 +14250,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14207
14250
  if (name !== "insertData") {
14208
14251
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14209
14252
  }
14210
- return ACTION(() => C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));
14253
+ return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
14211
14254
  },
14212
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14213
- F2.printFilter(ast, () => PRINT_WORD(subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE", "{"));
14255
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14256
+ const { astFactory: F2, indentInc } = C;
14257
+ F2.printFilter(ast, () => {
14258
+ C[traqulaIndentation] += indentInc;
14259
+ if (subType === "insertdata") {
14260
+ PRINT_WORD("INSERT DATA");
14261
+ } else if (subType === "deletedata") {
14262
+ PRINT_WORD("DELETE DATA");
14263
+ } else if (subType === "deletewhere") {
14264
+ PRINT_WORD("DELETE WHERE");
14265
+ }
14266
+ PRINT_WORD("{\n");
14267
+ });
14214
14268
  SUBRULE(quads, F2.wrap(ast.data, ast.loc));
14215
- F2.printFilter(ast, () => PRINT_WORD("}"));
14269
+ F2.printFilter(ast, () => {
14270
+ C[traqulaIndentation] -= indentInc;
14271
+ PRINT_ON_EMPTY("}\n");
14272
+ });
14216
14273
  }
14217
14274
  };
14218
14275
  }
@@ -14241,22 +14298,35 @@ var modify = {
14241
14298
  const using = SUBRULE1(usingClauseStar);
14242
14299
  CONSUME(where);
14243
14300
  const where2 = SUBRULE1(groupGraphPattern);
14244
- return ACTION(() => C.factory.updateOperationModify(C.factory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
14301
+ return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
14245
14302
  },
14246
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14303
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14304
+ const { astFactory: F2, indentInc } = C;
14247
14305
  if (ast.graph) {
14248
14306
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
14249
14307
  SUBRULE(iri2, ast.graph);
14250
14308
  }
14251
14309
  if (ast.delete.length > 0) {
14252
- F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14310
+ F2.printFilter(ast, () => {
14311
+ C[traqulaIndentation] += indentInc;
14312
+ PRINT_WORD("DELETE", "{\n");
14313
+ });
14253
14314
  SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
14254
- F2.printFilter(ast, () => PRINT_WORD("}"));
14315
+ F2.printFilter(ast, () => {
14316
+ C[traqulaIndentation] -= indentInc;
14317
+ PRINT_ON_EMPTY("}\n");
14318
+ });
14255
14319
  }
14256
14320
  if (ast.insert.length > 0) {
14257
- F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14321
+ F2.printFilter(ast, () => {
14322
+ C[traqulaIndentation] += indentInc;
14323
+ PRINT_WORD("INSERT", "{\n");
14324
+ });
14258
14325
  SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
14259
- F2.printFilter(ast, () => PRINT_WORD("}"));
14326
+ F2.printFilter(ast, () => {
14327
+ C[traqulaIndentation] -= indentInc;
14328
+ PRINT_ON_EMPTY("}\n");
14329
+ });
14260
14330
  }
14261
14331
  SUBRULE(usingClauseStar, ast.from);
14262
14332
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
@@ -14270,7 +14340,7 @@ var deleteClause2 = {
14270
14340
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14271
14341
  const del = SUBRULE(quadPattern);
14272
14342
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14273
- return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14343
+ return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
14274
14344
  }
14275
14345
  };
14276
14346
  var insertClause2 = {
@@ -14278,7 +14348,7 @@ var insertClause2 = {
14278
14348
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14279
14349
  const insertToken = CONSUME(insertClause);
14280
14350
  const insert = SUBRULE(quadPattern);
14281
- return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14351
+ return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
14282
14352
  }
14283
14353
  };
14284
14354
  var graphOrDefault = {
@@ -14286,12 +14356,12 @@ var graphOrDefault = {
14286
14356
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
14287
14357
  { ALT: () => {
14288
14358
  const def = CONSUME(graph_exports.default_);
14289
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14359
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14290
14360
  } },
14291
14361
  { ALT: () => {
14292
14362
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14293
14363
  const name = SUBRULE1(iri2);
14294
- return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14364
+ return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
14295
14365
  } }
14296
14366
  ])
14297
14367
  };
@@ -14300,9 +14370,9 @@ var graphRef = {
14300
14370
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14301
14371
  const graph2 = CONSUME(graph_exports.graph);
14302
14372
  const val = SUBRULE(iri2);
14303
- return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14373
+ return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
14304
14374
  },
14305
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14375
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14306
14376
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14307
14377
  SUBRULE(iri2, ast.graph);
14308
14378
  }
@@ -14313,18 +14383,18 @@ var graphRefAll = {
14313
14383
  { ALT: () => SUBRULE(graphRef) },
14314
14384
  { ALT: () => {
14315
14385
  const def = CONSUME(graph_exports.default_);
14316
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14386
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
14317
14387
  } },
14318
14388
  { ALT: () => {
14319
14389
  const named2 = CONSUME(graph_exports.named);
14320
- return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named2)));
14390
+ return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
14321
14391
  } },
14322
14392
  { ALT: () => {
14323
14393
  const graphAll2 = CONSUME(graph_exports.graphAll);
14324
- return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll2)));
14394
+ return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
14325
14395
  } }
14326
14396
  ]),
14327
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14397
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
14328
14398
  if (F2.isGraphRefSpecific(ast)) {
14329
14399
  SUBRULE(graphRef, ast);
14330
14400
  } else if (F2.isGraphRefDefault(ast)) {
@@ -14361,9 +14431,9 @@ var quads = {
14361
14431
  ACTION(() => quads2.push(triples));
14362
14432
  });
14363
14433
  });
14364
- return ACTION(() => C.factory.wrap(quads2, C.factory.sourceLocation(quads2.at(0), last2)));
14434
+ return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
14365
14435
  },
14366
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14436
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14367
14437
  for (const quad of ast.val) {
14368
14438
  if (F2.isPattern(quad)) {
14369
14439
  SUBRULE(triplesBlock, quad);
@@ -14381,14 +14451,21 @@ var quadsNotTriples = {
14381
14451
  CONSUME(symbols_exports.LCurly);
14382
14452
  const triples = OPTION(() => SUBRULE1(triplesTemplate));
14383
14453
  const close = CONSUME(symbols_exports.RCurly);
14384
- return ACTION(() => C.factory.graphQuads(name, triples ?? C.factory.patternBgp([], C.factory.sourceLocationNoMaterialize()), C.factory.sourceLocation(graph2, close)));
14454
+ return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
14385
14455
  },
14386
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14456
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14457
+ const { astFactory: F2, indentInc } = C;
14387
14458
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14388
14459
  SUBRULE(varOrTerm, ast.graph);
14389
- F2.printFilter(ast, () => PRINT_WORD("{"));
14460
+ F2.printFilter(ast, () => {
14461
+ C[traqulaIndentation] += indentInc;
14462
+ PRINT_WORD("{\n");
14463
+ });
14390
14464
  SUBRULE(triplesBlock, ast.triples);
14391
- F2.printFilter(ast, () => PRINT_WORD("}"));
14465
+ F2.printFilter(ast, () => {
14466
+ C[traqulaIndentation] -= indentInc;
14467
+ PRINT_ON_EMPTY("}\n");
14468
+ });
14392
14469
  }
14393
14470
  };
14394
14471
 
@@ -14411,7 +14488,7 @@ var queryOrUpdate = {
14411
14488
  ...subType,
14412
14489
  type: "query",
14413
14490
  ...values3 && { values: values3 },
14414
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
14491
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
14415
14492
  }));
14416
14493
  } },
14417
14494
  { ALT: () => {
@@ -14435,7 +14512,7 @@ var queryOrUpdate = {
14435
14512
  const update2 = {
14436
14513
  type: "update",
14437
14514
  updates,
14438
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14515
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14439
14516
  };
14440
14517
  updateNoReuseBlankNodeLabels(update2);
14441
14518
  return update2;
@@ -14443,7 +14520,7 @@ var queryOrUpdate = {
14443
14520
  } }
14444
14521
  ]);
14445
14522
  },
14446
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14523
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14447
14524
  if (F2.isQuery(ast)) {
14448
14525
  SUBRULE(query, ast);
14449
14526
  } else {
@@ -14455,13 +14532,15 @@ var queryOrUpdate = {
14455
14532
  // ../../packages/rules-sparql-1-1/lib/MinimalSparqlParser.js
14456
14533
  function completeParseContext(context) {
14457
14534
  return {
14458
- factory: context.factory ?? new Factory(),
14535
+ astFactory: context.astFactory ?? new AstFactory(),
14459
14536
  baseIRI: context.baseIRI,
14460
14537
  prefixes: { ...context.prefixes },
14461
14538
  origSource: context.origSource ?? "",
14462
14539
  offset: context.offset,
14463
14540
  parseMode: context.parseMode ? new Set(context.parseMode) : /* @__PURE__ */ new Set(["canParseVars", "canCreateBlankNodes"]),
14464
- skipValidation: context.skipValidation ?? false
14541
+ skipValidation: context.skipValidation ?? false,
14542
+ [traqulaIndentation]: context[traqulaIndentation] ?? 0,
14543
+ indentInc: context.indentInc ?? 2
14465
14544
  };
14466
14545
  }
14467
14546
  var MinimalSparqlParser = class {
@@ -14469,7 +14548,7 @@ var MinimalSparqlParser = class {
14469
14548
  constructor(parser) {
14470
14549
  this.parser = parser;
14471
14550
  }
14472
- F = new Factory();
14551
+ F = new AstFactory();
14473
14552
  parse(query2, context = {}) {
14474
14553
  return this.parser.queryOrUpdate(query2, completeParseContext(context));
14475
14554
  }