@traqula/rules-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 +305 -228
  2. package/package.json +4 -4
package/lib/index.cjs CHANGED
@@ -322,8 +322,8 @@ __export(BuiltInCalls_exports, {
322
322
  year: () => year
323
323
  });
324
324
 
325
- // ../core/lib/CoreFactory.js
326
- var CoreFactory = class {
325
+ // ../core/lib/AstCoreFactory.js
326
+ var AstCoreFactory = class {
327
327
  wrap(val, loc) {
328
328
  return { val, loc };
329
329
  }
@@ -9660,6 +9660,15 @@ applyMixins(Parser, [
9660
9660
  PerformanceTracer
9661
9661
  ]);
9662
9662
 
9663
+ // ../core/lib/utils.js
9664
+ function unCapitalize(str2) {
9665
+ return str2.charAt(0).toLowerCase() + str2.slice(1);
9666
+ }
9667
+ function createToken2(config) {
9668
+ return createToken(config);
9669
+ }
9670
+ var traqulaIndentation = "When you use this string, you expect traqula to handle indentation after every newline";
9671
+
9663
9672
  // ../core/lib/lexer-builder/LexerBuilder.js
9664
9673
  var LexerBuilder = class _LexerBuilder {
9665
9674
  tokens;
@@ -9757,14 +9766,6 @@ var LexerBuilder = class _LexerBuilder {
9757
9766
  }
9758
9767
  };
9759
9768
 
9760
- // ../core/lib/utils.js
9761
- function unCapitalize(str2) {
9762
- return str2.charAt(0).toLowerCase() + str2.slice(1);
9763
- }
9764
- function createToken2(config) {
9765
- return createToken(config);
9766
- }
9767
-
9768
9769
  // ../core/lib/Transformers.js
9769
9770
  var TransformerType = class {
9770
9771
  safeObjectVisit(value, mapper) {
@@ -10924,8 +10925,8 @@ function UpdateOperationFactoryMixin(Base) {
10924
10925
  };
10925
10926
  }
10926
10927
 
10927
- // ../rules-sparql-1-1/lib/factory.js
10928
- 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() {
10928
+ // ../rules-sparql-1-1/lib/astFactory.js
10929
+ 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() {
10929
10930
  alwaysSparql11(obj) {
10930
10931
  return true;
10931
10932
  }
@@ -11026,7 +11027,7 @@ var TransformerSparql11 = class extends TransformerSubType {
11026
11027
  };
11027
11028
 
11028
11029
  // ../rules-sparql-1-1/lib/validation/validators.js
11029
- var F = new Factory();
11030
+ var F = new AstFactory();
11030
11031
  var transformer = new TransformerSparql11();
11031
11032
  function getAggregatesOfExpression(expression2) {
11032
11033
  if (F.isExpressionAggregate(expression2)) {
@@ -11246,22 +11247,22 @@ var rdfLiteral = {
11246
11247
  return OPTION(() => OR([
11247
11248
  { ALT: () => {
11248
11249
  const lang2 = CONSUME(terminals_exports.langTag);
11249
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11250
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
11250
11251
  } },
11251
11252
  { ALT: () => {
11252
11253
  CONSUME(symbols_exports.hathat);
11253
11254
  const iriVal = SUBRULE1(iri2);
11254
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(value, iriVal), value.value, iriVal));
11255
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
11255
11256
  } }
11256
11257
  ])) ?? value;
11257
11258
  },
11258
- gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { factory }) => {
11259
- factory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11259
+ gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
11260
+ astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
11260
11261
  if (ast.langOrIri) {
11261
11262
  if (typeof ast.langOrIri === "string") {
11262
- factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11263
+ astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11263
11264
  } else {
11264
- factory.printFilter(ast, () => PRINT("^^"));
11265
+ astFactory.printFilter(ast, () => PRINT("^^"));
11265
11266
  SUBRULE(iri2, ast.langOrIri);
11266
11267
  }
11267
11268
  }
@@ -11283,7 +11284,7 @@ var numericLiteralUnsigned = {
11283
11284
  { ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
11284
11285
  { ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
11285
11286
  ]);
11286
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11287
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11287
11288
  }
11288
11289
  };
11289
11290
  var numericLiteralPositive = {
@@ -11294,7 +11295,7 @@ var numericLiteralPositive = {
11294
11295
  { ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
11295
11296
  { ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
11296
11297
  ]);
11297
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11298
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11298
11299
  }
11299
11300
  };
11300
11301
  var numericLiteralNegative = {
@@ -11305,7 +11306,7 @@ var numericLiteralNegative = {
11305
11306
  { ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
11306
11307
  { ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
11307
11308
  ]);
11308
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(parsed[0]), parsed[0].image, C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), parsed[1])));
11309
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
11309
11310
  }
11310
11311
  };
11311
11312
  var booleanLiteral = {
@@ -11315,7 +11316,7 @@ var booleanLiteral = {
11315
11316
  { ALT: () => CONSUME(true_) },
11316
11317
  { ALT: () => CONSUME(false_) }
11317
11318
  ]);
11318
- return ACTION(() => C.factory.literalTerm(C.factory.sourceLocation(token), token.image.toLowerCase(), C.factory.namedNode(C.factory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11319
+ return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
11319
11320
  }
11320
11321
  };
11321
11322
  var string = {
@@ -11340,7 +11341,7 @@ var string = {
11340
11341
  } }
11341
11342
  ]);
11342
11343
  return ACTION(() => {
11343
- const F2 = C.factory;
11344
+ const F2 = C.astFactory;
11344
11345
  const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
11345
11346
  switch (char) {
11346
11347
  case "t":
@@ -11367,16 +11368,16 @@ var iri2 = {
11367
11368
  { ALT: () => SUBRULE(iriFull) },
11368
11369
  { ALT: () => SUBRULE(prefixedName) }
11369
11370
  ]),
11370
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11371
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11371
11372
  };
11372
11373
  var iriFull = {
11373
11374
  name: "iriFull",
11374
11375
  impl: ({ ACTION, CONSUME }) => (C) => {
11375
11376
  const iriToken = CONSUME(terminals_exports.iriRef);
11376
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11377
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
11377
11378
  },
11378
- gImpl: ({ PRINT }) => (ast, { factory }) => {
11379
- factory.printFilter(ast, () => PRINT("<", ast.value, ">"));
11379
+ gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
11380
+ F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
11380
11381
  }
11381
11382
  };
11382
11383
  var prefixedName = {
@@ -11386,16 +11387,16 @@ var prefixedName = {
11386
11387
  const longName = CONSUME(terminals_exports.pNameLn);
11387
11388
  return ACTION(() => {
11388
11389
  const [prefix, localName] = longName.image.split(":");
11389
- return C.factory.namedNode(C.factory.sourceLocation(longName), localName, prefix);
11390
+ return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
11390
11391
  });
11391
11392
  } },
11392
11393
  { ALT: () => {
11393
11394
  const shortName = CONSUME(terminals_exports.pNameNs);
11394
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11395
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
11395
11396
  } }
11396
11397
  ]),
11397
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11398
- factory.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11398
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11399
+ F2.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
11399
11400
  }
11400
11401
  };
11401
11402
  var canCreateBlankNodes = Symbol("canCreateBlankNodes");
@@ -11405,11 +11406,11 @@ var blankNode = {
11405
11406
  const result = OR([
11406
11407
  { ALT: () => {
11407
11408
  const labelToken = CONSUME(terminals_exports.blankNodeLabel);
11408
- return ACTION(() => C.factory.blankNode(labelToken.image.slice(2), C.factory.sourceLocation(labelToken)));
11409
+ return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
11409
11410
  } },
11410
11411
  { ALT: () => {
11411
11412
  const anonToken = CONSUME(terminals_exports.anon);
11412
- return ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocation(anonToken)));
11413
+ return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
11413
11414
  } }
11414
11415
  ]);
11415
11416
  ACTION(() => {
@@ -11419,15 +11420,15 @@ var blankNode = {
11419
11420
  });
11420
11421
  return result;
11421
11422
  },
11422
- gImpl: ({ PRINT_WORD }) => (ast, { factory }) => {
11423
- factory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11423
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
11424
+ astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
11424
11425
  }
