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