diff --git a/build/output/knockout-latest.debug.js b/build/output/knockout-latest.debug.js
index 97b8dd5..f9f5007 100644
--- a/build/output/knockout-latest.debug.js
+++ b/build/output/knockout-latest.debug.js
@@ -565,7 +565,11 @@ ko.exportSymbol('ko.utils.domNodeDisposal.removeDisposeCallback', ko.utils.domNo
// for example
elements which are not normally allowed to exist on their own.
// If you've referenced jQuery we'll use that rather than duplicating its code.
if (typeof jQuery != 'undefined') {
- jQuery(node)['html'](html);
+ try {
+ jQuery(node)['html'](html);
+ } catch (x) {
+ jQuery(node)['html'](html.replace("<","<").replace(">",">"));
+ }
} else {
// ... otherwise, use KO's own parsing logic.
var parsedNodes = ko.utils.parseHtmlFragment(html);
@@ -1238,6 +1242,30 @@ ko.jsonExpressionRewriting = (function () {
return jsonString;
},
+ //@modified
+ parseURIsInJSONString: function(jsonString) {
+ var re = /["']?(<|\[)[a-z:\/.#?&%]+(\]|>)['"]?/g;
+ var acum = "";
+ var found = re.exec(jsonString);
+ while(found != null) {
+ if((found[0][0] === "'" || found[0][0] === '"') &&
+ (found[0][found[0].length-1] === "'" || found[0][found[0].length-1] === '"')) {
+ var parts = jsonString.split(found[0]);
+ acum = acum + parts[0] + found[0];
+ jsonString = parts[1];
+ } else {
+ var w = found[0];
+ var index = found.index;
+ var pref = jsonString.substring(0,index);
+ acum = pref+"sko.current().tryProperty('"+w+"')";
+ jsonString= jsonString.substring(index+w.length);
+ }
+ found = re.exec(jsonString);
+ }
+
+ return acum+jsonString;
+ },
+
insertPropertyReaderWritersIntoJson: function (jsonString) {
var parsed = ko.jsonExpressionRewriting.parseJson(jsonString);
var propertyAccessorTokens = [];
@@ -1245,6 +1273,8 @@ ko.jsonExpressionRewriting = (function () {
var isFirst = true;
for (var key in parsed) {
var value = parsed[key];
+
+ value = this.parseURIsInJSONString(value);
if (isWriteableValue(value)) {
if (propertyAccessorTokens.length > 0)
propertyAccessorTokens.push(", ");
@@ -1309,7 +1339,13 @@ ko.exportSymbol('ko.jsonExpressionRewriting.insertPropertyReaderWritersIntoJson'
var json = " { " + ko.jsonExpressionRewriting.insertPropertyReaderWritersIntoJson(attributeText) + " } ";
return ko.utils.evalWithinScope(json, viewModel === null ? window : viewModel, node);
} catch (ex) {
- throw new Error("Unable to parse binding attribute.\nMessage: " + ex + ";\nAttribute value: " + attributeText);
+ if(typeof(console) !== 'undefined') {
+ console.log("!!! ERROR");
+ console.log(attributeText);
+ console.log(ex);
+ }
+ //@modified
+ //throw new Error("Unable to parse binding attribute.\nMessage: " + ex + ";\nAttribute value: " + attributeText);
}
}
@@ -1797,7 +1833,12 @@ ko.bindingHandlers['attr'] = {
if ((attrValue === false) || (attrValue === null) || (attrValue === undefined))
element.removeAttribute(attrName);
else
- element.setAttribute(attrName, attrValue.toString());
+ // @modified
+ var actualValue = attrValue.toString();
+ if(actualValue[0] === '<' && actualValue[actualValue.length-1] === '>') {
+ actualValue = actualValue.substring(1,actualValue.length-1);
+ }
+ element.setAttribute(attrName, actualValue);
}
}
}
@@ -1951,9 +1992,24 @@ ko.exportSymbol('ko.templateRewriting.applyMemoizedBindingsToNextSibling', ko.te
ko.renderTemplateForEach = function (template, arrayOrObservableArray, options, targetNode) {
return new ko.dependentObservable(function () {
var unwrappedArray = ko.utils.unwrapObservable(arrayOrObservableArray) || [];
- if (typeof unwrappedArray.length == "undefined") // Coerce single value into array
+
+ // @modified
+ if (unwrappedArray.constructor != Array) // Coerce single value into array
unwrappedArray = [unwrappedArray];
+ // @modified
+ // wrapping automatically non objects
+ for(var i=0; i "+uri);
+ var uri;
- if(uri == null) {
+ if(relValue != null) {
+ uri = relValue();
+ uri = sko.NTUri(uri);
+ sko.log("*** OBSERVABLE READING RELATED DEPENDING NODE ABOT ID:"+nextId+" URI -> "+uri);
+ } else {
sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL");
uri = sko.nextBlankLabel();
}
@@ -3338,20 +3395,72 @@ sko.Resource.storeObserver = function(skoResource) {
node.forEach(function(triple){
if(triple.object.interfaceName === 'NamedNode') {
sko.log(" "+triple.predicate.toNT()+" -> "+triple.object.toNT());
- newValues[triple.predicate.toNT()] = triple.object.toNT();
+
+ if(newValues[triple.predicate.toNT()] != null) {
+ if(newValues[triple.predicate.toNT()].constructor === Array) {
+ // more than one, added to array.
+ // @todo what if named nodes and literals are mixed?
+ newValues[triple.predicate.toNT()].push(triple.object.toNT());
+ newValues[triple.predicate.toNT()].sort();
+ } else {
+ newValues[triple.predicate.toNT()] = [newValues[triple.predicate.toNT()], triple.object.toNT()];
+ }
+
+ } else {
+ newValues[triple.predicate.toNT()] = triple.object.toNT();
+ }
} else {
if(skoResource.defaultLanguage() != null) {
if(newValues[triple.predicate.toNT()] == null || triple.object.language == skoResource.defaultLanguage()) {
- sko.log(" "+triple.predicate.toNT()+" -> "+triple.object.valueOf());
- newValues[triple.predicate.toNT()] = triple.object.valueOf();
- newValuesLangs[triple.predicate.toNT()] = triple.object.language;
+ if(newValues[triple.predicate.toNT()] != null) {
+ if(newValues[triple.predicate.toNT()].constructor === Array) {
+ // more than one, added to array.
+ // The value in the array cannot have a null lang
+ // @todo what if named nodes and literals are mixed?
+ newValues[triple.predicate.toNT()].push(triple.object.valueOf());
+ newValues[triple.predicate.toNT()].sort();
+ } else {
+ if(newValuesLangs[triple.predicate.toNT()] != triple.object.language) {
+ // replace old value (no lang) by a new value with lang
+ newValues[triple.predicate.toNT()] = triple.object.valueOf();
+ newValuesLangs[triple.predicate.toNT()] = triple.object.language;
+ } else {
+ // last value was a single value with the correct lang -> now is an array
+ newValues[triple.predicate.toNT()] = [newValues[triple.predicate.toNT()], triple.object.valueOf()];
+ }
+ }
+ } else {
+ // set up a default value, with null or correct lang
+ sko.log(" "+triple.predicate.toNT()+" -> "+triple.object.valueOf());
+ newValues[triple.predicate.toNT()] = triple.object.valueOf();
+ newValuesLangs[triple.predicate.toNT()] = triple.object.language;
+ }
}
} else {
- if(newValues[triple.predicate.toNT()] == null || triple.object.language == null) {
- sko.log(" "+triple.predicate.toNT()+" -> "+triple.object.valueOf());
- newValues[triple.predicate.toNT()] = triple.object.valueOf();
- newValuesLangs[triple.predicate.toNT()] = triple.object.language;
- }
+ if(newValues[triple.predicate.toNT()] == null || triple.object.language == null) {
+ if(newValues[triple.predicate.toNT()] != null) {
+ if(newValues[triple.predicate.toNT()].constructor === Array) {
+ // more than one, added to array.
+ // @todo what if named nodes and literals are mixed?
+ newValues[triple.predicate.toNT()].push(triple.object.valueOf());
+ newValues[triple.predicate.toNT()].sort();
+ } else {
+ if(newValuesLangs[triple.predicate.toNT()] != null) {
+ // replace old value (with lang) by a new value with no lang
+ newValues[triple.predicate.toNT()] = triple.object.valueOf();
+ newValuesLangs[triple.predicate.toNT()] = triple.object.language;
+ } else {
+ // last value was a single value with the correct lang -> now is an array
+ newValues[triple.predicate.toNT()] = [newValues[triple.predicate.toNT()], triple.object.valueOf()];
+ }
+
+ }
+ } else {
+ sko.log(" "+triple.predicate.toNT()+" -> "+triple.object.valueOf());
+ newValues[triple.predicate.toNT()] = triple.object.valueOf();
+ newValuesLangs[triple.predicate.toNT()] = triple.object.language;
+ }
+ }
}
}
});
@@ -3365,12 +3474,21 @@ sko.Resource.storeObserver = function(skoResource) {
for(var p in skoResource.valuesMap) {
if(newValues[p] != null) {
newValueMap[p] = newValues[p];
- if(skoResource.valuesMap[p] !== newValues[p]) {
- toUpdate.push(p);
- if(newValuesLangs[p] != null || skoResource.literalLangs[p] != null) {
- skoResource.literalLangs[p] = newValuesLangs[p];
+ if(skoResource.valuesMap[p] &&
+ skoResource.valuesMap[p].constructor === Array &&
+ newValue[p].constructor === Array) {
+ if(skoResource.valuesMap[p].length != newValue[p].length) {
+ // @todo check also the individual URIS
+ toUpdate.push(p);
+ }
+ } else {
+ if(skoResource.valuesMap[p] !== newValues[p]) {
+ toUpdate.push(p);
+ if(newValuesLangs[p] != null || skoResource.literalLangs[p] != null) {
+ skoResource.literalLangs[p] = newValuesLangs[p];
+ }
}
- }
+ }
} else {
toNullify.push(p);
delete skoResource.literalLangs[p];
diff --git a/build/output/knockout-latest.js b/build/output/knockout-latest.js
index 135d2fb..df71245 100644
--- a/build/output/knockout-latest.js
+++ b/build/output/knockout-latest.js
@@ -5,27 +5,27 @@
(function(window,undefined){
var ko=window.ko={};ko.exportSymbol=function(a,d){for(var c=a.split("."),b=window,e=0;eko.utils.arrayIndexOf(b,a[c])&&b.push(a[c]);return b},arrayMap:function(a,b){for(var a=a||[],c=[],d=0,e=a.length;da.length?!1:a.substring(0,b.length)===b},evalWithinScope:function(a,b,c){if(void 0===b)return(new Function("return "+
-a))();b.skonode=c;return(new Function("__SKO__sc","with(__SKO__sc){ var innerNode=skonode; return ("+a+") }"))(b)},domNodeIsContainedBy:function(a,b){if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;null!=a;){if(a==b)return!0;a=a.parentNode}return!1},domNodeIsAttachedToDocument:function(a){return ko.utils.domNodeIsContainedBy(a,document)},registerEventHandler:function(b,c,d){if("undefined"!=typeof jQuery){if(a(b,c))var e=d,d=function(a,b){var c=this.checked;if(b)this.checked=
-!0!==b.checkedStateBeforeEvent;e.call(this,a);this.checked=c};jQuery(b).bind(c,d)}else if("function"==typeof b.addEventListener)b.addEventListener(c,d,!1);else if("undefined"!=typeof b.attachEvent)b.attachEvent("on"+c,function(a){d.call(b,a)});else throw Error("Browser doesn't support addEventListener or attachEvent");},triggerEvent:function(b,c){if(!b||!b.nodeType)throw Error("element must be a DOM node when calling triggerEvent");if("undefined"!=typeof jQuery){var d=[];a(b,c)&&d.push({checkedStateBeforeEvent:b.checked});
-jQuery(b).trigger(c,d)}else if("function"==typeof document.createEvent)if("function"==typeof b.dispatchEvent)d=document.createEvent(g[c]||"HTMLEvents"),d.initEvent(c,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(d);else throw Error("The supplied element doesn't support dispatchEvent");else if("undefined"!=typeof b.fireEvent){if("click"==c&&"INPUT"==b.tagName&&("checkbox"==b.type.toLowerCase()||"radio"==b.type.toLowerCase()))b.checked=!0!==b.checked;b.fireEvent("on"+c)}else throw Error("Browser doesn't support triggering events");
-},unwrapObservable:function(a){return ko.isObservable(a)?a():a},domNodeHasCssClass:function(a,b){var c=(a.className||"").split(/\s+/);return 0<=ko.utils.arrayIndexOf(c,b)},toggleDomNodeCssClass:function(a,b,c){var d=ko.utils.domNodeHasCssClass(a,b);if(c&&!d)a.className=(a.className||"")+" "+b;else if(d&&!c){for(var c=(a.className||"").split(/\s+/),d="",e=0;eko.utils.arrayIndexOf(b,a[c])&&b.push(a[c]);return b},arrayMap:function(a,b){for(var a=a||[],c=[],e=0,d=a.length;ea.length?!1:a.substring(0,b.length)===b},evalWithinScope:function(a,b,c){if(void 0===b)return(new Function("return "+
+a))();b.skonode=c;return(new Function("__SKO__sc","with(__SKO__sc){ var innerNode=skonode; return ("+a+") }"))(b)},domNodeIsContainedBy:function(a,b){if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;null!=a;){if(a==b)return!0;a=a.parentNode}return!1},domNodeIsAttachedToDocument:function(a){return ko.utils.domNodeIsContainedBy(a,document)},registerEventHandler:function(b,c,e){if("undefined"!=typeof jQuery){if(a(b,c))var d=e,e=function(a,b){var c=this.checked;if(b)this.checked=
+!0!==b.checkedStateBeforeEvent;d.call(this,a);this.checked=c};jQuery(b).bind(c,e)}else if("function"==typeof b.addEventListener)b.addEventListener(c,e,!1);else if("undefined"!=typeof b.attachEvent)b.attachEvent("on"+c,function(a){e.call(b,a)});else throw Error("Browser doesn't support addEventListener or attachEvent");},triggerEvent:function(b,c){if(!b||!b.nodeType)throw Error("element must be a DOM node when calling triggerEvent");if("undefined"!=typeof jQuery){var e=[];a(b,c)&&e.push({checkedStateBeforeEvent:b.checked});
+jQuery(b).trigger(c,e)}else if("function"==typeof document.createEvent)if("function"==typeof b.dispatchEvent)e=document.createEvent(g[c]||"HTMLEvents"),e.initEvent(c,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(e);else throw Error("The supplied element doesn't support dispatchEvent");else if("undefined"!=typeof b.fireEvent){if("click"==c&&"INPUT"==b.tagName&&("checkbox"==b.type.toLowerCase()||"radio"==b.type.toLowerCase()))b.checked=!0!==b.checked;b.fireEvent("on"+c)}else throw Error("Browser doesn't support triggering events");
+},unwrapObservable:function(a){return ko.isObservable(a)?a():a},domNodeHasCssClass:function(a,b){var c=(a.className||"").split(/\s+/);return 0<=ko.utils.arrayIndexOf(c,b)},toggleDomNodeCssClass:function(a,b,c){var e=ko.utils.domNodeHasCssClass(a,b);if(c&&!e)a.className=(a.className||"")+" "+b;else if(e&&!c){for(var c=(a.className||"").split(/\s+/),e="",d=0;d",""]||!d.indexOf("
",""]||(!d.indexOf("
","
"]||[0,"",""];for(c.innerHTML=d[1]+a+d[2];d[0]--;)c=c.lastChild;a=ko.utils.makeArray(c.childNodes)}return a};ko.utils.setHtml=
-function(a,d){ko.utils.emptyDomNode(a);if(null!==d&&void 0!==d)if("string"!=typeof d&&(d=d.toString()),"undefined"!=typeof jQuery)jQuery(a).html(d);else for(var c=ko.utils.parseHtmlFragment(d),b=0;b",">"))}else for(var b=ko.utils.parseHtmlFragment(d),e=0;e"},unmemoize:function(a,
d){var g=c[a];if(void 0===g)throw Error("Couldn't find any memo with ID "+a+". Perhaps it's already been unmemoized.");try{return g.apply(null,d||[]),!0}finally{delete c[a]}},unmemoizeDomNodeAndDescendants:function(a,c){var g=[];d(a,g);for(var h=0,f=g.length;h"==a[a.length-1]?!0:null!==a.match(b)}var c=/\[ko_token_(\d+)\]/g,b=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i,e=["true","false"];return{parseJson:function(b){b=ko.utils.stringTrim(b);if(3>b.length)return{};for(var c=[],d=null,e,i,k="{"==b.charAt(0)?1:0;k";break;case "{":d=k;i=1;e="}";break;case "[":d=k,e="]"}else if("}"==e&&"{"==m)i++;else if("}"==e&&"}"==m&&1"===k[k.length-1]&&"about"!==i&&"rel"!==i?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; sko.current().tryProperty('"+k+"') = __ko_value; }"):null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&"about"!==i&&"rel"!==i?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; sko.current().tryProperty('"+
-k+"') = __ko_value; }"):"<"===k[0]&&">"===k[k.length-1]&&("about"===i||"rel"===i)||"["===k[0]&&"]"===k[k.length-1]&&("about"===i||"rel"===i)||(/tryProperty\([^)]+\)$/.test(k)||/prop\([^)]+\)$/.test(k)?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; "+k+"(__ko_value); }"):b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; "+k+" = __ko_value; }")));e?e=!1:c+=", ";c="<"===k[0]&&">"===k[k.length-
-1]&&"about"!==i&&"rel"!==i?c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return sko.current().tryProperty('"+k+"') })()":null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&"about"!==i&&"rel"!==i?c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return sko.current().tryProperty('"+k+"') })()":"<"===k[0]&&">"===k[k.length-1]&&("about"===i||"rel"===i)?c+i+": '"+k.slice(1,k.length-1)+"'":null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&
-("about"===i||"rel"===i)?c+i+": sko.rdf.prefixes.resolve('"+k.slice(1,k.length-1)+"')":c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return "+k+" })()"}a=c;0)['"]?/g,c="",d=b.exec(a);null!=d;){if(("'"===d[0][0]||'"'===d[0][0])&&("'"===d[0][d[0].length-1]||'"'===d[0][d[0].length-1]))a=a.split(d[0]),c=c+a[0]+d[0],a=a[1];else var e=d[0],d=d.index,c=a.substring(0,d)+"sko.current().tryProperty('"+e+"')",a=a.substring(d+e.length);d=b.exec(a)}return c+a},insertPropertyReaderWritersIntoJson:function(a){var a=ko.jsonExpressionRewriting.parseJson(a),b=[],c="",e=!0,i;for(i in a){var k=a[i],k=this.parseURIsInJSONString(k);d(k)&&(0<
+b.length&&b.push(", "),"<"===k[0]&&">"===k[k.length-1]&&"about"!==i&&"rel"!==i?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; sko.current().tryProperty('"+k+"') = __ko_value; }"):null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&"about"!==i&&"rel"!==i?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; sko.current().tryProperty('"+k+"') = __ko_value; }"):"<"===k[0]&&">"===k[k.length-
+1]&&("about"===i||"rel"===i)||"["===k[0]&&"]"===k[k.length-1]&&("about"===i||"rel"===i)||(/tryProperty\([^)]+\)$/.test(k)||/prop\([^)]+\)$/.test(k)?b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; "+k+"(__ko_value); }"):b.push(i+" : function(__ko_value) { sko.current = function() { return sko.currentResource(innerNode); }; "+k+" = __ko_value; }")));e?e=!1:c+=", ";c="<"===k[0]&&">"===k[k.length-1]&&"about"!==i&&"rel"!==i?c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return sko.current().tryProperty('"+
+k+"') })()":null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&"about"!==i&&"rel"!==i?c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return sko.current().tryProperty('"+k+"') })()":"<"===k[0]&&">"===k[k.length-1]&&("about"===i||"rel"===i)?c+i+": '"+k.slice(1,k.length-1)+"'":null!=k.match(/^\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]$/)&&("about"===i||"rel"===i)?c+i+": sko.rdf.prefixes.resolve('"+k.slice(1,k.length-1)+"')":c+i+": (function(){ sko.current = function() { return sko.currentResource(innerNode); }; return "+
+k+" })()"}a=c;0"),!1)}};ko.bindingHandlers.uniqueName.currentIndex=0;
ko.bindingHandlers.checked={init:function(a,d,c){ko.utils.registerEventHandler(a,"click",function(){var b;if("checkbox"==a.type)b=a.checked;else if("radio"==a.type&&a.checked)b=a.value;else return;var e=d();"checkbox"==a.type&&ko.utils.unwrapObservable(e)instanceof Array?(b=ko.utils.arrayIndexOf(ko.utils.unwrapObservable(e),a.value),a.checked&&0>b?e.push(a.value):!a.checked&&0<=b&&e.splice(b,1)):ko.isWriteableObservable(e)?e()!==b&&e(b):(e=c(),e._ko_property_writers&&e._ko_property_writers.checked&&
e._ko_property_writers.checked(b))});"radio"==a.type&&!a.name&&ko.bindingHandlers.uniqueName.init(a,function(){return!0})},update:function(a,d){var c=ko.utils.unwrapObservable(d());if("checkbox"==a.type)a.checked=c instanceof Array?0<=ko.utils.arrayIndexOf(c,a.value):c,c&&ko.utils.isIe6&&a.mergeAttributes(document.createElement(""),!1);else if("radio"==a.type)a.checked=a.value==c,a.value==c&&(ko.utils.isIe6||ko.utils.isIe7)&&a.mergeAttributes(document.createElement(""),
-!1)}};ko.bindingHandlers.attr={update:function(a,d){var c=ko.utils.unwrapObservable(d())||{},b;for(b in c)if("string"==typeof b){var e=ko.utils.unwrapObservable(c[b]);!1===e||null===e||void 0===e?a.removeAttribute(b):a.setAttribute(b,e.toString())}}};
+!1)}};ko.bindingHandlers.attr={update:function(a,d){var c=ko.utils.unwrapObservable(d())||{},b;for(b in c)if("string"==typeof b){var e=ko.utils.unwrapObservable(c[b]);if(!1===e||null===e||void 0===e)a.removeAttribute(b);else var g=e.toString();"<"===g[0]&&">"===g[g.length-1]&&(g=g.substring(1,g.length-1));a.setAttribute(b,g)}}};
ko.templateEngine=function(){this.renderTemplate=function(){throw"Override renderTemplate in your ko.templateEngine subclass";};this.isTemplateRewritten=function(){throw"Override isTemplateRewritten in your ko.templateEngine subclass";};this.rewriteTemplate=function(){throw"Override rewriteTemplate in your ko.templateEngine subclass";};this.createJavaScriptEvaluatorBlock=function(){throw"Override createJavaScriptEvaluatorBlock in your ko.templateEngine subclass";}};
ko.exportSymbol("ko.templateEngine",ko.templateEngine);
ko.templateRewriting=function(){var a=/(<[a-z]+\d*(\s+(?!data-bind=)[a-z0-9\-]+(=(\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\5/gi;return{ensureTemplateIsRewritten:function(a,c){c.isTemplateRewritten(a)||c.rewriteTemplate(a,function(a){return ko.templateRewriting.memoizeBindingAttributeSyntax(a,c)})},memoizeBindingAttributeSyntax:function(d,c){return d.replace(a,function(a,d,g,h,f,j,i){a=ko.jsonExpressionRewriting.insertPropertyReaderWritersIntoJson(i);return c.createJavaScriptEvaluatorBlock("ko.templateRewriting.applyMemoizedBindingsToNextSibling(function() { return (function() { var innerNode=skonode; return { "+
a+" } })() })")+d})},applyMemoizedBindingsToNextSibling:function(a){return ko.memoization.memoize(function(c,b){c.nextSibling&&sko.traceResources(c.nextSibling,b,function(){sko.traceRelations(c.nextSibling,b,function(){ko.applyBindingsToNode(c.nextSibling,a,b)})})})}}}();ko.exportSymbol("ko.templateRewriting",ko.templateRewriting);ko.exportSymbol("ko.templateRewriting.applyMemoizedBindingsToNextSibling",ko.templateRewriting.applyMemoizedBindingsToNextSibling);
(function(){function a(a,b,e,g,h){var f=ko.utils.unwrapObservable(g),h=h||{},j=h.templateEngine||d;ko.templateRewriting.ensureTemplateIsRewritten(e,j);e=j.renderTemplate(e,f,h);if("number"!=typeof e.length||0 "+e+" : "+b+" 8b");sko.aboutResourceMap[e]=new sko.Resource(e,b,c)})):sko.log("*** Related resource hasn't changed"),b;if(null==b){sko.log("*** related resource is null");sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL");var c=sko.nextBlankLabel();sko.log(" ** setting parent node related resource to "+
c);a[h](c)}else sko.aboutResourceMap[e]?(sko.log("*** setting new value for related resource "+c),sko.log(" ------------\> "+e+" : "+c+" 9"),sko.aboutResourceMap[e].about(c)):sko.log("!! Should I create the new blank node?");return c}sko.log("!!! parent resource doest not link to the related resource")}else sko.log("!!! impossible to find parent resource")},write:function(a){null==a&&(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),a=sko.nextBlankLabel());a=sko.NTUri(a);sko.log("*** OBSERVABLE WRITING RELATED DEPENDING NODE ABOT ID:"+
e+" URI -> "+a);var b=sko.currentResource(jQuery(d).parent().toArray()[0]);null!=b?(sko.log("*** Found parent resource: "+b.about()),b[g]?(sko.log("*** Setting new related resource in parent resource found: "+a),b[g](a)):sko.log("!!! parent resource doest not link to the related resource")):sko.log("!!! impossible to find parent resource")},owner:c});c=sko.about[e].subscribe(function(a){sko.log("*** OBSERVING RELATED NODE ABOT ID:"+e+" new value -> "+a);null==a&&(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),
-a=sko.nextBlankLabel());a=sko.NTUri(a);null!=sko.about[e]()?sko.plainUri(a)!==sko.plainUri(sko.about[e]())&&sko.store.node(sko.plainUri(a),function(b,c){b?(c.toArray(),sko.log(" ------------\> "+e+" : "+h+" 10"),sko.aboutResourceMap[e].about(h)):sko.log("Error updating 1 resource for URI:"+a+" in SKO about related node observer")}):sko.log("!! this resource is now null, should be removed from list of resources?")})}else sko.about[e]=ko.dependentObservable({read:function(){var b=a(),b=sko.NTUri(b);
-sko.log("*** OBSERVABLE READING RELATED DEPENDING NODE ABOT ID:"+e+" URI -> "+b);null==b&&(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),b=sko.nextBlankLabel());var c=sko.currentResource(jQuery(d).parent().toArray()[0]);if(null!=c){sko.log("*** Found parent resource: "+c.about());if(c[b]){var g=c[b]();sko.log("*** found related resource: "+g);sko.store.node(sko.plainUri(g),function(a,b){sko.log(" ------------\> "+e+" : "+g+" 11");sko.aboutResourceMap[e]=new sko.Resource(e,g,b)});return g}sko.log("!!! parent resource doest not link to the related resource")}else sko.log("!!! impossible to find parent resource")},
+a=sko.nextBlankLabel());a=sko.NTUri(a);null!=sko.about[e]()?sko.plainUri(a)!==sko.plainUri(sko.about[e]())&&sko.store.node(sko.plainUri(a),function(b,c){b?(c.toArray(),sko.log(" ------------\> "+e+" : "+h+" 10"),sko.aboutResourceMap[e].about(h)):sko.log("Error updating 1 resource for URI:"+a+" in SKO about related node observer")}):sko.log("!! this resource is now null, should be removed from list of resources?")})}else sko.about[e]=ko.dependentObservable({read:function(){var b;null!=a?(b=a(),b=sko.NTUri(b),
+sko.log("*** OBSERVABLE READING RELATED DEPENDING NODE ABOT ID:"+e+" URI -> "+b)):(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),b=sko.nextBlankLabel());var c=sko.currentResource(jQuery(d).parent().toArray()[0]);if(null!=c){sko.log("*** Found parent resource: "+c.about());if(c[b]){var g=c[b]();sko.log("*** found related resource: "+g);sko.store.node(sko.plainUri(g),function(a,b){sko.log(" ------------\> "+e+" : "+g+" 11");sko.aboutResourceMap[e]=new sko.Resource(e,g,b)});return g}sko.log("!!! parent resource doest not link to the related resource")}else sko.log("!!! impossible to find parent resource")},
write:function(b){var b=sko.NTUri(b),c=sko.currentResource(jQuery(d).parent().toArray()[0]);sko.log("*** OBSERVABLE WRITING RELATED DEPENDING NODE ABOT ID:"+e+" URI -> "+b);null==b&&(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),b=sko.nextBlankLabel());null!=c?(sko.log("*** Found parent resource: "+c.about()),c[a()]?(sko.log("*** Setting new related resource in parent resource found: "+b),c[a()](b),a(b)):sko.log("!!! parent resource doest not link to the related resource")):sko.log("!!! impossible to find parent resource")},
owner:c}),c=sko.about[e].subscribe(function(a){a=sko.NTUri(a);sko.log("*** OBSERVING RELATED NODE (F) ABOT ID:"+e+" new value -> "+a);null==a&&(sko.log(" ** NEXT URI IS NULL, GEN BLANK LABEL"),a=sko.nextBlankLabel());sko.plainUri(a)!=sko.plainUri(sko.about[e]())?sko.store.node(sko.plainUri(a),function(b,c){if(b){var d=c.toArray()[0].subject.valueOf();sko.log(" ------------\> "+e+" : "+d+" 12");sko.aboutResourceMap[e].about(d)}else sko.log("Error updating 2 resource for URI:"+a+" in SKO about related node observer")}):
sko.log("*** Related about resource hasn't changed")});sko.aboutResourceSubscriptionMap[e]=c;b(e)};sko.plainUri=function(a){if("<"===a[0]&&">"==a[a.length-1])return a.slice(1,a.length-1);if(null!=a.match(/\[[^,;"\]\}\{\[\.:]+:[^,;"\}\]\{\[\.:]+\]/)){a=a.slice(1,a.length-1);resolved=sko.rdf.prefixes.resolve(a);if(null==resolved)throw"The CURIE "+a+" cannot be resolved";return resolved}return a};
@@ -134,8 +135,10 @@ d&&!sko.isSKOBlankNode(d)){var c='"'+this.valuesMap[a]+'"',d='"'+d+'"';null!=thi
sko.Resource.prototype.disconnect=function(){sko.log(" ** DISCONNECTING");sko.store.stopObservingNode(this.storeObserverFn);sko.log(" ** disconnected STORE");for(var a=0;a "+d.toArray().length);d.forEach(function(d){if("NamedNode"===d.object.interfaceName)sko.log(" "+d.predicate.toNT()+" -> "+d.object.toNT()),c[d.predicate.toNT()]=d.object.toNT();else if(null!=a.defaultLanguage()){if(null==c[d.predicate.toNT()]||d.object.language==a.defaultLanguage())sko.log(" "+
-d.predicate.toNT()+" -> "+d.object.valueOf()),c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language}else if(null==c[d.predicate.toNT()]||null==d.object.language)sko.log(" "+d.predicate.toNT()+" -> "+d.object.valueOf()),c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language});var e={},d=[],g=[],h=[],f;for(f in a.valuesMap)if(null!=c[f]){if(e[f]=c[f],a.valuesMap[f]!==c[f]&&(g.push(f),null!=b[f]||null!=a.literalLangs[f]))a.literalLangs[f]=b[f]}else d.push(f),
+sko.Resource.storeObserver=function(a){return function(d){sko.log("*** received notification change from STORE in resource "+a.about());if(0!==a.about().indexOf("_:sko")){var c={},b={};sko.log("*** triples in STORE resource -> "+d.toArray().length);d.forEach(function(d){if("NamedNode"===d.object.interfaceName)sko.log(" "+d.predicate.toNT()+" -> "+d.object.toNT()),null!=c[d.predicate.toNT()]?c[d.predicate.toNT()].constructor===Array?(c[d.predicate.toNT()].push(d.object.toNT()),c[d.predicate.toNT()].sort()):
+c[d.predicate.toNT()]=[c[d.predicate.toNT()],d.object.toNT()]:c[d.predicate.toNT()]=d.object.toNT();else if(null!=a.defaultLanguage()){if(null==c[d.predicate.toNT()]||d.object.language==a.defaultLanguage())null!=c[d.predicate.toNT()]?c[d.predicate.toNT()].constructor===Array?(c[d.predicate.toNT()].push(d.object.valueOf()),c[d.predicate.toNT()].sort()):b[d.predicate.toNT()]!=d.object.language?(c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language):c[d.predicate.toNT()]=[c[d.predicate.toNT()],
+d.object.valueOf()]:(sko.log(" "+d.predicate.toNT()+" -> "+d.object.valueOf()),c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language)}else if(null==c[d.predicate.toNT()]||null==d.object.language)null!=c[d.predicate.toNT()]?c[d.predicate.toNT()].constructor===Array?(c[d.predicate.toNT()].push(d.object.valueOf()),c[d.predicate.toNT()].sort()):null!=b[d.predicate.toNT()]?(c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language):c[d.predicate.toNT()]=
+[c[d.predicate.toNT()],d.object.valueOf()]:(sko.log(" "+d.predicate.toNT()+" -> "+d.object.valueOf()),c[d.predicate.toNT()]=d.object.valueOf(),b[d.predicate.toNT()]=d.object.language)});var e={},d=[],g=[],h=[],f;for(f in a.valuesMap)if(null!=c[f])if(e[f]=c[f],a.valuesMap[f]&&a.valuesMap[f].constructor===Array&&newValue[f].constructor===Array)a.valuesMap[f].length!=newValue[f].length&&g.push(f);else{if(a.valuesMap[f]!==c[f]&&(g.push(f),null!=b[f]||null!=a.literalLangs[f]))a.literalLangs[f]=b[f]}else d.push(f),
delete a.literalLangs[f];for(f in c)null==a.valuesMap[f]&&(h.push(f),e[f]=c[f],a.literalLangs[f]=b[f]);a.valuesMap=e;for(f=0;f NULL"),a[d[f]](null);for(f=0;f "+a.valuesMap[g[f]]),a[g[f]](a.valuesMap[g[f]]);for(f=0;f "+a.valuesMap[h[f]]),a[h[f]]=ko.observable(a.valuesMap[h[f]]),a[sko.plainUri(h[f])]=a[h[f]];sko.Class.check(a);sko.log("*** END MODIFICATION")}}};
sko.traceResources=function(a,d,c){sko.log("** TRACING:");sko.log(a);var b=[];(jQuery(a).attr("about")||jQuery(a).attr("data-bind"))&&b.push(a);var a=jQuery(a).find("*[about], *[data-bind]").toArray(),b=b.concat(a),e=function(a,c){node=b[c._i];var f=jQuery(node).attr("about");null==jQuery(node).attr("aboutId")?(null==f&&(dataBind=jQuery(node).attr("data-bind"),null!=dataBind&&-1!=dataBind.indexOf("about:")&&(f=/s*([^ ]+)s*,?/.exec(dataBind.split("about:")[1])[0],","===f[f.length-1]&&(f=f.slice(0,
f.length-1)))),null!=f&&""!=f?("string"===typeof f&&"<"!==f[0]&&">"!==f[f.length-1]&&"["!==f[0]&&"]"!==f[f.length-1]&&(f=d[f]),sko.about(f,d,function(b){jQuery(node).attr("aboutId",b);a(e,c)})):a(e,c)):a(e,c)};Utils.repeat(0,b.length,e,function(){c()})};
diff --git a/deps/rdf_store.js b/deps/rdf_store.js
index 17729b6..72c4350 100644
--- a/deps/rdf_store.js
+++ b/deps/rdf_store.js
@@ -1,5 +1,11 @@
(function() {
+
+ if(typeof(console)=='undefined') {
+ console = {};
+ console.log = function(e){};
+ }
+
var Utils = {};
@@ -22,9 +28,13 @@ Utils.recur = function(c){
}
};
+Utils.clone = function(o) {
+ return JSON.parse(JSON.stringify(o));
+};
+
Utils.shuffle = function(o){ //v1.0
- for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
- return o;
+ for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x){};
+ return o;
};
Utils.include = function(a,v) {
@@ -64,7 +74,7 @@ Utils.repeat = function(c,max,floop,fend,env) {
floop(function(floop,env){
// avoid stack overflow
// deadly hack
- Utils.recur(function(){ Utils.repeat(c+1, max, floop, fend, env) });
+ Utils.recur(function(){ Utils.repeat(c+1, max, floop, fend, env); });
},env);
} else {
fend(env);
@@ -105,7 +115,7 @@ Utils.seq = function() {
}, function(){
callback();
});
- }
+ };
};
@@ -216,12 +226,12 @@ Utils.parseISO8601Components = function (str) {
minutes = Number(d[8]);
seconds = Number(d[10]);
- if(d[12]) { millisecs = Number("0." + d[12]) * 1000 }
+ if(d[12]) { millisecs = Number("0." + d[12]) * 1000; }
if(d[13]==="Z") {
timezone = 0;
} else if (d[14]) {
- var timezone = 0;
+ timezone = 0;
if(d[17]) {
timezone = Number(d[17]);
}
@@ -290,7 +300,6 @@ Utils.compareDateComponents = function(stra,strb) {
};
// RDF utils
-
Utils.lexicalFormLiteral = function(term, env) {
var value = term.value;
var lang = term.lang;
@@ -300,23 +309,32 @@ Utils.lexicalFormLiteral = function(term, env) {
if(value != null && type != null && typeof(type) != 'string') {
var typeValue = type.value;
- if(typeValue != null) {
- indexedValue = '"' + term.value + '"^^<' + typeValue + '>';
- } else {
+ if(typeValue == null) {
var typePrefix = type.prefix;
var typeSuffix = type.suffix;
var resolvedPrefix = env.namespaces[typePrefix];
term.type = resolvedPrefix+typeSuffix;
- indexedValue = '"' + term.value + '"^^<' + resolvedPrefix + typeSuffix + '>';
+ typeValue = resolvedPrefix+typeSuffix;
}
+ // normalization
+ if(typeValue.indexOf('hexBinary') != -1) {
+ indexedValue = '"' + term.value.toLowerCase() + '"^^<' + typeValue + '>';
+ } else {
+ indexedValue = '"' + term.value + '"^^<' + typeValue + '>';
+ }
} else {
if(lang == null && type == null) {
indexedValue = '"' + value + '"';
} else if(type == null) {
indexedValue = '"' + value + '"' + "@" + lang;
} else {
- indexedValue = '"' + term.value + '"^^<'+type+'>';
+ // normalization
+ if(type.indexOf('hexBinary') != -1) {
+ indexedValue = '"' + term.value.toLowerCase() + '"^^<'+type+'>';
+ } else {
+ indexedValue = '"' + term.value + '"^^<'+type+'>';
+ }
}
}
return indexedValue;
@@ -335,10 +353,12 @@ Utils.lexicalFormBaseUri = function(term, env) {
var resolvedPrefix = env.namespaces[prefix];
if(resolvedPrefix != null) {
uri = resolvedPrefix+suffix;
+ } else {
+ uri = prefix+":"+suffix;
}
} else {
//console.log(" - URI is not prefixed");
- uri = term.value
+ uri = term.value;
}
if(uri===null) {
@@ -360,15 +380,14 @@ Utils.lexicalFormBaseUri = function(term, env) {
Utils.lexicalFormTerm = function(term, ns) {
if(term.token === 'uri') {
- return {'uri': Utils.lexicalFormBaseUri(term, ns)}
+ return {'uri': Utils.lexicalFormBaseUri(term, ns)};
} else if(term.token === 'literal') {
return {'literal': Utils.lexicalFormLiteral(term, ns)};
} else if(term.token === 'blank') {
- var label = '_:'+ns.blank;
- ns.blank = ns.blank+1;
+ var label = '_:'+term.value;
return {'blank': label};
} else {
- callback(false, 'Token of kind '+term.token+' cannot transformed into its lexical form');
+ throw "Error, cannot get lexical form of unknown token: "+term.token;
}
};
@@ -411,7 +430,7 @@ Utils.hashTerm = function(term) {
}
return term;
}
-}
+};
// end of ./src/js-trees/src/utils.js
// exports
@@ -421,7 +440,7 @@ var left = -1;
var right = 1;
-/*
+/**
* @doc
* Implementation based on
*
@@ -509,6 +528,12 @@ InMemoryBTree.Tree.prototype._updateRootNode = function(node) {
return node;
};
+InMemoryBTree.Tree.prototype.clear = function() {
+ this.root = this._allocateNode();
+ this.root.isLeaf = true;
+ this.root.level = 0;
+ this._updateRootNode(this.root);
+};
/**
* search
@@ -1127,8 +1152,8 @@ InMemoryBTree.Tree.prototype.audit = function(showOutput) {
if(n.isLeaf === false) {
for(var i=0; i check exists : hack only present in the inMemoryAsyncBTree implementation
+ var result = BaseTree.Tree.prototype.search.call(this, quad, true); // true -> check exists : not present in all the b-tree implementations, check first.
if(callback)
callback(result)
@@ -1411,7 +1438,13 @@ QuadIndex.Tree.prototype.search = function(quad, callback) {
};
QuadIndex.Tree.prototype.range = function(pattern, callback) {
- var result = this._rangeTraverse(this,this.root, pattern);
+ var result = null;
+ if(typeof(this.root)==='string') {
+ result = this._rangeTraverse(this,this._diskRead(this.root), pattern);
+ } else {
+ result = this._rangeTraverse(this,this.root, pattern);
+ }
+
if(callback)
callback(result);
@@ -1423,7 +1456,6 @@ QuadIndex.Tree.prototype._rangeTraverse = function(tree,node, pattern) {
var acum = [];
var pendingNodes = [node];
var node, idxMin, idxMax;
-
while(pendingNodes.length > 0) {
node = pendingNodes.shift();
idxMin = 0;
@@ -1440,7 +1472,8 @@ QuadIndex.Tree.prototype._rangeTraverse = function(tree,node, pattern) {
}
} else {
- var childNode = tree._diskRead(node.children[idxMin]);
+ var pointer = node.children[idxMin]
+ var childNode = tree._diskRead(pointer);
pendingNodes.push(childNode);
var idxMax = idxMin;
@@ -1456,7 +1489,6 @@ QuadIndex.Tree.prototype._rangeTraverse = function(tree,node, pattern) {
}
}
}
-
return acum;
};
@@ -1495,7 +1527,10 @@ QuadBackend.QuadBackend = function(configuration, callback) {
for(var i=0; i>> 0;
+ if (typeof fun != "function")
+ throw new TypeError();
+
+ var res = [];
+ var thisp = arguments[1];
+ for (var i = 0; i < len; i++)
+ {
+ if (i in t)
+ {
+ var val = t[i]; // in case fun mutates this
+ if (fun.call(thisp, val, i, t))
+ res.push(val);
+ }
+ }
+
+ return res;
+ };
+ }
+
+}
+// define node.js module
+else if(typeof(module) !== 'undefined' && module.exports)
+{
+ var jsonld = {};
+ //module.exports = jsonld;
+ Exception = function(obj)
+ {
+ _setMembers(this, obj);
+ this.stack = new Error().stack;
+ };
+}
+
+
+jsonldParser = jsonld;
+
+var defaultContext = { "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "foaf": "http://xmlns.com/foaf/0.1/",
+ "cal": "http://www.w3.org/2002/12/cal/ical#",
+ "vcard": "http://www.w3.org/2006/vcard/ns# ",
+ "geo": "http://www.w3.org/2003/01/geo/wgs84_pos#",
+ "cc": "http://creativecommons.org/ns#",
+ "sioc": "http://rdfs.org/sioc/ns#",
+ "doap": "http://usefulinc.com/ns/doap#",
+ "com": "http://purl.org/commerce#",
+ "ps": "http://purl.org/payswarm#",
+ "gr": "http://purl.org/goodrelations/v1#",
+ "sig": "http://purl.org/signature#",
+ "ccard": "http://purl.org/commerce/creditcard#"
+ };
+
+/*
+ * Globals and helper functions.
+ */
+var ns =
+{
+ xsd: 'http://www.w3.org/2001/XMLSchema#'
};
-// imports
+var xsd =
+{
+ 'boolean': ns.xsd + 'boolean',
+ 'double': ns.xsd + 'double',
+ 'integer': ns.xsd + 'integer'
+};
-TurtleParser.parser = (function(){
- /* Generated by PEG.js 0.6.1 (http://pegjs.majda.cz/). */
-
- var result = {
- /*
- * Parses the input with a generated parser. If the parsing is successfull,
- * returns a value explicitly or implicitly specified by the grammar from
- * which the parser was generated (see |PEG.buildParser|). If the parsing is
- * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
- */
- innerParse: function(input, startRule) {
- var parseFunctions = {
- "ANON": parse_ANON,
- "BLANK_NODE_LABEL": parse_BLANK_NODE_LABEL,
- "BlankNode": parse_BlankNode,
- "BlankNodePropertyList": parse_BlankNodePropertyList,
- "BooleanLiteral": parse_BooleanLiteral,
- "COMMENT": parse_COMMENT,
- "Collection": parse_Collection,
- "DECIMAL": parse_DECIMAL,
- "DECIMAL_NEGATIVE": parse_DECIMAL_NEGATIVE,
- "DECIMAL_POSITIVE": parse_DECIMAL_POSITIVE,
- "DOUBLE": parse_DOUBLE,
- "DOUBLE_NEGATIVE": parse_DOUBLE_NEGATIVE,
- "DOUBLE_POSITIVE": parse_DOUBLE_POSITIVE,
- "ECHAR": parse_ECHAR,
- "EXPONENT": parse_EXPONENT,
- "GraphNode": parse_GraphNode,
- "GraphTerm": parse_GraphTerm,
- "INTEGER": parse_INTEGER,
- "INTEGER_NEGATIVE": parse_INTEGER_NEGATIVE,
- "INTEGER_POSITIVE": parse_INTEGER_POSITIVE,
- "IRI_REF": parse_IRI_REF,
- "IRIref": parse_IRIref,
- "LANGTAG": parse_LANGTAG,
- "NIL": parse_NIL,
- "NumericLiteral": parse_NumericLiteral,
- "NumericLiteralNegative": parse_NumericLiteralNegative,
- "NumericLiteralPositive": parse_NumericLiteralPositive,
- "NumericLiteralUnsigned": parse_NumericLiteralUnsigned,
- "ObjectList": parse_ObjectList,
- "PNAME_LN": parse_PNAME_LN,
- "PNAME_NS": parse_PNAME_NS,
- "PN_CHARS": parse_PN_CHARS,
- "PN_CHARS_BASE": parse_PN_CHARS_BASE,
- "PN_CHARS_U": parse_PN_CHARS_U,
- "PN_LOCAL": parse_PN_LOCAL,
- "PN_PREFIX": parse_PN_PREFIX,
- "PathAlternative": parse_PathAlternative,
- "PathElt": parse_PathElt,
- "PathEltOrInverse": parse_PathEltOrInverse,
- "PathMod": parse_PathMod,
- "PathNegatedPropertySet": parse_PathNegatedPropertySet,
- "PathOneInPropertySet": parse_PathOneInPropertySet,
- "PathPrimary": parse_PathPrimary,
- "PathSequence": parse_PathSequence,
- "PrefixedName": parse_PrefixedName,
- "PropertyList": parse_PropertyList,
- "PropertyListNotEmpty": parse_PropertyListNotEmpty,
- "PropertyListNotEmptyPath": parse_PropertyListNotEmptyPath,
- "PropertyListPath": parse_PropertyListPath,
- "RDFLiteral": parse_RDFLiteral,
- "STRING_LITERAL1": parse_STRING_LITERAL1,
- "STRING_LITERAL2": parse_STRING_LITERAL2,
- "STRING_LITERAL_LONG1": parse_STRING_LITERAL_LONG1,
- "STRING_LITERAL_LONG2": parse_STRING_LITERAL_LONG2,
- "String": parse_String,
- "TriplesBlock": parse_TriplesBlock,
- "TriplesNode": parse_TriplesNode,
- "TriplesSameSubject": parse_TriplesSameSubject,
- "VAR1": parse_VAR1,
- "VAR2": parse_VAR2,
- "VARNAME": parse_VARNAME,
- "Var": parse_Var,
- "VarOrIRIref": parse_VarOrIRIref,
- "VarOrTerm": parse_VarOrTerm,
- "Verb": parse_Verb,
- "VerbPath": parse_VerbPath,
- "WS": parse_WS,
- "base": parse_base,
- "directive": parse_directive,
- "prefixID": parse_prefixID,
- "statement": parse_statement,
- "turtleDoc": parse_turtleDoc
- };
-
- if (startRule !== undefined) {
- if (parseFunctions[startRule] === undefined) {
- throw new Error("Invalid rule name: " + quote(startRule) + ".");
- }
- } else {
- startRule = "turtleDoc";
+/**
+ * Sets a subject's property to the given object value. If a value already
+ * exists, it will be appended to an array.
+ *
+ * @param s the subject.
+ * @param p the property.
+ * @param o the object.
+ */
+var _setProperty = function(s, p, o)
+{
+ if(p in s)
+ {
+ if(s[p].constructor === Array)
+ {
+ s[p].push(o);
}
-
- var pos = 0;
- var reportMatchFailures = true;
- var rightmostMatchFailuresPos = 0;
- var rightmostMatchFailuresExpected = [];
- var cache = {};
-
- function padLeft(input, padding, length) {
- var result = input;
-
- var padLength = length - input.length;
- for (var i = 0; i < padLength; i++) {
- result = padding + result;
- }
-
- return result;
+ else
+ {
+ s[p] = [s[p], o];
}
-
- function escape(ch) {
- var charCode = ch.charCodeAt(0);
-
- if (charCode <= 0xFF) {
- var escapeChar = 'x';
- var length = 2;
- } else {
- var escapeChar = 'u';
- var length = 4;
- }
-
- return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
+ }
+ else
+ {
+ s[p] = o;
+ }
+};
+
+/**
+ * Clones an object, array, or string/number. If cloning an object, the keys
+ * will be sorted.
+ *
+ * @param value the value to clone.
+ *
+ * @return the cloned value.
+ */
+var _clone = function(value)
+{
+ var rval;
+
+ if(value.constructor === Object)
+ {
+ rval = {};
+ var keys = Object.keys(value).sort();
+ for(var i in keys)
+ {
+ var key = keys[i];
+ rval[key] = _clone(value[key]);
}
-
- function quote(s) {
- /*
- * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
- * string literal except for the closing quote character, backslash,
- * carriage return, line separator, paragraph separator, and line feed.
- * Any character may appear in the form of an escape sequence.
- */
- return '"' + s
- .replace(/\\/g, '\\\\') // backslash
- .replace(/"/g, '\\"') // closing quote character
- .replace(/\r/g, '\\r') // carriage return
- .replace(/\n/g, '\\n') // line feed
- .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
- + '"';
+ }
+ else if(value.constructor === Array)
+ {
+ rval = [];
+ for(var i in value)
+ {
+ rval[i] = _clone(value[i]);
+ }
+ }
+ else
+ {
+ rval = value;
+ }
+
+ return rval;
+};
+
+/**
+ * Gets the keywords from a context.
+ *
+ * @param ctx the context.
+ *
+ * @return the keywords.
+ */
+var _getKeywords = function(ctx)
+{
+ // TODO: reduce calls to this function by caching keywords in processor
+ // state
+
+ var rval =
+ {
+ '@id': '@id',
+ '@language': '@language',
+ '@literal': '@literal',
+ '@type': '@type'
+ };
+
+ if(ctx)
+ {
+ // gather keyword aliases from context
+ var keywords = {};
+ for(var key in ctx)
+ {
+ if(ctx[key].constructor === String && ctx[key] in rval)
+ {
+ keywords[ctx[key]] = key;
+ }
}
- function matchFailed(failure) {
- if (pos < rightmostMatchFailuresPos) {
- return;
- }
-
- if (pos > rightmostMatchFailuresPos) {
- rightmostMatchFailuresPos = pos;
- rightmostMatchFailuresExpected = [];
- }
-
- rightmostMatchFailuresExpected.push(failure);
+ // overwrite keywords
+ for(var key in keywords)
+ {
+ rval[key] = keywords[key];
}
-
- function parse_turtleDoc() {
- var cacheKey = 'turtleDoc@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result1 = [];
- var result2 = parse_statement();
- while (result2 !== null) {
- result1.push(result2);
- var result2 = parse_statement();
- }
- var result0 = result1 !== null
- ? (function(sts) {
- return sts;
- })(result1)
- : null;
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
+
+ return rval;
+};
+
+/**
+ * Gets the iri associated with a term.
+ *
+ * @param ctx the context.
+ * @param term the term.
+ *
+ * @return the iri or NULL.
+ */
+var _getTermIri = function(ctx, term)
+{
+ var rval = null;
+ if(term in ctx)
+ {
+ if(ctx[term].constructor === String)
+ {
+ rval = ctx[term];
}
-
- function parse_statement() {
- var cacheKey = 'statement@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos1 = pos;
- var result12 = [];
- var result19 = parse_WS();
- while (result19 !== null) {
- result12.push(result19);
- var result19 = parse_WS();
- }
- if (result12 !== null) {
- var result13 = parse_directive();
- if (result13 !== null) {
- var result14 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result14.push(result18);
- var result18 = parse_WS();
- }
- if (result14 !== null) {
- if (input.substr(pos, 1) === ".") {
- var result15 = ".";
- pos += 1;
- } else {
- var result15 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result15 !== null) {
- var result16 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result16.push(result17);
- var result17 = parse_WS();
- }
- if (result16 !== null) {
- var result11 = [result12, result13, result14, result15, result16];
- } else {
- var result11 = null;
- pos = savedPos1;
- }
- } else {
- var result11 = null;
- pos = savedPos1;
- }
- } else {
- var result11 = null;
- pos = savedPos1;
- }
- } else {
- var result11 = null;
- pos = savedPos1;
- }
- } else {
- var result11 = null;
- pos = savedPos1;
- }
- var result10 = result11 !== null
- ? (function(d) {
- return d;
- })(result11[1])
- : null;
- if (result10 !== null) {
- var result0 = result10;
- } else {
- var savedPos0 = pos;
- var result5 = [];
- var result9 = parse_WS();
- while (result9 !== null) {
- result5.push(result9);
- var result9 = parse_WS();
- }
- if (result5 !== null) {
- var result6 = parse_TriplesBlock();
- if (result6 !== null) {
- var result7 = [];
- var result8 = parse_WS();
- while (result8 !== null) {
- result7.push(result8);
- var result8 = parse_WS();
- }
- if (result7 !== null) {
- var result4 = [result5, result6, result7];
- } else {
- var result4 = null;
- pos = savedPos0;
- }
- } else {
- var result4 = null;
- pos = savedPos0;
+ else if(ctx[term].constructor === Object && '@id' in ctx[term])
+ {
+ rval = ctx[term]['@id'];
+ }
+ }
+ return rval;
+};
+
+/**
+ * Compacts an IRI into a term or prefix if it can be. IRIs will not be
+ * compacted to relative IRIs if they match the given context's default
+ * vocabulary.
+ *
+ * @param ctx the context to use.
+ * @param iri the IRI to compact.
+ * @param usedCtx a context to update if a value was used from "ctx".
+ *
+ * @return the compacted IRI as a term or prefix or the original IRI.
+ */
+var _compactIri = function(ctx, iri, usedCtx)
+{
+ var rval = null;
+
+ // check the context for a term that could shorten the IRI
+ // (give preference to terms over prefixes)
+ for(var key in ctx)
+ {
+ // skip special context keys (start with '@')
+ if(key.length > 0 && key[0] !== '@')
+ {
+ // compact to a term
+ if(iri === _getTermIri(ctx, key))
+ {
+ rval = key;
+ if(usedCtx !== null)
+ {
+ usedCtx[key] = _clone(ctx[key]);
}
- } else {
- var result4 = null;
- pos = savedPos0;
- }
- var result3 = result4 !== null
- ? (function(ts) {
- return ts;
- })(result4[1])
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_WS();
- if (result2 !== null) {
- var result1 = [];
- while (result2 !== null) {
- result1.push(result2);
- var result2 = parse_WS();
- }
- } else {
- var result1 = null;
+ break;
+ }
+ }
+ }
+
+ // term not found, if term is @type, use keyword
+ if(rval === null && iri === '@type')
+ {
+ rval = _getKeywords(ctx)['@type'];
+ }
+
+ // term not found, check the context for a prefix
+ if(rval === null)
+ {
+ for(var key in ctx)
+ {
+ // skip special context keys (start with '@')
+ if(key.length > 0 && key[0] !== '@')
+ {
+ // see if IRI begins with the next IRI from the context
+ var ctxIri = _getTermIri(ctx, key);
+ if(ctxIri !== null)
+ {
+ var idx = iri.indexOf(ctxIri);
+
+ // compact to a prefix
+ if(idx === 0 && iri.length > ctxIri.length)
+ {
+ rval = key + ':' + iri.substr(ctxIri.length);
+ if(usedCtx !== null)
+ {
+ usedCtx[key] = _clone(ctx[key]);
+ }
+ break;
+ }
}
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
+ }
+ }
+
+ // could not compact IRI
+ if(rval === null)
+ {
+ rval = iri;
+ }
+
+ return rval;
+};
+
+/**
+ * Expands a term into an absolute IRI. The term may be a regular term, a
+ * prefix, a relative IRI, or an absolute IRI. In any case, the associated
+ * absolute IRI will be returned.
+ *
+ * @param ctx the context to use.
+ * @param term the term to expand.
+ * @param usedCtx a context to update if a value was used from "ctx".
+ *
+ * @return the expanded term as an absolute IRI.
+ */
+var _expandTerm = function(ctx, term, usedCtx)
+{
+ var rval = term;
+
+ // get JSON-LD keywords
+ var keywords = _getKeywords(ctx);
+
+ // 1. If the property has a colon, it is a prefix or an absolute IRI:
+ var idx = term.indexOf(':');
+ if(idx !== -1)
+ {
+ // get the potential prefix
+ var prefix = term.substr(0, idx);
+
+ // expand term if prefix is in context, otherwise leave it be
+ if(prefix in ctx)
+ {
+ // prefix found, expand property to absolute IRI
+ var iri = _getTermIri(ctx, prefix);
+ rval = iri + term.substr(idx + 1);
+ if(usedCtx !== null)
+ {
+ usedCtx[prefix] = _clone(ctx[prefix]);
+ }
+ }
+ }
+ // 2. If the property is in the context, then it's a term.
+ else if(term in ctx)
+ {
+ rval = _getTermIri(ctx, term);
+ if(usedCtx !== null)
+ {
+ usedCtx[term] = _clone(ctx[term]);
+ }
+ }
+ // 3. The property is a keyword.
+ else
+ {
+ for(var key in keywords)
+ {
+ if(term === keywords[key])
+ {
+ rval = key;
+ break;
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Sorts the keys in a context.
+ *
+ * @param ctx the context to sort.
+ *
+ * @return the sorted context.
+ */
+var _sortContextKeys = function(ctx)
+{
+ // sort keys
+ var rval = {};
+ var keys = Object.keys(ctx).sort();
+ for(var k in keys)
+ {
+ var key = keys[k];
+ rval[key] = ctx[key];
+ }
+ return rval;
+};
+
+/**
+ * Gets whether or not a value is a reference to a subject (or a subject with
+ * no properties).
+ *
+ * @param value the value to check.
+ *
+ * @return true if the value is a reference to a subject, false if not.
+ */
+var _isReference = function(value)
+{
+ // Note: A value is a reference to a subject if all of these hold true:
+ // 1. It is an Object.
+ // 2. It is has an @id key.
+ // 3. It has only 1 key.
+ return (value !== null &&
+ value.constructor === Object &&
+ '@id' in value &&
+ Object.keys(value).length === 1);
+};
+
+/**
+ * Gets whether or not a value is a subject with properties.
+ *
+ * @param value the value to check.
+ *
+ * @return true if the value is a subject with properties, false if not.
+ */
+var _isSubject = function(value)
+{
+ var rval = false;
+
+ // Note: A value is a subject if all of these hold true:
+ // 1. It is an Object.
+ // 2. It is not a literal.
+ // 3. It has more than 1 key OR any existing key is not '@id'.
+ if(value !== null && value.constructor === Object && !('@literal' in value))
+ {
+ var keyCount = Object.keys(value).length;
+ rval = (keyCount > 1 || !('@id' in value));
+ }
+
+ return rval;
+};
+
+/*
+ * JSON-LD API.
+ */
+
+/**
+ * Normalizes a JSON-LD object.
+ *
+ * @param input the JSON-LD object to normalize.
+ *
+ * @return the normalized JSON-LD object.
+ */
+jsonld.normalize = function(input)
+{
+ return new Processor().normalize(input);
+};
+
+/**
+ * Removes the context from a JSON-LD object, expanding it to full-form.
+ *
+ * @param input the JSON-LD object to remove the context from.
+ *
+ * @return the context-neutral JSON-LD object.
+ */
+jsonld.expand = function(input)
+{
+ return new Processor().expand({}, null, input);
+};
+
+/**
+ * Expands the given JSON-LD object and then compacts it using the
+ * given context.
+ *
+ * @param ctx the new context to use.
+ * @param input the input JSON-LD object.
+ *
+ * @return the output JSON-LD object.
+ */
+jsonld.compact = function(ctx, input)
+{
+ var rval = null;
+
+ // TODO: should context simplification be optional? (ie: remove context
+ // entries that are not used in the output)
+
+ if(input !== null)
+ {
+ // fully expand input
+ input = jsonld.expand(input);
+
+ var tmp;
+ if(input.constructor === Array)
+ {
+ rval = [];
+ tmp = input;
+ }
+ else
+ {
+ tmp = [input];
}
- function parse_directive() {
- var cacheKey = 'directive@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result2 = parse_prefixID();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_base();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ // merge context if it is an array
+ if(ctx.constructor === Array)
+ {
+ ctx = jsonld.mergeContexts({}, ctx);
}
- function parse_base() {
- var cacheKey = 'base@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var result2 = [];
- var result7 = parse_WS();
- while (result7 !== null) {
- result2.push(result7);
- var result7 = parse_WS();
- }
- if (result2 !== null) {
- if (input.substr(pos, 5) === "@base") {
- var result3 = "@base";
- pos += 5;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"@base\"");
- }
- }
- if (result3 !== null) {
- var result6 = parse_WS();
- if (result6 !== null) {
- var result4 = [];
- while (result6 !== null) {
- result4.push(result6);
- var result6 = parse_WS();
- }
- } else {
- var result4 = null;
- }
- if (result4 !== null) {
- var result5 = parse_IRI_REF();
- if (result5 !== null) {
- var result1 = [result2, result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
+ for(var i in tmp)
+ {
+ // setup output context
+ var ctxOut = {};
+
+ // compact
+ var out = new Processor().compact(_clone(ctx), null, tmp[i], ctxOut);
+
+ // add context if used
+ if(Object.keys(ctxOut).length > 0)
+ {
+ // sort context keys
+ ctxOut = _sortContextKeys(ctxOut);
+
+ // sort keys
+ var keys = Object.keys(out);
+ keys.sort();
+
+ // put @context first
+ keys.unshift('@context');
+ out['@context'] = ctxOut;
+
+ // order keys in output
+ var ordered = {};
+ for(var k in keys)
+ {
+ var key = keys[k];
+ ordered[key] = out[key];
+ }
+ out = ordered;
+ }
+
+ if(rval === null)
+ {
+ rval = out;
+ }
+ else
+ {
+ rval.push(out);
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Merges one context with another.
+ *
+ * @param ctx1 the context to overwrite/append to.
+ * @param ctx2 the new context to merge onto ctx1.
+ *
+ * @return the merged context.
+ */
+jsonld.mergeContexts = function(ctx1, ctx2)
+{
+ // merge first context if it is an array
+ if(ctx1.constructor === Array)
+ {
+ ctx1 = jsonld.mergeContexts({}, ctx1);
+ }
+
+ // copy context to merged output
+ var merged = _clone(ctx1);
+
+ if(ctx2.constructor === Array)
+ {
+ // merge array of contexts in order
+ for(var i in ctx2)
+ {
+ merged = jsonld.mergeContexts(merged, ctx2[i]);
+ }
+ }
+ else
+ {
+ // if the new context contains any IRIs that are in the merged context,
+ // remove them from the merged context, they will be overwritten
+ for(var key in ctx2)
+ {
+ // ignore special keys starting with '@'
+ if(key.indexOf('@') !== 0)
+ {
+ for(var mkey in merged)
+ {
+ if(merged[mkey] === ctx2[key])
+ {
+ // FIXME: update related coerce rules
+ delete merged[mkey];
+ break;
+ }
}
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(i) {
- registerDefaultPrefix(i);
-
- base = {};
- base.token = 'base';
- base.value = i;
-
- return base;
- })(result1[3])
- : null;
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
}
-
- function parse_prefixID() {
- var cacheKey = 'prefixID@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var result2 = [];
- var result12 = parse_WS();
- while (result12 !== null) {
- result2.push(result12);
- var result12 = parse_WS();
- }
- if (result2 !== null) {
- if (input.substr(pos, 7) === "@prefix") {
- var result3 = "@prefix";
- pos += 7;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"@prefix\"");
+
+ // merge contexts
+ for(var key in ctx2)
+ {
+ merged[key] = _clone(ctx2[key]);
+ }
+ }
+
+ return merged;
+};
+
+/**
+ * Expands a term into an absolute IRI. The term may be a regular term, a
+ * prefix, a relative IRI, or an absolute IRI. In any case, the associated
+ * absolute IRI will be returned.
+ *
+ * @param ctx the context to use.
+ * @param term the term to expand.
+ *
+ * @return the expanded term as an absolute IRI.
+ */
+jsonld.expandTerm = _expandTerm;
+
+/**
+ * Compacts an IRI into a term or prefix if it can be. IRIs will not be
+ * compacted to relative IRIs if they match the given context's default
+ * vocabulary.
+ *
+ * @param ctx the context to use.
+ * @param iri the IRI to compact.
+ *
+ * @return the compacted IRI as a term or prefix or the original IRI.
+ */
+jsonld.compactIri = function(ctx, iri)
+{
+ return _compactIri(ctx, iri, null);
+};
+
+/**
+ * Frames JSON-LD input.
+ *
+ * @param input the JSON-LD input.
+ * @param frame the frame to use.
+ * @param options framing options to use.
+ *
+ * @return the framed output.
+ */
+jsonld.frame = function(input, frame, options)
+{
+ return new Processor().frame(input, frame, options);
+};
+
+/**
+ * Generates triples given a JSON-LD input. Each triple that is generated
+ * results in a call to the given callback. The callback takes 3 parameters:
+ * subject, property, and object. If the callback returns false then this
+ * method will stop generating triples and return. If the callback is null,
+ * then an array with triple objects containing "s", "p", "o" properties will
+ * be returned.
+ *
+ * The object or "o" property will be a JSON-LD formatted object.
+ *
+ * @param input the JSON-LD input.
+ * @param callback the triple callback.
+ *
+ * @return an array of triple objects if callback is null, null otherwise.
+ */
+jsonld.toTriples = function(input, graph, callback)
+{
+ var rval = null;
+
+ // normalize input
+ var normalized = jsonld.normalize(input);
+
+ // setup default callback
+ callback = callback || null;
+ if(callback === null)
+ {
+ rval = [];
+ callback = function(s, p, o)
+ {
+ rval.push({'subject': Utils.lexicalFormTerm(s),
+ 'predicate': Utils.lexicalFormTerm(p),
+ 'object': Utils.lexicalFormTerm(o),
+ 'graph': graph});
+ };
+ }
+
+ // generate triples
+ var quit = false;
+ for(var i1 in normalized)
+ {
+ var e = normalized[i1];
+ var s = e['@id'];
+ if(s[0] == "_") {
+ s = {'token':'blank', 'value':s.split(":")[1]};
+ } else {
+ s = {'token':'uri', 'value':s};
+ }
+
+ for(var p in e)
+ {
+ if(p !== '@id')
+ {
+ var obj = e[p];
+ if(obj.constructor !== Array)
+ {
+ obj = [obj];
+ }
+ for(var i2 in obj)
+ {
+ var obji2 = obj[i2];
+ if(p === '@type') {
+ p = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';
+ obji2 = {'token':'uri', 'value':obji2};
+ } else if(typeof(obji2) === 'string') {
+ obji2 = {'token': 'literal', 'value':obji2};
+ } else if(obji2['@id'] != null) {
+ if(obji2['@id'][0] == "_") {
+ obji2 = {'token':'blank', 'value':obji2['@id'].split(":")[1]};
+ } else {
+ obji2 = {'token':'uri', 'value':obji2['@id']};
+ }
+ } else if(obji2['@type'] != null) {
+ obji2 = {'token':'literal', 'value':obji2['@literal'], 'type':obji2['@type']};
+ } else if(obji2['@language'] != null) {
+ obji2 = {'token':'literal', 'value':obji2['@literal'], 'lang':obji2['@language']};
+ }
+
+ quit = (callback(s, {'token':'uri', 'value':p}, obji2) === false);
+ if(quit)
+ {
+ break;
+ }
}
- }
- if (result3 !== null) {
- var result11 = parse_WS();
- if (result11 !== null) {
- var result4 = [];
- while (result11 !== null) {
- result4.push(result11);
- var result11 = parse_WS();
- }
- } else {
- var result4 = null;
+ if(quit)
+ {
+ break;
}
- if (result4 !== null) {
- var result10 = parse_PN_PREFIX();
- var result5 = result10 !== null ? result10 : '';
- if (result5 !== null) {
- if (input.substr(pos, 1) === ":") {
- var result6 = ":";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\":\"");
- }
- }
- if (result6 !== null) {
- var result7 = [];
- var result9 = parse_WS();
- while (result9 !== null) {
- result7.push(result9);
- var result9 = parse_WS();
+ }
+ }
+ if(quit)
+ {
+ break;
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Resolves external @context URLs. Every @context URL in the given JSON-LD
+ * object is resolved using the given URL-resolver function. Once all of
+ * the @contexts have been resolved, the given result callback is invoked.
+ *
+ * @param input the JSON-LD input object (or array).
+ * @param resolver the resolver method that takes a URL and a callback that
+ * receives a JSON-LD serialized @context or null on error (with
+ * optional an error object as the second parameter).
+ * @param callback the callback to be invoked with the fully-resolved
+ * JSON-LD output (object or array) or null on error (with an
+ * optional error array as the second parameter).
+ */
+jsonld.resolve = function(input, resolver, callback)
+{
+ // find all @context URLs
+ var urls = {};
+ var findUrls = function(input, replace)
+ {
+ if(input.constructor === Array)
+ {
+ for(var i in input)
+ {
+ findUrls(input[i]);
+ }
+ }
+ else if(input.constructor === Object)
+ {
+ for(var key in input)
+ {
+ if(key === '@context')
+ {
+ // @context is an array that might contain URLs
+ if(input[key].constructor === Array)
+ {
+ var list = input[key];
+ for(var i in list)
+ {
+ if(list[i].constructor === String)
+ {
+ // replace w/resolved @context if appropriate
+ if(replace)
+ {
+ list[i] = urls[list[i]];
+ }
+ // unresolved @context found
+ else
+ {
+ urls[list[i]] = {};
+ }
+ }
}
- if (result7 !== null) {
- var result8 = parse_IRI_REF();
- if (result8 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
+ }
+ else if(input[key].constructor === String)
+ {
+ // replace w/resolved @context if appropriate
+ if(replace)
+ {
+ input[key] = urls[input[key]];
+ }
+ // unresolved @context found
+ else
+ {
+ urls[input[key]] = {};
}
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
+ }
}
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(p, l) {
-
- registerPrefix(p,l);
-
- prefix = {};
- prefix.token = 'prefix';
- prefix.prefix = p;
- prefix.local = l;
-
- return prefix;
- })(result1[3], result1[6])
- : null;
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
}
-
- function parse_TriplesBlock() {
- var cacheKey = 'TriplesBlock@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = parse_TriplesSameSubject();
- if (result2 !== null) {
- var savedPos1 = pos;
- var result5 = [];
- var result9 = parse_WS();
- while (result9 !== null) {
- result5.push(result9);
- var result9 = parse_WS();
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === ".") {
- var result6 = ".";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
+ };
+ findUrls(input, false);
+
+ // state for resolving URLs
+ var count = Object.keys(urls).length;
+ var errors = null;
+
+ if(count === 0)
+ {
+ callback(input, errors);
+ }
+ else
+ {
+ // resolve all URLs
+ for(var url in urls)
+ {
+ resolver(url, function(result, error)
+ {
+ --count;
+
+ if(result === null)
+ {
+ errors = errors || [];
+ errors.push({ url: url, error: error });
+ }
+ else
+ {
+ try
+ {
+ if(result.constructor === String)
+ {
+ urls[url] = JSON.parse(result)['@context'];
+ }
+ else
+ {
+ urls[url] = result['@context'];
+ }
+ }
+ catch(ex)
+ {
+ errors = errors || [];
+ errors.push({ url: url, error: ex });
+ }
}
- if (result6 !== null) {
- var result8 = parse_TriplesBlock();
- var result7 = result8 !== null ? result8 : '';
- if (result7 !== null) {
- var result4 = [result5, result6, result7];
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- } else {
- var result4 = null;
- pos = savedPos1;
+
+ if(count === 0)
+ {
+ if(errors === null)
+ {
+ findUrls(input, true);
+ }
+ callback(input, errors);
}
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- var result3 = result4 !== null ? result4 : '';
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(b, bs) {
- var triples = b.triplesContext;
- var toTest = null;
- if(typeof(bs) === 'object') {
- if(bs.length != null) {
- if(bs[2].triplesContext!=null) {
- triples = triples.concat(bs[2].triplesContext);
- }
- }
- }
-
- return {token:'triples',
- triplesContext: triples}
- })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[54] TriplesBlock");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ });
}
-
- function parse_TriplesSameSubject() {
- var cacheKey = 'TriplesSameSubject@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos1 = pos;
- var result11 = [];
- var result16 = parse_WS();
- while (result16 !== null) {
- result11.push(result16);
- var result16 = parse_WS();
- }
- if (result11 !== null) {
- var result12 = parse_VarOrTerm();
- if (result12 !== null) {
- var result13 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result13.push(result15);
- var result15 = parse_WS();
+ }
+};
+
+// TODO: organizational rewrite
+
+/**
+ * Constructs a new JSON-LD processor.
+ */
+var Processor = function()
+{
+};
+
+/**
+ * Recursively compacts a value. This method will compact IRIs to prefixes or
+ * terms and do reverse type coercion to compact a value.
+ *
+ * @param ctx the context to use.
+ * @param property the property that points to the value, NULL for none.
+ * @param value the value to compact.
+ * @param usedCtx a context to update if a value was used from "ctx".
+ *
+ * @return the compacted value.
+ */
+Processor.prototype.compact = function(ctx, property, value, usedCtx)
+{
+ var rval;
+
+ // get JSON-LD keywords
+ var keywords = _getKeywords(ctx);
+
+ if(value === null)
+ {
+ // return null, but check coerce type to add to usedCtx
+ rval = null;
+ this.getCoerceType(ctx, property, usedCtx);
+ }
+ else if(value.constructor === Array)
+ {
+ // recursively add compacted values to array
+ rval = [];
+ for(var i in value)
+ {
+ rval.push(this.compact(ctx, property, value[i], usedCtx));
+ }
+ }
+ // graph literal/disjoint graph
+ else if(
+ value.constructor === Object &&
+ '@id' in value && value['@id'].constructor === Array)
+ {
+ rval = {};
+ rval[keywords['@id']] = this.compact(
+ ctx, property, value['@id'], usedCtx);
+ }
+ // recurse if value is a subject
+ else if(_isSubject(value))
+ {
+ // recursively handle sub-properties that aren't a sub-context
+ rval = {};
+ for(var key in value)
+ {
+ if(value[key] !== '@context')
+ {
+ // set object to compacted property, only overwrite existing
+ // properties if the property actually compacted
+ var p = _compactIri(ctx, key, usedCtx);
+ if(p !== key || !(p in rval))
+ {
+ // FIXME: clean old values from the usedCtx here ... or just
+ // change usedCtx to be built at the end of processing?
+ rval[p] = this.compact(ctx, key, value[key], usedCtx);
+ }
+ }
+ }
+ }
+ else
+ {
+ // get coerce type
+ var coerce = this.getCoerceType(ctx, property, usedCtx);
+
+ // get type from value, to ensure coercion is valid
+ var type = null;
+ if(value.constructor === Object)
+ {
+ // type coercion can only occur if language is not specified
+ if(!('@language' in value))
+ {
+ // type must match coerce type if specified
+ if('@type' in value)
+ {
+ type = value['@type'];
+ }
+ // type is ID (IRI)
+ else if('@id' in value)
+ {
+ type = '@id';
+ }
+ // can be coerced to any type
+ else
+ {
+ type = coerce;
+ }
+ }
+ }
+ // type can be coerced to anything
+ else if(value.constructor === String)
+ {
+ type = coerce;
+ }
+
+ // types that can be auto-coerced from a JSON-builtin
+ if(coerce === null &&
+ (type === xsd['boolean'] || type === xsd['integer'] ||
+ type === xsd['double']))
+ {
+ coerce = type;
+ }
+
+ // do reverse type-coercion
+ if(coerce !== null)
+ {
+ // type is only null if a language was specified, which is an error
+ // if type coercion is specified
+ if(type === null)
+ {
+ throw {
+ message: 'Cannot coerce type when a language is specified. ' +
+ 'The language information would be lost.'
+ };
+ }
+ // if the value type does not match the coerce type, it is an error
+ else if(type !== coerce)
+ {
+ throw new Exception({
+ message: 'Cannot coerce type because the type does ' +
+ 'not match.',
+ type: type,
+ expected: coerce
+ });
+ }
+ // do reverse type-coercion
+ else
+ {
+ if(value.constructor === Object)
+ {
+ if('@id' in value)
+ {
+ rval = value['@id'];
+ }
+ else if('@literal' in value)
+ {
+ rval = value['@literal'];
+ }
}
- if (result13 !== null) {
- var result14 = parse_PropertyListNotEmpty();
- if (result14 !== null) {
- var result10 = [result11, result12, result13, result14];
- } else {
- var result10 = null;
- pos = savedPos1;
- }
- } else {
- var result10 = null;
- pos = savedPos1;
+ else
+ {
+ rval = value;
}
- } else {
- var result10 = null;
- pos = savedPos1;
- }
- } else {
- var result10 = null;
- pos = savedPos1;
- }
- var result9 = result10 !== null
- ? (function(s, pairs) {
- var triplesContext = pairs.triplesContext;
- var subject = s;
- if(pairs.pairs) {
- for(var i=0; i< pairs.pairs.length; i++) {
- var pair = pairs.pairs[i];
- var triple = null;
- if(subject.token && subject.token==='triplesnodecollection') {
- triple = {subject: subject.chainSubject[0], predicate: pair[0], object: pair[1]}
- triplesContext.push(triple);
- triplesContext = triplesContext.concat(subject.triplesContext);
- } else {
- triple = {subject: subject, predicate: pair[0], object: pair[1]}
- triplesContext.push(triple);
- }
- }
- }
-
- var token = {};
- token.token = "triplessamesubject";
- token.triplesContext = triplesContext;
- token.chainSubject = subject;
-
- return token;
- })(result10[1], result10[3])
- : null;
- if (result9 !== null) {
- var result0 = result9;
- } else {
- var savedPos0 = pos;
- var result3 = [];
- var result8 = parse_WS();
- while (result8 !== null) {
- result3.push(result8);
- var result8 = parse_WS();
- }
- if (result3 !== null) {
- var result4 = parse_TriplesNode();
- if (result4 !== null) {
- var result5 = [];
- var result7 = parse_WS();
- while (result7 !== null) {
- result5.push(result7);
- var result7 = parse_WS();
- }
- if (result5 !== null) {
- var result6 = parse_PropertyList();
- if (result6 !== null) {
- var result2 = [result3, result4, result5, result6];
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
+
+ // do basic JSON types conversion
+ if(coerce === xsd['boolean'])
+ {
+ rval = (rval === 'true' || rval != 0);
}
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- var result1 = result2 !== null
- ? (function(tn, pairs) {
- var triplesContext = tn.triplesContext;
- var subject = tn.chainSubject;
-
- if(pairs.pairs) {
- for(var i=0; i< pairs.pairs.length; i++) {
- var pair = pairs.pairs[i];
- if(tn.token === "triplesnodecollection") {
- for(var j=0; j v2.
+ */
+var _compare = function(v1, v2)
+{
+ var rval = 0;
+
+ if(v1.constructor === Array && v2.constructor === Array)
+ {
+ for(var i = 0; i < v1.length && rval === 0; ++i)
+ {
+ rval = _compare(v1[i], v2[i]);
+ }
+ }
+ else
+ {
+ rval = (v1 < v2 ? -1 : (v1 > v2 ? 1 : 0));
+ }
+
+ return rval;
+};
+
+/**
+ * Compares two keys in an object. If the key exists in one object
+ * and not the other, the object with the key is less. If the key exists in
+ * both objects, then the one with the lesser value is less.
+ *
+ * @param o1 the first object.
+ * @param o2 the second object.
+ * @param key the key.
+ *
+ * @return -1 if o1 < o2, 0 if o1 == o2, 1 if o1 > o2.
+ */
+var _compareObjectKeys = function(o1, o2, key)
+{
+ var rval = 0;
+ if(key in o1)
+ {
+ if(key in o2)
+ {
+ rval = _compare(o1[key], o2[key]);
+ }
+ else
+ {
+ rval = -1;
+ }
+ }
+ else if(key in o2)
+ {
+ rval = 1;
+ }
+ return rval;
+};
+
+/**
+ * Compares two object values.
+ *
+ * @param o1 the first object.
+ * @param o2 the second object.
+ *
+ * @return -1 if o1 < o2, 0 if o1 == o2, 1 if o1 > o2.
+ */
+var _compareObjects = function(o1, o2)
+{
+ var rval = 0;
+
+ if(o1.constructor === String)
+ {
+ if(o2.constructor !== String)
+ {
+ rval = -1;
+ }
+ else
+ {
+ rval = _compare(o1, o2);
+ }
+ }
+ else if(o2.constructor === String)
+ {
+ rval = 1;
+ }
+ else
+ {
+ rval = _compareObjectKeys(o1, o2, '@literal');
+ if(rval === 0)
+ {
+ if('@literal' in o1)
+ {
+ rval = _compareObjectKeys(o1, o2, '@type');
+ if(rval === 0)
+ {
+ rval = _compareObjectKeys(o1, o2, '@language');
+ }
+ }
+ // both are '@id' objects
+ else
+ {
+ rval = _compare(o1['@id'], o2['@id']);
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Compares the object values between two bnodes.
+ *
+ * @param a the first bnode.
+ * @param b the second bnode.
+ *
+ * @return -1 if a < b, 0 if a == b, 1 if a > b.
+ */
+var _compareBlankNodeObjects = function(a, b)
+{
+ var rval = 0;
+
+ /*
+ 3. For each property, compare sorted object values.
+ 3.1. The bnode with fewer objects is first.
+ 3.2. For each object value, compare only literals and non-bnodes.
+ 3.2.1. The bnode with fewer non-bnodes is first.
+ 3.2.2. The bnode with a string object is first.
+ 3.2.3. The bnode with the alphabetically-first string is first.
+ 3.2.4. The bnode with a @literal is first.
+ 3.2.5. The bnode with the alphabetically-first @literal is first.
+ 3.2.6. The bnode with the alphabetically-first @type is first.
+ 3.2.7. The bnode with a @language is first.
+ 3.2.8. The bnode with the alphabetically-first @language is first.
+ 3.2.9. The bnode with the alphabetically-first @id is first.
+ */
+
+ for(var p in a)
+ {
+ // skip IDs (IRIs)
+ if(p !== '@id')
+ {
+ // step #3.1
+ var lenA = (a[p].constructor === Array) ? a[p].length : 1;
+ var lenB = (b[p].constructor === Array) ? b[p].length : 1;
+ rval = _compare(lenA, lenB);
+
+ // step #3.2.1
+ if(rval === 0)
+ {
+ // normalize objects to an array
+ var objsA = a[p];
+ var objsB = b[p];
+ if(objsA.constructor !== Array)
+ {
+ objsA = [objsA];
+ objsB = [objsB];
}
- while (result5 !== null) {
- result4.push(result5);
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ",") {
- var result6 = ",";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\",\"");
- }
- }
- if (result6 !== null) {
- var result7 = [];
- var result9 = parse_WS();
- while (result9 !== null) {
- result7.push(result9);
- var result9 = parse_WS();
- }
- if (result7 !== null) {
- var result8 = parse_GraphNode();
- if (result8 !== null) {
- var result5 = [result6, result7, result8];
- } else {
- var result5 = null;
- pos = savedPos1;
+
+ // compare non-bnodes (remove bnodes from comparison)
+ objsA = objsA.filter(function(e) {return !_isNamedBlankNode(e);});
+ objsB = objsB.filter(function(e) {return !_isNamedBlankNode(e);});
+ rval = _compare(objsA.length, objsB.length);
+ }
+
+ // steps #3.2.2-3.2.9
+ if(rval === 0)
+ {
+ objsA.sort(_compareObjects);
+ objsB.sort(_compareObjects);
+ for(var i = 0; i < objsA.length && rval === 0; ++i)
+ {
+ rval = _compareObjects(objsA[i], objsB[i]);
+ }
+ }
+
+ if(rval !== 0)
+ {
+ break;
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Creates a blank node name generator using the given prefix for the
+ * blank nodes.
+ *
+ * @param prefix the prefix to use.
+ *
+ * @return the blank node name generator.
+ */
+var _createNameGenerator = function(prefix)
+{
+ var count = -1;
+ var ng = {
+ next: function()
+ {
+ ++count;
+ return ng.current();
+ },
+ current: function()
+ {
+ return '_:' + prefix + count;
+ },
+ inNamespace: function(iri)
+ {
+ return iri.indexOf('_:' + prefix) === 0;
+ }
+ };
+ return ng;
+};
+
+/**
+ * Populates a map of all named subjects from the given input and an array
+ * of all unnamed bnodes (includes embedded ones).
+ *
+ * @param input the input (must be expanded, no context).
+ * @param subjects the subjects map to populate.
+ * @param bnodes the bnodes array to populate.
+ */
+var _collectSubjects = function(input, subjects, bnodes)
+{
+ if(input === null)
+ {
+ // nothing to collect
+ }
+ else if(input.constructor === Array)
+ {
+ for(var i in input)
+ {
+ _collectSubjects(input[i], subjects, bnodes);
+ }
+ }
+ else if(input.constructor === Object)
+ {
+ if('@id' in input)
+ {
+ // graph literal/disjoint graph
+ if(input['@id'].constructor == Array)
+ {
+ _collectSubjects(input['@id'], subjects, bnodes);
+ }
+ // named subject
+ else if(_isSubject(input))
+ {
+ subjects[input['@id']] = input;
+ }
+ }
+ // unnamed blank node
+ else if(_isBlankNode(input))
+ {
+ bnodes.push(input);
+ }
+
+ // recurse through subject properties
+ for(var key in input)
+ {
+ _collectSubjects(input[key], subjects, bnodes);
+ }
+ }
+};
+
+/**
+ * Flattens the given value into a map of unique subjects. It is assumed that
+ * all blank nodes have been uniquely named before this call. Array values for
+ * properties will be sorted.
+ *
+ * @param parent the value's parent, NULL for none.
+ * @param parentProperty the property relating the value to the parent.
+ * @param value the value to flatten.
+ * @param subjects the map of subjects to write to.
+ */
+var _flatten = function(parent, parentProperty, value, subjects)
+{
+ var flattened = null;
+
+ if(value === null)
+ {
+ // drop null values
+ }
+ else if(value.constructor === Array)
+ {
+ // list of objects or a disjoint graph
+ for(var i in value)
+ {
+ _flatten(parent, parentProperty, value[i], subjects);
+ }
+ }
+ else if(value.constructor === Object)
+ {
+ // already-expanded value or special-case reference-only @type
+ if('@literal' in value || parentProperty === '@type')
+ {
+ flattened = _clone(value);
+ }
+ // graph literal/disjoint graph
+ else if(value['@id'].constructor === Array)
+ {
+ // cannot flatten embedded graph literals
+ if(parent !== null)
+ {
+ throw {
+ message: 'Embedded graph literals cannot be flattened.'
+ };
+ }
+
+ // top-level graph literal
+ for(var idx in value['@id'])
+ {
+ _flatten(parent, parentProperty, value['@id'][idx], subjects);
+ }
+ }
+ // regular subject
+ else
+ {
+ // create or fetch existing subject
+ var subject;
+ if(value['@id'] in subjects)
+ {
+ // FIXME: '@id' might be a graph literal (as {})
+ subject = subjects[value['@id']];
+ }
+ else
+ {
+ // FIXME: '@id' might be a graph literal (as {})
+ subject = {'@id': value['@id']};
+ subjects[value['@id']] = subject;
+ }
+ flattened = {'@id': subject['@id']};
+
+ // flatten embeds
+ for(var key in value)
+ {
+ var v = value[key];
+
+ // drop null values, skip @id (it is already set above)
+ if(v !== null && key !== '@id')
+ {
+ if(key in subject)
+ {
+ if(subject[key].constructor !== Array)
+ {
+ subject[key] = [subject[key]];
}
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- } else {
- var result5 = null;
- pos = savedPos1;
- }
+ }
+ else
+ {
+ subject[key] = [];
+ }
+
+ _flatten(subject[key], key, v, subjects);
+ if(subject[key].length === 1)
+ {
+ // convert subject[key] to object if it has only 1
+ subject[key] = subject[key][0];
+ }
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
+ }
+ }
+ }
+ // string value
+ else
+ {
+ flattened = value;
+ }
+
+ // add flattened value to parent
+ if(flattened !== null && parent !== null)
+ {
+ if(parent.constructor === Array)
+ {
+ // do not add duplicate IRIs for the same property
+ var duplicate = false;
+ if(flattened.constructor === Object && '@id' in flattened)
+ {
+ duplicate = (parent.filter(function(e)
+ {
+ return (e.constructor === Object && '@id' in e &&
+ e['@id'] === flattened['@id']);
+ }).length > 0);
+ }
+ if(!duplicate)
+ {
+ parent.push(flattened);
+ }
+ }
+ else
+ {
+ parent[parentProperty] = flattened;
+ }
+ }
+};
+
+
+/**
+ * Assigns unique names to blank nodes that are unnamed in the given input.
+ *
+ * @param input the input to assign names to.
+ */
+Processor.prototype.nameBlankNodes = function(input)
+{
+ // create temporary blank node name generator
+ var ng = this.ng.tmp = _createNameGenerator('tmp');
+
+ // collect subjects and unnamed bnodes
+ var subjects = {};
+ var bnodes = [];
+ _collectSubjects(input, subjects, bnodes);
+
+ // uniquely name all unnamed bnodes
+ for(var i in bnodes)
+ {
+ var bnode = bnodes[i];
+ if(!('@id' in bnode))
+ {
+ // generate names until one is unique
+ while(ng.next() in subjects){}
+ bnode['@id'] = ng.current();
+ subjects[ng.current()] = bnode;
+ }
+ }
+};
+
+/**
+ * Renames a blank node, changing its references, etc. The method assumes
+ * that the given name is unique.
+ *
+ * @param b the blank node to rename.
+ * @param id the new name to use.
+ */
+Processor.prototype.renameBlankNode = function(b, id)
+{
+ var old = b['@id'];
+
+ // update bnode IRI
+ b['@id'] = id;
+
+ // update subjects map
+ var subjects = this.subjects;
+ subjects[id] = subjects[old];
+ delete subjects[old];
+
+ // update reference and property lists
+ this.edges.refs[id] = this.edges.refs[old];
+ this.edges.props[id] = this.edges.props[old];
+ delete this.edges.refs[old];
+ delete this.edges.props[old];
+
+ // update references to this bnode
+ var refs = this.edges.refs[id].all;
+ for(var i in refs)
+ {
+ var iri = refs[i].s;
+ if(iri === old)
+ {
+ iri = id;
+ }
+ var ref = subjects[iri];
+ var props = this.edges.props[iri].all;
+ for(var i2 in props)
+ {
+ if(props[i2].s === old)
+ {
+ props[i2].s = id;
+
+ // normalize property to array for single code-path
+ var p = props[i2].p;
+ var tmp = (ref[p].constructor === Object) ? [ref[p]] :
+ (ref[p].constructor === Array) ? ref[p] : [];
+ for(var n in tmp)
+ {
+ if(tmp[n].constructor === Object &&
+ '@id' in tmp[n] && tmp[n]['@id'] === old)
+ {
+ tmp[n]['@id'] = id;
+ }
}
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(obj, objs) {
-
- var toReturn = [];
-
- toReturn.push(obj);
-
- for(var i=0; i 0)
+ {
+ if(resort)
+ {
+ resort = false;
+ bnodes.sort(function(a, b)
+ {
+ return self.deepCompareBlankNodes(a, b);
+ });
}
- function parse_Verb() {
- var cacheKey = 'Verb@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_VarOrIRIref();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result2 = "a";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
+ // name all bnodes according to the first bnode's relation mappings
+ var bnode = bnodes.shift();
+ var iri = bnode['@id'];
+ var dirs = ['props', 'refs'];
+ for(var d in dirs)
+ {
+ var dir = dirs[d];
+
+ // if no serialization has been computed, name only the first node
+ if(this.serializations[iri][dir] === null)
+ {
+ var mapping = {};
+ mapping[iri] = 's1';
+ }
+ else
+ {
+ mapping = this.serializations[iri][dir].m;
+ }
+
+ // sort keys by value to name them in order
+ var keys = Object.keys(mapping);
+ keys.sort(function(a, b)
+ {
+ return _compare(mapping[a], mapping[b]);
+ });
+
+ // name bnodes in mapping
+ var renamed = [];
+ for(var i in keys)
+ {
+ var iriK = keys[i];
+ if(!c14n.inNamespace(iri) && iriK in subjects)
+ {
+ this.renameBlankNode(subjects[iriK], c14n.next());
+ renamed.push(iriK);
+ }
+ }
+
+ // only keep non-canonically named bnodes
+ var tmp = bnodes;
+ bnodes = [];
+ for(var i in tmp)
+ {
+ var b = tmp[i];
+ var iriB = b['@id'];
+ if(!c14n.inNamespace(iriB))
+ {
+ // mark serializations related to the named bnodes as dirty
+ for(var i2 in renamed)
+ {
+ if(this.markSerializationDirty(iriB, renamed[i2], dir))
+ {
+ // resort if a serialization was marked dirty
+ resort = true;
+ }
+ }
+ bnodes.push(b);
}
- }
- var result1 = result2 !== null
- ? (function() {
- return{token: 'uri', prefix:null, suffix:null, value:"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}
- })()
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[71] Verb");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
}
-
- function parse_PropertyListNotEmptyPath() {
- var cacheKey = 'PropertyListNotEmptyPath@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result13 = parse_VerbPath();
- if (result13 !== null) {
- var result1 = result13;
- } else {
- var result12 = parse_Var();
- if (result12 !== null) {
- var result1 = result12;
- } else {
- var result1 = null;;
- };
- }
- if (result1 !== null) {
- var result2 = parse_ObjectList();
- if (result2 !== null) {
- var result3 = [];
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ";") {
- var result5 = ";";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\";\"");
- }
- }
- if (result5 !== null) {
- var savedPos2 = pos;
- var result11 = parse_VerbPath();
- if (result11 !== null) {
- var result8 = result11;
- } else {
- var result10 = parse_Var();
- if (result10 !== null) {
- var result8 = result10;
- } else {
- var result8 = null;;
- };
- }
- if (result8 !== null) {
- var result9 = parse_ObjectList();
- if (result9 !== null) {
- var result7 = [result8, result9];
- } else {
- var result7 = null;
- pos = savedPos2;
- }
- } else {
- var result7 = null;
- pos = savedPos2;
- }
- var result6 = result7 !== null ? result7 : '';
- if (result6 !== null) {
- var result4 = [result5, result6];
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- while (result4 !== null) {
- result3.push(result4);
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ";") {
- var result5 = ";";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\";\"");
- }
- }
- if (result5 !== null) {
- var savedPos2 = pos;
- var result11 = parse_VerbPath();
- if (result11 !== null) {
- var result8 = result11;
- } else {
- var result10 = parse_Var();
- if (result10 !== null) {
- var result8 = result10;
- } else {
- var result8 = null;;
- };
- }
- if (result8 !== null) {
- var result9 = parse_ObjectList();
- if (result9 !== null) {
- var result7 = [result8, result9];
- } else {
- var result7 = null;
- pos = savedPos2;
+ }
+
+ // sort property lists that now have canonically-named bnodes
+ for(var key in edges.props)
+ {
+ if(edges.props[key].bnodes.length > 0)
+ {
+ var bnode = subjects[key];
+ for(var p in bnode)
+ {
+ if(p.indexOf('@') !== 0 && bnode[p].constructor === Array)
+ {
+ bnode[p].sort(_compareObjects);
+ }
+ }
+ }
+ }
+};
+
+/**
+ * A MappingBuilder is used to build a mapping of existing blank node names
+ * to a form for serialization. The serialization is used to compare blank
+ * nodes against one another to determine a sort order.
+ */
+MappingBuilder = function()
+{
+ this.count = 1;
+ this.processed = {};
+ this.mapping = {};
+ this.adj = {};
+ this.keyStack = [{ keys: ['s1'], idx: 0 }];
+ this.done = {};
+ this.s = '';
+};
+
+/**
+ * Copies this MappingBuilder.
+ *
+ * @return the MappingBuilder copy.
+ */
+MappingBuilder.prototype.copy = function()
+{
+ var rval = new MappingBuilder();
+ rval.count = this.count;
+ rval.processed = _clone(this.processed);
+ rval.mapping = _clone(this.mapping);
+ rval.adj = _clone(this.adj);
+ rval.keyStack = _clone(this.keyStack);
+ rval.done = _clone(this.done);
+ rval.s = this.s;
+ return rval;
+};
+
+/**
+ * Maps the next name to the given bnode IRI if the bnode IRI isn't already in
+ * the mapping. If the given bnode IRI is canonical, then it will be given
+ * a shortened form of the same name.
+ *
+ * @param iri the blank node IRI to map the next name to.
+ *
+ * @return the mapped name.
+ */
+MappingBuilder.prototype.mapNode = function(iri)
+{
+ if(!(iri in this.mapping))
+ {
+ if(iri.indexOf('_:c14n') === 0)
+ {
+ this.mapping[iri] = 'c' + iri.substr(6);
+ }
+ else
+ {
+ this.mapping[iri] = 's' + this.count++;
+ }
+ }
+ return this.mapping[iri];
+};
+
+/**
+ * Serializes the properties of the given bnode for its relation serialization.
+ *
+ * @param b the blank node.
+ *
+ * @return the serialized properties.
+ */
+var _serializeProperties = function(b)
+{
+ var rval = '';
+
+ var first = true;
+ for(var p in b)
+ {
+ if(p !== '@id')
+ {
+ if(first)
+ {
+ first = false;
+ }
+ else
+ {
+ rval += '|';
+ }
+
+ // property
+ rval += '<' + p + '>';
+
+ // object(s)
+ var objs = (b[p].constructor === Array) ? b[p] : [b[p]];
+ for(var oi in objs)
+ {
+ var o = objs[oi];
+ if(o.constructor === Object)
+ {
+ // ID (IRI)
+ if('@id' in o)
+ {
+ if(_isBlankNodeIri(o['@id']))
+ {
+ rval += '_:';
+ }
+ else
+ {
+ rval += '<' + o['@id'] + '>';
}
- } else {
- var result7 = null;
- pos = savedPos2;
- }
- var result6 = result7 !== null ? result7 : '';
- if (result6 !== null) {
- var result4 = [result5, result6];
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- } else {
- var result4 = null;
- pos = savedPos1;
- }
+ }
+ // literal
+ else
+ {
+ rval += '"' + o['@literal'] + '"';
+
+ // type literal
+ if('@type' in o)
+ {
+ rval += '^^<' + o['@type'] + '>';
+ }
+ // language literal
+ else if('@language' in o)
+ {
+ rval += '@' + o['@language'];
+ }
+ }
}
- if (result3 !== null) {
- var result0 = [result1, result2, result3];
- } else {
- var result0 = null;
- pos = savedPos0;
+ // plain literal
+ else
+ {
+ rval += '"' + o + '"';
}
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[73] PropertyListNotEmptyPath");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
}
-
- function parse_PropertyListPath() {
- var cacheKey = 'PropertyListPath@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result1 = parse_PropertyListNotEmpty();
- var result0 = result1 !== null ? result1 : '';
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[74] PropertyListPath");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
+
+ return rval;
+};
+
+/**
+ * Recursively increments the relation serialization for a mapping.
+ *
+ * @param subjects the subjects in the graph.
+ * @param edges the edges in the graph.
+ */
+MappingBuilder.prototype.serialize = function(subjects, edges)
+{
+ if(this.keyStack.length > 0)
+ {
+ // continue from top of key stack
+ var next = this.keyStack.pop();
+ for(; next.idx < next.keys.length; ++next.idx)
+ {
+ var k = next.keys[next.idx];
+ if(!(k in this.adj))
+ {
+ this.keyStack.push(next);
+ break;
+ }
+
+ if(k in this.done)
+ {
+ // mark cycle
+ this.s += '_' + k;
+ }
+ else
+ {
+ // mark key as serialized
+ this.done[k] = true;
+
+ // serialize top-level key and its details
+ var s = k;
+ var adj = this.adj[k];
+ var iri = adj.i;
+ if(iri in subjects)
+ {
+ var b = subjects[iri];
+
+ // serialize properties
+ s += '[' + _serializeProperties(b) + ']';
+
+ // serialize references
+ var first = true;
+ s += '[';
+ var refs = edges.refs[iri].all;
+ for(var r in refs)
+ {
+ if(first)
+ {
+ first = false;
+ }
+ else
+ {
+ s += '|';
+ }
+ s += '<' + refs[r].p + '>';
+ s += _isBlankNodeIri(refs[r].s) ?
+ '_:' : ('<' + refs[r].s + '>');
+ }
+ s += ']';
+ }
+
+ // serialize adjacent node keys
+ s += adj.k.join('');
+ this.s += s;
+ this.keyStack.push({ keys: adj.k, idx: 0 });
+ this.serialize(subjects, edges);
+ }
}
-
- function parse_VerbPath() {
- var cacheKey = 'VerbPath@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result1 = parse_PathAlternative();
- var result0 = result1 !== null
- ? (function(p) {
- var path = {};
- path.token = 'path';
- path.value = p;
-
- return p;
- })(result1)
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[75]");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
+};
+
+/**
+ * Marks a relation serialization as dirty if necessary.
+ *
+ * @param iri the IRI of the bnode to check.
+ * @param changed the old IRI of the bnode that changed.
+ * @param dir the direction to check ('props' or 'refs').
+ *
+ * @return true if marked dirty, false if not.
+ */
+Processor.prototype.markSerializationDirty = function(iri, changed, dir)
+{
+ var rval = false;
+
+ var s = this.serializations[iri];
+ if(s[dir] !== null && changed in s[dir].m)
+ {
+ s[dir] = null;
+ rval = true;
+ }
+
+ return rval;
+};
+
+/**
+ * Rotates the elements in an array one position.
+ *
+ * @param a the array.
+ */
+var _rotate = function(a)
+{
+ a.unshift.apply(a, a.splice(1, a.length));
+};
+
+/**
+ * Compares two serializations for the same blank node. If the two
+ * serializations aren't complete enough to determine if they are equal (or if
+ * they are actually equal), 0 is returned.
+ *
+ * @param s1 the first serialization.
+ * @param s2 the second serialization.
+ *
+ * @return -1 if s1 < s2, 0 if s1 == s2 (or indeterminate), 1 if s1 > v2.
+ */
+var _compareSerializations = function(s1, s2)
+{
+ var rval = 0;
+
+ if(s1.length == s2.length)
+ {
+ rval = _compare(s1, s2);
+ }
+ else if(s1.length > s2.length)
+ {
+ rval = _compare(s1.substr(0, s2.length), s2);
+ }
+ else
+ {
+ rval = _compare(s1, s2.substr(0, s1.length));
+ }
+
+ return rval;
+};
+
+/**
+ * Recursively serializes adjacent bnode combinations for a bnode.
+ *
+ * @param s the serialization to update.
+ * @param iri the IRI of the bnode being serialized.
+ * @param siri the serialization name for the bnode IRI.
+ * @param mb the MappingBuilder to use.
+ * @param dir the edge direction to use ('props' or 'refs').
+ * @param mapped all of the already-mapped adjacent bnodes.
+ * @param notMapped all of the not-yet mapped adjacent bnodes.
+ */
+Processor.prototype.serializeCombos = function(
+ s, iri, siri, mb, dir, mapped, notMapped)
+{
+ // handle recursion
+ if(notMapped.length > 0)
+ {
+ // copy mapped nodes
+ mapped = _clone(mapped);
+
+ // map first bnode in list
+ mapped[mb.mapNode(notMapped[0].s)] = notMapped[0].s;
+
+ // recurse into remaining possible combinations
+ var original = mb.copy();
+ notMapped = notMapped.slice(1);
+ var rotations = Math.max(1, notMapped.length);
+ for(var r = 0; r < rotations; ++r)
+ {
+ var m = (r === 0) ? mb : original.copy();
+ this.serializeCombos(s, iri, siri, m, dir, mapped, notMapped);
+
+ // rotate not-mapped for next combination
+ _rotate(notMapped);
}
-
- function parse_PathAlternative() {
- var cacheKey = 'PathAlternative@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result1 = parse_PathSequence();
- if (result1 !== null) {
- var result2 = [];
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "|") {
- var result4 = "|";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"|\"");
- }
- }
- if (result4 !== null) {
- var result5 = parse_PathSequence();
- if (result5 !== null) {
- var result3 = [result4, result5];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- while (result3 !== null) {
- result2.push(result3);
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "|") {
- var result4 = "|";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"|\"");
- }
- }
- if (result4 !== null) {
- var result5 = parse_PathSequence();
- if (result5 !== null) {
- var result3 = [result4, result5];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- }
- if (result2 !== null) {
- var result0 = [result1, result2];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[78] PathAlternative");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathSequence() {
- var cacheKey = 'PathSequence@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result1 = parse_PathEltOrInverse();
- if (result1 !== null) {
- var result2 = [];
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "/") {
- var result4 = "/";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"/\"");
- }
- }
- if (result4 !== null) {
- var result5 = parse_PathEltOrInverse();
- if (result5 !== null) {
- var result3 = [result4, result5];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- while (result3 !== null) {
- result2.push(result3);
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "/") {
- var result4 = "/";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"/\"");
- }
- }
- if (result4 !== null) {
- var result5 = parse_PathEltOrInverse();
- if (result5 !== null) {
- var result3 = [result4, result5];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- }
- if (result2 !== null) {
- var result0 = [result1, result2];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[79] PathSequence");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathElt() {
- var cacheKey = 'PathElt@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result1 = parse_PathPrimary();
- if (result1 !== null) {
- var result3 = parse_PathMod();
- var result2 = result3 !== null ? result3 : '';
- if (result2 !== null) {
- var result0 = [result1, result2];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[88] PathElt");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathEltOrInverse() {
- var cacheKey = 'PathEltOrInverse@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result4 = parse_PathElt();
- if (result4 !== null) {
- var result0 = result4;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "^") {
- var result2 = "^";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"^\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_PathElt();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[81] PathEltOrInverse");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
+ }
+ // no more adjacent bnodes to map, update serialization
+ else
+ {
+ var keys = Object.keys(mapped).sort();
+ mb.adj[siri] = { i: iri, k: keys, m: mapped };
+ mb.serialize(this.subjects, this.edges);
+
+ // optimize away mappings that are already too large
+ if(s[dir] === null || _compareSerializations(mb.s, s[dir].s) <= 0)
+ {
+ // recurse into adjacent values
+ for(var i in keys)
+ {
+ var k = keys[i];
+ this.serializeBlankNode(s, mapped[k], mb, dir);
+ }
+
+ // update least serialization if new one has been found
+ mb.serialize(this.subjects, this.edges);
+ if(s[dir] === null ||
+ (_compareSerializations(mb.s, s[dir].s) <= 0 &&
+ mb.s.length >= s[dir].s.length))
+ {
+ s[dir] = { s: mb.s, m: mb.mapping };
+ }
}
-
- function parse_PathMod() {
- var cacheKey = 'PathMod@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos, 1) === "*") {
- var result21 = "*";
- pos += 1;
- } else {
- var result21 = null;
- if (reportMatchFailures) {
- matchFailed("\"*\"");
- }
- }
- if (result21 !== null) {
- var result0 = result21;
- } else {
- if (input.substr(pos, 1) === "?") {
- var result20 = "?";
- pos += 1;
- } else {
- var result20 = null;
- if (reportMatchFailures) {
- matchFailed("\"?\"");
- }
- }
- if (result20 !== null) {
- var result0 = result20;
- } else {
- if (input.substr(pos, 1) === "+") {
- var result19 = "+";
- pos += 1;
- } else {
- var result19 = null;
- if (reportMatchFailures) {
- matchFailed("\"+\"");
- }
- }
- if (result19 !== null) {
- var result0 = result19;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "{") {
- var result2 = "{";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"{\"");
- }
- }
- if (result2 !== null) {
- var savedPos2 = pos;
- var result9 = parse_INTEGER();
- if (result9 !== null) {
- var savedPos3 = pos;
- if (input.substr(pos, 1) === ",") {
- var result13 = ",";
- pos += 1;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("\",\"");
- }
- }
- if (result13 !== null) {
- if (input.substr(pos, 1) === "}") {
- var result18 = "}";
- pos += 1;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("\"}\"");
- }
- }
- if (result18 !== null) {
- var result14 = result18;
- } else {
- var savedPos4 = pos;
- var result16 = parse_INTEGER();
- if (result16 !== null) {
- if (input.substr(pos, 1) === "}") {
- var result17 = "}";
- pos += 1;
- } else {
- var result17 = null;
- if (reportMatchFailures) {
- matchFailed("\"}\"");
- }
- }
- if (result17 !== null) {
- var result15 = [result16, result17];
- } else {
- var result15 = null;
- pos = savedPos4;
- }
- } else {
- var result15 = null;
- pos = savedPos4;
- }
- if (result15 !== null) {
- var result14 = result15;
- } else {
- var result14 = null;;
- };
- }
- if (result14 !== null) {
- var result12 = [result13, result14];
- } else {
- var result12 = null;
- pos = savedPos3;
- }
- } else {
- var result12 = null;
- pos = savedPos3;
- }
- if (result12 !== null) {
- var result10 = result12;
- } else {
- if (input.substr(pos, 1) === "}") {
- var result11 = "}";
- pos += 1;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("\"}\"");
- }
- }
- if (result11 !== null) {
- var result10 = result11;
- } else {
- var result10 = null;;
- };
- }
- if (result10 !== null) {
- var result8 = [result9, result10];
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- if (result8 !== null) {
- var result3 = result8;
- } else {
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ",") {
- var result5 = ",";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\",\"");
- }
- }
- if (result5 !== null) {
- var result6 = parse_INTEGER();
- if (result6 !== null) {
- if (input.substr(pos, 1) === "}") {
- var result7 = "}";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"}\"");
- }
- }
- if (result7 !== null) {
- var result4 = [result5, result6, result7];
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- } else {
- var result4 = null;
- pos = savedPos1;
- }
- if (result4 !== null) {
- var result3 = result4;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[82] PathMod");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathPrimary() {
- var cacheKey = 'PathPrimary@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result9 = parse_IRIref();
- if (result9 !== null) {
- var result0 = result9;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result8 = "a";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result8 !== null) {
- var result0 = result8;
- } else {
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "!") {
- var result6 = "!";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\"!\"");
- }
- }
- if (result6 !== null) {
- var result7 = parse_PathNegatedPropertySet();
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "(") {
- var result2 = "(";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_PathAlternative();
- if (result3 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result4 = ")";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[83] PathPrimary");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathNegatedPropertySet() {
- var cacheKey = 'PathNegatedPropertySet@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result11 = parse_PathOneInPropertySet();
- if (result11 !== null) {
- var result0 = result11;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "(") {
- var result2 = "(";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result2 !== null) {
- var savedPos1 = pos;
- var result6 = parse_PathOneInPropertySet();
- if (result6 !== null) {
- var result7 = [];
- var savedPos2 = pos;
- if (input.substr(pos, 1) === "|") {
- var result9 = "|";
- pos += 1;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("\"|\"");
- }
- }
- if (result9 !== null) {
- var result10 = parse_PathOneInPropertySet();
- if (result10 !== null) {
- var result8 = [result9, result10];
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- while (result8 !== null) {
- result7.push(result8);
- var savedPos2 = pos;
- if (input.substr(pos, 1) === "|") {
- var result9 = "|";
- pos += 1;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("\"|\"");
- }
- }
- if (result9 !== null) {
- var result10 = parse_PathOneInPropertySet();
- if (result10 !== null) {
- var result8 = [result9, result10];
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- }
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- var result3 = result5 !== null ? result5 : '';
- if (result3 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result4 = ")";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PathOneInPropertySet() {
- var cacheKey = 'PathOneInPropertySet@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result7 = parse_IRIref();
- if (result7 !== null) {
- var result0 = result7;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result6 = "a";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "^") {
- var result2 = "^";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"^\"");
- }
- }
- if (result2 !== null) {
- var result5 = parse_IRIref();
- if (result5 !== null) {
- var result3 = result5;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result4 = "a";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result4 !== null) {
- var result3 = result4;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[85] PathOneInPropertySet");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_TriplesNode() {
- var cacheKey = 'TriplesNode@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_Collection();
- var result2 = result3 !== null
- ? (function(c) {
- triplesContext = [];
- chainSubject = [];
-
- var triple = null;
-
- // catch NIL
- /*
- if(c.length == 1 && c[0].token && c[0].token === 'nil') {
- GlobalBlankNodeCounter++;
- return {token: "triplesnodecollection",
- triplesContext:[{subject: {token:'blank', label:("_:"+GlobalBlankNodeCounter)},
- predicate:{token:'uri', prefix:null, suffix:null, value:'http://www.w3.org/1999/02/22-rdf-syntax-ns#rest'},
- object: {token:'blank', label:("_:"+(GlobalBlankNodeCounter+1))}}],
- chainSubject:{token:'blank', label:("_:"+GlobalBlankNodeCounter)}};
-
- }
- */
-
- // other cases
- for(var i=0; i 0) {
- return {token:'literal', value:s.value, lang:e.slice(1), type:null}
- } else {
- if(typeof(e) === "object") {
- e.shift(); // remove the '^^' char
- return {token:'literal', value:s.value, lang:null, type:e[0] }
- } else {
- return { token:'literal', value:s.value, lang:null, type:null }
- }
- }
- })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[112] RDFLiteral");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NumericLiteral() {
- var cacheKey = 'NumericLiteral@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_NumericLiteralUnsigned();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_NumericLiteralPositive();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_NumericLiteralNegative();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[113] NumericLiteral");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NumericLiteralUnsigned() {
- var cacheKey = 'NumericLiteralUnsigned@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_DOUBLE();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_DECIMAL();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_INTEGER();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[114] NumericLiteralUnsigned");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NumericLiteralPositive() {
- var cacheKey = 'NumericLiteralPositive@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_DOUBLE_POSITIVE();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_DECIMAL_POSITIVE();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_INTEGER_POSITIVE();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[115] NumericLiteralPositive");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NumericLiteralNegative() {
- var cacheKey = 'NumericLiteralNegative@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result3 = parse_DOUBLE_NEGATIVE();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_DECIMAL_NEGATIVE();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_INTEGER_NEGATIVE();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[116] NumericLiteralNegative");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_BooleanLiteral() {
- var cacheKey = 'BooleanLiteral@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos, 4) === "true") {
- var result4 = "true";
- pos += 4;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"true\"");
- }
- }
- var result3 = result4 !== null
- ? (function() {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#boolean";
- lit.value = true;
- return lit;
- })()
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- if (input.substr(pos, 5) === "false") {
- var result2 = "false";
- pos += 5;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"false\"");
- }
- }
- var result1 = result2 !== null
- ? (function() {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#boolean";
- lit.value = false;
- return lit;
- })()
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[117] BooleanLiteral");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_String() {
- var cacheKey = 'String@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result8 = parse_STRING_LITERAL_LONG1();
- var result7 = result8 !== null
- ? (function(s) { return {token:'string', value:s} })(result8)
- : null;
- if (result7 !== null) {
- var result0 = result7;
- } else {
- var result6 = parse_STRING_LITERAL_LONG2();
- var result5 = result6 !== null
- ? (function(s) { return {token:'string', value:s} })(result6)
- : null;
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var result4 = parse_STRING_LITERAL1();
- var result3 = result4 !== null
- ? (function(s) { return {token:'string', value:s} })(result4)
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_STRING_LITERAL2();
- var result1 = result2 !== null
- ? (function(s) { return {token:'string', value:s} })(result2)
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[118] String");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_IRIref() {
- var cacheKey = 'IRIref@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result4 = parse_IRI_REF();
- var result3 = result4 !== null
- ? (function(iri) { return {token: 'uri', prefix:null, suffix:null, value:iri} })(result4)
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_PrefixedName();
- var result1 = result2 !== null
- ? (function(p) { return p })(result2)
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[119] IRIref");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PrefixedName() {
- var cacheKey = 'PrefixedName@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result4 = parse_PNAME_LN();
- var result3 = result4 !== null
- ? (function(p) { return {token: 'uri', prefix:p[0], suffix:p[1], value:null } })(result4)
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_PNAME_NS();
- var result1 = result2 !== null
- ? (function(p) { return {token: 'uri', prefix:p, suffix:'', value:null } })(result2)
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[120] PrefixedName");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_BlankNode() {
- var cacheKey = 'BlankNode@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result4 = parse_BLANK_NODE_LABEL();
- var result3 = result4 !== null
- ? (function(l) { return {token:'blank', label:l}})(result4)
- : null;
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_ANON();
- var result1 = result2 !== null
- ? (function() { GlobalBlankNodeCounter++; return {token:'blank', label:''+GlobalBlankNodeCounter} })()
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[121] BlankNode");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_IRI_REF() {
- var cacheKey = 'IRI_REF@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "<") {
- var result2 = "<";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"<\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^<>"{} | ^\\]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[^<>\"{} | ^\\\\]");
- }
- }
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^<>"{} | ^\\]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[^<>\"{} | ^\\\\]");
- }
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === ">") {
- var result4 = ">";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\">\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(iri_ref) { return iri_ref.join('') })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[122] IRI_REF");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PNAME_NS() {
- var cacheKey = 'PNAME_NS@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result4 = parse_PN_PREFIX();
- var result2 = result4 !== null ? result4 : '';
- if (result2 !== null) {
- if (input.substr(pos, 1) === ":") {
- var result3 = ":";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\":\"");
- }
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(p) { return p })(result1[0])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[123] PNAME_NS");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PNAME_LN() {
- var cacheKey = 'PNAME_LN@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = parse_PNAME_NS();
- if (result2 !== null) {
- var result3 = parse_PN_LOCAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(p, s) { return [p, s] })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[124] PNAME_LN");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_BLANK_NODE_LABEL() {
- var cacheKey = 'BLANK_NODE_LABEL@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 2) === "_:") {
- var result2 = "_:";
- pos += 2;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"_:\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_PN_LOCAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(l) { return l })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[125] BLANK_NODE_LABEL");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_VAR1() {
- var cacheKey = 'VAR1@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "?") {
- var result2 = "?";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"?\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_VARNAME();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(v) { return v })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[126] VAR1");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_VAR2() {
- var cacheKey = 'VAR2@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "$") {
- var result2 = "$";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"$\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_VARNAME();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(v) { return v })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[127] VAR2");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_LANGTAG() {
- var cacheKey = 'LANGTAG@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "@") {
- var result2 = "@";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"@\"");
- }
- }
- if (result2 !== null) {
- if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
- var result9 = input.charAt(pos);
- pos++;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z]");
- }
- }
- if (result9 !== null) {
- var result3 = [];
- while (result9 !== null) {
- result3.push(result9);
- if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
- var result9 = input.charAt(pos);
- pos++;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z]");
- }
- }
- }
- } else {
- var result3 = null;
- }
- if (result3 !== null) {
- var result4 = [];
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "-") {
- var result6 = "-";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result6 !== null) {
- if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z0-9]");
- }
- }
- if (result8 !== null) {
- var result7 = [];
- while (result8 !== null) {
- result7.push(result8);
- if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z0-9]");
- }
- }
- }
- } else {
- var result7 = null;
- }
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- while (result5 !== null) {
- result4.push(result5);
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "-") {
- var result6 = "-";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result6 !== null) {
- if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z0-9]");
- }
- }
- if (result8 !== null) {
- var result7 = [];
- while (result8 !== null) {
- result7.push(result8);
- if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[a-zA-Z0-9]");
- }
- }
- }
- } else {
- var result7 = null;
- }
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(a, b) {
-
- if(b.length===0) {
- return ("@"+a.join('')).toLowerCase();
- } else {
- return ("@"+a.join('')+"-"+b[0][1].join('')).toLowerCase();
- }
- })(result1[1], result1[2])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[128] LANGTAG");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_INTEGER() {
- var cacheKey = 'INTEGER@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result2 !== null) {
- var result1 = [];
- while (result2 !== null) {
- result1.push(result2);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result1 = null;
- }
- var result0 = result1 !== null
- ? (function(d) {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#integer";
- lit.value = flattenString(d);
- return lit;
- })(result1)
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[129] INTEGER");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DECIMAL() {
- var cacheKey = 'DECIMAL@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos1 = pos;
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result12 = input.charAt(pos);
- pos++;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result12 !== null) {
- var result8 = [];
- while (result12 !== null) {
- result8.push(result12);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result12 = input.charAt(pos);
- pos++;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result8 = null;
- }
- if (result8 !== null) {
- if (input.substr(pos, 1) === ".") {
- var result9 = ".";
- pos += 1;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result9 !== null) {
- var result10 = [];
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
- pos++;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- while (result11 !== null) {
- result10.push(result11);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
- pos++;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- if (result10 !== null) {
- var result7 = [result8, result9, result10];
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- var result6 = result7 !== null
- ? (function(a, b, c) {
-
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#decimal";
- lit.value = flattenString([a,b,c]);
- return lit;
- })(result7[0], result7[1], result7[2])
- : null;
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === ".") {
- var result3 = ".";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result3 !== null) {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result5 !== null) {
- var result4 = [];
- while (result5 !== null) {
- result4.push(result5);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result4 = null;
- }
- if (result4 !== null) {
- var result2 = [result3, result4];
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- var result1 = result2 !== null
- ? (function(a, b) {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#decimal";
- lit.value = flattenString([a,b]);
- return lit;
- })(result2[0], result2[1])
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[130] DECIMAL");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DOUBLE() {
- var cacheKey = 'DOUBLE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos2 = pos;
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result19 = input.charAt(pos);
- pos++;
- } else {
- var result19 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result19 !== null) {
- var result14 = [];
- while (result19 !== null) {
- result14.push(result19);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result19 = input.charAt(pos);
- pos++;
- } else {
- var result19 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result14 = null;
- }
- if (result14 !== null) {
- if (input.substr(pos, 1) === ".") {
- var result15 = ".";
- pos += 1;
- } else {
- var result15 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result15 !== null) {
- var result16 = [];
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result18 = input.charAt(pos);
- pos++;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- while (result18 !== null) {
- result16.push(result18);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result18 = input.charAt(pos);
- pos++;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- if (result16 !== null) {
- var result17 = parse_EXPONENT();
- if (result17 !== null) {
- var result13 = [result14, result15, result16, result17];
- } else {
- var result13 = null;
- pos = savedPos2;
- }
- } else {
- var result13 = null;
- pos = savedPos2;
- }
- } else {
- var result13 = null;
- pos = savedPos2;
- }
- } else {
- var result13 = null;
- pos = savedPos2;
- }
- var result12 = result13 !== null
- ? (function(a, b, c, e) {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#double";
- lit.value = flattenString([a,b,c,e]);
- return lit;
- })(result13[0], result13[1], result13[2], result13[3])
- : null;
- if (result12 !== null) {
- var result0 = result12;
- } else {
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ".") {
- var result8 = ".";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result8 !== null) {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
- pos++;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result11 !== null) {
- var result9 = [];
- while (result11 !== null) {
- result9.push(result11);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
- pos++;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result9 = null;
- }
- if (result9 !== null) {
- var result10 = parse_EXPONENT();
- if (result10 !== null) {
- var result7 = [result8, result9, result10];
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- } else {
- var result7 = null;
- pos = savedPos1;
- }
- var result6 = result7 !== null
- ? (function(a, b, c) {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#double";
- lit.value = flattenString([a,b,c]);
- return lit;
- })(result7[0], result7[1], result7[2])
- : null;
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result5 !== null) {
- var result3 = [];
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result3 = null;
- }
- if (result3 !== null) {
- var result4 = parse_EXPONENT();
- if (result4 !== null) {
- var result2 = [result3, result4];
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- var result1 = result2 !== null
- ? (function(a, b) {
- lit = {};
- lit.token = "literal";
- lit.lang = null;
- lit.type = "http://www.w3.org/2001/XMLSchema#double";
- lit.value = flattenString([a,b]);
- return lit;
- })(result2[0], result2[1])
- : null;
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[131] DOUBLE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_INTEGER_POSITIVE() {
- var cacheKey = 'INTEGER_POSITIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "+") {
- var result2 = "+";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"+\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_INTEGER();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "+"+d.value; return d; })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[132] INTEGER_POSITIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DECIMAL_POSITIVE() {
- var cacheKey = 'DECIMAL_POSITIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "+") {
- var result2 = "+";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"+\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_DECIMAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "+"+d.value; return d })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[133] DECIMAL_POSITIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DOUBLE_POSITIVE() {
- var cacheKey = 'DOUBLE_POSITIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "+") {
- var result2 = "+";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"+\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_DOUBLE();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "+"+d.value; return d })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[134] DOUBLE_POSITIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_INTEGER_NEGATIVE() {
- var cacheKey = 'INTEGER_NEGATIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "-") {
- var result2 = "-";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_INTEGER();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[135] INTEGER_NEGATIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DECIMAL_NEGATIVE() {
- var cacheKey = 'DECIMAL_NEGATIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "-") {
- var result2 = "-";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_DECIMAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[136] DECIMAL_NEGATIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_DOUBLE_NEGATIVE() {
- var cacheKey = 'DOUBLE_NEGATIVE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "-") {
- var result2 = "-";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result2 !== null) {
- var result3 = parse_DOUBLE();
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[137] DOUBLE_NEGATIVE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_EXPONENT() {
- var cacheKey = 'EXPONENT@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos).match(/^[eE]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[eE]");
- }
- }
- if (result2 !== null) {
- if (input.substr(pos).match(/^[+\-]/) !== null) {
- var result6 = input.charAt(pos);
- pos++;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("[+\\-]");
- }
- }
- var result3 = result6 !== null ? result6 : '';
- if (result3 !== null) {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result5 !== null) {
- var result4 = [];
- while (result5 !== null) {
- result4.push(result5);
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- }
- } else {
- var result4 = null;
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(a, b, c) { return flattenString([a,b,c]) })(result1[0], result1[1], result1[2])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[138] EXPONENT");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_STRING_LITERAL1() {
- var cacheKey = 'STRING_LITERAL1@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "'") {
- var result2 = "'";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"'\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^'\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^'\\\\\\n\\r]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^'\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^'\\\\\\n\\r]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "'") {
- var result4 = "'";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"'\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(content) { return flattenString(content) })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[139] STRING_LITERAL1");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_STRING_LITERAL2() {
- var cacheKey = 'STRING_LITERAL2@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "\"") {
- var result2 = "\"";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^"\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^\"\\\\\\n\\r]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^"\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^\"\\\\\\n\\r]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "\"") {
- var result4 = "\"";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(content) { return flattenString(content) })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[140] STRING_LITERAL2");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_STRING_LITERAL_LONG1() {
- var cacheKey = 'STRING_LITERAL_LONG1@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 3) === "'''") {
- var result2 = "'''";
- pos += 3;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"'''\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^'\\]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^'\\\\]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^'\\]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^'\\\\]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 3) === "'''") {
- var result4 = "'''";
- pos += 3;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"'''\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(content) { return flattenString(content) })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[141] STRING_LITERAL_LONG1");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_STRING_LITERAL_LONG2() {
- var cacheKey = 'STRING_LITERAL_LONG2@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 3) === "\"\"\"") {
- var result2 = "\"\"\"";
- pos += 3;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\\\"\\\"\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^"\\]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^\"\\\\]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^"\\]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[^\"\\\\]");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 3) === "\"\"\"") {
- var result4 = "\"\"\"";
- pos += 3;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\\\"\\\"\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(content) { return flattenString(content) })(result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[142] STRING_LITERAL_LONG2");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_ECHAR() {
- var cacheKey = 'ECHAR@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "\\") {
- var result1 = "\\";
- pos += 1;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\\\"");
- }
- }
- if (result1 !== null) {
- if (input.substr(pos).match(/^[tbnrf"']/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[tbnrf\"']");
- }
- }
- if (result2 !== null) {
- var result0 = [result1, result2];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[143] ECHAR");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NIL() {
- var cacheKey = 'NIL@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "(") {
- var result2 = "(";
- pos += 1;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result2 !== null) {
- var result3 = [];
- var result5 = parse_WS();
- while (result5 !== null) {
- result3.push(result5);
- var result5 = parse_WS();
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result4 = ")";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function() {
-
- return {token: "triplesnodecollection",
- triplesContext:[],
- chainSubject:[{token:'uri', value:"http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"}]};
- })()
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[144] NIL");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_WS() {
- var cacheKey = 'WS@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos).match(/^[ ]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[ ]");
- }
- }
- if (result5 !== null) {
- var result0 = result5;
- } else {
- if (input.substr(pos).match(/^[ ]/) !== null) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("[ ]");
- }
- }
- if (result4 !== null) {
- var result0 = result4;
- } else {
- if (input.substr(pos).match(/^[\r]/) !== null) {
- var result3 = input.charAt(pos);
- pos++;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("[\\r]");
- }
- }
- if (result3 !== null) {
- var result0 = result3;
- } else {
- if (input.substr(pos).match(/^[\n]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[\\n]");
- }
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_COMMENT();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[145] WS");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_COMMENT() {
- var cacheKey = 'COMMENT@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "#") {
- var result1 = "#";
- pos += 1;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"#\"");
- }
- }
- if (result1 !== null) {
- var result2 = [];
- if (input.substr(pos).match(/^[^\n\r]/) !== null) {
- var result3 = input.charAt(pos);
- pos++;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("[^\\n\\r]");
- }
- }
- while (result3 !== null) {
- result2.push(result3);
- if (input.substr(pos).match(/^[^\n\r]/) !== null) {
- var result3 = input.charAt(pos);
- pos++;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("[^\\n\\r]");
- }
- }
- }
- if (result2 !== null) {
- var result0 = [result1, result2];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed(" COMMENT");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_ANON() {
- var cacheKey = 'ANON@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "[") {
- var result1 = "[";
- pos += 1;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"[\"");
- }
- }
- if (result1 !== null) {
- var result2 = [];
- var result4 = parse_WS();
- while (result4 !== null) {
- result2.push(result4);
- var result4 = parse_WS();
- }
- if (result2 !== null) {
- if (input.substr(pos, 1) === "]") {
- var result3 = "]";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"]\"");
- }
- }
- if (result3 !== null) {
- var result0 = [result1, result2, result3];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[146] ANON");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PN_CHARS_BASE() {
- var cacheKey = 'PN_CHARS_BASE@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos).match(/^[A-Z]/) !== null) {
- var result14 = input.charAt(pos);
- pos++;
- } else {
- var result14 = null;
- if (reportMatchFailures) {
- matchFailed("[A-Z]");
- }
- }
- if (result14 !== null) {
- var result0 = result14;
- } else {
- if (input.substr(pos).match(/^[a-z]/) !== null) {
- var result13 = input.charAt(pos);
- pos++;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("[a-z]");
- }
- }
- if (result13 !== null) {
- var result0 = result13;
- } else {
- if (input.substr(pos).match(/^[\xC0-\xD6]/) !== null) {
- var result12 = input.charAt(pos);
- pos++;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xC0-\\xD6]");
- }
- }
- if (result12 !== null) {
- var result0 = result12;
- } else {
- if (input.substr(pos).match(/^[\xD8-\xF6]/) !== null) {
- var result11 = input.charAt(pos);
- pos++;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xD8-\\xF6]");
- }
- }
- if (result11 !== null) {
- var result0 = result11;
- } else {
- if (input.substr(pos).match(/^[\xF8-\u02FF]/) !== null) {
- var result10 = input.charAt(pos);
- pos++;
- } else {
- var result10 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xF8-\\u02FF]");
- }
- }
- if (result10 !== null) {
- var result0 = result10;
- } else {
- if (input.substr(pos).match(/^[\u0370-\u037D]/) !== null) {
- var result9 = input.charAt(pos);
- pos++;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u0370-\\u037D]");
- }
- }
- if (result9 !== null) {
- var result0 = result9;
- } else {
- if (input.substr(pos).match(/^[\u037F-\u1FFF]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u037F-\\u1FFF]");
- }
- }
- if (result8 !== null) {
- var result0 = result8;
- } else {
- if (input.substr(pos).match(/^[\u200C-\u200D]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u200C-\\u200D]");
- }
- }
- if (result7 !== null) {
- var result0 = result7;
- } else {
- if (input.substr(pos).match(/^[\u2070-\u218F]/) !== null) {
- var result6 = input.charAt(pos);
- pos++;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u2070-\\u218F]");
- }
- }
- if (result6 !== null) {
- var result0 = result6;
- } else {
- if (input.substr(pos).match(/^[\u2C00-\u2FEF]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u2C00-\\u2FEF]");
- }
- }
- if (result5 !== null) {
- var result0 = result5;
- } else {
- if (input.substr(pos).match(/^[\u3001-\uD7FF]/) !== null) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u3001-\\uD7FF]");
- }
- }
- if (result4 !== null) {
- var result0 = result4;
- } else {
- if (input.substr(pos).match(/^[\uF900-\uFDCF]/) !== null) {
- var result3 = input.charAt(pos);
- pos++;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("[\\uF900-\\uFDCF]");
- }
- }
- if (result3 !== null) {
- var result0 = result3;
- } else {
- if (input.substr(pos).match(/^[\uFDF0-\uFFFD]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[\\uFDF0-\\uFFFD]");
- }
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- if (input.substr(pos).match(/^[\u1000-\uEFFF]/) !== null) {
- var result1 = input.charAt(pos);
- pos++;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u1000-\\uEFFF]");
- }
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[147] PN_CHARS_BASE");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PN_CHARS_U() {
- var cacheKey = 'PN_CHARS_U@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result2 = parse_PN_CHARS_BASE();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- if (input.substr(pos, 1) === "_") {
- var result1 = "_";
- pos += 1;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"_\"");
- }
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[148] PN_CHARS_U");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_VARNAME() {
- var cacheKey = 'VARNAME@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result11 = parse_PN_CHARS_U();
- if (result11 !== null) {
- var result2 = result11;
- } else {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result10 = input.charAt(pos);
- pos++;
- } else {
- var result10 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result10 !== null) {
- var result2 = result10;
- } else {
- var result2 = null;;
- };
- }
- if (result2 !== null) {
- var result3 = [];
- var result9 = parse_PN_CHARS_U();
- if (result9 !== null) {
- var result4 = result9;
- } else {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result8 !== null) {
- var result4 = result8;
- } else {
- if (input.substr(pos).match(/^[\xB7]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xB7]");
- }
- }
- if (result7 !== null) {
- var result4 = result7;
- } else {
- if (input.substr(pos).match(/^[\u0300-\u036F]/) !== null) {
- var result6 = input.charAt(pos);
- pos++;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u0300-\\u036F]");
- }
- }
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos).match(/^[\u203F-\u2040]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u203F-\\u2040]");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- };
- };
- };
- }
- while (result4 !== null) {
- result3.push(result4);
- var result9 = parse_PN_CHARS_U();
- if (result9 !== null) {
- var result4 = result9;
- } else {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result8 = input.charAt(pos);
- pos++;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result8 !== null) {
- var result4 = result8;
- } else {
- if (input.substr(pos).match(/^[\xB7]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xB7]");
- }
- }
- if (result7 !== null) {
- var result4 = result7;
- } else {
- if (input.substr(pos).match(/^[\u0300-\u036F]/) !== null) {
- var result6 = input.charAt(pos);
- pos++;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u0300-\\u036F]");
- }
- }
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos).match(/^[\u203F-\u2040]/) !== null) {
- var result5 = input.charAt(pos);
- pos++;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u203F-\\u2040]");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- };
- };
- };
- }
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(init, rpart) { return init+rpart.join('') })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[149] VARNAME");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PN_CHARS() {
- var cacheKey = 'PN_CHARS@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var result6 = parse_PN_CHARS_U();
- if (result6 !== null) {
- var result0 = result6;
- } else {
- if (input.substr(pos, 1) === "-") {
- var result5 = "-";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result5 !== null) {
- var result0 = result5;
- } else {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result4 !== null) {
- var result0 = result4;
- } else {
- if (input.substr(pos).match(/^[\xB7]/) !== null) {
- var result3 = input.charAt(pos);
- pos++;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("[\\xB7]");
- }
- }
- if (result3 !== null) {
- var result0 = result3;
- } else {
- if (input.substr(pos).match(/^[\u0300-\u036F]/) !== null) {
- var result2 = input.charAt(pos);
- pos++;
- } else {
- var result2 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u0300-\\u036F]");
- }
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- if (input.substr(pos).match(/^[\u203F-\u2040]/) !== null) {
- var result1 = input.charAt(pos);
- pos++;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("[\\u203F-\\u2040]");
- }
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- };
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[150] PN_CHARS");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PN_PREFIX() {
- var cacheKey = 'PN_PREFIX@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = parse_PN_CHARS_BASE();
- if (result2 !== null) {
- var result3 = [];
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos, 1) === ".") {
- var result5 = ".";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- }
- while (result4 !== null) {
- result3.push(result4);
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos, 1) === ".") {
- var result5 = ".";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- }
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(base, rest) { if(rest[rest.length-1] == '.'){
- throw new Error("Wrong PN_PREFIX, cannot finish with '.'")
- } else {
- return base + rest.join('');
- }})(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[151] PN_PREFIX");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PN_LOCAL() {
- var cacheKey = 'PN_LOCAL@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result8 = parse_PN_CHARS_U();
- if (result8 !== null) {
- var result2 = result8;
- } else {
- if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result7 = input.charAt(pos);
- pos++;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("[0-9]");
- }
- }
- if (result7 !== null) {
- var result2 = result7;
- } else {
- var result2 = null;;
- };
- }
- if (result2 !== null) {
- var result3 = [];
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos, 1) === ".") {
- var result5 = ".";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- }
- while (result4 !== null) {
- result3.push(result4);
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
- } else {
- if (input.substr(pos, 1) === ".") {
- var result5 = ".";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result5 !== null) {
- var result4 = result5;
- } else {
- var result4 = null;;
- };
- }
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(base, rest) {
- return base + rest.join('');
- })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[152] PN_LOCAL");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function buildErrorMessage() {
- function buildExpected(failuresExpected) {
- failuresExpected.sort();
-
- var lastFailure = null;
- var failuresExpectedUnique = [];
- for (var i = 0; i < failuresExpected.length; i++) {
- if (failuresExpected[i] !== lastFailure) {
- failuresExpectedUnique.push(failuresExpected[i]);
- lastFailure = failuresExpected[i];
- }
- }
-
- switch (failuresExpectedUnique.length) {
- case 0:
- return 'end of input';
- case 1:
- return failuresExpectedUnique[0];
- default:
- return failuresExpectedUnique.slice(0, failuresExpectedUnique.length - 1).join(', ')
- + ' or '
- + failuresExpectedUnique[failuresExpectedUnique.length - 1];
- }
- }
-
- var expected = buildExpected(rightmostMatchFailuresExpected);
- var actualPos = Math.max(pos, rightmostMatchFailuresPos);
- var actual = actualPos < input.length
- ? quote(input.charAt(actualPos))
- : 'end of input';
-
- return 'Expected ' + expected + ' but ' + actual + ' found.';
- }
-
- function computeErrorPosition() {
- /*
- * The first idea was to use |String.split| to break the input up to the
- * error position along newlines and derive the line and column from
- * there. However IE's |split| implementation is so broken that it was
- * enough to prevent it.
- */
-
- var line = 1;
- var column = 1;
- var seenCR = false;
-
- for (var i = 0; i < rightmostMatchFailuresPos; i++) {
- var ch = input.charAt(i);
- if (ch === '\n') {
- if (!seenCR) { line++; }
- column = 1;
- seenCR = false;
- } else if (ch === '\r' | ch === '\u2028' || ch === '\u2029') {
- line++;
- column = 1;
- seenCR = true;
- } else {
- column++;
- seenCR = false;
- }
- }
-
- return { line: line, column: column };
- }
-
-
-
- var flattenString = function(arrs) {
-
- var acum ="";
-
- for(var i=0; i< arrs.length; i++) {
-
- if(typeof(arrs[i])==='string') {
-
- acum = acum + arrs[i];
-
- } else {
-
- acum = acum + arrs[i].join('');
-
- }
-
- }
-
-
-
- return acum;
-
- }
-
-
-
-
-
- var GlobalBlankNodeCounter = 0;
-
-
-
- var prefixes = {};
-
-
-
- var registerPrefix = function(prefix, uri) {
-
- prefixes[prefix] = uri;
-
- }
-
-
-
- var registerDefaultPrefix = function(uri) {
-
- prefixes[null] = uri;
-
- }
-
-
-
- var result = parseFunctions[startRule]();
-
- /*
- * The parser is now in one of the following three states:
- *
- * 1. The parser successfully parsed the whole input.
- *
- * - |result !== null|
- * - |pos === input.length|
- * - |rightmostMatchFailuresExpected| may or may not contain something
- *
- * 2. The parser successfully parsed only a part of the input.
- *
- * - |result !== null|
- * - |pos < input.length|
- * - |rightmostMatchFailuresExpected| may or may not contain something
- *
- * 3. The parser did not successfully parse any part of the input.
- *
- * - |result === null|
- * - |pos === 0|
- * - |rightmostMatchFailuresExpected| contains at least one failure
- *
- * All code following this comment (including called functions) must
- * handle these states.
- */
- if (result === null || pos !== input.length) {
- var errorPosition = computeErrorPosition();
- throw new this.SyntaxError(
- buildErrorMessage(),
- errorPosition.line,
- errorPosition.column
- );
- }
-
- return result;
- },
-
- /* Returns the parser source code. */
- toSource: function() { return this._source; }
- };
-
- /* Thrown when a parser encounters a syntax error. */
-
- result.SyntaxError = function(message, line, column) {
- this.name = 'SyntaxError';
- this.message = message;
- this.line = line;
- this.column = column;
- };
-
- result.SyntaxError.prototype = Error.prototype;
-
- return result;
-})();
-
-TurtleParser.parser.parse = function(data, graph) {
- var quads = [];
-
- var result = TurtleParser.parser.innerParse(data);
- var namespaces = {};
- var env = {namespaces: namespaces, base:'', blankCounter: 0};
-
- statementCounter = 0;
-
- for(var i=0; i
- * W3C's note
- */
-AbstractQueryTree.AbstractQueryTree = function(params) {
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype.parseQueryString = function(query_string) {
- var syntaxTree = SparqlParser.parser.parse(query_string);
- return syntaxTree;
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype.parseExecutableUnit = function(executableUnit) {
- if(executableUnit.kind === 'select') {
- return this.parseSelect(executableUnit);
- } else if(executableUnit.kind === 'ask') {
- return this.parseSelect(executableUnit);
- } else if(executableUnit.kind === 'modify') {
- return this.parseSelect(executableUnit);
- } else if(executableUnit.kind === 'construct') {
- return this.parseSelect(executableUnit);
- } else if(executableUnit.kind === 'insertdata') {
- return this.parseInsertData(executableUnit);
- } else if(executableUnit.kind === 'deletedata') {
- return this.parseInsertData(executableUnit);
- } else if(executableUnit.kind === 'load') {
- return executableUnit;
- } else if(executableUnit.kind === 'clear') {
- return executableUnit;
- } else if(executableUnit.kind === 'drop') {
- return executableUnit;
- } else if(executableUnit.kind === 'create') {
- return executableUnit;
- } else {
- throw new Error('unknown executable unit: ' + executableUnit.kind);
- }
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype.parseSelect = function(syntaxTree){
-
- if(syntaxTree == null) {
- console.log("error parsing query");
- return null;
- } else {
- var env = {};
- syntaxTree.pattern = this.build(syntaxTree.pattern, env);
- return syntaxTree;
- }
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype.parseInsertData = function(syntaxTree){
- if(syntaxTree == null) {
- console.log("error parsing query");
- return null;
- } else {
- return syntaxTree;
- }
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype.build = function(node, env) {
- if(node.token === 'groupgraphpattern') {
- return this._buildGroupGraphPattern(node, env);
- } else if (node.token === 'basicgraphpattern') {
- return { kind: 'BGP',
- value: node.triplesContext };
- } else if (node.token === 'graphunionpattern') {
- var a = this.build(node.value[0],env);
- var b = this.build(node.value[1],env);
-
- return { kind: 'UNION',
- value: [a,b] };
- } else if(node.token === 'graphgraphpattern') {
- var c = this.build(node.value, env);
- return { kind: 'GRAPH',
- value: c,
- graph: node.graph };
- } else {
- throw new Error("not supported token in query:"+node.token);
- }
-};
-
-AbstractQueryTree.AbstractQueryTree.prototype._buildGroupGraphPattern = function(node, env) {
- var f = (node.filters || []);
- var g = {kind: "EMPTY_PATTERN"};
-
- for(var i=0; i rightmostMatchFailuresPos) {
- rightmostMatchFailuresPos = pos;
- rightmostMatchFailuresExpected = [];
- }
-
- rightmostMatchFailuresExpected.push(failure);
- }
-
- function parse_SPARQL() {
- var cacheKey = 'SPARQL@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result2 = parse_Query();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_Update();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_Query() {
- var cacheKey = 'Query@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = parse_Prologue();
- if (result2 !== null) {
- var result7 = parse_SelectQuery();
- if (result7 !== null) {
- var result3 = result7;
- } else {
- var result6 = parse_ConstructQuery();
- if (result6 !== null) {
- var result3 = result6;
- } else {
- var result5 = parse_DescribeQuery();
- if (result5 !== null) {
- var result3 = result5;
- } else {
- var result4 = parse_AskQuery();
- if (result4 !== null) {
- var result3 = result4;
- } else {
- var result3 = null;;
- };
- };
- };
- }
- if (result3 !== null) {
- var result1 = [result2, result3];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(p, q) {
- return {token: 'query',
- kind: 'query',
- prologue: p,
- units: [q]};
- })(result1[0], result1[1])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[2] Query");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_Prologue() {
- var cacheKey = 'Prologue@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result7 = parse_BaseDecl();
- var result2 = result7 !== null ? result7 : '';
- if (result2 !== null) {
- var result3 = [];
- var result6 = parse_WS();
- while (result6 !== null) {
- result3.push(result6);
- var result6 = parse_WS();
- }
- if (result3 !== null) {
- var result4 = [];
- var result5 = parse_PrefixDecl();
- while (result5 !== null) {
- result4.push(result5);
- var result5 = parse_PrefixDecl();
- }
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(b, pfx) {
- return { token: 'prologue',
- base: b,
- prefixes: pfx }
- })(result1[0], result1[2])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[3] Prologue");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_BaseDecl() {
- var cacheKey = 'BaseDecl@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result2.push(result18);
- var result18 = parse_WS();
- }
- if (result2 !== null) {
- if (input.substr(pos, 1) === "B") {
- var result17 = "B";
- pos += 1;
- } else {
- var result17 = null;
- if (reportMatchFailures) {
- matchFailed("\"B\"");
- }
- }
- if (result17 !== null) {
- var result3 = result17;
- } else {
- if (input.substr(pos, 1) === "b") {
- var result16 = "b";
- pos += 1;
- } else {
- var result16 = null;
- if (reportMatchFailures) {
- matchFailed("\"b\"");
- }
- }
- if (result16 !== null) {
- var result3 = result16;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result15 = "A";
- pos += 1;
- } else {
- var result15 = null;
- if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result15 !== null) {
- var result4 = result15;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result14 = "a";
- pos += 1;
- } else {
- var result14 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result14 !== null) {
- var result4 = result14;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result13 = "S";
- pos += 1;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result13 !== null) {
- var result5 = result13;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result12 = "s";
- pos += 1;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result12 !== null) {
- var result5 = result12;
- } else {
- var result5 = null;;
- };
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result11 = "E";
- pos += 1;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result11 !== null) {
- var result6 = result11;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result10 = "e";
- pos += 1;
- } else {
- var result10 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result10 !== null) {
- var result6 = result10;
- } else {
- var result6 = null;;
- };
- }
- if (result6 !== null) {
- var result7 = [];
- var result9 = parse_WS();
- while (result9 !== null) {
- result7.push(result9);
- var result9 = parse_WS();
- }
- if (result7 !== null) {
- var result8 = parse_IRI_REF();
- if (result8 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(i) {
- registerDefaultPrefix(i);
-
- base = {};
- base.token = 'base';
- base.value = i;
-
- return base;
- })(result1[6])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[4] BaseDecl");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_PrefixDecl() {
- var cacheKey = 'PrefixDecl@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = [];
- var result27 = parse_WS();
- while (result27 !== null) {
- result2.push(result27);
- var result27 = parse_WS();
- }
- if (result2 !== null) {
- if (input.substr(pos, 1) === "P") {
- var result26 = "P";
- pos += 1;
- } else {
- var result26 = null;
- if (reportMatchFailures) {
- matchFailed("\"P\"");
- }
- }
- if (result26 !== null) {
- var result3 = result26;
- } else {
- if (input.substr(pos, 1) === "p") {
- var result25 = "p";
- pos += 1;
- } else {
- var result25 = null;
- if (reportMatchFailures) {
- matchFailed("\"p\"");
- }
- }
- if (result25 !== null) {
- var result3 = result25;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "R") {
- var result24 = "R";
- pos += 1;
- } else {
- var result24 = null;
- if (reportMatchFailures) {
- matchFailed("\"R\"");
- }
- }
- if (result24 !== null) {
- var result4 = result24;
- } else {
- if (input.substr(pos, 1) === "r") {
- var result23 = "r";
- pos += 1;
- } else {
- var result23 = null;
- if (reportMatchFailures) {
- matchFailed("\"r\"");
- }
- }
- if (result23 !== null) {
- var result4 = result23;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result22 = "E";
- pos += 1;
- } else {
- var result22 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result22 !== null) {
- var result5 = result22;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result21 = "e";
- pos += 1;
- } else {
- var result21 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result21 !== null) {
- var result5 = result21;
- } else {
- var result5 = null;;
- };
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === "F") {
- var result20 = "F";
- pos += 1;
- } else {
- var result20 = null;
- if (reportMatchFailures) {
- matchFailed("\"F\"");
- }
- }
- if (result20 !== null) {
- var result6 = result20;
- } else {
- if (input.substr(pos, 1) === "f") {
- var result19 = "f";
- pos += 1;
- } else {
- var result19 = null;
- if (reportMatchFailures) {
- matchFailed("\"f\"");
- }
- }
- if (result19 !== null) {
- var result6 = result19;
- } else {
- var result6 = null;;
- };
- }
- if (result6 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result18 = "I";
- pos += 1;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result18 !== null) {
- var result7 = result18;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result17 = "i";
- pos += 1;
- } else {
- var result17 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result17 !== null) {
- var result7 = result17;
- } else {
- var result7 = null;;
- };
- }
- if (result7 !== null) {
- if (input.substr(pos, 1) === "X") {
- var result16 = "X";
- pos += 1;
- } else {
- var result16 = null;
- if (reportMatchFailures) {
- matchFailed("\"X\"");
- }
- }
- if (result16 !== null) {
- var result8 = result16;
- } else {
- if (input.substr(pos, 1) === "x") {
- var result15 = "x";
- pos += 1;
- } else {
- var result15 = null;
- if (reportMatchFailures) {
- matchFailed("\"x\"");
- }
- }
- if (result15 !== null) {
- var result8 = result15;
- } else {
- var result8 = null;;
- };
- }
- if (result8 !== null) {
- var result9 = [];
- var result14 = parse_WS();
- while (result14 !== null) {
- result9.push(result14);
- var result14 = parse_WS();
- }
- if (result9 !== null) {
- var result10 = parse_PNAME_NS();
- if (result10 !== null) {
- var result11 = [];
- var result13 = parse_WS();
- while (result13 !== null) {
- result11.push(result13);
- var result13 = parse_WS();
- }
- if (result11 !== null) {
- var result12 = parse_IRI_REF();
- if (result12 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(p, l) {
-
- registerPrefix(p,l);
-
- prefix = {};
- prefix.token = 'prefix';
- prefix.prefix = p;
- prefix.local = l;
-
- return prefix;
- })(result1[8], result1[10])
- : null;
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[5] PrefixDecl");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_SelectQuery() {
- var cacheKey = 'SelectQuery@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = parse_SelectClause();
- if (result2 !== null) {
- var result3 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result3.push(result15);
- var result15 = parse_WS();
- }
- if (result3 !== null) {
- var result4 = [];
- var result14 = parse_DatasetClause();
- while (result14 !== null) {
- result4.push(result14);
- var result14 = parse_DatasetClause();
- }
- if (result4 !== null) {
- var result5 = [];
- var result13 = parse_WS();
- while (result13 !== null) {
- result5.push(result13);
- var result13 = parse_WS();
- }
- if (result5 !== null) {
- var result6 = parse_WhereClause();
- if (result6 !== null) {
- var result7 = [];
- var result12 = parse_WS();
- while (result12 !== null) {
- result7.push(result12);
- var result12 = parse_WS();
- }
- if (result7 !== null) {
- var result8 = parse_SolutionModifier();
- if (result8 !== null) {
- var result9 = [];
- var result11 = parse_WS();
- while (result11 !== null) {
- result9.push(result11);
- var result11 = parse_WS();
- }
- if (result9 !== null) {
- var result10 = parse_BindingsClause();
- if (result10 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8, result9, result10];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- var result0 = result1 !== null
- ? (function(s, gs, w, sm) {
-
- var dataset = {'named':[], 'default':[]};
- for(var i=0; i b.
+ */
+Processor.prototype.deepCompareBlankNodes = function(a, b)
+{
+ var rval = 0;
+
+ // compare IRIs
+ var iriA = a['@id'];
+ var iriB = b['@id'];
+ if(iriA === iriB)
+ {
+ rval = 0;
+ }
+ else
+ {
+ // do shallow compare first
+ rval = this.shallowCompareBlankNodes(a, b);
+
+ // deep comparison is necessary
+ if(rval === 0)
+ {
+ // compare property edges and then reference edges
+ var dirs = ['props', 'refs'];
+ for(var i = 0; rval === 0 && i < dirs.length; ++i)
+ {
+ // recompute 'a' and 'b' serializations as necessary
+ var dir = dirs[i];
+ var sA = this.serializations[iriA];
+ var sB = this.serializations[iriB];
+ if(sA[dir] === null)
+ {
+ var mb = new MappingBuilder();
+ if(dir === 'refs')
+ {
+ // keep same mapping and count from 'props' serialization
+ mb.mapping = _clone(sA['props'].m);
+ mb.count = Object.keys(mb.mapping).length + 1;
+ }
+ this.serializeBlankNode(sA, iriA, mb, dir);
+ }
+ if(sB[dir] === null)
+ {
+ var mb = new MappingBuilder();
+ if(dir === 'refs')
+ {
+ // keep same mapping and count from 'props' serialization
+ mb.mapping = _clone(sB['props'].m);
+ mb.count = Object.keys(mb.mapping).length + 1;
+ }
+ this.serializeBlankNode(sB, iriB, mb, dir);
+ }
+
+ // compare serializations
+ rval = _compare(sA[dir].s, sB[dir].s);
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Performs a shallow sort comparison on the given bnodes.
+ *
+ * @param a the first bnode.
+ * @param b the second bnode.
+ *
+ * @return -1 if a < b, 0 if a == b, 1 if a > b.
+ */
+Processor.prototype.shallowCompareBlankNodes = function(a, b)
+{
+ var rval = 0;
+
+ /* ShallowSort Algorithm (when comparing two bnodes):
+ 1. Compare the number of properties.
+ 1.1. The bnode with fewer properties is first.
+ 2. Compare alphabetically sorted-properties.
+ 2.1. The bnode with the alphabetically-first property is first.
+ 3. For each property, compare object values.
+ 4. Compare the number of references.
+ 4.1. The bnode with fewer references is first.
+ 5. Compare sorted references.
+ 5.1. The bnode with the reference iri (vs. bnode) is first.
+ 5.2. The bnode with the alphabetically-first reference iri is first.
+ 5.3. The bnode with the alphabetically-first reference property is first.
+ */
+ var pA = Object.keys(a);
+ var pB = Object.keys(b);
+
+ // step #1
+ rval = _compare(pA.length, pB.length);
+
+ // step #2
+ if(rval === 0)
+ {
+ rval = _compare(pA.sort(), pB.sort());
+ }
+
+ // step #3
+ if(rval === 0)
+ {
+ rval = _compareBlankNodeObjects(a, b);
+ }
+
+ // step #4
+ if(rval === 0)
+ {
+ var edgesA = this.edges.refs[a['@id']].all;
+ var edgesB = this.edges.refs[b['@id']].all;
+ rval = _compare(edgesA.length, edgesB.length);
+ }
+
+ // step #5
+ if(rval === 0)
+ {
+ for(var i = 0; i < edgesA.length && rval === 0; ++i)
+ {
+ rval = this.compareEdges(edgesA[i], edgesB[i]);
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Compares two edges. Edges with an IRI (vs. a bnode ID) come first, then
+ * alphabetically-first IRIs, then alphabetically-first properties. If a blank
+ * node has been canonically named, then blank nodes will be compared after
+ * properties (with a preference for canonically named over non-canonically
+ * named), otherwise they won't be.
+ *
+ * @param a the first edge.
+ * @param b the second edge.
+ *
+ * @return -1 if a < b, 0 if a == b, 1 if a > b.
+ */
+Processor.prototype.compareEdges = function(a, b)
+{
+ var rval = 0;
+
+ var bnodeA = _isBlankNodeIri(a.s);
+ var bnodeB = _isBlankNodeIri(b.s);
+ var c14n = this.ng.c14n;
+
+ // if not both bnodes, one that is a bnode is greater
+ if(bnodeA != bnodeB)
+ {
+ rval = bnodeA ? 1 : -1;
+ }
+ else
+ {
+ if(!bnodeA)
+ {
+ rval = _compare(a.s, b.s);
+ }
+ if(rval === 0)
+ {
+ rval = _compare(a.p, b.p);
+ }
+
+ // do bnode IRI comparison if canonical naming has begun
+ if(rval === 0 && c14n !== null)
+ {
+ var c14nA = c14n.inNamespace(a.s);
+ var c14nB = c14n.inNamespace(b.s);
+ if(c14nA != c14nB)
+ {
+ rval = c14nA ? 1 : -1;
+ }
+ else if(c14nA)
+ {
+ rval = _compare(a.s, b.s);
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Populates the given reference map with all of the subject edges in the
+ * graph. The references will be categorized by the direction of the edges,
+ * where 'props' is for properties and 'refs' is for references to a subject as
+ * an object. The edge direction categories for each IRI will be sorted into
+ * groups 'all' and 'bnodes'.
+ */
+Processor.prototype.collectEdges = function()
+{
+ var refs = this.edges.refs;
+ var props = this.edges.props;
+
+ // collect all references and properties
+ for(var iri in this.subjects)
+ {
+ var subject = this.subjects[iri];
+ for(var key in subject)
+ {
+ if(key !== '@id')
+ {
+ // normalize to array for single codepath
+ var object = subject[key];
+ var tmp = (object.constructor !== Array) ? [object] : object;
+ for(var i in tmp)
+ {
+ var o = tmp[i];
+ if(o.constructor === Object && '@id' in o &&
+ o['@id'] in this.subjects)
+ {
+ var objIri = o['@id'];
+
+ // map object to this subject
+ refs[objIri].all.push({ s: iri, p: key });
+
+ // map this subject to object
+ props[iri].all.push({ s: objIri, p: key });
+ }
+ }
+ }
+ }
+ }
+
+ // create sorted categories
+ var self = this;
+ for(var iri in refs)
+ {
+ refs[iri].all.sort(function(a, b) { return self.compareEdges(a, b); });
+ refs[iri].bnodes = refs[iri].all.filter(function(edge) {
+ return _isBlankNodeIri(edge.s);
+ });
+ }
+ for(var iri in props)
+ {
+ props[iri].all.sort(function(a, b) { return self.compareEdges(a, b); });
+ props[iri].bnodes = props[iri].all.filter(function(edge) {
+ return _isBlankNodeIri(edge.s);
+ });
+ }
+};
+
+/**
+ * Returns true if the given input is a subject and has one of the given types
+ * in the given frame.
+ *
+ * @param input the input.
+ * @param frame the frame with types to look for.
+ *
+ * @return true if the input has one of the given types.
+ */
+var _isType = function(input, frame)
+{
+ var rval = false;
+
+ // check if type(s) are specified in frame and input
+ var type = '@type';
+ if('@type' in frame &&
+ input.constructor === Object && type in input)
+ {
+ var tmp = (input[type].constructor === Array) ?
+ input[type] : [input[type]];
+ var types = (frame[type].constructor === Array) ?
+ frame[type] : [frame[type]];
+ for(var t = 0; t < types.length && !rval; ++t)
+ {
+ type = types[t];
+ for(var i in tmp)
+ {
+ if(tmp[i] === type)
+ {
+ rval = true;
+ break;
+ }
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Returns true if the given input matches the given frame via duck-typing.
+ *
+ * @param input the input.
+ * @param frame the frame to check against.
+ *
+ * @return true if the input matches the frame.
+ */
+var _isDuckType = function(input, frame)
+{
+ var rval = false;
+
+ // frame must not have a specific type
+ var type = '@type';
+ if(!(type in frame))
+ {
+ // get frame properties that must exist on input
+ var props = Object.keys(frame).filter(function(e)
+ {
+ // filter non-keywords
+ return e.indexOf('@') !== 0;
+ });
+ if(props.length === 0)
+ {
+ // input always matches if there are no properties
+ rval = true;
+ }
+ // input must be a subject with all the given properties
+ else if(input.constructor === Object && '@id' in input)
+ {
+ rval = true;
+ for(var i in props)
+ {
+ if(!(props[i] in input))
+ {
+ rval = false;
+ break;
+ }
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Subframes a value.
+ *
+ * @param subjects a map of subjects in the graph.
+ * @param value the value to subframe.
+ * @param frame the frame to use.
+ * @param embeds a map of previously embedded subjects, used to prevent cycles.
+ * @param autoembed true if auto-embed is on, false if not.
+ * @param parent the parent object.
+ * @param parentKey the parent key.
+ * @param options the framing options.
+ *
+ * @return the framed input.
+ */
+var _subframe = function(
+ subjects, value, frame, embeds, autoembed, parent, parentKey, options)
+{
+ // get existing embed entry
+ var iri = value['@id'];
+ var embed = (iri in embeds) ? embeds[iri] : null;
+
+ // determine if value should be embedded or referenced,
+ // embed is ON if:
+ // 1. The frame OR default option specifies @embed as ON, AND
+ // 2. There is no existing embed OR it is an autoembed, AND
+ // autoembed mode is off.
+ var embedOn = (
+ (('@embed' in frame && frame['@embed']) ||
+ (!('@embed' in frame) && options.defaults.embedOn)) &&
+ (embed === null || (embed.autoembed && !autoembed)));
+
+ if(!embedOn)
+ {
+ // not embedding, so only use subject IRI as reference
+ value = {'@id': value['@id']};
+ }
+ else
+ {
+ // create new embed entry
+ if(embed === null)
+ {
+ embed = {};
+ embeds[iri] = embed;
+ }
+ // replace the existing embed with a reference
+ else if(embed.parent !== null)
+ {
+ if(embed.parent[embed.key].constructor === Array)
+ {
+ // find and replace embed in array
+ var objs = embed.parent[embed.key];
+ for(var i in objs)
+ {
+ if(objs[i].constructor === Object && '@id' in objs[i] &&
+ objs[i]['@id'] === iri)
+ {
+ objs[i] = {'@id': value['@id']};
+ break;
+ }
+ }
+ }
+ else
+ {
+ embed.parent[embed.key] = {'@id': value['@id']};
+ }
+
+ // recursively remove any dependent dangling embeds
+ var removeDependents = function(iri)
+ {
+ var iris = Object.keys(embeds);
+ for(var i in iris)
+ {
+ i = iris[i];
+ if(i in embeds && embeds[i].parent !== null &&
+ embeds[i].parent['@id'] === iri)
+ {
+ delete embeds[i];
+ removeDependents(i);
+ }
+ }
+ };
+ removeDependents(iri);
+ }
+
+ // update embed entry
+ embed.autoembed = autoembed;
+ embed.parent = parent;
+ embed.key = parentKey;
+
+ // check explicit flag
+ var explicitOn = (
+ frame['@explicit'] === true || options.defaults.explicitOn);
+ if(explicitOn)
+ {
+ // remove keys from the value that aren't in the frame
+ for(key in value)
+ {
+ // do not remove @id or any frame key
+ if(key !== '@id' && !(key in frame))
+ {
+ delete value[key];
+ }
+ }
+ }
+
+ // iterate over keys in value
+ var keys = Object.keys(value);
+ for(i in keys)
+ {
+ // skip keywords
+ var key = keys[i];
+ if(key.indexOf('@') !== 0)
+ {
+ // get the subframe if available
+ if(key in frame)
+ {
+ var f = frame[key];
+ var _autoembed = false;
+ }
+ // use a catch-all subframe to preserve data from graph
+ else
+ {
+ var f = (value[key].constructor === Array) ? [] : {};
+ var _autoembed = true;
+ }
+
+ // build input and do recursion
+ var v = value[key];
+ var input = (v.constructor === Array) ? v : [v];
+ for(var n in input)
+ {
+ // replace reference to subject w/embedded subject
+ if(input[n].constructor === Object &&
+ '@id' in input[n] &&
+ input[n]['@id'] in subjects)
+ {
+ input[n] = subjects[input[n]['@id']];
+ }
+ }
+ value[key] = _frame(
+ subjects, input, f, embeds, _autoembed, value, key, options);
+ }
+ }
+
+ // iterate over frame keys to add any missing values
+ for(key in frame)
+ {
+ // skip keywords and non-null keys in value
+ if(key.indexOf('@') !== 0 && (!(key in value) || value[key] === null))
+ {
+ var f = frame[key];
+
+ // add empty array to value
+ if(f.constructor === Array)
+ {
+ value[key] = [];
+ }
+ // add default value to value
+ else
+ {
+ // use first subframe if frame is an array
+ if(f.constructor === Array)
+ {
+ f = (f.length > 0) ? f[0] : {};
+ }
+
+ // determine if omit default is on
+ var omitOn = (
+ f['@omitDefault'] === true || options.defaults.omitDefaultOn);
+ if(!omitOn)
+ {
+ if('@default' in f)
+ {
+ // use specified default value
+ value[key] = f['@default'];
+ }
+ else
+ {
+ // built-in default value is: null
+ value[key] = null;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return value;
+};
+
+/**
+ * Recursively frames the given input according to the given frame.
+ *
+ * @param subjects a map of subjects in the graph.
+ * @param input the input to frame.
+ * @param frame the frame to use.
+ * @param embeds a map of previously embedded subjects, used to prevent cycles.
+ * @param autoembed true if auto-embed is on, false if not.
+ * @param parent the parent object (for subframing), null for none.
+ * @param parentKey the parent key (for subframing), null for none.
+ * @param options the framing options.
+ *
+ * @return the framed input.
+ */
+var _frame = function(
+ subjects, input, frame, embeds, autoembed, parent, parentKey, options)
+{
+ var rval = null;
+
+ // prepare output, set limit, get array of frames
+ var limit = -1;
+ var frames;
+ if(frame.constructor === Array)
+ {
+ rval = [];
+ frames = frame;
+ if(frames.length === 0)
+ {
+ frames.push({});
+ }
+ }
+ else
+ {
+ frames = [frame];
+ limit = 1;
+ }
+
+ // iterate over frames adding input matches to list
+ var values = [];
+ for(var i = 0; i < frames.length && limit !== 0; ++i)
+ {
+ // get next frame
+ frame = frames[i];
+ if(frame.constructor !== Object)
+ {
+ throw {
+ message: 'Invalid JSON-LD frame. ' +
+ 'Frame must be an object or an array.',
+ frame: frame
+ };
+ }
+
+ // create array of values for each frame
+ values[i] = [];
+ for(var n = 0; n < input.length && limit !== 0; ++n)
+ {
+ // add input to list if it matches frame specific type or duck-type
+ var next = input[n];
+ if(_isType(next, frame) || _isDuckType(next, frame))
+ {
+ values[i].push(next);
+ --limit;
+ }
+ }
+ }
+
+ // for each matching value, add it to the output
+ for(var i1 in values)
+ {
+ for(var i2 in values[i1])
+ {
+ frame = frames[i1];
+ var value = values[i1][i2];
+
+ // if value is a subject, do subframing
+ if(_isSubject(value))
+ {
+ value = _subframe(
+ subjects, value, frame, embeds, autoembed,
+ parent, parentKey, options);
+ }
+
+ // add value to output
+ if(rval === null)
+ {
+ rval = value;
+ }
+ else
+ {
+ // determine if value is a reference to an embed
+ var isRef = (_isReference(value) && value['@id'] in embeds);
+
+ // push any value that isn't a parentless reference
+ if(!(parent === null && isRef))
+ {
+ rval.push(value);
+ }
+ }
+ }
+ }
+
+ return rval;
+};
+
+/**
+ * Frames JSON-LD input.
+ *
+ * @param input the JSON-LD input.
+ * @param frame the frame to use.
+ * @param options framing options to use.
+ *
+ * @return the framed output.
+ */
+Processor.prototype.frame = function(input, frame, options)
+{
+ var rval;
+
+ // normalize input
+ input = jsonld.normalize(input);
+
+ // save frame context
+ var ctx = null;
+ if('@context' in frame)
+ {
+ ctx = _clone(frame['@context']);
+
+ // remove context from frame
+ frame = jsonld.expand(frame);
+ }
+ else if(frame.constructor === Array)
+ {
+ // save first context in the array
+ if(frame.length > 0 && '@context' in frame[0])
+ {
+ ctx = _clone(frame[0]['@context']);
+ }
+
+ // expand all elements in the array
+ var tmp = [];
+ for(var i in frame)
+ {
+ tmp.push(jsonld.expand(frame[i]));
+ }
+ frame = tmp;
+ }
+
+ // create framing options
+ // TODO: merge in options from function parameter
+ options =
+ {
+ defaults:
+ {
+ embedOn: true,
+ explicitOn: false,
+ omitDefaultOn: false
+ }
+ };
+
+ // build map of all subjects
+ var subjects = {};
+ for(var i in input)
+ {
+ subjects[input[i]['@id']] = input[i];
+ }
+
+ // frame input
+ rval = _frame(subjects, input, frame, {}, false, null, null, options);
+
+ // apply context
+ if(ctx !== null && rval !== null)
+ {
+ rval = jsonld.compact(ctx, rval);
+ }
+
+ return rval;
+};
+
+})();
+
+
+// exports
+var JSONLDParser = {};
+
+JSONLDParser.parser = {};
+JSONLDParser.parser.parse = function(data, graph) {
+ if(typeof(data) === 'string') {
+ data = JSON.parse(data);
+ }
+ return jsonldParser.toTriples(data, graph);
+};
+
+
+// end of ./src/js-communication/src/jsonld_parser.js
+// exports
+var RDFLoader = {};
+
+// imports
+
+RDFLoader.RDFLoader = function(params) {
+ this.precedences = ["text/turtle", "text/n3", "application/json"];
+ this.parsers = {"text/turtle": TurtleParser.parser, "text/n3":TurtleParser.parser, "application/json":JSONLDParser.parser};
+ if(params != null) {
+ for(var mime in params["parsers"]) {
+ this.parsers[mime] = params["parsers"][mime];
+ }
+ }
+
+ if(params && params["precedences"] != null) {
+ this.precedences = params["precedences"];
+ for(var mime in params["parsers"]) {
+ if(!Utils.include(this.precedences, mime)) {
+ this.precedences.push(mime);
+ }
+ }
+ }
+
+ this.acceptHeaderValue = "";
+ for(var i=0; i
+ * W3C's note
+ */
+AbstractQueryTree.AbstractQueryTree = function(params) {
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype.parseQueryString = function(query_string) {
+ var syntaxTree = SparqlParser.parser.parse(query_string);
+ return syntaxTree;
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype.parseExecutableUnit = function(executableUnit) {
+ if(executableUnit.kind === 'select') {
+ return this.parseSelect(executableUnit);
+ } else if(executableUnit.kind === 'ask') {
+ return this.parseSelect(executableUnit);
+ } else if(executableUnit.kind === 'modify') {
+ return this.parseSelect(executableUnit);
+ } else if(executableUnit.kind === 'construct') {
+ return this.parseSelect(executableUnit);
+ } else if(executableUnit.kind === 'insertdata') {
+ return this.parseInsertData(executableUnit);
+ } else if(executableUnit.kind === 'deletedata') {
+ return this.parseInsertData(executableUnit);
+ } else if(executableUnit.kind === 'load') {
+ return executableUnit;
+ } else if(executableUnit.kind === 'clear') {
+ return executableUnit;
+ } else if(executableUnit.kind === 'drop') {
+ return executableUnit;
+ } else if(executableUnit.kind === 'create') {
+ return executableUnit;
+ } else {
+ throw new Error('unknown executable unit: ' + executableUnit.kind);
+ }
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype.parseSelect = function(syntaxTree){
+
+ if(syntaxTree == null) {
+ console.log("error parsing query");
+ return null;
+ } else {
+ var env = { freshCounter: 0 };
+ syntaxTree.pattern = this.build(syntaxTree.pattern, env);
+ return syntaxTree;
+ }
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype.parseInsertData = function(syntaxTree){
+ if(syntaxTree == null) {
+ console.log("error parsing query");
+ return null;
+ } else {
+ return syntaxTree;
+ }
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype.build = function(node, env) {
+ if(node.token === 'groupgraphpattern') {
+ return this._buildGroupGraphPattern(node, env);
+ } else if (node.token === 'basicgraphpattern') {
+ var bgp = { kind: 'BGP',
+ value: node.triplesContext };
+ //console.log("pre1");
+ bgp = AbstractQueryTree.translatePathExpressionsInBGP(bgp, env);
+ //console.log("translation");
+ //console.log(sys.inspect(bgp,true,20));
+ return bgp;
+ } else if (node.token === 'graphunionpattern') {
+ var a = this.build(node.value[0],env);
+ var b = this.build(node.value[1],env);
+
+ return { kind: 'UNION',
+ value: [a,b] };
+ } else if(node.token === 'graphgraphpattern') {
+ var c = this.build(node.value, env);
+ return { kind: 'GRAPH',
+ value: c,
+ graph: node.graph };
+ } else {
+ throw new Error("not supported token in query:"+node.token);
+ }
+};
+
+AbstractQueryTree.translatePathExpressionsInBGP = function(bgp, env) {
+ var pathExpression,nextTriple,beforeToLink;
+ var before = [], rest, bottomJoin;
+ for(var i=0; i 0) {
+ bottomJoin = {kind: 'JOIN',
+ lvalue: {kind: 'BGP', value:before},
+ rvalue: bgpTransformed};
+ } else {
+ bottomJoin = bgpTransformed;
+ }
+
+
+ if(bgpTransformed.kind === 'ZERO_OR_MORE_PATH') {
+ if(bgpTransformed.y.token === 'var' && bgpTransformed.y.value.indexOf("fresh:")===0 &&
+ bgpTransformed.x.token === 'var' && bgpTransformed.x.value.indexOf("fresh:")===0) {
+ //console.log("ADDING EXTRA PATTERN 1)");
+ for(var j=0; j0) {
+ //console.log("(2a)")
+ var rvalueJoin = AbstractQueryTree.translatePathExpressionsInBGP({kind: 'BGP', value: rest}, env);
+ //console.log("got rvalue");
+ if(optionalPattern != null) {
+ var optionals = before.concat([optionalPattern]).concat(rest);
+ return { kind: 'UNION',
+ value: [{ kind: 'JOIN',
+ lvalue: bottomJoin,
+ rvalue: rvalueJoin },
+ {kind: 'BGP',
+ value: optionals}] };
+ } else {
+ return { kind: 'JOIN',
+ lvalue: bottomJoin,
+ rvalue: rvalueJoin };
+ }
+ } else {
+ //console.log("(2b)")
+ return bottomJoin;
+ }
+
+ } else {
+ // @todo ????
+ return bgpTransformed;
+ }
+ } else {
+ before.push(bgp.value[i]);
+ }
+ }
+
+ //console.log("returning");
+ bgp.value = before;
+ return bgp;
+};
+
+
+AbstractQueryTree.translatePathExpression = function(pathExpression, env) {
+ // add support for different path patterns
+ if(pathExpression.predicate.kind === 'element') {
+ // simple paths, maybe modified
+ if(pathExpression.predicate.modifier === '+') {
+ pathExpression.predicate.modifier = null;
+ var expandedPath = AbstractQueryTree.translatePathExpression(pathExpression, env);
+ return {kind: 'ONE_OR_MORE_PATH',
+ path: expandedPath,
+ x: pathExpression.subject,
+ y: pathExpression.object};
+ } else if(pathExpression.predicate.modifier === '*') {
+ pathExpression.predicate.modifier = null;
+ var expandedPath = AbstractQueryTree.translatePathExpression(pathExpression, env);
+ return {kind: 'ZERO_OR_MORE_PATH',
+ path: expandedPath,
+ x: pathExpression.subject,
+ y: pathExpression.object};
+ } else {
+ pathExpression.predicate = pathExpression.predicate.value;
+ return {kind: 'BGP', value: [pathExpression]};
+ }
+ } else if(pathExpression.predicate.kind === 'sequence') {
+ var currentSubject = pathExpression.subject;
+ var lastObject = pathExpression.object;
+ var currentGraph = pathExpression.graph;
+ var nextObject, chain;
+ var restTriples = [];
+ for(var i=0; i< pathExpression.predicate.value.length; i++) {
+ if(i!=pathExpression.predicate.value.length-1) {
+ nextObject = {
+ token: "var",
+ value: "fresh:"+env.freshCounter
+ };
+ env.freshCounter++;
+ } else {
+ nextObject = lastObject;
+ }
+
+ // @todo
+ // what if the predicate is a path with
+ // '*'? same fresh va in subject and object??
+ chain = {
+ subject: currentSubject,
+ predicate: pathExpression.predicate.value[i],
+ object: nextObject
+ };
+
+ if(currentGraph != null)
+ chain.graph = Utils.clone(currentGraph);
+
+ restTriples.push(chain);
+
+ if(i!=pathExpression.predicate.value.length-1)
+ currentSubject = Utils.clone(nextObject);;
+ }
+ var bgp = {kind: 'BGP', value: restTriples};
+ //console.log("BEFORE (1):");
+ //console.log(bgp);
+ //console.log("--------------");
+ return AbstractQueryTree.translatePathExpressionsInBGP(bgp, env);
+ }
+};
+
+AbstractQueryTree.AbstractQueryTree.prototype._buildGroupGraphPattern = function(node, env) {
+ var f = (node.filters || []);
+ var g = {kind: "EMPTY_PATTERN"};
+
+ for(var i=0; i rightmostMatchFailuresPos) {
+ rightmostMatchFailuresPos = pos;
+ rightmostMatchFailuresExpected = [];
+ }
+
+ rightmostMatchFailuresExpected.push(failure);
}
- function parse_DescribeQuery() {
- var cacheKey = 'DescribeQuery@' + pos;
+ function parse_DOCUMENT() {
+ var cacheKey = 'DOCUMENT@' + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 8) === "DESCRIBE") {
- var result1 = "DESCRIBE";
- pos += 8;
+
+ var result2 = parse_SPARQL();
+ if (result2 !== null) {
+ var result0 = result2;
} else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"DESCRIBE\"");
- }
- }
- if (result1 !== null) {
- var result10 = parse_VarOrIRIref();
- if (result10 !== null) {
- var result9 = [];
- while (result10 !== null) {
- result9.push(result10);
- var result10 = parse_VarOrIRIref();
- }
- } else {
- var result9 = null;
- }
- if (result9 !== null) {
- var result2 = result9;
- } else {
- if (input.substr(pos, 1) === "*") {
- var result8 = "*";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"*\"");
- }
- }
- if (result8 !== null) {
- var result2 = result8;
- } else {
- var result2 = null;;
- };
- }
- if (result2 !== null) {
- var result3 = [];
- var result7 = parse_DatasetClause();
- while (result7 !== null) {
- result3.push(result7);
- var result7 = parse_DatasetClause();
- }
- if (result3 !== null) {
- var result6 = parse_WhereClause();
- var result4 = result6 !== null ? result6 : '';
- if (result4 !== null) {
- var result5 = parse_SolutionModifier();
- if (result5 !== null) {
- var result0 = [result1, result2, result3, result4, result5];
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
+ var result1 = parse_TURTLE();
+ if (result1 !== null) {
+ var result0 = result1;
} else {
- var result0 = null;
- pos = savedPos0;
- }
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[10] DescribeQuery");
+ var result0 = null;;
+ };
}
+
+
cache[cacheKey] = {
nextPos: pos,
result: result0
@@ -11651,196 +6160,98 @@ SparqlParser.parser = (function(){
return result0;
}
- function parse_AskQuery() {
- var cacheKey = 'AskQuery@' + pos;
+ function parse_SPARQL() {
+ var cacheKey = 'SPARQL@' + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var result2 = [];
- var result19 = parse_WS();
- while (result19 !== null) {
- result2.push(result19);
- var result19 = parse_WS();
- }
+
+ var result2 = parse_Query();
if (result2 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result18 = "A";
- pos += 1;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result18 !== null) {
- var result3 = result18;
+ var result0 = result2;
+ } else {
+ var result1 = parse_Update();
+ if (result1 !== null) {
+ var result0 = result1;
} else {
- if (input.substr(pos, 1) === "a") {
- var result17 = "a";
- pos += 1;
- } else {
- var result17 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result17 !== null) {
- var result3 = result17;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result16 = "S";
- pos += 1;
- } else {
- var result16 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result16 !== null) {
- var result4 = result16;
+ var result0 = null;;
+ };
+ }
+
+
+
+ cache[cacheKey] = {
+ nextPos: pos,
+ result: result0
+ };
+ return result0;
+ }
+
+ function parse_Query() {
+ var cacheKey = 'Query@' + pos;
+ var cachedResult = cache[cacheKey];
+ if (cachedResult) {
+ pos = cachedResult.nextPos;
+ return cachedResult.result;
+ }
+
+ var savedReportMatchFailures = reportMatchFailures;
+ reportMatchFailures = false;
+ var savedPos0 = pos;
+ var savedPos1 = pos;
+ var result3 = parse_Prologue();
+ if (result3 !== null) {
+ var result8 = parse_SelectQuery();
+ if (result8 !== null) {
+ var result4 = result8;
+ } else {
+ var result7 = parse_ConstructQuery();
+ if (result7 !== null) {
+ var result4 = result7;
} else {
- if (input.substr(pos, 1) === "s") {
- var result15 = "s";
- pos += 1;
- } else {
- var result15 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result15 !== null) {
- var result4 = result15;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "K") {
- var result14 = "K";
- pos += 1;
- } else {
- var result14 = null;
- if (reportMatchFailures) {
- matchFailed("\"K\"");
- }
- }
- if (result14 !== null) {
- var result5 = result14;
+ var result6 = parse_DescribeQuery();
+ if (result6 !== null) {
+ var result4 = result6;
} else {
- if (input.substr(pos, 1) === "k") {
- var result13 = "k";
- pos += 1;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("\"k\"");
- }
- }
- if (result13 !== null) {
- var result5 = result13;
+ var result5 = parse_AskQuery();
+ if (result5 !== null) {
+ var result4 = result5;
} else {
- var result5 = null;;
+ var result4 = null;;
};
- }
- if (result5 !== null) {
- var result6 = [];
- var result12 = parse_WS();
- while (result12 !== null) {
- result6.push(result12);
- var result12 = parse_WS();
- }
- if (result6 !== null) {
- var result7 = [];
- var result11 = parse_DatasetClause();
- while (result11 !== null) {
- result7.push(result11);
- var result11 = parse_DatasetClause();
- }
- if (result7 !== null) {
- var result8 = [];
- var result10 = parse_WS();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_WS();
- }
- if (result8 !== null) {
- var result9 = parse_WhereClause();
- if (result9 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8, result9];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
+ };
+ };
+ }
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
- ? (function(gs, w) {
- var dataset = {'named':[], 'default':[]};
- for(var i=0; i") {
- var result21 = ">";
+ var result22 = ">";
pos += 1;
} else {
- var result21 = null;
+ var result22 = null;
if (reportMatchFailures) {
matchFailed("\">\"");
}
}
- if (result21 !== null) {
- var result22 = [];
- var result24 = parse_WS();
- while (result24 !== null) {
- result22.push(result24);
- var result24 = parse_WS();
+ if (result22 !== null) {
+ var result23 = [];
+ var result25 = parse_WS();
+ while (result25 !== null) {
+ result23.push(result25);
+ var result25 = parse_WS();
}
- if (result22 !== null) {
- var result23 = parse_AdditiveExpression();
- if (result23 !== null) {
- var result19 = [result20, result21, result22, result23];
+ if (result23 !== null) {
+ var result24 = parse_AdditiveExpression();
+ if (result24 !== null) {
+ var result20 = [result21, result22, result23, result24];
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
- if (result19 !== null) {
- var result4 = result19;
+ if (result20 !== null) {
+ var result5 = result20;
} else {
- var savedPos2 = pos;
- var result13 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result13.push(result18);
- var result18 = parse_WS();
+ var savedPos3 = pos;
+ var result14 = [];
+ var result19 = parse_WS();
+ while (result19 !== null) {
+ result14.push(result19);
+ var result19 = parse_WS();
}
- if (result13 !== null) {
+ if (result14 !== null) {
if (input.substr(pos, 2) === "<=") {
- var result14 = "<=";
+ var result15 = "<=";
pos += 2;
} else {
- var result14 = null;
+ var result15 = null;
if (reportMatchFailures) {
matchFailed("\"<=\"");
}
}
- if (result14 !== null) {
- var result15 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result15.push(result17);
- var result17 = parse_WS();
+ if (result15 !== null) {
+ var result16 = [];
+ var result18 = parse_WS();
+ while (result18 !== null) {
+ result16.push(result18);
+ var result18 = parse_WS();
}
- if (result15 !== null) {
- var result16 = parse_AdditiveExpression();
- if (result16 !== null) {
- var result12 = [result13, result14, result15, result16];
+ if (result16 !== null) {
+ var result17 = parse_AdditiveExpression();
+ if (result17 !== null) {
+ var result13 = [result14, result15, result16, result17];
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
- } else {
- var result12 = null;
- pos = savedPos2;
+ } else {
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
- if (result12 !== null) {
- var result4 = result12;
+ if (result13 !== null) {
+ var result5 = result13;
} else {
- var savedPos1 = pos;
- var result6 = [];
- var result11 = parse_WS();
- while (result11 !== null) {
- result6.push(result11);
- var result11 = parse_WS();
+ var savedPos2 = pos;
+ var result7 = [];
+ var result12 = parse_WS();
+ while (result12 !== null) {
+ result7.push(result12);
+ var result12 = parse_WS();
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos, 2) === ">=") {
- var result7 = ">=";
+ var result8 = ">=";
pos += 2;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("\">=\"");
}
}
- if (result7 !== null) {
- var result8 = [];
- var result10 = parse_WS();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_WS();
+ if (result8 !== null) {
+ var result9 = [];
+ var result11 = parse_WS();
+ while (result11 !== null) {
+ result9.push(result11);
+ var result11 = parse_WS();
}
- if (result8 !== null) {
- var result9 = parse_AdditiveExpression();
- if (result9 !== null) {
- var result5 = [result6, result7, result8, result9];
+ if (result9 !== null) {
+ var result10 = parse_AdditiveExpression();
+ if (result10 !== null) {
+ var result6 = [result7, result8, result9, result10];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
};
};
};
}
- while (result4 !== null) {
- result3.push(result4);
- var savedPos6 = pos;
- var result41 = [];
- var result46 = parse_WS();
- while (result46 !== null) {
- result41.push(result46);
- var result46 = parse_WS();
+ while (result5 !== null) {
+ result4.push(result5);
+ var savedPos7 = pos;
+ var result42 = [];
+ var result47 = parse_WS();
+ while (result47 !== null) {
+ result42.push(result47);
+ var result47 = parse_WS();
}
- if (result41 !== null) {
+ if (result42 !== null) {
if (input.substr(pos, 1) === "=") {
- var result42 = "=";
+ var result43 = "=";
pos += 1;
} else {
- var result42 = null;
+ var result43 = null;
if (reportMatchFailures) {
matchFailed("\"=\"");
}
}
- if (result42 !== null) {
- var result43 = [];
- var result45 = parse_WS();
- while (result45 !== null) {
- result43.push(result45);
- var result45 = parse_WS();
+ if (result43 !== null) {
+ var result44 = [];
+ var result46 = parse_WS();
+ while (result46 !== null) {
+ result44.push(result46);
+ var result46 = parse_WS();
}
- if (result43 !== null) {
- var result44 = parse_AdditiveExpression();
- if (result44 !== null) {
- var result40 = [result41, result42, result43, result44];
+ if (result44 !== null) {
+ var result45 = parse_AdditiveExpression();
+ if (result45 !== null) {
+ var result41 = [result42, result43, result44, result45];
} else {
- var result40 = null;
- pos = savedPos6;
+ var result41 = null;
+ pos = savedPos7;
}
} else {
- var result40 = null;
- pos = savedPos6;
+ var result41 = null;
+ pos = savedPos7;
}
} else {
- var result40 = null;
- pos = savedPos6;
+ var result41 = null;
+ pos = savedPos7;
}
} else {
- var result40 = null;
- pos = savedPos6;
+ var result41 = null;
+ pos = savedPos7;
}
- if (result40 !== null) {
- var result4 = result40;
+ if (result41 !== null) {
+ var result5 = result41;
} else {
- var savedPos5 = pos;
- var result34 = [];
- var result39 = parse_WS();
- while (result39 !== null) {
- result34.push(result39);
- var result39 = parse_WS();
+ var savedPos6 = pos;
+ var result35 = [];
+ var result40 = parse_WS();
+ while (result40 !== null) {
+ result35.push(result40);
+ var result40 = parse_WS();
}
- if (result34 !== null) {
+ if (result35 !== null) {
if (input.substr(pos, 2) === "!=") {
- var result35 = "!=";
+ var result36 = "!=";
pos += 2;
} else {
- var result35 = null;
+ var result36 = null;
if (reportMatchFailures) {
matchFailed("\"!=\"");
}
}
- if (result35 !== null) {
- var result36 = [];
- var result38 = parse_WS();
- while (result38 !== null) {
- result36.push(result38);
- var result38 = parse_WS();
+ if (result36 !== null) {
+ var result37 = [];
+ var result39 = parse_WS();
+ while (result39 !== null) {
+ result37.push(result39);
+ var result39 = parse_WS();
}
- if (result36 !== null) {
- var result37 = parse_AdditiveExpression();
- if (result37 !== null) {
- var result33 = [result34, result35, result36, result37];
+ if (result37 !== null) {
+ var result38 = parse_AdditiveExpression();
+ if (result38 !== null) {
+ var result34 = [result35, result36, result37, result38];
} else {
- var result33 = null;
- pos = savedPos5;
+ var result34 = null;
+ pos = savedPos6;
}
} else {
- var result33 = null;
- pos = savedPos5;
+ var result34 = null;
+ pos = savedPos6;
}
} else {
- var result33 = null;
- pos = savedPos5;
+ var result34 = null;
+ pos = savedPos6;
}
} else {
- var result33 = null;
- pos = savedPos5;
+ var result34 = null;
+ pos = savedPos6;
}
- if (result33 !== null) {
- var result4 = result33;
+ if (result34 !== null) {
+ var result5 = result34;
} else {
- var savedPos4 = pos;
- var result27 = [];
- var result32 = parse_WS();
- while (result32 !== null) {
- result27.push(result32);
- var result32 = parse_WS();
+ var savedPos5 = pos;
+ var result28 = [];
+ var result33 = parse_WS();
+ while (result33 !== null) {
+ result28.push(result33);
+ var result33 = parse_WS();
}
- if (result27 !== null) {
+ if (result28 !== null) {
if (input.substr(pos, 1) === "<") {
- var result28 = "<";
+ var result29 = "<";
pos += 1;
} else {
- var result28 = null;
+ var result29 = null;
if (reportMatchFailures) {
matchFailed("\"<\"");
}
}
- if (result28 !== null) {
- var result29 = [];
- var result31 = parse_WS();
- while (result31 !== null) {
- result29.push(result31);
- var result31 = parse_WS();
+ if (result29 !== null) {
+ var result30 = [];
+ var result32 = parse_WS();
+ while (result32 !== null) {
+ result30.push(result32);
+ var result32 = parse_WS();
}
- if (result29 !== null) {
- var result30 = parse_AdditiveExpression();
- if (result30 !== null) {
- var result26 = [result27, result28, result29, result30];
+ if (result30 !== null) {
+ var result31 = parse_AdditiveExpression();
+ if (result31 !== null) {
+ var result27 = [result28, result29, result30, result31];
} else {
- var result26 = null;
- pos = savedPos4;
+ var result27 = null;
+ pos = savedPos5;
}
} else {
- var result26 = null;
- pos = savedPos4;
+ var result27 = null;
+ pos = savedPos5;
}
} else {
- var result26 = null;
- pos = savedPos4;
+ var result27 = null;
+ pos = savedPos5;
}
} else {
- var result26 = null;
- pos = savedPos4;
+ var result27 = null;
+ pos = savedPos5;
}
- if (result26 !== null) {
- var result4 = result26;
+ if (result27 !== null) {
+ var result5 = result27;
} else {
- var savedPos3 = pos;
- var result20 = [];
- var result25 = parse_WS();
- while (result25 !== null) {
- result20.push(result25);
- var result25 = parse_WS();
+ var savedPos4 = pos;
+ var result21 = [];
+ var result26 = parse_WS();
+ while (result26 !== null) {
+ result21.push(result26);
+ var result26 = parse_WS();
}
- if (result20 !== null) {
+ if (result21 !== null) {
if (input.substr(pos, 1) === ">") {
- var result21 = ">";
+ var result22 = ">";
pos += 1;
} else {
- var result21 = null;
+ var result22 = null;
if (reportMatchFailures) {
matchFailed("\">\"");
}
}
- if (result21 !== null) {
- var result22 = [];
- var result24 = parse_WS();
- while (result24 !== null) {
- result22.push(result24);
- var result24 = parse_WS();
+ if (result22 !== null) {
+ var result23 = [];
+ var result25 = parse_WS();
+ while (result25 !== null) {
+ result23.push(result25);
+ var result25 = parse_WS();
}
- if (result22 !== null) {
- var result23 = parse_AdditiveExpression();
- if (result23 !== null) {
- var result19 = [result20, result21, result22, result23];
+ if (result23 !== null) {
+ var result24 = parse_AdditiveExpression();
+ if (result24 !== null) {
+ var result20 = [result21, result22, result23, result24];
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
} else {
- var result19 = null;
- pos = savedPos3;
+ var result20 = null;
+ pos = savedPos4;
}
- if (result19 !== null) {
- var result4 = result19;
+ if (result20 !== null) {
+ var result5 = result20;
} else {
- var savedPos2 = pos;
- var result13 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result13.push(result18);
- var result18 = parse_WS();
+ var savedPos3 = pos;
+ var result14 = [];
+ var result19 = parse_WS();
+ while (result19 !== null) {
+ result14.push(result19);
+ var result19 = parse_WS();
}
- if (result13 !== null) {
+ if (result14 !== null) {
if (input.substr(pos, 2) === "<=") {
- var result14 = "<=";
+ var result15 = "<=";
pos += 2;
} else {
- var result14 = null;
+ var result15 = null;
if (reportMatchFailures) {
matchFailed("\"<=\"");
}
}
- if (result14 !== null) {
- var result15 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result15.push(result17);
- var result17 = parse_WS();
+ if (result15 !== null) {
+ var result16 = [];
+ var result18 = parse_WS();
+ while (result18 !== null) {
+ result16.push(result18);
+ var result18 = parse_WS();
}
- if (result15 !== null) {
- var result16 = parse_AdditiveExpression();
- if (result16 !== null) {
- var result12 = [result13, result14, result15, result16];
+ if (result16 !== null) {
+ var result17 = parse_AdditiveExpression();
+ if (result17 !== null) {
+ var result13 = [result14, result15, result16, result17];
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
- if (result12 !== null) {
- var result4 = result12;
+ if (result13 !== null) {
+ var result5 = result13;
} else {
- var savedPos1 = pos;
- var result6 = [];
- var result11 = parse_WS();
- while (result11 !== null) {
- result6.push(result11);
- var result11 = parse_WS();
+ var savedPos2 = pos;
+ var result7 = [];
+ var result12 = parse_WS();
+ while (result12 !== null) {
+ result7.push(result12);
+ var result12 = parse_WS();
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos, 2) === ">=") {
- var result7 = ">=";
+ var result8 = ">=";
pos += 2;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("\">=\"");
}
}
- if (result7 !== null) {
- var result8 = [];
- var result10 = parse_WS();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_WS();
+ if (result8 !== null) {
+ var result9 = [];
+ var result11 = parse_WS();
+ while (result11 !== null) {
+ result9.push(result11);
+ var result11 = parse_WS();
}
- if (result8 !== null) {
- var result9 = parse_AdditiveExpression();
- if (result9 !== null) {
- var result5 = [result6, result7, result8, result9];
+ if (result9 !== null) {
+ var result10 = parse_AdditiveExpression();
+ if (result10 !== null) {
+ var result6 = [result7, result8, result9, result10];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
};
@@ -25185,17 +18027,17 @@ SparqlParser.parser = (function(){
};
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(op1, op2) {
if(op2.length === 0) {
return op1;
@@ -25211,6 +18053,12 @@ SparqlParser.parser = (function(){
}
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[99] RelationalExpression");
@@ -25234,467 +18082,468 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_MultiplicativeExpression();
- if (result2 !== null) {
- var result3 = [];
- var savedPos5 = pos;
- var result33 = [];
- var result38 = parse_WS();
- while (result38 !== null) {
- result33.push(result38);
- var result38 = parse_WS();
+ var savedPos1 = pos;
+ var result3 = parse_MultiplicativeExpression();
+ if (result3 !== null) {
+ var result4 = [];
+ var savedPos6 = pos;
+ var result34 = [];
+ var result39 = parse_WS();
+ while (result39 !== null) {
+ result34.push(result39);
+ var result39 = parse_WS();
}
- if (result33 !== null) {
+ if (result34 !== null) {
if (input.substr(pos, 1) === "+") {
- var result34 = "+";
+ var result35 = "+";
pos += 1;
} else {
- var result34 = null;
+ var result35 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result34 !== null) {
- var result35 = [];
- var result37 = parse_WS();
- while (result37 !== null) {
- result35.push(result37);
- var result37 = parse_WS();
+ if (result35 !== null) {
+ var result36 = [];
+ var result38 = parse_WS();
+ while (result38 !== null) {
+ result36.push(result38);
+ var result38 = parse_WS();
}
- if (result35 !== null) {
- var result36 = parse_MultiplicativeExpression();
- if (result36 !== null) {
- var result32 = [result33, result34, result35, result36];
+ if (result36 !== null) {
+ var result37 = parse_MultiplicativeExpression();
+ if (result37 !== null) {
+ var result33 = [result34, result35, result36, result37];
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
- if (result32 !== null) {
- var result4 = result32;
+ if (result33 !== null) {
+ var result5 = result33;
} else {
- var savedPos4 = pos;
- var result26 = [];
- var result31 = parse_WS();
- while (result31 !== null) {
- result26.push(result31);
- var result31 = parse_WS();
+ var savedPos5 = pos;
+ var result27 = [];
+ var result32 = parse_WS();
+ while (result32 !== null) {
+ result27.push(result32);
+ var result32 = parse_WS();
}
- if (result26 !== null) {
+ if (result27 !== null) {
if (input.substr(pos, 1) === "-") {
- var result27 = "-";
+ var result28 = "-";
pos += 1;
} else {
- var result27 = null;
+ var result28 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result27 !== null) {
- var result28 = [];
- var result30 = parse_WS();
- while (result30 !== null) {
- result28.push(result30);
- var result30 = parse_WS();
+ if (result28 !== null) {
+ var result29 = [];
+ var result31 = parse_WS();
+ while (result31 !== null) {
+ result29.push(result31);
+ var result31 = parse_WS();
}
- if (result28 !== null) {
- var result29 = parse_MultiplicativeExpression();
- if (result29 !== null) {
- var result25 = [result26, result27, result28, result29];
+ if (result29 !== null) {
+ var result30 = parse_MultiplicativeExpression();
+ if (result30 !== null) {
+ var result26 = [result27, result28, result29, result30];
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
- } else {
- var result25 = null;
- pos = savedPos4;
+ } else {
+ var result26 = null;
+ pos = savedPos5;
}
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
- if (result25 !== null) {
- var result4 = result25;
+ if (result26 !== null) {
+ var result5 = result26;
} else {
- var savedPos1 = pos;
- var result24 = parse_NumericLiteralNegative();
- if (result24 !== null) {
- var result6 = result24;
+ var savedPos2 = pos;
+ var result25 = parse_NumericLiteralNegative();
+ if (result25 !== null) {
+ var result7 = result25;
} else {
- var result23 = parse_NumericLiteralNegative();
- if (result23 !== null) {
- var result6 = result23;
+ var result24 = parse_NumericLiteralNegative();
+ if (result24 !== null) {
+ var result7 = result24;
} else {
- var result6 = null;;
+ var result7 = null;;
};
}
- if (result6 !== null) {
- var savedPos3 = pos;
- var result17 = [];
- var result22 = parse_WS();
- while (result22 !== null) {
- result17.push(result22);
- var result22 = parse_WS();
+ if (result7 !== null) {
+ var savedPos4 = pos;
+ var result18 = [];
+ var result23 = parse_WS();
+ while (result23 !== null) {
+ result18.push(result23);
+ var result23 = parse_WS();
}
- if (result17 !== null) {
+ if (result18 !== null) {
if (input.substr(pos, 1) === "*") {
- var result18 = "*";
+ var result19 = "*";
pos += 1;
} else {
- var result18 = null;
+ var result19 = null;
if (reportMatchFailures) {
matchFailed("\"*\"");
}
}
- if (result18 !== null) {
- var result19 = [];
- var result21 = parse_WS();
- while (result21 !== null) {
- result19.push(result21);
- var result21 = parse_WS();
+ if (result19 !== null) {
+ var result20 = [];
+ var result22 = parse_WS();
+ while (result22 !== null) {
+ result20.push(result22);
+ var result22 = parse_WS();
}
- if (result19 !== null) {
- var result20 = parse_UnaryExpression();
- if (result20 !== null) {
- var result16 = [result17, result18, result19, result20];
+ if (result20 !== null) {
+ var result21 = parse_UnaryExpression();
+ if (result21 !== null) {
+ var result17 = [result18, result19, result20, result21];
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
- if (result16 !== null) {
- var result8 = result16;
+ if (result17 !== null) {
+ var result9 = result17;
} else {
- var savedPos2 = pos;
- var result10 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result10.push(result15);
- var result15 = parse_WS();
+ var savedPos3 = pos;
+ var result11 = [];
+ var result16 = parse_WS();
+ while (result16 !== null) {
+ result11.push(result16);
+ var result16 = parse_WS();
}
- if (result10 !== null) {
+ if (result11 !== null) {
if (input.substr(pos, 1) === "/") {
- var result11 = "/";
+ var result12 = "/";
pos += 1;
} else {
- var result11 = null;
+ var result12 = null;
if (reportMatchFailures) {
matchFailed("\"/\"");
}
}
- if (result11 !== null) {
- var result12 = [];
- var result14 = parse_WS();
- while (result14 !== null) {
- result12.push(result14);
- var result14 = parse_WS();
+ if (result12 !== null) {
+ var result13 = [];
+ var result15 = parse_WS();
+ while (result15 !== null) {
+ result13.push(result15);
+ var result15 = parse_WS();
}
- if (result12 !== null) {
- var result13 = parse_UnaryExpression();
- if (result13 !== null) {
- var result9 = [result10, result11, result12, result13];
+ if (result13 !== null) {
+ var result14 = parse_UnaryExpression();
+ if (result14 !== null) {
+ var result10 = [result11, result12, result13, result14];
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
- if (result9 !== null) {
- var result8 = result9;
+ if (result10 !== null) {
+ var result9 = result10;
} else {
- var result8 = null;;
+ var result9 = null;;
};
}
- var result7 = result8 !== null ? result8 : '';
- if (result7 !== null) {
- var result5 = [result6, result7];
+ var result8 = result9 !== null ? result9 : '';
+ if (result8 !== null) {
+ var result6 = [result7, result8];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
}
- while (result4 !== null) {
- result3.push(result4);
- var savedPos5 = pos;
- var result33 = [];
- var result38 = parse_WS();
- while (result38 !== null) {
- result33.push(result38);
- var result38 = parse_WS();
+ while (result5 !== null) {
+ result4.push(result5);
+ var savedPos6 = pos;
+ var result34 = [];
+ var result39 = parse_WS();
+ while (result39 !== null) {
+ result34.push(result39);
+ var result39 = parse_WS();
}
- if (result33 !== null) {
+ if (result34 !== null) {
if (input.substr(pos, 1) === "+") {
- var result34 = "+";
+ var result35 = "+";
pos += 1;
} else {
- var result34 = null;
+ var result35 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result34 !== null) {
- var result35 = [];
- var result37 = parse_WS();
- while (result37 !== null) {
- result35.push(result37);
- var result37 = parse_WS();
- }
- if (result35 !== null) {
- var result36 = parse_MultiplicativeExpression();
- if (result36 !== null) {
- var result32 = [result33, result34, result35, result36];
+ if (result35 !== null) {
+ var result36 = [];
+ var result38 = parse_WS();
+ while (result38 !== null) {
+ result36.push(result38);
+ var result38 = parse_WS();
+ }
+ if (result36 !== null) {
+ var result37 = parse_MultiplicativeExpression();
+ if (result37 !== null) {
+ var result33 = [result34, result35, result36, result37];
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
} else {
- var result32 = null;
- pos = savedPos5;
+ var result33 = null;
+ pos = savedPos6;
}
- if (result32 !== null) {
- var result4 = result32;
+ if (result33 !== null) {
+ var result5 = result33;
} else {
- var savedPos4 = pos;
- var result26 = [];
- var result31 = parse_WS();
- while (result31 !== null) {
- result26.push(result31);
- var result31 = parse_WS();
+ var savedPos5 = pos;
+ var result27 = [];
+ var result32 = parse_WS();
+ while (result32 !== null) {
+ result27.push(result32);
+ var result32 = parse_WS();
}
- if (result26 !== null) {
+ if (result27 !== null) {
if (input.substr(pos, 1) === "-") {
- var result27 = "-";
+ var result28 = "-";
pos += 1;
} else {
- var result27 = null;
+ var result28 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result27 !== null) {
- var result28 = [];
- var result30 = parse_WS();
- while (result30 !== null) {
- result28.push(result30);
- var result30 = parse_WS();
+ if (result28 !== null) {
+ var result29 = [];
+ var result31 = parse_WS();
+ while (result31 !== null) {
+ result29.push(result31);
+ var result31 = parse_WS();
}
- if (result28 !== null) {
- var result29 = parse_MultiplicativeExpression();
- if (result29 !== null) {
- var result25 = [result26, result27, result28, result29];
+ if (result29 !== null) {
+ var result30 = parse_MultiplicativeExpression();
+ if (result30 !== null) {
+ var result26 = [result27, result28, result29, result30];
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
} else {
- var result25 = null;
- pos = savedPos4;
+ var result26 = null;
+ pos = savedPos5;
}
- if (result25 !== null) {
- var result4 = result25;
+ if (result26 !== null) {
+ var result5 = result26;
} else {
- var savedPos1 = pos;
- var result24 = parse_NumericLiteralNegative();
- if (result24 !== null) {
- var result6 = result24;
+ var savedPos2 = pos;
+ var result25 = parse_NumericLiteralNegative();
+ if (result25 !== null) {
+ var result7 = result25;
} else {
- var result23 = parse_NumericLiteralNegative();
- if (result23 !== null) {
- var result6 = result23;
+ var result24 = parse_NumericLiteralNegative();
+ if (result24 !== null) {
+ var result7 = result24;
} else {
- var result6 = null;;
+ var result7 = null;;
};
}
- if (result6 !== null) {
- var savedPos3 = pos;
- var result17 = [];
- var result22 = parse_WS();
- while (result22 !== null) {
- result17.push(result22);
- var result22 = parse_WS();
+ if (result7 !== null) {
+ var savedPos4 = pos;
+ var result18 = [];
+ var result23 = parse_WS();
+ while (result23 !== null) {
+ result18.push(result23);
+ var result23 = parse_WS();
}
- if (result17 !== null) {
+ if (result18 !== null) {
if (input.substr(pos, 1) === "*") {
- var result18 = "*";
+ var result19 = "*";
pos += 1;
} else {
- var result18 = null;
+ var result19 = null;
if (reportMatchFailures) {
matchFailed("\"*\"");
}
}
- if (result18 !== null) {
- var result19 = [];
- var result21 = parse_WS();
- while (result21 !== null) {
- result19.push(result21);
- var result21 = parse_WS();
+ if (result19 !== null) {
+ var result20 = [];
+ var result22 = parse_WS();
+ while (result22 !== null) {
+ result20.push(result22);
+ var result22 = parse_WS();
}
- if (result19 !== null) {
- var result20 = parse_UnaryExpression();
- if (result20 !== null) {
- var result16 = [result17, result18, result19, result20];
+ if (result20 !== null) {
+ var result21 = parse_UnaryExpression();
+ if (result21 !== null) {
+ var result17 = [result18, result19, result20, result21];
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
} else {
- var result16 = null;
- pos = savedPos3;
+ var result17 = null;
+ pos = savedPos4;
}
- if (result16 !== null) {
- var result8 = result16;
+ if (result17 !== null) {
+ var result9 = result17;
} else {
- var savedPos2 = pos;
- var result10 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result10.push(result15);
- var result15 = parse_WS();
+ var savedPos3 = pos;
+ var result11 = [];
+ var result16 = parse_WS();
+ while (result16 !== null) {
+ result11.push(result16);
+ var result16 = parse_WS();
}
- if (result10 !== null) {
+ if (result11 !== null) {
if (input.substr(pos, 1) === "/") {
- var result11 = "/";
+ var result12 = "/";
pos += 1;
} else {
- var result11 = null;
+ var result12 = null;
if (reportMatchFailures) {
matchFailed("\"/\"");
}
}
- if (result11 !== null) {
- var result12 = [];
- var result14 = parse_WS();
- while (result14 !== null) {
- result12.push(result14);
- var result14 = parse_WS();
+ if (result12 !== null) {
+ var result13 = [];
+ var result15 = parse_WS();
+ while (result15 !== null) {
+ result13.push(result15);
+ var result15 = parse_WS();
}
- if (result12 !== null) {
- var result13 = parse_UnaryExpression();
- if (result13 !== null) {
- var result9 = [result10, result11, result12, result13];
+ if (result13 !== null) {
+ var result14 = parse_UnaryExpression();
+ if (result14 !== null) {
+ var result10 = [result11, result12, result13, result14];
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos2;
+ var result10 = null;
+ pos = savedPos3;
}
- if (result9 !== null) {
- var result8 = result9;
+ if (result10 !== null) {
+ var result9 = result10;
} else {
- var result8 = null;;
+ var result9 = null;;
};
}
- var result7 = result8 !== null ? result8 : '';
- if (result7 !== null) {
- var result5 = [result6, result7];
+ var result8 = result9 !== null ? result9 : '';
+ if (result8 !== null) {
+ var result6 = [result7, result8];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(op1, ops) {
if(ops.length === 0) {
return op1;
@@ -25737,6 +18586,12 @@ SparqlParser.parser = (function(){
return ex;
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[101] AdditiveExpression");
@@ -25760,217 +18615,218 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_UnaryExpression();
- if (result2 !== null) {
- var result3 = [];
- var savedPos2 = pos;
- var result13 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result13.push(result18);
- var result18 = parse_WS();
+ var savedPos1 = pos;
+ var result3 = parse_UnaryExpression();
+ if (result3 !== null) {
+ var result4 = [];
+ var savedPos3 = pos;
+ var result14 = [];
+ var result19 = parse_WS();
+ while (result19 !== null) {
+ result14.push(result19);
+ var result19 = parse_WS();
}
- if (result13 !== null) {
+ if (result14 !== null) {
if (input.substr(pos, 1) === "*") {
- var result14 = "*";
+ var result15 = "*";
pos += 1;
} else {
- var result14 = null;
+ var result15 = null;
if (reportMatchFailures) {
matchFailed("\"*\"");
}
}
- if (result14 !== null) {
- var result15 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result15.push(result17);
- var result17 = parse_WS();
+ if (result15 !== null) {
+ var result16 = [];
+ var result18 = parse_WS();
+ while (result18 !== null) {
+ result16.push(result18);
+ var result18 = parse_WS();
}
- if (result15 !== null) {
- var result16 = parse_UnaryExpression();
- if (result16 !== null) {
- var result12 = [result13, result14, result15, result16];
+ if (result16 !== null) {
+ var result17 = parse_UnaryExpression();
+ if (result17 !== null) {
+ var result13 = [result14, result15, result16, result17];
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
- if (result12 !== null) {
- var result4 = result12;
+ if (result13 !== null) {
+ var result5 = result13;
} else {
- var savedPos1 = pos;
- var result6 = [];
- var result11 = parse_WS();
- while (result11 !== null) {
- result6.push(result11);
- var result11 = parse_WS();
+ var savedPos2 = pos;
+ var result7 = [];
+ var result12 = parse_WS();
+ while (result12 !== null) {
+ result7.push(result12);
+ var result12 = parse_WS();
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos, 1) === "/") {
- var result7 = "/";
+ var result8 = "/";
pos += 1;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("\"/\"");
}
}
- if (result7 !== null) {
- var result8 = [];
- var result10 = parse_WS();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_WS();
+ if (result8 !== null) {
+ var result9 = [];
+ var result11 = parse_WS();
+ while (result11 !== null) {
+ result9.push(result11);
+ var result11 = parse_WS();
}
- if (result8 !== null) {
- var result9 = parse_UnaryExpression();
- if (result9 !== null) {
- var result5 = [result6, result7, result8, result9];
+ if (result9 !== null) {
+ var result10 = parse_UnaryExpression();
+ if (result10 !== null) {
+ var result6 = [result7, result8, result9, result10];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
}
- while (result4 !== null) {
- result3.push(result4);
- var savedPos2 = pos;
- var result13 = [];
- var result18 = parse_WS();
- while (result18 !== null) {
- result13.push(result18);
- var result18 = parse_WS();
+ while (result5 !== null) {
+ result4.push(result5);
+ var savedPos3 = pos;
+ var result14 = [];
+ var result19 = parse_WS();
+ while (result19 !== null) {
+ result14.push(result19);
+ var result19 = parse_WS();
}
- if (result13 !== null) {
+ if (result14 !== null) {
if (input.substr(pos, 1) === "*") {
- var result14 = "*";
+ var result15 = "*";
pos += 1;
} else {
- var result14 = null;
+ var result15 = null;
if (reportMatchFailures) {
matchFailed("\"*\"");
}
}
- if (result14 !== null) {
- var result15 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result15.push(result17);
- var result17 = parse_WS();
+ if (result15 !== null) {
+ var result16 = [];
+ var result18 = parse_WS();
+ while (result18 !== null) {
+ result16.push(result18);
+ var result18 = parse_WS();
}
- if (result15 !== null) {
- var result16 = parse_UnaryExpression();
- if (result16 !== null) {
- var result12 = [result13, result14, result15, result16];
+ if (result16 !== null) {
+ var result17 = parse_UnaryExpression();
+ if (result17 !== null) {
+ var result13 = [result14, result15, result16, result17];
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
} else {
- var result12 = null;
- pos = savedPos2;
+ var result13 = null;
+ pos = savedPos3;
}
- if (result12 !== null) {
- var result4 = result12;
+ if (result13 !== null) {
+ var result5 = result13;
} else {
- var savedPos1 = pos;
- var result6 = [];
- var result11 = parse_WS();
- while (result11 !== null) {
- result6.push(result11);
- var result11 = parse_WS();
+ var savedPos2 = pos;
+ var result7 = [];
+ var result12 = parse_WS();
+ while (result12 !== null) {
+ result7.push(result12);
+ var result12 = parse_WS();
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos, 1) === "/") {
- var result7 = "/";
+ var result8 = "/";
pos += 1;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("\"/\"");
}
}
- if (result7 !== null) {
- var result8 = [];
- var result10 = parse_WS();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_WS();
+ if (result8 !== null) {
+ var result9 = [];
+ var result11 = parse_WS();
+ while (result11 !== null) {
+ result9.push(result11);
+ var result11 = parse_WS();
}
- if (result8 !== null) {
- var result9 = parse_UnaryExpression();
- if (result9 !== null) {
- var result5 = [result6, result7, result8, result9];
+ if (result9 !== null) {
+ var result10 = parse_UnaryExpression();
+ if (result10 !== null) {
+ var result6 = [result7, result8, result9, result10];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(exp, exps) {
if(exps.length === 0) {
return exp;
@@ -25992,6 +18848,12 @@ SparqlParser.parser = (function(){
return ex;
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[102] MultiplicativeExpression");
@@ -26014,40 +18876,41 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var savedPos2 = pos;
+ var savedPos4 = pos;
+ var savedPos5 = pos;
if (input.substr(pos, 1) === "!") {
- var result16 = "!";
+ var result19 = "!";
pos += 1;
} else {
- var result16 = null;
+ var result19 = null;
if (reportMatchFailures) {
matchFailed("\"!\"");
}
}
- if (result16 !== null) {
- var result17 = [];
- var result19 = parse_WS();
- while (result19 !== null) {
- result17.push(result19);
- var result19 = parse_WS();
+ if (result19 !== null) {
+ var result20 = [];
+ var result22 = parse_WS();
+ while (result22 !== null) {
+ result20.push(result22);
+ var result22 = parse_WS();
}
- if (result17 !== null) {
- var result18 = parse_PrimaryExpression();
- if (result18 !== null) {
- var result15 = [result16, result17, result18];
+ if (result20 !== null) {
+ var result21 = parse_PrimaryExpression();
+ if (result21 !== null) {
+ var result17 = [result19, result20, result21];
} else {
- var result15 = null;
- pos = savedPos2;
+ var result17 = null;
+ pos = savedPos5;
}
} else {
- var result15 = null;
- pos = savedPos2;
+ var result17 = null;
+ pos = savedPos5;
}
} else {
- var result15 = null;
- pos = savedPos2;
+ var result17 = null;
+ pos = savedPos5;
}
- var result14 = result15 !== null
+ var result18 = result17 !== null
? (function(e) {
var ex = {};
ex.token = 'expression';
@@ -26056,45 +18919,52 @@ SparqlParser.parser = (function(){
ex.expression = e;
return ex;
- })(result15[2])
+ })(result17[2])
: null;
- if (result14 !== null) {
- var result0 = result14;
+ if (result18 !== null) {
+ var result16 = result18;
} else {
- var savedPos1 = pos;
+ var result16 = null;
+ pos = savedPos4;
+ }
+ if (result16 !== null) {
+ var result0 = result16;
+ } else {
+ var savedPos2 = pos;
+ var savedPos3 = pos;
if (input.substr(pos, 1) === "+") {
- var result10 = "+";
+ var result12 = "+";
pos += 1;
} else {
- var result10 = null;
+ var result12 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result10 !== null) {
- var result11 = [];
- var result13 = parse_WS();
- while (result13 !== null) {
- result11.push(result13);
- var result13 = parse_WS();
+ if (result12 !== null) {
+ var result13 = [];
+ var result15 = parse_WS();
+ while (result15 !== null) {
+ result13.push(result15);
+ var result15 = parse_WS();
}
- if (result11 !== null) {
- var result12 = parse_PrimaryExpression();
- if (result12 !== null) {
- var result9 = [result10, result11, result12];
+ if (result13 !== null) {
+ var result14 = parse_PrimaryExpression();
+ if (result14 !== null) {
+ var result10 = [result12, result13, result14];
} else {
- var result9 = null;
- pos = savedPos1;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos1;
+ var result10 = null;
+ pos = savedPos3;
}
} else {
- var result9 = null;
- pos = savedPos1;
+ var result10 = null;
+ pos = savedPos3;
}
- var result8 = result9 !== null
+ var result11 = result10 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26103,45 +18973,52 @@ SparqlParser.parser = (function(){
ex.expression = v;
return ex;
- })(result9[2])
+ })(result10[2])
: null;
- if (result8 !== null) {
- var result0 = result8;
+ if (result11 !== null) {
+ var result9 = result11;
+ } else {
+ var result9 = null;
+ pos = savedPos2;
+ }
+ if (result9 !== null) {
+ var result0 = result9;
} else {
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "-") {
- var result4 = "-";
+ var result5 = "-";
pos += 1;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result4 !== null) {
- var result5 = [];
- var result7 = parse_WS();
- while (result7 !== null) {
- result5.push(result7);
- var result7 = parse_WS();
+ if (result5 !== null) {
+ var result6 = [];
+ var result8 = parse_WS();
+ while (result8 !== null) {
+ result6.push(result8);
+ var result8 = parse_WS();
}
- if (result5 !== null) {
- var result6 = parse_PrimaryExpression();
- if (result6 !== null) {
- var result3 = [result4, result5, result6];
+ if (result6 !== null) {
+ var result7 = parse_PrimaryExpression();
+ if (result7 !== null) {
+ var result3 = [result5, result6, result7];
} else {
var result3 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result3 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result3 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result2 = result3 !== null
+ var result4 = result3 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26152,6 +19029,12 @@ SparqlParser.parser = (function(){
return ex;
})(result3[2])
: null;
+ if (result4 !== null) {
+ var result2 = result4;
+ } else {
+ var result2 = null;
+ pos = savedPos0;
+ }
if (result2 !== null) {
var result0 = result2;
} else {
@@ -26186,20 +19069,21 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var result12 = parse_BrackettedExpression();
- if (result12 !== null) {
- var result0 = result12;
+ var result16 = parse_BrackettedExpression();
+ if (result16 !== null) {
+ var result0 = result16;
} else {
- var result11 = parse_BuiltInCall();
- if (result11 !== null) {
- var result0 = result11;
+ var result15 = parse_BuiltInCall();
+ if (result15 !== null) {
+ var result0 = result15;
} else {
- var result10 = parse_IRIrefOrFunction();
- if (result10 !== null) {
- var result0 = result10;
+ var result14 = parse_IRIrefOrFunction();
+ if (result14 !== null) {
+ var result0 = result14;
} else {
- var result9 = parse_RDFLiteral();
- var result8 = result9 !== null
+ var savedPos3 = pos;
+ var result12 = parse_RDFLiteral();
+ var result13 = result12 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26208,13 +19092,20 @@ SparqlParser.parser = (function(){
ex.value = v;
return ex;
- })(result9)
+ })(result12)
: null;
- if (result8 !== null) {
- var result0 = result8;
+ if (result13 !== null) {
+ var result11 = result13;
+ } else {
+ var result11 = null;
+ pos = savedPos3;
+ }
+ if (result11 !== null) {
+ var result0 = result11;
} else {
- var result7 = parse_NumericLiteral();
- var result6 = result7 !== null
+ var savedPos2 = pos;
+ var result9 = parse_NumericLiteral();
+ var result10 = result9 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26223,13 +19114,20 @@ SparqlParser.parser = (function(){
ex.value = v;
return ex;
- })(result7)
+ })(result9)
: null;
- if (result6 !== null) {
- var result0 = result6;
+ if (result10 !== null) {
+ var result8 = result10;
+ } else {
+ var result8 = null;
+ pos = savedPos2;
+ }
+ if (result8 !== null) {
+ var result0 = result8;
} else {
- var result5 = parse_BooleanLiteral();
- var result4 = result5 !== null
+ var savedPos1 = pos;
+ var result6 = parse_BooleanLiteral();
+ var result7 = result6 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26238,17 +19136,24 @@ SparqlParser.parser = (function(){
ex.value = v;
return ex;
- })(result5)
+ })(result6)
: null;
- if (result4 !== null) {
- var result0 = result4;
+ if (result7 !== null) {
+ var result5 = result7;
+ } else {
+ var result5 = null;
+ pos = savedPos1;
+ }
+ if (result5 !== null) {
+ var result0 = result5;
} else {
- var result3 = parse_Aggregate();
- if (result3 !== null) {
- var result0 = result3;
+ var result4 = parse_Aggregate();
+ if (result4 !== null) {
+ var result0 = result4;
} else {
+ var savedPos0 = pos;
var result2 = parse_Var();
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(v) {
var ex = {};
ex.token = 'expression';
@@ -26259,6 +19164,12 @@ SparqlParser.parser = (function(){
return ex;
})(result2)
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -26294,68 +19205,75 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "(") {
- var result2 = "(";
+ var result3 = "(";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result2 !== null) {
- var result3 = [];
- var result8 = parse_WS();
- while (result8 !== null) {
- result3.push(result8);
- var result8 = parse_WS();
+ if (result3 !== null) {
+ var result4 = [];
+ var result9 = parse_WS();
+ while (result9 !== null) {
+ result4.push(result9);
+ var result9 = parse_WS();
}
- if (result3 !== null) {
- var result4 = parse_ConditionalOrExpression();
- if (result4 !== null) {
- var result5 = [];
- var result7 = parse_WS();
- while (result7 !== null) {
- result5.push(result7);
- var result7 = parse_WS();
+ if (result4 !== null) {
+ var result5 = parse_ConditionalOrExpression();
+ if (result5 !== null) {
+ var result6 = [];
+ var result8 = parse_WS();
+ while (result8 !== null) {
+ result6.push(result8);
+ var result8 = parse_WS();
}
- if (result5 !== null) {
+ if (result6 !== null) {
if (input.substr(pos, 1) === ")") {
- var result6 = ")";
+ var result7 = ")";
pos += 1;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result6 !== null) {
- var result1 = [result2, result3, result4, result5, result6];
+ if (result7 !== null) {
+ var result1 = [result3, result4, result5, result6, result7];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(e) {
return e;
})(result1[2])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[105] BrackettedExpression");
@@ -26378,172 +19296,109 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var savedPos15 = pos;
- if (input.substr(pos, 1) === "S") {
- var result272 = "S";
- pos += 1;
+ var savedPos27 = pos;
+ var savedPos28 = pos;
+ if (input.substr(pos, 3) === "STR") {
+ var result216 = "STR";
+ pos += 3;
} else {
- var result272 = null;
+ var result216 = null;
if (reportMatchFailures) {
- matchFailed("\"S\"");
+ matchFailed("\"STR\"");
}
}
- if (result272 !== null) {
- var result255 = result272;
+ if (result216 !== null) {
+ var result205 = result216;
} else {
- if (input.substr(pos, 1) === "s") {
- var result271 = "s";
- pos += 1;
+ if (input.substr(pos, 3) === "str") {
+ var result215 = "str";
+ pos += 3;
} else {
- var result271 = null;
+ var result215 = null;
if (reportMatchFailures) {
- matchFailed("\"s\"");
+ matchFailed("\"str\"");
}
}
- if (result271 !== null) {
- var result255 = result271;
+ if (result215 !== null) {
+ var result205 = result215;
} else {
- var result255 = null;;
+ var result205 = null;;
};
}
- if (result255 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result270 = "T";
- pos += 1;
- } else {
- var result270 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result270 !== null) {
- var result256 = result270;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result269 = "t";
- pos += 1;
- } else {
- var result269 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result269 !== null) {
- var result256 = result269;
- } else {
- var result256 = null;;
- };
+ if (result205 !== null) {
+ var result206 = [];
+ var result214 = parse_WS();
+ while (result214 !== null) {
+ result206.push(result214);
+ var result214 = parse_WS();
}
- if (result256 !== null) {
- if (input.substr(pos, 1) === "R") {
- var result268 = "R";
+ if (result206 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result207 = "(";
pos += 1;
} else {
- var result268 = null;
+ var result207 = null;
if (reportMatchFailures) {
- matchFailed("\"R\"");
- }
- }
- if (result268 !== null) {
- var result257 = result268;
- } else {
- if (input.substr(pos, 1) === "r") {
- var result267 = "r";
- pos += 1;
- } else {
- var result267 = null;
- if (reportMatchFailures) {
- matchFailed("\"r\"");
- }
+ matchFailed("\"(\"");
}
- if (result267 !== null) {
- var result257 = result267;
- } else {
- var result257 = null;;
- };
}
- if (result257 !== null) {
- var result258 = [];
- var result266 = parse_WS();
- while (result266 !== null) {
- result258.push(result266);
- var result266 = parse_WS();
+ if (result207 !== null) {
+ var result208 = [];
+ var result213 = parse_WS();
+ while (result213 !== null) {
+ result208.push(result213);
+ var result213 = parse_WS();
}
- if (result258 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result259 = "(";
- pos += 1;
- } else {
- var result259 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result259 !== null) {
- var result260 = [];
- var result265 = parse_WS();
- while (result265 !== null) {
- result260.push(result265);
- var result265 = parse_WS();
+ if (result208 !== null) {
+ var result209 = parse_ConditionalOrExpression();
+ if (result209 !== null) {
+ var result210 = [];
+ var result212 = parse_WS();
+ while (result212 !== null) {
+ result210.push(result212);
+ var result212 = parse_WS();
}
- if (result260 !== null) {
- var result261 = parse_ConditionalOrExpression();
- if (result261 !== null) {
- var result262 = [];
- var result264 = parse_WS();
- while (result264 !== null) {
- result262.push(result264);
- var result264 = parse_WS();
- }
- if (result262 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result263 = ")";
- pos += 1;
- } else {
- var result263 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result263 !== null) {
- var result254 = [result255, result256, result257, result258, result259, result260, result261, result262, result263];
- } else {
- var result254 = null;
- pos = savedPos15;
- }
- } else {
- var result254 = null;
- pos = savedPos15;
+ if (result210 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result211 = ")";
+ pos += 1;
+ } else {
+ var result211 = null;
+ if (reportMatchFailures) {
+ matchFailed("\")\"");
}
+ }
+ if (result211 !== null) {
+ var result203 = [result205, result206, result207, result208, result209, result210, result211];
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
} else {
- var result254 = null;
- pos = savedPos15;
+ var result203 = null;
+ pos = savedPos28;
}
- var result253 = result254 !== null
+ var result204 = result203 !== null
? (function(e) {
var ex = {};
ex.token = 'expression'
@@ -26552,209 +19407,120 @@ SparqlParser.parser = (function(){
ex.args = [e]
return ex;
- })(result254[6])
+ })(result203[4])
: null;
- if (result253 !== null) {
- var result0 = result253;
+ if (result204 !== null) {
+ var result202 = result204;
} else {
- var savedPos14 = pos;
- if (input.substr(pos, 1) === "L") {
- var result252 = "L";
- pos += 1;
+ var result202 = null;
+ pos = savedPos27;
+ }
+ if (result202 !== null) {
+ var result0 = result202;
+ } else {
+ var savedPos25 = pos;
+ var savedPos26 = pos;
+ if (input.substr(pos, 4) === "LANG") {
+ var result201 = "LANG";
+ pos += 4;
} else {
- var result252 = null;
+ var result201 = null;
if (reportMatchFailures) {
- matchFailed("\"L\"");
+ matchFailed("\"LANG\"");
}
}
- if (result252 !== null) {
- var result232 = result252;
+ if (result201 !== null) {
+ var result190 = result201;
} else {
- if (input.substr(pos, 1) === "l") {
- var result251 = "l";
- pos += 1;
- } else {
- var result251 = null;
- if (reportMatchFailures) {
- matchFailed("\"l\"");
- }
- }
- if (result251 !== null) {
- var result232 = result251;
- } else {
- var result232 = null;;
- };
- }
- if (result232 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result250 = "A";
- pos += 1;
+ if (input.substr(pos, 4) === "lang") {
+ var result200 = "lang";
+ pos += 4;
} else {
- var result250 = null;
+ var result200 = null;
if (reportMatchFailures) {
- matchFailed("\"A\"");
+ matchFailed("\"lang\"");
}
}
- if (result250 !== null) {
- var result233 = result250;
+ if (result200 !== null) {
+ var result190 = result200;
} else {
- if (input.substr(pos, 1) === "a") {
- var result249 = "a";
- pos += 1;
- } else {
- var result249 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result249 !== null) {
- var result233 = result249;
- } else {
- var result233 = null;;
- };
- }
- if (result233 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result248 = "N";
- pos += 1;
- } else {
- var result248 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result248 !== null) {
- var result234 = result248;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result247 = "n";
- pos += 1;
- } else {
- var result247 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result247 !== null) {
- var result234 = result247;
- } else {
- var result234 = null;;
- };
- }
- if (result234 !== null) {
- if (input.substr(pos, 1) === "G") {
- var result246 = "G";
- pos += 1;
- } else {
- var result246 = null;
- if (reportMatchFailures) {
- matchFailed("\"G\"");
- }
- }
- if (result246 !== null) {
- var result235 = result246;
- } else {
- if (input.substr(pos, 1) === "g") {
- var result245 = "g";
- pos += 1;
- } else {
- var result245 = null;
- if (reportMatchFailures) {
- matchFailed("\"g\"");
- }
- }
- if (result245 !== null) {
- var result235 = result245;
- } else {
- var result235 = null;;
- };
+ var result190 = null;;
+ };
+ }
+ if (result190 !== null) {
+ var result191 = [];
+ var result199 = parse_WS();
+ while (result199 !== null) {
+ result191.push(result199);
+ var result199 = parse_WS();
+ }
+ if (result191 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result192 = "(";
+ pos += 1;
+ } else {
+ var result192 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"(\"");
}
- if (result235 !== null) {
- var result236 = [];
- var result244 = parse_WS();
- while (result244 !== null) {
- result236.push(result244);
- var result244 = parse_WS();
- }
- if (result236 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result237 = "(";
- pos += 1;
- } else {
- var result237 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result237 !== null) {
- var result238 = [];
- var result243 = parse_WS();
- while (result243 !== null) {
- result238.push(result243);
- var result243 = parse_WS();
- }
- if (result238 !== null) {
- var result239 = parse_ConditionalOrExpression();
- if (result239 !== null) {
- var result240 = [];
- var result242 = parse_WS();
- while (result242 !== null) {
- result240.push(result242);
- var result242 = parse_WS();
- }
- if (result240 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result241 = ")";
- pos += 1;
- } else {
- var result241 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result241 !== null) {
- var result231 = [result232, result233, result234, result235, result236, result237, result238, result239, result240, result241];
- } else {
- var result231 = null;
- pos = savedPos14;
- }
- } else {
- var result231 = null;
- pos = savedPos14;
- }
- } else {
- var result231 = null;
- pos = savedPos14;
+ }
+ if (result192 !== null) {
+ var result193 = [];
+ var result198 = parse_WS();
+ while (result198 !== null) {
+ result193.push(result198);
+ var result198 = parse_WS();
+ }
+ if (result193 !== null) {
+ var result194 = parse_ConditionalOrExpression();
+ if (result194 !== null) {
+ var result195 = [];
+ var result197 = parse_WS();
+ while (result197 !== null) {
+ result195.push(result197);
+ var result197 = parse_WS();
+ }
+ if (result195 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result196 = ")";
+ pos += 1;
+ } else {
+ var result196 = null;
+ if (reportMatchFailures) {
+ matchFailed("\")\"");
}
+ }
+ if (result196 !== null) {
+ var result188 = [result190, result191, result192, result193, result194, result195, result196];
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
} else {
- var result231 = null;
- pos = savedPos14;
+ var result188 = null;
+ pos = savedPos26;
}
- var result230 = result231 !== null
+ var result189 = result188 !== null
? (function(e) {
var ex = {};
ex.token = 'expression'
@@ -26763,137 +19529,144 @@ SparqlParser.parser = (function(){
ex.args = [e]
return ex;
- })(result231[7])
+ })(result188[4])
: null;
- if (result230 !== null) {
- var result0 = result230;
+ if (result189 !== null) {
+ var result187 = result189;
+ } else {
+ var result187 = null;
+ pos = savedPos25;
+ }
+ if (result187 !== null) {
+ var result0 = result187;
} else {
- var savedPos13 = pos;
+ var savedPos23 = pos;
+ var savedPos24 = pos;
if (input.substr(pos, 11) === "LANGMATCHES") {
- var result214 = "LANGMATCHES";
+ var result171 = "LANGMATCHES";
pos += 11;
} else {
- var result214 = null;
+ var result171 = null;
if (reportMatchFailures) {
matchFailed("\"LANGMATCHES\"");
}
}
- if (result214 !== null) {
- var result215 = [];
- var result229 = parse_WS();
- while (result229 !== null) {
- result215.push(result229);
- var result229 = parse_WS();
+ if (result171 !== null) {
+ var result172 = [];
+ var result186 = parse_WS();
+ while (result186 !== null) {
+ result172.push(result186);
+ var result186 = parse_WS();
}
- if (result215 !== null) {
+ if (result172 !== null) {
if (input.substr(pos, 1) === "(") {
- var result216 = "(";
+ var result173 = "(";
pos += 1;
} else {
- var result216 = null;
+ var result173 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result216 !== null) {
- var result217 = [];
- var result228 = parse_WS();
- while (result228 !== null) {
- result217.push(result228);
- var result228 = parse_WS();
- }
- if (result217 !== null) {
- var result218 = parse_ConditionalOrExpression();
- if (result218 !== null) {
- var result219 = [];
- var result227 = parse_WS();
- while (result227 !== null) {
- result219.push(result227);
- var result227 = parse_WS();
+ if (result173 !== null) {
+ var result174 = [];
+ var result185 = parse_WS();
+ while (result185 !== null) {
+ result174.push(result185);
+ var result185 = parse_WS();
+ }
+ if (result174 !== null) {
+ var result175 = parse_ConditionalOrExpression();
+ if (result175 !== null) {
+ var result176 = [];
+ var result184 = parse_WS();
+ while (result184 !== null) {
+ result176.push(result184);
+ var result184 = parse_WS();
}
- if (result219 !== null) {
+ if (result176 !== null) {
if (input.substr(pos, 1) === ",") {
- var result220 = ",";
+ var result177 = ",";
pos += 1;
} else {
- var result220 = null;
+ var result177 = null;
if (reportMatchFailures) {
matchFailed("\",\"");
}
}
- if (result220 !== null) {
- var result221 = [];
- var result226 = parse_WS();
- while (result226 !== null) {
- result221.push(result226);
- var result226 = parse_WS();
+ if (result177 !== null) {
+ var result178 = [];
+ var result183 = parse_WS();
+ while (result183 !== null) {
+ result178.push(result183);
+ var result183 = parse_WS();
}
- if (result221 !== null) {
- var result222 = parse_ConditionalOrExpression();
- if (result222 !== null) {
- var result223 = [];
- var result225 = parse_WS();
- while (result225 !== null) {
- result223.push(result225);
- var result225 = parse_WS();
+ if (result178 !== null) {
+ var result179 = parse_ConditionalOrExpression();
+ if (result179 !== null) {
+ var result180 = [];
+ var result182 = parse_WS();
+ while (result182 !== null) {
+ result180.push(result182);
+ var result182 = parse_WS();
}
- if (result223 !== null) {
+ if (result180 !== null) {
if (input.substr(pos, 1) === ")") {
- var result224 = ")";
+ var result181 = ")";
pos += 1;
} else {
- var result224 = null;
+ var result181 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result224 !== null) {
- var result213 = [result214, result215, result216, result217, result218, result219, result220, result221, result222, result223, result224];
+ if (result181 !== null) {
+ var result169 = [result171, result172, result173, result174, result175, result176, result177, result178, result179, result180, result181];
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
} else {
- var result213 = null;
- pos = savedPos13;
+ var result169 = null;
+ pos = savedPos24;
}
- var result212 = result213 !== null
+ var result170 = result169 !== null
? (function(e1, e2) {
var ex = {};
ex.token = 'expression'
@@ -26902,337 +19675,120 @@ SparqlParser.parser = (function(){
ex.args = [e1,e2]
return ex;
- })(result213[4], result213[8])
+ })(result169[4], result169[8])
: null;
- if (result212 !== null) {
- var result0 = result212;
+ if (result170 !== null) {
+ var result168 = result170;
} else {
- var savedPos12 = pos;
- if (input.substr(pos, 1) === "D") {
- var result211 = "D";
- pos += 1;
+ var result168 = null;
+ pos = savedPos23;
+ }
+ if (result168 !== null) {
+ var result0 = result168;
+ } else {
+ var savedPos21 = pos;
+ var savedPos22 = pos;
+ if (input.substr(pos, 8) === "DATATYPE") {
+ var result167 = "DATATYPE";
+ pos += 8;
} else {
- var result211 = null;
+ var result167 = null;
if (reportMatchFailures) {
- matchFailed("\"D\"");
+ matchFailed("\"DATATYPE\"");
}
}
- if (result211 !== null) {
- var result179 = result211;
+ if (result167 !== null) {
+ var result156 = result167;
} else {
- if (input.substr(pos, 1) === "d") {
- var result210 = "d";
- pos += 1;
+ if (input.substr(pos, 8) === "datatype") {
+ var result166 = "datatype";
+ pos += 8;
} else {
- var result210 = null;
+ var result166 = null;
if (reportMatchFailures) {
- matchFailed("\"d\"");
+ matchFailed("\"datatype\"");
}
}
- if (result210 !== null) {
- var result179 = result210;
+ if (result166 !== null) {
+ var result156 = result166;
} else {
- var result179 = null;;
+ var result156 = null;;
};
}
- if (result179 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result209 = "A";
- pos += 1;
- } else {
- var result209 = null;
- if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result209 !== null) {
- var result180 = result209;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result208 = "a";
- pos += 1;
- } else {
- var result208 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result208 !== null) {
- var result180 = result208;
- } else {
- var result180 = null;;
- };
+ if (result156 !== null) {
+ var result157 = [];
+ var result165 = parse_WS();
+ while (result165 !== null) {
+ result157.push(result165);
+ var result165 = parse_WS();
}
- if (result180 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result207 = "T";
+ if (result157 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result158 = "(";
pos += 1;
} else {
- var result207 = null;
+ var result158 = null;
if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result207 !== null) {
- var result181 = result207;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result206 = "t";
- pos += 1;
- } else {
- var result206 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
+ matchFailed("\"(\"");
}
- if (result206 !== null) {
- var result181 = result206;
- } else {
- var result181 = null;;
- };
}
- if (result181 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result205 = "A";
- pos += 1;
- } else {
- var result205 = null;
- if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result205 !== null) {
- var result182 = result205;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result204 = "a";
- pos += 1;
- } else {
- var result204 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result204 !== null) {
- var result182 = result204;
- } else {
- var result182 = null;;
- };
+ if (result158 !== null) {
+ var result159 = [];
+ var result164 = parse_WS();
+ while (result164 !== null) {
+ result159.push(result164);
+ var result164 = parse_WS();
}
- if (result182 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result203 = "T";
- pos += 1;
- } else {
- var result203 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result203 !== null) {
- var result183 = result203;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result202 = "t";
- pos += 1;
- } else {
- var result202 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result202 !== null) {
- var result183 = result202;
- } else {
- var result183 = null;;
- };
- }
- if (result183 !== null) {
- if (input.substr(pos, 1) === "Y") {
- var result201 = "Y";
- pos += 1;
- } else {
- var result201 = null;
- if (reportMatchFailures) {
- matchFailed("\"Y\"");
- }
- }
- if (result201 !== null) {
- var result184 = result201;
- } else {
- if (input.substr(pos, 1) === "y") {
- var result200 = "y";
- pos += 1;
- } else {
- var result200 = null;
- if (reportMatchFailures) {
- matchFailed("\"y\"");
- }
- }
- if (result200 !== null) {
- var result184 = result200;
- } else {
- var result184 = null;;
- };
+ if (result159 !== null) {
+ var result160 = parse_ConditionalOrExpression();
+ if (result160 !== null) {
+ var result161 = [];
+ var result163 = parse_WS();
+ while (result163 !== null) {
+ result161.push(result163);
+ var result163 = parse_WS();
}
- if (result184 !== null) {
- if (input.substr(pos, 1) === "P") {
- var result199 = "P";
+ if (result161 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result162 = ")";
pos += 1;
} else {
- var result199 = null;
+ var result162 = null;
if (reportMatchFailures) {
- matchFailed("\"P\"");
- }
- }
- if (result199 !== null) {
- var result185 = result199;
- } else {
- if (input.substr(pos, 1) === "p") {
- var result198 = "p";
- pos += 1;
- } else {
- var result198 = null;
- if (reportMatchFailures) {
- matchFailed("\"p\"");
- }
+ matchFailed("\")\"");
}
- if (result198 !== null) {
- var result185 = result198;
- } else {
- var result185 = null;;
- };
}
- if (result185 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result197 = "E";
- pos += 1;
- } else {
- var result197 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result197 !== null) {
- var result186 = result197;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result196 = "e";
- pos += 1;
- } else {
- var result196 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result196 !== null) {
- var result186 = result196;
- } else {
- var result186 = null;;
- };
- }
- if (result186 !== null) {
- var result187 = [];
- var result195 = parse_WS();
- while (result195 !== null) {
- result187.push(result195);
- var result195 = parse_WS();
- }
- if (result187 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result188 = "(";
- pos += 1;
- } else {
- var result188 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result188 !== null) {
- var result189 = [];
- var result194 = parse_WS();
- while (result194 !== null) {
- result189.push(result194);
- var result194 = parse_WS();
- }
- if (result189 !== null) {
- var result190 = parse_ConditionalOrExpression();
- if (result190 !== null) {
- var result191 = [];
- var result193 = parse_WS();
- while (result193 !== null) {
- result191.push(result193);
- var result193 = parse_WS();
- }
- if (result191 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result192 = ")";
- pos += 1;
- } else {
- var result192 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result192 !== null) {
- var result178 = [result179, result180, result181, result182, result183, result184, result185, result186, result187, result188, result189, result190, result191, result192];
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
- } else {
- var result178 = null;
- pos = savedPos12;
- }
+ if (result162 !== null) {
+ var result154 = [result156, result157, result158, result159, result160, result161, result162];
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
} else {
- var result178 = null;
- pos = savedPos12;
+ var result154 = null;
+ pos = savedPos22;
}
- var result177 = result178 !== null
+ var result155 = result154 !== null
? (function(e) {
var ex = {};
ex.token = 'expression'
@@ -27241,95 +19797,102 @@ SparqlParser.parser = (function(){
ex.args = [e]
return ex;
- })(result178[11])
+ })(result154[4])
: null;
- if (result177 !== null) {
- var result0 = result177;
+ if (result155 !== null) {
+ var result153 = result155;
+ } else {
+ var result153 = null;
+ pos = savedPos21;
+ }
+ if (result153 !== null) {
+ var result0 = result153;
} else {
- var savedPos11 = pos;
+ var savedPos19 = pos;
+ var savedPos20 = pos;
if (input.substr(pos, 5) === "BOUND") {
- var result167 = "BOUND";
+ var result143 = "BOUND";
pos += 5;
} else {
- var result167 = null;
+ var result143 = null;
if (reportMatchFailures) {
matchFailed("\"BOUND\"");
}
}
- if (result167 !== null) {
- var result168 = [];
- var result176 = parse_WS();
- while (result176 !== null) {
- result168.push(result176);
- var result176 = parse_WS();
+ if (result143 !== null) {
+ var result144 = [];
+ var result152 = parse_WS();
+ while (result152 !== null) {
+ result144.push(result152);
+ var result152 = parse_WS();
}
- if (result168 !== null) {
+ if (result144 !== null) {
if (input.substr(pos, 1) === "(") {
- var result169 = "(";
+ var result145 = "(";
pos += 1;
} else {
- var result169 = null;
+ var result145 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result169 !== null) {
- var result170 = [];
- var result175 = parse_WS();
- while (result175 !== null) {
- result170.push(result175);
- var result175 = parse_WS();
+ if (result145 !== null) {
+ var result146 = [];
+ var result151 = parse_WS();
+ while (result151 !== null) {
+ result146.push(result151);
+ var result151 = parse_WS();
}
- if (result170 !== null) {
- var result171 = parse_Var();
- if (result171 !== null) {
- var result172 = [];
- var result174 = parse_WS();
- while (result174 !== null) {
- result172.push(result174);
- var result174 = parse_WS();
+ if (result146 !== null) {
+ var result147 = parse_Var();
+ if (result147 !== null) {
+ var result148 = [];
+ var result150 = parse_WS();
+ while (result150 !== null) {
+ result148.push(result150);
+ var result150 = parse_WS();
}
- if (result172 !== null) {
+ if (result148 !== null) {
if (input.substr(pos, 1) === ")") {
- var result173 = ")";
+ var result149 = ")";
pos += 1;
} else {
- var result173 = null;
+ var result149 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result173 !== null) {
- var result166 = [result167, result168, result169, result170, result171, result172, result173];
+ if (result149 !== null) {
+ var result141 = [result143, result144, result145, result146, result147, result148, result149];
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
} else {
- var result166 = null;
- pos = savedPos11;
+ var result141 = null;
+ pos = savedPos20;
}
- var result165 = result166 !== null
+ var result142 = result141 !== null
? (function(v) {
var ex = {};
ex.token = 'expression'
@@ -27338,95 +19901,102 @@ SparqlParser.parser = (function(){
ex.args = [v]
return ex;
- })(result166[4])
+ })(result141[4])
: null;
- if (result165 !== null) {
- var result0 = result165;
+ if (result142 !== null) {
+ var result140 = result142;
+ } else {
+ var result140 = null;
+ pos = savedPos19;
+ }
+ if (result140 !== null) {
+ var result0 = result140;
} else {
- var savedPos10 = pos;
+ var savedPos17 = pos;
+ var savedPos18 = pos;
if (input.substr(pos, 3) === "IRI") {
- var result155 = "IRI";
+ var result130 = "IRI";
pos += 3;
} else {
- var result155 = null;
+ var result130 = null;
if (reportMatchFailures) {
matchFailed("\"IRI\"");
}
}
- if (result155 !== null) {
- var result156 = [];
- var result164 = parse_WS();
- while (result164 !== null) {
- result156.push(result164);
- var result164 = parse_WS();
+ if (result130 !== null) {
+ var result131 = [];
+ var result139 = parse_WS();
+ while (result139 !== null) {
+ result131.push(result139);
+ var result139 = parse_WS();
}
- if (result156 !== null) {
+ if (result131 !== null) {
if (input.substr(pos, 1) === "(") {
- var result157 = "(";
+ var result132 = "(";
pos += 1;
} else {
- var result157 = null;
+ var result132 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result157 !== null) {
- var result158 = [];
- var result163 = parse_WS();
- while (result163 !== null) {
- result158.push(result163);
- var result163 = parse_WS();
+ if (result132 !== null) {
+ var result133 = [];
+ var result138 = parse_WS();
+ while (result138 !== null) {
+ result133.push(result138);
+ var result138 = parse_WS();
}
- if (result158 !== null) {
- var result159 = parse_ConditionalOrExpression();
- if (result159 !== null) {
- var result160 = [];
- var result162 = parse_WS();
- while (result162 !== null) {
- result160.push(result162);
- var result162 = parse_WS();
+ if (result133 !== null) {
+ var result134 = parse_ConditionalOrExpression();
+ if (result134 !== null) {
+ var result135 = [];
+ var result137 = parse_WS();
+ while (result137 !== null) {
+ result135.push(result137);
+ var result137 = parse_WS();
}
- if (result160 !== null) {
+ if (result135 !== null) {
if (input.substr(pos, 1) === ")") {
- var result161 = ")";
+ var result136 = ")";
pos += 1;
} else {
- var result161 = null;
+ var result136 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result161 !== null) {
- var result154 = [result155, result156, result157, result158, result159, result160, result161];
+ if (result136 !== null) {
+ var result128 = [result130, result131, result132, result133, result134, result135, result136];
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
} else {
- var result154 = null;
- pos = savedPos10;
+ var result128 = null;
+ pos = savedPos18;
}
- var result153 = result154 !== null
+ var result129 = result128 !== null
? (function(e) {
var ex = {};
ex.token = 'expression';
@@ -27435,95 +20005,102 @@ SparqlParser.parser = (function(){
ex.args = [e];
return ex;
- })(result154[4])
+ })(result128[4])
: null;
- if (result153 !== null) {
- var result0 = result153;
+ if (result129 !== null) {
+ var result127 = result129;
} else {
- var savedPos9 = pos;
+ var result127 = null;
+ pos = savedPos17;
+ }
+ if (result127 !== null) {
+ var result0 = result127;
+ } else {
+ var savedPos15 = pos;
+ var savedPos16 = pos;
if (input.substr(pos, 3) === "URI") {
- var result143 = "URI";
+ var result117 = "URI";
pos += 3;
} else {
- var result143 = null;
+ var result117 = null;
if (reportMatchFailures) {
matchFailed("\"URI\"");
}
}
- if (result143 !== null) {
- var result144 = [];
- var result152 = parse_WS();
- while (result152 !== null) {
- result144.push(result152);
- var result152 = parse_WS();
+ if (result117 !== null) {
+ var result118 = [];
+ var result126 = parse_WS();
+ while (result126 !== null) {
+ result118.push(result126);
+ var result126 = parse_WS();
}
- if (result144 !== null) {
+ if (result118 !== null) {
if (input.substr(pos, 1) === "(") {
- var result145 = "(";
+ var result119 = "(";
pos += 1;
} else {
- var result145 = null;
+ var result119 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result145 !== null) {
- var result146 = [];
- var result151 = parse_WS();
- while (result151 !== null) {
- result146.push(result151);
- var result151 = parse_WS();
+ if (result119 !== null) {
+ var result120 = [];
+ var result125 = parse_WS();
+ while (result125 !== null) {
+ result120.push(result125);
+ var result125 = parse_WS();
}
- if (result146 !== null) {
- var result147 = parse_ConditionalOrExpression();
- if (result147 !== null) {
- var result148 = [];
- var result150 = parse_WS();
- while (result150 !== null) {
- result148.push(result150);
- var result150 = parse_WS();
+ if (result120 !== null) {
+ var result121 = parse_ConditionalOrExpression();
+ if (result121 !== null) {
+ var result122 = [];
+ var result124 = parse_WS();
+ while (result124 !== null) {
+ result122.push(result124);
+ var result124 = parse_WS();
}
- if (result148 !== null) {
+ if (result122 !== null) {
if (input.substr(pos, 1) === ")") {
- var result149 = ")";
+ var result123 = ")";
pos += 1;
} else {
- var result149 = null;
+ var result123 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result149 !== null) {
- var result142 = [result143, result144, result145, result146, result147, result148, result149];
+ if (result123 !== null) {
+ var result115 = [result117, result118, result119, result120, result121, result122, result123];
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
} else {
- var result142 = null;
- pos = savedPos9;
+ var result115 = null;
+ pos = savedPos16;
}
- var result141 = result142 !== null
+ var result116 = result115 !== null
? (function(e) {
var ex = {};
ex.token = 'expression';
@@ -27532,112 +20109,119 @@ SparqlParser.parser = (function(){
ex.args = [e];
return ex;
- })(result142[4])
+ })(result115[4])
: null;
- if (result141 !== null) {
- var result0 = result141;
+ if (result116 !== null) {
+ var result114 = result116;
+ } else {
+ var result114 = null;
+ pos = savedPos15;
+ }
+ if (result114 !== null) {
+ var result0 = result114;
} else {
- var savedPos7 = pos;
+ var savedPos12 = pos;
+ var savedPos13 = pos;
if (input.substr(pos, 5) === "BNODE") {
- var result128 = "BNODE";
+ var result101 = "BNODE";
pos += 5;
} else {
- var result128 = null;
+ var result101 = null;
if (reportMatchFailures) {
matchFailed("\"BNODE\"");
}
}
- if (result128 !== null) {
- var result129 = [];
- var result140 = parse_WS();
- while (result140 !== null) {
- result129.push(result140);
- var result140 = parse_WS();
+ if (result101 !== null) {
+ var result102 = [];
+ var result113 = parse_WS();
+ while (result113 !== null) {
+ result102.push(result113);
+ var result113 = parse_WS();
}
- if (result129 !== null) {
- var savedPos8 = pos;
+ if (result102 !== null) {
+ var savedPos14 = pos;
if (input.substr(pos, 1) === "(") {
- var result133 = "(";
+ var result106 = "(";
pos += 1;
} else {
- var result133 = null;
+ var result106 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result133 !== null) {
- var result134 = [];
- var result139 = parse_WS();
- while (result139 !== null) {
- result134.push(result139);
- var result139 = parse_WS();
+ if (result106 !== null) {
+ var result107 = [];
+ var result112 = parse_WS();
+ while (result112 !== null) {
+ result107.push(result112);
+ var result112 = parse_WS();
}
- if (result134 !== null) {
- var result135 = parse_ConditionalOrExpression();
- if (result135 !== null) {
- var result136 = [];
- var result138 = parse_WS();
- while (result138 !== null) {
- result136.push(result138);
- var result138 = parse_WS();
+ if (result107 !== null) {
+ var result108 = parse_ConditionalOrExpression();
+ if (result108 !== null) {
+ var result109 = [];
+ var result111 = parse_WS();
+ while (result111 !== null) {
+ result109.push(result111);
+ var result111 = parse_WS();
}
- if (result136 !== null) {
+ if (result109 !== null) {
if (input.substr(pos, 1) === ")") {
- var result137 = ")";
+ var result110 = ")";
pos += 1;
} else {
- var result137 = null;
+ var result110 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result137 !== null) {
- var result132 = [result133, result134, result135, result136, result137];
+ if (result110 !== null) {
+ var result105 = [result106, result107, result108, result109, result110];
} else {
- var result132 = null;
- pos = savedPos8;
+ var result105 = null;
+ pos = savedPos14;
}
} else {
- var result132 = null;
- pos = savedPos8;
+ var result105 = null;
+ pos = savedPos14;
}
} else {
- var result132 = null;
- pos = savedPos8;
+ var result105 = null;
+ pos = savedPos14;
}
} else {
- var result132 = null;
- pos = savedPos8;
+ var result105 = null;
+ pos = savedPos14;
}
} else {
- var result132 = null;
- pos = savedPos8;
+ var result105 = null;
+ pos = savedPos14;
}
- if (result132 !== null) {
- var result130 = result132;
+ if (result105 !== null) {
+ var result103 = result105;
} else {
- var result131 = parse_NIL();
- if (result131 !== null) {
- var result130 = result131;
+ var result104 = parse_NIL();
+ if (result104 !== null) {
+ var result103 = result104;
} else {
- var result130 = null;;
+ var result103 = null;;
};
}
- if (result130 !== null) {
- var result127 = [result128, result129, result130];
+ if (result103 !== null) {
+ var result99 = [result101, result102, result103];
} else {
- var result127 = null;
- pos = savedPos7;
+ var result99 = null;
+ pos = savedPos13;
}
} else {
- var result127 = null;
- pos = savedPos7;
+ var result99 = null;
+ pos = savedPos13;
}
} else {
- var result127 = null;
- pos = savedPos7;
+ var result99 = null;
+ pos = savedPos13;
}
- var result126 = result127 !== null
+ var result100 = result99 !== null
? (function(arg) {
var ex = {};
ex.token = 'expression';
@@ -27650,45 +20234,52 @@ SparqlParser.parser = (function(){
}
return ex;
- })(result127[2])
+ })(result99[2])
: null;
- if (result126 !== null) {
- var result0 = result126;
+ if (result100 !== null) {
+ var result98 = result100;
} else {
- var savedPos6 = pos;
+ var result98 = null;
+ pos = savedPos12;
+ }
+ if (result98 !== null) {
+ var result0 = result98;
+ } else {
+ var savedPos10 = pos;
+ var savedPos11 = pos;
if (input.substr(pos, 8) === "COALESCE") {
- var result122 = "COALESCE";
+ var result94 = "COALESCE";
pos += 8;
} else {
- var result122 = null;
+ var result94 = null;
if (reportMatchFailures) {
matchFailed("\"COALESCE\"");
}
}
- if (result122 !== null) {
- var result123 = [];
- var result125 = parse_WS();
- while (result125 !== null) {
- result123.push(result125);
- var result125 = parse_WS();
+ if (result94 !== null) {
+ var result95 = [];
+ var result97 = parse_WS();
+ while (result97 !== null) {
+ result95.push(result97);
+ var result97 = parse_WS();
}
- if (result123 !== null) {
- var result124 = parse_ExpressionList();
- if (result124 !== null) {
- var result121 = [result122, result123, result124];
+ if (result95 !== null) {
+ var result96 = parse_ExpressionList();
+ if (result96 !== null) {
+ var result92 = [result94, result95, result96];
} else {
- var result121 = null;
- pos = savedPos6;
+ var result92 = null;
+ pos = savedPos11;
}
} else {
- var result121 = null;
- pos = savedPos6;
+ var result92 = null;
+ pos = savedPos11;
}
} else {
- var result121 = null;
- pos = savedPos6;
+ var result92 = null;
+ pos = savedPos11;
}
- var result120 = result121 !== null
+ var result93 = result92 !== null
? (function(args) {
var ex = {};
ex.token = 'expression';
@@ -27697,179 +20288,186 @@ SparqlParser.parser = (function(){
ex.args = args;
return ex;
- })(result121[2])
+ })(result92[2])
: null;
- if (result120 !== null) {
- var result0 = result120;
+ if (result93 !== null) {
+ var result91 = result93;
+ } else {
+ var result91 = null;
+ pos = savedPos10;
+ }
+ if (result91 !== null) {
+ var result0 = result91;
} else {
- var savedPos5 = pos;
+ var savedPos8 = pos;
+ var savedPos9 = pos;
if (input.substr(pos, 2) === "IF") {
- var result98 = "IF";
+ var result69 = "IF";
pos += 2;
} else {
- var result98 = null;
+ var result69 = null;
if (reportMatchFailures) {
matchFailed("\"IF\"");
}
}
- if (result98 !== null) {
- var result99 = [];
- var result119 = parse_WS();
- while (result119 !== null) {
- result99.push(result119);
- var result119 = parse_WS();
+ if (result69 !== null) {
+ var result70 = [];
+ var result90 = parse_WS();
+ while (result90 !== null) {
+ result70.push(result90);
+ var result90 = parse_WS();
}
- if (result99 !== null) {
+ if (result70 !== null) {
if (input.substr(pos, 1) === "(") {
- var result100 = "(";
+ var result71 = "(";
pos += 1;
} else {
- var result100 = null;
+ var result71 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result100 !== null) {
- var result101 = [];
- var result118 = parse_WS();
- while (result118 !== null) {
- result101.push(result118);
- var result118 = parse_WS();
+ if (result71 !== null) {
+ var result72 = [];
+ var result89 = parse_WS();
+ while (result89 !== null) {
+ result72.push(result89);
+ var result89 = parse_WS();
}
- if (result101 !== null) {
- var result102 = parse_ConditionalOrExpression();
- if (result102 !== null) {
- var result103 = [];
- var result117 = parse_WS();
- while (result117 !== null) {
- result103.push(result117);
- var result117 = parse_WS();
+ if (result72 !== null) {
+ var result73 = parse_ConditionalOrExpression();
+ if (result73 !== null) {
+ var result74 = [];
+ var result88 = parse_WS();
+ while (result88 !== null) {
+ result74.push(result88);
+ var result88 = parse_WS();
}
- if (result103 !== null) {
+ if (result74 !== null) {
if (input.substr(pos, 1) === ",") {
- var result104 = ",";
+ var result75 = ",";
pos += 1;
} else {
- var result104 = null;
+ var result75 = null;
if (reportMatchFailures) {
matchFailed("\",\"");
}
}
- if (result104 !== null) {
- var result105 = [];
- var result116 = parse_WS();
- while (result116 !== null) {
- result105.push(result116);
- var result116 = parse_WS();
+ if (result75 !== null) {
+ var result76 = [];
+ var result87 = parse_WS();
+ while (result87 !== null) {
+ result76.push(result87);
+ var result87 = parse_WS();
}
- if (result105 !== null) {
- var result106 = parse_ConditionalOrExpression();
- if (result106 !== null) {
- var result107 = [];
- var result115 = parse_WS();
- while (result115 !== null) {
- result107.push(result115);
- var result115 = parse_WS();
+ if (result76 !== null) {
+ var result77 = parse_ConditionalOrExpression();
+ if (result77 !== null) {
+ var result78 = [];
+ var result86 = parse_WS();
+ while (result86 !== null) {
+ result78.push(result86);
+ var result86 = parse_WS();
}
- if (result107 !== null) {
+ if (result78 !== null) {
if (input.substr(pos, 1) === ",") {
- var result108 = ",";
+ var result79 = ",";
pos += 1;
} else {
- var result108 = null;
+ var result79 = null;
if (reportMatchFailures) {
matchFailed("\",\"");
}
}
- if (result108 !== null) {
- var result109 = [];
- var result114 = parse_WS();
- while (result114 !== null) {
- result109.push(result114);
- var result114 = parse_WS();
+ if (result79 !== null) {
+ var result80 = [];
+ var result85 = parse_WS();
+ while (result85 !== null) {
+ result80.push(result85);
+ var result85 = parse_WS();
}
- if (result109 !== null) {
- var result110 = parse_ConditionalOrExpression();
- if (result110 !== null) {
- var result111 = [];
- var result113 = parse_WS();
- while (result113 !== null) {
- result111.push(result113);
- var result113 = parse_WS();
+ if (result80 !== null) {
+ var result81 = parse_ConditionalOrExpression();
+ if (result81 !== null) {
+ var result82 = [];
+ var result84 = parse_WS();
+ while (result84 !== null) {
+ result82.push(result84);
+ var result84 = parse_WS();
}
- if (result111 !== null) {
+ if (result82 !== null) {
if (input.substr(pos, 1) === ")") {
- var result112 = ")";
+ var result83 = ")";
pos += 1;
} else {
- var result112 = null;
+ var result83 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result112 !== null) {
- var result97 = [result98, result99, result100, result101, result102, result103, result104, result105, result106, result107, result108, result109, result110, result111, result112];
+ if (result83 !== null) {
+ var result67 = [result69, result70, result71, result72, result73, result74, result75, result76, result77, result78, result79, result80, result81, result82, result83];
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
} else {
- var result97 = null;
- pos = savedPos5;
+ var result67 = null;
+ pos = savedPos9;
}
- var result96 = result97 !== null
+ var result68 = result67 !== null
? (function(test, trueCond, falseCond) {
var ex = {};
ex.token = 'expression';
@@ -27878,95 +20476,102 @@ SparqlParser.parser = (function(){
ex.args = [test,trueCond,falseCond];
return ex;
- })(result97[4], result97[8], result97[12])
+ })(result67[4], result67[8], result67[12])
: null;
- if (result96 !== null) {
- var result0 = result96;
+ if (result68 !== null) {
+ var result66 = result68;
+ } else {
+ var result66 = null;
+ pos = savedPos8;
+ }
+ if (result66 !== null) {
+ var result0 = result66;
} else {
- var savedPos4 = pos;
+ var savedPos6 = pos;
+ var savedPos7 = pos;
if (input.substr(pos, 9) === "ISLITERAL") {
- var result86 = "ISLITERAL";
+ var result56 = "ISLITERAL";
pos += 9;
} else {
- var result86 = null;
+ var result56 = null;
if (reportMatchFailures) {
matchFailed("\"ISLITERAL\"");
}
}
- if (result86 !== null) {
- var result87 = [];
- var result95 = parse_WS();
- while (result95 !== null) {
- result87.push(result95);
- var result95 = parse_WS();
+ if (result56 !== null) {
+ var result57 = [];
+ var result65 = parse_WS();
+ while (result65 !== null) {
+ result57.push(result65);
+ var result65 = parse_WS();
}
- if (result87 !== null) {
+ if (result57 !== null) {
if (input.substr(pos, 1) === "(") {
- var result88 = "(";
+ var result58 = "(";
pos += 1;
} else {
- var result88 = null;
+ var result58 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result88 !== null) {
- var result89 = [];
- var result94 = parse_WS();
- while (result94 !== null) {
- result89.push(result94);
- var result94 = parse_WS();
+ if (result58 !== null) {
+ var result59 = [];
+ var result64 = parse_WS();
+ while (result64 !== null) {
+ result59.push(result64);
+ var result64 = parse_WS();
}
- if (result89 !== null) {
- var result90 = parse_ConditionalOrExpression();
- if (result90 !== null) {
- var result91 = [];
- var result93 = parse_WS();
- while (result93 !== null) {
- result91.push(result93);
- var result93 = parse_WS();
+ if (result59 !== null) {
+ var result60 = parse_ConditionalOrExpression();
+ if (result60 !== null) {
+ var result61 = [];
+ var result63 = parse_WS();
+ while (result63 !== null) {
+ result61.push(result63);
+ var result63 = parse_WS();
}
- if (result91 !== null) {
+ if (result61 !== null) {
if (input.substr(pos, 1) === ")") {
- var result92 = ")";
+ var result62 = ")";
pos += 1;
} else {
- var result92 = null;
+ var result62 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result92 !== null) {
- var result85 = [result86, result87, result88, result89, result90, result91, result92];
+ if (result62 !== null) {
+ var result54 = [result56, result57, result58, result59, result60, result61, result62];
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
} else {
- var result85 = null;
- pos = savedPos4;
+ var result54 = null;
+ pos = savedPos7;
}
- var result84 = result85 !== null
+ var result55 = result54 !== null
? (function(arg) {
var ex = {};
ex.token = 'expression';
@@ -27975,95 +20580,102 @@ SparqlParser.parser = (function(){
ex.args = [arg];
return ex;
- })(result85[4])
+ })(result54[4])
: null;
- if (result84 !== null) {
- var result0 = result84;
+ if (result55 !== null) {
+ var result53 = result55;
+ } else {
+ var result53 = null;
+ pos = savedPos6;
+ }
+ if (result53 !== null) {
+ var result0 = result53;
} else {
- var savedPos3 = pos;
+ var savedPos4 = pos;
+ var savedPos5 = pos;
if (input.substr(pos, 7) === "ISBLANK") {
- var result74 = "ISBLANK";
+ var result43 = "ISBLANK";
pos += 7;
} else {
- var result74 = null;
+ var result43 = null;
if (reportMatchFailures) {
matchFailed("\"ISBLANK\"");
}
}
- if (result74 !== null) {
- var result75 = [];
- var result83 = parse_WS();
- while (result83 !== null) {
- result75.push(result83);
- var result83 = parse_WS();
+ if (result43 !== null) {
+ var result44 = [];
+ var result52 = parse_WS();
+ while (result52 !== null) {
+ result44.push(result52);
+ var result52 = parse_WS();
}
- if (result75 !== null) {
+ if (result44 !== null) {
if (input.substr(pos, 1) === "(") {
- var result76 = "(";
+ var result45 = "(";
pos += 1;
} else {
- var result76 = null;
+ var result45 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result76 !== null) {
- var result77 = [];
- var result82 = parse_WS();
- while (result82 !== null) {
- result77.push(result82);
- var result82 = parse_WS();
+ if (result45 !== null) {
+ var result46 = [];
+ var result51 = parse_WS();
+ while (result51 !== null) {
+ result46.push(result51);
+ var result51 = parse_WS();
}
- if (result77 !== null) {
- var result78 = parse_ConditionalOrExpression();
- if (result78 !== null) {
- var result79 = [];
- var result81 = parse_WS();
- while (result81 !== null) {
- result79.push(result81);
- var result81 = parse_WS();
+ if (result46 !== null) {
+ var result47 = parse_ConditionalOrExpression();
+ if (result47 !== null) {
+ var result48 = [];
+ var result50 = parse_WS();
+ while (result50 !== null) {
+ result48.push(result50);
+ var result50 = parse_WS();
}
- if (result79 !== null) {
+ if (result48 !== null) {
if (input.substr(pos, 1) === ")") {
- var result80 = ")";
+ var result49 = ")";
pos += 1;
} else {
- var result80 = null;
+ var result49 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result80 !== null) {
- var result73 = [result74, result75, result76, result77, result78, result79, result80];
+ if (result49 !== null) {
+ var result41 = [result43, result44, result45, result46, result47, result48, result49];
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
} else {
- var result73 = null;
- pos = savedPos3;
+ var result41 = null;
+ pos = savedPos5;
}
- var result72 = result73 !== null
+ var result42 = result41 !== null
? (function(arg) {
var ex = {};
ex.token = 'expression';
@@ -28072,137 +20684,144 @@ SparqlParser.parser = (function(){
ex.args = [arg];
return ex;
- })(result73[4])
+ })(result41[4])
: null;
- if (result72 !== null) {
- var result0 = result72;
+ if (result42 !== null) {
+ var result40 = result42;
+ } else {
+ var result40 = null;
+ pos = savedPos4;
+ }
+ if (result40 !== null) {
+ var result0 = result40;
} else {
var savedPos2 = pos;
+ var savedPos3 = pos;
if (input.substr(pos, 8) === "SAMETERM") {
- var result56 = "SAMETERM";
+ var result24 = "SAMETERM";
pos += 8;
} else {
- var result56 = null;
+ var result24 = null;
if (reportMatchFailures) {
matchFailed("\"SAMETERM\"");
}
}
- if (result56 !== null) {
- var result57 = [];
- var result71 = parse_WS();
- while (result71 !== null) {
- result57.push(result71);
- var result71 = parse_WS();
+ if (result24 !== null) {
+ var result25 = [];
+ var result39 = parse_WS();
+ while (result39 !== null) {
+ result25.push(result39);
+ var result39 = parse_WS();
}
- if (result57 !== null) {
+ if (result25 !== null) {
if (input.substr(pos, 1) === "(") {
- var result58 = "(";
+ var result26 = "(";
pos += 1;
} else {
- var result58 = null;
+ var result26 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result58 !== null) {
- var result59 = [];
- var result70 = parse_WS();
- while (result70 !== null) {
- result59.push(result70);
- var result70 = parse_WS();
+ if (result26 !== null) {
+ var result27 = [];
+ var result38 = parse_WS();
+ while (result38 !== null) {
+ result27.push(result38);
+ var result38 = parse_WS();
}
- if (result59 !== null) {
- var result60 = parse_ConditionalOrExpression();
- if (result60 !== null) {
- var result61 = [];
- var result69 = parse_WS();
- while (result69 !== null) {
- result61.push(result69);
- var result69 = parse_WS();
+ if (result27 !== null) {
+ var result28 = parse_ConditionalOrExpression();
+ if (result28 !== null) {
+ var result29 = [];
+ var result37 = parse_WS();
+ while (result37 !== null) {
+ result29.push(result37);
+ var result37 = parse_WS();
}
- if (result61 !== null) {
+ if (result29 !== null) {
if (input.substr(pos, 1) === ",") {
- var result62 = ",";
+ var result30 = ",";
pos += 1;
} else {
- var result62 = null;
+ var result30 = null;
if (reportMatchFailures) {
matchFailed("\",\"");
}
}
- if (result62 !== null) {
- var result63 = [];
- var result68 = parse_WS();
- while (result68 !== null) {
- result63.push(result68);
- var result68 = parse_WS();
+ if (result30 !== null) {
+ var result31 = [];
+ var result36 = parse_WS();
+ while (result36 !== null) {
+ result31.push(result36);
+ var result36 = parse_WS();
}
- if (result63 !== null) {
- var result64 = parse_ConditionalOrExpression();
- if (result64 !== null) {
- var result65 = [];
- var result67 = parse_WS();
- while (result67 !== null) {
- result65.push(result67);
- var result67 = parse_WS();
+ if (result31 !== null) {
+ var result32 = parse_ConditionalOrExpression();
+ if (result32 !== null) {
+ var result33 = [];
+ var result35 = parse_WS();
+ while (result35 !== null) {
+ result33.push(result35);
+ var result35 = parse_WS();
}
- if (result65 !== null) {
+ if (result33 !== null) {
if (input.substr(pos, 1) === ")") {
- var result66 = ")";
+ var result34 = ")";
pos += 1;
} else {
- var result66 = null;
+ var result34 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result66 !== null) {
- var result55 = [result56, result57, result58, result59, result60, result61, result62, result63, result64, result65, result66];
+ if (result34 !== null) {
+ var result22 = [result24, result25, result26, result27, result28, result29, result30, result31, result32, result33, result34];
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
} else {
- var result55 = null;
- pos = savedPos2;
+ var result22 = null;
+ pos = savedPos3;
}
- var result54 = result55 !== null
+ var result23 = result22 !== null
? (function(e1, e2) {
var ex = {};
ex.token = 'expression';
@@ -28210,241 +20829,146 @@ SparqlParser.parser = (function(){
ex.builtincall = 'sameterm';
ex.args = [e1, e2];
return ex;
- })(result55[4], result55[8])
+ })(result22[4], result22[8])
: null;
- if (result54 !== null) {
- var result0 = result54;
+ if (result23 !== null) {
+ var result21 = result23;
+ } else {
+ var result21 = null;
+ pos = savedPos2;
+ }
+ if (result21 !== null) {
+ var result0 = result21;
} else {
+ var savedPos0 = pos;
var savedPos1 = pos;
- if (input.substr(pos, 1) === "I") {
- var result53 = "I";
- pos += 1;
+ if (input.substr(pos, 5) === "ISURI") {
+ var result20 = "ISURI";
+ pos += 5;
} else {
- var result53 = null;
+ var result20 = null;
if (reportMatchFailures) {
- matchFailed("\"I\"");
+ matchFailed("\"ISURI\"");
}
}
- if (result53 !== null) {
- var result30 = result53;
+ if (result20 !== null) {
+ var result7 = result20;
} else {
- if (input.substr(pos, 1) === "i") {
- var result52 = "i";
- pos += 1;
- } else {
- var result52 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result52 !== null) {
- var result30 = result52;
- } else {
- var result30 = null;;
- };
- }
- if (result30 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result51 = "S";
- pos += 1;
+ if (input.substr(pos, 5) === "isuri") {
+ var result19 = "isuri";
+ pos += 5;
} else {
- var result51 = null;
+ var result19 = null;
if (reportMatchFailures) {
- matchFailed("\"S\"");
+ matchFailed("\"isuri\"");
}
}
- if (result51 !== null) {
- var result31 = result51;
+ if (result19 !== null) {
+ var result7 = result19;
} else {
- if (input.substr(pos, 1) === "s") {
- var result50 = "s";
- pos += 1;
- } else {
- var result50 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result50 !== null) {
- var result31 = result50;
- } else {
- var result31 = null;;
- };
- }
- if (result31 !== null) {
- if (input.substr(pos, 1) === "U") {
- var result49 = "U";
- pos += 1;
+ if (input.substr(pos, 5) === "ISIRI") {
+ var result18 = "ISIRI";
+ pos += 5;
} else {
- var result49 = null;
+ var result18 = null;
if (reportMatchFailures) {
- matchFailed("\"U\"");
+ matchFailed("\"ISIRI\"");
}
}
- if (result49 !== null) {
- var result32 = result49;
+ if (result18 !== null) {
+ var result7 = result18;
} else {
- if (input.substr(pos, 1) === "u") {
- var result48 = "u";
- pos += 1;
+ if (input.substr(pos, 5) === "isiri") {
+ var result17 = "isiri";
+ pos += 5;
} else {
- var result48 = null;
+ var result17 = null;
if (reportMatchFailures) {
- matchFailed("\"u\"");
+ matchFailed("\"isiri\"");
}
}
- if (result48 !== null) {
- var result32 = result48;
+ if (result17 !== null) {
+ var result7 = result17;
} else {
- var result32 = null;;
+ var result7 = null;;
};
- }
- if (result32 !== null) {
- if (input.substr(pos, 1) === "R") {
- var result47 = "R";
- pos += 1;
- } else {
- var result47 = null;
- if (reportMatchFailures) {
- matchFailed("\"R\"");
- }
+ };
+ };
+ }
+ if (result7 !== null) {
+ var result8 = [];
+ var result16 = parse_WS();
+ while (result16 !== null) {
+ result8.push(result16);
+ var result16 = parse_WS();
+ }
+ if (result8 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result9 = "(";
+ pos += 1;
+ } else {
+ var result9 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"(\"");
}
- if (result47 !== null) {
- var result33 = result47;
- } else {
- if (input.substr(pos, 1) === "r") {
- var result46 = "r";
- pos += 1;
- } else {
- var result46 = null;
- if (reportMatchFailures) {
- matchFailed("\"r\"");
- }
- }
- if (result46 !== null) {
- var result33 = result46;
- } else {
- var result33 = null;;
- };
+ }
+ if (result9 !== null) {
+ var result10 = [];
+ var result15 = parse_WS();
+ while (result15 !== null) {
+ result10.push(result15);
+ var result15 = parse_WS();
}
- if (result33 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result45 = "I";
- pos += 1;
- } else {
- var result45 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result45 !== null) {
- var result34 = result45;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result44 = "i";
- pos += 1;
- } else {
- var result44 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result44 !== null) {
- var result34 = result44;
- } else {
- var result34 = null;;
- };
- }
- if (result34 !== null) {
- var result35 = [];
- var result43 = parse_WS();
- while (result43 !== null) {
- result35.push(result43);
- var result43 = parse_WS();
+ if (result10 !== null) {
+ var result11 = parse_ConditionalOrExpression();
+ if (result11 !== null) {
+ var result12 = [];
+ var result14 = parse_WS();
+ while (result14 !== null) {
+ result12.push(result14);
+ var result14 = parse_WS();
}
- if (result35 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result36 = "(";
+ if (result12 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result13 = ")";
pos += 1;
} else {
- var result36 = null;
+ var result13 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\")\"");
}
}
- if (result36 !== null) {
- var result37 = [];
- var result42 = parse_WS();
- while (result42 !== null) {
- result37.push(result42);
- var result42 = parse_WS();
- }
- if (result37 !== null) {
- var result38 = parse_ConditionalOrExpression();
- if (result38 !== null) {
- var result39 = [];
- var result41 = parse_WS();
- while (result41 !== null) {
- result39.push(result41);
- var result41 = parse_WS();
- }
- if (result39 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result40 = ")";
- pos += 1;
- } else {
- var result40 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result40 !== null) {
- var result29 = [result30, result31, result32, result33, result34, result35, result36, result37, result38, result39, result40];
- } else {
- var result29 = null;
- pos = savedPos1;
- }
- } else {
- var result29 = null;
- pos = savedPos1;
- }
- } else {
- var result29 = null;
- pos = savedPos1;
- }
- } else {
- var result29 = null;
- pos = savedPos1;
- }
+ if (result13 !== null) {
+ var result5 = [result7, result8, result9, result10, result11, result12, result13];
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
} else {
- var result29 = null;
+ var result5 = null;
pos = savedPos1;
}
- var result28 = result29 !== null
+ var result6 = result5 !== null
? (function(arg) {
var ex = {};
ex.token = 'expression';
@@ -28453,259 +20977,31 @@ SparqlParser.parser = (function(){
ex.args = [arg];
return ex;
- })(result29[8])
- : null;
- if (result28 !== null) {
- var result0 = result28;
- } else {
- var savedPos0 = pos;
- if (input.substr(pos, 1) === "I") {
- var result27 = "I";
- pos += 1;
- } else {
- var result27 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result27 !== null) {
- var result4 = result27;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result26 = "i";
- pos += 1;
- } else {
- var result26 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result26 !== null) {
- var result4 = result26;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result25 = "S";
- pos += 1;
- } else {
- var result25 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result25 !== null) {
- var result5 = result25;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result24 = "s";
- pos += 1;
- } else {
- var result24 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result24 !== null) {
- var result5 = result24;
- } else {
- var result5 = null;;
- };
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result23 = "I";
- pos += 1;
- } else {
- var result23 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result23 !== null) {
- var result6 = result23;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result22 = "i";
- pos += 1;
- } else {
- var result22 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result22 !== null) {
- var result6 = result22;
- } else {
- var result6 = null;;
- };
- }
- if (result6 !== null) {
- if (input.substr(pos, 1) === "R") {
- var result21 = "R";
- pos += 1;
- } else {
- var result21 = null;
- if (reportMatchFailures) {
- matchFailed("\"R\"");
- }
- }
- if (result21 !== null) {
- var result7 = result21;
- } else {
- if (input.substr(pos, 1) === "r") {
- var result20 = "r";
- pos += 1;
- } else {
- var result20 = null;
- if (reportMatchFailures) {
- matchFailed("\"r\"");
- }
- }
- if (result20 !== null) {
- var result7 = result20;
- } else {
- var result7 = null;;
- };
- }
- if (result7 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result19 = "I";
- pos += 1;
- } else {
- var result19 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result19 !== null) {
- var result8 = result19;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result18 = "i";
- pos += 1;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result18 !== null) {
- var result8 = result18;
- } else {
- var result8 = null;;
- };
- }
- if (result8 !== null) {
- var result9 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result9.push(result17);
- var result17 = parse_WS();
- }
- if (result9 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result10 = "(";
- pos += 1;
- } else {
- var result10 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result10 !== null) {
- var result11 = [];
- var result16 = parse_WS();
- while (result16 !== null) {
- result11.push(result16);
- var result16 = parse_WS();
- }
- if (result11 !== null) {
- var result12 = parse_ConditionalOrExpression();
- if (result12 !== null) {
- var result13 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result13.push(result15);
- var result15 = parse_WS();
- }
- if (result13 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result14 = ")";
- pos += 1;
- } else {
- var result14 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result14 !== null) {
- var result3 = [result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14];
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- } else {
- var result3 = null;
- pos = savedPos0;
- }
- var result2 = result3 !== null
- ? (function(arg) {
- var ex = {};
- ex.token = 'expression';
- ex.expressionType = 'builtincall';
- ex.builtincall = 'isuri';
- ex.args = [arg];
-
- return ex;
- })(result3[8])
- : null;
- if (result2 !== null) {
- var result0 = result2;
+ })(result5[4])
+ : null;
+ if (result6 !== null) {
+ var result4 = result6;
+ } else {
+ var result4 = null;
+ pos = savedPos0;
+ }
+ if (result4 !== null) {
+ var result0 = result4;
+ } else {
+ var result3 = parse_RegexExpression();
+ if (result3 !== null) {
+ var result0 = result3;
} else {
- var result1 = parse_RegexExpression();
- if (result1 !== null) {
- var result0 = result1;
+ var result2 = parse_ExistsFunc();
+ if (result2 !== null) {
+ var result0 = result2;
} else {
- var result0 = null;;
+ var result1 = parse_NotExistsFunc();
+ if (result1 !== null) {
+ var result0 = result1;
+ } else {
+ var result0 = null;;
+ };
};
};
};
@@ -28745,327 +21041,200 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- if (input.substr(pos, 1) === "R") {
- var result39 = "R";
- pos += 1;
+ var savedPos1 = pos;
+ if (input.substr(pos, 5) === "REGEX") {
+ var result28 = "REGEX";
+ pos += 5;
} else {
- var result39 = null;
+ var result28 = null;
if (reportMatchFailures) {
- matchFailed("\"R\"");
+ matchFailed("\"REGEX\"");
}
}
- if (result39 !== null) {
- var result2 = result39;
+ if (result28 !== null) {
+ var result3 = result28;
} else {
- if (input.substr(pos, 1) === "r") {
- var result38 = "r";
- pos += 1;
+ if (input.substr(pos, 5) === "regex") {
+ var result27 = "regex";
+ pos += 5;
} else {
- var result38 = null;
+ var result27 = null;
if (reportMatchFailures) {
- matchFailed("\"r\"");
+ matchFailed("\"regex\"");
}
}
- if (result38 !== null) {
- var result2 = result38;
+ if (result27 !== null) {
+ var result3 = result27;
} else {
- var result2 = null;;
+ var result3 = null;;
};
}
- if (result2 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result37 = "E";
- pos += 1;
- } else {
- var result37 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result37 !== null) {
- var result3 = result37;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result36 = "e";
- pos += 1;
- } else {
- var result36 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result36 !== null) {
- var result3 = result36;
- } else {
- var result3 = null;;
- };
+ if (result3 !== null) {
+ var result4 = [];
+ var result26 = parse_WS();
+ while (result26 !== null) {
+ result4.push(result26);
+ var result26 = parse_WS();
}
- if (result3 !== null) {
- if (input.substr(pos, 1) === "G") {
- var result35 = "G";
+ if (result4 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result5 = "(";
pos += 1;
} else {
- var result35 = null;
+ var result5 = null;
if (reportMatchFailures) {
- matchFailed("\"G\"");
- }
- }
- if (result35 !== null) {
- var result4 = result35;
- } else {
- if (input.substr(pos, 1) === "g") {
- var result34 = "g";
- pos += 1;
- } else {
- var result34 = null;
- if (reportMatchFailures) {
- matchFailed("\"g\"");
- }
+ matchFailed("\"(\"");
}
- if (result34 !== null) {
- var result4 = result34;
- } else {
- var result4 = null;;
- };
}
- if (result4 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result33 = "E";
- pos += 1;
- } else {
- var result33 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result33 !== null) {
- var result5 = result33;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result32 = "e";
- pos += 1;
- } else {
- var result32 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result32 !== null) {
- var result5 = result32;
- } else {
- var result5 = null;;
- };
+ if (result5 !== null) {
+ var result6 = [];
+ var result25 = parse_WS();
+ while (result25 !== null) {
+ result6.push(result25);
+ var result25 = parse_WS();
}
- if (result5 !== null) {
- if (input.substr(pos, 1) === "X") {
- var result31 = "X";
- pos += 1;
- } else {
- var result31 = null;
- if (reportMatchFailures) {
- matchFailed("\"X\"");
- }
- }
- if (result31 !== null) {
- var result6 = result31;
- } else {
- if (input.substr(pos, 1) === "x") {
- var result30 = "x";
- pos += 1;
- } else {
- var result30 = null;
- if (reportMatchFailures) {
- matchFailed("\"x\"");
- }
- }
- if (result30 !== null) {
- var result6 = result30;
- } else {
- var result6 = null;;
- };
- }
- if (result6 !== null) {
- var result7 = [];
- var result29 = parse_WS();
- while (result29 !== null) {
- result7.push(result29);
- var result29 = parse_WS();
+ if (result6 !== null) {
+ var result7 = parse_ConditionalOrExpression();
+ if (result7 !== null) {
+ var result8 = [];
+ var result24 = parse_WS();
+ while (result24 !== null) {
+ result8.push(result24);
+ var result24 = parse_WS();
}
- if (result7 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result8 = "(";
+ if (result8 !== null) {
+ if (input.substr(pos, 1) === ",") {
+ var result9 = ",";
pos += 1;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\",\"");
}
}
- if (result8 !== null) {
- var result9 = [];
- var result28 = parse_WS();
- while (result28 !== null) {
- result9.push(result28);
- var result28 = parse_WS();
+ if (result9 !== null) {
+ var result10 = [];
+ var result23 = parse_WS();
+ while (result23 !== null) {
+ result10.push(result23);
+ var result23 = parse_WS();
}
- if (result9 !== null) {
- var result10 = parse_ConditionalOrExpression();
- if (result10 !== null) {
- var result11 = [];
- var result27 = parse_WS();
- while (result27 !== null) {
- result11.push(result27);
- var result27 = parse_WS();
+ if (result10 !== null) {
+ var result11 = parse_ConditionalOrExpression();
+ if (result11 !== null) {
+ var result12 = [];
+ var result22 = parse_WS();
+ while (result22 !== null) {
+ result12.push(result22);
+ var result22 = parse_WS();
}
- if (result11 !== null) {
+ if (result12 !== null) {
+ var savedPos2 = pos;
if (input.substr(pos, 1) === ",") {
- var result12 = ",";
+ var result18 = ",";
pos += 1;
} else {
- var result12 = null;
+ var result18 = null;
if (reportMatchFailures) {
matchFailed("\",\"");
}
}
- if (result12 !== null) {
- var result13 = [];
- var result26 = parse_WS();
- while (result26 !== null) {
- result13.push(result26);
- var result26 = parse_WS();
+ if (result18 !== null) {
+ var result19 = [];
+ var result21 = parse_WS();
+ while (result21 !== null) {
+ result19.push(result21);
+ var result21 = parse_WS();
}
- if (result13 !== null) {
- var result14 = parse_ConditionalOrExpression();
- if (result14 !== null) {
- var result15 = [];
- var result25 = parse_WS();
- while (result25 !== null) {
- result15.push(result25);
- var result25 = parse_WS();
- }
- if (result15 !== null) {
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ",") {
- var result21 = ",";
- pos += 1;
- } else {
- var result21 = null;
- if (reportMatchFailures) {
- matchFailed("\",\"");
- }
- }
- if (result21 !== null) {
- var result22 = [];
- var result24 = parse_WS();
- while (result24 !== null) {
- result22.push(result24);
- var result24 = parse_WS();
- }
- if (result22 !== null) {
- var result23 = parse_ConditionalOrExpression();
- if (result23 !== null) {
- var result20 = [result21, result22, result23];
- } else {
- var result20 = null;
- pos = savedPos1;
- }
- } else {
- var result20 = null;
- pos = savedPos1;
- }
- } else {
- var result20 = null;
- pos = savedPos1;
- }
- var result16 = result20 !== null ? result20 : '';
- if (result16 !== null) {
- var result17 = [];
- var result19 = parse_WS();
- while (result19 !== null) {
- result17.push(result19);
- var result19 = parse_WS();
- }
- if (result17 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result18 = ")";
- pos += 1;
- } else {
- var result18 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result18 !== null) {
- var result1 = [result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15, result16, result17, result18];
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- } else {
- var result1 = null;
- pos = savedPos0;
+ if (result19 !== null) {
+ var result20 = parse_ConditionalOrExpression();
+ if (result20 !== null) {
+ var result17 = [result18, result19, result20];
+ } else {
+ var result17 = null;
+ pos = savedPos2;
+ }
+ } else {
+ var result17 = null;
+ pos = savedPos2;
+ }
+ } else {
+ var result17 = null;
+ pos = savedPos2;
+ }
+ var result13 = result17 !== null ? result17 : '';
+ if (result13 !== null) {
+ var result14 = [];
+ var result16 = parse_WS();
+ while (result16 !== null) {
+ result14.push(result16);
+ var result16 = parse_WS();
+ }
+ if (result14 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result15 = ")";
+ pos += 1;
+ } else {
+ var result15 = null;
+ if (reportMatchFailures) {
+ matchFailed("\")\"");
}
+ }
+ if (result15 !== null) {
+ var result1 = [result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(e1, e2, eo) {
var regex = {};
regex.token = 'expression';
@@ -29075,8 +21244,14 @@ SparqlParser.parser = (function(){
regex.flags = eo[2];
return regex;
- })(result1[8], result1[12], result1[14])
+ })(result1[4], result1[8], result1[10])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[107] RegexExpression");
@@ -29100,74 +21275,77 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 6) === "EXISTS") {
- var result1 = "EXISTS";
+ var result8 = "EXISTS";
pos += 6;
} else {
- var result1 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("\"EXISTS\"");
}
}
- if (result1 !== null) {
- var result2 = parse_GroupGraphPattern();
- if (result2 !== null) {
- var result0 = [result1, result2];
+ if (result8 !== null) {
+ var result3 = result8;
+ } else {
+ if (input.substr(pos, 6) === "exists") {
+ var result7 = "exists";
+ pos += 6;
} else {
- var result0 = null;
- pos = savedPos0;
+ var result7 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"exists\"");
+ }
}
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("[108] ExistsFunc");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_NotExistsFunc() {
- var cacheKey = 'NotExistsFunc@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
+ if (result7 !== null) {
+ var result3 = result7;
+ } else {
+ var result3 = null;;
+ };
}
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- if (input.substr(pos, 10) === "NOT EXISTS") {
- var result1 = "NOT EXISTS";
- pos += 10;
- } else {
- var result1 = null;
- if (reportMatchFailures) {
- matchFailed("\"NOT EXISTS\"");
+ if (result3 !== null) {
+ var result4 = [];
+ var result6 = parse_WS();
+ while (result6 !== null) {
+ result4.push(result6);
+ var result6 = parse_WS();
}
- }
- if (result1 !== null) {
- var result2 = parse_GroupGraphPattern();
- if (result2 !== null) {
- var result0 = [result1, result2];
+ if (result4 !== null) {
+ var result5 = parse_GroupGraphPattern();
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
+ } else {
+ var result1 = null;
+ pos = savedPos1;
+ }
} else {
- var result0 = null;
- pos = savedPos0;
+ var result1 = null;
+ pos = savedPos1;
}
+ } else {
+ var result1 = null;
+ pos = savedPos1;
+ }
+ var result2 = result1 !== null
+ ? (function(ggp) {
+ var ex = {};
+ ex.token = 'expression';
+ ex.expressionType = 'builtincall';
+ ex.builtincall = 'exists';
+ ex.args = [ggp];
+
+ return ex;
+ })(result1[2])
+ : null;
+ if (result2 !== null) {
+ var result0 = result2;
} else {
var result0 = null;
pos = savedPos0;
}
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
- matchFailed("[109] NotExistsFunc");
+ matchFailed("[108] ExistsFunc");
}
cache[cacheKey] = {
@@ -29177,8 +21355,8 @@ SparqlParser.parser = (function(){
return result0;
}
- function parse_Aggregate() {
- var cacheKey = 'Aggregate@' + pos;
+ function parse_NotExistsFunc() {
+ var cacheKey = 'NotExistsFunc@' + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
@@ -29187,1007 +21365,495 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var savedPos8 = pos;
- if (input.substr(pos, 1) === "C") {
- var result258 = "C";
- pos += 1;
+ var savedPos0 = pos;
+ var savedPos1 = pos;
+ if (input.substr(pos, 3) === "NOT") {
+ var result13 = "NOT";
+ pos += 3;
} else {
- var result258 = null;
+ var result13 = null;
if (reportMatchFailures) {
- matchFailed("\"C\"");
+ matchFailed("\"NOT\"");
}
}
- if (result258 !== null) {
- var result203 = result258;
+ if (result13 !== null) {
+ var result3 = result13;
} else {
- if (input.substr(pos, 1) === "c") {
- var result257 = "c";
- pos += 1;
+ if (input.substr(pos, 3) === "not") {
+ var result12 = "not";
+ pos += 3;
} else {
- var result257 = null;
+ var result12 = null;
if (reportMatchFailures) {
- matchFailed("\"c\"");
+ matchFailed("\"not\"");
}
}
- if (result257 !== null) {
- var result203 = result257;
+ if (result12 !== null) {
+ var result3 = result12;
} else {
- var result203 = null;;
+ var result3 = null;;
};
}
- if (result203 !== null) {
- if (input.substr(pos, 1) === "O") {
- var result256 = "O";
- pos += 1;
- } else {
- var result256 = null;
- if (reportMatchFailures) {
- matchFailed("\"O\"");
- }
- }
- if (result256 !== null) {
- var result204 = result256;
- } else {
- if (input.substr(pos, 1) === "o") {
- var result255 = "o";
- pos += 1;
- } else {
- var result255 = null;
- if (reportMatchFailures) {
- matchFailed("\"o\"");
- }
- }
- if (result255 !== null) {
- var result204 = result255;
- } else {
- var result204 = null;;
- };
+ if (result3 !== null) {
+ var result4 = [];
+ var result11 = parse_WS();
+ while (result11 !== null) {
+ result4.push(result11);
+ var result11 = parse_WS();
}
- if (result204 !== null) {
- if (input.substr(pos, 1) === "U") {
- var result254 = "U";
- pos += 1;
+ if (result4 !== null) {
+ if (input.substr(pos, 6) === "EXISTS") {
+ var result10 = "EXISTS";
+ pos += 6;
} else {
- var result254 = null;
+ var result10 = null;
if (reportMatchFailures) {
- matchFailed("\"U\"");
+ matchFailed("\"EXISTS\"");
}
}
- if (result254 !== null) {
- var result205 = result254;
+ if (result10 !== null) {
+ var result5 = result10;
} else {
- if (input.substr(pos, 1) === "u") {
- var result253 = "u";
- pos += 1;
+ if (input.substr(pos, 6) === "exists") {
+ var result9 = "exists";
+ pos += 6;
} else {
- var result253 = null;
+ var result9 = null;
if (reportMatchFailures) {
- matchFailed("\"u\"");
+ matchFailed("\"exists\"");
}
}
- if (result253 !== null) {
- var result205 = result253;
+ if (result9 !== null) {
+ var result5 = result9;
} else {
- var result205 = null;;
+ var result5 = null;;
};
}
- if (result205 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result252 = "N";
- pos += 1;
- } else {
- var result252 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result252 !== null) {
- var result206 = result252;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result251 = "n";
- pos += 1;
- } else {
- var result251 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result251 !== null) {
- var result206 = result251;
- } else {
- var result206 = null;;
- };
- }
- if (result206 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result250 = "T";
- pos += 1;
- } else {
- var result250 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result250 !== null) {
- var result207 = result250;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result249 = "t";
- pos += 1;
- } else {
- var result249 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result249 !== null) {
- var result207 = result249;
- } else {
- var result207 = null;;
- };
- }
- if (result207 !== null) {
- var result208 = [];
- var result248 = parse_WS();
- while (result248 !== null) {
- result208.push(result248);
- var result248 = parse_WS();
- }
- if (result208 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result209 = "(";
- pos += 1;
- } else {
- var result209 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result209 !== null) {
- var result210 = [];
- var result247 = parse_WS();
- while (result247 !== null) {
- result210.push(result247);
- var result247 = parse_WS();
- }
- if (result210 !== null) {
- var savedPos9 = pos;
- if (input.substr(pos, 1) === "D") {
- var result246 = "D";
- pos += 1;
- } else {
- var result246 = null;
- if (reportMatchFailures) {
- matchFailed("\"D\"");
- }
- }
- if (result246 !== null) {
- var result223 = result246;
- } else {
- if (input.substr(pos, 1) === "d") {
- var result245 = "d";
- pos += 1;
- } else {
- var result245 = null;
- if (reportMatchFailures) {
- matchFailed("\"d\"");
- }
- }
- if (result245 !== null) {
- var result223 = result245;
- } else {
- var result223 = null;;
- };
- }
- if (result223 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result244 = "I";
- pos += 1;
- } else {
- var result244 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result244 !== null) {
- var result224 = result244;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result243 = "i";
- pos += 1;
- } else {
- var result243 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result243 !== null) {
- var result224 = result243;
- } else {
- var result224 = null;;
- };
- }
- if (result224 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result242 = "S";
- pos += 1;
- } else {
- var result242 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result242 !== null) {
- var result225 = result242;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result241 = "s";
- pos += 1;
- } else {
- var result241 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result241 !== null) {
- var result225 = result241;
- } else {
- var result225 = null;;
- };
- }
- if (result225 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result240 = "T";
- pos += 1;
- } else {
- var result240 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result240 !== null) {
- var result226 = result240;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result239 = "t";
- pos += 1;
- } else {
- var result239 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result239 !== null) {
- var result226 = result239;
- } else {
- var result226 = null;;
- };
- }
- if (result226 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result238 = "I";
- pos += 1;
- } else {
- var result238 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result238 !== null) {
- var result227 = result238;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result237 = "i";
- pos += 1;
- } else {
- var result237 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result237 !== null) {
- var result227 = result237;
- } else {
- var result227 = null;;
- };
- }
- if (result227 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result236 = "N";
- pos += 1;
- } else {
- var result236 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result236 !== null) {
- var result228 = result236;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result235 = "n";
- pos += 1;
- } else {
- var result235 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result235 !== null) {
- var result228 = result235;
- } else {
- var result228 = null;;
- };
- }
- if (result228 !== null) {
- if (input.substr(pos, 1) === "C") {
- var result234 = "C";
- pos += 1;
- } else {
- var result234 = null;
- if (reportMatchFailures) {
- matchFailed("\"C\"");
- }
- }
- if (result234 !== null) {
- var result229 = result234;
- } else {
- if (input.substr(pos, 1) === "c") {
- var result233 = "c";
- pos += 1;
- } else {
- var result233 = null;
- if (reportMatchFailures) {
- matchFailed("\"c\"");
- }
- }
- if (result233 !== null) {
- var result229 = result233;
- } else {
- var result229 = null;;
- };
- }
- if (result229 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result232 = "T";
- pos += 1;
- } else {
- var result232 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result232 !== null) {
- var result230 = result232;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result231 = "t";
- pos += 1;
- } else {
- var result231 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result231 !== null) {
- var result230 = result231;
- } else {
- var result230 = null;;
- };
- }
- if (result230 !== null) {
- var result222 = [result223, result224, result225, result226, result227, result228, result229, result230];
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- } else {
- var result222 = null;
- pos = savedPos9;
- }
- var result211 = result222 !== null ? result222 : '';
- if (result211 !== null) {
- var result212 = [];
- var result221 = parse_WS();
- while (result221 !== null) {
- result212.push(result221);
- var result221 = parse_WS();
- }
- if (result212 !== null) {
- if (input.substr(pos, 1) === "*") {
- var result220 = "*";
- pos += 1;
- } else {
- var result220 = null;
- if (reportMatchFailures) {
- matchFailed("\"*\"");
- }
- }
- if (result220 !== null) {
- var result213 = result220;
- } else {
- var result219 = parse_ConditionalOrExpression();
- if (result219 !== null) {
- var result213 = result219;
- } else {
- var result213 = null;;
- };
- }
- if (result213 !== null) {
- var result214 = [];
- var result218 = parse_WS();
- while (result218 !== null) {
- result214.push(result218);
- var result218 = parse_WS();
- }
- if (result214 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result215 = ")";
- pos += 1;
- } else {
- var result215 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result215 !== null) {
- var result216 = [];
- var result217 = parse_WS();
- while (result217 !== null) {
- result216.push(result217);
- var result217 = parse_WS();
- }
- if (result216 !== null) {
- var result202 = [result203, result204, result205, result206, result207, result208, result209, result210, result211, result212, result213, result214, result215, result216];
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
- } else {
- var result202 = null;
- pos = savedPos8;
- }
+ if (result5 !== null) {
+ var result6 = [];
+ var result8 = parse_WS();
+ while (result8 !== null) {
+ result6.push(result8);
+ var result8 = parse_WS();
+ }
+ if (result6 !== null) {
+ var result7 = parse_GroupGraphPattern();
+ if (result7 !== null) {
+ var result1 = [result3, result4, result5, result6, result7];
} else {
- var result202 = null;
- pos = savedPos8;
+ var result1 = null;
+ pos = savedPos1;
}
} else {
- var result202 = null;
- pos = savedPos8;
+ var result1 = null;
+ pos = savedPos1;
}
} else {
- var result202 = null;
- pos = savedPos8;
+ var result1 = null;
+ pos = savedPos1;
}
} else {
- var result202 = null;
- pos = savedPos8;
+ var result1 = null;
+ pos = savedPos1;
}
} else {
- var result202 = null;
- pos = savedPos8;
+ var result1 = null;
+ pos = savedPos1;
}
- var result201 = result202 !== null
- ? (function(d, e) {
- exp = {};
- exp.token = 'expression';
- exp.expressionType = 'aggregate';
- exp.aggregateType = 'count';
- exp.distinct = (d != "" ? 'DISTINCT' : d);
- exp.expression = e;
-
- return exp;
+ var result2 = result1 !== null
+ ? (function(ggp) {
+ var ex = {};
+ ex.token = 'expression';
+ ex.expressionType = 'builtincall';
+ ex.builtincall = 'notexists';
+ ex.args = [ggp];
- })(result202[8], result202[10])
+ return ex;
+ })(result1[4])
: null;
- if (result201 !== null) {
- var result0 = result201;
+ if (result2 !== null) {
+ var result0 = result2;
} else {
- var savedPos6 = pos;
- if (input.substr(pos, 1) === "S") {
- var result200 = "S";
- pos += 1;
+ var result0 = null;
+ pos = savedPos0;
+ }
+ reportMatchFailures = savedReportMatchFailures;
+ if (reportMatchFailures && result0 === null) {
+ matchFailed("[109] NotExistsFunc");
+ }
+
+ cache[cacheKey] = {
+ nextPos: pos,
+ result: result0
+ };
+ return result0;
+ }
+
+ function parse_Aggregate() {
+ var cacheKey = 'Aggregate@' + pos;
+ var cachedResult = cache[cacheKey];
+ if (cachedResult) {
+ pos = cachedResult.nextPos;
+ return cachedResult.result;
+ }
+
+ var savedReportMatchFailures = reportMatchFailures;
+ reportMatchFailures = false;
+ var savedPos8 = pos;
+ var savedPos9 = pos;
+ if (input.substr(pos, 5) === "COUNT") {
+ var result117 = "COUNT";
+ pos += 5;
+ } else {
+ var result117 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"COUNT\"");
+ }
+ }
+ if (result117 !== null) {
+ var result96 = result117;
+ } else {
+ if (input.substr(pos, 5) === "count") {
+ var result116 = "count";
+ pos += 5;
} else {
- var result200 = null;
+ var result116 = null;
if (reportMatchFailures) {
- matchFailed("\"S\"");
+ matchFailed("\"count\"");
}
}
- if (result200 !== null) {
- var result153 = result200;
+ if (result116 !== null) {
+ var result96 = result116;
} else {
- if (input.substr(pos, 1) === "s") {
- var result199 = "s";
- pos += 1;
- } else {
- var result199 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result199 !== null) {
- var result153 = result199;
- } else {
- var result153 = null;;
- };
+ var result96 = null;;
+ };
+ }
+ if (result96 !== null) {
+ var result97 = [];
+ var result115 = parse_WS();
+ while (result115 !== null) {
+ result97.push(result115);
+ var result115 = parse_WS();
}
- if (result153 !== null) {
- if (input.substr(pos, 1) === "U") {
- var result198 = "U";
+ if (result97 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result98 = "(";
pos += 1;
} else {
- var result198 = null;
+ var result98 = null;
if (reportMatchFailures) {
- matchFailed("\"U\"");
- }
- }
- if (result198 !== null) {
- var result154 = result198;
- } else {
- if (input.substr(pos, 1) === "u") {
- var result197 = "u";
- pos += 1;
- } else {
- var result197 = null;
- if (reportMatchFailures) {
- matchFailed("\"u\"");
- }
+ matchFailed("\"(\"");
}
- if (result197 !== null) {
- var result154 = result197;
- } else {
- var result154 = null;;
- };
}
- if (result154 !== null) {
- if (input.substr(pos, 1) === "M") {
- var result196 = "M";
- pos += 1;
- } else {
- var result196 = null;
- if (reportMatchFailures) {
- matchFailed("\"M\"");
- }
+ if (result98 !== null) {
+ var result99 = [];
+ var result114 = parse_WS();
+ while (result114 !== null) {
+ result99.push(result114);
+ var result114 = parse_WS();
}
- if (result196 !== null) {
- var result155 = result196;
- } else {
- if (input.substr(pos, 1) === "m") {
- var result195 = "m";
- pos += 1;
+ if (result99 !== null) {
+ if (input.substr(pos, 8) === "DISTINCT") {
+ var result113 = "DISTINCT";
+ pos += 8;
} else {
- var result195 = null;
+ var result113 = null;
if (reportMatchFailures) {
- matchFailed("\"m\"");
+ matchFailed("\"DISTINCT\"");
}
}
- if (result195 !== null) {
- var result155 = result195;
+ if (result113 !== null) {
+ var result111 = result113;
} else {
- var result155 = null;;
- };
- }
- if (result155 !== null) {
- var result156 = [];
- var result194 = parse_WS();
- while (result194 !== null) {
- result156.push(result194);
- var result194 = parse_WS();
- }
- if (result156 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result157 = "(";
- pos += 1;
+ if (input.substr(pos, 8) === "distinct") {
+ var result112 = "distinct";
+ pos += 8;
} else {
- var result157 = null;
+ var result112 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\"distinct\"");
}
}
- if (result157 !== null) {
- var result158 = [];
- var result193 = parse_WS();
- while (result193 !== null) {
- result158.push(result193);
- var result193 = parse_WS();
+ if (result112 !== null) {
+ var result111 = result112;
+ } else {
+ var result111 = null;;
+ };
+ }
+ var result100 = result111 !== null ? result111 : '';
+ if (result100 !== null) {
+ var result101 = [];
+ var result110 = parse_WS();
+ while (result110 !== null) {
+ result101.push(result110);
+ var result110 = parse_WS();
+ }
+ if (result101 !== null) {
+ if (input.substr(pos, 1) === "*") {
+ var result109 = "*";
+ pos += 1;
+ } else {
+ var result109 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"*\"");
+ }
}
- if (result158 !== null) {
- var savedPos7 = pos;
- if (input.substr(pos, 1) === "D") {
- var result192 = "D";
- pos += 1;
+ if (result109 !== null) {
+ var result102 = result109;
+ } else {
+ var result108 = parse_ConditionalOrExpression();
+ if (result108 !== null) {
+ var result102 = result108;
} else {
- var result192 = null;
- if (reportMatchFailures) {
- matchFailed("\"D\"");
- }
+ var result102 = null;;
+ };
+ }
+ if (result102 !== null) {
+ var result103 = [];
+ var result107 = parse_WS();
+ while (result107 !== null) {
+ result103.push(result107);
+ var result107 = parse_WS();
}
- if (result192 !== null) {
- var result169 = result192;
- } else {
- if (input.substr(pos, 1) === "d") {
- var result191 = "d";
+ if (result103 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result104 = ")";
pos += 1;
} else {
- var result191 = null;
+ var result104 = null;
if (reportMatchFailures) {
- matchFailed("\"d\"");
+ matchFailed("\")\"");
}
}
- if (result191 !== null) {
- var result169 = result191;
- } else {
- var result169 = null;;
- };
- }
- if (result169 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result190 = "I";
- pos += 1;
- } else {
- var result190 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
+ if (result104 !== null) {
+ var result105 = [];
+ var result106 = parse_WS();
+ while (result106 !== null) {
+ result105.push(result106);
+ var result106 = parse_WS();
}
- }
- if (result190 !== null) {
- var result170 = result190;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result189 = "i";
- pos += 1;
+ if (result105 !== null) {
+ var result94 = [result96, result97, result98, result99, result100, result101, result102, result103, result104, result105];
} else {
- var result189 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
+ var result94 = null;
+ pos = savedPos9;
}
- if (result189 !== null) {
- var result170 = result189;
- } else {
- var result170 = null;;
- };
+ } else {
+ var result94 = null;
+ pos = savedPos9;
}
- if (result170 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result188 = "S";
- pos += 1;
- } else {
- var result188 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result188 !== null) {
- var result171 = result188;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result187 = "s";
- pos += 1;
- } else {
- var result187 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result187 !== null) {
- var result171 = result187;
- } else {
- var result171 = null;;
- };
- }
- if (result171 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result186 = "T";
- pos += 1;
- } else {
- var result186 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result186 !== null) {
- var result172 = result186;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result185 = "t";
- pos += 1;
- } else {
- var result185 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result185 !== null) {
- var result172 = result185;
- } else {
- var result172 = null;;
- };
- }
- if (result172 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result184 = "I";
- pos += 1;
- } else {
- var result184 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result184 !== null) {
- var result173 = result184;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result183 = "i";
- pos += 1;
- } else {
- var result183 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result183 !== null) {
- var result173 = result183;
- } else {
- var result173 = null;;
- };
- }
- if (result173 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result182 = "N";
- pos += 1;
- } else {
- var result182 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result182 !== null) {
- var result174 = result182;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result181 = "n";
- pos += 1;
- } else {
- var result181 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result181 !== null) {
- var result174 = result181;
- } else {
- var result174 = null;;
- };
- }
- if (result174 !== null) {
- if (input.substr(pos, 1) === "C") {
- var result180 = "C";
- pos += 1;
- } else {
- var result180 = null;
- if (reportMatchFailures) {
- matchFailed("\"C\"");
- }
- }
- if (result180 !== null) {
- var result175 = result180;
- } else {
- if (input.substr(pos, 1) === "c") {
- var result179 = "c";
- pos += 1;
- } else {
- var result179 = null;
- if (reportMatchFailures) {
- matchFailed("\"c\"");
- }
- }
- if (result179 !== null) {
- var result175 = result179;
- } else {
- var result175 = null;;
- };
- }
- if (result175 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result178 = "T";
- pos += 1;
- } else {
- var result178 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result178 !== null) {
- var result176 = result178;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result177 = "t";
- pos += 1;
- } else {
- var result177 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result177 !== null) {
- var result176 = result177;
- } else {
- var result176 = null;;
- };
- }
- if (result176 !== null) {
- var result168 = [result169, result170, result171, result172, result173, result174, result175, result176];
- } else {
- var result168 = null;
- pos = savedPos7;
- }
- } else {
- var result168 = null;
- pos = savedPos7;
- }
- } else {
- var result168 = null;
- pos = savedPos7;
- }
- } else {
- var result168 = null;
- pos = savedPos7;
- }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ } else {
+ var result94 = null;
+ pos = savedPos9;
+ }
+ var result95 = result94 !== null
+ ? (function(d, e) {
+ exp = {};
+ exp.token = 'expression';
+ exp.expressionType = 'aggregate';
+ exp.aggregateType = 'count';
+ exp.distinct = (d != "" ? 'DISTINCT' : d);
+ exp.expression = e;
+
+ return exp;
+
+ })(result94[4], result94[6])
+ : null;
+ if (result95 !== null) {
+ var result93 = result95;
+ } else {
+ var result93 = null;
+ pos = savedPos8;
+ }
+ if (result93 !== null) {
+ var result0 = result93;
+ } else {
+ var savedPos6 = pos;
+ var savedPos7 = pos;
+ if (input.substr(pos, 3) === "SUM") {
+ var result92 = "SUM";
+ pos += 3;
+ } else {
+ var result92 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"SUM\"");
+ }
+ }
+ if (result92 !== null) {
+ var result73 = result92;
+ } else {
+ if (input.substr(pos, 3) === "sum") {
+ var result91 = "sum";
+ pos += 3;
+ } else {
+ var result91 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"sum\"");
+ }
+ }
+ if (result91 !== null) {
+ var result73 = result91;
+ } else {
+ var result73 = null;;
+ };
+ }
+ if (result73 !== null) {
+ var result74 = [];
+ var result90 = parse_WS();
+ while (result90 !== null) {
+ result74.push(result90);
+ var result90 = parse_WS();
+ }
+ if (result74 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result75 = "(";
+ pos += 1;
+ } else {
+ var result75 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"(\"");
+ }
+ }
+ if (result75 !== null) {
+ var result76 = [];
+ var result89 = parse_WS();
+ while (result89 !== null) {
+ result76.push(result89);
+ var result89 = parse_WS();
+ }
+ if (result76 !== null) {
+ if (input.substr(pos, 8) === "DISTINCT") {
+ var result88 = "DISTINCT";
+ pos += 8;
+ } else {
+ var result88 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"DISTINCT\"");
+ }
+ }
+ if (result88 !== null) {
+ var result86 = result88;
+ } else {
+ if (input.substr(pos, 8) === "distinct") {
+ var result87 = "distinct";
+ pos += 8;
+ } else {
+ var result87 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"distinct\"");
+ }
+ }
+ if (result87 !== null) {
+ var result86 = result87;
+ } else {
+ var result86 = null;;
+ };
+ }
+ var result77 = result86 !== null ? result86 : '';
+ if (result77 !== null) {
+ var result78 = [];
+ var result85 = parse_WS();
+ while (result85 !== null) {
+ result78.push(result85);
+ var result85 = parse_WS();
+ }
+ if (result78 !== null) {
+ var result79 = parse_ConditionalOrExpression();
+ if (result79 !== null) {
+ var result80 = [];
+ var result84 = parse_WS();
+ while (result84 !== null) {
+ result80.push(result84);
+ var result84 = parse_WS();
+ }
+ if (result80 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result81 = ")";
+ pos += 1;
+ } else {
+ var result81 = null;
+ if (reportMatchFailures) {
+ matchFailed("\")\"");
+ }
+ }
+ if (result81 !== null) {
+ var result82 = [];
+ var result83 = parse_WS();
+ while (result83 !== null) {
+ result82.push(result83);
+ var result83 = parse_WS();
+ }
+ if (result82 !== null) {
+ var result71 = [result73, result74, result75, result76, result77, result78, result79, result80, result81, result82];
} else {
- var result168 = null;
+ var result71 = null;
pos = savedPos7;
}
} else {
- var result168 = null;
+ var result71 = null;
pos = savedPos7;
}
} else {
- var result168 = null;
+ var result71 = null;
pos = savedPos7;
}
} else {
- var result168 = null;
+ var result71 = null;
pos = savedPos7;
}
- var result159 = result168 !== null ? result168 : '';
- if (result159 !== null) {
- var result160 = [];
- var result167 = parse_WS();
- while (result167 !== null) {
- result160.push(result167);
- var result167 = parse_WS();
- }
- if (result160 !== null) {
- var result161 = parse_ConditionalOrExpression();
- if (result161 !== null) {
- var result162 = [];
- var result166 = parse_WS();
- while (result166 !== null) {
- result162.push(result166);
- var result166 = parse_WS();
- }
- if (result162 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result163 = ")";
- pos += 1;
- } else {
- var result163 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result163 !== null) {
- var result164 = [];
- var result165 = parse_WS();
- while (result165 !== null) {
- result164.push(result165);
- var result165 = parse_WS();
- }
- if (result164 !== null) {
- var result152 = [result153, result154, result155, result156, result157, result158, result159, result160, result161, result162, result163, result164];
- } else {
- var result152 = null;
- pos = savedPos6;
- }
- } else {
- var result152 = null;
- pos = savedPos6;
- }
- } else {
- var result152 = null;
- pos = savedPos6;
- }
- } else {
- var result152 = null;
- pos = savedPos6;
- }
- } else {
- var result152 = null;
- pos = savedPos6;
- }
- } else {
- var result152 = null;
- pos = savedPos6;
- }
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
} else {
- var result152 = null;
- pos = savedPos6;
+ var result71 = null;
+ pos = savedPos7;
}
- var result151 = result152 !== null
+ var result72 = result71 !== null
? (function(d, e) {
exp = {};
exp.token = 'expression';
@@ -30198,463 +21864,175 @@ SparqlParser.parser = (function(){
return exp;
- })(result152[6], result152[8])
+ })(result71[4], result71[6])
: null;
- if (result151 !== null) {
- var result0 = result151;
+ if (result72 !== null) {
+ var result70 = result72;
+ } else {
+ var result70 = null;
+ pos = savedPos6;
+ }
+ if (result70 !== null) {
+ var result0 = result70;
} else {
var savedPos4 = pos;
- if (input.substr(pos, 1) === "M") {
- var result150 = "M";
- pos += 1;
+ var savedPos5 = pos;
+ if (input.substr(pos, 3) === "MIN") {
+ var result69 = "MIN";
+ pos += 3;
} else {
- var result150 = null;
+ var result69 = null;
if (reportMatchFailures) {
- matchFailed("\"M\"");
+ matchFailed("\"MIN\"");
}
}
- if (result150 !== null) {
- var result103 = result150;
+ if (result69 !== null) {
+ var result50 = result69;
} else {
- if (input.substr(pos, 1) === "m") {
- var result149 = "m";
- pos += 1;
+ if (input.substr(pos, 3) === "min") {
+ var result68 = "min";
+ pos += 3;
} else {
- var result149 = null;
+ var result68 = null;
if (reportMatchFailures) {
- matchFailed("\"m\"");
+ matchFailed("\"min\"");
}
}
- if (result149 !== null) {
- var result103 = result149;
+ if (result68 !== null) {
+ var result50 = result68;
} else {
- var result103 = null;;
+ var result50 = null;;
};
}
- if (result103 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result148 = "I";
- pos += 1;
- } else {
- var result148 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result148 !== null) {
- var result104 = result148;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result147 = "i";
- pos += 1;
- } else {
- var result147 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result147 !== null) {
- var result104 = result147;
- } else {
- var result104 = null;;
- };
+ if (result50 !== null) {
+ var result51 = [];
+ var result67 = parse_WS();
+ while (result67 !== null) {
+ result51.push(result67);
+ var result67 = parse_WS();
}
- if (result104 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result146 = "N";
+ if (result51 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result52 = "(";
pos += 1;
} else {
- var result146 = null;
+ var result52 = null;
if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result146 !== null) {
- var result105 = result146;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result145 = "n";
- pos += 1;
- } else {
- var result145 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
+ matchFailed("\"(\"");
}
- if (result145 !== null) {
- var result105 = result145;
- } else {
- var result105 = null;;
- };
}
- if (result105 !== null) {
- var result106 = [];
- var result144 = parse_WS();
- while (result144 !== null) {
- result106.push(result144);
- var result144 = parse_WS();
+ if (result52 !== null) {
+ var result53 = [];
+ var result66 = parse_WS();
+ while (result66 !== null) {
+ result53.push(result66);
+ var result66 = parse_WS();
}
- if (result106 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result107 = "(";
- pos += 1;
+ if (result53 !== null) {
+ if (input.substr(pos, 8) === "DISTINCT") {
+ var result65 = "DISTINCT";
+ pos += 8;
} else {
- var result107 = null;
+ var result65 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\"DISTINCT\"");
}
}
- if (result107 !== null) {
- var result108 = [];
- var result143 = parse_WS();
- while (result143 !== null) {
- result108.push(result143);
- var result143 = parse_WS();
- }
- if (result108 !== null) {
- var savedPos5 = pos;
- if (input.substr(pos, 1) === "D") {
- var result142 = "D";
- pos += 1;
- } else {
- var result142 = null;
- if (reportMatchFailures) {
- matchFailed("\"D\"");
- }
- }
- if (result142 !== null) {
- var result119 = result142;
- } else {
- if (input.substr(pos, 1) === "d") {
- var result141 = "d";
- pos += 1;
- } else {
- var result141 = null;
- if (reportMatchFailures) {
- matchFailed("\"d\"");
- }
- }
- if (result141 !== null) {
- var result119 = result141;
- } else {
- var result119 = null;;
- };
+ if (result65 !== null) {
+ var result63 = result65;
+ } else {
+ if (input.substr(pos, 8) === "distinct") {
+ var result64 = "distinct";
+ pos += 8;
+ } else {
+ var result64 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"distinct\"");
}
- if (result119 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result140 = "I";
- pos += 1;
- } else {
- var result140 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result140 !== null) {
- var result120 = result140;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result139 = "i";
- pos += 1;
- } else {
- var result139 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result139 !== null) {
- var result120 = result139;
- } else {
- var result120 = null;;
- };
- }
- if (result120 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result138 = "S";
- pos += 1;
- } else {
- var result138 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result138 !== null) {
- var result121 = result138;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result137 = "s";
- pos += 1;
- } else {
- var result137 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result137 !== null) {
- var result121 = result137;
- } else {
- var result121 = null;;
- };
- }
- if (result121 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result136 = "T";
- pos += 1;
- } else {
- var result136 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result136 !== null) {
- var result122 = result136;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result135 = "t";
- pos += 1;
- } else {
- var result135 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result135 !== null) {
- var result122 = result135;
- } else {
- var result122 = null;;
- };
- }
- if (result122 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result134 = "I";
- pos += 1;
- } else {
- var result134 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result134 !== null) {
- var result123 = result134;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result133 = "i";
- pos += 1;
- } else {
- var result133 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result133 !== null) {
- var result123 = result133;
- } else {
- var result123 = null;;
- };
- }
- if (result123 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result132 = "N";
- pos += 1;
- } else {
- var result132 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result132 !== null) {
- var result124 = result132;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result131 = "n";
- pos += 1;
- } else {
- var result131 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result131 !== null) {
- var result124 = result131;
- } else {
- var result124 = null;;
- };
- }
- if (result124 !== null) {
- if (input.substr(pos, 1) === "C") {
- var result130 = "C";
- pos += 1;
- } else {
- var result130 = null;
- if (reportMatchFailures) {
- matchFailed("\"C\"");
- }
- }
- if (result130 !== null) {
- var result125 = result130;
- } else {
- if (input.substr(pos, 1) === "c") {
- var result129 = "c";
- pos += 1;
- } else {
- var result129 = null;
- if (reportMatchFailures) {
- matchFailed("\"c\"");
- }
- }
- if (result129 !== null) {
- var result125 = result129;
- } else {
- var result125 = null;;
- };
- }
- if (result125 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result128 = "T";
- pos += 1;
- } else {
- var result128 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result128 !== null) {
- var result126 = result128;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result127 = "t";
- pos += 1;
- } else {
- var result127 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result127 !== null) {
- var result126 = result127;
- } else {
- var result126 = null;;
- };
- }
- if (result126 !== null) {
- var result118 = [result119, result120, result121, result122, result123, result124, result125, result126];
- } else {
- var result118 = null;
- pos = savedPos5;
- }
- } else {
- var result118 = null;
- pos = savedPos5;
- }
- } else {
- var result118 = null;
- pos = savedPos5;
- }
- } else {
- var result118 = null;
- pos = savedPos5;
- }
+ }
+ if (result64 !== null) {
+ var result63 = result64;
+ } else {
+ var result63 = null;;
+ };
+ }
+ var result54 = result63 !== null ? result63 : '';
+ if (result54 !== null) {
+ var result55 = [];
+ var result62 = parse_WS();
+ while (result62 !== null) {
+ result55.push(result62);
+ var result62 = parse_WS();
+ }
+ if (result55 !== null) {
+ var result56 = parse_ConditionalOrExpression();
+ if (result56 !== null) {
+ var result57 = [];
+ var result61 = parse_WS();
+ while (result61 !== null) {
+ result57.push(result61);
+ var result61 = parse_WS();
+ }
+ if (result57 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result58 = ")";
+ pos += 1;
+ } else {
+ var result58 = null;
+ if (reportMatchFailures) {
+ matchFailed("\")\"");
+ }
+ }
+ if (result58 !== null) {
+ var result59 = [];
+ var result60 = parse_WS();
+ while (result60 !== null) {
+ result59.push(result60);
+ var result60 = parse_WS();
+ }
+ if (result59 !== null) {
+ var result48 = [result50, result51, result52, result53, result54, result55, result56, result57, result58, result59];
} else {
- var result118 = null;
+ var result48 = null;
pos = savedPos5;
}
} else {
- var result118 = null;
+ var result48 = null;
pos = savedPos5;
}
} else {
- var result118 = null;
+ var result48 = null;
pos = savedPos5;
}
} else {
- var result118 = null;
+ var result48 = null;
pos = savedPos5;
}
- var result109 = result118 !== null ? result118 : '';
- if (result109 !== null) {
- var result110 = [];
- var result117 = parse_WS();
- while (result117 !== null) {
- result110.push(result117);
- var result117 = parse_WS();
- }
- if (result110 !== null) {
- var result111 = parse_ConditionalOrExpression();
- if (result111 !== null) {
- var result112 = [];
- var result116 = parse_WS();
- while (result116 !== null) {
- result112.push(result116);
- var result116 = parse_WS();
- }
- if (result112 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result113 = ")";
- pos += 1;
- } else {
- var result113 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result113 !== null) {
- var result114 = [];
- var result115 = parse_WS();
- while (result115 !== null) {
- result114.push(result115);
- var result115 = parse_WS();
- }
- if (result114 !== null) {
- var result102 = [result103, result104, result105, result106, result107, result108, result109, result110, result111, result112, result113, result114];
- } else {
- var result102 = null;
- pos = savedPos4;
- }
- } else {
- var result102 = null;
- pos = savedPos4;
- }
- } else {
- var result102 = null;
- pos = savedPos4;
- }
- } else {
- var result102 = null;
- pos = savedPos4;
- }
- } else {
- var result102 = null;
- pos = savedPos4;
- }
- } else {
- var result102 = null;
- pos = savedPos4;
- }
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
} else {
- var result102 = null;
- pos = savedPos4;
+ var result48 = null;
+ pos = savedPos5;
}
- var result101 = result102 !== null
+ var result49 = result48 !== null
? (function(d, e) {
exp = {};
exp.token = 'expression';
@@ -30665,463 +22043,175 @@ SparqlParser.parser = (function(){
return exp;
- })(result102[6], result102[8])
+ })(result48[4], result48[6])
: null;
- if (result101 !== null) {
- var result0 = result101;
+ if (result49 !== null) {
+ var result47 = result49;
+ } else {
+ var result47 = null;
+ pos = savedPos4;
+ }
+ if (result47 !== null) {
+ var result0 = result47;
} else {
var savedPos2 = pos;
- if (input.substr(pos, 1) === "M") {
- var result100 = "M";
- pos += 1;
+ var savedPos3 = pos;
+ if (input.substr(pos, 3) === "MAX") {
+ var result46 = "MAX";
+ pos += 3;
} else {
- var result100 = null;
+ var result46 = null;
if (reportMatchFailures) {
- matchFailed("\"M\"");
+ matchFailed("\"MAX\"");
}
}
- if (result100 !== null) {
- var result53 = result100;
+ if (result46 !== null) {
+ var result27 = result46;
} else {
- if (input.substr(pos, 1) === "m") {
- var result99 = "m";
- pos += 1;
+ if (input.substr(pos, 3) === "max") {
+ var result45 = "max";
+ pos += 3;
} else {
- var result99 = null;
+ var result45 = null;
if (reportMatchFailures) {
- matchFailed("\"m\"");
+ matchFailed("\"max\"");
}
}
- if (result99 !== null) {
- var result53 = result99;
+ if (result45 !== null) {
+ var result27 = result45;
} else {
- var result53 = null;;
+ var result27 = null;;
};
}
- if (result53 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result98 = "A";
- pos += 1;
- } else {
- var result98 = null;
- if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result98 !== null) {
- var result54 = result98;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result97 = "a";
- pos += 1;
- } else {
- var result97 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result97 !== null) {
- var result54 = result97;
- } else {
- var result54 = null;;
- };
+ if (result27 !== null) {
+ var result28 = [];
+ var result44 = parse_WS();
+ while (result44 !== null) {
+ result28.push(result44);
+ var result44 = parse_WS();
}
- if (result54 !== null) {
- if (input.substr(pos, 1) === "X") {
- var result96 = "X";
+ if (result28 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result29 = "(";
pos += 1;
} else {
- var result96 = null;
+ var result29 = null;
if (reportMatchFailures) {
- matchFailed("\"X\"");
- }
- }
- if (result96 !== null) {
- var result55 = result96;
- } else {
- if (input.substr(pos, 1) === "x") {
- var result95 = "x";
- pos += 1;
- } else {
- var result95 = null;
- if (reportMatchFailures) {
- matchFailed("\"x\"");
- }
+ matchFailed("\"(\"");
}
- if (result95 !== null) {
- var result55 = result95;
- } else {
- var result55 = null;;
- };
}
- if (result55 !== null) {
- var result56 = [];
- var result94 = parse_WS();
- while (result94 !== null) {
- result56.push(result94);
- var result94 = parse_WS();
+ if (result29 !== null) {
+ var result30 = [];
+ var result43 = parse_WS();
+ while (result43 !== null) {
+ result30.push(result43);
+ var result43 = parse_WS();
}
- if (result56 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result57 = "(";
- pos += 1;
+ if (result30 !== null) {
+ if (input.substr(pos, 8) === "DISTINCT") {
+ var result42 = "DISTINCT";
+ pos += 8;
} else {
- var result57 = null;
+ var result42 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\"DISTINCT\"");
}
}
- if (result57 !== null) {
- var result58 = [];
- var result93 = parse_WS();
- while (result93 !== null) {
- result58.push(result93);
- var result93 = parse_WS();
- }
- if (result58 !== null) {
- var savedPos3 = pos;
- if (input.substr(pos, 1) === "D") {
- var result92 = "D";
- pos += 1;
- } else {
- var result92 = null;
- if (reportMatchFailures) {
- matchFailed("\"D\"");
- }
- }
- if (result92 !== null) {
- var result69 = result92;
- } else {
- if (input.substr(pos, 1) === "d") {
- var result91 = "d";
- pos += 1;
- } else {
- var result91 = null;
- if (reportMatchFailures) {
- matchFailed("\"d\"");
- }
- }
- if (result91 !== null) {
- var result69 = result91;
- } else {
- var result69 = null;;
- };
+ if (result42 !== null) {
+ var result40 = result42;
+ } else {
+ if (input.substr(pos, 8) === "distinct") {
+ var result41 = "distinct";
+ pos += 8;
+ } else {
+ var result41 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"distinct\"");
}
- if (result69 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result90 = "I";
- pos += 1;
- } else {
- var result90 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result90 !== null) {
- var result70 = result90;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result89 = "i";
- pos += 1;
- } else {
- var result89 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result89 !== null) {
- var result70 = result89;
- } else {
- var result70 = null;;
- };
+ }
+ if (result41 !== null) {
+ var result40 = result41;
+ } else {
+ var result40 = null;;
+ };
+ }
+ var result31 = result40 !== null ? result40 : '';
+ if (result31 !== null) {
+ var result32 = [];
+ var result39 = parse_WS();
+ while (result39 !== null) {
+ result32.push(result39);
+ var result39 = parse_WS();
+ }
+ if (result32 !== null) {
+ var result33 = parse_ConditionalOrExpression();
+ if (result33 !== null) {
+ var result34 = [];
+ var result38 = parse_WS();
+ while (result38 !== null) {
+ result34.push(result38);
+ var result38 = parse_WS();
}
- if (result70 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result88 = "S";
+ if (result34 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result35 = ")";
pos += 1;
} else {
- var result88 = null;
+ var result35 = null;
if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result88 !== null) {
- var result71 = result88;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result87 = "s";
- pos += 1;
- } else {
- var result87 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
+ matchFailed("\")\"");
}
- if (result87 !== null) {
- var result71 = result87;
- } else {
- var result71 = null;;
- };
}
- if (result71 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result86 = "T";
- pos += 1;
- } else {
- var result86 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result86 !== null) {
- var result72 = result86;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result85 = "t";
- pos += 1;
- } else {
- var result85 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result85 !== null) {
- var result72 = result85;
- } else {
- var result72 = null;;
- };
+ if (result35 !== null) {
+ var result36 = [];
+ var result37 = parse_WS();
+ while (result37 !== null) {
+ result36.push(result37);
+ var result37 = parse_WS();
}
- if (result72 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result84 = "I";
- pos += 1;
- } else {
- var result84 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result84 !== null) {
- var result73 = result84;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result83 = "i";
- pos += 1;
- } else {
- var result83 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result83 !== null) {
- var result73 = result83;
- } else {
- var result73 = null;;
- };
- }
- if (result73 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result82 = "N";
- pos += 1;
- } else {
- var result82 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result82 !== null) {
- var result74 = result82;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result81 = "n";
- pos += 1;
- } else {
- var result81 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result81 !== null) {
- var result74 = result81;
- } else {
- var result74 = null;;
- };
- }
- if (result74 !== null) {
- if (input.substr(pos, 1) === "C") {
- var result80 = "C";
- pos += 1;
- } else {
- var result80 = null;
- if (reportMatchFailures) {
- matchFailed("\"C\"");
- }
- }
- if (result80 !== null) {
- var result75 = result80;
- } else {
- if (input.substr(pos, 1) === "c") {
- var result79 = "c";
- pos += 1;
- } else {
- var result79 = null;
- if (reportMatchFailures) {
- matchFailed("\"c\"");
- }
- }
- if (result79 !== null) {
- var result75 = result79;
- } else {
- var result75 = null;;
- };
- }
- if (result75 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result78 = "T";
- pos += 1;
- } else {
- var result78 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result78 !== null) {
- var result76 = result78;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result77 = "t";
- pos += 1;
- } else {
- var result77 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result77 !== null) {
- var result76 = result77;
- } else {
- var result76 = null;;
- };
- }
- if (result76 !== null) {
- var result68 = [result69, result70, result71, result72, result73, result74, result75, result76];
- } else {
- var result68 = null;
- pos = savedPos3;
- }
- } else {
- var result68 = null;
- pos = savedPos3;
- }
- } else {
- var result68 = null;
- pos = savedPos3;
- }
- } else {
- var result68 = null;
- pos = savedPos3;
- }
+ if (result36 !== null) {
+ var result25 = [result27, result28, result29, result30, result31, result32, result33, result34, result35, result36];
} else {
- var result68 = null;
+ var result25 = null;
pos = savedPos3;
}
} else {
- var result68 = null;
+ var result25 = null;
pos = savedPos3;
}
} else {
- var result68 = null;
- pos = savedPos3;
- }
- } else {
- var result68 = null;
- pos = savedPos3;
- }
- var result59 = result68 !== null ? result68 : '';
- if (result59 !== null) {
- var result60 = [];
- var result67 = parse_WS();
- while (result67 !== null) {
- result60.push(result67);
- var result67 = parse_WS();
- }
- if (result60 !== null) {
- var result61 = parse_ConditionalOrExpression();
- if (result61 !== null) {
- var result62 = [];
- var result66 = parse_WS();
- while (result66 !== null) {
- result62.push(result66);
- var result66 = parse_WS();
- }
- if (result62 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result63 = ")";
- pos += 1;
- } else {
- var result63 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result63 !== null) {
- var result64 = [];
- var result65 = parse_WS();
- while (result65 !== null) {
- result64.push(result65);
- var result65 = parse_WS();
- }
- if (result64 !== null) {
- var result52 = [result53, result54, result55, result56, result57, result58, result59, result60, result61, result62, result63, result64];
- } else {
- var result52 = null;
- pos = savedPos2;
- }
- } else {
- var result52 = null;
- pos = savedPos2;
- }
- } else {
- var result52 = null;
- pos = savedPos2;
- }
- } else {
- var result52 = null;
- pos = savedPos2;
- }
- } else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
} else {
- var result52 = null;
- pos = savedPos2;
+ var result25 = null;
+ pos = savedPos3;
}
- var result51 = result52 !== null
+ var result26 = result25 !== null
? (function(d, e) {
exp = {};
exp.token = 'expression'
@@ -31132,463 +22222,175 @@ SparqlParser.parser = (function(){
return exp
- })(result52[6], result52[8])
+ })(result25[4], result25[6])
: null;
- if (result51 !== null) {
- var result0 = result51;
+ if (result26 !== null) {
+ var result24 = result26;
+ } else {
+ var result24 = null;
+ pos = savedPos2;
+ }
+ if (result24 !== null) {
+ var result0 = result24;
} else {
var savedPos0 = pos;
- if (input.substr(pos, 1) === "A") {
- var result50 = "A";
- pos += 1;
+ var savedPos1 = pos;
+ if (input.substr(pos, 3) === "AVG") {
+ var result23 = "AVG";
+ pos += 3;
} else {
- var result50 = null;
+ var result23 = null;
if (reportMatchFailures) {
- matchFailed("\"A\"");
+ matchFailed("\"AVG\"");
}
}
- if (result50 !== null) {
- var result3 = result50;
+ if (result23 !== null) {
+ var result4 = result23;
} else {
- if (input.substr(pos, 1) === "a") {
- var result49 = "a";
- pos += 1;
+ if (input.substr(pos, 3) === "avg") {
+ var result22 = "avg";
+ pos += 3;
} else {
- var result49 = null;
+ var result22 = null;
if (reportMatchFailures) {
- matchFailed("\"a\"");
+ matchFailed("\"avg\"");
}
}
- if (result49 !== null) {
- var result3 = result49;
+ if (result22 !== null) {
+ var result4 = result22;
} else {
- var result3 = null;;
+ var result4 = null;;
};
}
- if (result3 !== null) {
- if (input.substr(pos, 1) === "V") {
- var result48 = "V";
- pos += 1;
- } else {
- var result48 = null;
- if (reportMatchFailures) {
- matchFailed("\"V\"");
- }
- }
- if (result48 !== null) {
- var result4 = result48;
- } else {
- if (input.substr(pos, 1) === "v") {
- var result47 = "v";
- pos += 1;
- } else {
- var result47 = null;
- if (reportMatchFailures) {
- matchFailed("\"v\"");
- }
- }
- if (result47 !== null) {
- var result4 = result47;
- } else {
- var result4 = null;;
- };
+ if (result4 !== null) {
+ var result5 = [];
+ var result21 = parse_WS();
+ while (result21 !== null) {
+ result5.push(result21);
+ var result21 = parse_WS();
}
- if (result4 !== null) {
- if (input.substr(pos, 1) === "G") {
- var result46 = "G";
+ if (result5 !== null) {
+ if (input.substr(pos, 1) === "(") {
+ var result6 = "(";
pos += 1;
} else {
- var result46 = null;
+ var result6 = null;
if (reportMatchFailures) {
- matchFailed("\"G\"");
- }
- }
- if (result46 !== null) {
- var result5 = result46;
- } else {
- if (input.substr(pos, 1) === "g") {
- var result45 = "g";
- pos += 1;
- } else {
- var result45 = null;
- if (reportMatchFailures) {
- matchFailed("\"g\"");
- }
+ matchFailed("\"(\"");
}
- if (result45 !== null) {
- var result5 = result45;
- } else {
- var result5 = null;;
- };
}
- if (result5 !== null) {
- var result6 = [];
- var result44 = parse_WS();
- while (result44 !== null) {
- result6.push(result44);
- var result44 = parse_WS();
+ if (result6 !== null) {
+ var result7 = [];
+ var result20 = parse_WS();
+ while (result20 !== null) {
+ result7.push(result20);
+ var result20 = parse_WS();
}
- if (result6 !== null) {
- if (input.substr(pos, 1) === "(") {
- var result7 = "(";
- pos += 1;
+ if (result7 !== null) {
+ if (input.substr(pos, 8) === "DISTINCT") {
+ var result19 = "DISTINCT";
+ pos += 8;
} else {
- var result7 = null;
+ var result19 = null;
if (reportMatchFailures) {
- matchFailed("\"(\"");
+ matchFailed("\"DISTINCT\"");
}
}
- if (result7 !== null) {
- var result8 = [];
- var result43 = parse_WS();
- while (result43 !== null) {
- result8.push(result43);
- var result43 = parse_WS();
- }
- if (result8 !== null) {
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "D") {
- var result42 = "D";
- pos += 1;
- } else {
- var result42 = null;
- if (reportMatchFailures) {
- matchFailed("\"D\"");
- }
- }
- if (result42 !== null) {
- var result19 = result42;
- } else {
- if (input.substr(pos, 1) === "d") {
- var result41 = "d";
- pos += 1;
- } else {
- var result41 = null;
- if (reportMatchFailures) {
- matchFailed("\"d\"");
- }
- }
- if (result41 !== null) {
- var result19 = result41;
- } else {
- var result19 = null;;
- };
+ if (result19 !== null) {
+ var result17 = result19;
+ } else {
+ if (input.substr(pos, 8) === "distinct") {
+ var result18 = "distinct";
+ pos += 8;
+ } else {
+ var result18 = null;
+ if (reportMatchFailures) {
+ matchFailed("\"distinct\"");
}
- if (result19 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result40 = "I";
- pos += 1;
- } else {
- var result40 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result40 !== null) {
- var result20 = result40;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result39 = "i";
- pos += 1;
- } else {
- var result39 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result39 !== null) {
- var result20 = result39;
- } else {
- var result20 = null;;
- };
+ }
+ if (result18 !== null) {
+ var result17 = result18;
+ } else {
+ var result17 = null;;
+ };
+ }
+ var result8 = result17 !== null ? result17 : '';
+ if (result8 !== null) {
+ var result9 = [];
+ var result16 = parse_WS();
+ while (result16 !== null) {
+ result9.push(result16);
+ var result16 = parse_WS();
+ }
+ if (result9 !== null) {
+ var result10 = parse_ConditionalOrExpression();
+ if (result10 !== null) {
+ var result11 = [];
+ var result15 = parse_WS();
+ while (result15 !== null) {
+ result11.push(result15);
+ var result15 = parse_WS();
}
- if (result20 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result38 = "S";
+ if (result11 !== null) {
+ if (input.substr(pos, 1) === ")") {
+ var result12 = ")";
pos += 1;
} else {
- var result38 = null;
+ var result12 = null;
if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result38 !== null) {
- var result21 = result38;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result37 = "s";
- pos += 1;
- } else {
- var result37 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result37 !== null) {
- var result21 = result37;
- } else {
- var result21 = null;;
- };
- }
- if (result21 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result36 = "T";
- pos += 1;
- } else {
- var result36 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result36 !== null) {
- var result22 = result36;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result35 = "t";
- pos += 1;
- } else {
- var result35 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result35 !== null) {
- var result22 = result35;
- } else {
- var result22 = null;;
- };
- }
- if (result22 !== null) {
- if (input.substr(pos, 1) === "I") {
- var result34 = "I";
- pos += 1;
- } else {
- var result34 = null;
- if (reportMatchFailures) {
- matchFailed("\"I\"");
- }
- }
- if (result34 !== null) {
- var result23 = result34;
- } else {
- if (input.substr(pos, 1) === "i") {
- var result33 = "i";
- pos += 1;
- } else {
- var result33 = null;
- if (reportMatchFailures) {
- matchFailed("\"i\"");
- }
- }
- if (result33 !== null) {
- var result23 = result33;
- } else {
- var result23 = null;;
- };
- }
- if (result23 !== null) {
- if (input.substr(pos, 1) === "N") {
- var result32 = "N";
- pos += 1;
- } else {
- var result32 = null;
- if (reportMatchFailures) {
- matchFailed("\"N\"");
- }
- }
- if (result32 !== null) {
- var result24 = result32;
- } else {
- if (input.substr(pos, 1) === "n") {
- var result31 = "n";
- pos += 1;
- } else {
- var result31 = null;
- if (reportMatchFailures) {
- matchFailed("\"n\"");
- }
- }
- if (result31 !== null) {
- var result24 = result31;
- } else {
- var result24 = null;;
- };
- }
- if (result24 !== null) {
- if (input.substr(pos, 1) === "C") {
- var result30 = "C";
- pos += 1;
- } else {
- var result30 = null;
- if (reportMatchFailures) {
- matchFailed("\"C\"");
- }
- }
- if (result30 !== null) {
- var result25 = result30;
- } else {
- if (input.substr(pos, 1) === "c") {
- var result29 = "c";
- pos += 1;
- } else {
- var result29 = null;
- if (reportMatchFailures) {
- matchFailed("\"c\"");
- }
- }
- if (result29 !== null) {
- var result25 = result29;
- } else {
- var result25 = null;;
- };
- }
- if (result25 !== null) {
- if (input.substr(pos, 1) === "T") {
- var result28 = "T";
- pos += 1;
- } else {
- var result28 = null;
- if (reportMatchFailures) {
- matchFailed("\"T\"");
- }
- }
- if (result28 !== null) {
- var result26 = result28;
- } else {
- if (input.substr(pos, 1) === "t") {
- var result27 = "t";
- pos += 1;
- } else {
- var result27 = null;
- if (reportMatchFailures) {
- matchFailed("\"t\"");
- }
- }
- if (result27 !== null) {
- var result26 = result27;
- } else {
- var result26 = null;;
- };
- }
- if (result26 !== null) {
- var result18 = [result19, result20, result21, result22, result23, result24, result25, result26];
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- } else {
- var result18 = null;
- pos = savedPos1;
+ matchFailed("\")\"");
}
- } else {
- var result18 = null;
- pos = savedPos1;
}
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- } else {
- var result18 = null;
- pos = savedPos1;
- }
- var result9 = result18 !== null ? result18 : '';
- if (result9 !== null) {
- var result10 = [];
- var result17 = parse_WS();
- while (result17 !== null) {
- result10.push(result17);
- var result17 = parse_WS();
- }
- if (result10 !== null) {
- var result11 = parse_ConditionalOrExpression();
- if (result11 !== null) {
- var result12 = [];
- var result16 = parse_WS();
- while (result16 !== null) {
- result12.push(result16);
- var result16 = parse_WS();
+ if (result12 !== null) {
+ var result13 = [];
+ var result14 = parse_WS();
+ while (result14 !== null) {
+ result13.push(result14);
+ var result14 = parse_WS();
}
- if (result12 !== null) {
- if (input.substr(pos, 1) === ")") {
- var result13 = ")";
- pos += 1;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result13 !== null) {
- var result14 = [];
- var result15 = parse_WS();
- while (result15 !== null) {
- result14.push(result15);
- var result15 = parse_WS();
- }
- if (result14 !== null) {
- var result2 = [result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14];
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
- }
+ if (result13 !== null) {
+ var result2 = [result4, result5, result6, result7, result8, result9, result10, result11, result12, result13];
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(d, e) {
exp = {};
exp.token = 'expression'
@@ -31599,8 +22401,14 @@ SparqlParser.parser = (function(){
return exp
- })(result2[6], result2[8])
+ })(result2[4], result2[6])
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -31633,21 +22441,22 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_IRIref();
- if (result2 !== null) {
- var result4 = parse_ArgList();
- var result3 = result4 !== null ? result4 : '';
- if (result3 !== null) {
- var result1 = [result2, result3];
+ var savedPos1 = pos;
+ var result3 = parse_IRIref();
+ if (result3 !== null) {
+ var result5 = parse_ArgList();
+ var result4 = result5 !== null ? result5 : '';
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(i, args) {
var fcall = {};
fcall.token = "expression";
@@ -31658,6 +22467,12 @@ SparqlParser.parser = (function(){
return fcall;
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[117] IRIrefOrFunction");
@@ -31681,52 +22496,53 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_String();
- if (result2 !== null) {
- var result8 = parse_LANGTAG();
- if (result8 !== null) {
- var result4 = result8;
+ var savedPos1 = pos;
+ var result3 = parse_String();
+ if (result3 !== null) {
+ var result9 = parse_LANGTAG();
+ if (result9 !== null) {
+ var result5 = result9;
} else {
- var savedPos1 = pos;
+ var savedPos2 = pos;
if (input.substr(pos, 2) === "^^") {
- var result6 = "^^";
+ var result7 = "^^";
pos += 2;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("\"^^\"");
}
}
- if (result6 !== null) {
- var result7 = parse_IRIref();
- if (result7 !== null) {
- var result5 = [result6, result7];
+ if (result7 !== null) {
+ var result8 = parse_IRIref();
+ if (result8 !== null) {
+ var result6 = [result7, result8];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
}
- var result3 = result4 !== null ? result4 : '';
- if (result3 !== null) {
- var result1 = [result2, result3];
+ var result4 = result5 !== null ? result5 : '';
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(s, e) {
if(typeof(e) === "string" && e.length > 0) {
return {token:'literal', value:s.value, lang:e.slice(1), type:null}
@@ -31740,6 +22556,12 @@ SparqlParser.parser = (function(){
}
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[112] RDFLiteral");
@@ -31915,138 +22737,36 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos1 = pos;
- if (input.substr(pos, 1) === "T") {
- var result31 = "T";
- pos += 1;
+ if (input.substr(pos, 4) === "TRUE") {
+ var result10 = "TRUE";
+ pos += 4;
} else {
- var result31 = null;
+ var result10 = null;
if (reportMatchFailures) {
- matchFailed("\"T\"");
+ matchFailed("\"TRUE\"");
}
}
- if (result31 !== null) {
- var result20 = result31;
+ if (result10 !== null) {
+ var result7 = result10;
} else {
- if (input.substr(pos, 1) === "t") {
- var result30 = "t";
- pos += 1;
+ if (input.substr(pos, 4) === "true") {
+ var result9 = "true";
+ pos += 4;
} else {
- var result30 = null;
+ var result9 = null;
if (reportMatchFailures) {
- matchFailed("\"t\"");
+ matchFailed("\"true\"");
}
}
- if (result30 !== null) {
- var result20 = result30;
+ if (result9 !== null) {
+ var result7 = result9;
} else {
- var result20 = null;;
+ var result7 = null;;
};
}
- if (result20 !== null) {
- if (input.substr(pos, 1) === "R") {
- var result29 = "R";
- pos += 1;
- } else {
- var result29 = null;
- if (reportMatchFailures) {
- matchFailed("\"R\"");
- }
- }
- if (result29 !== null) {
- var result21 = result29;
- } else {
- if (input.substr(pos, 1) === "r") {
- var result28 = "r";
- pos += 1;
- } else {
- var result28 = null;
- if (reportMatchFailures) {
- matchFailed("\"r\"");
- }
- }
- if (result28 !== null) {
- var result21 = result28;
- } else {
- var result21 = null;;
- };
- }
- if (result21 !== null) {
- if (input.substr(pos, 1) === "U") {
- var result27 = "U";
- pos += 1;
- } else {
- var result27 = null;
- if (reportMatchFailures) {
- matchFailed("\"U\"");
- }
- }
- if (result27 !== null) {
- var result22 = result27;
- } else {
- if (input.substr(pos, 1) === "u") {
- var result26 = "u";
- pos += 1;
- } else {
- var result26 = null;
- if (reportMatchFailures) {
- matchFailed("\"u\"");
- }
- }
- if (result26 !== null) {
- var result22 = result26;
- } else {
- var result22 = null;;
- };
- }
- if (result22 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result25 = "E";
- pos += 1;
- } else {
- var result25 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result25 !== null) {
- var result23 = result25;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result24 = "e";
- pos += 1;
- } else {
- var result24 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result24 !== null) {
- var result23 = result24;
- } else {
- var result23 = null;;
- };
- }
- if (result23 !== null) {
- var result19 = [result20, result21, result22, result23];
- } else {
- var result19 = null;
- pos = savedPos1;
- }
- } else {
- var result19 = null;
- pos = savedPos1;
- }
- } else {
- var result19 = null;
- pos = savedPos1;
- }
- } else {
- var result19 = null;
- pos = savedPos1;
- }
- var result18 = result19 !== null
+ var result8 = result7 !== null
? (function() {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#boolean";
@@ -32054,174 +22774,46 @@ SparqlParser.parser = (function(){
return lit;
})()
: null;
- if (result18 !== null) {
- var result0 = result18;
+ if (result8 !== null) {
+ var result6 = result8;
+ } else {
+ var result6 = null;
+ pos = savedPos1;
+ }
+ if (result6 !== null) {
+ var result0 = result6;
} else {
var savedPos0 = pos;
- if (input.substr(pos, 1) === "F") {
- var result17 = "F";
- pos += 1;
+ if (input.substr(pos, 5) === "FALSE") {
+ var result5 = "FALSE";
+ pos += 5;
} else {
- var result17 = null;
+ var result5 = null;
if (reportMatchFailures) {
- matchFailed("\"F\"");
+ matchFailed("\"FALSE\"");
}
}
- if (result17 !== null) {
- var result3 = result17;
+ if (result5 !== null) {
+ var result2 = result5;
} else {
- if (input.substr(pos, 1) === "f") {
- var result16 = "f";
- pos += 1;
- } else {
- var result16 = null;
- if (reportMatchFailures) {
- matchFailed("\"f\"");
- }
- }
- if (result16 !== null) {
- var result3 = result16;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "A") {
- var result15 = "A";
- pos += 1;
+ if (input.substr(pos, 5) === "false") {
+ var result4 = "false";
+ pos += 5;
} else {
- var result15 = null;
+ var result4 = null;
if (reportMatchFailures) {
- matchFailed("\"A\"");
- }
- }
- if (result15 !== null) {
- var result4 = result15;
- } else {
- if (input.substr(pos, 1) === "a") {
- var result14 = "a";
- pos += 1;
- } else {
- var result14 = null;
- if (reportMatchFailures) {
- matchFailed("\"a\"");
- }
- }
- if (result14 !== null) {
- var result4 = result14;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "L") {
- var result13 = "L";
- pos += 1;
- } else {
- var result13 = null;
- if (reportMatchFailures) {
- matchFailed("\"L\"");
- }
- }
- if (result13 !== null) {
- var result5 = result13;
- } else {
- if (input.substr(pos, 1) === "l") {
- var result12 = "l";
- pos += 1;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("\"l\"");
- }
- }
- if (result12 !== null) {
- var result5 = result12;
- } else {
- var result5 = null;;
- };
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === "S") {
- var result11 = "S";
- pos += 1;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("\"S\"");
- }
- }
- if (result11 !== null) {
- var result6 = result11;
- } else {
- if (input.substr(pos, 1) === "s") {
- var result10 = "s";
- pos += 1;
- } else {
- var result10 = null;
- if (reportMatchFailures) {
- matchFailed("\"s\"");
- }
- }
- if (result10 !== null) {
- var result6 = result10;
- } else {
- var result6 = null;;
- };
- }
- if (result6 !== null) {
- if (input.substr(pos, 1) === "E") {
- var result9 = "E";
- pos += 1;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("\"E\"");
- }
- }
- if (result9 !== null) {
- var result7 = result9;
- } else {
- if (input.substr(pos, 1) === "e") {
- var result8 = "e";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"e\"");
- }
- }
- if (result8 !== null) {
- var result7 = result8;
- } else {
- var result7 = null;;
- };
- }
- if (result7 !== null) {
- var result2 = [result3, result4, result5, result6, result7];
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- } else {
- var result2 = null;
- pos = savedPos0;
+ matchFailed("\"false\"");
}
- } else {
- var result2 = null;
- pos = savedPos0;
}
- } else {
- var result2 = null;
- pos = savedPos0;
+ if (result4 !== null) {
+ var result2 = result4;
+ } else {
+ var result2 = null;;
+ };
}
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function() {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#boolean";
@@ -32229,6 +22821,12 @@ SparqlParser.parser = (function(){
return lit;
})()
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -32257,31 +22855,59 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var result8 = parse_STRING_LITERAL_LONG1();
- var result7 = result8 !== null
- ? (function(s) { return {token:'string', value:s} })(result8)
+ var savedPos3 = pos;
+ var result11 = parse_STRING_LITERAL_LONG1();
+ var result12 = result11 !== null
+ ? (function(s) { return {token:'string', value:s} })(result11)
: null;
- if (result7 !== null) {
- var result0 = result7;
+ if (result12 !== null) {
+ var result10 = result12;
+ } else {
+ var result10 = null;
+ pos = savedPos3;
+ }
+ if (result10 !== null) {
+ var result0 = result10;
} else {
- var result6 = parse_STRING_LITERAL_LONG2();
- var result5 = result6 !== null
- ? (function(s) { return {token:'string', value:s} })(result6)
+ var savedPos2 = pos;
+ var result8 = parse_STRING_LITERAL_LONG2();
+ var result9 = result8 !== null
+ ? (function(s) { return {token:'string', value:s} })(result8)
: null;
- if (result5 !== null) {
- var result0 = result5;
+ if (result9 !== null) {
+ var result7 = result9;
+ } else {
+ var result7 = null;
+ pos = savedPos2;
+ }
+ if (result7 !== null) {
+ var result0 = result7;
} else {
- var result4 = parse_STRING_LITERAL1();
- var result3 = result4 !== null
- ? (function(s) { return {token:'string', value:s} })(result4)
+ var savedPos1 = pos;
+ var result5 = parse_STRING_LITERAL1();
+ var result6 = result5 !== null
+ ? (function(s) { return {token:'string', value:s} })(result5)
: null;
- if (result3 !== null) {
- var result0 = result3;
+ if (result6 !== null) {
+ var result4 = result6;
+ } else {
+ var result4 = null;
+ pos = savedPos1;
+ }
+ if (result4 !== null) {
+ var result0 = result4;
} else {
+ var savedPos0 = pos;
var result2 = parse_STRING_LITERAL2();
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(s) { return {token:'string', value:s} })(result2)
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -32312,17 +22938,31 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var result4 = parse_IRI_REF();
- var result3 = result4 !== null
- ? (function(iri) { return {token: 'uri', prefix:null, suffix:null, value:iri} })(result4)
+ var savedPos1 = pos;
+ var result5 = parse_IRI_REF();
+ var result6 = result5 !== null
+ ? (function(iri) { return {token: 'uri', prefix:null, suffix:null, value:iri} })(result5)
: null;
- if (result3 !== null) {
- var result0 = result3;
+ if (result6 !== null) {
+ var result4 = result6;
+ } else {
+ var result4 = null;
+ pos = savedPos1;
+ }
+ if (result4 !== null) {
+ var result0 = result4;
} else {
+ var savedPos0 = pos;
var result2 = parse_PrefixedName();
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(p) { return p })(result2)
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -32351,17 +22991,31 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var result4 = parse_PNAME_LN();
- var result3 = result4 !== null
- ? (function(p) { return {token: 'uri', prefix:p[0], suffix:p[1], value:null } })(result4)
+ var savedPos1 = pos;
+ var result5 = parse_PNAME_LN();
+ var result6 = result5 !== null
+ ? (function(p) { return {token: 'uri', prefix:p[0], suffix:p[1], value:null } })(result5)
: null;
- if (result3 !== null) {
- var result0 = result3;
+ if (result6 !== null) {
+ var result4 = result6;
+ } else {
+ var result4 = null;
+ pos = savedPos1;
+ }
+ if (result4 !== null) {
+ var result0 = result4;
} else {
+ var savedPos0 = pos;
var result2 = parse_PNAME_NS();
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(p) { return {token: 'uri', prefix:p, suffix:'', value:null } })(result2)
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -32390,17 +23044,31 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var result4 = parse_BLANK_NODE_LABEL();
- var result3 = result4 !== null
- ? (function(l) { return {token:'blank', label:l}})(result4)
+ var savedPos1 = pos;
+ var result5 = parse_BLANK_NODE_LABEL();
+ var result6 = result5 !== null
+ ? (function(l) { return {token:'blank', value:l}})(result5)
: null;
- if (result3 !== null) {
- var result0 = result3;
+ if (result6 !== null) {
+ var result4 = result6;
+ } else {
+ var result4 = null;
+ pos = savedPos1;
+ }
+ if (result4 !== null) {
+ var result0 = result4;
} else {
+ var savedPos0 = pos;
var result2 = parse_ANON();
- var result1 = result2 !== null
- ? (function() { GlobalBlankNodeCounter++; return {token:'blank', label:''+GlobalBlankNodeCounter} })()
+ var result3 = result2 !== null
+ ? (function() { GlobalBlankNodeCounter++; return {token:'blank', value:'_:'+GlobalBlankNodeCounter} })()
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -32430,65 +23098,72 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "<") {
- var result2 = "<";
+ var result3 = "<";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"<\"");
}
}
- if (result2 !== null) {
- var result3 = [];
- if (input.substr(pos).match(/^[^<>"{} | ^\\]/) !== null) {
- var result5 = input.charAt(pos);
+ if (result3 !== null) {
+ var result4 = [];
+ if (input.substr(pos).match(/^[^<>"{}|^`\\]/) !== null) {
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
- matchFailed("[^<>\"{} | ^\\\\]");
+ matchFailed("[^<>\"{}|^`\\\\]");
}
}
- while (result5 !== null) {
- result3.push(result5);
- if (input.substr(pos).match(/^[^<>"{} | ^\\]/) !== null) {
- var result5 = input.charAt(pos);
+ while (result6 !== null) {
+ result4.push(result6);
+ if (input.substr(pos).match(/^[^<>"{}|^`\\]/) !== null) {
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
- matchFailed("[^<>\"{} | ^\\\\]");
+ matchFailed("[^<>\"{}|^`\\\\]");
}
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 1) === ">") {
- var result4 = ">";
+ var result5 = ">";
pos += 1;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\">\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(iri_ref) { return iri_ref.join('') })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[122] IRI_REF");
@@ -32512,31 +23187,38 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result4 = parse_PN_PREFIX();
- var result2 = result4 !== null ? result4 : '';
- if (result2 !== null) {
+ var savedPos1 = pos;
+ var result5 = parse_PN_PREFIX();
+ var result3 = result5 !== null ? result5 : '';
+ if (result3 !== null) {
if (input.substr(pos, 1) === ":") {
- var result3 = ":";
+ var result4 = ":";
pos += 1;
} else {
- var result3 = null;
+ var result4 = null;
if (reportMatchFailures) {
matchFailed("\":\"");
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(p) { return p })(result1[0])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[123] PNAME_NS");
@@ -32560,22 +23242,29 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_PNAME_NS();
- if (result2 !== null) {
- var result3 = parse_PN_LOCAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ var savedPos1 = pos;
+ var result3 = parse_PNAME_NS();
+ if (result3 !== null) {
+ var result4 = parse_PN_LOCAL();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(p, s) { return [p, s] })(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[124] PNAME_LN");
@@ -32599,30 +23288,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 2) === "_:") {
- var result2 = "_:";
+ var result3 = "_:";
pos += 2;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"_:\"");
}
}
- if (result2 !== null) {
- var result3 = parse_PN_LOCAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_PN_LOCAL();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(l) { return l })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[125] BLANK_NODE_LABEL");
@@ -32646,30 +23342,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "?") {
- var result2 = "?";
+ var result3 = "?";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"?\"");
}
}
- if (result2 !== null) {
- var result3 = parse_VARNAME();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_VARNAME();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(v) { return v })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[126] VAR1");
@@ -32693,30 +23396,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "$") {
- var result2 = "$";
+ var result3 = "$";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"$\"");
}
}
- if (result2 !== null) {
- var result3 = parse_VARNAME();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_VARNAME();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(v) { return v })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[127] VAR2");
@@ -32740,156 +23450,157 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "@") {
- var result2 = "@";
+ var result3 = "@";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"@\"");
}
}
- if (result2 !== null) {
+ if (result3 !== null) {
if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
- var result9 = input.charAt(pos);
+ var result10 = input.charAt(pos);
pos++;
} else {
- var result9 = null;
+ var result10 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z]");
}
}
- if (result9 !== null) {
- var result3 = [];
- while (result9 !== null) {
- result3.push(result9);
+ if (result10 !== null) {
+ var result4 = [];
+ while (result10 !== null) {
+ result4.push(result10);
if (input.substr(pos).match(/^[a-zA-Z]/) !== null) {
- var result9 = input.charAt(pos);
+ var result10 = input.charAt(pos);
pos++;
} else {
- var result9 = null;
+ var result10 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z]");
}
}
}
} else {
- var result3 = null;
+ var result4 = null;
}
- if (result3 !== null) {
- var result4 = [];
- var savedPos1 = pos;
+ if (result4 !== null) {
+ var result5 = [];
+ var savedPos2 = pos;
if (input.substr(pos, 1) === "-") {
- var result6 = "-";
+ var result7 = "-";
pos += 1;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z0-9]");
}
}
- if (result8 !== null) {
- var result7 = [];
- while (result8 !== null) {
- result7.push(result8);
+ if (result9 !== null) {
+ var result8 = [];
+ while (result9 !== null) {
+ result8.push(result9);
if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z0-9]");
}
}
}
} else {
- var result7 = null;
+ var result8 = null;
}
- if (result7 !== null) {
- var result5 = [result6, result7];
+ if (result8 !== null) {
+ var result6 = [result7, result8];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
- while (result5 !== null) {
- result4.push(result5);
- var savedPos1 = pos;
+ while (result6 !== null) {
+ result5.push(result6);
+ var savedPos2 = pos;
if (input.substr(pos, 1) === "-") {
- var result6 = "-";
+ var result7 = "-";
pos += 1;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result6 !== null) {
+ if (result7 !== null) {
if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z0-9]");
}
}
- if (result8 !== null) {
- var result7 = [];
- while (result8 !== null) {
- result7.push(result8);
+ if (result9 !== null) {
+ var result8 = [];
+ while (result9 !== null) {
+ result8.push(result9);
if (input.substr(pos).match(/^[a-zA-Z0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[a-zA-Z0-9]");
}
}
}
} else {
- var result7 = null;
+ var result8 = null;
}
- if (result7 !== null) {
- var result5 = [result6, result7];
+ if (result8 !== null) {
+ var result6 = [result7, result8];
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
} else {
- var result5 = null;
- pos = savedPos1;
+ var result6 = null;
+ pos = savedPos2;
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(a, b) {
if(b.length===0) {
@@ -32899,6 +23610,12 @@ SparqlParser.parser = (function(){
}
})(result1[1], result1[2])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[128] LANGTAG");
@@ -32921,24 +23638,25 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
+ var savedPos0 = pos;
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result2 = input.charAt(pos);
+ var result3 = input.charAt(pos);
pos++;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result2 !== null) {
+ if (result3 !== null) {
var result1 = [];
- while (result2 !== null) {
- result1.push(result2);
+ while (result3 !== null) {
+ result1.push(result3);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result2 = input.charAt(pos);
+ var result3 = input.charAt(pos);
pos++;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
@@ -32947,9 +23665,9 @@ SparqlParser.parser = (function(){
} else {
var result1 = null;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#integer";
@@ -32957,6 +23675,12 @@ SparqlParser.parser = (function(){
return lit;
})(result1)
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[129] INTEGER");
@@ -32979,144 +23703,152 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var savedPos1 = pos;
+ var savedPos2 = pos;
+ var savedPos3 = pos;
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result12 = input.charAt(pos);
+ var result14 = input.charAt(pos);
pos++;
} else {
- var result12 = null;
+ var result14 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result12 !== null) {
- var result8 = [];
- while (result12 !== null) {
- result8.push(result12);
+ if (result14 !== null) {
+ var result10 = [];
+ while (result14 !== null) {
+ result10.push(result14);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result12 = input.charAt(pos);
+ var result14 = input.charAt(pos);
pos++;
} else {
- var result12 = null;
+ var result14 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result8 = null;
+ var result10 = null;
}
- if (result8 !== null) {
+ if (result10 !== null) {
if (input.substr(pos, 1) === ".") {
- var result9 = ".";
+ var result11 = ".";
pos += 1;
} else {
- var result9 = null;
+ var result11 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result9 !== null) {
- var result10 = [];
+ if (result11 !== null) {
+ var result12 = [];
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
+ var result13 = input.charAt(pos);
pos++;
} else {
- var result11 = null;
+ var result13 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- while (result11 !== null) {
- result10.push(result11);
+ while (result13 !== null) {
+ result12.push(result13);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
+ var result13 = input.charAt(pos);
pos++;
} else {
- var result11 = null;
+ var result13 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
- if (result10 !== null) {
- var result7 = [result8, result9, result10];
+ if (result12 !== null) {
+ var result8 = [result10, result11, result12];
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
- var result6 = result7 !== null
+ var result9 = result8 !== null
? (function(a, b, c) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#decimal";
lit.value = flattenString([a,b,c]);
return lit;
- })(result7[0], result7[1], result7[2])
+ })(result8[0], result8[1], result8[2])
: null;
- if (result6 !== null) {
- var result0 = result6;
+ if (result9 !== null) {
+ var result7 = result9;
+ } else {
+ var result7 = null;
+ pos = savedPos2;
+ }
+ if (result7 !== null) {
+ var result0 = result7;
} else {
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === ".") {
- var result3 = ".";
+ var result4 = ".";
pos += 1;
} else {
- var result3 = null;
+ var result4 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result5 !== null) {
- var result4 = [];
- while (result5 !== null) {
- result4.push(result5);
+ if (result6 !== null) {
+ var result5 = [];
+ while (result6 !== null) {
+ result5.push(result6);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result4 = null;
+ var result5 = null;
}
- if (result4 !== null) {
- var result2 = [result3, result4];
+ if (result5 !== null) {
+ var result2 = [result4, result5];
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(a, b) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#decimal";
@@ -33124,6 +23856,12 @@ SparqlParser.parser = (function(){
return lit;
})(result2[0], result2[1])
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -33152,207 +23890,222 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
- var savedPos2 = pos;
+ var savedPos4 = pos;
+ var savedPos5 = pos;
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result19 = input.charAt(pos);
+ var result22 = input.charAt(pos);
pos++;
} else {
- var result19 = null;
+ var result22 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result19 !== null) {
- var result14 = [];
- while (result19 !== null) {
- result14.push(result19);
+ if (result22 !== null) {
+ var result17 = [];
+ while (result22 !== null) {
+ result17.push(result22);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result19 = input.charAt(pos);
+ var result22 = input.charAt(pos);
pos++;
} else {
- var result19 = null;
+ var result22 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result14 = null;
+ var result17 = null;
}
- if (result14 !== null) {
+ if (result17 !== null) {
if (input.substr(pos, 1) === ".") {
- var result15 = ".";
+ var result18 = ".";
pos += 1;
} else {
- var result15 = null;
+ var result18 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result15 !== null) {
- var result16 = [];
+ if (result18 !== null) {
+ var result19 = [];
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result18 = input.charAt(pos);
+ var result21 = input.charAt(pos);
pos++;
} else {
- var result18 = null;
+ var result21 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- while (result18 !== null) {
- result16.push(result18);
+ while (result21 !== null) {
+ result19.push(result21);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result18 = input.charAt(pos);
+ var result21 = input.charAt(pos);
pos++;
} else {
- var result18 = null;
+ var result21 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
- if (result16 !== null) {
- var result17 = parse_EXPONENT();
- if (result17 !== null) {
- var result13 = [result14, result15, result16, result17];
+ if (result19 !== null) {
+ var result20 = parse_EXPONENT();
+ if (result20 !== null) {
+ var result15 = [result17, result18, result19, result20];
} else {
- var result13 = null;
- pos = savedPos2;
+ var result15 = null;
+ pos = savedPos5;
}
} else {
- var result13 = null;
- pos = savedPos2;
+ var result15 = null;
+ pos = savedPos5;
}
} else {
- var result13 = null;
- pos = savedPos2;
+ var result15 = null;
+ pos = savedPos5;
}
} else {
- var result13 = null;
- pos = savedPos2;
+ var result15 = null;
+ pos = savedPos5;
}
- var result12 = result13 !== null
+ var result16 = result15 !== null
? (function(a, b, c, e) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#double";
lit.value = flattenString([a,b,c,e]);
return lit;
- })(result13[0], result13[1], result13[2], result13[3])
+ })(result15[0], result15[1], result15[2], result15[3])
: null;
- if (result12 !== null) {
- var result0 = result12;
+ if (result16 !== null) {
+ var result14 = result16;
} else {
- var savedPos1 = pos;
+ var result14 = null;
+ pos = savedPos4;
+ }
+ if (result14 !== null) {
+ var result0 = result14;
+ } else {
+ var savedPos2 = pos;
+ var savedPos3 = pos;
if (input.substr(pos, 1) === ".") {
- var result8 = ".";
+ var result10 = ".";
pos += 1;
} else {
- var result8 = null;
+ var result10 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result8 !== null) {
+ if (result10 !== null) {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
+ var result13 = input.charAt(pos);
pos++;
} else {
- var result11 = null;
+ var result13 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result11 !== null) {
- var result9 = [];
- while (result11 !== null) {
- result9.push(result11);
+ if (result13 !== null) {
+ var result11 = [];
+ while (result13 !== null) {
+ result11.push(result13);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result11 = input.charAt(pos);
+ var result13 = input.charAt(pos);
pos++;
} else {
- var result11 = null;
+ var result13 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result9 = null;
+ var result11 = null;
}
- if (result9 !== null) {
- var result10 = parse_EXPONENT();
- if (result10 !== null) {
- var result7 = [result8, result9, result10];
+ if (result11 !== null) {
+ var result12 = parse_EXPONENT();
+ if (result12 !== null) {
+ var result8 = [result10, result11, result12];
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
} else {
- var result7 = null;
- pos = savedPos1;
+ var result8 = null;
+ pos = savedPos3;
}
- var result6 = result7 !== null
+ var result9 = result8 !== null
? (function(a, b, c) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#double";
lit.value = flattenString([a,b,c]);
return lit;
- })(result7[0], result7[1], result7[2])
+ })(result8[0], result8[1], result8[2])
: null;
- if (result6 !== null) {
- var result0 = result6;
+ if (result9 !== null) {
+ var result7 = result9;
+ } else {
+ var result7 = null;
+ pos = savedPos2;
+ }
+ if (result7 !== null) {
+ var result0 = result7;
} else {
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result5 !== null) {
- var result3 = [];
- while (result5 !== null) {
- result3.push(result5);
+ if (result6 !== null) {
+ var result4 = [];
+ while (result6 !== null) {
+ result4.push(result6);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result3 = null;
+ var result4 = null;
}
- if (result3 !== null) {
- var result4 = parse_EXPONENT();
- if (result4 !== null) {
- var result2 = [result3, result4];
+ if (result4 !== null) {
+ var result5 = parse_EXPONENT();
+ if (result5 !== null) {
+ var result2 = [result4, result5];
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result2 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result1 = result2 !== null
+ var result3 = result2 !== null
? (function(a, b) {
- lit = {};
+ var lit = {};
lit.token = "literal";
lit.lang = null;
lit.type = "http://www.w3.org/2001/XMLSchema#double";
@@ -33360,6 +24113,12 @@ SparqlParser.parser = (function(){
return lit;
})(result2[0], result2[1])
: null;
+ if (result3 !== null) {
+ var result1 = result3;
+ } else {
+ var result1 = null;
+ pos = savedPos0;
+ }
if (result1 !== null) {
var result0 = result1;
} else {
@@ -33390,30 +24149,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "+") {
- var result2 = "+";
+ var result3 = "+";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result2 !== null) {
- var result3 = parse_INTEGER();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_INTEGER();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "+"+d.value; return d; })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[132] INTEGER_POSITIVE");
@@ -33437,30 +24203,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "+") {
- var result2 = "+";
+ var result3 = "+";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result2 !== null) {
- var result3 = parse_DECIMAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_DECIMAL();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "+"+d.value; return d })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[133] DECIMAL_POSITIVE");
@@ -33484,30 +24257,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "+") {
- var result2 = "+";
+ var result3 = "+";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"+\"");
}
}
- if (result2 !== null) {
- var result3 = parse_DOUBLE();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_DOUBLE();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "+"+d.value; return d })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[134] DOUBLE_POSITIVE");
@@ -33531,30 +24311,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "-") {
- var result2 = "-";
+ var result3 = "-";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result2 !== null) {
- var result3 = parse_INTEGER();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_INTEGER();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[135] INTEGER_NEGATIVE");
@@ -33578,30 +24365,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "-") {
- var result2 = "-";
+ var result3 = "-";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result2 !== null) {
- var result3 = parse_DECIMAL();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_DECIMAL();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[136] DECIMAL_NEGATIVE");
@@ -33625,30 +24419,37 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "-") {
- var result2 = "-";
+ var result3 = "-";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"-\"");
}
}
- if (result2 !== null) {
- var result3 = parse_DOUBLE();
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result3 !== null) {
+ var result4 = parse_DOUBLE();
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(d) { d.value = "-"+d.value; return d; })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[137] DOUBLE_NEGATIVE");
@@ -33672,70 +24473,77 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos).match(/^[eE]/) !== null) {
- var result2 = input.charAt(pos);
+ var result3 = input.charAt(pos);
pos++;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("[eE]");
}
}
- if (result2 !== null) {
+ if (result3 !== null) {
if (input.substr(pos).match(/^[+\-]/) !== null) {
- var result6 = input.charAt(pos);
+ var result7 = input.charAt(pos);
pos++;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("[+\\-]");
}
}
- var result3 = result6 !== null ? result6 : '';
- if (result3 !== null) {
+ var result4 = result7 !== null ? result7 : '';
+ if (result4 !== null) {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result5 !== null) {
- var result4 = [];
- while (result5 !== null) {
- result4.push(result5);
+ if (result6 !== null) {
+ var result5 = [];
+ while (result6 !== null) {
+ result5.push(result6);
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
}
} else {
- var result4 = null;
+ var result5 = null;
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(a, b, c) { return flattenString([a,b,c]) })(result1[0], result1[1], result1[2])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[138] EXPONENT");
@@ -33759,85 +24567,92 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "'") {
- var result2 = "'";
+ var result3 = "'";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"'\"");
}
}
- if (result2 !== null) {
- var result3 = [];
+ if (result3 !== null) {
+ var result4 = [];
if (input.substr(pos).match(/^[^'\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^'\\\\\\n\\r]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
- while (result5 !== null) {
- result3.push(result5);
+ while (result6 !== null) {
+ result4.push(result6);
if (input.substr(pos).match(/^[^'\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^'\\\\\\n\\r]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 1) === "'") {
- var result4 = "'";
+ var result5 = "'";
pos += 1;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\"'\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(content) { return flattenString(content) })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[139] STRING_LITERAL1");
@@ -33861,85 +24676,92 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "\"") {
- var result2 = "\"";
+ var result3 = "\"";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"\\\"\"");
}
}
- if (result2 !== null) {
- var result3 = [];
+ if (result3 !== null) {
+ var result4 = [];
if (input.substr(pos).match(/^[^"\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^\"\\\\\\n\\r]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
- while (result5 !== null) {
- result3.push(result5);
+ while (result6 !== null) {
+ result4.push(result6);
if (input.substr(pos).match(/^[^"\\\n\r]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^\"\\\\\\n\\r]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 1) === "\"") {
- var result4 = "\"";
+ var result5 = "\"";
pos += 1;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\"\\\"\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(content) { return flattenString(content) })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[140] STRING_LITERAL2");
@@ -33963,85 +24785,92 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 3) === "'''") {
- var result2 = "'''";
+ var result3 = "'''";
pos += 3;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"'''\"");
}
}
- if (result2 !== null) {
- var result3 = [];
+ if (result3 !== null) {
+ var result4 = [];
if (input.substr(pos).match(/^[^'\\]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^'\\\\]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
- while (result5 !== null) {
- result3.push(result5);
+ while (result6 !== null) {
+ result4.push(result6);
if (input.substr(pos).match(/^[^'\\]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^'\\\\]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 3) === "'''") {
- var result4 = "'''";
+ var result5 = "'''";
pos += 3;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\"'''\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(content) { return flattenString(content) })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[141] STRING_LITERAL_LONG1");
@@ -34065,85 +24894,92 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 3) === "\"\"\"") {
- var result2 = "\"\"\"";
+ var result3 = "\"\"\"";
pos += 3;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"\\\"\\\"\\\"\"");
}
}
- if (result2 !== null) {
- var result3 = [];
+ if (result3 !== null) {
+ var result4 = [];
if (input.substr(pos).match(/^[^"\\]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^\"\\\\]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
- while (result5 !== null) {
- result3.push(result5);
+ while (result6 !== null) {
+ result4.push(result6);
if (input.substr(pos).match(/^[^"\\]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[^\"\\\\]");
}
}
- if (result7 !== null) {
- var result5 = result7;
+ if (result8 !== null) {
+ var result6 = result8;
} else {
- var result6 = parse_ECHAR();
- if (result6 !== null) {
- var result5 = result6;
+ var result7 = parse_ECHAR();
+ if (result7 !== null) {
+ var result6 = result7;
} else {
- var result5 = null;;
+ var result6 = null;;
};
}
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 3) === "\"\"\"") {
- var result4 = "\"\"\"";
+ var result5 = "\"\"\"";
pos += 3;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\"\\\"\\\"\\\"\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(content) { return flattenString(content) })(result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[142] STRING_LITERAL_LONG2");
@@ -34219,47 +25055,48 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
+ var savedPos1 = pos;
if (input.substr(pos, 1) === "(") {
- var result2 = "(";
+ var result3 = "(";
pos += 1;
} else {
- var result2 = null;
+ var result3 = null;
if (reportMatchFailures) {
matchFailed("\"(\"");
}
}
- if (result2 !== null) {
- var result3 = [];
- var result5 = parse_WS();
- while (result5 !== null) {
- result3.push(result5);
- var result5 = parse_WS();
+ if (result3 !== null) {
+ var result4 = [];
+ var result6 = parse_WS();
+ while (result6 !== null) {
+ result4.push(result6);
+ var result6 = parse_WS();
}
- if (result3 !== null) {
+ if (result4 !== null) {
if (input.substr(pos, 1) === ")") {
- var result4 = ")";
+ var result5 = ")";
pos += 1;
} else {
- var result4 = null;
+ var result5 = null;
if (reportMatchFailures) {
matchFailed("\")\"");
}
}
- if (result4 !== null) {
- var result1 = [result2, result3, result4];
+ if (result5 !== null) {
+ var result1 = [result3, result4, result5];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function() {
return {token: "triplesnodecollection",
@@ -34267,6 +25104,12 @@ SparqlParser.parser = (function(){
chainSubject:[{token:'uri', value:"http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"}]};
})()
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[144] NIL");
@@ -34744,159 +25587,166 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result11 = parse_PN_CHARS_U();
- if (result11 !== null) {
- var result2 = result11;
+ var savedPos1 = pos;
+ var result12 = parse_PN_CHARS_U();
+ if (result12 !== null) {
+ var result3 = result12;
} else {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result10 = input.charAt(pos);
+ var result11 = input.charAt(pos);
pos++;
} else {
- var result10 = null;
+ var result11 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result10 !== null) {
- var result2 = result10;
+ if (result11 !== null) {
+ var result3 = result11;
} else {
- var result2 = null;;
+ var result3 = null;;
};
}
- if (result2 !== null) {
- var result3 = [];
- var result9 = parse_PN_CHARS_U();
- if (result9 !== null) {
- var result4 = result9;
+ if (result3 !== null) {
+ var result4 = [];
+ var result10 = parse_PN_CHARS_U();
+ if (result10 !== null) {
+ var result5 = result10;
} else {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result8 !== null) {
- var result4 = result8;
+ if (result9 !== null) {
+ var result5 = result9;
} else {
if (input.substr(pos).match(/^[\xB7]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[\\xB7]");
}
}
- if (result7 !== null) {
- var result4 = result7;
+ if (result8 !== null) {
+ var result5 = result8;
} else {
if (input.substr(pos).match(/^[\u0300-\u036F]/) !== null) {
- var result6 = input.charAt(pos);
+ var result7 = input.charAt(pos);
pos++;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("[\\u0300-\\u036F]");
}
}
- if (result6 !== null) {
- var result4 = result6;
+ if (result7 !== null) {
+ var result5 = result7;
} else {
if (input.substr(pos).match(/^[\u203F-\u2040]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[\\u203F-\\u2040]");
}
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
};
};
}
- while (result4 !== null) {
- result3.push(result4);
- var result9 = parse_PN_CHARS_U();
- if (result9 !== null) {
- var result4 = result9;
+ while (result5 !== null) {
+ result4.push(result5);
+ var result10 = parse_PN_CHARS_U();
+ if (result10 !== null) {
+ var result5 = result10;
} else {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result8 = input.charAt(pos);
+ var result9 = input.charAt(pos);
pos++;
} else {
- var result8 = null;
+ var result9 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result8 !== null) {
- var result4 = result8;
+ if (result9 !== null) {
+ var result5 = result9;
} else {
if (input.substr(pos).match(/^[\xB7]/) !== null) {
- var result7 = input.charAt(pos);
+ var result8 = input.charAt(pos);
pos++;
} else {
- var result7 = null;
+ var result8 = null;
if (reportMatchFailures) {
matchFailed("[\\xB7]");
}
}
- if (result7 !== null) {
- var result4 = result7;
+ if (result8 !== null) {
+ var result5 = result8;
} else {
if (input.substr(pos).match(/^[\u0300-\u036F]/) !== null) {
- var result6 = input.charAt(pos);
+ var result7 = input.charAt(pos);
pos++;
} else {
- var result6 = null;
+ var result7 = null;
if (reportMatchFailures) {
matchFailed("[\\u0300-\\u036F]");
}
}
- if (result6 !== null) {
- var result4 = result6;
+ if (result7 !== null) {
+ var result5 = result7;
} else {
if (input.substr(pos).match(/^[\u203F-\u2040]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[\\u203F-\\u2040]");
}
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
};
};
};
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(init, rpart) { return init+rpart.join('') })(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[149] VARNAME");
@@ -35013,67 +25863,74 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result2 = parse_PN_CHARS_BASE();
- if (result2 !== null) {
- var result3 = [];
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
+ var savedPos1 = pos;
+ var result3 = parse_PN_CHARS_BASE();
+ if (result3 !== null) {
+ var result4 = [];
+ var result7 = parse_PN_CHARS();
+ if (result7 !== null) {
+ var result5 = result7;
} else {
if (input.substr(pos, 1) === ".") {
- var result5 = ".";
+ var result6 = ".";
pos += 1;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
}
- while (result4 !== null) {
- result3.push(result4);
- var result6 = parse_PN_CHARS();
- if (result6 !== null) {
- var result4 = result6;
+ while (result5 !== null) {
+ result4.push(result5);
+ var result7 = parse_PN_CHARS();
+ if (result7 !== null) {
+ var result5 = result7;
} else {
if (input.substr(pos, 1) === ".") {
- var result5 = ".";
+ var result6 = ".";
pos += 1;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("\".\"");
}
}
- if (result5 !== null) {
- var result4 = result5;
+ if (result6 !== null) {
+ var result5 = result6;
} else {
- var result4 = null;;
+ var result5 = null;;
};
}
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(base, rest) { if(rest[rest.length-1] == '.'){
throw new Error("Wrong PN_PREFIX, cannot finish with '.'")
} else {
return base + rest.join('');
}})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[151] PN_PREFIX");
@@ -35097,47 +25954,54 @@ SparqlParser.parser = (function(){
var savedReportMatchFailures = reportMatchFailures;
reportMatchFailures = false;
var savedPos0 = pos;
- var result6 = parse_PN_CHARS_U();
- if (result6 !== null) {
- var result2 = result6;
+ var savedPos1 = pos;
+ var result7 = parse_PN_CHARS_U();
+ if (result7 !== null) {
+ var result3 = result7;
} else {
if (input.substr(pos).match(/^[0-9]/) !== null) {
- var result5 = input.charAt(pos);
+ var result6 = input.charAt(pos);
pos++;
} else {
- var result5 = null;
+ var result6 = null;
if (reportMatchFailures) {
matchFailed("[0-9]");
}
}
- if (result5 !== null) {
- var result2 = result5;
+ if (result6 !== null) {
+ var result3 = result6;
} else {
- var result2 = null;;
+ var result3 = null;;
};
}
- if (result2 !== null) {
- var result3 = [];
- var result4 = parse_PN_CHARS();
- while (result4 !== null) {
- result3.push(result4);
- var result4 = parse_PN_CHARS();
+ if (result3 !== null) {
+ var result4 = [];
+ var result5 = parse_PN_CHARS();
+ while (result5 !== null) {
+ result4.push(result5);
+ var result5 = parse_PN_CHARS();
}
- if (result3 !== null) {
- var result1 = [result2, result3];
+ if (result4 !== null) {
+ var result1 = [result3, result4];
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
} else {
var result1 = null;
- pos = savedPos0;
+ pos = savedPos1;
}
- var result0 = result1 !== null
+ var result2 = result1 !== null
? (function(base, rest) {
return base + rest.join('');
})(result1[0], result1[1])
: null;
+ if (result2 !== null) {
+ var result0 = result2;
+ } else {
+ var result0 = null;
+ pos = savedPos0;
+ }
reportMatchFailures = savedReportMatchFailures;
if (reportMatchFailures && result0 === null) {
matchFailed("[152] PN_LOCAL");
@@ -35341,9 +26205,57 @@ SparqlParser.parser = (function(){
result.SyntaxError.prototype = Error.prototype;
return result;
-})();
+})();
+// end of ./src/js-sparql-parser/src/sparql_parser.js
+// exports
+var TurtleParser = {};
+
+var statementCounter = 0;
+var timer = new Date().getTime();
+var printTime = function() {
+ var newTimer = new Date().getTime();
+ console.log("ellapsed: "+((newTimer-timer)/1000)+" secs");
+ timer = newTimer;
+};
+
+// imports
+
+TurtleParser.combined_parser = SparqlParser.parser;
+
+TurtleParser.parser = {};
+TurtleParser.parser.parse = function(data, graph) {
+ var quads = [];
+
+ var result = TurtleParser.combined_parser.parse(data);
+ var namespaces = {};
+ var env = {namespaces: namespaces, base:'', blankCounter: 0};
+
+ statementCounter = 0;
+
+ for(var i=0; i";
}
return tmp;
@@ -35935,8 +26854,8 @@ RDFJSInterface.buildRDFResource = function(value, bindings, engine, env) {
};
RDFJSInterface.buildBlankNode = function(value, bindings, engine, env) {
- if(value.value == null && value.label) {
- value.value = value.label;
+ if(value.valuetmp != null) {
+ value.value = value.valuetmp;
}
if(value.value.indexOf("_:") === 0) {
value.value = value.value.split("_:")[1];
@@ -35970,7 +26889,7 @@ var QueryFilters = {};
// imports
-QueryFilters.checkFilters = function(pattern, bindings, nullifyErrors, queryEnv, queryEngine) {
+QueryFilters.checkFilters = function(pattern, bindings, nullifyErrors, dataset, queryEnv, queryEngine) {
var filters = pattern.filter;
var nullified = [];
@@ -35981,7 +26900,7 @@ QueryFilters.checkFilters = function(pattern, bindings, nullifyErrors, queryEnv,
for(var i=0; i true/false/error
var ebv = QueryFilters.ebv(ebv);
@@ -36086,12 +27005,12 @@ QueryFilters.run = function(filterExpr, bindings, nullifyFilters, env, queryEngi
return filteredBindings;
};
-QueryFilters.collect = function(filterExpr, bindings, env, queryEngine, callback) {
+QueryFilters.collect = function(filterExpr, bindings, dataset, env, queryEngine, callback) {
var denormBindings = queryEngine.copyDenormalizedBindings(bindings, env.outCache);
var filteredBindings = [];
for(var i=0; i0
}
}
- return QueryPlan.buildBushyJoinTreeBranches(acum);
+ return 0;
};
-// @todo
-// remove recursion here
-QueryPlan.buildBushyJoinTreeBranches = function(bindingsList) {
- if(bindingsList.length === 1){
- return bindingsList[0];
- } else {
- var pairs = Utils.partition(bindingsList,2);
- var acum = [];
- for(var i=0; i "+treeNode.i);
+ //console.log("** left:");
+ //console.log(resultsLeft);
+ //console.log("** right:");
+ //console.log(resultsRight);
+ //console.log("JOINING...");
+ //console.log(resultsLeft);
+ //console.log(resultsRight);
+ //console.log("--------------");
+ var bindings = QueryPlanDPSize.joinBindings2(treeNode.join, resultsLeft, resultsRight);
+ //var bindings = QueryPlanDPSize.joinBindings(resultsLeft, resultsRight);
+ //console.log(bindings);
+ return bindings;
} else {
- return QueryPlan.joinBindings(bindingsa,bindingsb);
+ return null;
}
}
}
};
-QueryPlan.executeAndBGP = function(bgpa, bgpb, dataset, queryEngine, queryEnv) {
- if(bgpa==null) {
- return QueryPlan.executeEmptyJoinBGP(bgpb, dataset, queryEngine, queryEnv);
- } else if(bgpb==null) {
- return QueryPlan.executeEmptyJoinBGP(bgpa, dataset, queryEngine, queryEnv);
- } else {
- var joinVars = QueryPlan.variablesIntersectionBGP(bgpa,bgpb);
- if(joinVars.length === 0) {
- // range a, range b -> cartesian product
- return QueryPlan.executeCrossProductBGP(joinVars, bgpa, bgpb, dataset, queryEngine, queryEnv);
- } else {
- // join on intersection vars
- return QueryPlan.executeJoinBGP(joinVars, bgpa, bgpb, dataset, queryEngine, queryEnv);
+
+//@modified dp
+QueryPlanDPSize.executeAndBGPsDPSize = function(allBgps, dataset, queryEngine, env) {
+ var groups = QueryPlanDPSize.executeAndBGPsGroups(allBgps);
+ var groupResults = [];
+ for(var g=0; gplan.cost) {
+ maxPlan = plan;
+ }
+ }
+
+ //console.log("BEST PLANS");
+ //console.log(bestPlans);
+
+ // dynamic programming -> build plans of increasing size
+ for(var s=2; s<=bgps.length; s++) { // size
+ //console.log("\n\n\n*********************ITERATION");
+ //console.log(s);
+ for(var sl=1; sl currPlan.cost) {
+ if(maxSize === s) {
+ maxPlan = currPlan;
+ }
+ bestPlans[currPlan.i] = currPlan;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
+
+ //console.log(sizes);
+
+ //console.log("==== FOUND ===");
+ //console.log(maxPlan);
+ groupResults.push(maxPlan);
}
-};
-QueryPlan.executeEmptyJoinBGP = function(bgp, dataset, queryEngine, queryEnv) {
- return QueryPlan.executeBGPDatasets(bgp, dataset, queryEngine, queryEnv);
-};
-QueryPlan.executeJoinBGP = function(joinVars, bgpa, bgpb, dataset, queryEngine, queryEnv) {
- var bindingsa = QueryPlan.executeBGPDatasets(bgpa, dataset, queryEngine, queryEnv);
- if(bindingsa!=null) {
- var bindingsb = QueryPlan.executeBGPDatasets(bgpb, dataset, queryEngine, queryEnv);
- if(bindingsb!=null) {
- return QueryPlan.joinBindings(bindingsa, bindingsb);
+ // now execute the Bushy trees and perform
+ // cross products between groups
+ var acum = null;
+
+ for(var g=0; g 0) {
for(var i=0; i ?p ?o } WHERE { GRAPH <" + graphUri + "> { <" + uri + "> ?p ?o } }";
var that = this;
var queryEnv = {blanks:{}, outCache:{}};
+ this.engine.registerNsInEnvironment(null, queryEnv);
var bindings = [];
this.engine.execute(query, function(success, graph){
if(success) {
@@ -39866,6 +31331,7 @@ Callbacks.CallbacksBackend.prototype.observeQuery = function(query, callback, en
var patterns = this.aqt.collectBasicTriples(parsedTree);
var that = this;
var queryEnv = {blanks:{}, outCache:{}};
+ this.engine.registerNsInEnvironment(null, queryEnv);
var floop, pattern, quad, indexKey, indexOrder, index;
var counter = this.queryCounter;
@@ -39887,8 +31353,8 @@ Callbacks.CallbacksBackend.prototype.observeQuery = function(query, callback, en
indexOrder = that.componentOrders[indexKey];
index = that.queriesIndexMap[indexKey];
- for(var i=0; i
+ *
+ * The first argument to this function is the URL/FS location
+ * of the store script.
+ *
+ *
+ * This parameter is mandatory in the browser. It is safe to
+ * ignore this parameter in Node.js.
+ *
+ *
+ * If support for web workers is not present, a regular
+ * store object will be initialized and returned.
+ *
+ *
+ *
+ * @param {String} [scriptPath] URL of the RDFStore script
+ * @param {Object[]} [args] Arguments to be passed to the store that will be created
+ * @param {Function} callback Callback function that will be invoked with an error flag and the connection/store object.
+ */
+Store.connect = function() {
+ var path, args, callback;
+ if(arguments.length == 1) {
+ path = __dirname;
+ args = {};
+ callback = arguments[0];
+ } if(arguments.length == 2) {
+ if(typeof(arguments[0]) === 'string') {
+ path = arguments[0];
+ args = {};
+ } else {
+ path = __dirname+"/index.js";
+ args = arguments[0];
+ }
+ callback = arguments[1];
+ } else {
+ path = arguments[0];
+ args = arguments[1];
+ callback = arguments[2];
+ }
+ try {
+ if(!!Worker) {
+ new RDFStoreClient.RDFStoreClient(path, args, function(success,connection) {
+ callback(success, connection);
+ });
+ } else {
+ Store.create(args,function(connection){
+ callback(false, connection);
+ });
+ }
+ } catch(e) {
+ Store.create(args,function(connection){
+ callback(false, connection);
+ });
+ }
+};
+/**
+ * Creates a new instance of the store.
+ *
+ * The function accepts two optional arguments.
+ *
+ * If only one argument is passed it must be a
+ * callback function that will be invoked when the
+ * store had been created.
+ *
+ * If two arguments are passed the first one must
+ * be a map of configuration parameters for the
+ * store, and the second one the callback function.
+ *
+ * Take a look at the Store constructor function for
+ * a detailed list of possible configuration parameters.
+ *
+ * @param {Object[]} [args] Arguments to be passed to the store that will be created
+ * @param {Function} [callback] Callback function that will be invoked with an error flag and the connection/store object.
+ */
Store.create = function(){
if(arguments.length == 1) {
return new Store.Store(arguments[0]);
@@ -40002,6 +32021,27 @@ Store.create = function(){
};
};
+/**
+ * Creates a new store.
+ *
+ * It accepts two optional arguments, a map of configuration
+ * options for the store and a callback function.
+ *
+ * @constructor
+ * @param {Function} [callback] Callback that will be invoked when the store has been created
+ * @param {Object} [params]
+ *
+ *
persistent: should the store use persistence?
+ *
treeOrder: in versions of the store backed by the native indexing system, the order of the BTree indices
+ *
name: when using persistence, the name for this store. In the MongoDB backed version, name of the DB used by the store. By default 'rdfstore_js' is used
+ *
overwrite: clears the persistent storage
+ *
maxCacheSize: if using persistence, maximum size of the index cache
+ *
engine: the persistent storage to use, a value mongodb selects the MongoDB engine
+ *
mongoDomain: when engine=mongodb, server domain name or IP address where the MongoDB server backing the store is running. By default '127.0.0.1' is used
+ *
mongoPort: when engine=mongodb, port where the MongoDB server is running. By default 27017 is used
+ *
mongoOptions: when engine=mongodb, additional options for the MongoDB driver. By default {} is used
+ *
+ */
Store.Store = function(arg1, arg2) {
var callback = null;
var params = null;
@@ -40022,43 +32062,77 @@ Store.Store = function(arg1, arg2) {
params['treeOrder'] = 15;
}
- this.rdf = RDFJSInterface.rdf;
this.functionMap = {};
var that = this;
- new Lexicon.Lexicon(function(lexicon){
- new QuadBackend.QuadBackend(params, function(backend){
- params.backend = backend;
- params.lexicon =lexicon;
- that.engine = new QueryEngine.QueryEngine(params);
- if(callback) {
+ if(params['engine']==='mongodb') {
+ this.isMongodb = true;
+ this.engine = new MongodbQueryEngine.MongodbQueryEngine(params);
+ this.engine.readConfiguration(function(){
+ if(params['overwrite'] === true) {
+ that.engine.clean(function(){
+ callback(that);
+ });
+ } else {
callback(that);
}
- })
- });
+ });
+ } else {
+ new Lexicon.Lexicon(function(lexicon){
+ if(params['overwrite'] === true) {
+ // delete lexicon values
+ lexicon.clear();
+ }
+ new QuadBackend.QuadBackend(params, function(backend){
+ if(params['overwrite'] === true) {
+ // delete index values
+ backend.clear();
+ }
+ params.backend = backend;
+ params.lexicon =lexicon;
+ that.engine = new QueryEngine.QueryEngine(params);
+ if(callback) {
+ callback(that);
+ }
+ });
+ },params['name']);
+ }
};
/**
- * Executes a query in the store.
- * There are two possible way of invoking this function,
+ * An instance of RDF JS Interface RDFEnvironment
+ * associated to this graph instance.
+ */
+Store.Store.prototype.rdf = RDFJSInterface.rdf;
+
+/**
+ * Executes a query in the store.
+ *
+ * There are two possible ways of invoking this function,
* providing a pair of arrays of namespaces that will be
* used to compute the union of the default and named
* dataset, or without them.
+ *
+ *
* Both invocations receive as an optional last parameter
* a callback function that will receive the return status
* of the query and the results.
- *
- * @arguments:
- * 1)
- * - query
- * - callback (optional)
- *
- * 2)
- * - query
- * - URIs default namespaces
- * - URIs named namespaces
- * - callback (optional)
+ *
+ *
+ * Results can have different formats:
+ *
+ *
SELECT queries: array of binding maps
+ *
CONSTRUCT queries: RDF JS Interface Graph object
+ *
ASK queries: JS boolean value
+ *
LOAD/INSERT... queries: Number of triples modified/inserted
+ *
+ *
+ * @arguments:
+ * @param {String} query
+ * @param {String} [defaultURIs] default namespaces
+ * @param {String} [namespacesURIs] named namespaces
+ * @param {Function} [callback]
*/
Store.Store.prototype.execute = function() {
if(arguments.length === 3) {
@@ -40077,7 +32151,7 @@ Store.Store.prototype.execute = function() {
if(arguments.length === 1) {
queryString = arguments[0];
- callback = function(){};
+ var callback = function(){};
} else if(arguments.length === 2) {
queryString = arguments[0];
callback = arguments [1];
@@ -40086,27 +32160,59 @@ Store.Store.prototype.execute = function() {
}
};
+/**
+ * A variation of the execute function that expects
+ * arguments containing values for the default and named
+ * graphs that will be used in the query.
+ *
+ *
+ * @arguments:
+ * @param {String} query
+ * @param {String} URIs default namespaces
+ * @param {String} URIs named namespaces
+ * @param {Function} [callback]
+ */
Store.Store.prototype.executeWithEnvironment = function() {
- var queryString;
- var callback;
- var defaultGraphs;
- var namedGraphs;
+ var queryString, defaultGraphs, namedGraphs;
if(arguments.length === 3) {
- queryString = arguments[0];
- callback = function(){};
+ queryString = arguments[0];
+ // JSDoc fails if this is pushed outside
+ var callback = function(){};
defaultGraphs = arguments[1];
- namedGraphs = arguments[2];
+ namedGraphs = arguments[2];
} else if(arguments.length === 4) {
- queryString = arguments[0];
- callback = arguments [3];
+ queryString = arguments[0];
+ var callback = arguments [3];
defaultGraphs = arguments[1];
- namedGraphs = arguments[2];
-
+ namedGraphs = arguments[2];
+ }
+ var defaultGraphsNorm = [];
+ var namedGraphsNorm = [];
+ for(var i=0; i
+ *
+ * The function accepts as mandatory parameter a callback
+ * function that will receive the a success notification and the returned graph.
+ *
+ * Optionally, the URI of the graph can also be passed as
+ * the first argument. If no graph is specified, the
+ * default graph will be returned.
+ *
+ * @arguments
+ * @param {String} [graphURI] If this parameter is missing, the default graph will be returned
+ * @param {Functon} callback
+ */
Store.Store.prototype.graph = function() {
var graphUri = null;
var callback = null;
@@ -40127,9 +32233,28 @@ Store.Store.prototype.graph = function() {
this.engine.execute("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <" + graphUri + "> { ?s ?p ?o } }", callback);
};
-
+/**
+ * Retrieves all the quads belonging to a certain node
+ * in the store as a RDF JS Interface Graph object containing
+ * the collection of triples whose subject is the provided
+ * node URI.
+ *
+ * The function accepts as mandatory parameters the node URI and
+ * a callback unction that will receive a success notification and the returned node.
+ *
+ * Optionally, the URI of the graph where the node is contained
+ * can also be passed as the first argument.
+ *
+ * If no graph is specified, the node will be looked into the
+ * default graph.
+ *
+ * @arguments
+ * @param {String} nodeURI URI of the node to look for
+ * @param {String} [graphURI] If this parameter is missing, the node will be looked into the default graph
+ * @param {Functon} callback
+ */
Store.Store.prototype.node = function() {
- var graphUri = null;
+ var graphUri = null;
var callback = null;
var nodeUri = null;
if(arguments.length === 2) {
@@ -40141,7 +32266,7 @@ Store.Store.prototype.node = function() {
graphUri = arguments[1];
callback = arguments[2] || function(){};
} else {
- throw("An optional graph URI and a callback function must be provided");
+ throw("An optional graph URI, node URI and a callback function must be provided");
}
if(this.rdf.resolve(graphUri) != null) {
@@ -40155,6 +32280,30 @@ Store.Store.prototype.node = function() {
this.engine.execute("CONSTRUCT { <" + nodeUri + "> ?p ?o } WHERE { GRAPH <" + graphUri + "> { <" + nodeUri + "> ?p ?o } }", callback);
};
+/**
+ * Associates an event listener function to a node URI. Every time the collection
+ * of triples whose subject is the specified node URI changes, because an
+ * insertion or deletion, the provided callback function will be invoked
+ * receiving as a parameter a RDF JS Interface Graph object with the new
+ * collection of triples.
+ *
+ * The function accepts two mandatory arguments, the URI of the node to observe
+ * and the function that will receive the event notifications. An optional
+ * third parameter, consisting of a callback function, can be passed and will be invoked
+ * once the store had correctly configured the event listener.
+ *
+ * LOAD queries, batch loading data into the store, do not
+ * trigger events by default. If you wish to be notified
+ * by changes triggered by this kind of queries, invoke
+ * the *setBatchLoadEvents* function with a true argument.
+ *
+ * The event listener function can be removed using the stopObservingNode function.
+ *
+ * @arguments
+ * @param {String} nodeURI URI of the node to observe
+ * @param {Function} eventListener Function that will be notified with the events
+ * @param {Function} [callback] Function that will be invoked, once the event listener had been correctly set up.
+ */
Store.Store.prototype.startObservingNode = function() {
var uri, graphUri, callback;
@@ -40170,10 +32319,38 @@ Store.Store.prototype.startObservingNode = function() {
}
};
+/**
+ * Removes a callback function associated to a node.
+ * The event listener function object must be passed as an argument.
+ *
+ * @arguments
+ * @param {Function} eventListener The event listener function to remove, the same passed as an argument to startObservingNode
+ */
Store.Store.prototype.stopObservingNode = function(callback) {
this.engine.callbacksBackend.stopObservingNode(callback);
};
+/**
+ * Associates an event listener function to a SPARQL SELECT or
+ * CONSTRUCT query.
+ * Every time an update (insert, delete...) query modified the
+ * triples in the store in a way that modifies the output of the
+ * query, the event listener will be invoked with an updated
+ * result.
+ *
+ * LOAD queries, batch loading data into the store, do not
+ * trigger events by default. If you wish to be notified
+ * by changes triggered by this kind of queries, invoke
+ * the setBatchLoadEvents function with a true argument.
+ *
+ * The event listener function can be removed invoking the
+ * stopObservingQuery function.
+ *
+ * @arguments
+ * @param {String} query SELECT or CONSTRUCT SPARQL query
+ * @param {Function} eventListener the function that will receive the notifications
+ * @param {Function} [callback] optional function that will be invoked when the stored had set up the event listener function.
+ */
Store.Store.prototype.startObservingQuery = function() {
var query = arguments[0];
var callback = arguments[1];
@@ -40185,10 +32362,40 @@ Store.Store.prototype.startObservingQuery = function() {
}
};
+/**
+ * Removes a callback function associated to a SPARQL query.
+ * The event listener function object must be passed as an argument.
+ *
+ * @arguments
+ * @param {Function} eventListener The event listener function to remove, the same passed as an argument to startObservingQuery
+ */
Store.Store.prototype.stopObservingQuery = function(query) {
this.engine.callbacksBackend.stopObservingQuery(query);
};
+/**
+ * Associates an event listener to a pattern expressed as the
+ * subject, predicate, object and graph string parameters passed
+ * to the function. To match any value in that position, a null
+ * value can be passed as an argument. e.g. subscribe(null, null, null, g, cb),
+ * will be notified with any change in the g graph.
+ * The graph component of the pattern does not support a null value.
+ *
+ * Results will be notified as an Array of RDF JS Interface
+ * Triple objects.
+ *
+ * LOAD queries, batch loading data into the store, do not
+ * trigger events by default. If you wish to be notified
+ * by changes triggered by this kind of queries, invoke
+ * the setBatchLoadEvents function with a true argument.
+ *
+ * @arguments
+ * @param {String} s subject or null for any subject
+ * @param {String} p predicate or null for any predicate
+ * @param {String} o object or null for any object
+ * @param {String} g graph or null for any graph
+ * @param {Function} event listener function that will be notified when a change occurs
+ */
Store.Store.prototype.subscribe = function(s, p, o, g, callback) {
var adapterCb = function(event,triples){
var acum = [];
@@ -40207,26 +32414,68 @@ Store.Store.prototype.subscribe = function(s, p, o, g, callback) {
}
callback(event,acum);
- }
+ };
this.functionMap[callback] = adapterCb;
this.engine.callbacksBackend.subscribe(s,p,o,g,adapterCb,function(){});
};
+/**
+ * Removes an event listener associated to a certain pattern.
+ * The function passed as an argument to subscribe must be
+ * passed as an argument.
+ *
+ * @arguments
+ * @param {Function} callback The event listener to be removed
+ */
Store.Store.prototype.unsubscribe = function(callback) {
var adapterCb = this.functionMap[callback];
this.engine.callbacksBackend.unsubscribe(adapterCb);
delete this.functionMap[callback];
};
+/**
+ * Register a combination of prefix and URI fragment in the default instance
+ * of the RDF JS Interface API RDFEnvironment object associated
+ * to the store and available through the storeInstance.rdf property.
+ *
+ * @arguments
+ * @param {String} prefix The prefix to be associated
+ * @param {String} URIFragment URI fragment the provided prefix will be resolved
+ */
Store.Store.prototype.setPrefix = function(prefix, uri) {
- this.rdf.setPrefix(prefix, uri)
+ this.rdf.setPrefix(prefix, uri);
};
+/**
+ * Defines the URI that will be used by default by the RDF JS Interface
+ * API RDFEnvironment object associated to the store and available
+ * through the storeInstance.rdf property.
+ *
+ * @arguments
+ * @param {String} URIFragment The URI fragment will be used by default
+ */
Store.Store.prototype.setDefaultPrefix = function(uri) {
- this.rdf.setDefaultPrefix(uri)
+ this.rdf.setDefaultPrefix(uri);
};
+/**
+ * Inserts a RDF JS Interface API Graph object into the store.
+ * The function receives a mandatory Graph object whose triples
+ * will be inserted. Optionally, a URI string for a graph and a
+ * callback function can be passed as arguments.
+ *
+ * If no graph URI is specified, triples will be inserted into the
+ * default graph.
+ *
+ * If the callback function is specified, it will be invoked when all the
+ * triples had been inserted into the store.
+ *
+ * @arguments
+ * @param {RDFJSInterface.Graph} triples a RDF JS Interface Graph object
+ * @param {String} [graphURI] URI of the graph where the triples will be inserted. If it is missing, triples will be inserted in the default graph
+ * @param {String} [callback] A callback function that will be invoked with a success notification and the number of triples inserted
+ */
Store.Store.prototype.insert = function() {
var graph;
var triples;
@@ -40271,11 +32520,34 @@ Store.Store.prototype._nodeToQuery = function(term) {
} else if(term.interfaceName === '') {
return term.toString();
} else {
+ if(term.lang != null) {
+ return "\""+term.valueOf()+"\"@"+term.lang;
+ } else if(term.datatype != null) {
+ return "\""+term.valueOf()+"\"^^<"+term.datatype+">";
+ }
return term.toString();
}
};
+/**
+ * Removes the triples in a RDF JS Interface API Graph object from the store.
+ * The function receives a mandatory Graph object whose triples
+ * will be removed. Optionally, a URI string for a graph and a
+ * callback function can be passed as arguments.
+ *
+ * If no graph URI is specified, triples will be removed from the
+ * default graph.
+ *
+ * If the callback function is specified, it will be invoked when all the
+ * triples had been removed from the store.
+ *
+ * @arguments
+ * @param {RDFJSInterface.Graph} triples a RDF JS Interface Graph object
+ * @param {String} [graphURI] URI of the graph where the triples will be removed from. If it is missing, triples will be removed from the default graph
+ * @param {String} [callback] A callback function that will be invoked with a success notification
+ */
Store.Store.prototype['delete'] = function() {
+
var graph;
var triples;
var callback;
@@ -40308,11 +32580,27 @@ Store.Store.prototype['delete'] = function() {
this.engine.execute(query, callback);
};
+/**
+ * Removes all the triples stored in a graph.
+ *
+ * The URI of the graph and a callback function can be
+ * optinally passed as parameters.
+ *
+ * If no graph URI is specified, all triples in the
+ * default graph will be removed.
+ *
+ * @arguments
+ * @param {String} [graph] the URI of the graph the triples must be removed from
+ * @param {Function} [callback] a function that will be invoked with a success notification
+ */
Store.Store.prototype.clear = function() {
var graph;
var callback;
- if(arguments.length === 1) {
+ if(arguments.length === 0) {
+ graph = this.rdf.createNamedNode(this.engine.lexicon.defaultGraphUri);
+ var callback= function(){};
+ } else if(arguments.length === 1) {
graph = this.rdf.createNamedNode(this.engine.lexicon.defaultGraphUri);
callback= arguments[0] || function(){};
} else if(arguments.length === 2) {
@@ -40326,7 +32614,70 @@ Store.Store.prototype.clear = function() {
this.engine.execute(query, callback);
};
+/**
+ * Boolean value determining if loading RDF must produce
+ * triple add events and fire callbacks.
+ * Default value is false.
+ *
+ * @arguments
+ * @param {boolean} mustFireEvents true/false value.
+ */
+Store.Store.prototype.setBatchLoadEvents = function(mustFireEvents){
+ this.engine.eventsOnBatchLoad = mustFireEvents;
+};
+
+/**
+ * Registers a namespace prefix that will be automatically declared
+ * in all the queries.
+ *
+ * The prefix will also be inserte in the default RDFEnvironment object
+ * associated to the rdf property of the store instance.
+ *
+ * @arguments
+ * @param {String} ns the name space to be regsitered
+ * @param {String} prefix the URI fragment associated to the name space
+ */
+Store.Store.prototype.registerDefaultNamespace = function(ns, prefix) {
+ this.rdf.prefixes.set(ns,prefix);
+ this.engine.registerDefaultNamespace(ns,prefix);
+};
+
+/**
+ * Registers the default namespaces declared in the RDF JS Interfaces
+ * specification in the default Profile.
+ */
+Store.Store.prototype.registerDefaultProfileNamespaces = function() {
+ var defaultNsMap = this.rdf.prefixes.values();
+ for (var p in defaultNsMap) {
+ this.registerDefaultNamespace(p,defaultNsMap[p]);
+ }
+};
+/**
+ * Load triples into a graph in the store. Data can be passed directly to the method
+ * or a remote URI speifying where the data is located can be used.
+ *
+ * If the data is passed directly to the load function, the media type stating the format
+ * of the data must also be passed to the function.
+ *
+ * If an URI is passed as a parameter, the store will attempt to perform content negotiation
+ * with the remote server and get a representation for the RDF data matching one of the
+ * the RDF parsers registered in the store. In this case, the media type parameter must be
+ * set to the 'remote' value.
+ *
+ * An additional URI for the graph where the parsed data will be loaded and a callback function
+ * can be also passed as parameters. If no graph is specified, triples will be loaded in the
+ * default graph.
+ *
+ * By default loading data will not trigger notification through the events API. If events needs to
+ * be trigger, the functio setBatchLoadEvents must be invoked with a true parameter.
+ *
+ * @arguments
+ * @param {String} mediaType Media type (application/json, text/n3...) of the data to be parsed or the value 'remote' if a URI for the data is passed instead
+ * @param {String} data RDF data to be parsed and loaded or an URI where the data will be retrieved after performing content negotiation
+ * @param {String} [graph] Graph where the parsed triples will be inserted. If it is not specified, triples will be loaded in the default graph
+ * @param {Function} callback that will be invoked with a success notification and the number of triples loaded.
+ */
Store.Store.prototype.load = function(){
var mediaType;
var data;
@@ -40380,6 +32731,30 @@ Store.Store.prototype.load = function(){
}
};
+/**
+ * Registers a new parser associated to the provided media type. If there is a parser already registered for
+ * that media type, the new parser will replace the old one.
+ *
+ * Parsers must implement a function *parse* accepting the data to be parsed as the
+ * first parameter and the destination graph URI as the second one.
+ * They must return an array of objects with properties: 'subject', 'predicate', 'object'
+ * and 'graph' containing lexical representations for these values:
+ *
+ *
+ *
{literal: '"literal"'}
+ *
{literal: ''"literal"^^'}
+ *
{literal: '"literal"@lang'}
+ *
{uri: 'uri'}
+ *
{blank: '_:label'}
+ *
+ *
+ * The provided media type will be used to perform content negotiation when dealing with remote
+ * resources, or to select the parser in the load function.
+ *
+ * @arguments
+ * @param {String} mediaType the media type for this parser
+ * @param {String} parser an object containing the *parse* function with the parser logic
+ */
Store.Store.prototype.registerParser = function(mediaType, parser) {
this.engine.rdfLoader.registerParser(mediaType,parser);
};
@@ -40387,19 +32762,36 @@ Store.Store.prototype.registerParser = function(mediaType, parser) {
/**
* Returns the URI of all the graphs currently contained
* in the store
+ *
+ * @arguments:
+ * @param {Function} callback function that will receive a success notification and the array of graph URIs
*/
Store.Store.prototype.registeredGraphs = function(callback) {
- var graphs = this.engine.lexicon.registeredGraphs(true);
- var acum = [];
- for(var i=0; isetNetworkTransport function.
*/
Store.Store.prototype.getNetworkTransport = function() {
return NetworkTransport;
-}
+};
/**
- * Sets the network transport used by the store;
+ * Sets the network transport used by the store.
+ *
+ * Network transport consist of an object implementing the load
+ * function, receiving the URI to load, a string with the value
+ * of the HTTP 'Accept' header for the store registered parsers,
+ * a callback function where the retrieved data and the success notification
+ * must be returned.
+ *
+ * Different examples with implementations of different transports can be found
+ * in the source code of the store:
+ *