11425
11426
  };
11426
11427
  var verbA = {
11427
11428
  name: "VerbA",
11428
11429
  impl: ({ ACTION, CONSUME }) => (C) => {
11429
11430
  const token = CONSUME(a);
11430
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11431
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
11431
11432
  }
11432
11433
  };
11433
11434
 
@@ -11444,7 +11445,7 @@ var prologue = {
11444
11445
  ]));
11445
11446
  return result;
11446
11447
  },
11447
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11448
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11448
11449
  for (const context of ast) {
11449
11450
  if (F2.isContextDefinitionBase(context)) {
11450
11451
  SUBRULE(baseDecl2, context);
@@ -11459,11 +11460,12 @@ var baseDecl2 = {
11459
11460
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11460
11461
  const base = CONSUME(baseDecl);
11461
11462
  const val = SUBRULE(iriFull);
11462
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11463
+ return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
11463
11464
  },
11464
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11465
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11465
11466
  F2.printFilter(ast, () => PRINT_WORD("BASE"));
11466
11467
  SUBRULE(iri2, ast.value);
11468
+ F2.printFilter(ast, () => PRINT_WORD("\n"));
11467
11469
  }
11468
11470
  };
11469
11471
  var prefixDecl2 = {
@@ -11472,13 +11474,14 @@ var prefixDecl2 = {
11472
11474
  const prefix = CONSUME(prefixDecl);
11473
11475
  const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11474
11476
  const value = SUBRULE(iriFull);
11475
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11477
+ return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
11476
11478
  },
11477
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11479
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F2 }) => {
11478
11480
  F2.printFilter(ast, () => {
11479
11481
  PRINT_WORDS("PREFIX", `${ast.key}:`);
11480
11482
  });
11481
11483
  SUBRULE(iri2, ast.value);
11484
+ F2.printFilter(ast, () => PRINT_WORDS("\n"));
11482
11485
  }
11483
11486
  };
11484
11487
  var verb = {
@@ -11494,7 +11497,7 @@ var varOrTerm = {
11494
11497
  { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11495
11498
  { ALT: () => SUBRULE(graphTerm) }
11496
11499
  ]),
11497
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11500
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11498
11501
  if (F2.isTermVariable(ast)) {
11499
11502
  return SUBRULE(var_, ast);
11500
11503
  }
@@ -11515,9 +11518,9 @@ var var_ = {
11515
11518
  { ALT: () => CONSUME(terminals_exports.var1) },
11516
11519
  { ALT: () => CONSUME(terminals_exports.var2) }
11517
11520
  ]);
11518
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11521
+ return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
11519
11522
  },
11520
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11523
+ gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11521
11524
  F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11522
11525
  }
11523
11526
  };
@@ -11531,10 +11534,10 @@ var graphTerm = {
11531
11534
  { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
11532
11535
  { ALT: () => {
11533
11536
  const tokenNil = CONSUME(terminals_exports.nil);
11534
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), CommonIRIs.NIL));
11537
+ return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
11535
11538
  } }
11536
11539
  ]),
11537
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11540
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
11538
11541
  if (F2.isTermNamed(ast)) {
11539
11542
  SUBRULE(iri2, ast);
11540
11543
  } else if (F2.isTermLiteral(ast)) {
@@ -11554,14 +11557,14 @@ function datasetClauseUsing(name, token) {
11554
11557
  return OR([
11555
11558
  { ALT: () => {
11556
11559
  const iri3 = SUBRULE(defaultGraphClause);
11557
- return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11560
+ return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
11558
11561
  } },
11559
11562
  { ALT: () => {
11560
11563
  const namedClause = SUBRULE(namedGraphClause);
11561
- return ACTION(() => C.factory.wrap({
11564
+ return ACTION(() => C.astFactory.wrap({
11562
11565
  clauseType: "named",
11563
11566
  value: namedClause.val
11564
- }, C.factory.sourceLocation(start, namedClause)));
11567
+ }, C.astFactory.sourceLocation(start, namedClause)));
11565
11568
  } }
11566
11569
  ]);
11567
11570
  }
@@ -11582,9 +11585,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11582
11585
  const clause = SUBRULE(subRule);
11583
11586
  clauses.push(clause);
11584
11587
  });
11585
- return ACTION(() => C.factory.datasetClauses(clauses.map((clause) => clause.val), C.factory.sourceLocation(...clauses)));
11588
+ return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
11586
11589
  },
11587
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11590
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11588
11591
  for (const clause of ast.clauses) {
11589
11592
  F2.printFilter(ast, () => PRINT_WORD(fromUsing));
11590
11593
  if (clause.clauseType === "named") {
@@ -11602,7 +11605,7 @@ var namedGraphClause = {
11602
11605
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11603
11606
  const named2 = CONSUME(graph_exports.named);
11604
11607
  const iri3 = SUBRULE(sourceSelector);
11605
- return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11608
+ return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
11606
11609
  }
11607
11610
  };
11608
11611
  var sourceSelector = {
@@ -11619,7 +11622,7 @@ function funcExpr1(func) {
11619
11622
  CONSUME(symbols_exports.LParen);
11620
11623
  const arg = SUBRULE(expression);
11621
11624
  const close = CONSUME(symbols_exports.RParen);
11622
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11625
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11623
11626
  }
11624
11627
  };
11625
11628
  }
@@ -11633,7 +11636,7 @@ function funcExpr2(func) {
11633
11636
  CONSUME(symbols_exports.comma);
11634
11637
  const arg2 = SUBRULE2(expression);
11635
11638
  const close = CONSUME(symbols_exports.RParen);
11636
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
11639
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
11637
11640
  }
11638
11641
  };
11639
11642
  }
@@ -11649,7 +11652,7 @@ function funcExpr3(func) {
11649
11652
  CONSUME2(symbols_exports.comma);
11650
11653
  const arg3 = SUBRULE3(expression);
11651
11654
  const close = CONSUME(symbols_exports.RParen);
11652
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11655
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
11653
11656
  }
11654
11657
  };
11655
11658
  }
@@ -11661,7 +11664,7 @@ function funcVar1(func) {
11661
11664
  CONSUME(symbols_exports.LParen);
11662
11665
  const arg = SUBRULE(var_);
11663
11666
  const close = CONSUME(symbols_exports.RParen);
11664
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11667
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11665
11668
  }
11666
11669
  };
11667
11670
  }
@@ -11675,11 +11678,11 @@ function funcExprOrNil1(func) {
11675
11678
  CONSUME(symbols_exports.LParen);
11676
11679
  const arg = SUBRULE(expression);
11677
11680
  const close = CONSUME(symbols_exports.RParen);
11678
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11681
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
11679
11682
  } },
11680
11683
  { ALT: () => {
11681
11684
  const nil2 = CONSUME(terminals_exports.nil);
11682
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
11685
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
11683
11686
  } }
11684
11687
  ]);
11685
11688
  }
@@ -11691,7 +11694,7 @@ function funcNil1(func) {
11691
11694
  impl: ({ ACTION, CONSUME }) => (C) => {
11692
11695
  const operator = CONSUME(func);
11693
11696
  const nil2 = CONSUME(terminals_exports.nil);
11694
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
11697
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
11695
11698
  }
11696
11699
  };
11697
11700
  }
@@ -11701,7 +11704,7 @@ function funcExprList1(func) {
11701
11704
  impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11702
11705
  const operator = CONSUME(func);
11703
11706
  const args = SUBRULE(expressionList);
11704
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
11707
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
11705
11708
  }
11706
11709
  };
11707
11710
  }
@@ -11719,7 +11722,7 @@ function funcExpr2or3(func) {
11719
11722
  return SUBRULE3(expression);
11720
11723
  });
11721
11724
  const close = CONSUME(symbols_exports.RParen);
11722
- return ACTION(() => C.factory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.factory.sourceLocation(operator, close)));
11725
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
11723
11726
  }
11724
11727
  };
11725
11728
  }
@@ -11739,7 +11742,7 @@ function funcExpr3or4(func) {
11739
11742
  return SUBRULE4(expression);
11740
11743
  });
11741
11744
  const close = CONSUME(symbols_exports.RParen);
11742
- return ACTION(() => C.factory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11745
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
11743
11746
  }
