@traqula/parser-sparql-1-1 0.0.18 → 0.0.20
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/Parser.d.ts +119 -118
- package/lib/Parser.js +2 -1
- package/lib/Parser.js.map +1 -1
- package/lib/expressionParser.d.ts +9 -9
- package/lib/index.cjs +409 -193
- package/lib/objectListParser.d.ts +14 -14
- package/lib/queryUnitParser.d.ts +88 -88
- package/lib/subSelectParser.d.ts +66 -66
- package/lib/triplesBlockParser.d.ts +23 -23
- package/lib/triplesTemplateParserBuilder.d.ts +17 -17
- package/lib/updateNoModifyParser.d.ts +39 -39
- package/lib/updateUnitParser.d.ts +103 -103
- package/package.json +5 -5
package/lib/index.cjs
CHANGED
|
@@ -50,7 +50,7 @@ var AstCoreFactory = class {
|
|
|
50
50
|
if (filtered.length === 0) {
|
|
51
51
|
return this.gen();
|
|
52
52
|
}
|
|
53
|
-
const first2 = filtered
|
|
53
|
+
const first2 = filtered.at(0);
|
|
54
54
|
const last2 = filtered.at(-1);
|
|
55
55
|
return {
|
|
56
56
|
sourceLocationType: "source",
|
|
@@ -9611,10 +9611,10 @@ var ParserBuilder = class _ParserBuilder {
|
|
|
9611
9611
|
* If a builder is provided, a new copy will be created.
|
|
9612
9612
|
*/
|
|
9613
9613
|
static create(start) {
|
|
9614
|
-
if (start
|
|
9615
|
-
return new _ParserBuilder(
|
|
9614
|
+
if (Array.isArray(start)) {
|
|
9615
|
+
return new _ParserBuilder(listToRuleDefMap(start));
|
|
9616
9616
|
}
|
|
9617
|
-
return new _ParserBuilder(
|
|
9617
|
+
return new _ParserBuilder({ ...start.rules });
|
|
9618
9618
|
}
|
|
9619
9619
|
rules;
|
|
9620
9620
|
constructor(startRules) {
|
|
@@ -9663,6 +9663,9 @@ var ParserBuilder = class _ParserBuilder {
|
|
|
9663
9663
|
delete this.rules[ruleName];
|
|
9664
9664
|
return this;
|
|
9665
9665
|
}
|
|
9666
|
+
getRule(ruleName) {
|
|
9667
|
+
return this.rules[ruleName];
|
|
9668
|
+
}
|
|
9666
9669
|
/**
|
|
9667
9670
|
* Merge this grammar builder with another.
|
|
9668
9671
|
* It is best to merge the bigger grammar with the smaller one.
|
|
@@ -9749,21 +9752,31 @@ ${firstError.message}`);
|
|
|
9749
9752
|
}
|
|
9750
9753
|
};
|
|
9751
9754
|
|
|
9752
|
-
// ../../packages/core/lib/
|
|
9753
|
-
var
|
|
9754
|
-
|
|
9755
|
-
|
|
9756
|
-
|
|
9757
|
-
|
|
9755
|
+
// ../../packages/core/lib/TransformerObject.js
|
|
9756
|
+
var TransformerObject = class {
|
|
9757
|
+
defaultContext;
|
|
9758
|
+
maxStackSize = 1e6;
|
|
9759
|
+
/**
|
|
9760
|
+
* Creates stateless transformer.
|
|
9761
|
+
* @param defaultContext
|
|
9762
|
+
*/
|
|
9763
|
+
constructor(defaultContext = {}) {
|
|
9764
|
+
this.defaultContext = defaultContext;
|
|
9758
9765
|
}
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9766
|
+
/**
|
|
9767
|
+
* Function to shallow clone any type.
|
|
9768
|
+
* @param obj
|
|
9769
|
+
* @protected
|
|
9770
|
+
*/
|
|
9771
|
+
clone(obj) {
|
|
9772
|
+
if (obj === null || typeof obj !== "object") {
|
|
9773
|
+
return obj;
|
|
9765
9774
|
}
|
|
9766
|
-
|
|
9775
|
+
const proto = Object.getPrototypeOf(obj);
|
|
9776
|
+
if (proto === Object.prototype || proto === null) {
|
|
9777
|
+
return { ...obj };
|
|
9778
|
+
}
|
|
9779
|
+
return Object.assign(Object.create(proto), obj);
|
|
9767
9780
|
}
|
|
9768
9781
|
/**
|
|
9769
9782
|
* Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
|
|
@@ -9775,90 +9788,228 @@ var TransformerType = class {
|
|
|
9775
9788
|
* - Default false
|
|
9776
9789
|
*/
|
|
9777
9790
|
transformObject(startObject, mapper, preVisitor = () => ({})) {
|
|
9791
|
+
const defaults2 = this.defaultContext;
|
|
9792
|
+
const defaultCopyFlag = defaults2.copy ?? true;
|
|
9793
|
+
const defaultContinues = defaults2.continue ?? true;
|
|
9794
|
+
const defaultIgnoreKeys = defaults2.ignoreKeys;
|
|
9795
|
+
const defaultShallowKeys = defaults2.shallowKeys;
|
|
9796
|
+
const defaultDidShortCut = defaults2.shortcut ?? false;
|
|
9778
9797
|
let didShortCut = false;
|
|
9779
|
-
const
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9798
|
+
const resultWrap = { res: startObject };
|
|
9799
|
+
const stack = [startObject];
|
|
9800
|
+
const stackParent = [resultWrap];
|
|
9801
|
+
const stackParentKey = ["res"];
|
|
9802
|
+
const handleMapperOnLen = [];
|
|
9803
|
+
const mapperCopyStack = [];
|
|
9804
|
+
const mapperOrigStack = [];
|
|
9805
|
+
const mapperParent = [];
|
|
9806
|
+
const mapperParentKey = [];
|
|
9807
|
+
function handleMapper() {
|
|
9808
|
+
while (stack.length === handleMapperOnLen.at(-1)) {
|
|
9809
|
+
handleMapperOnLen.pop();
|
|
9810
|
+
const copyToMap = mapperCopyStack.pop();
|
|
9811
|
+
const origToMap = mapperOrigStack.pop();
|
|
9812
|
+
const parent = mapperParent.pop();
|
|
9813
|
+
const parentKey = mapperParentKey.pop();
|
|
9814
|
+
parent[parentKey] = mapper(copyToMap, origToMap);
|
|
9815
|
+
}
|
|
9816
|
+
}
|
|
9817
|
+
while (stack.length > 0 && stack.length < this.maxStackSize) {
|
|
9818
|
+
const curObject = stack.pop();
|
|
9819
|
+
const curParent = stackParent.pop();
|
|
9820
|
+
const curKey = stackParentKey.pop();
|
|
9821
|
+
if (!didShortCut) {
|
|
9822
|
+
if (Array.isArray(curObject)) {
|
|
9823
|
+
const newArr = [...curObject];
|
|
9824
|
+
handleMapperOnLen.push(stack.length);
|
|
9825
|
+
mapperCopyStack.push(newArr);
|
|
9826
|
+
mapperOrigStack.push(curObject);
|
|
9827
|
+
mapperParent.push(curParent);
|
|
9828
|
+
mapperParentKey.push(curKey);
|
|
9829
|
+
for (let index = curObject.length - 1; index >= 0; index--) {
|
|
9830
|
+
const val = curObject[index];
|
|
9831
|
+
if (val !== null && typeof val === "object") {
|
|
9832
|
+
stack.push(val);
|
|
9833
|
+
stackParent.push(newArr);
|
|
9834
|
+
stackParentKey.push(index.toString());
|
|
9835
|
+
}
|
|
9836
|
+
}
|
|
9837
|
+
handleMapper();
|
|
9838
|
+
continue;
|
|
9839
|
+
}
|
|
9840
|
+
const context = preVisitor(curObject);
|
|
9841
|
+
const copyFlag = context.copy ?? defaultCopyFlag;
|
|
9842
|
+
const continues = context.continue ?? defaultContinues;
|
|
9843
|
+
const ignoreKeys = context.ignoreKeys ?? defaultIgnoreKeys;
|
|
9844
|
+
const shallowKeys = context.shallowKeys ?? defaultShallowKeys;
|
|
9845
|
+
didShortCut = context.shortcut ?? defaultDidShortCut;
|
|
9846
|
+
const copy3 = copyFlag ? this.clone(curObject) : curObject;
|
|
9847
|
+
handleMapperOnLen.push(stack.length);
|
|
9848
|
+
mapperCopyStack.push(copy3);
|
|
9849
|
+
mapperOrigStack.push(curObject);
|
|
9850
|
+
mapperParent.push(curParent);
|
|
9851
|
+
mapperParentKey.push(curKey);
|
|
9852
|
+
if (continues && !didShortCut) {
|
|
9853
|
+
for (const key in copy3) {
|
|
9854
|
+
if (!Object.hasOwn(copy3, key)) {
|
|
9855
|
+
continue;
|
|
9856
|
+
}
|
|
9857
|
+
const val = copy3[key];
|
|
9858
|
+
const onlyShallow = shallowKeys && shallowKeys?.has(key);
|
|
9859
|
+
if (onlyShallow) {
|
|
9860
|
+
copy3[key] = this.clone(val);
|
|
9861
|
+
}
|
|
9862
|
+
if (ignoreKeys && ignoreKeys.has(key)) {
|
|
9863
|
+
continue;
|
|
9864
|
+
}
|
|
9865
|
+
if (!onlyShallow && val !== null && typeof val === "object") {
|
|
9866
|
+
stack.push(val);
|
|
9867
|
+
stackParentKey.push(key);
|
|
9868
|
+
stackParent.push(copy3);
|
|
9869
|
+
}
|
|
9788
9870
|
}
|
|
9789
|
-
copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9790
9871
|
}
|
|
9791
9872
|
}
|
|
9792
|
-
|
|
9793
|
-
}
|
|
9794
|
-
|
|
9873
|
+
handleMapper();
|
|
9874
|
+
}
|
|
9875
|
+
if (stack.length >= this.maxStackSize) {
|
|
9876
|
+
throw new Error("Transform object stack overflowed");
|
|
9877
|
+
}
|
|
9878
|
+
handleMapper();
|
|
9879
|
+
return resultWrap.res;
|
|
9795
9880
|
}
|
|
9796
9881
|
/**
|
|
9797
9882
|
* Visitor that visits all objects. Visits deeper objects first.
|
|
9798
9883
|
*/
|
|
9799
9884
|
visitObject(startObject, visitor, preVisitor = () => ({})) {
|
|
9885
|
+
const defaults2 = this.defaultContext;
|
|
9886
|
+
const defaultContinues = defaults2.continue ?? true;
|
|
9887
|
+
const defaultIgnoreKeys = defaults2.ignoreKeys;
|
|
9888
|
+
const defaultShortcut = defaults2.shortcut ?? false;
|
|
9800
9889
|
let didShortCut = false;
|
|
9801
|
-
const
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9890
|
+
const stack = [startObject];
|
|
9891
|
+
const handleVisitorOnLen = [];
|
|
9892
|
+
const visitorStack = [];
|
|
9893
|
+
function handleVisitor() {
|
|
9894
|
+
while (stack.length === handleVisitorOnLen.at(-1)) {
|
|
9895
|
+
handleVisitorOnLen.pop();
|
|
9896
|
+
const toVisit = visitorStack.pop();
|
|
9897
|
+
visitor(toVisit);
|
|
9898
|
+
}
|
|
9899
|
+
}
|
|
9900
|
+
while (stack.length > 0 && stack.length < this.maxStackSize) {
|
|
9901
|
+
const curObject = stack.pop();
|
|
9902
|
+
if (!didShortCut) {
|
|
9903
|
+
if (Array.isArray(curObject)) {
|
|
9904
|
+
for (let i = curObject.length - 1; i >= 0; i--) {
|
|
9905
|
+
stack.push(curObject[i]);
|
|
9906
|
+
}
|
|
9907
|
+
handleVisitor();
|
|
9908
|
+
continue;
|
|
9909
|
+
}
|
|
9910
|
+
const context = preVisitor(curObject);
|
|
9911
|
+
didShortCut = context.shortcut ?? defaultShortcut;
|
|
9912
|
+
const continues = context.continue ?? defaultContinues;
|
|
9913
|
+
const ignoreKeys = context.ignoreKeys ?? defaultIgnoreKeys;
|
|
9914
|
+
handleVisitorOnLen.push(stack.length);
|
|
9915
|
+
visitorStack.push(curObject);
|
|
9916
|
+
if (continues && !didShortCut) {
|
|
9917
|
+
for (const key in curObject) {
|
|
9918
|
+
if (!Object.hasOwn(curObject, key)) {
|
|
9919
|
+
continue;
|
|
9920
|
+
}
|
|
9921
|
+
if (ignoreKeys && ignoreKeys.has(key)) {
|
|
9922
|
+
continue;
|
|
9923
|
+
}
|
|
9924
|
+
const val = curObject[key];
|
|
9925
|
+
if (val && typeof val === "object") {
|
|
9926
|
+
stack.push(val);
|
|
9927
|
+
}
|
|
9809
9928
|
}
|
|
9810
|
-
this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9811
9929
|
}
|
|
9812
9930
|
}
|
|
9813
|
-
|
|
9814
|
-
}
|
|
9815
|
-
|
|
9931
|
+
handleVisitor();
|
|
9932
|
+
}
|
|
9933
|
+
if (stack.length >= this.maxStackSize) {
|
|
9934
|
+
throw new Error("Transform object stack overflowed");
|
|
9935
|
+
}
|
|
9936
|
+
handleVisitor();
|
|
9816
9937
|
}
|
|
9938
|
+
};
|
|
9939
|
+
|
|
9940
|
+
// ../../packages/core/lib/TransformerTyped.js
|
|
9941
|
+
var TransformerTyped = class extends TransformerObject {
|
|
9942
|
+
defaultNodePreVisitor;
|
|
9943
|
+
constructor(defaultContext = {}, defaultNodePreVisitor = {}) {
|
|
9944
|
+
super(defaultContext);
|
|
9945
|
+
this.defaultNodePreVisitor = defaultNodePreVisitor;
|
|
9946
|
+
}
|
|
9947
|
+
/**
|
|
9948
|
+
* Transform a single node.
|
|
9949
|
+
* The transformation calls the preVisitor from starting from the startObject.
|
|
9950
|
+
* The preVisitor can dictate whether transformation should be stopped.
|
|
9951
|
+
* Note that stopping the transformation also prevets further copying.
|
|
9952
|
+
* The transformer itself transforms object starting with the deepest one that can be visited.
|
|
9953
|
+
* The transformer callback is performed on a copy of the original.
|
|
9954
|
+
* @param startObject
|
|
9955
|
+
* @param nodeCallBacks
|
|
9956
|
+
*/
|
|
9817
9957
|
transformNode(startObject, nodeCallBacks) {
|
|
9818
|
-
const transformWrapper = (
|
|
9819
|
-
|
|
9958
|
+
const transformWrapper = (copy3, orig) => {
|
|
9959
|
+
let ogTransform;
|
|
9960
|
+
const casted = copy3;
|
|
9820
9961
|
if (casted.type) {
|
|
9821
|
-
|
|
9822
|
-
if (ogFunc) {
|
|
9823
|
-
return ogFunc(casted);
|
|
9824
|
-
}
|
|
9962
|
+
ogTransform = nodeCallBacks[casted.type]?.transform;
|
|
9825
9963
|
}
|
|
9826
|
-
return
|
|
9964
|
+
return ogTransform ? ogTransform(casted, orig) : copy3;
|
|
9827
9965
|
};
|
|
9828
|
-
const
|
|
9966
|
+
const nodeDefaults = this.defaultNodePreVisitor;
|
|
9967
|
+
const preVisitWrapper = (curObject) => {
|
|
9968
|
+
let ogPreVisit;
|
|
9969
|
+
let nodeContext = {};
|
|
9829
9970
|
const casted = curObject;
|
|
9830
9971
|
if (casted.type) {
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
return ogFunc(casted);
|
|
9834
|
-
}
|
|
9972
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9973
|
+
nodeContext = nodeDefaults[casted.type] ?? nodeContext;
|
|
9835
9974
|
}
|
|
9836
|
-
return {};
|
|
9975
|
+
return ogPreVisit ? { ...nodeContext, ...ogPreVisit(casted) } : nodeContext;
|
|
9837
9976
|
};
|
|
9838
|
-
return this.transformObject(startObject, transformWrapper,
|
|
9977
|
+
return this.transformObject(startObject, transformWrapper, preVisitWrapper);
|
|
9839
9978
|
}
|
|
9979
|
+
/**
|
|
9980
|
+
* Similar to {@link this.transformNode}, but without copying the startObject.
|
|
9981
|
+
* The pre-visitor visits starting from the root, going deeper, while the actual visitor goes in reverse.
|
|
9982
|
+
* @param startObject
|
|
9983
|
+
* @param nodeCallBacks
|
|
9984
|
+
*/
|
|
9840
9985
|
visitNode(startObject, nodeCallBacks) {
|
|
9841
|
-
const
|
|
9986
|
+
const visitorWrapper = (curObject) => {
|
|
9842
9987
|
const casted = curObject;
|
|
9843
9988
|
if (casted.type) {
|
|
9844
|
-
const
|
|
9845
|
-
if (
|
|
9846
|
-
|
|
9989
|
+
const ogTransform = nodeCallBacks[casted.type]?.visitor;
|
|
9990
|
+
if (ogTransform) {
|
|
9991
|
+
ogTransform(casted);
|
|
9847
9992
|
}
|
|
9848
9993
|
}
|
|
9849
9994
|
};
|
|
9995
|
+
const nodeDefaults = this.defaultNodePreVisitor;
|
|
9850
9996
|
const preVisitWrapper = (curObject) => {
|
|
9997
|
+
let ogPreVisit;
|
|
9998
|
+
let nodeContext = {};
|
|
9851
9999
|
const casted = curObject;
|
|
9852
10000
|
if (casted.type) {
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
return ogFunc(casted);
|
|
9856
|
-
}
|
|
10001
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
10002
|
+
nodeContext = nodeDefaults[casted.type] ?? nodeContext;
|
|
9857
10003
|
}
|
|
9858
|
-
return {};
|
|
10004
|
+
return ogPreVisit ? { ...nodeContext, ...ogPreVisit(casted) } : nodeContext;
|
|
9859
10005
|
};
|
|
9860
|
-
this.visitObject(startObject,
|
|
10006
|
+
return this.visitObject(startObject, visitorWrapper, preVisitWrapper);
|
|
9861
10007
|
}
|
|
10008
|
+
/**
|
|
10009
|
+
* Traverses only selected nodes as returned by the function.
|
|
10010
|
+
* @param currentNode
|
|
10011
|
+
* @param traverse
|
|
10012
|
+
*/
|
|
9862
10013
|
traverseNodes(currentNode, traverse) {
|
|
9863
10014
|
let didShortCut = false;
|
|
9864
10015
|
const recurse = (curNode) => {
|
|
@@ -9879,11 +10030,24 @@ var TransformerType = class {
|
|
|
9879
10030
|
recurse(currentNode);
|
|
9880
10031
|
}
|
|
9881
10032
|
};
|
|
9882
|
-
|
|
10033
|
+
|
|
10034
|
+
// ../../packages/core/lib/TransformerSubTyped.js
|
|
10035
|
+
var TransformerSubTyped = class extends TransformerTyped {
|
|
10036
|
+
constructor(defaultContext = {}, defaultNodePreVisitor = {}) {
|
|
10037
|
+
super(defaultContext, defaultNodePreVisitor);
|
|
10038
|
+
}
|
|
10039
|
+
/**
|
|
10040
|
+
* Shares the functionality and first two arguments with {@link this.transformNode}.
|
|
10041
|
+
* The third argument allows you to also transform based on the subType of objects.
|
|
10042
|
+
* Note that when a callback for the subtype is provided, the callback for the general type is **NOT** executed.
|
|
10043
|
+
* @param startObject
|
|
10044
|
+
* @param nodeCallBacks
|
|
10045
|
+
* @param nodeSpecificCallBacks
|
|
10046
|
+
*/
|
|
9883
10047
|
transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9884
|
-
const transformWrapper = (
|
|
10048
|
+
const transformWrapper = (copy3, orig) => {
|
|
9885
10049
|
let ogTransform;
|
|
9886
|
-
const casted =
|
|
10050
|
+
const casted = copy3;
|
|
9887
10051
|
if (casted.type && casted.subType) {
|
|
9888
10052
|
const specific = nodeSpecificCallBacks[casted.type];
|
|
9889
10053
|
if (specific) {
|
|
@@ -9893,7 +10057,7 @@ var TransformerSubType = class extends TransformerType {
|
|
|
9893
10057
|
ogTransform = nodeCallBacks[casted.type]?.transform;
|
|
9894
10058
|
}
|
|
9895
10059
|
}
|
|
9896
|
-
return ogTransform ? ogTransform(casted) :
|
|
10060
|
+
return ogTransform ? ogTransform(casted, orig) : copy3;
|
|
9897
10061
|
};
|
|
9898
10062
|
const preVisitWrapper = (curObject) => {
|
|
9899
10063
|
let ogPreVisit;
|
|
@@ -9907,12 +10071,13 @@ var TransformerSubType = class extends TransformerType {
|
|
|
9907
10071
|
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9908
10072
|
}
|
|
9909
10073
|
}
|
|
9910
|
-
return ogPreVisit ? ogPreVisit(casted) :
|
|
10074
|
+
return ogPreVisit ? ogPreVisit(casted) : {};
|
|
9911
10075
|
};
|
|
9912
10076
|
return this.transformObject(startObject, transformWrapper, preVisitWrapper);
|
|
9913
10077
|
}
|
|
9914
10078
|
/**
|
|
9915
|
-
*
|
|
10079
|
+
* Similar to {@link this.visitNode} but also allows you to match based on the subtype of objects.
|
|
10080
|
+
* When both nodeCallBack and NodeSpecific callBack are matched, will only visit nodeSpecifCallback
|
|
9916
10081
|
*/
|
|
9917
10082
|
visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9918
10083
|
const visitWrapper = (curObject) => {
|
|
@@ -9943,10 +10108,16 @@ var TransformerSubType = class extends TransformerType {
|
|
|
9943
10108
|
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9944
10109
|
}
|
|
9945
10110
|
}
|
|
9946
|
-
return ogPreVisit ? ogPreVisit(casted) :
|
|
10111
|
+
return ogPreVisit ? ogPreVisit(casted) : {};
|
|
9947
10112
|
};
|
|
9948
10113
|
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9949
10114
|
}
|
|
10115
|
+
/**
|
|
10116
|
+
* Similar to {@link this.traverseNodes} but also allows you to match based on the subtype of objects.
|
|
10117
|
+
* @param currentNode
|
|
10118
|
+
* @param traverseNode
|
|
10119
|
+
* @param traverseSubNode
|
|
10120
|
+
*/
|
|
9950
10121
|
traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
|
|
9951
10122
|
let didShortCut = false;
|
|
9952
10123
|
const recurse = (curNode) => {
|
|
@@ -11019,8 +11190,8 @@ function PatternFactoryMixin(Base) {
|
|
|
11019
11190
|
isPatternOptional(obj) {
|
|
11020
11191
|
return this.isOfSubType(obj, nodeType5, "optional");
|
|
11021
11192
|
}
|
|
11022
|
-
patternValues(values3, loc) {
|
|
11023
|
-
return { type: nodeType5, subType: "values", values: values3, loc };
|
|
11193
|
+
patternValues(variables, values3, loc) {
|
|
11194
|
+
return { type: nodeType5, subType: "values", variables, values: values3, loc };
|
|
11024
11195
|
}
|
|
11025
11196
|
isPatternValues(obj) {
|
|
11026
11197
|
return this.isOfSubType(obj, nodeType5, "values");
|
|
@@ -11195,7 +11366,7 @@ function TermFactoryMixin(Base) {
|
|
|
11195
11366
|
isTerm(x) {
|
|
11196
11367
|
return this.isOfType(x, "term");
|
|
11197
11368
|
}
|
|
11198
|
-
|
|
11369
|
+
termBlank(label, loc) {
|
|
11199
11370
|
const base = {
|
|
11200
11371
|
type: "term",
|
|
11201
11372
|
subType: "blankNode",
|
|
@@ -11209,7 +11380,7 @@ function TermFactoryMixin(Base) {
|
|
|
11209
11380
|
isTermBlank(obj) {
|
|
11210
11381
|
return this.isOfSubType(obj, nodeType8, "blankNode");
|
|
11211
11382
|
}
|
|
11212
|
-
|
|
11383
|
+
termLiteral(loc, value, langOrIri) {
|
|
11213
11384
|
return {
|
|
11214
11385
|
type: nodeType8,
|
|
11215
11386
|
subType: "literal",
|
|
@@ -11231,7 +11402,7 @@ function TermFactoryMixin(Base) {
|
|
|
11231
11402
|
const casted = obj;
|
|
11232
11403
|
return this.isTermLiteral(obj) && typeof casted.langOrIri === "object" && casted.langOrIri !== null && this.isTermNamed(casted.langOrIri);
|
|
11233
11404
|
}
|
|
11234
|
-
|
|
11405
|
+
termVariable(value, loc) {
|
|
11235
11406
|
return {
|
|
11236
11407
|
type: nodeType8,
|
|
11237
11408
|
subType: "variable",
|
|
@@ -11242,7 +11413,7 @@ function TermFactoryMixin(Base) {
|
|
|
11242
11413
|
isTermVariable(obj) {
|
|
11243
11414
|
return this.isOfSubType(obj, nodeType8, "variable");
|
|
11244
11415
|
}
|
|
11245
|
-
|
|
11416
|
+
termNamed(loc, value, prefix) {
|
|
11246
11417
|
const base = {
|
|
11247
11418
|
type: nodeType8,
|
|
11248
11419
|
subType: "namedNode",
|
|
@@ -11505,7 +11676,7 @@ var CommonIRIs;
|
|
|
11505
11676
|
CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
|
|
11506
11677
|
CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
|
|
11507
11678
|
})(CommonIRIs || (CommonIRIs = {}));
|
|
11508
|
-
var AstTransformer = class extends
|
|
11679
|
+
var AstTransformer = class extends TransformerSubTyped {
|
|
11509
11680
|
};
|
|
11510
11681
|
|
|
11511
11682
|
// ../../packages/rules-sparql-1-1/lib/validation/validators.js
|
|
@@ -11721,17 +11892,20 @@ var rdfLiteral = {
|
|
|
11721
11892
|
return OPTION(() => OR([
|
|
11722
11893
|
{ ALT: () => {
|
|
11723
11894
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
11724
|
-
return ACTION(() => C.astFactory.
|
|
11895
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
|
|
11725
11896
|
} },
|
|
11726
11897
|
{ ALT: () => {
|
|
11727
11898
|
CONSUME(symbols_exports.hathat);
|
|
11728
11899
|
const iriVal = SUBRULE1(iri2);
|
|
11729
|
-
return ACTION(() => C.astFactory.
|
|
11900
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
|
|
11730
11901
|
} }
|
|
11731
11902
|
])) ?? value;
|
|
11732
11903
|
},
|
|
11733
|
-
gImpl: ({ SUBRULE, PRINT,
|
|
11734
|
-
astFactory.printFilter(ast, () =>
|
|
11904
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD }) => (ast, { astFactory }) => {
|
|
11905
|
+
astFactory.printFilter(ast, () => {
|
|
11906
|
+
PRINT_WORD("");
|
|
11907
|
+
PRINT(stringEscapedLexical(ast.value));
|
|
11908
|
+
});
|
|
11735
11909
|
if (ast.langOrIri) {
|
|
11736
11910
|
if (typeof ast.langOrIri === "string") {
|
|
11737
11911
|
astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
@@ -11758,7 +11932,7 @@ var numericLiteralUnsigned = {
|
|
|
11758
11932
|
{ ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
|
|
11759
11933
|
{ ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
|
|
11760
11934
|
]);
|
|
11761
|
-
return ACTION(() => C.astFactory.
|
|
11935
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11762
11936
|
}
|
|
11763
11937
|
};
|
|
11764
11938
|
var numericLiteralPositive = {
|
|
@@ -11769,7 +11943,7 @@ var numericLiteralPositive = {
|
|
|
11769
11943
|
{ ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
|
|
11770
11944
|
{ ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
|
|
11771
11945
|
]);
|
|
11772
|
-
return ACTION(() => C.astFactory.
|
|
11946
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11773
11947
|
}
|
|
11774
11948
|
};
|
|
11775
11949
|
var numericLiteralNegative = {
|
|
@@ -11780,7 +11954,7 @@ var numericLiteralNegative = {
|
|
|
11780
11954
|
{ ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
|
|
11781
11955
|
{ ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
|
|
11782
11956
|
]);
|
|
11783
|
-
return ACTION(() => C.astFactory.
|
|
11957
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11784
11958
|
}
|
|
11785
11959
|
};
|
|
11786
11960
|
var booleanLiteral = {
|
|
@@ -11790,7 +11964,7 @@ var booleanLiteral = {
|
|
|
11790
11964
|
{ ALT: () => CONSUME(true_) },
|
|
11791
11965
|
{ ALT: () => CONSUME(false_) }
|
|
11792
11966
|
]);
|
|
11793
|
-
return ACTION(() => C.astFactory.
|
|
11967
|
+
return ACTION(() => C.astFactory.termLiteral(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.termNamed(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
|
|
11794
11968
|
}
|
|
11795
11969
|
};
|
|
11796
11970
|
var string = {
|
|
@@ -11832,7 +12006,7 @@ var string = {
|
|
|
11832
12006
|
return char;
|
|
11833
12007
|
}
|
|
11834
12008
|
});
|
|
11835
|
-
return F2.
|
|
12009
|
+
return F2.termLiteral(F2.sourceLocation(x[0]), value);
|
|
11836
12010
|
});
|
|
11837
12011
|
}
|
|
11838
12012
|
};
|
|
@@ -11848,7 +12022,7 @@ var iriFull = {
|
|
|
11848
12022
|
name: "iriFull",
|
|
11849
12023
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11850
12024
|
const iriToken = CONSUME(terminals_exports.iriRef);
|
|
11851
|
-
return ACTION(() => C.astFactory.
|
|
12025
|
+
return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
|
|
11852
12026
|
},
|
|
11853
12027
|
gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
|
|
11854
12028
|
F2.printFilter(ast, () => PRINT("<", ast.value, ">"));
|
|
@@ -11861,16 +12035,16 @@ var prefixedName = {
|
|
|
11861
12035
|
const longName = CONSUME(terminals_exports.pNameLn);
|
|
11862
12036
|
return ACTION(() => {
|
|
11863
12037
|
const [prefix, localName] = longName.image.split(":");
|
|
11864
|
-
return C.astFactory.
|
|
12038
|
+
return C.astFactory.termNamed(C.astFactory.sourceLocation(longName), localName, prefix);
|
|
11865
12039
|
});
|
|
11866
12040
|
} },
|
|
11867
12041
|
{ ALT: () => {
|
|
11868
12042
|
const shortName = CONSUME(terminals_exports.pNameNs);
|
|
11869
|
-
return ACTION(() => C.astFactory.
|
|
12043
|
+
return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
|
|
11870
12044
|
} }
|
|
11871
12045
|
]),
|
|
11872
|
-
gImpl: ({
|
|
11873
|
-
F2.printFilter(ast, () =>
|
|
12046
|
+
gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
|
|
12047
|
+
F2.printFilter(ast, () => PRINT(ast.prefix, ":", ast.value));
|
|
11874
12048
|
}
|
|
11875
12049
|
};
|
|
11876
12050
|
var canCreateBlankNodes = Symbol("canCreateBlankNodes");
|
|
@@ -11880,11 +12054,11 @@ var blankNode = {
|
|
|
11880
12054
|
const result = OR([
|
|
11881
12055
|
{ ALT: () => {
|
|
11882
12056
|
const labelToken = CONSUME(terminals_exports.blankNodeLabel);
|
|
11883
|
-
return ACTION(() => C.astFactory.
|
|
12057
|
+
return ACTION(() => C.astFactory.termBlank(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
|
|
11884
12058
|
} },
|
|
11885
12059
|
{ ALT: () => {
|
|
11886
12060
|
const anonToken = CONSUME(terminals_exports.anon);
|
|
11887
|
-
return ACTION(() => C.astFactory.
|
|
12061
|
+
return ACTION(() => C.astFactory.termBlank(void 0, C.astFactory.sourceLocation(anonToken)));
|
|
11888
12062
|
} }
|
|
11889
12063
|
]);
|
|
11890
12064
|
ACTION(() => {
|
|
@@ -11894,15 +12068,15 @@ var blankNode = {
|
|
|
11894
12068
|
});
|
|
11895
12069
|
return result;
|
|
11896
12070
|
},
|
|
11897
|
-
gImpl: ({
|
|
11898
|
-
astFactory.printFilter(ast, () =>
|
|
12071
|
+
gImpl: ({ PRINT }) => (ast, { astFactory }) => {
|
|
12072
|
+
astFactory.printFilter(ast, () => PRINT("_:", ast.label.replace(/^e_/u, "")));
|
|
11899
12073
|
}
|
|
11900
12074
|
};
|
|
11901
12075
|
var verbA = {
|
|
11902
12076
|
name: "VerbA",
|
|
11903
12077
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11904
12078
|
const token = CONSUME(a);
|
|
11905
|
-
return ACTION(() => C.astFactory.
|
|
12079
|
+
return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
|
|
11906
12080
|
}
|
|
11907
12081
|
};
|
|
11908
12082
|
|
|
@@ -11936,10 +12110,10 @@ var baseDecl2 = {
|
|
|
11936
12110
|
const val = SUBRULE(iriFull);
|
|
11937
12111
|
return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
|
|
11938
12112
|
},
|
|
11939
|
-
gImpl: ({ SUBRULE,
|
|
11940
|
-
F2.printFilter(ast, () =>
|
|
12113
|
+
gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
12114
|
+
F2.printFilter(ast, () => PRINT_ON_EMPTY("BASE "));
|
|
11941
12115
|
SUBRULE(iri2, ast.value);
|
|
11942
|
-
F2.printFilter(ast, () =>
|
|
12116
|
+
F2.printFilter(ast, () => NEW_LINE());
|
|
11943
12117
|
}
|
|
11944
12118
|
};
|
|
11945
12119
|
var prefixDecl2 = {
|
|
@@ -11950,12 +12124,12 @@ var prefixDecl2 = {
|
|
|
11950
12124
|
const value = SUBRULE(iriFull);
|
|
11951
12125
|
return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
|
|
11952
12126
|
},
|
|
11953
|
-
gImpl: ({ SUBRULE,
|
|
12127
|
+
gImpl: ({ SUBRULE, PRINT_ON_EMPTY, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
11954
12128
|
F2.printFilter(ast, () => {
|
|
11955
|
-
|
|
12129
|
+
PRINT_ON_EMPTY("PREFIX ", `${ast.key}: `);
|
|
11956
12130
|
});
|
|
11957
12131
|
SUBRULE(iri2, ast.value);
|
|
11958
|
-
F2.printFilter(ast, () =>
|
|
12132
|
+
F2.printFilter(ast, () => NEW_LINE());
|
|
11959
12133
|
}
|
|
11960
12134
|
};
|
|
11961
12135
|
var verb = {
|
|
@@ -11992,10 +12166,10 @@ var var_ = {
|
|
|
11992
12166
|
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
11993
12167
|
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
11994
12168
|
]);
|
|
11995
|
-
return ACTION(() => C.astFactory.
|
|
12169
|
+
return ACTION(() => C.astFactory.termVariable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
|
|
11996
12170
|
},
|
|
11997
|
-
gImpl: ({
|
|
11998
|
-
F2.printFilter(ast, () =>
|
|
12171
|
+
gImpl: ({ PRINT }) => (ast, { astFactory: F2 }) => {
|
|
12172
|
+
F2.printFilter(ast, () => PRINT(`?${ast.value}`));
|
|
11999
12173
|
}
|
|
12000
12174
|
};
|
|
12001
12175
|
var graphTerm = {
|
|
@@ -12008,7 +12182,7 @@ var graphTerm = {
|
|
|
12008
12182
|
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
12009
12183
|
{ ALT: () => {
|
|
12010
12184
|
const tokenNil = CONSUME(terminals_exports.nil);
|
|
12011
|
-
return ACTION(() => C.astFactory.
|
|
12185
|
+
return ACTION(() => C.astFactory.termNamed(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
|
|
12012
12186
|
} }
|
|
12013
12187
|
]),
|
|
12014
12188
|
gImpl: ({ SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
@@ -12638,13 +12812,16 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
|
12638
12812
|
var triplesBlock = {
|
|
12639
12813
|
name: "triplesBlock",
|
|
12640
12814
|
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12641
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F2 }) => {
|
|
12815
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
12642
12816
|
for (const [index, triple] of ast.triples.entries()) {
|
|
12643
12817
|
HANDLE_LOC(triple, () => {
|
|
12644
12818
|
const nextTriple = ast.triples.at(index);
|
|
12645
12819
|
if (F2.isTripleCollection(triple)) {
|
|
12646
12820
|
SUBRULE(graphNodePath, triple);
|
|
12647
|
-
F2.printFilter(triple, () =>
|
|
12821
|
+
F2.printFilter(triple, () => {
|
|
12822
|
+
PRINT_WORD(".");
|
|
12823
|
+
NEW_LINE();
|
|
12824
|
+
});
|
|
12648
12825
|
} else {
|
|
12649
12826
|
SUBRULE(graphNodePath, triple.subject);
|
|
12650
12827
|
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
@@ -12656,11 +12833,17 @@ var triplesBlock = {
|
|
|
12656
12833
|
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
12657
12834
|
SUBRULE(graphNodePath, triple.object);
|
|
12658
12835
|
if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12659
|
-
F2.printFilter(ast, () =>
|
|
12836
|
+
F2.printFilter(ast, () => {
|
|
12837
|
+
PRINT_WORD(".");
|
|
12838
|
+
NEW_LINE();
|
|
12839
|
+
});
|
|
12660
12840
|
} else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12661
12841
|
F2.printFilter(ast, () => PRINT_WORD(","));
|
|
12662
12842
|
} else {
|
|
12663
|
-
F2.printFilter(ast, () =>
|
|
12843
|
+
F2.printFilter(ast, () => {
|
|
12844
|
+
PRINT_WORD(";");
|
|
12845
|
+
NEW_LINE();
|
|
12846
|
+
});
|
|
12664
12847
|
}
|
|
12665
12848
|
}
|
|
12666
12849
|
});
|
|
@@ -12793,10 +12976,10 @@ function collectionImpl(name, allowPaths) {
|
|
|
12793
12976
|
return ACTION(() => {
|
|
12794
12977
|
const F2 = C.astFactory;
|
|
12795
12978
|
const triples = [];
|
|
12796
|
-
const predFirst = F2.
|
|
12797
|
-
const predRest = F2.
|
|
12798
|
-
const predNil = F2.
|
|
12799
|
-
const listHead = F2.
|
|
12979
|
+
const predFirst = F2.termNamed(F2.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
|
|
12980
|
+
const predRest = F2.termNamed(F2.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
|
|
12981
|
+
const predNil = F2.termNamed(F2.sourceLocationNoMaterialize(), CommonIRIs.NIL, void 0);
|
|
12982
|
+
const listHead = F2.termBlank(void 0, F2.sourceLocationNoMaterialize());
|
|
12800
12983
|
let iterHead = listHead;
|
|
12801
12984
|
for (const [index, term] of terms.entries()) {
|
|
12802
12985
|
const lastInList = index === terms.length - 1;
|
|
@@ -12806,7 +12989,7 @@ function collectionImpl(name, allowPaths) {
|
|
|
12806
12989
|
const nilTriple = F2.triple(iterHead, predRest, predNil);
|
|
12807
12990
|
triples.push(nilTriple);
|
|
12808
12991
|
} else {
|
|
12809
|
-
const tail = F2.
|
|
12992
|
+
const tail = F2.termBlank(void 0, F2.sourceLocationNoMaterialize());
|
|
12810
12993
|
const linkTriple = F2.triple(iterHead, predRest, tail);
|
|
12811
12994
|
triples.push(linkTriple);
|
|
12812
12995
|
iterHead = tail;
|
|
@@ -12846,16 +13029,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12846
13029
|
name,
|
|
12847
13030
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12848
13031
|
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12849
|
-
const blankNode2 = ACTION(() => C.astFactory.
|
|
13032
|
+
const blankNode2 = ACTION(() => C.astFactory.termBlank(void 0, C.astFactory.sourceLocationNoMaterialize()));
|
|
12850
13033
|
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12851
13034
|
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12852
13035
|
return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
|
|
12853
13036
|
},
|
|
12854
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
|
|
13037
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY, NEW_LINE }) => (ast, c) => {
|
|
12855
13038
|
const { astFactory: F2, indentInc } = c;
|
|
12856
13039
|
F2.printFilter(ast, () => {
|
|
12857
13040
|
c[traqulaIndentation] += indentInc;
|
|
12858
|
-
PRINT("[
|
|
13041
|
+
PRINT("[");
|
|
13042
|
+
NEW_LINE();
|
|
12859
13043
|
});
|
|
12860
13044
|
for (const triple of ast.triples) {
|
|
12861
13045
|
HANDLE_LOC(triple, () => {
|
|
@@ -12866,7 +13050,10 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12866
13050
|
}
|
|
12867
13051
|
F2.printFilter(triple, () => PRINT_WORD(""));
|
|
12868
13052
|
SUBRULE(graphNodePath, triple.object);
|
|
12869
|
-
F2.printFilter(ast, () =>
|
|
13053
|
+
F2.printFilter(ast, () => {
|
|
13054
|
+
PRINT_WORD(";");
|
|
13055
|
+
NEW_LINE();
|
|
13056
|
+
});
|
|
12870
13057
|
});
|
|
12871
13058
|
}
|
|
12872
13059
|
F2.printFilter(ast, () => {
|
|
@@ -12925,18 +13112,19 @@ var groupGraphPattern = {
|
|
|
12925
13112
|
const close = CONSUME(symbols_exports.RCurly);
|
|
12926
13113
|
return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
|
|
12927
13114
|
},
|
|
12928
|
-
gImpl: ({ SUBRULE, PRINT_WORD,
|
|
13115
|
+
gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {
|
|
12929
13116
|
const { astFactory: F2, indentInc } = C;
|
|
12930
13117
|
F2.printFilter(ast, () => {
|
|
12931
13118
|
C[traqulaIndentation] += indentInc;
|
|
12932
|
-
PRINT_WORD("{
|
|
13119
|
+
PRINT_WORD("{");
|
|
13120
|
+
NEW_LINE();
|
|
12933
13121
|
});
|
|
12934
13122
|
for (const pattern of ast.patterns) {
|
|
12935
13123
|
SUBRULE(generatePattern, pattern);
|
|
12936
13124
|
}
|
|
12937
13125
|
F2.printFilter(ast, () => {
|
|
12938
13126
|
C[traqulaIndentation] -= indentInc;
|
|
12939
|
-
|
|
13127
|
+
PRINT_ON_OWN_LINE("}");
|
|
12940
13128
|
});
|
|
12941
13129
|
}
|
|
12942
13130
|
};
|
|
@@ -13086,12 +13274,15 @@ var bind2 = {
|
|
|
13086
13274
|
const close = CONSUME(symbols_exports.RParen);
|
|
13087
13275
|
return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
|
|
13088
13276
|
},
|
|
13089
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13277
|
+
gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
13090
13278
|
F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
13091
13279
|
SUBRULE(expression, ast.expression);
|
|
13092
13280
|
F2.printFilter(ast, () => PRINT_WORD("AS"));
|
|
13093
13281
|
SUBRULE(var_, ast.variable);
|
|
13094
|
-
F2.printFilter(ast, () =>
|
|
13282
|
+
F2.printFilter(ast, () => {
|
|
13283
|
+
PRINT_WORD(")");
|
|
13284
|
+
NEW_LINE();
|
|
13285
|
+
});
|
|
13095
13286
|
}
|
|
13096
13287
|
};
|
|
13097
13288
|
var inlineData = {
|
|
@@ -13099,34 +13290,46 @@ var inlineData = {
|
|
|
13099
13290
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13100
13291
|
const values3 = CONSUME(values2);
|
|
13101
13292
|
const datablock = SUBRULE(dataBlock);
|
|
13102
|
-
return ACTION(() =>
|
|
13293
|
+
return ACTION(() => {
|
|
13294
|
+
datablock.loc = C.astFactory.sourceLocation(values3, datablock);
|
|
13295
|
+
return datablock;
|
|
13296
|
+
});
|
|
13103
13297
|
},
|
|
13104
|
-
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
13298
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {
|
|
13105
13299
|
const { astFactory: F2, indentInc } = C;
|
|
13106
|
-
const variables =
|
|
13300
|
+
const variables = ast.variables;
|
|
13301
|
+
const singleVar = variables.length === 1;
|
|
13302
|
+
F2.printFilter(ast, () => {
|
|
13303
|
+
PRINT_ON_EMPTY("VALUES", singleVar ? "" : "( ");
|
|
13304
|
+
});
|
|
13305
|
+
for (const variable of variables) {
|
|
13306
|
+
F2.printFilter(ast, () => PRINT_WORD(""));
|
|
13307
|
+
SUBRULE(varOrTerm, variable);
|
|
13308
|
+
F2.printFilter(ast, () => PRINT_WORD(""));
|
|
13309
|
+
}
|
|
13107
13310
|
F2.printFilter(ast, () => {
|
|
13108
|
-
PRINT_ON_EMPTY("");
|
|
13109
|
-
PRINT_WORD("VALUES", "(");
|
|
13110
|
-
for (const variable of variables) {
|
|
13111
|
-
PRINT_WORD(`?${variable}`);
|
|
13112
|
-
}
|
|
13113
13311
|
C[traqulaIndentation] += indentInc;
|
|
13114
|
-
PRINT_WORD(")", "{
|
|
13312
|
+
PRINT_WORD(singleVar ? "" : ")", "{");
|
|
13313
|
+
NEW_LINE();
|
|
13115
13314
|
});
|
|
13116
13315
|
for (const mapping of ast.values) {
|
|
13117
|
-
F2.printFilter(ast, () => PRINT_WORD("("));
|
|
13316
|
+
F2.printFilter(ast, () => !singleVar && PRINT_WORD("("));
|
|
13118
13317
|
for (const variable of variables) {
|
|
13119
|
-
|
|
13318
|
+
const var_2 = variable.value;
|
|
13319
|
+
if (mapping[var_2] === void 0) {
|
|
13120
13320
|
F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
|
|
13121
13321
|
} else {
|
|
13122
|
-
SUBRULE(graphNodePath, mapping[
|
|
13322
|
+
SUBRULE(graphNodePath, mapping[var_2]);
|
|
13123
13323
|
}
|
|
13124
13324
|
}
|
|
13125
|
-
F2.printFilter(ast, () =>
|
|
13325
|
+
F2.printFilter(ast, () => {
|
|
13326
|
+
PRINT_WORD(singleVar ? "" : ")");
|
|
13327
|
+
NEW_LINE();
|
|
13328
|
+
});
|
|
13126
13329
|
}
|
|
13127
13330
|
F2.printFilter(ast, () => {
|
|
13128
13331
|
C[traqulaIndentation] -= indentInc;
|
|
13129
|
-
|
|
13332
|
+
PRINT_ON_OWN_LINE("}");
|
|
13130
13333
|
});
|
|
13131
13334
|
}
|
|
13132
13335
|
};
|
|
@@ -13150,7 +13353,7 @@ var inlineDataOneVar = {
|
|
|
13150
13353
|
});
|
|
13151
13354
|
});
|
|
13152
13355
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13153
|
-
return ACTION(() => C.astFactory.
|
|
13356
|
+
return ACTION(() => C.astFactory.patternValues([varVal], res, C.astFactory.sourceLocation(varVal, close)));
|
|
13154
13357
|
}
|
|
13155
13358
|
};
|
|
13156
13359
|
var inlineDataFull = {
|
|
@@ -13167,7 +13370,7 @@ var inlineDataFull = {
|
|
|
13167
13370
|
res.push({});
|
|
13168
13371
|
});
|
|
13169
13372
|
const close = CONSUME1(symbols_exports.RCurly);
|
|
13170
|
-
return ACTION(() => C.astFactory.
|
|
13373
|
+
return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(nil2, close)));
|
|
13171
13374
|
} },
|
|
13172
13375
|
{ ALT: () => {
|
|
13173
13376
|
const open = CONSUME1(symbols_exports.LParen);
|
|
@@ -13199,7 +13402,7 @@ var inlineDataFull = {
|
|
|
13199
13402
|
});
|
|
13200
13403
|
});
|
|
13201
13404
|
const close = CONSUME2(symbols_exports.RCurly);
|
|
13202
|
-
return ACTION(() => C.astFactory.
|
|
13405
|
+
return ACTION(() => C.astFactory.patternValues(vars, res, C.astFactory.sourceLocation(open, close)));
|
|
13203
13406
|
} }
|
|
13204
13407
|
]);
|
|
13205
13408
|
}
|
|
@@ -13262,10 +13465,13 @@ var filter3 = {
|
|
|
13262
13465
|
const expression2 = SUBRULE(constraint);
|
|
13263
13466
|
return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
|
|
13264
13467
|
},
|
|
13265
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
13468
|
+
gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
13266
13469
|
F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
13267
13470
|
SUBRULE(expression, ast.expression);
|
|
13268
|
-
F2.printFilter(ast, () =>
|
|
13471
|
+
F2.printFilter(ast, () => {
|
|
13472
|
+
PRINT_WORD(")");
|
|
13473
|
+
NEW_LINE();
|
|
13474
|
+
});
|
|
13269
13475
|
}
|
|
13270
13476
|
};
|
|
13271
13477
|
var constraint = {
|
|
@@ -13651,8 +13857,7 @@ var groupClause = {
|
|
|
13651
13857
|
},
|
|
13652
13858
|
gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
13653
13859
|
F2.printFilter(ast, () => {
|
|
13654
|
-
PRINT_ON_EMPTY("");
|
|
13655
|
-
PRINT_WORDS("GROUP", "BY");
|
|
13860
|
+
PRINT_ON_EMPTY("GROUP BY ");
|
|
13656
13861
|
});
|
|
13657
13862
|
for (const grouping of ast.groupings) {
|
|
13658
13863
|
if (F2.isExpression(grouping)) {
|
|
@@ -13708,10 +13913,9 @@ var havingClause = {
|
|
|
13708
13913
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13709
13914
|
return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
|
|
13710
13915
|
},
|
|
13711
|
-
gImpl: ({
|
|
13916
|
+
gImpl: ({ PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13712
13917
|
F2.printFilter(ast, () => {
|
|
13713
|
-
PRINT_ON_EMPTY("");
|
|
13714
|
-
PRINT_WORD("HAVING");
|
|
13918
|
+
PRINT_ON_EMPTY("HAVING ");
|
|
13715
13919
|
});
|
|
13716
13920
|
for (const having2 of ast.having) {
|
|
13717
13921
|
SUBRULE(expression, having2);
|
|
@@ -13737,8 +13941,7 @@ var orderClause = {
|
|
|
13737
13941
|
},
|
|
13738
13942
|
gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F2 }) => {
|
|
13739
13943
|
F2.printFilter(ast, () => {
|
|
13740
|
-
PRINT_ON_EMPTY("");
|
|
13741
|
-
PRINT_WORDS("ORDER", "BY");
|
|
13944
|
+
PRINT_ON_EMPTY("ORDER BY ");
|
|
13742
13945
|
});
|
|
13743
13946
|
for (const ordering of ast.orderDefs) {
|
|
13744
13947
|
if (ordering.descending) {
|
|
@@ -13797,9 +14000,9 @@ var limitOffsetClauses = {
|
|
|
13797
14000
|
return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
|
|
13798
14001
|
} }
|
|
13799
14002
|
]),
|
|
13800
|
-
gImpl: ({ PRINT_WORDS,
|
|
14003
|
+
gImpl: ({ PRINT_WORDS, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
13801
14004
|
F2.printFilter(ast, () => {
|
|
13802
|
-
|
|
14005
|
+
NEW_LINE();
|
|
13803
14006
|
if (ast.limit) {
|
|
13804
14007
|
PRINT_WORDS("LIMIT", String(ast.limit));
|
|
13805
14008
|
}
|
|
@@ -13984,9 +14187,9 @@ var selectClause = {
|
|
|
13984
14187
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13985
14188
|
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
|
|
13986
14189
|
},
|
|
13987
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14190
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
13988
14191
|
F2.printFilter(ast, () => {
|
|
13989
|
-
|
|
14192
|
+
PRINT_ON_EMPTY("SELECT ");
|
|
13990
14193
|
if (ast.val.distinct) {
|
|
13991
14194
|
PRINT_WORD("DISTINCT");
|
|
13992
14195
|
} else if (ast.val.reduced) {
|
|
@@ -14005,7 +14208,9 @@ var selectClause = {
|
|
|
14005
14208
|
SUBRULE(var_, variable.variable);
|
|
14006
14209
|
F2.printFilter(ast, () => PRINT_WORD(")"));
|
|
14007
14210
|
}
|
|
14211
|
+
F2.printFilter(ast, () => PRINT_WORD(""));
|
|
14008
14212
|
}
|
|
14213
|
+
F2.printFilter(ast, () => PRINT_WORD(""));
|
|
14009
14214
|
}
|
|
14010
14215
|
};
|
|
14011
14216
|
var constructQuery = {
|
|
@@ -14043,18 +14248,19 @@ var constructQuery = {
|
|
|
14043
14248
|
} }
|
|
14044
14249
|
]);
|
|
14045
14250
|
},
|
|
14046
|
-
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14251
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, PRINT_ON_OWN_LINE, NEW_LINE }) => (ast, C) => {
|
|
14047
14252
|
const { astFactory: F2, indentInc } = C;
|
|
14048
|
-
F2.printFilter(ast, () =>
|
|
14253
|
+
F2.printFilter(ast, () => PRINT_ON_EMPTY("CONSTRUCT "));
|
|
14049
14254
|
if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
14050
14255
|
F2.printFilter(ast, () => {
|
|
14051
14256
|
C[traqulaIndentation] += indentInc;
|
|
14052
|
-
PRINT_WORD("{
|
|
14257
|
+
PRINT_WORD("{");
|
|
14258
|
+
NEW_LINE();
|
|
14053
14259
|
});
|
|
14054
14260
|
SUBRULE(triplesBlock, ast.template);
|
|
14055
14261
|
F2.printFilter(ast, () => {
|
|
14056
14262
|
C[traqulaIndentation] -= indentInc;
|
|
14057
|
-
|
|
14263
|
+
PRINT_ON_OWN_LINE("}");
|
|
14058
14264
|
});
|
|
14059
14265
|
}
|
|
14060
14266
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
@@ -14095,8 +14301,8 @@ var describeQuery = {
|
|
|
14095
14301
|
loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
14096
14302
|
}));
|
|
14097
14303
|
},
|
|
14098
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14099
|
-
F2.printFilter(ast, () =>
|
|
14304
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14305
|
+
F2.printFilter(ast, () => PRINT_ON_EMPTY("DESCRIBE "));
|
|
14100
14306
|
if (F2.isWildcard(ast.variables[0])) {
|
|
14101
14307
|
F2.printFilter(ast, () => PRINT_WORD("*"));
|
|
14102
14308
|
} else {
|
|
@@ -14126,8 +14332,8 @@ var askQuery = {
|
|
|
14126
14332
|
loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
14127
14333
|
}));
|
|
14128
14334
|
},
|
|
14129
|
-
gImpl: ({ SUBRULE,
|
|
14130
|
-
F2.printFilter(ast, () =>
|
|
14335
|
+
gImpl: ({ SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14336
|
+
F2.printFilter(ast, () => PRINT_ON_EMPTY("ASK "));
|
|
14131
14337
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
14132
14338
|
SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
|
|
14133
14339
|
SUBRULE(solutionModifier, ast.solutionModifiers);
|
|
@@ -14186,7 +14392,7 @@ var update = {
|
|
|
14186
14392
|
return update2;
|
|
14187
14393
|
});
|
|
14188
14394
|
},
|
|
14189
|
-
gImpl: ({ SUBRULE,
|
|
14395
|
+
gImpl: ({ SUBRULE, PRINT, NEW_LINE }) => (ast, { astFactory: F2 }) => {
|
|
14190
14396
|
const [head2, ...tail] = ast.updates;
|
|
14191
14397
|
if (head2) {
|
|
14192
14398
|
SUBRULE(prologue, head2.context);
|
|
@@ -14195,7 +14401,10 @@ var update = {
|
|
|
14195
14401
|
}
|
|
14196
14402
|
}
|
|
14197
14403
|
for (const update2 of tail) {
|
|
14198
|
-
F2.printFilter(ast, () =>
|
|
14404
|
+
F2.printFilter(ast, () => {
|
|
14405
|
+
PRINT(";");
|
|
14406
|
+
NEW_LINE();
|
|
14407
|
+
});
|
|
14199
14408
|
SUBRULE(prologue, update2.context);
|
|
14200
14409
|
if (update2.operation) {
|
|
14201
14410
|
SUBRULE(update1, update2.operation);
|
|
@@ -14268,9 +14477,9 @@ var load2 = {
|
|
|
14268
14477
|
});
|
|
14269
14478
|
return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
|
|
14270
14479
|
},
|
|
14271
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14480
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14272
14481
|
F2.printFilter(ast, () => {
|
|
14273
|
-
|
|
14482
|
+
PRINT_ON_EMPTY("LOAD ");
|
|
14274
14483
|
if (ast.silent) {
|
|
14275
14484
|
PRINT_WORD("SILENT");
|
|
14276
14485
|
}
|
|
@@ -14291,9 +14500,9 @@ function clearOrDrop(operation) {
|
|
|
14291
14500
|
const destination = SUBRULE1(graphRefAll);
|
|
14292
14501
|
return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
|
|
14293
14502
|
},
|
|
14294
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14503
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14295
14504
|
F2.printFilter(ast, () => {
|
|
14296
|
-
|
|
14505
|
+
PRINT_ON_EMPTY(operation.name.toUpperCase(), " ");
|
|
14297
14506
|
if (ast.silent) {
|
|
14298
14507
|
PRINT_WORD("SILENT");
|
|
14299
14508
|
}
|
|
@@ -14312,9 +14521,9 @@ var create2 = {
|
|
|
14312
14521
|
const destination = SUBRULE1(graphRef);
|
|
14313
14522
|
return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
|
|
14314
14523
|
},
|
|
14315
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14524
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14316
14525
|
F2.printFilter(ast, () => {
|
|
14317
|
-
|
|
14526
|
+
PRINT_ON_EMPTY("CREATE ");
|
|
14318
14527
|
if (ast.silent) {
|
|
14319
14528
|
PRINT_WORD("SILENT");
|
|
14320
14529
|
}
|
|
@@ -14333,9 +14542,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14333
14542
|
const destination = SUBRULE2(graphOrDefault);
|
|
14334
14543
|
return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
|
|
14335
14544
|
},
|
|
14336
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F2 }) => {
|
|
14545
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, { astFactory: F2 }) => {
|
|
14337
14546
|
F2.printFilter(ast, () => {
|
|
14338
|
-
|
|
14547
|
+
PRINT_ON_EMPTY(operation.name.toUpperCase(), " ");
|
|
14339
14548
|
if (ast.silent) {
|
|
14340
14549
|
PRINT_WORD("SILENT");
|
|
14341
14550
|
}
|
|
@@ -14384,23 +14593,24 @@ function insertDeleteDelWhere(name, subType, cons1, dataRule) {
|
|
|
14384
14593
|
}
|
|
14385
14594
|
return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
|
|
14386
14595
|
},
|
|
14387
|
-
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14596
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY, PRINT_ON_OWN_LINE, NEW_LINE }) => (ast, C) => {
|
|
14388
14597
|
const { astFactory: F2, indentInc } = C;
|
|
14389
14598
|
F2.printFilter(ast, () => {
|
|
14390
|
-
C[traqulaIndentation] += indentInc;
|
|
14391
14599
|
if (subType === "insertdata") {
|
|
14392
|
-
|
|
14600
|
+
PRINT_ON_EMPTY("INSERT DATA ");
|
|
14393
14601
|
} else if (subType === "deletedata") {
|
|
14394
|
-
|
|
14602
|
+
PRINT_ON_EMPTY("DELETE DATA ");
|
|
14395
14603
|
} else if (subType === "deletewhere") {
|
|
14396
|
-
|
|
14604
|
+
PRINT_ON_EMPTY("DELETE WHERE ");
|
|
14397
14605
|
}
|
|
14398
|
-
|
|
14606
|
+
C[traqulaIndentation] += indentInc;
|
|
14607
|
+
PRINT_WORD("{");
|
|
14608
|
+
NEW_LINE();
|
|
14399
14609
|
});
|
|
14400
14610
|
SUBRULE(quads, F2.wrap(ast.data, ast.loc));
|
|
14401
14611
|
F2.printFilter(ast, () => {
|
|
14402
14612
|
C[traqulaIndentation] -= indentInc;
|
|
14403
|
-
|
|
14613
|
+
PRINT_ON_OWN_LINE("}");
|
|
14404
14614
|
});
|
|
14405
14615
|
}
|
|
14406
14616
|
};
|
|
@@ -14432,36 +14642,40 @@ var modify = {
|
|
|
14432
14642
|
const where2 = SUBRULE1(groupGraphPattern);
|
|
14433
14643
|
return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
|
|
14434
14644
|
},
|
|
14435
|
-
gImpl: ({ SUBRULE,
|
|
14645
|
+
gImpl: ({ SUBRULE, PRINT_WORDS, PRINT_ON_EMPTY, NEW_LINE }) => (ast, C) => {
|
|
14436
14646
|
const { astFactory: F2, indentInc } = C;
|
|
14437
14647
|
if (ast.graph) {
|
|
14438
|
-
F2.printFilter(ast, () =>
|
|
14648
|
+
F2.printFilter(ast, () => PRINT_WORDS("WITH"));
|
|
14439
14649
|
SUBRULE(iri2, ast.graph);
|
|
14440
14650
|
}
|
|
14441
14651
|
if (ast.delete.length > 0) {
|
|
14442
14652
|
F2.printFilter(ast, () => {
|
|
14443
14653
|
C[traqulaIndentation] += indentInc;
|
|
14444
|
-
|
|
14654
|
+
PRINT_WORDS("DELETE", "{");
|
|
14655
|
+
NEW_LINE();
|
|
14445
14656
|
});
|
|
14446
14657
|
SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
|
|
14447
14658
|
F2.printFilter(ast, () => {
|
|
14448
14659
|
C[traqulaIndentation] -= indentInc;
|
|
14449
|
-
PRINT_ON_EMPTY("}
|
|
14660
|
+
PRINT_ON_EMPTY("}");
|
|
14661
|
+
NEW_LINE();
|
|
14450
14662
|
});
|
|
14451
14663
|
}
|
|
14452
14664
|
if (ast.insert.length > 0) {
|
|
14453
14665
|
F2.printFilter(ast, () => {
|
|
14454
14666
|
C[traqulaIndentation] += indentInc;
|
|
14455
|
-
|
|
14667
|
+
PRINT_WORDS("INSERT", "{");
|
|
14668
|
+
NEW_LINE();
|
|
14456
14669
|
});
|
|
14457
14670
|
SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
|
|
14458
14671
|
F2.printFilter(ast, () => {
|
|
14459
14672
|
C[traqulaIndentation] -= indentInc;
|
|
14460
|
-
PRINT_ON_EMPTY("}
|
|
14673
|
+
PRINT_ON_EMPTY("} ");
|
|
14674
|
+
NEW_LINE();
|
|
14461
14675
|
});
|
|
14462
14676
|
}
|
|
14463
14677
|
SUBRULE(usingClauseStar, ast.from);
|
|
14464
|
-
F2.printFilter(ast, () =>
|
|
14678
|
+
F2.printFilter(ast, () => PRINT_WORDS("WHERE"));
|
|
14465
14679
|
SUBRULE(groupGraphPattern, ast.where);
|
|
14466
14680
|
}
|
|
14467
14681
|
};
|
|
@@ -14585,18 +14799,19 @@ var quadsNotTriples = {
|
|
|
14585
14799
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14586
14800
|
return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
|
|
14587
14801
|
},
|
|
14588
|
-
gImpl: ({ SUBRULE, PRINT_WORD,
|
|
14802
|
+
gImpl: ({ SUBRULE, PRINT_WORD, NEW_LINE, PRINT_ON_OWN_LINE }) => (ast, C) => {
|
|
14589
14803
|
const { astFactory: F2, indentInc } = C;
|
|
14590
14804
|
F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14591
14805
|
SUBRULE(varOrTerm, ast.graph);
|
|
14592
14806
|
F2.printFilter(ast, () => {
|
|
14593
14807
|
C[traqulaIndentation] += indentInc;
|
|
14594
|
-
PRINT_WORD("{
|
|
14808
|
+
PRINT_WORD("{");
|
|
14809
|
+
NEW_LINE();
|
|
14595
14810
|
});
|
|
14596
14811
|
SUBRULE(triplesBlock, ast.triples);
|
|
14597
14812
|
F2.printFilter(ast, () => {
|
|
14598
14813
|
C[traqulaIndentation] -= indentInc;
|
|
14599
|
-
|
|
14814
|
+
PRINT_ON_OWN_LINE("}");
|
|
14600
14815
|
});
|
|
14601
14816
|
}
|
|
14602
14817
|
};
|
|
@@ -14936,8 +15151,9 @@ var updateParserBuilder = ParserBuilder.create(updateNoModifyParserBuilder).patc
|
|
|
14936
15151
|
// lib/Parser.js
|
|
14937
15152
|
var sparql11ParserBuilder = ParserBuilder.create(queryUnitParserBuilder).merge(updateParserBuilder, []).addRule(grammar_exports.queryOrUpdate);
|
|
14938
15153
|
var Parser2 = class extends MinimalSparqlParser {
|
|
14939
|
-
constructor() {
|
|
15154
|
+
constructor(args = {}) {
|
|
14940
15155
|
const parser = sparql11ParserBuilder.build({
|
|
15156
|
+
...args,
|
|
14941
15157
|
tokenVocabulary: lexer_exports.sparql11LexerBuilder.tokenVocabulary,
|
|
14942
15158
|
queryPreProcessor: sparqlCodepointEscape
|
|
14943
15159
|
});
|