@traqula/rules-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/MinimalSparqlParser.d.ts +3 -3
- package/lib/MinimalSparqlParser.js +6 -3
- package/lib/MinimalSparqlParser.js.map +1 -1
- package/lib/Sparql11types.d.ts +1 -1
- package/lib/Sparql11types.js.map +1 -1
- package/lib/{factory.d.ts → astFactory.d.ts} +4 -4
- package/lib/{factory.js → astFactory.js} +3 -3
- package/lib/astFactory.js.map +1 -0
- package/lib/expressionHelpers.js +12 -12
- package/lib/expressionHelpers.js.map +1 -1
- package/lib/factoryMixins/ContextFactory.d.ts +2 -2
- package/lib/factoryMixins/ContextFactory.js.map +1 -1
- package/lib/factoryMixins/ExpressionFactory.d.ts +2 -2
- package/lib/factoryMixins/ExpressionFactory.js.map +1 -1
- package/lib/factoryMixins/GraphRefFactory.d.ts +2 -2
- package/lib/factoryMixins/GraphRefFactory.js.map +1 -1
- package/lib/factoryMixins/PathFactory.d.ts +2 -2
- package/lib/factoryMixins/PathFactory.js.map +1 -1
- package/lib/factoryMixins/Patternfactory.d.ts +2 -2
- package/lib/factoryMixins/Patternfactory.js.map +1 -1
- package/lib/factoryMixins/QueryFactory.d.ts +2 -2
- package/lib/factoryMixins/QueryFactory.js.map +1 -1
- package/lib/factoryMixins/SolutionModifiersFactory.d.ts +2 -2
- package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -1
- package/lib/factoryMixins/TermFactory.d.ts +2 -2
- package/lib/factoryMixins/TermFactory.js.map +1 -1
- package/lib/factoryMixins/UpdateOperationFactory.d.ts +2 -2
- package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -1
- package/lib/grammar/builtIn.d.ts +1 -1
- package/lib/grammar/builtIn.js +7 -7
- package/lib/grammar/builtIn.js.map +1 -1
- package/lib/grammar/dataSetClause.js +6 -6
- package/lib/grammar/dataSetClause.js.map +1 -1
- package/lib/grammar/expression.js +18 -18
- package/lib/grammar/expression.js.map +1 -1
- package/lib/grammar/general.js +12 -10
- package/lib/grammar/general.js.map +1 -1
- package/lib/grammar/index.js +3 -3
- package/lib/grammar/index.js.map +1 -1
- package/lib/grammar/literals.js +24 -24
- package/lib/grammar/literals.js.map +1 -1
- package/lib/grammar/propertyPaths.d.ts +2 -2
- package/lib/grammar/propertyPaths.js +7 -7
- package/lib/grammar/propertyPaths.js.map +1 -1
- package/lib/grammar/queryUnit.js +31 -23
- package/lib/grammar/queryUnit.js.map +1 -1
- package/lib/grammar/solutionModifier.js +26 -16
- package/lib/grammar/solutionModifier.js.map +1 -1
- package/lib/grammar/tripleBlock.d.ts +4 -4
- package/lib/grammar/tripleBlock.js +33 -20
- package/lib/grammar/tripleBlock.js.map +1 -1
- package/lib/grammar/updateUnit.js +75 -41
- package/lib/grammar/updateUnit.js.map +1 -1
- package/lib/grammar/whereClause.d.ts +1 -1
- package/lib/grammar/whereClause.js +46 -32
- package/lib/grammar/whereClause.js.map +1 -1
- package/lib/index.cjs +568 -383
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/lexer/BuiltInCalls.d.ts +1 -1
- package/lib/lexer/lexer.d.ts +2 -2
- package/lib/lexer/symbols.d.ts +1 -1
- package/lib/lexer/terminals.d.ts +1 -1
- package/lib/sparql11HelperTypes.d.ts +9 -6
- package/lib/sparql11HelperTypes.js.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/lib/validation/validators.js +63 -81
- package/lib/validation/validators.js.map +1 -1
- package/package.json +3 -3
- package/lib/factory.js.map +0 -1
package/lib/index.cjs
CHANGED
|
@@ -20,10 +20,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// lib/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
+
AstFactory: () => AstFactory,
|
|
24
|
+
AstTransformer: () => AstTransformer,
|
|
23
25
|
CommonIRIs: () => CommonIRIs,
|
|
24
|
-
Factory: () => Factory,
|
|
25
26
|
MinimalSparqlParser: () => MinimalSparqlParser,
|
|
26
|
-
TransformerSparql11: () => TransformerSparql11,
|
|
27
27
|
baseAggregateFunc: () => baseAggregateFunc,
|
|
28
28
|
checkNote13: () => checkNote13,
|
|
29
29
|
completeParseContext: () => completeParseContext,
|
|
@@ -395,8 +395,8 @@ __export(BuiltInCalls_exports, {
|
|
|
395
395
|
year: () => year
|
|
396
396
|
});
|
|
397
397
|
|
|
398
|
-
// ../core/lib/
|
|
399
|
-
var
|
|
398
|
+
// ../core/lib/AstCoreFactory.js
|
|
399
|
+
var AstCoreFactory = class {
|
|
400
400
|
wrap(val, loc) {
|
|
401
401
|
return { val, loc };
|
|
402
402
|
}
|
|
@@ -9733,6 +9733,15 @@ applyMixins(Parser, [
|
|
|
9733
9733
|
PerformanceTracer
|
|
9734
9734
|
]);
|
|
9735
9735
|
|
|
9736
|
+
// ../core/lib/utils.js
|
|
9737
|
+
function unCapitalize(str2) {
|
|
9738
|
+
return str2.charAt(0).toLowerCase() + str2.slice(1);
|
|
9739
|
+
}
|
|
9740
|
+
function createToken2(config) {
|
|
9741
|
+
return createToken(config);
|
|
9742
|
+
}
|
|
9743
|
+
var traqulaIndentation = "When you use this string, you expect traqula to handle indentation after every newline";
|
|
9744
|
+
|
|
9736
9745
|
// ../core/lib/lexer-builder/LexerBuilder.js
|
|
9737
9746
|
var LexerBuilder = class _LexerBuilder {
|
|
9738
9747
|
tokens;
|
|
@@ -9830,16 +9839,13 @@ var LexerBuilder = class _LexerBuilder {
|
|
|
9830
9839
|
}
|
|
9831
9840
|
};
|
|
9832
9841
|
|
|
9833
|
-
// ../core/lib/utils.js
|
|
9834
|
-
function unCapitalize(str2) {
|
|
9835
|
-
return str2.charAt(0).toLowerCase() + str2.slice(1);
|
|
9836
|
-
}
|
|
9837
|
-
function createToken2(config) {
|
|
9838
|
-
return createToken(config);
|
|
9839
|
-
}
|
|
9840
|
-
|
|
9841
9842
|
// ../core/lib/Transformers.js
|
|
9842
9843
|
var TransformerType = class {
|
|
9844
|
+
clone(obj) {
|
|
9845
|
+
const newObj = Object.create(Object.getPrototypeOf(obj));
|
|
9846
|
+
Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
|
|
9847
|
+
return newObj;
|
|
9848
|
+
}
|
|
9843
9849
|
safeObjectVisit(value, mapper) {
|
|
9844
9850
|
if (value && typeof value === "object") {
|
|
9845
9851
|
if (Array.isArray(value)) {
|
|
@@ -9849,104 +9855,213 @@ var TransformerType = class {
|
|
|
9849
9855
|
}
|
|
9850
9856
|
return value;
|
|
9851
9857
|
}
|
|
9852
|
-
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9857
|
-
|
|
9858
|
-
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9858
|
+
/**
|
|
9859
|
+
* Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
|
|
9860
|
+
* @param startObject object to start iterating from
|
|
9861
|
+
* @param mapper mapper to transform the various objects - argument is a copy of the original
|
|
9862
|
+
* @param preVisitor callback that is evaluated before iterating deeper.
|
|
9863
|
+
* If continues is false, we do not iterate deeper, current object is still mapped. - default: true
|
|
9864
|
+
* If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
|
|
9865
|
+
* - Default false
|
|
9866
|
+
*/
|
|
9867
|
+
transformObject(startObject, mapper, preVisitor = () => ({})) {
|
|
9868
|
+
let didShortCut = false;
|
|
9869
|
+
const recurse = (curObject) => {
|
|
9870
|
+
const copy3 = this.clone(curObject);
|
|
9871
|
+
const context = preVisitor(copy3);
|
|
9872
|
+
didShortCut = context.shortcut ?? false;
|
|
9873
|
+
const continues = context.continue ?? true;
|
|
9874
|
+
if (continues && !didShortCut) {
|
|
9875
|
+
for (const [key, value] of Object.entries(copy3)) {
|
|
9876
|
+
if (didShortCut) {
|
|
9877
|
+
return copy3;
|
|
9878
|
+
}
|
|
9879
|
+
copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9880
|
+
}
|
|
9881
|
+
}
|
|
9882
|
+
return mapper(copy3);
|
|
9883
|
+
};
|
|
9884
|
+
return recurse(startObject);
|
|
9875
9885
|
}
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
|
|
9881
|
-
|
|
9882
|
-
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9886
|
+
/**
|
|
9887
|
+
* Visitor that visits all objects. Visits deeper objects first.
|
|
9888
|
+
*/
|
|
9889
|
+
visitObject(startObject, visitor, preVisitor = () => ({})) {
|
|
9890
|
+
let didShortCut = false;
|
|
9891
|
+
const recurse = (curObject) => {
|
|
9892
|
+
const context = preVisitor(curObject);
|
|
9893
|
+
didShortCut = context.shortcut ?? false;
|
|
9894
|
+
const continues = context.continue ?? true;
|
|
9895
|
+
if (continues && !didShortCut) {
|
|
9896
|
+
for (const value of Object.values(curObject)) {
|
|
9897
|
+
if (didShortCut) {
|
|
9898
|
+
return;
|
|
9899
|
+
}
|
|
9900
|
+
this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9901
|
+
}
|
|
9889
9902
|
}
|
|
9890
|
-
|
|
9903
|
+
visitor(curObject);
|
|
9904
|
+
};
|
|
9905
|
+
recurse(startObject);
|
|
9906
|
+
}
|
|
9907
|
+
transformNode(startObject, nodeCallBacks) {
|
|
9908
|
+
const transformWrapper = (curObject) => {
|
|
9909
|
+
const casted = curObject;
|
|
9910
|
+
if (casted.type) {
|
|
9911
|
+
const ogFunc = nodeCallBacks[casted.type]?.transform;
|
|
9912
|
+
if (ogFunc) {
|
|
9913
|
+
return ogFunc(casted);
|
|
9914
|
+
}
|
|
9915
|
+
}
|
|
9916
|
+
return curObject;
|
|
9917
|
+
};
|
|
9918
|
+
const preTransformWrapper = (curObject) => {
|
|
9919
|
+
const casted = curObject;
|
|
9920
|
+
if (casted.type) {
|
|
9921
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9922
|
+
if (ogFunc) {
|
|
9923
|
+
return ogFunc(casted);
|
|
9924
|
+
}
|
|
9925
|
+
}
|
|
9926
|
+
return {};
|
|
9927
|
+
};
|
|
9928
|
+
return this.transformObject(startObject, transformWrapper, preTransformWrapper);
|
|
9929
|
+
}
|
|
9930
|
+
visitNode(startObject, nodeCallBacks) {
|
|
9931
|
+
const visitWrapper = (curObject) => {
|
|
9932
|
+
const casted = curObject;
|
|
9933
|
+
if (casted.type) {
|
|
9934
|
+
const ogFunc = nodeCallBacks[casted.type]?.visitor;
|
|
9935
|
+
if (ogFunc) {
|
|
9936
|
+
ogFunc(casted);
|
|
9937
|
+
}
|
|
9938
|
+
}
|
|
9939
|
+
};
|
|
9940
|
+
const preVisitWrapper = (curObject) => {
|
|
9941
|
+
const casted = curObject;
|
|
9942
|
+
if (casted.type) {
|
|
9943
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9944
|
+
if (ogFunc) {
|
|
9945
|
+
return ogFunc(casted);
|
|
9946
|
+
}
|
|
9947
|
+
}
|
|
9948
|
+
return {};
|
|
9949
|
+
};
|
|
9950
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9951
|
+
}
|
|
9952
|
+
traverseNodes(currentNode, traverse) {
|
|
9953
|
+
let didShortCut = false;
|
|
9954
|
+
const recurse = (curNode) => {
|
|
9955
|
+
const traverser = traverse[curNode.type];
|
|
9956
|
+
if (traverser) {
|
|
9957
|
+
const { next, shortcut } = traverser(curNode);
|
|
9958
|
+
didShortCut = shortcut ?? false;
|
|
9959
|
+
if (!didShortCut) {
|
|
9960
|
+
for (const node of next ?? []) {
|
|
9961
|
+
if (didShortCut) {
|
|
9962
|
+
return;
|
|
9963
|
+
}
|
|
9964
|
+
recurse(node);
|
|
9965
|
+
}
|
|
9966
|
+
}
|
|
9967
|
+
}
|
|
9968
|
+
};
|
|
9969
|
+
recurse(currentNode);
|
|
9891
9970
|
}
|
|
9892
9971
|
};
|
|
9893
9972
|
var TransformerSubType = class extends TransformerType {
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
|
|
9902
|
-
|
|
9903
|
-
|
|
9904
|
-
|
|
9905
|
-
|
|
9906
|
-
|
|
9907
|
-
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
|
|
9911
|
-
|
|
9912
|
-
|
|
9913
|
-
|
|
9914
|
-
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
|
|
9918
|
-
|
|
9919
|
-
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
return copy3;
|
|
9973
|
+
transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9974
|
+
const transformWrapper = (curObject) => {
|
|
9975
|
+
let ogTransform;
|
|
9976
|
+
const casted = curObject;
|
|
9977
|
+
if (casted.type && casted.subType) {
|
|
9978
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9979
|
+
if (specific) {
|
|
9980
|
+
ogTransform = specific[casted.subType]?.transform;
|
|
9981
|
+
}
|
|
9982
|
+
if (!ogTransform) {
|
|
9983
|
+
ogTransform = nodeCallBacks[casted.type]?.transform;
|
|
9984
|
+
}
|
|
9985
|
+
}
|
|
9986
|
+
return ogTransform ? ogTransform(casted) : curObject;
|
|
9987
|
+
};
|
|
9988
|
+
const preVisitWrapper = (curObject) => {
|
|
9989
|
+
let ogPreVisit;
|
|
9990
|
+
const casted = curObject;
|
|
9991
|
+
if (casted.type && casted.subType) {
|
|
9992
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9993
|
+
if (specific) {
|
|
9994
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
9995
|
+
}
|
|
9996
|
+
if (!ogPreVisit) {
|
|
9997
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9998
|
+
}
|
|
9999
|
+
}
|
|
10000
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
10001
|
+
};
|
|
10002
|
+
return this.transformObject(startObject, transformWrapper, preVisitWrapper);
|
|
9925
10003
|
}
|
|
9926
10004
|
/**
|
|
9927
10005
|
* When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
|
|
9928
10006
|
*/
|
|
9929
|
-
visitNodeSpecific(
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
10007
|
+
visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
10008
|
+
const visitWrapper = (curObject) => {
|
|
10009
|
+
let ogTransform;
|
|
10010
|
+
const casted = curObject;
|
|
10011
|
+
if (casted.type && casted.subType) {
|
|
10012
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
10013
|
+
if (specific) {
|
|
10014
|
+
ogTransform = specific[casted.subType]?.visitor;
|
|
10015
|
+
}
|
|
10016
|
+
if (!ogTransform) {
|
|
10017
|
+
ogTransform = nodeCallBacks[casted.type]?.visitor;
|
|
10018
|
+
}
|
|
9936
10019
|
}
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
callback = nodeCallBacks[curObject.type];
|
|
9940
|
-
}
|
|
9941
|
-
let shouldIterate = true;
|
|
9942
|
-
if (callback) {
|
|
9943
|
-
shouldIterate = callback(curObject) ?? true;
|
|
9944
|
-
}
|
|
9945
|
-
if (shouldIterate) {
|
|
9946
|
-
for (const value of Object.values(curObject)) {
|
|
9947
|
-
this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
|
|
10020
|
+
if (ogTransform) {
|
|
10021
|
+
ogTransform(casted);
|
|
9948
10022
|
}
|
|
9949
|
-
}
|
|
10023
|
+
};
|
|
10024
|
+
const preVisitWrapper = (curObject) => {
|
|
10025
|
+
let ogPreVisit;
|
|
10026
|
+
const casted = curObject;
|
|
10027
|
+
if (casted.type && casted.subType) {
|
|
10028
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
10029
|
+
if (specific) {
|
|
10030
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
10031
|
+
}
|
|
10032
|
+
if (!ogPreVisit) {
|
|
10033
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
10034
|
+
}
|
|
10035
|
+
}
|
|
10036
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
10037
|
+
};
|
|
10038
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
10039
|
+
}
|
|
10040
|
+
traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
|
|
10041
|
+
let didShortCut = false;
|
|
10042
|
+
const recurse = (curNode) => {
|
|
10043
|
+
let traverser;
|
|
10044
|
+
const subObj = traverseSubNode[curNode.type];
|
|
10045
|
+
if (subObj) {
|
|
10046
|
+
traverser = subObj[curNode.subType];
|
|
10047
|
+
}
|
|
10048
|
+
if (!traverser) {
|
|
10049
|
+
traverser = traverseNode[curNode.type];
|
|
10050
|
+
}
|
|
10051
|
+
if (traverser) {
|
|
10052
|
+
const { next, shortcut } = traverser(curNode);
|
|
10053
|
+
didShortCut = shortcut ?? false;
|
|
10054
|
+
if (!didShortCut) {
|
|
10055
|
+
for (const node of next ?? []) {
|
|
10056
|
+
if (didShortCut) {
|
|
10057
|
+
return;
|
|
10058
|
+
}
|
|
10059
|
+
recurse(node);
|
|
10060
|
+
}
|
|
10061
|
+
}
|
|
10062
|
+
}
|
|
10063
|
+
};
|
|
10064
|
+
recurse(currentNode);
|
|
9950
10065
|
}
|
|
9951
10066
|
};
|
|
9952
10067
|
|
|
@@ -10997,8 +11112,8 @@ function UpdateOperationFactoryMixin(Base) {
|
|
|
10997
11112
|
};
|
|
10998
11113
|
}
|
|
10999
11114
|
|
|
11000
|
-
// lib/
|
|
11001
|
-
var
|
|
11115
|
+
// lib/astFactory.js
|
|
11116
|
+
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() {
|
|
11002
11117
|
alwaysSparql11(obj) {
|
|
11003
11118
|
return true;
|
|
11004
11119
|
}
|
|
@@ -11113,12 +11228,12 @@ var CommonIRIs;
|
|
|
11113
11228
|
CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
|
|
11114
11229
|
CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
|
|
11115
11230
|
})(CommonIRIs || (CommonIRIs = {}));
|
|
11116
|
-
var
|
|
11231
|
+
var AstTransformer = class extends TransformerSubType {
|
|
11117
11232
|
};
|
|
11118
11233
|
|
|
11119
11234
|
// lib/validation/validators.js
|
|
11120
|
-
var F = new
|
|
11121
|
-
var transformer = new
|
|
11235
|
+
var F = new AstFactory();
|
|
11236
|
+
var transformer = new AstTransformer();
|
|
11122
11237
|
function getAggregatesOfExpression(expression2) {
|
|
11123
11238
|
if (F.isExpressionAggregate(expression2)) {
|
|
11124
11239
|
return [expression2];
|
|
@@ -11197,77 +11312,69 @@ function queryIsGood(query2) {
|
|
|
11197
11312
|
}
|
|
11198
11313
|
}
|
|
11199
11314
|
}
|
|
11315
|
+
function notUndefined(some2) {
|
|
11316
|
+
return some2 !== void 0;
|
|
11317
|
+
}
|
|
11200
11318
|
function findPatternBoundedVars(iter, boundedVars) {
|
|
11201
|
-
|
|
11202
|
-
|
|
11203
|
-
|
|
11204
|
-
|
|
11205
|
-
|
|
11206
|
-
|
|
11207
|
-
|
|
11208
|
-
|
|
11209
|
-
|
|
11210
|
-
|
|
11211
|
-
|
|
11212
|
-
|
|
11213
|
-
|
|
11214
|
-
|
|
11215
|
-
|
|
11216
|
-
|
|
11217
|
-
|
|
11218
|
-
|
|
11219
|
-
|
|
11220
|
-
|
|
11319
|
+
transformer.traverseSubNodes(iter, {
|
|
11320
|
+
query: (op) => ({ next: [
|
|
11321
|
+
op.solutionModifiers.group
|
|
11322
|
+
].filter(notUndefined) }),
|
|
11323
|
+
triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
|
|
11324
|
+
path: (op) => ({ next: op.items }),
|
|
11325
|
+
tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
|
|
11326
|
+
}, {
|
|
11327
|
+
query: {
|
|
11328
|
+
select: (op) => ({ next: [
|
|
11329
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11330
|
+
op.solutionModifiers.group,
|
|
11331
|
+
op.values
|
|
11332
|
+
].filter(notUndefined) }),
|
|
11333
|
+
describe: (op) => ({ next: [
|
|
11334
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11335
|
+
op.solutionModifiers.group,
|
|
11336
|
+
op.values
|
|
11337
|
+
].filter(notUndefined) })
|
|
11338
|
+
},
|
|
11339
|
+
solutionModifier: {
|
|
11340
|
+
group: (op) => ({
|
|
11341
|
+
next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
|
|
11342
|
+
}),
|
|
11343
|
+
having: (op) => ({ next: op.having }),
|
|
11344
|
+
order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
|
|
11345
|
+
},
|
|
11346
|
+
pattern: {
|
|
11347
|
+
values: (op) => {
|
|
11348
|
+
for (const v of Object.keys(op.values.at(0) ?? {})) {
|
|
11221
11349
|
boundedVars.add(v);
|
|
11222
11350
|
}
|
|
11351
|
+
return {};
|
|
11352
|
+
},
|
|
11353
|
+
bgp: (op) => ({ next: op.triples }),
|
|
11354
|
+
group: (op) => ({ next: op.patterns }),
|
|
11355
|
+
union: (op) => ({ next: op.patterns }),
|
|
11356
|
+
optional: (op) => ({ next: op.patterns }),
|
|
11357
|
+
service: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11358
|
+
bind: (op) => ({ next: [op.variable] }),
|
|
11359
|
+
graph: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11360
|
+
minus: (op) => ({ next: op.patterns.slice(0, 1) })
|
|
11361
|
+
},
|
|
11362
|
+
term: {
|
|
11363
|
+
variable: (op) => {
|
|
11364
|
+
boundedVars.add(op.value);
|
|
11365
|
+
return {};
|
|
11223
11366
|
}
|
|
11224
11367
|
}
|
|
11225
|
-
}
|
|
11226
|
-
if (F.isTermVariable(iter)) {
|
|
11227
|
-
boundedVars.add(iter.value);
|
|
11228
|
-
}
|
|
11229
|
-
} else if (F.isTriple(iter)) {
|
|
11230
|
-
findPatternBoundedVars(iter.subject, boundedVars);
|
|
11231
|
-
findPatternBoundedVars(iter.predicate, boundedVars);
|
|
11232
|
-
findPatternBoundedVars(iter.object, boundedVars);
|
|
11233
|
-
} else if (F.isPath(iter)) {
|
|
11234
|
-
if (!F.isTerm(iter)) {
|
|
11235
|
-
for (const item of iter.items) {
|
|
11236
|
-
findPatternBoundedVars(item, boundedVars);
|
|
11237
|
-
}
|
|
11238
|
-
}
|
|
11239
|
-
} else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
|
|
11240
|
-
for (const triple of iter.triples) {
|
|
11241
|
-
findPatternBoundedVars(triple, boundedVars);
|
|
11242
|
-
}
|
|
11243
|
-
} else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
|
|
11244
|
-
for (const pattern of iter.patterns) {
|
|
11245
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11246
|
-
}
|
|
11247
|
-
if (F.isPatternService(iter)) {
|
|
11248
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11249
|
-
}
|
|
11250
|
-
} else if (F.isPatternBind(iter)) {
|
|
11251
|
-
findPatternBoundedVars(iter.variable, boundedVars);
|
|
11252
|
-
} else if (F.isPatternValues(iter)) {
|
|
11253
|
-
for (const variable of Object.keys(iter.values.at(0) ?? {})) {
|
|
11254
|
-
boundedVars.add(variable);
|
|
11255
|
-
}
|
|
11256
|
-
} else if (F.isPatternGraph(iter)) {
|
|
11257
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11258
|
-
for (const pattern of iter.patterns) {
|
|
11259
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11260
|
-
}
|
|
11261
|
-
}
|
|
11368
|
+
});
|
|
11262
11369
|
}
|
|
11263
11370
|
function checkNote13(patterns) {
|
|
11264
11371
|
for (const [index, pattern] of patterns.entries()) {
|
|
11265
11372
|
if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
|
|
11266
11373
|
const bgp = patterns[index - 1];
|
|
11267
11374
|
const variables = [];
|
|
11268
|
-
transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
|
|
11375
|
+
transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
|
|
11269
11376
|
variables.push(var_2);
|
|
11270
|
-
} } });
|
|
11377
|
+
} } } });
|
|
11271
11378
|
if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
|
|
11272
11379
|
throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
|
|
11273
11380
|
}
|
|
@@ -11293,12 +11400,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
|
|
|
11293
11400
|
const operation = update2.operation;
|
|
11294
11401
|
if (operation.subType === "insertdata") {
|
|
11295
11402
|
const blankNodesHere = /* @__PURE__ */ new Set();
|
|
11296
|
-
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
|
|
11403
|
+
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
|
|
11297
11404
|
blankNodesHere.add(blankNode2.label);
|
|
11298
11405
|
if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
|
|
11299
11406
|
throw new Error("Detected reuse blank node across different INSERT DATA clauses");
|
|
11300
11407
|
}
|
|
11301
|
-
} } });
|
|
11408
|
+
} } } });
|
|
11302
11409
|
for (const blankNode2 of blankNodesHere) {
|
|
11303
11410
|
blankLabelsUsedInInsertData.add(blankNode2);
|
|
11304
11411
|
}
|
|
@@ -11337,22 +11444,22 @@ var rdfLiteral = {
|
|
|
11337
11444
|
return OPTION(() => OR([
|
|
11338
11445
|
{ ALT: () => {
|
|
11339
11446
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
11340
|
-
return ACTION(() => C.
|
|
11447
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
|
|
11341
11448
|
} },
|
|
11342
11449
|
{ ALT: () => {
|
|
11343
11450
|
CONSUME(symbols_exports.hathat);
|
|
11344
11451
|
const iriVal = SUBRULE1(iri2);
|
|
11345
|
-
return ACTION(() => C.
|
|
11452
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
|
|
11346
11453
|
} }
|
|
11347
11454
|
])) ?? value;
|
|
11348
11455
|
},
|
|
11349
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, {
|
|
11350
|
-
|
|
11456
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
|
|
11457
|
+
astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
|
|
11351
11458
|
if (ast.langOrIri) {
|
|
11352
11459
|
if (typeof ast.langOrIri === "string") {
|
|
11353
|
-
|
|
11460
|
+
astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
11354
11461
|
} else {
|
|
11355
|
-
|
|
11462
|
+
astFactory.printFilter(ast, () => PRINT("^^"));
|
|
11356
11463
|
SUBRULE(iri2, ast.langOrIri);
|
|
11357
11464
|
}
|
|
11358
11465
|
}
|
|
@@ -11374,7 +11481,7 @@ var numericLiteralUnsigned = {
|
|
|
11374
11481
|
{ ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
|
|
11375
11482
|
{ ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
|
|
11376
11483
|
]);
|
|
11377
|
-
return ACTION(() => C.
|
|
11484
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11378
11485
|
}
|
|
11379
11486
|
};
|
|
11380
11487
|
var numericLiteralPositive = {
|
|
@@ -11385,7 +11492,7 @@ var numericLiteralPositive = {
|
|
|
11385
11492
|
{ ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
|
|
11386
11493
|
{ ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
|
|
11387
11494
|
]);
|
|
11388
|
-
return ACTION(() => C.
|
|
11495
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11389
11496
|
}
|
|
11390
11497
|
};
|
|
11391
11498
|
var numericLiteralNegative = {
|
|
@@ -11396,7 +11503,7 @@ var numericLiteralNegative = {
|
|
|
11396
11503
|
{ ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
|
|
11397
11504
|
{ ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
|
|
11398
11505
|
]);
|
|
11399
|
-
return ACTION(() => C.
|
|
11506
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11400
11507
|
}
|
|
11401
11508
|
};
|
|
11402
11509
|
var booleanLiteral = {
|
|
@@ -11406,7 +11513,7 @@ var booleanLiteral = {
|
|
|
11406
11513
|
{ ALT: () => CONSUME(true_) },
|
|
11407
11514
|
{ ALT: () => CONSUME(false_) }
|
|
11408
11515
|
]);
|
|
11409
|
-
return ACTION(() => C.
|
|
11516
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
|
|
11410
11517
|
}
|
|
11411
11518
|
};
|
|
11412
11519
|
var string = {
|
|
@@ -11431,7 +11538,7 @@ var string = {
|
|
|
11431
11538
|
} }
|
|
11432
11539
|
]);
|
|
11433
11540
|
return ACTION(() => {
|
|
11434
|
-
const F2 = C.
|
|
11541
|
+
const F2 = C.astFactory;
|
|
11435
11542
|
const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
|
|
11436
11543
|
switch (char) {
|
|
11437
11544
|
case "t":
|
|
@@ -11458,16 +11565,16 @@ var iri2 = {
|
|
|
11458
11565
|
{ ALT: () => SUBRULE(iriFull) },
|
|
11459
11566
|
{ ALT: () => SUBRULE(prefixedName) }
|
|
11460
11567
|
]),
|
|
11461
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11568
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
|
|
11462
11569
|
};
|
|
11463
11570
|
var iriFull = {
|
|
11464
11571
|
name: "iriFull",
|
|
11465
11572
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11466
11573
|
const iriToken = CONSUME(terminals_exports.iriRef);
|
|
11467
|
-
return ACTION(() => C.
|
|
11574
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
|
|
11468
11575
|
},
|
|
11469
|
-
gImpl: ({ PRINT }) => (ast, {
|
|
11470
|
-
|
|
11576
|
+
gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
|
|
11577
|
+
F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
|
|
11471
11578
|
}
|
|
11472
11579
|
};
|
|
11473
11580
|
var prefixedName = {
|
|
@@ -11477,16 +11584,16 @@ var prefixedName = {
|
|
|
11477
11584
|
const longName = CONSUME(terminals_exports.pNameLn);
|
|
11478
11585
|
return ACTION(() => {
|
|
11479
11586
|
const [prefix, localName] = longName.image.split(":");
|
|
11480
|
-
return C.
|
|
11587
|
+
return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
|
|
11481
11588
|
});
|
|
11482
11589
|
} },
|
|
11483
11590
|
{ ALT: () => {
|
|
11484
11591
|
const shortName = CONSUME(terminals_exports.pNameNs);
|
|
11485
|
-
return ACTION(() => C.
|
|
11592
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
|
|
11486
11593
|
} }
|
|
11487
11594
|
]),
|
|
11488
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11489
|
-
|
|
11595
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
11596
|
+
F2.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
|
|
11490
11597
|
}
|
|
11491
11598
|
};
|
|
11492
11599
|
var canCreateBlankNodes = Symbol("canCreateBlankNodes");
|
|
@@ -11496,11 +11603,11 @@ var blankNode = {
|
|
|
11496
11603
|
const result = OR([
|
|
11497
11604
|
{ ALT: () => {
|
|
11498
11605
|
const labelToken = CONSUME(terminals_exports.blankNodeLabel);
|
|
11499
|
-
return ACTION(() => C.
|
|
11606
|
+
return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
|
|
11500
11607
|
} },
|
|
11501
11608
|
{ ALT: () => {
|
|
11502
11609
|
const anonToken = CONSUME(terminals_exports.anon);
|
|
11503
|
-
return ACTION(() => C.
|
|
11610
|
+
return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
|
|
11504
11611
|
} }
|
|
11505
11612
|
]);
|
|
11506
11613
|
ACTION(() => {
|
|
@@ -11510,15 +11617,15 @@ var blankNode = {
|
|
|
11510
11617
|
});
|
|
11511
11618
|
return result;
|
|
11512
11619
|
},
|
|
11513
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11514
|
-
|
|
11620
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
|
|
11621
|
+
astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
|
|
11515
11622
|
}
|
|
11516
11623
|
};
|
|
11517
11624
|
var verbA = {
|
|
11518
11625
|
name: "VerbA",
|
|
11519
11626
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11520
11627
|
const token = CONSUME(a);
|
|
11521
|
-
return ACTION(() => C.
|
|
11628
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
|
|
11522
11629
|
}
|
|
11523
11630
|
};
|
|
11524
11631
|
|
|
@@ -11535,7 +11642,7 @@ var prologue = {
|
|
|
11535
11642
|
]));
|
|
11536
11643
|
return result;
|
|
11537
11644
|
},
|
|
11538
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11645
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
11539
11646
|
for (const context of ast) {
|
|
11540
11647
|
if (F2.isContextDefinitionBase(context)) {
|
|
11541
11648
|
SUBRULE(baseDecl2, context);
|
|
@@ -11550,11 +11657,12 @@ var baseDecl2 = {
|
|
|
11550
11657
|
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11551
11658
|
const base = CONSUME(baseDecl);
|
|
11552
11659
|
const val = SUBRULE(iriFull);
|
|
11553
|
-
return ACTION(() => C.
|
|
11660
|
+
return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
|
|
11554
11661
|
},
|
|
11555
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
11662
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
11556
11663
|
F2.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
11557
11664
|
SUBRULE(iri2, ast.value);
|
|
11665
|
+
F2.printFilter(ast, () => PRINT_WORD("\n"));
|
|
11558
11666
|
}
|
|
11559
11667
|
};
|
|
11560
11668
|
var prefixDecl2 = {
|
|
@@ -11563,13 +11671,14 @@ var prefixDecl2 = {
|
|
|
11563
11671
|
const prefix = CONSUME(prefixDecl);
|
|
11564
11672
|
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
11565
11673
|
const value = SUBRULE(iriFull);
|
|
11566
|
-
return ACTION(() => C.
|
|
11674
|
+
return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
|
|
11567
11675
|
},
|
|
11568
|
-
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, {
|
|
11676
|
+
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F2 }) => {
|
|
11569
11677
|
F2.printFilter(ast, () => {
|
|
11570
11678
|
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
11571
11679
|
});
|
|
11572
11680
|
SUBRULE(iri2, ast.value);
|
|
11681
|
+
F2.printFilter(ast, () => PRINT_WORDS("\n"));
|
|
11573
11682
|
}
|
|
11574
11683
|
};
|
|
11575
11684
|
var verb = {
|
|
@@ -11585,7 +11694,7 @@ var varOrTerm = {
|
|
|
11585
11694
|
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
11586
11695
|
{ ALT: () => SUBRULE(graphTerm) }
|
|
11587
11696
|
]),
|
|
11588
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11697
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
11589
11698
|
if (F2.isTermVariable(ast)) {
|
|
11590
11699
|
return SUBRULE(var_, ast);
|
|
11591
11700
|
}
|
|
@@ -11606,9 +11715,9 @@ var var_ = {
|
|
|
11606
11715
|
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
11607
11716
|
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
11608
11717
|
]);
|
|
11609
|
-
return ACTION(() => C.
|
|
11718
|
+
return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
|
|
11610
11719
|
},
|
|
11611
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11720
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
11612
11721
|
F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
11613
11722
|
}
|
|
11614
11723
|
};
|
|
@@ -11622,10 +11731,10 @@ var graphTerm = {
|
|
|
11622
11731
|
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
11623
11732
|
{ ALT: () => {
|
|
11624
11733
|
const tokenNil = CONSUME(terminals_exports.nil);
|
|
11625
|
-
return ACTION(() => C.
|
|
11734
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
|
|
11626
11735
|
} }
|
|
11627
11736
|
]),
|
|
11628
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11737
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
11629
11738
|
if (F2.isTermNamed(ast)) {
|
|
11630
11739
|
SUBRULE(iri2, ast);
|
|
11631
11740
|
} else if (F2.isTermLiteral(ast)) {
|
|
@@ -11645,14 +11754,14 @@ function datasetClauseUsing(name, token) {
|
|
|
11645
11754
|
return OR([
|
|
11646
11755
|
{ ALT: () => {
|
|
11647
11756
|
const iri3 = SUBRULE(defaultGraphClause);
|
|
11648
|
-
return ACTION(() => C.
|
|
11757
|
+
return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
|
|
11649
11758
|
} },
|
|
11650
11759
|
{ ALT: () => {
|
|
11651
11760
|
const namedClause = SUBRULE(namedGraphClause);
|
|
11652
|
-
return ACTION(() => C.
|
|
11761
|
+
return ACTION(() => C.astFactory.wrap({
|
|
11653
11762
|
clauseType: "named",
|
|
11654
11763
|
value: namedClause.val
|
|
11655
|
-
}, C.
|
|
11764
|
+
}, C.astFactory.sourceLocation(start, namedClause)));
|
|
11656
11765
|
} }
|
|
11657
11766
|
]);
|
|
11658
11767
|
}
|
|
@@ -11673,9 +11782,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11673
11782
|
const clause = SUBRULE(subRule);
|
|
11674
11783
|
clauses.push(clause);
|
|
11675
11784
|
});
|
|
11676
|
-
return ACTION(() => C.
|
|
11785
|
+
return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
|
|
11677
11786
|
},
|
|
11678
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
11787
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
11679
11788
|
for (const clause of ast.clauses) {
|
|
11680
11789
|
F2.printFilter(ast, () => PRINT_WORD(fromUsing));
|
|
11681
11790
|
if (clause.clauseType === "named") {
|
|
@@ -11693,7 +11802,7 @@ var namedGraphClause = {
|
|
|
11693
11802
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11694
11803
|
const named2 = CONSUME(graph_exports.named);
|
|
11695
11804
|
const iri3 = SUBRULE(sourceSelector);
|
|
11696
|
-
return ACTION(() => C.
|
|
11805
|
+
return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
|
|
11697
11806
|
}
|
|
11698
11807
|
};
|
|
11699
11808
|
var sourceSelector = {
|
|
@@ -11710,7 +11819,7 @@ function funcExpr1(func) {
|
|
|
11710
11819
|
CONSUME(symbols_exports.LParen);
|
|
11711
11820
|
const arg = SUBRULE(expression);
|
|
11712
11821
|
const close = CONSUME(symbols_exports.RParen);
|
|
11713
|
-
return ACTION(() => C.
|
|
11822
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11714
11823
|
}
|
|
11715
11824
|
};
|
|
11716
11825
|
}
|
|
@@ -11724,7 +11833,7 @@ function funcExpr2(func) {
|
|
|
11724
11833
|
CONSUME(symbols_exports.comma);
|
|
11725
11834
|
const arg2 = SUBRULE2(expression);
|
|
11726
11835
|
const close = CONSUME(symbols_exports.RParen);
|
|
11727
|
-
return ACTION(() => C.
|
|
11836
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
|
|
11728
11837
|
}
|
|
11729
11838
|
};
|
|
11730
11839
|
}
|
|
@@ -11740,7 +11849,7 @@ function funcExpr3(func) {
|
|
|
11740
11849
|
CONSUME2(symbols_exports.comma);
|
|
11741
11850
|
const arg3 = SUBRULE3(expression);
|
|
11742
11851
|
const close = CONSUME(symbols_exports.RParen);
|
|
11743
|
-
return ACTION(() => C.
|
|
11852
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
|
|
11744
11853
|
}
|
|
11745
11854
|
};
|
|
11746
11855
|
}
|
|
@@ -11752,7 +11861,7 @@ function funcVar1(func) {
|
|
|
11752
11861
|
CONSUME(symbols_exports.LParen);
|
|
11753
11862
|
const arg = SUBRULE(var_);
|
|
11754
11863
|
const close = CONSUME(symbols_exports.RParen);
|
|
11755
|
-
return ACTION(() => C.
|
|
11864
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11756
11865
|
}
|
|
11757
11866
|
};
|
|
11758
11867
|
}
|
|
@@ -11766,11 +11875,11 @@ function funcExprOrNil1(func) {
|
|
|
11766
11875
|
CONSUME(symbols_exports.LParen);
|
|
11767
11876
|
const arg = SUBRULE(expression);
|
|
11768
11877
|
const close = CONSUME(symbols_exports.RParen);
|
|
11769
|
-
return ACTION(() => C.
|
|
11878
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11770
11879
|
} },
|
|
11771
11880
|
{ ALT: () => {
|
|
11772
11881
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
11773
|
-
return ACTION(() => C.
|
|
11882
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
|
|
11774
11883
|
} }
|
|
11775
11884
|
]);
|
|
11776
11885
|
}
|
|
@@ -11782,7 +11891,7 @@ function funcNil1(func) {
|
|
|
11782
11891
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11783
11892
|
const operator = CONSUME(func);
|
|
11784
11893
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
11785
|
-
return ACTION(() => C.
|
|
11894
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
|
|
11786
11895
|
}
|
|
11787
11896
|
};
|
|
11788
11897
|
}
|
|
@@ -11792,7 +11901,7 @@ function funcExprList1(func) {
|
|
|
11792
11901
|
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11793
11902
|
const operator = CONSUME(func);
|
|
11794
11903
|
const args = SUBRULE(expressionList);
|
|
11795
|
-
return ACTION(() => C.
|
|
11904
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
|
|
11796
11905
|
}
|
|
11797
11906
|
};
|
|
11798
11907
|
}
|
|
@@ -11810,7 +11919,7 @@ function funcExpr2or3(func) {
|
|
|
11810
11919
|
return SUBRULE3(expression);
|
|
11811
11920
|
});
|
|
11812
11921
|
const close = CONSUME(symbols_exports.RParen);
|
|
11813
|
-
return ACTION(() => C.
|
|
11922
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
|
|
11814
11923
|
}
|
|
11815
11924
|
};
|
|
11816
11925
|
}
|
|
@@ -11830,7 +11939,7 @@ function funcExpr3or4(func) {
|
|
|
11830
11939
|
return SUBRULE4(expression);
|
|
11831
11940
|
});
|
|
11832
11941
|
const close = CONSUME(symbols_exports.RParen);
|
|
11833
|
-
return ACTION(() => C.
|
|
11942
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
|
|
11834
11943
|
}
|
|
11835
11944
|
};
|
|
11836
11945
|
}
|
|
@@ -11840,7 +11949,7 @@ function funcGroupGraphPattern(func) {
|
|
|
11840
11949
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11841
11950
|
const operator = CONSUME(func);
|
|
11842
11951
|
const group = SUBRULE(groupGraphPattern);
|
|
11843
|
-
return ACTION(() => C.
|
|
11952
|
+
return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
|
|
11844
11953
|
}
|
|
11845
11954
|
};
|
|
11846
11955
|
}
|
|
@@ -11853,7 +11962,7 @@ function baseAggregateFunc(func) {
|
|
|
11853
11962
|
const distinct2 = OPTION(() => CONSUME(distinct));
|
|
11854
11963
|
const expr1 = SUBRULE(expression);
|
|
11855
11964
|
const close = CONSUME(symbols_exports.RParen);
|
|
11856
|
-
return ACTION(() => C.
|
|
11965
|
+
return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
|
|
11857
11966
|
}
|
|
11858
11967
|
};
|
|
11859
11968
|
}
|
|
@@ -11993,17 +12102,17 @@ var aggregateCount = {
|
|
|
11993
12102
|
const expressionVal = OR([
|
|
11994
12103
|
{ ALT: () => {
|
|
11995
12104
|
const starToken = CONSUME(symbols_exports.star);
|
|
11996
|
-
return ACTION(() => C.
|
|
12105
|
+
return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
|
|
11997
12106
|
} },
|
|
11998
12107
|
{ ALT: () => SUBRULE(expression) }
|
|
11999
12108
|
]);
|
|
12000
12109
|
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12001
12110
|
return ACTION(() => {
|
|
12002
|
-
const F2 = C.
|
|
12003
|
-
if (C.
|
|
12004
|
-
return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.
|
|
12111
|
+
const F2 = C.astFactory;
|
|
12112
|
+
if (C.astFactory.isWildcard(expressionVal)) {
|
|
12113
|
+
return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
|
|
12005
12114
|
}
|
|
12006
|
-
return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.
|
|
12115
|
+
return F2.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
|
|
12007
12116
|
});
|
|
12008
12117
|
}
|
|
12009
12118
|
};
|
|
@@ -12027,7 +12136,7 @@ var aggregateGroup_concat = {
|
|
|
12027
12136
|
});
|
|
12028
12137
|
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12029
12138
|
return ACTION(() => {
|
|
12030
|
-
const F2 = C.
|
|
12139
|
+
const F2 = C.astFactory;
|
|
12031
12140
|
return F2.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F2.sourceLocation(operatorToken, closeToken));
|
|
12032
12141
|
});
|
|
12033
12142
|
}
|
|
@@ -12057,7 +12166,7 @@ var aggregate = {
|
|
|
12057
12166
|
});
|
|
12058
12167
|
return result;
|
|
12059
12168
|
},
|
|
12060
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12169
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12061
12170
|
F2.printFilter(ast, () => {
|
|
12062
12171
|
PRINT_WORD(ast.aggregation.toUpperCase(), "(");
|
|
12063
12172
|
if (ast.distinct) {
|
|
@@ -12084,7 +12193,7 @@ var path = {
|
|
|
12084
12193
|
};
|
|
12085
12194
|
var pathGenerator = {
|
|
12086
12195
|
name: "path",
|
|
12087
|
-
gImpl: ({ PRINT, SUBRULE }) => (ast, {
|
|
12196
|
+
gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F2 }, braces = true) => {
|
|
12088
12197
|
if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
|
|
12089
12198
|
SUBRULE(iri2, ast);
|
|
12090
12199
|
} else {
|
|
@@ -12133,7 +12242,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
|
|
|
12133
12242
|
tailEnd = SUBRULE2(subRule);
|
|
12134
12243
|
tail.push(tailEnd);
|
|
12135
12244
|
});
|
|
12136
|
-
return ACTION(() => tail.length === 0 ? head2 : C.
|
|
12245
|
+
return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
|
|
12137
12246
|
}
|
|
12138
12247
|
};
|
|
12139
12248
|
}
|
|
@@ -12144,7 +12253,7 @@ var pathEltOrInverse = {
|
|
|
12144
12253
|
{ ALT: () => {
|
|
12145
12254
|
const hat2 = CONSUME(symbols_exports.hat);
|
|
12146
12255
|
const item = SUBRULE2(pathElt);
|
|
12147
|
-
return ACTION(() => C.
|
|
12256
|
+
return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
|
|
12148
12257
|
} }
|
|
12149
12258
|
])
|
|
12150
12259
|
};
|
|
@@ -12155,7 +12264,7 @@ var pathElt = {
|
|
|
12155
12264
|
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
12156
12265
|
const item = SUBRULE(pathPrimary);
|
|
12157
12266
|
const modification = OPTION(() => SUBRULE(pathMod));
|
|
12158
|
-
return ACTION(() => modification === void 0 ? item : C.
|
|
12267
|
+
return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
|
|
12159
12268
|
}
|
|
12160
12269
|
};
|
|
12161
12270
|
var pathMod = {
|
|
@@ -12187,7 +12296,7 @@ var pathNegatedPropertySet = {
|
|
|
12187
12296
|
return OR([
|
|
12188
12297
|
{ ALT: () => {
|
|
12189
12298
|
const noAlternative = SUBRULE1(pathOneInPropertySet);
|
|
12190
|
-
return ACTION(() => C.
|
|
12299
|
+
return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
|
|
12191
12300
|
} },
|
|
12192
12301
|
{ ALT: () => {
|
|
12193
12302
|
const open = CONSUME(symbols_exports.LParen);
|
|
@@ -12200,7 +12309,7 @@ var pathNegatedPropertySet = {
|
|
|
12200
12309
|
});
|
|
12201
12310
|
const close = CONSUME(symbols_exports.RParen);
|
|
12202
12311
|
return ACTION(() => {
|
|
12203
|
-
const F2 = C.
|
|
12312
|
+
const F2 = C.astFactory;
|
|
12204
12313
|
if (tail.length === 0) {
|
|
12205
12314
|
return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
|
|
12206
12315
|
}
|
|
@@ -12221,7 +12330,7 @@ var pathOneInPropertySet = {
|
|
|
12221
12330
|
{ ALT: () => SUBRULE2(iri2) },
|
|
12222
12331
|
{ ALT: () => SUBRULE2(verbA) }
|
|
12223
12332
|
]);
|
|
12224
|
-
return ACTION(() => C.
|
|
12333
|
+
return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
|
|
12225
12334
|
} }
|
|
12226
12335
|
])
|
|
12227
12336
|
};
|
|
@@ -12246,33 +12355,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
|
12246
12355
|
});
|
|
12247
12356
|
}
|
|
12248
12357
|
});
|
|
12249
|
-
return ACTION(() => C.
|
|
12358
|
+
return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
|
|
12250
12359
|
};
|
|
12251
12360
|
}
|
|
12252
12361
|
var triplesBlock = {
|
|
12253
12362
|
name: "triplesBlock",
|
|
12254
12363
|
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12255
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, {
|
|
12364
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
|
|
12256
12365
|
for (const [index, triple] of ast.triples.entries()) {
|
|
12257
12366
|
HANDLE_LOC(triple, () => {
|
|
12258
12367
|
const nextTriple = ast.triples.at(index);
|
|
12259
12368
|
if (F2.isTripleCollection(triple)) {
|
|
12260
12369
|
SUBRULE(graphNodePath, triple);
|
|
12261
|
-
F2.printFilter(triple, () => PRINT_WORD("
|
|
12370
|
+
F2.printFilter(triple, () => PRINT_WORD(".\n"));
|
|
12262
12371
|
} else {
|
|
12263
12372
|
SUBRULE(graphNodePath, triple.subject);
|
|
12373
|
+
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
12264
12374
|
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
12265
12375
|
SUBRULE(varOrTerm, triple.predicate);
|
|
12266
12376
|
} else {
|
|
12267
12377
|
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12268
12378
|
}
|
|
12379
|
+
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
12269
12380
|
SUBRULE(graphNodePath, triple.object);
|
|
12270
12381
|
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12271
|
-
F2.printFilter(ast, () => PRINT_WORD("
|
|
12382
|
+
F2.printFilter(ast, () => PRINT_WORD(".\n"));
|
|
12272
12383
|
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12273
12384
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12274
12385
|
} else {
|
|
12275
|
-
F2.printFilter(ast, () => PRINT_WORD("
|
|
12386
|
+
F2.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
12276
12387
|
}
|
|
12277
12388
|
}
|
|
12278
12389
|
});
|
|
@@ -12285,24 +12396,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
|
|
|
12285
12396
|
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12286
12397
|
{ ALT: () => {
|
|
12287
12398
|
const subject = SUBRULE(varOrTerm);
|
|
12288
|
-
const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.
|
|
12399
|
+
const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
|
|
12289
12400
|
return ACTION(() => {
|
|
12290
12401
|
if (res.length > 0) {
|
|
12291
12402
|
res[0].subject = subject;
|
|
12292
|
-
res[0].loc = C.
|
|
12403
|
+
res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
|
|
12293
12404
|
}
|
|
12294
12405
|
return res;
|
|
12295
12406
|
});
|
|
12296
12407
|
} },
|
|
12297
12408
|
{ ALT: () => {
|
|
12298
12409
|
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
12299
|
-
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.
|
|
12410
|
+
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
|
|
12300
12411
|
return ACTION(() => {
|
|
12301
12412
|
if (restNode.length === 0) {
|
|
12302
12413
|
return [subjectNode];
|
|
12303
12414
|
}
|
|
12304
12415
|
restNode[0].subject = subjectNode;
|
|
12305
|
-
restNode[0].loc = C.
|
|
12416
|
+
restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
|
|
12306
12417
|
return restNode;
|
|
12307
12418
|
});
|
|
12308
12419
|
} }
|
|
@@ -12386,7 +12497,7 @@ function objectImpl(name, allowPaths) {
|
|
|
12386
12497
|
name,
|
|
12387
12498
|
impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
|
|
12388
12499
|
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
12389
|
-
return ACTION(() => C.
|
|
12500
|
+
return ACTION(() => C.astFactory.triple(subject, predicate, node));
|
|
12390
12501
|
}
|
|
12391
12502
|
};
|
|
12392
12503
|
}
|
|
@@ -12403,7 +12514,7 @@ function collectionImpl(name, allowPaths) {
|
|
|
12403
12514
|
});
|
|
12404
12515
|
const endToken = CONSUME(symbols_exports.RParen);
|
|
12405
12516
|
return ACTION(() => {
|
|
12406
|
-
const F2 = C.
|
|
12517
|
+
const F2 = C.astFactory;
|
|
12407
12518
|
const triples = [];
|
|
12408
12519
|
const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
|
|
12409
12520
|
const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
|
|
@@ -12427,7 +12538,7 @@ function collectionImpl(name, allowPaths) {
|
|
|
12427
12538
|
return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
|
|
12428
12539
|
});
|
|
12429
12540
|
},
|
|
12430
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12541
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12431
12542
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
12432
12543
|
for (const [idx, triple] of ast.triples.entries()) {
|
|
12433
12544
|
if (idx % 2 === 0) {
|
|
@@ -12458,13 +12569,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12458
12569
|
name,
|
|
12459
12570
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12460
12571
|
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12461
|
-
const blankNode2 = ACTION(() => C.
|
|
12572
|
+
const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
|
|
12462
12573
|
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12463
12574
|
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12464
|
-
return ACTION(() => C.
|
|
12575
|
+
return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
|
|
12465
12576
|
},
|
|
12466
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast,
|
|
12467
|
-
F2
|
|
12577
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
|
|
12578
|
+
const { astFactory: F2, indentInc } = c;
|
|
12579
|
+
F2.printFilter(ast, () => {
|
|
12580
|
+
c[traqulaIndentation] += indentInc;
|
|
12581
|
+
PRINT("[\n");
|
|
12582
|
+
});
|
|
12468
12583
|
for (const triple of ast.triples) {
|
|
12469
12584
|
HANDLE_LOC(triple, () => {
|
|
12470
12585
|
if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
|
|
@@ -12472,11 +12587,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12472
12587
|
} else {
|
|
12473
12588
|
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12474
12589
|
}
|
|
12590
|
+
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
12475
12591
|
SUBRULE(graphNodePath, triple.object);
|
|
12476
|
-
F2.printFilter(ast, () => PRINT_WORD("
|
|
12592
|
+
F2.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
12477
12593
|
});
|
|
12478
12594
|
}
|
|
12479
|
-
F2.printFilter(ast, () =>
|
|
12595
|
+
F2.printFilter(ast, () => {
|
|
12596
|
+
c[traqulaIndentation] -= indentInc;
|
|
12597
|
+
PRINT_ON_EMPTY("]");
|
|
12598
|
+
});
|
|
12480
12599
|
}
|
|
12481
12600
|
};
|
|
12482
12601
|
}
|
|
@@ -12493,7 +12612,7 @@ function graphNodeImpl(name, allowPaths) {
|
|
|
12493
12612
|
ALT: () => SUBRULE(triplesNodeRule)
|
|
12494
12613
|
}
|
|
12495
12614
|
]),
|
|
12496
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
12615
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
12497
12616
|
if (F2.isTerm(ast)) {
|
|
12498
12617
|
SUBRULE(varOrTerm, ast);
|
|
12499
12618
|
} else {
|
|
@@ -12511,9 +12630,9 @@ var whereClause = {
|
|
|
12511
12630
|
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12512
12631
|
const where2 = OPTION(() => CONSUME(where));
|
|
12513
12632
|
const group = SUBRULE(groupGraphPattern);
|
|
12514
|
-
return ACTION(() => C.
|
|
12633
|
+
return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
|
|
12515
12634
|
},
|
|
12516
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12635
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12517
12636
|
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12518
12637
|
SUBRULE(groupGraphPattern, ast.val);
|
|
12519
12638
|
}
|
|
@@ -12527,19 +12646,26 @@ var groupGraphPattern = {
|
|
|
12527
12646
|
{ ALT: () => SUBRULE(groupGraphPatternSub) }
|
|
12528
12647
|
]);
|
|
12529
12648
|
const close = CONSUME(symbols_exports.RCurly);
|
|
12530
|
-
return ACTION(() => C.
|
|
12649
|
+
return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
|
|
12531
12650
|
},
|
|
12532
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
12533
|
-
F2
|
|
12651
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
12652
|
+
const { astFactory: F2, indentInc } = C;
|
|
12653
|
+
F2.printFilter(ast, () => {
|
|
12654
|
+
C[traqulaIndentation] += indentInc;
|
|
12655
|
+
PRINT_WORD("{\n");
|
|
12656
|
+
});
|
|
12534
12657
|
for (const pattern of ast.patterns) {
|
|
12535
12658
|
SUBRULE(generatePattern, pattern);
|
|
12536
12659
|
}
|
|
12537
|
-
F2.printFilter(ast, () =>
|
|
12660
|
+
F2.printFilter(ast, () => {
|
|
12661
|
+
C[traqulaIndentation] -= indentInc;
|
|
12662
|
+
PRINT_ON_EMPTY("}\n");
|
|
12663
|
+
});
|
|
12538
12664
|
}
|
|
12539
12665
|
};
|
|
12540
12666
|
var generatePattern = {
|
|
12541
12667
|
name: "generatePattern",
|
|
12542
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
12668
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
12543
12669
|
if (ast.type === "query") {
|
|
12544
12670
|
SUBRULE(query, F2.querySelect({
|
|
12545
12671
|
context: [],
|
|
@@ -12628,9 +12754,9 @@ var optionalGraphPattern = {
|
|
|
12628
12754
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12629
12755
|
const optional2 = CONSUME(optional);
|
|
12630
12756
|
const group = SUBRULE(groupGraphPattern);
|
|
12631
|
-
return ACTION(() => C.
|
|
12757
|
+
return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
|
|
12632
12758
|
},
|
|
12633
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12759
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12634
12760
|
F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12635
12761
|
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12636
12762
|
}
|
|
@@ -12641,9 +12767,9 @@ var graphGraphPattern = {
|
|
|
12641
12767
|
const graph2 = CONSUME(graph_exports.graph);
|
|
12642
12768
|
const name = SUBRULE(varOrIri);
|
|
12643
12769
|
const group = SUBRULE(groupGraphPattern);
|
|
12644
|
-
return ACTION(() => C.
|
|
12770
|
+
return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
|
|
12645
12771
|
},
|
|
12646
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12772
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12647
12773
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
12648
12774
|
SUBRULE(varOrTerm, ast.name);
|
|
12649
12775
|
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
@@ -12659,9 +12785,9 @@ var serviceGraphPattern = {
|
|
|
12659
12785
|
}) ?? false;
|
|
12660
12786
|
const name = SUBRULE1(varOrIri);
|
|
12661
12787
|
const group = SUBRULE1(groupGraphPattern);
|
|
12662
|
-
return ACTION(() => C.
|
|
12788
|
+
return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
|
|
12663
12789
|
},
|
|
12664
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12790
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12665
12791
|
F2.printFilter(ast, () => {
|
|
12666
12792
|
PRINT_WORD("SERVICE");
|
|
12667
12793
|
if (ast.silent) {
|
|
@@ -12681,14 +12807,14 @@ var bind2 = {
|
|
|
12681
12807
|
CONSUME(as);
|
|
12682
12808
|
const variable = SUBRULE(var_);
|
|
12683
12809
|
const close = CONSUME(symbols_exports.RParen);
|
|
12684
|
-
return ACTION(() => C.
|
|
12810
|
+
return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
|
|
12685
12811
|
},
|
|
12686
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12812
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12687
12813
|
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12688
12814
|
SUBRULE(expression, ast.expression);
|
|
12689
12815
|
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12690
12816
|
SUBRULE(var_, ast.variable);
|
|
12691
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12817
|
+
F2.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
12692
12818
|
}
|
|
12693
12819
|
};
|
|
12694
12820
|
var inlineData = {
|
|
@@ -12696,16 +12822,19 @@ var inlineData = {
|
|
|
12696
12822
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12697
12823
|
const values3 = CONSUME(values2);
|
|
12698
12824
|
const datablock = SUBRULE(dataBlock);
|
|
12699
|
-
return ACTION(() => C.
|
|
12825
|
+
return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
|
|
12700
12826
|
},
|
|
12701
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
12827
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
12828
|
+
const { astFactory: F2, indentInc } = C;
|
|
12702
12829
|
const variables = Object.keys(ast.values.at(0) ?? {});
|
|
12703
12830
|
F2.printFilter(ast, () => {
|
|
12831
|
+
PRINT_ON_EMPTY("");
|
|
12704
12832
|
PRINT_WORD("VALUES", "(");
|
|
12705
12833
|
for (const variable of variables) {
|
|
12706
12834
|
PRINT_WORD(`?${variable}`);
|
|
12707
12835
|
}
|
|
12708
|
-
|
|
12836
|
+
C[traqulaIndentation] += indentInc;
|
|
12837
|
+
PRINT_WORD(")", "{\n");
|
|
12709
12838
|
});
|
|
12710
12839
|
for (const mapping of ast.values) {
|
|
12711
12840
|
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
@@ -12716,9 +12845,12 @@ var inlineData = {
|
|
|
12716
12845
|
SUBRULE(graphNodePath, mapping[variable]);
|
|
12717
12846
|
}
|
|
12718
12847
|
}
|
|
12719
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12848
|
+
F2.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
12720
12849
|
}
|
|
12721
|
-
F2.printFilter(ast, () =>
|
|
12850
|
+
F2.printFilter(ast, () => {
|
|
12851
|
+
C[traqulaIndentation] -= indentInc;
|
|
12852
|
+
PRINT_ON_EMPTY("}\n");
|
|
12853
|
+
});
|
|
12722
12854
|
}
|
|
12723
12855
|
};
|
|
12724
12856
|
var dataBlock = {
|
|
@@ -12741,7 +12873,7 @@ var inlineDataOneVar = {
|
|
|
12741
12873
|
});
|
|
12742
12874
|
});
|
|
12743
12875
|
const close = CONSUME(symbols_exports.RCurly);
|
|
12744
|
-
return ACTION(() => C.
|
|
12876
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
|
|
12745
12877
|
}
|
|
12746
12878
|
};
|
|
12747
12879
|
var inlineDataFull = {
|
|
@@ -12758,7 +12890,7 @@ var inlineDataFull = {
|
|
|
12758
12890
|
res.push({});
|
|
12759
12891
|
});
|
|
12760
12892
|
const close = CONSUME1(symbols_exports.RCurly);
|
|
12761
|
-
return ACTION(() => C.
|
|
12893
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
|
|
12762
12894
|
} },
|
|
12763
12895
|
{ ALT: () => {
|
|
12764
12896
|
const open = CONSUME1(symbols_exports.LParen);
|
|
@@ -12790,7 +12922,7 @@ var inlineDataFull = {
|
|
|
12790
12922
|
});
|
|
12791
12923
|
});
|
|
12792
12924
|
const close = CONSUME2(symbols_exports.RCurly);
|
|
12793
|
-
return ACTION(() => C.
|
|
12925
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
|
|
12794
12926
|
} }
|
|
12795
12927
|
]);
|
|
12796
12928
|
}
|
|
@@ -12813,9 +12945,9 @@ var minusGraphPattern = {
|
|
|
12813
12945
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12814
12946
|
const minus2 = CONSUME(minus);
|
|
12815
12947
|
const group = SUBRULE(groupGraphPattern);
|
|
12816
|
-
return ACTION(() => C.
|
|
12948
|
+
return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
|
|
12817
12949
|
},
|
|
12818
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12950
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12819
12951
|
F2.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12820
12952
|
SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
|
|
12821
12953
|
}
|
|
@@ -12831,9 +12963,9 @@ var groupOrUnionGraphPattern = {
|
|
|
12831
12963
|
const group2 = SUBRULE2(groupGraphPattern);
|
|
12832
12964
|
groups.push(group2);
|
|
12833
12965
|
});
|
|
12834
|
-
return ACTION(() => groups.length === 1 ? groups[0] : C.
|
|
12966
|
+
return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
|
|
12835
12967
|
},
|
|
12836
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12968
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12837
12969
|
if (F2.isPatternUnion(ast)) {
|
|
12838
12970
|
const [head2, ...tail] = ast.patterns;
|
|
12839
12971
|
SUBRULE(groupGraphPattern, head2);
|
|
@@ -12851,12 +12983,12 @@ var filter3 = {
|
|
|
12851
12983
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12852
12984
|
const filterToken = CONSUME(filter2);
|
|
12853
12985
|
const expression2 = SUBRULE(constraint);
|
|
12854
|
-
return ACTION(() => C.
|
|
12986
|
+
return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
|
|
12855
12987
|
},
|
|
12856
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12988
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12857
12989
|
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
12858
12990
|
SUBRULE(expression, ast.expression);
|
|
12859
|
-
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
12991
|
+
F2.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
12860
12992
|
}
|
|
12861
12993
|
};
|
|
12862
12994
|
var constraint = {
|
|
@@ -12872,7 +13004,7 @@ var functionCall = {
|
|
|
12872
13004
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
12873
13005
|
const func = SUBRULE(iri2);
|
|
12874
13006
|
const args = SUBRULE(argList);
|
|
12875
|
-
return ACTION(() => C.
|
|
13007
|
+
return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
|
|
12876
13008
|
}
|
|
12877
13009
|
};
|
|
12878
13010
|
|
|
@@ -12882,7 +13014,7 @@ var argList = {
|
|
|
12882
13014
|
impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
|
|
12883
13015
|
{ ALT: () => {
|
|
12884
13016
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
12885
|
-
return ACTION(() => C.
|
|
13017
|
+
return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
|
|
12886
13018
|
} },
|
|
12887
13019
|
{ ALT: () => {
|
|
12888
13020
|
const args = [];
|
|
@@ -12899,10 +13031,10 @@ var argList = {
|
|
|
12899
13031
|
}
|
|
12900
13032
|
});
|
|
12901
13033
|
const close = CONSUME(symbols_exports.RParen);
|
|
12902
|
-
return ACTION(() => C.
|
|
13034
|
+
return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
|
|
12903
13035
|
} }
|
|
12904
13036
|
]),
|
|
12905
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13037
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12906
13038
|
F2.printFilter(ast, () => {
|
|
12907
13039
|
PRINT_WORD("(");
|
|
12908
13040
|
if (ast.val.distinct) {
|
|
@@ -12925,7 +13057,7 @@ var expressionList = {
|
|
|
12925
13057
|
impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
|
|
12926
13058
|
{ ALT: () => {
|
|
12927
13059
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
12928
|
-
return ACTION(() => C.
|
|
13060
|
+
return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
|
|
12929
13061
|
} },
|
|
12930
13062
|
{ ALT: () => {
|
|
12931
13063
|
const open = CONSUME(symbols_exports.LParen);
|
|
@@ -12937,7 +13069,7 @@ var expressionList = {
|
|
|
12937
13069
|
args.push(expr);
|
|
12938
13070
|
});
|
|
12939
13071
|
const close = CONSUME(symbols_exports.RParen);
|
|
12940
|
-
return ACTION(() => C.
|
|
13072
|
+
return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
|
|
12941
13073
|
} }
|
|
12942
13074
|
])
|
|
12943
13075
|
};
|
|
@@ -12946,7 +13078,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
|
|
|
12946
13078
|
var expression = {
|
|
12947
13079
|
name: "expression",
|
|
12948
13080
|
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
|
|
12949
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13081
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
12950
13082
|
if (F2.isTerm(ast)) {
|
|
12951
13083
|
SUBRULE(varOrTerm, ast);
|
|
12952
13084
|
} else if (F2.isExpressionOperator(ast)) {
|
|
@@ -13011,7 +13143,7 @@ var conditionalOrExpression = {
|
|
|
13011
13143
|
impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
|
|
13012
13144
|
CONSUME(symbols_exports.logicOr);
|
|
13013
13145
|
const args = SUBRULE2(conditionalAndExpression);
|
|
13014
|
-
return (left) => ACTION(() => C.
|
|
13146
|
+
return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
|
|
13015
13147
|
}, ACTION, MANY)
|
|
13016
13148
|
};
|
|
13017
13149
|
var conditionalAndExpression = {
|
|
@@ -13019,7 +13151,7 @@ var conditionalAndExpression = {
|
|
|
13019
13151
|
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
|
|
13020
13152
|
CONSUME(symbols_exports.logicAnd);
|
|
13021
13153
|
const arg = SUBRULE2(valueLogical);
|
|
13022
|
-
return (left) => ACTION(() => C.
|
|
13154
|
+
return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
|
|
13023
13155
|
}, ACTION, MANY)
|
|
13024
13156
|
};
|
|
13025
13157
|
var valueLogical = {
|
|
@@ -13041,7 +13173,7 @@ var relationalExpression = {
|
|
|
13041
13173
|
{ ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
|
|
13042
13174
|
]);
|
|
13043
13175
|
const expr = SUBRULE2(numericExpression);
|
|
13044
|
-
return ACTION(() => C.
|
|
13176
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
|
|
13045
13177
|
} },
|
|
13046
13178
|
{ ALT: () => {
|
|
13047
13179
|
const operator = OR3([
|
|
@@ -13049,7 +13181,7 @@ var relationalExpression = {
|
|
|
13049
13181
|
{ ALT: () => CONSUME(notIn) }
|
|
13050
13182
|
]);
|
|
13051
13183
|
const args = SUBRULE1(expressionList);
|
|
13052
|
-
return ACTION(() => C.
|
|
13184
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
|
|
13053
13185
|
} }
|
|
13054
13186
|
]));
|
|
13055
13187
|
return expression2 ?? args1;
|
|
@@ -13068,7 +13200,7 @@ var additiveExpression = {
|
|
|
13068
13200
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13069
13201
|
]);
|
|
13070
13202
|
const arg = SUBRULE2(multiplicativeExpression);
|
|
13071
|
-
return ACTION(() => (left) => C.
|
|
13203
|
+
return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
|
|
13072
13204
|
} },
|
|
13073
13205
|
{ ALT: () => {
|
|
13074
13206
|
const { operator, startInt } = OR3([
|
|
@@ -13099,9 +13231,9 @@ var additiveExpression = {
|
|
|
13099
13231
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13100
13232
|
]);
|
|
13101
13233
|
const innerExpr = SUBRULE1(unaryExpression);
|
|
13102
|
-
return ACTION(() => (leftInner) => C.
|
|
13234
|
+
return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
|
|
13103
13235
|
}, ACTION, MANY2);
|
|
13104
|
-
return (left) => C.
|
|
13236
|
+
return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
|
|
13105
13237
|
} }
|
|
13106
13238
|
]), ACTION, MANY1)
|
|
13107
13239
|
};
|
|
@@ -13118,7 +13250,7 @@ var multiplicativeExpression = {
|
|
|
13118
13250
|
subType: "operation",
|
|
13119
13251
|
operator: operator.image,
|
|
13120
13252
|
args: [left, expr],
|
|
13121
|
-
loc: C.
|
|
13253
|
+
loc: C.astFactory.sourceLocation(left, expr)
|
|
13122
13254
|
});
|
|
13123
13255
|
}, ACTION, MANY)
|
|
13124
13256
|
};
|
|
@@ -13133,7 +13265,7 @@ var unaryExpression = {
|
|
|
13133
13265
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13134
13266
|
]);
|
|
13135
13267
|
const expr = SUBRULE2(primaryExpression);
|
|
13136
|
-
return ACTION(() => C.
|
|
13268
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
|
|
13137
13269
|
} }
|
|
13138
13270
|
])
|
|
13139
13271
|
};
|
|
@@ -13156,7 +13288,7 @@ var brackettedExpression = {
|
|
|
13156
13288
|
const expr = SUBRULE(expression);
|
|
13157
13289
|
const close = CONSUME(symbols_exports.RParen);
|
|
13158
13290
|
return ACTION(() => {
|
|
13159
|
-
expr.loc = C.
|
|
13291
|
+
expr.loc = C.astFactory.sourceLocation(open, close);
|
|
13160
13292
|
return expr;
|
|
13161
13293
|
});
|
|
13162
13294
|
}
|
|
@@ -13178,13 +13310,13 @@ var iriOrFunction = {
|
|
|
13178
13310
|
function: iriVal,
|
|
13179
13311
|
args: args.val.args,
|
|
13180
13312
|
distinct: distinct2,
|
|
13181
|
-
loc: C.
|
|
13313
|
+
loc: C.astFactory.sourceLocation(iriVal, args)
|
|
13182
13314
|
};
|
|
13183
13315
|
});
|
|
13184
13316
|
});
|
|
13185
13317
|
return functionCall2 ?? iriVal;
|
|
13186
13318
|
},
|
|
13187
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13319
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13188
13320
|
if (F2.isTermNamed(ast)) {
|
|
13189
13321
|
SUBRULE(iri2, ast);
|
|
13190
13322
|
} else {
|
|
@@ -13237,11 +13369,14 @@ var groupClause = {
|
|
|
13237
13369
|
type: "solutionModifier",
|
|
13238
13370
|
subType: "group",
|
|
13239
13371
|
groupings,
|
|
13240
|
-
loc: C.
|
|
13372
|
+
loc: C.astFactory.sourceLocation(start, groupings.at(-1))
|
|
13241
13373
|
}));
|
|
13242
13374
|
},
|
|
13243
|
-
gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, {
|
|
13244
|
-
F2.printFilter(ast, () =>
|
|
13375
|
+
gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
13376
|
+
F2.printFilter(ast, () => {
|
|
13377
|
+
PRINT_ON_EMPTY("");
|
|
13378
|
+
PRINT_WORDS("GROUP", "BY");
|
|
13379
|
+
});
|
|
13245
13380
|
for (const grouping of ast.groupings) {
|
|
13246
13381
|
if (F2.isExpression(grouping)) {
|
|
13247
13382
|
SUBRULE(expression, grouping);
|
|
@@ -13275,7 +13410,7 @@ var groupCondition = {
|
|
|
13275
13410
|
return {
|
|
13276
13411
|
variable,
|
|
13277
13412
|
value: expressionValue,
|
|
13278
|
-
loc: C.
|
|
13413
|
+
loc: C.astFactory.sourceLocation(open, close)
|
|
13279
13414
|
};
|
|
13280
13415
|
}
|
|
13281
13416
|
return expressionValue;
|
|
@@ -13294,10 +13429,13 @@ var havingClause = {
|
|
|
13294
13429
|
expressions.push(SUBRULE(havingCondition));
|
|
13295
13430
|
});
|
|
13296
13431
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13297
|
-
return ACTION(() => C.
|
|
13432
|
+
return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
|
|
13298
13433
|
},
|
|
13299
|
-
gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, {
|
|
13300
|
-
F2.printFilter(ast, () =>
|
|
13434
|
+
gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13435
|
+
F2.printFilter(ast, () => {
|
|
13436
|
+
PRINT_ON_EMPTY("");
|
|
13437
|
+
PRINT_WORD("HAVING");
|
|
13438
|
+
});
|
|
13301
13439
|
for (const having2 of ast.having) {
|
|
13302
13440
|
SUBRULE(expression, having2);
|
|
13303
13441
|
}
|
|
@@ -13318,10 +13456,13 @@ var orderClause = {
|
|
|
13318
13456
|
orderings.push(SUBRULE1(orderCondition));
|
|
13319
13457
|
});
|
|
13320
13458
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13321
|
-
return ACTION(() => C.
|
|
13459
|
+
return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
|
|
13322
13460
|
},
|
|
13323
|
-
gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, {
|
|
13324
|
-
F2.printFilter(ast, () =>
|
|
13461
|
+
gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13462
|
+
F2.printFilter(ast, () => {
|
|
13463
|
+
PRINT_ON_EMPTY("");
|
|
13464
|
+
PRINT_WORDS("ORDER", "BY");
|
|
13465
|
+
});
|
|
13325
13466
|
for (const ordering of ast.orderDefs) {
|
|
13326
13467
|
if (ordering.descending) {
|
|
13327
13468
|
F2.printFilter(ast, () => PRINT_WORDS("DESC"));
|
|
@@ -13352,7 +13493,7 @@ var orderCondition = {
|
|
|
13352
13493
|
return ACTION(() => ({
|
|
13353
13494
|
expression: expr,
|
|
13354
13495
|
descending: descending[0],
|
|
13355
|
-
loc: C.
|
|
13496
|
+
loc: C.astFactory.sourceLocation(descending[1], expr)
|
|
13356
13497
|
}));
|
|
13357
13498
|
} },
|
|
13358
13499
|
{ ALT: () => {
|
|
@@ -13371,16 +13512,17 @@ var limitOffsetClauses = {
|
|
|
13371
13512
|
{ ALT: () => {
|
|
13372
13513
|
const limit2 = SUBRULE1(limitClause);
|
|
13373
13514
|
const offset2 = OPTION1(() => SUBRULE1(offsetClause));
|
|
13374
|
-
return ACTION(() => C.
|
|
13515
|
+
return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
|
|
13375
13516
|
} },
|
|
13376
13517
|
{ ALT: () => {
|
|
13377
13518
|
const offset2 = SUBRULE2(offsetClause);
|
|
13378
13519
|
const limit2 = OPTION2(() => SUBRULE2(limitClause));
|
|
13379
|
-
return ACTION(() => C.
|
|
13520
|
+
return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
|
|
13380
13521
|
} }
|
|
13381
13522
|
]),
|
|
13382
|
-
gImpl: ({ PRINT_WORDS }) => (ast, {
|
|
13523
|
+
gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
13383
13524
|
F2.printFilter(ast, () => {
|
|
13525
|
+
PRINT_ON_EMPTY("");
|
|
13384
13526
|
if (ast.limit) {
|
|
13385
13527
|
PRINT_WORDS("LIMIT", String(ast.limit));
|
|
13386
13528
|
}
|
|
@@ -13396,7 +13538,7 @@ var limitClause = {
|
|
|
13396
13538
|
const offset2 = CONSUME(limit);
|
|
13397
13539
|
const value = CONSUME(terminals_exports.integer);
|
|
13398
13540
|
const val = Number.parseInt(value.image, 10);
|
|
13399
|
-
return ACTION(() => C.
|
|
13541
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
|
|
13400
13542
|
}
|
|
13401
13543
|
};
|
|
13402
13544
|
var offsetClause = {
|
|
@@ -13405,7 +13547,7 @@ var offsetClause = {
|
|
|
13405
13547
|
const offset2 = CONSUME(offset);
|
|
13406
13548
|
const value = CONSUME(terminals_exports.integer);
|
|
13407
13549
|
const val = Number.parseInt(value.image, 10);
|
|
13408
|
-
return ACTION(() => C.
|
|
13550
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
|
|
13409
13551
|
}
|
|
13410
13552
|
};
|
|
13411
13553
|
|
|
@@ -13430,10 +13572,10 @@ var query = {
|
|
|
13430
13572
|
...subType,
|
|
13431
13573
|
type: "query",
|
|
13432
13574
|
...values3 && { values: values3 },
|
|
13433
|
-
loc: C.
|
|
13575
|
+
loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
|
|
13434
13576
|
}));
|
|
13435
13577
|
},
|
|
13436
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13578
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13437
13579
|
SUBRULE(prologue, ast.context);
|
|
13438
13580
|
if (F2.isQuerySelect(ast)) {
|
|
13439
13581
|
SUBRULE(selectQuery, ast);
|
|
@@ -13463,13 +13605,13 @@ var selectQuery = {
|
|
|
13463
13605
|
solutionModifiers: modifiers,
|
|
13464
13606
|
datasets: from2,
|
|
13465
13607
|
...selectVal.val,
|
|
13466
|
-
loc: C.
|
|
13608
|
+
loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13467
13609
|
};
|
|
13468
13610
|
queryIsGood(ret);
|
|
13469
13611
|
return ret;
|
|
13470
13612
|
});
|
|
13471
13613
|
},
|
|
13472
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13614
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13473
13615
|
SUBRULE(selectClause, F2.wrap({
|
|
13474
13616
|
variables: ast.variables,
|
|
13475
13617
|
distinct: ast.distinct,
|
|
@@ -13487,14 +13629,14 @@ var subSelect = {
|
|
|
13487
13629
|
const where2 = SUBRULE(whereClause);
|
|
13488
13630
|
const modifiers = SUBRULE(solutionModifier);
|
|
13489
13631
|
const values3 = SUBRULE(valuesClause);
|
|
13490
|
-
return ACTION(() => C.
|
|
13632
|
+
return ACTION(() => C.astFactory.querySelect({
|
|
13491
13633
|
where: where2.val,
|
|
13492
|
-
datasets: C.
|
|
13634
|
+
datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
|
|
13493
13635
|
context: [],
|
|
13494
13636
|
solutionModifiers: modifiers,
|
|
13495
13637
|
...selectVal.val,
|
|
13496
13638
|
...values3 && { values: values3 }
|
|
13497
|
-
}, C.
|
|
13639
|
+
}, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
|
|
13498
13640
|
}
|
|
13499
13641
|
};
|
|
13500
13642
|
var selectClause = {
|
|
@@ -13525,7 +13667,7 @@ var selectClause = {
|
|
|
13525
13667
|
const star2 = CONSUME(symbols_exports.star);
|
|
13526
13668
|
return ACTION(() => {
|
|
13527
13669
|
last2 = star2;
|
|
13528
|
-
return { variables: [C.
|
|
13670
|
+
return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
|
|
13529
13671
|
});
|
|
13530
13672
|
} },
|
|
13531
13673
|
{ ALT: () => {
|
|
@@ -13555,7 +13697,7 @@ var selectClause = {
|
|
|
13555
13697
|
throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
|
|
13556
13698
|
}
|
|
13557
13699
|
usedVars.push(variable);
|
|
13558
|
-
variables.push(C.
|
|
13700
|
+
variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
|
|
13559
13701
|
});
|
|
13560
13702
|
} }
|
|
13561
13703
|
]));
|
|
@@ -13563,9 +13705,9 @@ var selectClause = {
|
|
|
13563
13705
|
} }
|
|
13564
13706
|
]);
|
|
13565
13707
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13566
|
-
return ACTION(() => C.
|
|
13708
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
|
|
13567
13709
|
},
|
|
13568
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13710
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13569
13711
|
F2.printFilter(ast, () => {
|
|
13570
13712
|
PRINT_WORD("SELECT");
|
|
13571
13713
|
if (ast.val.distinct) {
|
|
@@ -13605,7 +13747,7 @@ var constructQuery = {
|
|
|
13605
13747
|
datasets: from2,
|
|
13606
13748
|
where: where2.val,
|
|
13607
13749
|
solutionModifiers: modifiers,
|
|
13608
|
-
loc: C.
|
|
13750
|
+
loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13609
13751
|
}));
|
|
13610
13752
|
} },
|
|
13611
13753
|
{ ALT: () => {
|
|
@@ -13617,19 +13759,26 @@ var constructQuery = {
|
|
|
13617
13759
|
subType: "construct",
|
|
13618
13760
|
template: template.val,
|
|
13619
13761
|
datasets: from2,
|
|
13620
|
-
where: C.
|
|
13762
|
+
where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
|
|
13621
13763
|
solutionModifiers: modifiers,
|
|
13622
|
-
loc: C.
|
|
13764
|
+
loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13623
13765
|
}));
|
|
13624
13766
|
} }
|
|
13625
13767
|
]);
|
|
13626
13768
|
},
|
|
13627
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
13769
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
13770
|
+
const { astFactory: F2, indentInc } = C;
|
|
13628
13771
|
F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
|
|
13629
13772
|
if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13630
|
-
F2.printFilter(ast, () =>
|
|
13773
|
+
F2.printFilter(ast, () => {
|
|
13774
|
+
C[traqulaIndentation] += indentInc;
|
|
13775
|
+
PRINT_WORD("{\n");
|
|
13776
|
+
});
|
|
13631
13777
|
SUBRULE(triplesBlock, ast.template);
|
|
13632
|
-
F2.printFilter(ast, () =>
|
|
13778
|
+
F2.printFilter(ast, () => {
|
|
13779
|
+
C[traqulaIndentation] -= indentInc;
|
|
13780
|
+
PRINT_ON_EMPTY("}\n");
|
|
13781
|
+
});
|
|
13633
13782
|
}
|
|
13634
13783
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13635
13784
|
if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
@@ -13654,7 +13803,7 @@ var describeQuery = {
|
|
|
13654
13803
|
} },
|
|
13655
13804
|
{ ALT: () => {
|
|
13656
13805
|
const star2 = CONSUME(symbols_exports.star);
|
|
13657
|
-
return [ACTION(() => C.
|
|
13806
|
+
return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
|
|
13658
13807
|
} }
|
|
13659
13808
|
]);
|
|
13660
13809
|
const from2 = SUBRULE1(datasetClauseStar);
|
|
@@ -13666,10 +13815,10 @@ var describeQuery = {
|
|
|
13666
13815
|
datasets: from2,
|
|
13667
13816
|
...where2 && { where: where2.val },
|
|
13668
13817
|
solutionModifiers: modifiers,
|
|
13669
|
-
loc: C.
|
|
13818
|
+
loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13670
13819
|
}));
|
|
13671
13820
|
},
|
|
13672
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13821
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13673
13822
|
F2.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
|
|
13674
13823
|
if (F2.isWildcard(ast.variables[0])) {
|
|
13675
13824
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
@@ -13697,10 +13846,10 @@ var askQuery = {
|
|
|
13697
13846
|
datasets: from2,
|
|
13698
13847
|
where: where2.val,
|
|
13699
13848
|
solutionModifiers: modifiers,
|
|
13700
|
-
loc: C.
|
|
13849
|
+
loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13701
13850
|
}));
|
|
13702
13851
|
},
|
|
13703
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13852
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13704
13853
|
F2.printFilter(ast, () => PRINT_WORD("ASK"));
|
|
13705
13854
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13706
13855
|
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
@@ -13717,7 +13866,7 @@ var constructTemplate = {
|
|
|
13717
13866
|
const open = CONSUME(symbols_exports.LCurly);
|
|
13718
13867
|
const triples = OPTION(() => SUBRULE1(constructTriples));
|
|
13719
13868
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13720
|
-
return ACTION(() => C.
|
|
13869
|
+
return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
|
|
13721
13870
|
}
|
|
13722
13871
|
};
|
|
13723
13872
|
var constructTriples = {
|
|
@@ -13754,13 +13903,13 @@ var update = {
|
|
|
13754
13903
|
const update2 = {
|
|
13755
13904
|
type: "update",
|
|
13756
13905
|
updates,
|
|
13757
|
-
loc: C.
|
|
13906
|
+
loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
|
|
13758
13907
|
};
|
|
13759
13908
|
updateNoReuseBlankNodeLabels(update2);
|
|
13760
13909
|
return update2;
|
|
13761
13910
|
});
|
|
13762
13911
|
},
|
|
13763
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13912
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13764
13913
|
const [head2, ...tail] = ast.updates;
|
|
13765
13914
|
if (head2) {
|
|
13766
13915
|
SUBRULE(prologue, head2.context);
|
|
@@ -13840,9 +13989,9 @@ var load2 = {
|
|
|
13840
13989
|
CONSUME(loadInto);
|
|
13841
13990
|
return SUBRULE1(graphRef);
|
|
13842
13991
|
});
|
|
13843
|
-
return ACTION(() => C.
|
|
13992
|
+
return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
|
|
13844
13993
|
},
|
|
13845
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13994
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13846
13995
|
F2.printFilter(ast, () => {
|
|
13847
13996
|
PRINT_WORD("LOAD");
|
|
13848
13997
|
if (ast.silent) {
|
|
@@ -13863,9 +14012,9 @@ function clearOrDrop(operation) {
|
|
|
13863
14012
|
const opToken = CONSUME(operation);
|
|
13864
14013
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
13865
14014
|
const destination = SUBRULE1(graphRefAll);
|
|
13866
|
-
return ACTION(() => C.
|
|
14015
|
+
return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
|
|
13867
14016
|
},
|
|
13868
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14017
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13869
14018
|
F2.printFilter(ast, () => {
|
|
13870
14019
|
PRINT_WORD(operation.name.toUpperCase());
|
|
13871
14020
|
if (ast.silent) {
|
|
@@ -13884,9 +14033,9 @@ var create2 = {
|
|
|
13884
14033
|
const createToken3 = CONSUME(create);
|
|
13885
14034
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
13886
14035
|
const destination = SUBRULE1(graphRef);
|
|
13887
|
-
return ACTION(() => C.
|
|
14036
|
+
return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
|
|
13888
14037
|
},
|
|
13889
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14038
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13890
14039
|
F2.printFilter(ast, () => {
|
|
13891
14040
|
PRINT_WORD("CREATE");
|
|
13892
14041
|
if (ast.silent) {
|
|
@@ -13905,9 +14054,9 @@ function copyMoveAddOperation(operation) {
|
|
|
13905
14054
|
const source = SUBRULE1(graphOrDefault);
|
|
13906
14055
|
CONSUME(to);
|
|
13907
14056
|
const destination = SUBRULE2(graphOrDefault);
|
|
13908
|
-
return ACTION(() => C.
|
|
14057
|
+
return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
|
|
13909
14058
|
},
|
|
13910
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14059
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13911
14060
|
F2.printFilter(ast, () => {
|
|
13912
14061
|
PRINT_WORD(operation.name.toUpperCase());
|
|
13913
14062
|
if (ast.silent) {
|
|
@@ -13929,7 +14078,7 @@ var quadPattern = {
|
|
|
13929
14078
|
const open = CONSUME(symbols_exports.LCurly);
|
|
13930
14079
|
const val = SUBRULE1(quads);
|
|
13931
14080
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13932
|
-
return ACTION(() => C.
|
|
14081
|
+
return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
|
|
13933
14082
|
}
|
|
13934
14083
|
};
|
|
13935
14084
|
var quadData = {
|
|
@@ -13940,7 +14089,7 @@ var quadData = {
|
|
|
13940
14089
|
const val = SUBRULE1(quads);
|
|
13941
14090
|
ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
|
|
13942
14091
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13943
|
-
return ACTION(() => C.
|
|
14092
|
+
return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
|
|
13944
14093
|
}
|
|
13945
14094
|
};
|
|
13946
14095
|
function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
@@ -13957,12 +14106,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
13957
14106
|
if (name !== "insertData") {
|
|
13958
14107
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
13959
14108
|
}
|
|
13960
|
-
return ACTION(() => C.
|
|
14109
|
+
return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
|
|
13961
14110
|
},
|
|
13962
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
13963
|
-
|
|
14111
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14112
|
+
const { astFactory: F2, indentInc } = C;
|
|
14113
|
+
F2.printFilter(ast, () => {
|
|
14114
|
+
C[traqulaIndentation] += indentInc;
|
|
14115
|
+
if (subType === "insertdata") {
|
|
14116
|
+
PRINT_WORD("INSERT DATA");
|
|
14117
|
+
} else if (subType === "deletedata") {
|
|
14118
|
+
PRINT_WORD("DELETE DATA");
|
|
14119
|
+
} else if (subType === "deletewhere") {
|
|
14120
|
+
PRINT_WORD("DELETE WHERE");
|
|
14121
|
+
}
|
|
14122
|
+
PRINT_WORD("{\n");
|
|
14123
|
+
});
|
|
13964
14124
|
SUBRULE(quads, F2.wrap(ast.data, ast.loc));
|
|
13965
|
-
F2.printFilter(ast, () =>
|
|
14125
|
+
F2.printFilter(ast, () => {
|
|
14126
|
+
C[traqulaIndentation] -= indentInc;
|
|
14127
|
+
PRINT_ON_EMPTY("}\n");
|
|
14128
|
+
});
|
|
13966
14129
|
}
|
|
13967
14130
|
};
|
|
13968
14131
|
}
|
|
@@ -13991,22 +14154,35 @@ var modify = {
|
|
|
13991
14154
|
const using = SUBRULE1(usingClauseStar);
|
|
13992
14155
|
CONSUME(where);
|
|
13993
14156
|
const where2 = SUBRULE1(groupGraphPattern);
|
|
13994
|
-
return ACTION(() => C.
|
|
14157
|
+
return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
|
|
13995
14158
|
},
|
|
13996
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
14159
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14160
|
+
const { astFactory: F2, indentInc } = C;
|
|
13997
14161
|
if (ast.graph) {
|
|
13998
14162
|
F2.printFilter(ast, () => PRINT_WORD("WITH"));
|
|
13999
14163
|
SUBRULE(iri2, ast.graph);
|
|
14000
14164
|
}
|
|
14001
14165
|
if (ast.delete.length > 0) {
|
|
14002
|
-
F2.printFilter(ast, () =>
|
|
14166
|
+
F2.printFilter(ast, () => {
|
|
14167
|
+
C[traqulaIndentation] += indentInc;
|
|
14168
|
+
PRINT_WORD("DELETE", "{\n");
|
|
14169
|
+
});
|
|
14003
14170
|
SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
|
|
14004
|
-
F2.printFilter(ast, () =>
|
|
14171
|
+
F2.printFilter(ast, () => {
|
|
14172
|
+
C[traqulaIndentation] -= indentInc;
|
|
14173
|
+
PRINT_ON_EMPTY("}\n");
|
|
14174
|
+
});
|
|
14005
14175
|
}
|
|
14006
14176
|
if (ast.insert.length > 0) {
|
|
14007
|
-
F2.printFilter(ast, () =>
|
|
14177
|
+
F2.printFilter(ast, () => {
|
|
14178
|
+
C[traqulaIndentation] += indentInc;
|
|
14179
|
+
PRINT_WORD("INSERT", "{\n");
|
|
14180
|
+
});
|
|
14008
14181
|
SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
|
|
14009
|
-
F2.printFilter(ast, () =>
|
|
14182
|
+
F2.printFilter(ast, () => {
|
|
14183
|
+
C[traqulaIndentation] -= indentInc;
|
|
14184
|
+
PRINT_ON_EMPTY("}\n");
|
|
14185
|
+
});
|
|
14010
14186
|
}
|
|
14011
14187
|
SUBRULE(usingClauseStar, ast.from);
|
|
14012
14188
|
F2.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
@@ -14020,7 +14196,7 @@ var deleteClause2 = {
|
|
|
14020
14196
|
const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14021
14197
|
const del = SUBRULE(quadPattern);
|
|
14022
14198
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14023
|
-
return ACTION(() => C.
|
|
14199
|
+
return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
|
|
14024
14200
|
}
|
|
14025
14201
|
};
|
|
14026
14202
|
var insertClause2 = {
|
|
@@ -14028,7 +14204,7 @@ var insertClause2 = {
|
|
|
14028
14204
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14029
14205
|
const insertToken = CONSUME(insertClause);
|
|
14030
14206
|
const insert = SUBRULE(quadPattern);
|
|
14031
|
-
return ACTION(() => C.
|
|
14207
|
+
return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
|
|
14032
14208
|
}
|
|
14033
14209
|
};
|
|
14034
14210
|
var graphOrDefault = {
|
|
@@ -14036,12 +14212,12 @@ var graphOrDefault = {
|
|
|
14036
14212
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
|
|
14037
14213
|
{ ALT: () => {
|
|
14038
14214
|
const def = CONSUME(graph_exports.default_);
|
|
14039
|
-
return ACTION(() => C.
|
|
14215
|
+
return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
|
|
14040
14216
|
} },
|
|
14041
14217
|
{ ALT: () => {
|
|
14042
14218
|
const graph2 = OPTION(() => CONSUME(graph_exports.graph));
|
|
14043
14219
|
const name = SUBRULE1(iri2);
|
|
14044
|
-
return ACTION(() => C.
|
|
14220
|
+
return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
|
|
14045
14221
|
} }
|
|
14046
14222
|
])
|
|
14047
14223
|
};
|
|
@@ -14050,9 +14226,9 @@ var graphRef = {
|
|
|
14050
14226
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14051
14227
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14052
14228
|
const val = SUBRULE(iri2);
|
|
14053
|
-
return ACTION(() => C.
|
|
14229
|
+
return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
|
|
14054
14230
|
},
|
|
14055
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14231
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14056
14232
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14057
14233
|
SUBRULE(iri2, ast.graph);
|
|
14058
14234
|
}
|
|
@@ -14063,18 +14239,18 @@ var graphRefAll = {
|
|
|
14063
14239
|
{ ALT: () => SUBRULE(graphRef) },
|
|
14064
14240
|
{ ALT: () => {
|
|
14065
14241
|
const def = CONSUME(graph_exports.default_);
|
|
14066
|
-
return ACTION(() => C.
|
|
14242
|
+
return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
|
|
14067
14243
|
} },
|
|
14068
14244
|
{ ALT: () => {
|
|
14069
14245
|
const named2 = CONSUME(graph_exports.named);
|
|
14070
|
-
return ACTION(() => C.
|
|
14246
|
+
return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
|
|
14071
14247
|
} },
|
|
14072
14248
|
{ ALT: () => {
|
|
14073
14249
|
const graphAll2 = CONSUME(graph_exports.graphAll);
|
|
14074
|
-
return ACTION(() => C.
|
|
14250
|
+
return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
|
|
14075
14251
|
} }
|
|
14076
14252
|
]),
|
|
14077
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14253
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14078
14254
|
if (F2.isGraphRefSpecific(ast)) {
|
|
14079
14255
|
SUBRULE(graphRef, ast);
|
|
14080
14256
|
} else if (F2.isGraphRefDefault(ast)) {
|
|
@@ -14111,9 +14287,9 @@ var quads = {
|
|
|
14111
14287
|
ACTION(() => quads2.push(triples));
|
|
14112
14288
|
});
|
|
14113
14289
|
});
|
|
14114
|
-
return ACTION(() => C.
|
|
14290
|
+
return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
|
|
14115
14291
|
},
|
|
14116
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
14292
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
14117
14293
|
for (const quad of ast.val) {
|
|
14118
14294
|
if (F2.isPattern(quad)) {
|
|
14119
14295
|
SUBRULE(triplesBlock, quad);
|
|
@@ -14131,14 +14307,21 @@ var quadsNotTriples = {
|
|
|
14131
14307
|
CONSUME(symbols_exports.LCurly);
|
|
14132
14308
|
const triples = OPTION(() => SUBRULE1(triplesTemplate));
|
|
14133
14309
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14134
|
-
return ACTION(() => C.
|
|
14310
|
+
return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
|
|
14135
14311
|
},
|
|
14136
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
14312
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14313
|
+
const { astFactory: F2, indentInc } = C;
|
|
14137
14314
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14138
14315
|
SUBRULE(varOrTerm, ast.graph);
|
|
14139
|
-
F2.printFilter(ast, () =>
|
|
14316
|
+
F2.printFilter(ast, () => {
|
|
14317
|
+
C[traqulaIndentation] += indentInc;
|
|
14318
|
+
PRINT_WORD("{\n");
|
|
14319
|
+
});
|
|
14140
14320
|
SUBRULE(triplesBlock, ast.triples);
|
|
14141
|
-
F2.printFilter(ast, () =>
|
|
14321
|
+
F2.printFilter(ast, () => {
|
|
14322
|
+
C[traqulaIndentation] -= indentInc;
|
|
14323
|
+
PRINT_ON_EMPTY("}\n");
|
|
14324
|
+
});
|
|
14142
14325
|
}
|
|
14143
14326
|
};
|
|
14144
14327
|
|
|
@@ -14161,7 +14344,7 @@ var queryOrUpdate = {
|
|
|
14161
14344
|
...subType,
|
|
14162
14345
|
type: "query",
|
|
14163
14346
|
...values3 && { values: values3 },
|
|
14164
|
-
loc: C.
|
|
14347
|
+
loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
|
|
14165
14348
|
}));
|
|
14166
14349
|
} },
|
|
14167
14350
|
{ ALT: () => {
|
|
@@ -14185,7 +14368,7 @@ var queryOrUpdate = {
|
|
|
14185
14368
|
const update2 = {
|
|
14186
14369
|
type: "update",
|
|
14187
14370
|
updates,
|
|
14188
|
-
loc: C.
|
|
14371
|
+
loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
|
|
14189
14372
|
};
|
|
14190
14373
|
updateNoReuseBlankNodeLabels(update2);
|
|
14191
14374
|
return update2;
|
|
@@ -14193,7 +14376,7 @@ var queryOrUpdate = {
|
|
|
14193
14376
|
} }
|
|
14194
14377
|
]);
|
|
14195
14378
|
},
|
|
14196
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
14379
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
14197
14380
|
if (F2.isQuery(ast)) {
|
|
14198
14381
|
SUBRULE(query, ast);
|
|
14199
14382
|
} else {
|
|
@@ -14205,13 +14388,15 @@ var queryOrUpdate = {
|
|
|
14205
14388
|
// lib/MinimalSparqlParser.js
|
|
14206
14389
|
function completeParseContext(context) {
|
|
14207
14390
|
return {
|
|
14208
|
-
|
|
14391
|
+
astFactory: context.astFactory ?? new AstFactory(),
|
|
14209
14392
|
baseIRI: context.baseIRI,
|
|
14210
14393
|
prefixes: { ...context.prefixes },
|
|
14211
14394
|
origSource: context.origSource ?? "",
|
|
14212
14395
|
offset: context.offset,
|
|
14213
14396
|
parseMode: context.parseMode ? new Set(context.parseMode) : /* @__PURE__ */ new Set(["canParseVars", "canCreateBlankNodes"]),
|
|
14214
|
-
skipValidation: context.skipValidation ?? false
|
|
14397
|
+
skipValidation: context.skipValidation ?? false,
|
|
14398
|
+
[traqulaIndentation]: context[traqulaIndentation] ?? 0,
|
|
14399
|
+
indentInc: context.indentInc ?? 2
|
|
14215
14400
|
};
|
|
14216
14401
|
}
|
|
14217
14402
|
var MinimalSparqlParser = class {
|
|
@@ -14219,7 +14404,7 @@ var MinimalSparqlParser = class {
|
|
|
14219
14404
|
constructor(parser) {
|
|
14220
14405
|
this.parser = parser;
|
|
14221
14406
|
}
|
|
14222
|
-
F = new
|
|
14407
|
+
F = new AstFactory();
|
|
14223
14408
|
parse(query2, context = {}) {
|
|
14224
14409
|
return this.parser.queryOrUpdate(query2, completeParseContext(context));
|
|
14225
14410
|
}
|