11744
11747
  };
11745
11748
  }
@@ -11749,7 +11752,7 @@ function funcGroupGraphPattern(func) {
11749
11752
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11750
11753
  const operator = CONSUME(func);
11751
11754
  const group = SUBRULE(groupGraphPattern);
11752
- return ACTION(() => C.factory.expressionPatternOperation(operator.image, group, C.factory.sourceLocation(operator, group)));
11755
+ return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
11753
11756
  }
11754
11757
  };
11755
11758
  }
@@ -11762,7 +11765,7 @@ function baseAggregateFunc(func) {
11762
11765
  const distinct2 = OPTION(() => CONSUME(distinct));
11763
11766
  const expr1 = SUBRULE(expression);
11764
11767
  const close = CONSUME(symbols_exports.RParen);
11765
- return ACTION(() => C.factory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.factory.sourceLocation(operator, close)));
11768
+ return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
11766
11769
  }
11767
11770
  };
11768
11771
  }
@@ -11902,17 +11905,17 @@ var aggregateCount = {
11902
11905
  const expressionVal = OR([
11903
11906
  { ALT: () => {
11904
11907
  const starToken = CONSUME(symbols_exports.star);
11905
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
11908
+ return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
11906
11909
  } },
11907
11910
  { ALT: () => SUBRULE(expression) }
11908
11911
  ]);
11909
11912
  const closeToken = CONSUME(symbols_exports.RParen);
11910
11913
  return ACTION(() => {
11911
- const F2 = C.factory;
11912
- if (C.factory.isWildcard(expressionVal)) {
11913
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
11914
+ const F2 = C.astFactory;
11915
+ if (C.astFactory.isWildcard(expressionVal)) {
11916
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
11914
11917
  }
11915
- return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.factory.sourceLocation(operatorToken, closeToken));
11918
+ return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
11916
11919
  });
11917
11920
  }
11918
11921
  };
@@ -11936,7 +11939,7 @@ var aggregateGroup_concat = {
11936
11939
  });
11937
11940
  const closeToken = CONSUME(symbols_exports.RParen);
11938
11941
  return ACTION(() => {
11939
- const F2 = C.factory;
11942
+ const F2 = C.astFactory;
11940
11943
  return F2.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F2.sourceLocation(operatorToken, closeToken));
11941
11944
  });
11942
11945
  }
@@ -11966,7 +11969,7 @@ var aggregate = {
11966
11969
  });
11967
11970
  return result;
11968
11971
  },
11969
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11972
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
11970
11973
  F2.printFilter(ast, () => {
11971
11974
  PRINT_WORD(ast.aggregation.toUpperCase(), "(");
11972
11975
  if (ast.distinct) {
@@ -11993,7 +11996,7 @@ var path = {
11993
11996
  };
11994
11997
  var pathGenerator = {
11995
11998
  name: "path",
11996
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
11999
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F2 }, braces = true) => {
11997
12000
  if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
11998
12001
  SUBRULE(iri2, ast);
11999
12002
  } else {
@@ -12042,7 +12045,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
12042
12045
  tailEnd = SUBRULE2(subRule);
12043
12046
  tail.push(tailEnd);
12044
12047
  });
12045
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12048
+ return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
12046
12049
  }
12047
12050
  };
12048
12051
  }
@@ -12053,7 +12056,7 @@ var pathEltOrInverse = {
12053
12056
  { ALT: () => {
12054
12057
  const hat2 = CONSUME(symbols_exports.hat);
12055
12058
  const item = SUBRULE2(pathElt);
12056
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12059
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12057
12060
  } }
12058
12061
  ])
12059
12062
  };
@@ -12064,7 +12067,7 @@ var pathElt = {
12064
12067
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12065
12068
  const item = SUBRULE(pathPrimary);
12066
12069
  const modification = OPTION(() => SUBRULE(pathMod));
12067
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12070
+ return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
12068
12071
  }
12069
12072
  };
12070
12073
  var pathMod = {
@@ -12096,7 +12099,7 @@ var pathNegatedPropertySet = {
12096
12099
  return OR([
12097
12100
  { ALT: () => {
12098
12101
  const noAlternative = SUBRULE1(pathOneInPropertySet);
12099
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12102
+ return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
12100
12103
  } },
12101
12104
  { ALT: () => {
12102
12105
  const open = CONSUME(symbols_exports.LParen);
@@ -12109,7 +12112,7 @@ var pathNegatedPropertySet = {
12109
12112
  });
12110
12113
  const close = CONSUME(symbols_exports.RParen);
12111
12114
  return ACTION(() => {
12112
- const F2 = C.factory;
12115
+ const F2 = C.astFactory;
12113
12116
  if (tail.length === 0) {
12114
12117
  return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12115
12118
  }
@@ -12130,7 +12133,7 @@ var pathOneInPropertySet = {
12130
12133
  { ALT: () => SUBRULE2(iri2) },
12131
12134
  { ALT: () => SUBRULE2(verbA) }
12132
12135
  ]);
12133
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12136
+ return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
12134
12137
  } }
12135
12138
  ])
12136
12139
  };
@@ -12155,33 +12158,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
12155
12158
  });
12156
12159
  }
12157
12160
  });
12158
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12161
+ return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
12159
12162
  };
12160
12163
  }
12161
12164
  var triplesBlock = {
12162
12165
  name: "triplesBlock",
12163
12166
  impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12164
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12167
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
12165
12168
  for (const [index, triple] of ast.triples.entries()) {
12166
12169
  HANDLE_LOC(triple, () => {
12167
12170
  const nextTriple = ast.triples.at(index);
12168
12171
  if (F2.isTripleCollection(triple)) {
12169
12172
  SUBRULE(graphNodePath, triple);
12170
- F2.printFilter(triple, () => PRINT_WORD("."));
12173
+ F2.printFilter(triple, () => PRINT_WORD(".\n"));
12171
12174
  } else {
12172
12175
  SUBRULE(graphNodePath, triple.subject);
12176
+ F2.printFilter(triple, () => PRINT_WORD(""));
12173
12177
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12174
12178
  SUBRULE(varOrTerm, triple.predicate);
12175
12179
  } else {
12176
12180
  SUBRULE(pathGenerator, triple.predicate, void 0);
12177
12181
  }
12182
+ F2.printFilter(triple, () => PRINT_WORD(""));
12178
12183
  SUBRULE(graphNodePath, triple.object);
12179
12184
  if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12180
- F2.printFilter(ast, () => PRINT_WORD("."));
12185
+ F2.printFilter(ast, () => PRINT_WORD(".\n"));
12181
12186
  } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12182
12187
  F2.printFilter(ast, () => PRINT_WORD(","));
12183
12188
  } else {
12184
- F2.printFilter(ast, () => PRINT_WORD(";"));
12189
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12185
12190
  }
12186
12191
  }
12187
12192
  });
@@ -12194,24 +12199,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
12194
12199
  impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12195
12200
  { ALT: () => {
12196
12201
  const subject = SUBRULE(varOrTerm);
12197
- const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.factory.dematerialized(subject)));
12202
+ const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
12198
12203
  return ACTION(() => {
12199
12204
  if (res.length > 0) {
12200
12205
  res[0].subject = subject;
12201
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12206
+ res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
12202
12207
  }
12203
12208
  return res;
12204
12209
  });
12205
12210
  } },
12206
12211
  { ALT: () => {
12207
12212
  const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12208
- const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.factory.graphNodeIdentifier(subjectNode)));
12213
+ const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
12209
12214
  return ACTION(() => {
12210
12215
  if (restNode.length === 0) {
12211
12216
  return [subjectNode];
12212
12217
  }
12213
12218
  restNode[0].subject = subjectNode;
12214
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12219
+ restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
12215
12220
  return restNode;
12216
12221
  });
12217
12222
  } }
@@ -12295,7 +12300,7 @@ function objectImpl(name, allowPaths) {
12295
12300
  name,
12296
12301
  impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12297
12302
  const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12298
- return ACTION(() => C.factory.triple(subject, predicate, node));
12303
+ return ACTION(() => C.astFactory.triple(subject, predicate, node));
12299
12304
  }
12300
12305
  };
12301
12306
  }
