JSFiddle - React, Tailwind, and code Playground
by dru_zod
JavaScript
var QueryParser = (function () {
var getEnumerator = function (text) {
var i = 0;
return {
next: function () {
if (i >= text.length) {
return null;
}
i++;
return text[i - 1];
}
};
},
readValueInBrackets = function (enumerator) {
var word = [], brackets = 1, c;
c = enumerator.next();
while (c !== null) {
if (c === ')') {
brackets--;
if (brackets <= 0) {
return word.join('');
}
}
else if (c === '(') {
brackets++;
}
word.push(c);
c = enumerator.next();
}
return word.join('');
},
readValue = function (enumerator) {
var word = [], c;
c = enumerator.next();
if (c === '(') {
return readValueInBrackets(enumerator);
}
while (c !== null && !(/\s/.test(c))) {
word.push(c);
c = enumerator.next();
}
return word.join('');
},
QueryParser = function () {};
QueryParser.prototype = {
parse: function (query, fields) {
var i, word = [], field,
words = [], fieldValues = {},
enumerator =...