@traqula/rules-sparql-1-1-adjust 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs +317 -194
- package/package.json +4 -4
package/lib/index.cjs
CHANGED
|
@@ -9768,6 +9768,11 @@ var LexerBuilder = class _LexerBuilder {
|
|
|
9768
9768
|
|
|
9769
9769
|
// ../core/lib/Transformers.js
|
|
9770
9770
|
var TransformerType = class {
|
|
9771
|
+
clone(obj) {
|
|
9772
|
+
const newObj = Object.create(Object.getPrototypeOf(obj));
|
|
9773
|
+
Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
|
|
9774
|
+
return newObj;
|
|
9775
|
+
}
|
|
9771
9776
|
safeObjectVisit(value, mapper) {
|
|
9772
9777
|
if (value && typeof value === "object") {
|
|
9773
9778
|
if (Array.isArray(value)) {
|
|
@@ -9777,104 +9782,213 @@ var TransformerType = class {
|
|
|
9777
9782
|
}
|
|
9778
9783
|
return value;
|
|
9779
9784
|
}
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9785
|
+
/**
|
|
9786
|
+
* Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
|
|
9787
|
+
* @param startObject object to start iterating from
|
|
9788
|
+
* @param mapper mapper to transform the various objects - argument is a copy of the original
|
|
9789
|
+
* @param preVisitor callback that is evaluated before iterating deeper.
|
|
9790
|
+
* If continues is false, we do not iterate deeper, current object is still mapped. - default: true
|
|
9791
|
+
* If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
|
|
9792
|
+
* - Default false
|
|
9793
|
+
*/
|
|
9794
|
+
transformObject(startObject, mapper, preVisitor = () => ({})) {
|
|
9795
|
+
let didShortCut = false;
|
|
9796
|
+
const recurse = (curObject) => {
|
|
9797
|
+
const copy3 = this.clone(curObject);
|
|
9798
|
+
const context = preVisitor(copy3);
|
|
9799
|
+
didShortCut = context.shortcut ?? false;
|
|
9800
|
+
const continues = context.continue ?? true;
|
|
9801
|
+
if (continues && !didShortCut) {
|
|
9802
|
+
for (const [key, value] of Object.entries(copy3)) {
|
|
9803
|
+
if (didShortCut) {
|
|
9804
|
+
return copy3;
|
|
9805
|
+
}
|
|
9806
|
+
copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9807
|
+
}
|
|
9808
|
+
}
|
|
9809
|
+
return mapper(copy3);
|
|
9810
|
+
};
|
|
9811
|
+
return recurse(startObject);
|
|
9803
9812
|
}
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9811
|
-
|
|
9812
|
-
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
|
|
9813
|
+
/**
|
|
9814
|
+
* Visitor that visits all objects. Visits deeper objects first.
|
|
9815
|
+
*/
|
|
9816
|
+
visitObject(startObject, visitor, preVisitor = () => ({})) {
|
|
9817
|
+
let didShortCut = false;
|
|
9818
|
+
const recurse = (curObject) => {
|
|
9819
|
+
const context = preVisitor(curObject);
|
|
9820
|
+
didShortCut = context.shortcut ?? false;
|
|
9821
|
+
const continues = context.continue ?? true;
|
|
9822
|
+
if (continues && !didShortCut) {
|
|
9823
|
+
for (const value of Object.values(curObject)) {
|
|
9824
|
+
if (didShortCut) {
|
|
9825
|
+
return;
|
|
9826
|
+
}
|
|
9827
|
+
this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9828
|
+
}
|
|
9817
9829
|
}
|
|
9818
|
-
|
|
9830
|
+
visitor(curObject);
|
|
9831
|
+
};
|
|
9832
|
+
recurse(startObject);
|
|
9833
|
+
}
|
|
9834
|
+
transformNode(startObject, nodeCallBacks) {
|
|
9835
|
+
const transformWrapper = (curObject) => {
|
|
9836
|
+
const casted = curObject;
|
|
9837
|
+
if (casted.type) {
|
|
9838
|
+
const ogFunc = nodeCallBacks[casted.type]?.transform;
|
|
9839
|
+
if (ogFunc) {
|
|
9840
|
+
return ogFunc(casted);
|
|
9841
|
+
}
|
|
9842
|
+
}
|
|
9843
|
+
return curObject;
|
|
9844
|
+
};
|
|
9845
|
+
const preTransformWrapper = (curObject) => {
|
|
9846
|
+
const casted = curObject;
|
|
9847
|
+
if (casted.type) {
|
|
9848
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9849
|
+
if (ogFunc) {
|
|
9850
|
+
return ogFunc(casted);
|
|
9851
|
+
}
|
|
9852
|
+
}
|
|
9853
|
+
return {};
|
|
9854
|
+
};
|
|
9855
|
+
return this.transformObject(startObject, transformWrapper, preTransformWrapper);
|
|
9856
|
+
}
|
|
9857
|
+
visitNode(startObject, nodeCallBacks) {
|
|
9858
|
+
const visitWrapper = (curObject) => {
|
|
9859
|
+
const casted = curObject;
|
|
9860
|
+
if (casted.type) {
|
|
9861
|
+
const ogFunc = nodeCallBacks[casted.type]?.visitor;
|
|
9862
|
+
if (ogFunc) {
|
|
9863
|
+
ogFunc(casted);
|
|
9864
|
+
}
|
|
9865
|
+
}
|
|
9866
|
+
};
|
|
9867
|
+
const preVisitWrapper = (curObject) => {
|
|
9868
|
+
const casted = curObject;
|
|
9869
|
+
if (casted.type) {
|
|
9870
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9871
|
+
if (ogFunc) {
|
|
9872
|
+
return ogFunc(casted);
|
|
9873
|
+
}
|
|
9874
|
+
}
|
|
9875
|
+
return {};
|
|
9876
|
+
};
|
|
9877
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9878
|
+
}
|
|
9879
|
+
traverseNodes(currentNode, traverse) {
|
|
9880
|
+
let didShortCut = false;
|
|
9881
|
+
const recurse = (curNode) => {
|
|
9882
|
+
const traverser = traverse[curNode.type];
|
|
9883
|
+
if (traverser) {
|
|
9884
|
+
const { next, shortcut } = traverser(curNode);
|
|
9885
|
+
didShortCut = shortcut ?? false;
|
|
9886
|
+
if (!didShortCut) {
|
|
9887
|
+
for (const node of next ?? []) {
|
|
9888
|
+
if (didShortCut) {
|
|
9889
|
+
return;
|
|
9890
|
+
}
|
|
9891
|
+
recurse(node);
|
|
9892
|
+
}
|
|
9893
|
+
}
|
|
9894
|
+
}
|
|
9895
|
+
};
|
|
9896
|
+
recurse(currentNode);
|
|
9819
9897
|
}
|
|
9820
9898
|
};
|
|
9821
9899
|
var TransformerSubType = class extends TransformerType {
|
|
9822
|
-
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9827
|
-
|
|
9828
|
-
|
|
9829
|
-
|
|
9830
|
-
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
|
|
9834
|
-
|
|
9835
|
-
|
|
9836
|
-
|
|
9837
|
-
|
|
9838
|
-
|
|
9839
|
-
|
|
9840
|
-
|
|
9841
|
-
|
|
9842
|
-
|
|
9843
|
-
|
|
9844
|
-
|
|
9845
|
-
|
|
9846
|
-
|
|
9847
|
-
|
|
9848
|
-
|
|
9849
|
-
|
|
9850
|
-
|
|
9851
|
-
|
|
9852
|
-
return copy3;
|
|
9900
|
+
transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9901
|
+
const transformWrapper = (curObject) => {
|
|
9902
|
+
let ogTransform;
|
|
9903
|
+
const casted = curObject;
|
|
9904
|
+
if (casted.type && casted.subType) {
|
|
9905
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9906
|
+
if (specific) {
|
|
9907
|
+
ogTransform = specific[casted.subType]?.transform;
|
|
9908
|
+
}
|
|
9909
|
+
if (!ogTransform) {
|
|
9910
|
+
ogTransform = nodeCallBacks[casted.type]?.transform;
|
|
9911
|
+
}
|
|
9912
|
+
}
|
|
9913
|
+
return ogTransform ? ogTransform(casted) : curObject;
|
|
9914
|
+
};
|
|
9915
|
+
const preVisitWrapper = (curObject) => {
|
|
9916
|
+
let ogPreVisit;
|
|
9917
|
+
const casted = curObject;
|
|
9918
|
+
if (casted.type && casted.subType) {
|
|
9919
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9920
|
+
if (specific) {
|
|
9921
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
9922
|
+
}
|
|
9923
|
+
if (!ogPreVisit) {
|
|
9924
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9925
|
+
}
|
|
9926
|
+
}
|
|
9927
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
9928
|
+
};
|
|
9929
|
+
return this.transformObject(startObject, transformWrapper, preVisitWrapper);
|
|
9853
9930
|
}
|
|
9854
9931
|
/**
|
|
9855
9932
|
* When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
|
|
9856
9933
|
*/
|
|
9857
|
-
visitNodeSpecific(
|
|
9858
|
-
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9934
|
+
visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9935
|
+
const visitWrapper = (curObject) => {
|
|
9936
|
+
let ogTransform;
|
|
9937
|
+
const casted = curObject;
|
|
9938
|
+
if (casted.type && casted.subType) {
|
|
9939
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9940
|
+
if (specific) {
|
|
9941
|
+
ogTransform = specific[casted.subType]?.visitor;
|
|
9942
|
+
}
|
|
9943
|
+
if (!ogTransform) {
|
|
9944
|
+
ogTransform = nodeCallBacks[casted.type]?.visitor;
|
|
9945
|
+
}
|
|
9864
9946
|
}
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
callback = nodeCallBacks[curObject.type];
|
|
9868
|
-
}
|
|
9869
|
-
let shouldIterate = true;
|
|
9870
|
-
if (callback) {
|
|
9871
|
-
shouldIterate = callback(curObject) ?? true;
|
|
9872
|
-
}
|
|
9873
|
-
if (shouldIterate) {
|
|
9874
|
-
for (const value of Object.values(curObject)) {
|
|
9875
|
-
this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
|
|
9947
|
+
if (ogTransform) {
|
|
9948
|
+
ogTransform(casted);
|
|
9876
9949
|
}
|
|
9877
|
-
}
|
|
9950
|
+
};
|
|
9951
|
+
const preVisitWrapper = (curObject) => {
|
|
9952
|
+
let ogPreVisit;
|
|
9953
|
+
const casted = curObject;
|
|
9954
|
+
if (casted.type && casted.subType) {
|
|
9955
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9956
|
+
if (specific) {
|
|
9957
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
9958
|
+
}
|
|
9959
|
+
if (!ogPreVisit) {
|
|
9960
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9961
|
+
}
|
|
9962
|
+
}
|
|
9963
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
9964
|
+
};
|
|
9965
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9966
|
+
}
|
|
9967
|
+
traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
|
|
9968
|
+
let didShortCut = false;
|
|
9969
|
+
const recurse = (curNode) => {
|
|
9970
|
+
let traverser;
|
|
9971
|
+
const subObj = traverseSubNode[curNode.type];
|
|
9972
|
+
if (subObj) {
|
|
9973
|
+
traverser = subObj[curNode.subType];
|
|
9974
|
+
}
|
|
9975
|
+
if (!traverser) {
|
|
9976
|
+
traverser = traverseNode[curNode.type];
|
|
9977
|
+
}
|
|
9978
|
+
if (traverser) {
|
|
9979
|
+
const { next, shortcut } = traverser(curNode);
|
|
9980
|
+
didShortCut = shortcut ?? false;
|
|
9981
|
+
if (!didShortCut) {
|
|
9982
|
+
for (const node of next ?? []) {
|
|
9983
|
+
if (didShortCut) {
|
|
9984
|
+
return;
|
|
9985
|
+
}
|
|
9986
|
+
recurse(node);
|
|
9987
|
+
}
|
|
9988
|
+
}
|
|
9989
|
+
}
|
|
9990
|
+
};
|
|
9991
|
+
recurse(currentNode);
|
|
9878
9992
|
}
|
|
9879
9993
|
};
|
|
9880
9994
|
|
|
@@ -10080,6 +10194,44 @@ var graph = createToken2({ name: "Graph", pattern: /graph/i, label: "GRAPH" });
|
|
|
10080
10194
|
var graphAll = createToken2({ name: "GraphAll", pattern: /all/i, label: "ALL" });
|
|
10081
10195
|
var allGraphTokens = LexerBuilder.create().add(named, default_, graph, graphAll);
|
|
10082
10196
|
|
|
10197
|
+
// ../rules-sparql-1-1/lib/lexer/lexerPatterns.js
|
|
10198
|
+
var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
|
|
10199
|
+
var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
|
|
10200
|
+
var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
|
|
10201
|
+
var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
|
|
10202
|
+
var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
|
|
10203
|
+
var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
|
|
10204
|
+
var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
|
|
10205
|
+
var percentPattern = /%[\dA-Fa-f]{2}/;
|
|
10206
|
+
var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
|
|
10207
|
+
var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
|
|
10208
|
+
var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
|
|
10209
|
+
var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
|
|
10210
|
+
var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
|
|
10211
|
+
var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
|
|
10212
|
+
var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
|
|
10213
|
+
var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
|
|
10214
|
+
var integerPattern = /\d+/;
|
|
10215
|
+
var decimalPattern2 = /\d+\.\d+/;
|
|
10216
|
+
var exponentPattern = /[Ee][+-]?\d+/;
|
|
10217
|
+
var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
|
|
10218
|
+
var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
|
|
10219
|
+
var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
|
|
10220
|
+
var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
|
|
10221
|
+
var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
|
|
10222
|
+
var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
|
|
10223
|
+
var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
|
|
10224
|
+
var echarPattern = /\\[\\"'bfnrt]/u;
|
|
10225
|
+
var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
|
|
10226
|
+
var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
|
|
10227
|
+
var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
|
|
10228
|
+
var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
|
|
10229
|
+
var wsPattern = /[\u0009\u000A\u000D ]/;
|
|
10230
|
+
var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
|
|
10231
|
+
var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
|
|
10232
|
+
var commentPattern = /#[^\n]*\n/;
|
|
10233
|
+
var atLeastOneBlankPattern = new RegExp(`((${wsPattern.source}+)|(${commentPattern.source}))+`);
|
|
10234
|
+
|
|
10083
10235
|
// ../rules-sparql-1-1/lib/lexer/symbols.js
|
|
10084
10236
|
var symbols_exports = {};
|
|
10085
10237
|
__export(symbols_exports, {
|
|
@@ -10168,40 +10320,6 @@ __export(terminals_exports, {
|
|
|
10168
10320
|
var2: () => var2,
|
|
10169
10321
|
ws: () => ws
|
|
10170
10322
|
});
|
|
10171
|
-
var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
|
|
10172
|
-
var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
|
|
10173
|
-
var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
|
|
10174
|
-
var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
|
|
10175
|
-
var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
|
|
10176
|
-
var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
|
|
10177
|
-
var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
|
|
10178
|
-
var percentPattern = /%[\dA-Fa-f]{2}/;
|
|
10179
|
-
var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
|
|
10180
|
-
var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
|
|
10181
|
-
var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
|
|
10182
|
-
var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
|
|
10183
|
-
var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
|
|
10184
|
-
var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
|
|
10185
|
-
var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
|
|
10186
|
-
var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
|
|
10187
|
-
var integerPattern = /\d+/;
|
|
10188
|
-
var decimalPattern2 = /\d+\.\d+/;
|
|
10189
|
-
var exponentPattern = /[Ee][+-]?\d+/;
|
|
10190
|
-
var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
|
|
10191
|
-
var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
|
|
10192
|
-
var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
|
|
10193
|
-
var doublePositivePattern = new RegExp(`\\+${doublePattern.source}`);
|
|
10194
|
-
var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
|
|
10195
|
-
var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
|
|
10196
|
-
var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
|
|
10197
|
-
var echarPattern = /\\[\\"'bfnrt]/u;
|
|
10198
|
-
var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
|
|
10199
|
-
var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
|
|
10200
|
-
var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
|
|
10201
|
-
var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
|
|
10202
|
-
var wsPattern = /[\u0009\u000A\u000D ]/;
|
|
10203
|
-
var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
|
|
10204
|
-
var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
|
|
10205
10323
|
var iriRef = createToken2({ name: "IriRef", pattern: iriRefPattern });
|
|
10206
10324
|
var pNameLn = createToken2({ name: "PNameLn", pattern: pNameLnPattern });
|
|
10207
10325
|
var pNameNs = createToken2({ name: "PNameNs", pattern: pNameNsPattern, longer_alt: [pNameLn] });
|
|
@@ -10223,7 +10341,7 @@ var stringLiteral2 = createToken2({ name: "StringLiteral2", pattern: stringLiter
|
|
|
10223
10341
|
var stringLiteralLong1 = createToken2({ name: "StringLiteralLong1", pattern: stringLiteralLong1Pattern });
|
|
10224
10342
|
var stringLiteralLong2 = createToken2({ name: "StringLiteralLong2", pattern: stringLiteralLong2Pattern });
|
|
10225
10343
|
var ws = createToken2({ name: "Ws", pattern: wsPattern, group: Lexer.SKIPPED });
|
|
10226
|
-
var comment = createToken2({ name: "Comment", pattern:
|
|
10344
|
+
var comment = createToken2({ name: "Comment", pattern: commentPattern, group: Lexer.SKIPPED });
|
|
10227
10345
|
var nil = createToken2({ name: "Nil", pattern: nilPattern });
|
|
10228
10346
|
var anon = createToken2({ name: "Anon", pattern: anonPattern });
|
|
10229
10347
|
var allTerminals = LexerBuilder.create().add(iriRef, pNameNs, pNameLn, blankNodeLabel, var1, var2, langTag, double, decimal, integer, integerPositive, decimalPositive, doublePositive, integerNegative, decimalNegative, doubleNegative, stringLiteralLong1, stringLiteralLong2, stringLiteral1, stringLiteral2, ws, comment, nil, anon);
|
|
@@ -10260,9 +10378,23 @@ var to = createToken2({ name: "To", pattern: /to/i, label: "TO" });
|
|
|
10260
10378
|
var move = createToken2({ name: "Move", pattern: /move/i, label: "MOVE" });
|
|
10261
10379
|
var copy = createToken2({ name: "Copy", pattern: /copy/i, label: "COPY" });
|
|
10262
10380
|
var modifyWith = createToken2({ name: "ModifyWith", pattern: /with/i, label: "WITH" });
|
|
10381
|
+
var deleteDataClause = createToken2({
|
|
10382
|
+
name: "DeleteDataClause",
|
|
10383
|
+
pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})data`, "i"),
|
|
10384
|
+
label: "DELETE DATA"
|
|
10385
|
+
});
|
|
10386
|
+
var deleteWhereClause = createToken2({
|
|
10387
|
+
name: "DeleteWhereClause",
|
|
10388
|
+
pattern: new RegExp(`delete(${atLeastOneBlankPattern.source})where`, "i"),
|
|
10389
|
+
label: "DELETE WHERE"
|
|
10390
|
+
});
|
|
10263
10391
|
var deleteClause = createToken2({ name: "DeleteClause", pattern: /delete/i, label: "DELETE" });
|
|
10264
|
-
var
|
|
10265
|
-
|
|
10392
|
+
var insertDataClause = createToken2({
|
|
10393
|
+
name: "InsertDataClause",
|
|
10394
|
+
pattern: new RegExp(`insert(${atLeastOneBlankPattern.source})data`, "i"),
|
|
10395
|
+
label: "INSERT DATA"
|
|
10396
|
+
});
|
|
10397
|
+
var insertClause = createToken2({ name: "InsertClause", pattern: /insert/i, label: "insert" });
|
|
10266
10398
|
var usingClause = createToken2({ name: "UsingClause", pattern: /using/i, label: "USING" });
|
|
10267
10399
|
var optional = createToken2({ name: "Optional", pattern: /optional/i, label: "OPTIONAL" });
|
|
10268
10400
|
var service = createToken2({ name: "Service", pattern: /service/i, label: "SERVICE" });
|
|
@@ -10277,8 +10409,8 @@ var false_ = createToken2({ name: "False", pattern: /false/i, label: "false" });
|
|
|
10277
10409
|
var in_ = createToken2({ name: "In", pattern: /in/i, label: "IN" });
|
|
10278
10410
|
var notIn = createToken2({ name: "NotIn", pattern: /not[\u0020\u0009\u000D\u000A]+in/i, label: "NOT IN" });
|
|
10279
10411
|
var separator = createToken2({ name: "Separator", pattern: /separator/i, label: "SEPARATOR" });
|
|
10280
|
-
var allBaseTokens = LexerBuilder.create().add(baseDecl, prefixDecl, select, distinct, reduced, construct, describe, ask, from, where, having, groupByGroup, by, order, orderAsc, orderDesc, limit, offset, values2, load, silent, loadInto, clear, drop2, create, add, to, move, copy, modifyWith, deleteClause,
|
|
10281
|
-
var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).
|
|
10412
|
+
var allBaseTokens = LexerBuilder.create().add(baseDecl, prefixDecl, select, distinct, reduced, construct, describe, ask, from, where, having, groupByGroup, by, order, orderAsc, orderDesc, limit, offset, values2, load, silent, loadInto, clear, drop2, create, add, to, move, copy, modifyWith, deleteWhereClause, deleteDataClause, deleteClause, insertDataClause, insertClause, usingClause, optional, service, bind, undef, minus, union, filter2, as, a, true_, false_, in_, notIn, separator);
|
|
10413
|
+
var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
|
|
10282
10414
|
|
|
10283
10415
|
// ../rules-sparql-1-1/lib/factoryMixins/ContextFactory.js
|
|
10284
10416
|
var nodeType = "contextDef";
|
|
@@ -11023,12 +11155,12 @@ var CommonIRIs;
|
|
|
11023
11155
|
CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
|
|
11024
11156
|
CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
|
|
11025
11157
|
})(CommonIRIs || (CommonIRIs = {}));
|
|
11026
|
-
var
|
|
11158
|
+
var AstTransformer = class extends TransformerSubType {
|
|
11027
11159
|
};
|
|
11028
11160
|
|
|
11029
11161
|
// ../rules-sparql-1-1/lib/validation/validators.js
|
|
11030
11162
|
var F = new AstFactory();
|
|
11031
|
-
var transformer = new
|
|
11163
|
+
var transformer = new AstTransformer();
|
|
11032
11164
|
function getAggregatesOfExpression(expression2) {
|
|
11033
11165
|
if (F.isExpressionAggregate(expression2)) {
|
|
11034
11166
|
return [expression2];
|
|
@@ -11107,77 +11239,69 @@ function queryIsGood(query2) {
|
|
|
11107
11239
|
}
|
|
11108
11240
|
}
|
|
11109
11241
|
}
|
|
11242
|
+
function notUndefined(some2) {
|
|
11243
|
+
return some2 !== void 0;
|
|
11244
|
+
}
|
|
11110
11245
|
function findPatternBoundedVars(iter, boundedVars) {
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
|
|
11115
|
-
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
|
|
11122
|
-
|
|
11123
|
-
|
|
11124
|
-
|
|
11125
|
-
|
|
11126
|
-
|
|
11127
|
-
|
|
11128
|
-
|
|
11129
|
-
|
|
11130
|
-
|
|
11246
|
+
transformer.traverseSubNodes(iter, {
|
|
11247
|
+
query: (op) => ({ next: [
|
|
11248
|
+
op.solutionModifiers.group
|
|
11249
|
+
].filter(notUndefined) }),
|
|
11250
|
+
triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
|
|
11251
|
+
path: (op) => ({ next: op.items }),
|
|
11252
|
+
tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
|
|
11253
|
+
}, {
|
|
11254
|
+
query: {
|
|
11255
|
+
select: (op) => ({ next: [
|
|
11256
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11257
|
+
op.solutionModifiers.group,
|
|
11258
|
+
op.values
|
|
11259
|
+
].filter(notUndefined) }),
|
|
11260
|
+
describe: (op) => ({ next: [
|
|
11261
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11262
|
+
op.solutionModifiers.group,
|
|
11263
|
+
op.values
|
|
11264
|
+
].filter(notUndefined) })
|
|
11265
|
+
},
|
|
11266
|
+
solutionModifier: {
|
|
11267
|
+
group: (op) => ({
|
|
11268
|
+
next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
|
|
11269
|
+
}),
|
|
11270
|
+
having: (op) => ({ next: op.having }),
|
|
11271
|
+
order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
|
|
11272
|
+
},
|
|
11273
|
+
pattern: {
|
|
11274
|
+
values: (op) => {
|
|
11275
|
+
for (const v of Object.keys(op.values.at(0) ?? {})) {
|
|
11131
11276
|
boundedVars.add(v);
|
|
11132
11277
|
}
|
|
11278
|
+
return {};
|
|
11279
|
+
},
|
|
11280
|
+
bgp: (op) => ({ next: op.triples }),
|
|
11281
|
+
group: (op) => ({ next: op.patterns }),
|
|
11282
|
+
union: (op) => ({ next: op.patterns }),
|
|
11283
|
+
optional: (op) => ({ next: op.patterns }),
|
|
11284
|
+
service: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11285
|
+
bind: (op) => ({ next: [op.variable] }),
|
|
11286
|
+
graph: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11287
|
+
minus: (op) => ({ next: op.patterns.slice(0, 1) })
|
|
11288
|
+
},
|
|
11289
|
+
term: {
|
|
11290
|
+
variable: (op) => {
|
|
11291
|
+
boundedVars.add(op.value);
|
|
11292
|
+
return {};
|
|
11133
11293
|
}
|
|
11134
11294
|
}
|
|
11135
|
-
}
|
|
11136
|
-
if (F.isTermVariable(iter)) {
|
|
11137
|
-
boundedVars.add(iter.value);
|
|
11138
|
-
}
|
|
11139
|
-
} else if (F.isTriple(iter)) {
|
|
11140
|
-
findPatternBoundedVars(iter.subject, boundedVars);
|
|
11141
|
-
findPatternBoundedVars(iter.predicate, boundedVars);
|
|
11142
|
-
findPatternBoundedVars(iter.object, boundedVars);
|
|
11143
|
-
} else if (F.isPath(iter)) {
|
|
11144
|
-
if (!F.isTerm(iter)) {
|
|
11145
|
-
for (const item of iter.items) {
|
|
11146
|
-
findPatternBoundedVars(item, boundedVars);
|
|
11147
|
-
}
|
|
11148
|
-
}
|
|
11149
|
-
} else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
|
|
11150
|
-
for (const triple of iter.triples) {
|
|
11151
|
-
findPatternBoundedVars(triple, boundedVars);
|
|
11152
|
-
}
|
|
11153
|
-
} else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
|
|
11154
|
-
for (const pattern of iter.patterns) {
|
|
11155
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11156
|
-
}
|
|
11157
|
-
if (F.isPatternService(iter)) {
|
|
11158
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11159
|
-
}
|
|
11160
|
-
} else if (F.isPatternBind(iter)) {
|
|
11161
|
-
findPatternBoundedVars(iter.variable, boundedVars);
|
|
11162
|
-
} else if (F.isPatternValues(iter)) {
|
|
11163
|
-
for (const variable of Object.keys(iter.values.at(0) ?? {})) {
|
|
11164
|
-
boundedVars.add(variable);
|
|
11165
|
-
}
|
|
11166
|
-
} else if (F.isPatternGraph(iter)) {
|
|
11167
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11168
|
-
for (const pattern of iter.patterns) {
|
|
11169
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11170
|
-
}
|
|
11171
|
-
}
|
|
11295
|
+
});
|
|
11172
11296
|
}
|
|
11173
11297
|
function checkNote13(patterns) {
|
|
11174
11298
|
for (const [index, pattern] of patterns.entries()) {
|
|
11175
11299
|
if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
|
|
11176
11300
|
const bgp = patterns[index - 1];
|
|
11177
11301
|
const variables = [];
|
|
11178
|
-
transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
|
|
11302
|
+
transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
|
|
11179
11303
|
variables.push(var_2);
|
|
11180
|
-
} } });
|
|
11304
|
+
} } } });
|
|
11181
11305
|
if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
|
|
11182
11306
|
throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
|
|
11183
11307
|
}
|
|
@@ -11203,12 +11327,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
|
|
|
11203
11327
|
const operation = update2.operation;
|
|
11204
11328
|
if (operation.subType === "insertdata") {
|
|
11205
11329
|
const blankNodesHere = /* @__PURE__ */ new Set();
|
|
11206
|
-
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
|
|
11330
|
+
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
|
|
11207
11331
|
blankNodesHere.add(blankNode2.label);
|
|
11208
11332
|
if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
|
|
11209
11333
|
throw new Error("Detected reuse blank node across different INSERT DATA clauses");
|
|
11210
11334
|
}
|
|
11211
|
-
} } });
|
|
11335
|
+
} } } });
|
|
11212
11336
|
for (const blankNode2 of blankNodesHere) {
|
|
11213
11337
|
blankLabelsUsedInInsertData.add(blankNode2);
|
|
11214
11338
|
}
|
|
@@ -13895,12 +14019,11 @@ var quadData = {
|
|
|
13895
14019
|
return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
|
|
13896
14020
|
}
|
|
13897
14021
|
};
|
|
13898
|
-
function insertDeleteDelWhere(name, subType, cons1,
|
|
14022
|
+
function insertDeleteDelWhere(name, subType, cons1, dataRule) {
|
|
13899
14023
|
return {
|
|
13900
14024
|
name,
|
|
13901
14025
|
impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
|
|
13902
14026
|
const insDelToken = CONSUME(cons1);
|
|
13903
|
-
CONSUME(cons2);
|
|
13904
14027
|
let couldCreateBlankNodes = true;
|
|
13905
14028
|
if (name !== "insertData") {
|
|
13906
14029
|
couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
@@ -13932,9 +14055,9 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
13932
14055
|
}
|
|
13933
14056
|
};
|
|
13934
14057
|
}
|
|
13935
|
-
var insertData = insertDeleteDelWhere("insertData", "insertdata",
|
|
13936
|
-
var deleteData = insertDeleteDelWhere("deleteData", "deletedata",
|
|
13937
|
-
var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere",
|
|
14058
|
+
var insertData = insertDeleteDelWhere("insertData", "insertdata", insertDataClause, quadData);
|
|
14059
|
+
var deleteData = insertDeleteDelWhere("deleteData", "deletedata", deleteDataClause, quadData);
|
|
14060
|
+
var deleteWhere = insertDeleteDelWhere("deleteWhere", "deletewhere", deleteWhereClause, quadPattern);
|
|
13938
14061
|
var modify = {
|
|
13939
14062
|
name: "modify",
|
|
13940
14063
|
impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/rules-sparql-1-1-adjust",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.18",
|
|
5
5
|
"description": "Traqula Lexer and Grammar Rules for sparql 1.1-ADJUST",
|
|
6
6
|
"lsd:module": true,
|
|
7
7
|
"license": "MIT",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"build:transpile": " node \"../../node_modules/esbuild/bin/esbuild\" --format=cjs --bundle --log-level=error --outfile=lib/index.cjs lib/index.ts"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@traqula/core": "^0.0.
|
|
46
|
-
"@traqula/rules-sparql-1-1": "^0.0.
|
|
45
|
+
"@traqula/core": "^0.0.18",
|
|
46
|
+
"@traqula/rules-sparql-1-1": "^0.0.18"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "1bb6a7d67631010ee01b325e33ff76f2f7530e02"
|
|
49
49
|
}
|