@@ -12312,7 +12317,7 @@ function collectionImpl(name, allowPaths) {
12312
12317
  });
12313
12318
  const endToken = CONSUME(symbols_exports.RParen);
12314
12319
  return ACTION(() => {
12315
- const F2 = C.factory;
12320
+ const F2 = C.astFactory;
12316
12321
  const triples = [];
12317
12322
  const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
12318
12323
  const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
@@ -12336,7 +12341,7 @@ function collectionImpl(name, allowPaths) {
12336
12341
  return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12337
12342
  });
12338
12343
  },
12339
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12344
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12340
12345
  F2.printFilter(ast, () => PRINT_WORD("("));
12341
12346
  for (const [idx, triple] of ast.triples.entries()) {
12342
12347
  if (idx % 2 === 0) {
@@ -12367,13 +12372,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
12367
12372
  name,
12368
12373
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12369
12374
  const startToken = CONSUME(symbols_exports.LSquare);
12370
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12375
+ const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
12371
12376
  const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12372
12377
  const endToken = CONSUME(symbols_exports.RSquare);
12373
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.factory.sourceLocation(startToken, endToken)));
12378
+ return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
12374
12379
  },
12375
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12376
- F2.printFilter(ast, () => PRINT("["));
12380
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
12381
+ const { astFactory: F2, indentInc } = c;
12382
+ F2.printFilter(ast, () => {
12383
+ c[traqulaIndentation] += indentInc;
12384
+ PRINT("[\n");
12385
+ });
12377
12386
  for (const triple of ast.triples) {
12378
12387
  HANDLE_LOC(triple, () => {
12379
12388
  if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
@@ -12381,11 +12390,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
12381
12390
  } else {
12382
12391
  SUBRULE(pathGenerator, triple.predicate, void 0);
12383
12392
  }
12393
+ F2.printFilter(triple, () => PRINT_WORD(""));
12384
12394
  SUBRULE(graphNodePath, triple.object);
12385
- F2.printFilter(ast, () => PRINT_WORD(";"));
12395
+ F2.printFilter(ast, () => PRINT_WORD(";\n"));
12386
12396
  });
12387
12397
  }
12388
- F2.printFilter(ast, () => PRINT("]"));
12398
+ F2.printFilter(ast, () => {
12399
+ c[traqulaIndentation] -= indentInc;
12400
+ PRINT_ON_EMPTY("]");
12401
+ });
12389
12402
  }
12390
12403
  };
12391
12404
  }
@@ -12402,7 +12415,7 @@ function graphNodeImpl(name, allowPaths) {
12402
12415
  ALT: () => SUBRULE(triplesNodeRule)
12403
12416
  }
12404
12417
  ]),
12405
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12418
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12406
12419
  if (F2.isTerm(ast)) {
12407
12420
  SUBRULE(varOrTerm, ast);
12408
12421
  } else {
@@ -12420,9 +12433,9 @@ var whereClause = {
12420
12433
  impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12421
12434
  const where2 = OPTION(() => CONSUME(where));
12422
12435
  const group = SUBRULE(groupGraphPattern);
12423
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12436
+ return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
12424
12437
  },
12425
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12438
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12426
12439
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12427
12440
  SUBRULE(groupGraphPattern, ast.val);
12428
12441
  }
@@ -12436,19 +12449,26 @@ var groupGraphPattern = {
12436
12449
  { ALT: () => SUBRULE(groupGraphPatternSub) }
12437
12450
  ]);
12438
12451
  const close = CONSUME(symbols_exports.RCurly);
12439
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12452
+ return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
12440
12453
  },
12441
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12442
- F2.printFilter(ast, () => PRINT_WORD("{"));
12454
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12455
+ const { astFactory: F2, indentInc } = C;
12456
+ F2.printFilter(ast, () => {
12457
+ C[traqulaIndentation] += indentInc;
12458
+ PRINT_WORD("{\n");
12459
+ });
12443
12460
  for (const pattern of ast.patterns) {
12444
12461
  SUBRULE(generatePattern, pattern);
12445
12462
  }
12446
- F2.printFilter(ast, () => PRINT_WORD("}"));
12463
+ F2.printFilter(ast, () => {
12464
+ C[traqulaIndentation] -= indentInc;
12465
+ PRINT_ON_EMPTY("}\n");
12466
+ });
12447
12467
  }
12448
12468
  };
12449
12469
  var generatePattern = {
12450
12470
  name: "generatePattern",
12451
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12471
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
12452
12472
  if (ast.type === "query") {
12453
12473
  SUBRULE(query, F2.querySelect({
12454
12474
  context: [],
@@ -12537,9 +12557,9 @@ var optionalGraphPattern = {
12537
12557
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12538
12558
  const optional2 = CONSUME(optional);
12539
12559
  const group = SUBRULE(groupGraphPattern);
12540
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12560
+ return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
12541
12561
  },
12542
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12562
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12543
12563
  F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12544
12564
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12545
12565
  }
@@ -12550,9 +12570,9 @@ var graphGraphPattern = {
12550
12570
  const graph2 = CONSUME(graph_exports.graph);
12551
12571
  const name = SUBRULE(varOrIri);
12552
12572
  const group = SUBRULE(groupGraphPattern);
12553
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12573
+ return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
12554
12574
  },
12555
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12575
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12556
12576
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12557
12577
  SUBRULE(varOrTerm, ast.name);
12558
12578
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
@@ -12568,9 +12588,9 @@ var serviceGraphPattern = {
12568
12588
  }) ?? false;
12569
12589
  const name = SUBRULE1(varOrIri);
12570
12590
  const group = SUBRULE1(groupGraphPattern);
12571
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12591
+ return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
12572
12592
  },
12573
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12593
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12574
12594
  F2.printFilter(ast, () => {
12575
12595
  PRINT_WORD("SERVICE");
12576
12596
  if (ast.silent) {
@@ -12590,14 +12610,14 @@ var bind2 = {
12590
12610
  CONSUME(as);
12591
12611
  const variable = SUBRULE(var_);
12592
12612
  const close = CONSUME(symbols_exports.RParen);
12593
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12613
+ return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
12594
12614
  },
12595
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12615
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12596
12616
  F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12597
12617
  SUBRULE(expression, ast.expression);
12598
12618
  F2.printFilter(ast, () => PRINT_WORD("AS"));
12599
12619
  SUBRULE(var_, ast.variable);
12600
- F2.printFilter(ast, () => PRINT_WORD(")"));
12620
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12601
12621
  }
12602
12622
  };
12603
12623
  var inlineData = {
@@ -12605,16 +12625,19 @@ var inlineData = {
12605
12625
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12606
12626
  const values3 = CONSUME(values2);
12607
12627
  const datablock = SUBRULE(dataBlock);
12608
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12628
+ return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
12609
12629
  },
12610
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12630
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
12631
+ const { astFactory: F2, indentInc } = C;
12611
12632
  const variables = Object.keys(ast.values.at(0) ?? {});
12612
12633
  F2.printFilter(ast, () => {
12634
+ PRINT_ON_EMPTY("");
12613
12635
  PRINT_WORD("VALUES", "(");
12614
12636
  for (const variable of variables) {
12615
12637
  PRINT_WORD(`?${variable}`);
12616
12638
  }
12617
- PRINT_WORD(")", "{");
12639
+ C[traqulaIndentation] += indentInc;
12640
+ PRINT_WORD(")", "{\n");
12618
12641
  });
12619
12642
  for (const mapping of ast.values) {
12620
12643
  F2.printFilter(ast, () => PRINT_WORD("("));
@@ -12625,9 +12648,12 @@ var inlineData = {
12625
12648
  SUBRULE(graphNodePath, mapping[variable]);
12626
12649
  }
12627
12650
  }
12628
- F2.printFilter(ast, () => PRINT_WORD(")"));
12651
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12629
12652
  }
12630
- F2.printFilter(ast, () => PRINT_WORD("}"));
12653
+ F2.printFilter(ast, () => {
12654
+ C[traqulaIndentation] -= indentInc;
12655
+ PRINT_ON_EMPTY("}\n");
12656
+ });
12631
12657
  }
12632
12658
  };
12633
12659
  var dataBlock = {
@@ -12650,7 +12676,7 @@ var inlineDataOneVar = {
12650
12676
  });
12651
12677
  });
12652
12678
  const close = CONSUME(symbols_exports.RCurly);
12653
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
12679
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
12654
12680
  }
12655
12681
  };
12656
12682
  var inlineDataFull = {
@@ -12667,7 +12693,7 @@ var inlineDataFull = {
12667
12693
  res.push({});
12668
12694
  });
12669
12695
  const close = CONSUME1(symbols_exports.RCurly);
12670
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12696
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
12671
12697
  } },
12672
12698
  { ALT: () => {
12673
12699
  const open = CONSUME1(symbols_exports.LParen);
@@ -12699,7 +12725,7 @@ var inlineDataFull = {
12699
12725
  });
12700
12726
  });
12701
12727
  const close = CONSUME2(symbols_exports.RCurly);
12702
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
12728
+ return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
12703
12729
  } }
12704
12730
  ]);
12705
12731
  }
@@ -12722,9 +12748,9 @@ var minusGraphPattern = {
12722
12748
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12723
12749
  const minus2 = CONSUME(minus);
12724
12750
  const group = SUBRULE(groupGraphPattern);
12725
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
12751
+ return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
12726
12752
  },
12727
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12753
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12728
12754
  F2.printFilter(ast, () => PRINT_WORD("MINUS"));
12729
12755
  SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12730
12756
  }
@@ -12740,9 +12766,9 @@ var groupOrUnionGraphPattern = {
12740
12766
  const group2 = SUBRULE2(groupGraphPattern);
12741
12767
  groups.push(group2);
12742
12768
  });
12743
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(groups, C.factory.sourceLocation(group, groups.at(-1))));
12769
+ return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
12744
12770
  },
12745
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12771
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12746
12772
  if (F2.isPatternUnion(ast)) {
12747
12773
  const [head2, ...tail] = ast.patterns;
12748
12774
  SUBRULE(groupGraphPattern, head2);
@@ -12760,12 +12786,12 @@ var filter3 = {
12760
12786
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12761
12787
  const filterToken = CONSUME(filter2);
12762
12788
  const expression2 = SUBRULE(constraint);
12763
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
12789
+ return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
12764
12790
  },
12765
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12791
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12766
12792
  F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
12767
12793
  SUBRULE(expression, ast.expression);
12768
- F2.printFilter(ast, () => PRINT_WORD(")"));
12794
+ F2.printFilter(ast, () => PRINT_WORD(")\n"));
12769
12795
  }
12770
12796
  };
12771
12797
  var constraint = {
@@ -12781,7 +12807,7 @@ var functionCall = {
12781
12807
  impl: ({ ACTION, SUBRULE }) => (C) => {
12782
12808
  const func = SUBRULE(iri2);
12783
12809
  const args = SUBRULE(argList);
12784
- return ACTION(() => C.factory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.factory.sourceLocation(func, args)));
12810
+ return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
12785
12811
  }
12786
12812
  };
12787
12813
 
@@ -12791,7 +12817,7 @@ var argList = {
12791
12817
  impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
12792
12818
  { ALT: () => {
12793
12819
  const nil2 = CONSUME(terminals_exports.nil);
12794
- return ACTION(() => C.factory.wrap({ args: [], distinct: false }, C.factory.sourceLocation(nil2)));
12820
+ return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
12795
12821
  } },
12796
12822
  { ALT: () => {
12797
12823
  const args = [];
@@ -12808,10 +12834,10 @@ var argList = {
12808
12834
  }
12809
12835
  });
12810
12836
  const close = CONSUME(symbols_exports.RParen);
12811
- return ACTION(() => C.factory.wrap({ args, distinct: distinct2 }, C.factory.sourceLocation(open, close)));
12837
+ return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
12812
12838
  } }
12813
12839
  ]),
12814
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12840
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12815
12841
  F2.printFilter(ast, () => {
12816
12842
  PRINT_WORD("(");
12817
12843
  if (ast.val.distinct) {
@@ -12834,7 +12860,7 @@ var expressionList = {
12834
12860
  impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
12835
12861
  { ALT: () => {
12836
12862
  const nil2 = CONSUME(terminals_exports.nil);
12837
- return ACTION(() => C.factory.wrap([], C.factory.sourceLocation(nil2)));
12863
+ return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
12838
12864
  } },
12839
12865
  { ALT: () => {
12840
12866
  const open = CONSUME(symbols_exports.LParen);
@@ -12846,7 +12872,7 @@ var expressionList = {
12846
12872
  args.push(expr);
12847
12873
  });
12848
12874
  const close = CONSUME(symbols_exports.RParen);
12849
- return ACTION(() => C.factory.wrap(args, C.factory.sourceLocation(open, close)));
12875
+ return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
12850
12876
  } }
12851
12877
  ])
12852
12878
  };
@@ -12855,7 +12881,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
12855
12881
  var expression = {
12856
12882
  name: "expression",
12857
12883
  impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
12858
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12884
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
12859
12885
  if (F2.isTerm(ast)) {
12860
12886
  SUBRULE(varOrTerm, ast);
12861
12887
  } else if (F2.isExpressionOperator(ast)) {
@@ -12920,7 +12946,7 @@ var conditionalOrExpression = {
12920
12946
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
12921
12947
  CONSUME(symbols_exports.logicOr);
12922
12948
  const args = SUBRULE2(conditionalAndExpression);
12923
- return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
12949
+ return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
12924
12950
  }, ACTION, MANY)
12925
12951
  };
12926
12952
  var conditionalAndExpression = {
@@ -12928,7 +12954,7 @@ var conditionalAndExpression = {
12928
12954
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
12929
12955
  CONSUME(symbols_exports.logicAnd);
12930
12956
  const arg = SUBRULE2(valueLogical);
12931
- return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
12957
+ return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
12932
12958
  }, ACTION, MANY)
12933
12959
  };
12934
12960
  var valueLogical = {
@@ -12950,7 +12976,7 @@ var relationalExpression = {
12950
12976
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
12951
12977
  ]);
12952
12978
  const expr = SUBRULE2(numericExpression);
12953
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, expr], C.factory.sourceLocation(args1, expr)));
12979
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
12954
12980
  } },
12955
12981
  { ALT: () => {
12956
12982
  const operator = OR3([
@@ -12958,7 +12984,7 @@ var relationalExpression = {
12958
12984
  { ALT: () => CONSUME(notIn) }
12959
12985
  ]);
12960
12986
  const args = SUBRULE1(expressionList);
12961
- return ACTION(() => C.factory.expressionOperation(operator.image, [args1, ...args.val], C.factory.sourceLocation(args1, args)));
12987
+ return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
12962
12988
  } }
12963
12989
  ]));
12964
12990
  return expression2 ?? args1;
@@ -12977,7 +13003,7 @@ var additiveExpression = {
12977
13003
  { ALT: () => CONSUME(symbols_exports.opMinus) }
12978
13004
  ]);
12979
13005
  const arg = SUBRULE2(multiplicativeExpression);
12980
- return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13006
+ return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
12981
13007
  } },
12982
13008
  { ALT: () => {
12983
13009
  const { operator, startInt } = OR3([
@@ -13008,9 +13034,9 @@ var additiveExpression = {
13008
13034
  { ALT: () => CONSUME(symbols_exports.slash) }
13009
13035
  ]);
13010
13036
  const innerExpr = SUBRULE1(unaryExpression);
13011
- return ACTION(() => (leftInner) => C.factory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.factory.sourceLocation(leftInner, innerExpr)));
13037
+ return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
13012
13038
  }, ACTION, MANY2);
13013
- return (left) => C.factory.expressionOperation(operator, [left, multiplicativeExpr], C.factory.sourceLocation(left, multiplicativeExpr));
13039
+ return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
13014
13040
  } }
13015
13041
  ]), ACTION, MANY1)
13016
13042
  };
@@ -13027,7 +13053,7 @@ var multiplicativeExpression = {
13027
13053
  subType: "operation",
13028
13054
  operator: operator.image,
13029
13055
  args: [left, expr],
13030
- loc: C.factory.sourceLocation(left, expr)
13056
+ loc: C.astFactory.sourceLocation(left, expr)
13031
13057
  });
13032
13058
  }, ACTION, MANY)
13033
13059
  };
@@ -13042,7 +13068,7 @@ var unaryExpression = {
13042
13068
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13043
13069
  ]);
13044
13070
  const expr = SUBRULE2(primaryExpression);
13045
- return ACTION(() => C.factory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.factory.sourceLocation(operator, expr)));
13071
+ return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
13046
13072
  } }
13047
13073
  ])
13048
13074
  };
@@ -13065,7 +13091,7 @@ var brackettedExpression = {
13065
13091
  const expr = SUBRULE(expression);
13066
13092
  const close = CONSUME(symbols_exports.RParen);
13067
13093
  return ACTION(() => {
13068
- expr.loc = C.factory.sourceLocation(open, close);
13094
+ expr.loc = C.astFactory.sourceLocation(open, close);
13069
13095
  return expr;
13070
13096
  });
13071
13097
  }
@@ -13087,13 +13113,13 @@ var iriOrFunction = {
13087
13113
  function: iriVal,
13088
13114
  args: args.val.args,
13089
13115
  distinct: distinct2,
13090
- loc: C.factory.sourceLocation(iriVal, args)
13116
+ loc: C.astFactory.sourceLocation(iriVal, args)
13091
13117
  };
13092
13118
  });
13093
13119
  });
13094
13120
  return functionCall2 ?? iriVal;
13095
13121
  },
13096
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13122
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13097
13123
  if (F2.isTermNamed(ast)) {
13098
13124
  SUBRULE(iri2, ast);
13099
13125
  } else {
@@ -13146,11 +13172,14 @@ var groupClause = {
13146
13172
  type: "solutionModifier",
13147
13173
  subType: "group",
13148
13174
  groupings,
13149
- loc: C.factory.sourceLocation(start, groupings.at(-1))
13175
+ loc: C.astFactory.sourceLocation(start, groupings.at(-1))
13150
13176
  }));
13151
13177
  },
13152
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13153
- F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13178
+ gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13179
+ F2.printFilter(ast, () => {
13180
+ PRINT_ON_EMPTY("");
13181
+ PRINT_WORDS("GROUP", "BY");
13182
+ });
13154
13183
  for (const grouping of ast.groupings) {
13155
13184
  if (F2.isExpression(grouping)) {
13156
13185
  SUBRULE(expression, grouping);
@@ -13184,7 +13213,7 @@ var groupCondition = {
13184
13213
  return {
13185
13214
  variable,
13186
13215
  value: expressionValue,
13187
- loc: C.factory.sourceLocation(open, close)
13216
+ loc: C.astFactory.sourceLocation(open, close)
13188
13217
  };
13189
13218
  }
13190
13219
  return expressionValue;
@@ -13203,10 +13232,13 @@ var havingClause = {
13203
13232
  expressions.push(SUBRULE(havingCondition));
13204
13233
  });
13205
13234
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13206
- return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
13235
+ return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
13207
13236
  },
13208
- gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13209
- F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13237
+ gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13238
+ F2.printFilter(ast, () => {
13239
+ PRINT_ON_EMPTY("");
13240
+ PRINT_WORD("HAVING");
13241
+ });
13210
13242
  for (const having2 of ast.having) {
13211
13243
  SUBRULE(expression, having2);
13212
13244
  }
@@ -13227,10 +13259,13 @@ var orderClause = {
13227
13259
  orderings.push(SUBRULE1(orderCondition));
13228
13260
  });
13229
13261
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13230
- return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
13262
+ return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
13231
13263
  },
13232
- gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, { factory: F2 }) => {
13233
- F2.printFilter(ast, () => PRINT_WORDS("ORDER", "BY"));
13264
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
13265
+ F2.printFilter(ast, () => {
13266
+ PRINT_ON_EMPTY("");
13267
+ PRINT_WORDS("ORDER", "BY");
13268
+ });
13234
13269
  for (const ordering of ast.orderDefs) {
13235
13270
  if (ordering.descending) {
13236
13271
  F2.printFilter(ast, () => PRINT_WORDS("DESC"));
@@ -13261,7 +13296,7 @@ var orderCondition = {
13261
13296
  return ACTION(() => ({
13262
13297
  expression: expr,
13263
13298
  descending: descending[0],
13264
- loc: C.factory.sourceLocation(descending[1], expr)
13299
+ loc: C.astFactory.sourceLocation(descending[1], expr)
13265
13300
  }));
13266
13301
  } },
13267
13302
  { ALT: () => {
@@ -13280,16 +13315,17 @@ var limitOffsetClauses = {
13280
13315
  { ALT: () => {
13281
13316
  const limit2 = SUBRULE1(limitClause);
13282
13317
  const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13283
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.factory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13318
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
13284
13319
  } },
13285
13320
  { ALT: () => {
13286
13321
  const offset2 = SUBRULE2(offsetClause);
13287
13322
  const limit2 = OPTION2(() => SUBRULE2(limitClause));
13288
- return ACTION(() => C.factory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.factory.sourceLocation(offset2, limit2)));
13323
+ return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
13289
13324
  } }
13290
13325
  ]),
13291
- gImpl: ({ PRINT_WORDS }) => (ast, { factory: F2 }) => {
13326
+ gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
13292
13327
  F2.printFilter(ast, () => {
13328
+ PRINT_ON_EMPTY("");
13293
13329
  if (ast.limit) {
13294
13330
  PRINT_WORDS("LIMIT", String(ast.limit));
13295
13331
  }
@@ -13305,7 +13341,7 @@ var limitClause = {
13305
13341
  const offset2 = CONSUME(limit);
13306
13342
  const value = CONSUME(terminals_exports.integer);
13307
13343
  const val = Number.parseInt(value.image, 10);
13308
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13344
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13309
13345
  }
13310
13346
  };
13311
13347
  var offsetClause = {
@@ -13314,7 +13350,7 @@ var offsetClause = {
13314
13350
  const offset2 = CONSUME(offset);
13315
13351
  const value = CONSUME(terminals_exports.integer);
13316
13352
  const val = Number.parseInt(value.image, 10);
13317
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(offset2, value)));
13353
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
13318
13354
  }
13319
13355
  };
13320
13356
 
@@ -13339,10 +13375,10 @@ var query = {
13339
13375
  ...subType,
13340
13376
  type: "query",
13341
13377
  ...values3 && { values: values3 },
13342
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
13378
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
13343
13379
  }));
13344
13380
  },
13345
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13381
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13346
13382
  SUBRULE(prologue, ast.context);
13347
13383
  if (F2.isQuerySelect(ast)) {
13348
13384
  SUBRULE(selectQuery, ast);
@@ -13372,13 +13408,13 @@ var selectQuery = {
13372
13408
  solutionModifiers: modifiers,
13373
13409
  datasets: from2,
13374
13410
  ...selectVal.val,
13375
- loc: C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13411
+ loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13376
13412
  };
13377
13413
  queryIsGood(ret);
13378
13414
  return ret;
13379
13415
  });
13380
13416
  },
13381
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13417
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
13382
13418
  SUBRULE(selectClause, F2.wrap({
13383
13419
  variables: ast.variables,
13384
13420
  distinct: ast.distinct,
@@ -13396,14 +13432,14 @@ var subSelect = {
13396
13432
  const where2 = SUBRULE(whereClause);
13397
13433
  const modifiers = SUBRULE(solutionModifier);
13398
13434
  const values3 = SUBRULE(valuesClause);
13399
- return ACTION(() => C.factory.querySelect({
13435
+ return ACTION(() => C.astFactory.querySelect({
13400
13436
  where: where2.val,
13401
- datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
13437
+ datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
13402
13438
  context: [],
13403
13439
  solutionModifiers: modifiers,
13404
13440
  ...selectVal.val,
13405
13441
  ...values3 && { values: values3 }
13406
- }, C.factory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13442
+ }, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
13407
13443
  }
13408
13444
  };
13409
13445
  var selectClause = {
@@ -13434,7 +13470,7 @@ var selectClause = {
13434
13470
  const star2 = CONSUME(symbols_exports.star);
13435
13471
  return ACTION(() => {
13436
13472
  last2 = star2;
13437
- return { variables: [C.factory.wildcard(C.factory.sourceLocation(star2))], ...distRed };
13473
+ return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
13438
13474
  });
13439
13475
  } },
13440
13476
  { ALT: () => {
@@ -13464,7 +13500,7 @@ var selectClause = {
13464
13500
  throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
13465
13501
  }
13466
13502
  usedVars.push(variable);
13467
- variables.push(C.factory.patternBind(expr, variable, C.factory.sourceLocation(open, last2)));
13503
+ variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
13468
13504
  });
13469
13505
  } }
13470
13506
  ]));
@@ -13472,9 +13508,9 @@ var selectClause = {
13472
13508
  } }
13473
13509
  ]);
13474
13510
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13475
- return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(select2, last2)));
13511
+ return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
13476
13512
  },
13477
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13513
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13478
13514
  F2.printFilter(ast, () => {
13479
13515
  PRINT_WORD("SELECT");
13480
13516
  if (ast.val.distinct) {
@@ -13514,7 +13550,7 @@ var constructQuery = {
13514
13550
  datasets: from2,
13515
13551
  where: where2.val,
13516
13552
  solutionModifiers: modifiers,
13517
- loc: C.factory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13553
+ loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13518
13554
  }));
13519
13555
  } },
13520
13556
  { ALT: () => {
@@ -13526,19 +13562,26 @@ var constructQuery = {
13526
13562
  subType: "construct",
13527
13563
  template: template.val,
13528
13564
  datasets: from2,
13529
- where: C.factory.patternGroup([template.val], C.factory.sourceLocation()),
13565
+ where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
13530
13566
  solutionModifiers: modifiers,
13531
- loc: C.factory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13567
+ loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13532
13568
  }));
13533
13569
  } }
13534
13570
  ]);
13535
13571
  },
13536
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13572
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13573
+ const { astFactory: F2, indentInc } = C;
13537
13574
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
13538
13575
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
13539
- F2.printFilter(ast, () => PRINT_WORD("{"));
13576
+ F2.printFilter(ast, () => {
13577
+ C[traqulaIndentation] += indentInc;
13578
+ PRINT_WORD("{\n");
13579
+ });
13540
13580
  SUBRULE(triplesBlock, ast.template);
13541
- F2.printFilter(ast, () => PRINT_WORD("}"));
13581
+ F2.printFilter(ast, () => {
13582
+ C[traqulaIndentation] -= indentInc;
13583
+ PRINT_ON_EMPTY("}\n");
13584
+ });
13542
13585
  }
13543
13586
  SUBRULE(datasetClauseStar, ast.datasets);
13544
13587
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
@@ -13563,7 +13606,7 @@ var describeQuery = {
13563
13606
  } },
13564
13607
  { ALT: () => {
13565
13608
  const star2 = CONSUME(symbols_exports.star);
13566
- return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
13609
+ return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
13567
13610
  } }
13568
13611
  ]);
13569
13612
  const from2 = SUBRULE1(datasetClauseStar);
@@ -13575,10 +13618,10 @@ var describeQuery = {
13575
13618
  datasets: from2,
13576
13619
  ...where2 && { where: where2.val },
13577
13620
  solutionModifiers: modifiers,
13578
- loc: C.factory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13621
+ loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13579
13622
  }));
13580
13623
  },
13581
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13624
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13582
13625
  F2.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
13583
13626
  if (F2.isWildcard(ast.variables[0])) {
13584
13627
  F2.printFilter(ast, () => PRINT_WORD("*"));
@@ -13606,10 +13649,10 @@ var askQuery = {
13606
13649
  datasets: from2,
13607
13650
  where: where2.val,
13608
13651
  solutionModifiers: modifiers,
13609
- loc: C.factory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13652
+ loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
13610
13653
  }));
13611
13654
  },
13612
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13655
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13613
13656
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
13614
13657
  SUBRULE(datasetClauseStar, ast.datasets);
13615
13658
  SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
@@ -13626,7 +13669,7 @@ var constructTemplate = {
13626
13669
  const open = CONSUME(symbols_exports.LCurly);
13627
13670
  const triples = OPTION(() => SUBRULE1(constructTriples));
13628
13671
  const close = CONSUME(symbols_exports.RCurly);
13629
- return ACTION(() => C.factory.wrap(triples ?? C.factory.patternBgp([], C.factory.sourceLocation()), C.factory.sourceLocation(open, close)));
13672
+ return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
13630
13673
  }
13631
13674
  };
13632
13675
  var constructTriples = {
@@ -13663,13 +13706,13 @@ var update = {
13663
13706
  const update2 = {
13664
13707
  type: "update",
13665
13708
  updates,
13666
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
13709
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
13667
13710
  };
13668
13711
  updateNoReuseBlankNodeLabels(update2);
13669
13712
  return update2;
13670
13713
  });
13671
13714
  },
13672
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13715
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13673
13716
  const [head2, ...tail] = ast.updates;
13674
13717
  if (head2) {
13675
13718
  SUBRULE(prologue, head2.context);
@@ -13749,9 +13792,9 @@ var load2 = {
13749
13792
  CONSUME(loadInto);
13750
13793
  return SUBRULE1(graphRef);
13751
13794
  });
13752
- return ACTION(() => C.factory.updateOperationLoad(C.factory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
13795
+ return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
13753
13796
  },
13754
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13797
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13755
13798
  F2.printFilter(ast, () => {
13756
13799
  PRINT_WORD("LOAD");
13757
13800
  if (ast.silent) {
@@ -13772,9 +13815,9 @@ function clearOrDrop(operation) {
13772
13815
  const opToken = CONSUME(operation);
13773
13816
  const silent2 = OPTION(() => CONSUME(silent));
13774
13817
  const destination = SUBRULE1(graphRefAll);
13775
- return ACTION(() => C.factory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.factory.sourceLocation(opToken, destination)));
13818
+ return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
13776
13819
  },
13777
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13820
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13778
13821
  F2.printFilter(ast, () => {
13779
13822
  PRINT_WORD(operation.name.toUpperCase());
13780
13823
  if (ast.silent) {
@@ -13793,9 +13836,9 @@ var create2 = {
13793
13836
  const createToken3 = CONSUME(create);
13794
13837
  const silent2 = OPTION(() => CONSUME(silent));
13795
13838
  const destination = SUBRULE1(graphRef);
13796
- return ACTION(() => C.factory.updateOperationCreate(destination, Boolean(silent2), C.factory.sourceLocation(createToken3, destination)));
13839
+ return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
13797
13840
  },
13798
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13841
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13799
13842
  F2.printFilter(ast, () => {
13800
13843
  PRINT_WORD("CREATE");
13801
13844
  if (ast.silent) {
@@ -13814,9 +13857,9 @@ function copyMoveAddOperation(operation) {
13814
13857
  const source = SUBRULE1(graphOrDefault);
13815
13858
  CONSUME(to);
13816
13859
  const destination = SUBRULE2(graphOrDefault);
13817
- return ACTION(() => C.factory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.factory.sourceLocation(op, destination)));
13860
+ return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
13818
13861
  },
13819
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13862
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13820
13863
  F2.printFilter(ast, () => {
13821
13864
  PRINT_WORD(operation.name.toUpperCase());
13822
13865
  if (ast.silent) {
@@ -13838,7 +13881,7 @@ var quadPattern = {
13838
13881
  const open = CONSUME(symbols_exports.LCurly);
13839
13882
  const val = SUBRULE1(quads);
13840
13883
  const close = CONSUME(symbols_exports.RCurly);
13841
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
13884
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
13842
13885
  }
13843
13886
  };
13844
13887
  var quadData = {
@@ -13849,7 +13892,7 @@ var quadData = {
13849
13892
  const val = SUBRULE1(quads);
13850
13893
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
13851
13894
  const close = CONSUME(symbols_exports.RCurly);
13852
- return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
13895
+ return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
13853
13896
  }
13854
13897
  };
13855
13898
  function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
@@ -13866,12 +13909,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
13866
13909
  if (name !== "insertData") {
13867
13910
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
13868
13911
  }
13869
- return ACTION(() => C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));
13912
+ return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
13870
13913
  },
13871
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13872
- F2.printFilter(ast, () => PRINT_WORD(subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE", "{"));
13914
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13915
+ const { astFactory: F2, indentInc } = C;
13916
+ F2.printFilter(ast, () => {
13917
+ C[traqulaIndentation] += indentInc;
13918
+ if (subType === "insertdata") {
13919
+ PRINT_WORD("INSERT DATA");
13920
+ } else if (subType === "deletedata") {
13921
+ PRINT_WORD("DELETE DATA");
13922
+ } else if (subType === "deletewhere") {
13923
+ PRINT_WORD("DELETE WHERE");
13924
+ }
13925
+ PRINT_WORD("{\n");
13926
+ });
13873
13927
  SUBRULE(quads, F2.wrap(ast.data, ast.loc));
13874
- F2.printFilter(ast, () => PRINT_WORD("}"));
13928
+ F2.printFilter(ast, () => {
13929
+ C[traqulaIndentation] -= indentInc;
13930
+ PRINT_ON_EMPTY("}\n");
13931
+ });
13875
13932
  }
13876
13933
  };
13877
13934
  }
@@ -13900,22 +13957,35 @@ var modify = {
13900
13957
  const using = SUBRULE1(usingClauseStar);
13901
13958
  CONSUME(where);
13902
13959
  const where2 = SUBRULE1(groupGraphPattern);
13903
- return ACTION(() => C.factory.updateOperationModify(C.factory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
13960
+ return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
13904
13961
  },
13905
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13962
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
13963
+ const { astFactory: F2, indentInc } = C;
13906
13964
  if (ast.graph) {
13907
13965
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
13908
13966
  SUBRULE(iri2, ast.graph);
13909
13967
  }
13910
13968
  if (ast.delete.length > 0) {
13911
- F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
13969
+ F2.printFilter(ast, () => {
13970
+ C[traqulaIndentation] += indentInc;
13971
+ PRINT_WORD("DELETE", "{\n");
13972
+ });
13912
13973
  SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
13913
- F2.printFilter(ast, () => PRINT_WORD("}"));
13974
+ F2.printFilter(ast, () => {
13975
+ C[traqulaIndentation] -= indentInc;
13976
+ PRINT_ON_EMPTY("}\n");
13977
+ });
13914
13978
  }
13915
13979
  if (ast.insert.length > 0) {
13916
- F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
13980
+ F2.printFilter(ast, () => {
13981
+ C[traqulaIndentation] += indentInc;
13982
+ PRINT_WORD("INSERT", "{\n");
13983
+ });
13917
13984
  SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
13918
- F2.printFilter(ast, () => PRINT_WORD("}"));
13985
+ F2.printFilter(ast, () => {
13986
+ C[traqulaIndentation] -= indentInc;
13987
+ PRINT_ON_EMPTY("}\n");
13988
+ });
13919
13989
  }
13920
13990
  SUBRULE(usingClauseStar, ast.from);
13921
13991
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
@@ -13929,7 +13999,7 @@ var deleteClause2 = {
13929
13999
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
13930
14000
  const del = SUBRULE(quadPattern);
13931
14001
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
13932
- return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14002
+ return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
13933
14003
  }
13934
14004
  };
13935
14005
  var insertClause2 = {
@@ -13937,7 +14007,7 @@ var insertClause2 = {
13937
14007
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13938
14008
  const insertToken = CONSUME(insertClause);
13939
14009
  const insert = SUBRULE(quadPattern);
13940
- return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14010
+ return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
13941
14011
  }
13942
14012
  };
13943
14013
  var graphOrDefault = {
@@ -13945,12 +14015,12 @@ var graphOrDefault = {
13945
14015
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
13946
14016
  { ALT: () => {
13947
14017
  const def = CONSUME(graph_exports.default_);
13948
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14018
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
13949
14019
  } },
13950
14020
  { ALT: () => {
13951
14021
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
13952
14022
  const name = SUBRULE1(iri2);
13953
- return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14023
+ return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
13954
14024
  } }
13955
14025
  ])
13956
14026
  };
@@ -13959,9 +14029,9 @@ var graphRef = {
13959
14029
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13960
14030
  const graph2 = CONSUME(graph_exports.graph);
13961
14031
  const val = SUBRULE(iri2);
13962
- return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14032
+ return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
13963
14033
  },
13964
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14034
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13965
14035
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
13966
14036
  SUBRULE(iri2, ast.graph);
13967
14037
  }
@@ -13972,18 +14042,18 @@ var graphRefAll = {
13972
14042
  { ALT: () => SUBRULE(graphRef) },
13973
14043
  { ALT: () => {
13974
14044
  const def = CONSUME(graph_exports.default_);
13975
- return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
14045
+ return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
13976
14046
  } },
13977
14047
  { ALT: () => {
13978
14048
  const named2 = CONSUME(graph_exports.named);
13979
- return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named2)));
14049
+ return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
13980
14050
  } },
13981
14051
  { ALT: () => {
13982
14052
  const graphAll2 = CONSUME(graph_exports.graphAll);
13983
- return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll2)));
14053
+ return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
13984
14054
  } }
13985
14055
  ]),
13986
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14056
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
13987
14057
  if (F2.isGraphRefSpecific(ast)) {
13988
14058
  SUBRULE(graphRef, ast);
13989
14059
  } else if (F2.isGraphRefDefault(ast)) {
@@ -14020,9 +14090,9 @@ var quads = {
14020
14090
  ACTION(() => quads2.push(triples));
14021
14091
  });
14022
14092
  });
14023
- return ACTION(() => C.factory.wrap(quads2, C.factory.sourceLocation(quads2.at(0), last2)));
14093
+ return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
14024
14094
  },
14025
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14095
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14026
14096
  for (const quad of ast.val) {
14027
14097
  if (F2.isPattern(quad)) {
14028
14098
  SUBRULE(triplesBlock, quad);
@@ -14040,14 +14110,21 @@ var quadsNotTriples = {
14040
14110
  CONSUME(symbols_exports.LCurly);
14041
14111
  const triples = OPTION(() => SUBRULE1(triplesTemplate));
14042
14112
  const close = CONSUME(symbols_exports.RCurly);
14043
- return ACTION(() => C.factory.graphQuads(name, triples ?? C.factory.patternBgp([], C.factory.sourceLocationNoMaterialize()), C.factory.sourceLocation(graph2, close)));
14113
+ return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
14044
14114
  },
14045
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14115
+ gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
14116
+ const { astFactory: F2, indentInc } = C;
14046
14117
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14047
14118
  SUBRULE(varOrTerm, ast.graph);
14048
- F2.printFilter(ast, () => PRINT_WORD("{"));
14119
+ F2.printFilter(ast, () => {
14120
+ C[traqulaIndentation] += indentInc;
14121
+ PRINT_WORD("{\n");
14122
+ });
14049
14123
  SUBRULE(triplesBlock, ast.triples);
14050
- F2.printFilter(ast, () => PRINT_WORD("}"));
14124
+ F2.printFilter(ast, () => {
14125
+ C[traqulaIndentation] -= indentInc;
14126
+ PRINT_ON_EMPTY("}\n");
14127
+ });
14051
14128
  }
14052
14129
  };
14053
14130
 
@@ -14070,7 +14147,7 @@ var queryOrUpdate = {
14070
14147
  ...subType,
14071
14148
  type: "query",
14072
14149
  ...values3 && { values: values3 },
14073
- loc: C.factory.sourceLocation(prologueValues.at(0), subType, values3)
14150
+ loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
14074
14151
  }));
14075
14152
  } },
14076
14153
  { ALT: () => {
@@ -14094,7 +14171,7 @@ var queryOrUpdate = {
14094
14171
  const update2 = {
14095
14172
  type: "update",
14096
14173
  updates,
14097
- loc: C.factory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14174
+ loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
14098
14175
  };
14099
14176
  updateNoReuseBlankNodeLabels(update2);
14100
14177
  return update2;
@@ -14102,7 +14179,7 @@ var queryOrUpdate = {
14102
14179
  } }
14103
14180
  ]);
14104
14181
  },
14105
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14182
+ gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
14106
14183
  if (F2.isQuery(ast)) {
14107
14184
  SUBRULE(query, ast);
14108
14185
  } else {