UNPKG

jql2sql

Version:

Transpiling JQL to SQL

413 lines (399 loc) 26.4 kB
// Generated automatically by nearley, version 2.20.1 // http://github.com/Hardmath123/nearley (function () { function id(x) { return x[0]; } const KINDS = { EXP_FOV : 0, EXP_LTRT : 1, EXP_BRACKET : 2 }; var grammar = { Lexer: undefined, ParserRules: [ {"name": "exp$ebnf$1", "symbols": []}, {"name": "exp$ebnf$1", "symbols": ["exp$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$2", "symbols": []}, {"name": "exp$ebnf$2", "symbols": ["exp$ebnf$2", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": [{"literal":"("}, "exp$ebnf$1", "exp", "exp$ebnf$2", {"literal":")"}], "postprocess": function expBracket(data) { return { kinds: KINDS.EXP_BRACKET, bracketLt: data[0], exp: data[2], bracketRt: data[4] } } }, {"name": "andOr", "symbols": ["and"]}, {"name": "andOr", "symbols": ["or"]}, {"name": "and$string$1", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "and", "symbols": ["and$string$1"]}, {"name": "and$string$2", "symbols": [{"literal":"A"}, {"literal":"N"}, {"literal":"D"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "and", "symbols": ["and$string$2"]}, {"name": "or$string$1", "symbols": [{"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "or", "symbols": ["or$string$1"]}, {"name": "or$string$2", "symbols": [{"literal":"O"}, {"literal":"R"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "or", "symbols": ["or$string$2"]}, {"name": "exp$ebnf$3", "symbols": []}, {"name": "exp$ebnf$3", "symbols": ["exp$ebnf$3", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$4", "symbols": []}, {"name": "exp$ebnf$4", "symbols": ["exp$ebnf$4", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["exp", "exp$ebnf$3", "andOr", "exp$ebnf$4", "exp"], "postprocess": function exp2(data) { return { kinds: KINDS.EXP_LTRT, expLt: data[0], andOr: data[2], expRt: data[4] } } }, {"name": "field$ebnf$1$subexpression$1$ebnf$1", "symbols": [/[ ]/], "postprocess": id}, {"name": "field$ebnf$1$subexpression$1$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "field$ebnf$1$subexpression$1$ebnf$2", "symbols": []}, {"name": "field$ebnf$1$subexpression$1$ebnf$2", "symbols": ["field$ebnf$1$subexpression$1$ebnf$2", /[a-zA-Z0-9_-]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "field$ebnf$1$subexpression$1$ebnf$3", "symbols": [/[ ]/], "postprocess": id}, {"name": "field$ebnf$1$subexpression$1$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "field$ebnf$1$subexpression$1", "symbols": [/[a-zA-Z]/, "field$ebnf$1$subexpression$1$ebnf$1", "field$ebnf$1$subexpression$1$ebnf$2", "field$ebnf$1$subexpression$1$ebnf$3"]}, {"name": "field$ebnf$1", "symbols": ["field$ebnf$1$subexpression$1"]}, {"name": "field$ebnf$1$subexpression$2$ebnf$1", "symbols": [/[ ]/], "postprocess": id}, {"name": "field$ebnf$1$subexpression$2$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "field$ebnf$1$subexpression$2$ebnf$2", "symbols": []}, {"name": "field$ebnf$1$subexpression$2$ebnf$2", "symbols": ["field$ebnf$1$subexpression$2$ebnf$2", /[a-zA-Z0-9_-]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "field$ebnf$1$subexpression$2$ebnf$3", "symbols": [/[ ]/], "postprocess": id}, {"name": "field$ebnf$1$subexpression$2$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "field$ebnf$1$subexpression$2", "symbols": [/[a-zA-Z]/, "field$ebnf$1$subexpression$2$ebnf$1", "field$ebnf$1$subexpression$2$ebnf$2", "field$ebnf$1$subexpression$2$ebnf$3"]}, {"name": "field$ebnf$1", "symbols": ["field$ebnf$1", "field$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "field", "symbols": ["field$ebnf$1"]}, {"name": "symbolOps", "symbols": [{"literal":"="}]}, {"name": "symbolOps$string$1", "symbols": [{"literal":"!"}, {"literal":"="}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "symbolOps", "symbols": ["symbolOps$string$1"]}, {"name": "symbolOps", "symbols": [{"literal":">"}]}, {"name": "symbolOps", "symbols": [{"literal":"<"}]}, {"name": "symbolOps$string$2", "symbols": [{"literal":">"}, {"literal":"="}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "symbolOps", "symbols": ["symbolOps$string$2"]}, {"name": "symbolOps$string$3", "symbols": [{"literal":"<"}, {"literal":"="}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "symbolOps", "symbols": ["symbolOps$string$3"]}, {"name": "value", "symbols": ["alphabetNumberUnderbar"]}, {"name": "value", "symbols": ["number"]}, {"name": "value", "symbols": ["doubleQuoteValueWithSpace"]}, {"name": "alphabetNumberUnderbar$ebnf$1", "symbols": []}, {"name": "alphabetNumberUnderbar$ebnf$1", "symbols": ["alphabetNumberUnderbar$ebnf$1", /[a-zA-Z0-9_]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "alphabetNumberUnderbar", "symbols": [/[a-zA-Z]/, "alphabetNumberUnderbar$ebnf$1"]}, {"name": "number", "symbols": ["naturalNumber"]}, {"name": "number", "symbols": ["decimal"]}, {"name": "naturalNumber$ebnf$1", "symbols": []}, {"name": "naturalNumber$ebnf$1", "symbols": ["naturalNumber$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "naturalNumber", "symbols": [/[1-9]/, "naturalNumber$ebnf$1"]}, {"name": "decimal", "symbols": ["zeroDecimal"]}, {"name": "decimal", "symbols": ["nonZeroDecimal"]}, {"name": "zeroDecimal$string$1", "symbols": [{"literal":"0"}, {"literal":"."}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "zeroDecimal$ebnf$1", "symbols": []}, {"name": "zeroDecimal$ebnf$1", "symbols": ["zeroDecimal$ebnf$1", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "zeroDecimal$ebnf$2", "symbols": [/[1-9]/]}, {"name": "zeroDecimal$ebnf$2", "symbols": ["zeroDecimal$ebnf$2", /[1-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "zeroDecimal", "symbols": ["zeroDecimal$string$1", "zeroDecimal$ebnf$1", "zeroDecimal$ebnf$2"]}, {"name": "nonZeroDecimal$ebnf$1", "symbols": [/[1-9]/]}, {"name": "nonZeroDecimal$ebnf$1", "symbols": ["nonZeroDecimal$ebnf$1", /[1-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "nonZeroDecimal$ebnf$2", "symbols": []}, {"name": "nonZeroDecimal$ebnf$2", "symbols": ["nonZeroDecimal$ebnf$2", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "nonZeroDecimal$ebnf$3", "symbols": []}, {"name": "nonZeroDecimal$ebnf$3", "symbols": ["nonZeroDecimal$ebnf$3", /[0-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "nonZeroDecimal$ebnf$4", "symbols": [/[1-9]/]}, {"name": "nonZeroDecimal$ebnf$4", "symbols": ["nonZeroDecimal$ebnf$4", /[1-9]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "nonZeroDecimal", "symbols": ["nonZeroDecimal$ebnf$1", "nonZeroDecimal$ebnf$2", /./, "nonZeroDecimal$ebnf$3", "nonZeroDecimal$ebnf$4"]}, {"name": "exp$ebnf$5", "symbols": []}, {"name": "exp$ebnf$5", "symbols": ["exp$ebnf$5", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$6", "symbols": []}, {"name": "exp$ebnf$6", "symbols": ["exp$ebnf$6", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$5", "symbolOps", "exp$ebnf$6", "value"], "postprocess": function expFOV(data) { return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], value: data[4] } } }, {"name": "opsTilde", "symbols": [{"literal":"~"}]}, {"name": "opsTilde$string$1", "symbols": [{"literal":"!"}, {"literal":"~"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsTilde", "symbols": ["opsTilde$string$1"]}, {"name": "doubleQuoteValueWithRightAsterisk$ebnf$1", "symbols": [/[\w :./@]/]}, {"name": "doubleQuoteValueWithRightAsterisk$ebnf$1", "symbols": ["doubleQuoteValueWithRightAsterisk$ebnf$1", /[\w :./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "doubleQuoteValueWithRightAsterisk$string$1", "symbols": [{"literal":"*"}, {"literal":"\""}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "doubleQuoteValueWithRightAsterisk", "symbols": [{"literal":"\""}, "doubleQuoteValueWithRightAsterisk$ebnf$1", "doubleQuoteValueWithRightAsterisk$string$1"]}, {"name": "doubleQuoteValueWithLeftAsterisk$string$1", "symbols": [{"literal":"\""}, {"literal":"*"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "doubleQuoteValueWithLeftAsterisk$ebnf$1", "symbols": [/[\w :./@]/]}, {"name": "doubleQuoteValueWithLeftAsterisk$ebnf$1", "symbols": ["doubleQuoteValueWithLeftAsterisk$ebnf$1", /[\w :./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "doubleQuoteValueWithLeftAsterisk", "symbols": ["doubleQuoteValueWithLeftAsterisk$string$1", "doubleQuoteValueWithLeftAsterisk$ebnf$1", {"literal":"\""}]}, {"name": "doubleQuoteValueWithBothAsterisk$string$1", "symbols": [{"literal":"\""}, {"literal":"*"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "doubleQuoteValueWithBothAsterisk$ebnf$1", "symbols": [/[\w :./@]/]}, {"name": "doubleQuoteValueWithBothAsterisk$ebnf$1", "symbols": ["doubleQuoteValueWithBothAsterisk$ebnf$1", /[\w :./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "doubleQuoteValueWithBothAsterisk$string$2", "symbols": [{"literal":"*"}, {"literal":"\""}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "doubleQuoteValueWithBothAsterisk", "symbols": ["doubleQuoteValueWithBothAsterisk$string$1", "doubleQuoteValueWithBothAsterisk$ebnf$1", "doubleQuoteValueWithBothAsterisk$string$2"]}, {"name": "doubleQuoteValue", "symbols": ["doubleQuoteValueNoSpace"]}, {"name": "doubleQuoteValue", "symbols": ["doubleQuoteValueWithSpace"]}, {"name": "doubleQuoteValueNoSpace$ebnf$1", "symbols": [/[\w:./@]/]}, {"name": "doubleQuoteValueNoSpace$ebnf$1", "symbols": ["doubleQuoteValueNoSpace$ebnf$1", /[\w:./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "doubleQuoteValueNoSpace", "symbols": [{"literal":"\""}, "doubleQuoteValueNoSpace$ebnf$1", {"literal":"\""}]}, {"name": "doubleQuoteValueWithSpace$ebnf$1", "symbols": [/[\w :./@]/]}, {"name": "doubleQuoteValueWithSpace$ebnf$1", "symbols": ["doubleQuoteValueWithSpace$ebnf$1", /[\w :./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "doubleQuoteValueWithSpace", "symbols": [{"literal":"\""}, "doubleQuoteValueWithSpace$ebnf$1", {"literal":"\""}]}, {"name": "noQuoteValueNoSpace$ebnf$1", "symbols": [/[\w:./@]/]}, {"name": "noQuoteValueNoSpace$ebnf$1", "symbols": ["noQuoteValueNoSpace$ebnf$1", /[\w:./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "noQuoteValueNoSpace", "symbols": ["noQuoteValueNoSpace$ebnf$1"]}, {"name": "nestedDoubleQuoteValue$string$1", "symbols": [{"literal":"\""}, {"literal":"\\"}, {"literal":"\""}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "nestedDoubleQuoteValue$ebnf$1", "symbols": [/[\w :./@]/]}, {"name": "nestedDoubleQuoteValue$ebnf$1", "symbols": ["nestedDoubleQuoteValue$ebnf$1", /[\w :./@]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "nestedDoubleQuoteValue$string$2", "symbols": [{"literal":"\\"}, {"literal":"\""}, {"literal":"\""}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "nestedDoubleQuoteValue", "symbols": ["nestedDoubleQuoteValue$string$1", "nestedDoubleQuoteValue$ebnf$1", "nestedDoubleQuoteValue$string$2"]}, {"name": "exp$ebnf$7", "symbols": []}, {"name": "exp$ebnf$7", "symbols": ["exp$ebnf$7", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$8", "symbols": []}, {"name": "exp$ebnf$8", "symbols": ["exp$ebnf$8", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$7", "opsTilde", "exp$ebnf$8", "noQuoteValueNoSpace"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'noQuoteValueNoSpace'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$9", "symbols": []}, {"name": "exp$ebnf$9", "symbols": ["exp$ebnf$9", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$10", "symbols": []}, {"name": "exp$ebnf$10", "symbols": ["exp$ebnf$10", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$9", "opsTilde", "exp$ebnf$10", "doubleQuoteValue"], "postprocess": function expFOV(data) { // To check that value contains ' ' function myContain(mightBeArray, c) { return _myContain(mightBeArray, c); } function _myContain(mightBeArray, c) { if (Array.isArray(mightBeArray)) { for (const element of mightBeArray) { if (Array.isArray(element)) { if (_myContain(element, c)) return true; } else { if (element == c) return true; } } } else { if (mightBeArray.includes(c)) return true; } return false; } const valueHint = {}; if (myContain(data[4], ' ')) { valueHint.text = 'doubleQuoteValueWithSpace'; } else { valueHint.text = 'doubleQuoteValueNoSpace'; } return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$11", "symbols": []}, {"name": "exp$ebnf$11", "symbols": ["exp$ebnf$11", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$12", "symbols": []}, {"name": "exp$ebnf$12", "symbols": ["exp$ebnf$12", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$11", "opsTilde", "exp$ebnf$12", "nestedDoubleQuoteValue"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'nestedDoubleQuoteValue'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$13", "symbols": []}, {"name": "exp$ebnf$13", "symbols": ["exp$ebnf$13", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$14", "symbols": []}, {"name": "exp$ebnf$14", "symbols": ["exp$ebnf$14", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$13", "opsTilde", "exp$ebnf$14", "doubleQuoteValueWithBothAsterisk"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'doubleQuoteValueWithBothAsterisk'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$15", "symbols": []}, {"name": "exp$ebnf$15", "symbols": ["exp$ebnf$15", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$16", "symbols": []}, {"name": "exp$ebnf$16", "symbols": ["exp$ebnf$16", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$15", "opsTilde", "exp$ebnf$16", "doubleQuoteValueWithRightAsterisk"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'doubleQuoteValueWithRightAsterisk'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$17", "symbols": []}, {"name": "exp$ebnf$17", "symbols": ["exp$ebnf$17", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$18", "symbols": []}, {"name": "exp$ebnf$18", "symbols": ["exp$ebnf$18", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$17", "opsTilde", "exp$ebnf$18", "doubleQuoteValueWithLeftAsterisk"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'doubleQuoteValueWithLeftAsterisk'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "opsIn$string$1", "symbols": [{"literal":"n"}, {"literal":"o"}, {"literal":"t"}, {"literal":" "}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsIn", "symbols": ["opsIn$string$1"]}, {"name": "opsIn$string$2", "symbols": [{"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsIn", "symbols": ["opsIn$string$2"]}, {"name": "inValue$ebnf$1", "symbols": []}, {"name": "inValue$ebnf$1", "symbols": ["inValue$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "inValue$ebnf$2$ebnf$1", "symbols": []}, {"name": "inValue$ebnf$2$ebnf$1", "symbols": ["inValue$ebnf$2$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "inValue$ebnf$2", "symbols": ["inValue$ebnf$2$ebnf$1"], "postprocess": id}, {"name": "inValue$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "inValue$ebnf$3", "symbols": []}, {"name": "inValue$ebnf$3", "symbols": ["inValue$ebnf$3", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "inValue", "symbols": [{"literal":"("}, "inValue$ebnf$1", "fieldOrdoubleQuoteValueWithSpace", "inValue$ebnf$2", "repeatedCommaField", "inValue$ebnf$3", {"literal":")"}]}, {"name": "fieldOrdoubleQuoteValueWithSpace", "symbols": ["field"]}, {"name": "fieldOrdoubleQuoteValueWithSpace", "symbols": ["doubleQuoteValueWithSpace"]}, {"name": "fieldOrdoubleQuoteValueWithSpace", "symbols": ["number"]}, {"name": "repeatedCommaField$ebnf$1", "symbols": []}, {"name": "repeatedCommaField$ebnf$1$subexpression$1$ebnf$1", "symbols": []}, {"name": "repeatedCommaField$ebnf$1$subexpression$1$ebnf$1", "symbols": ["repeatedCommaField$ebnf$1$subexpression$1$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "repeatedCommaField$ebnf$1$subexpression$1", "symbols": ["commaFieldOrCommaDoubleQuoteValueWithSpace", "repeatedCommaField$ebnf$1$subexpression$1$ebnf$1"]}, {"name": "repeatedCommaField$ebnf$1", "symbols": ["repeatedCommaField$ebnf$1", "repeatedCommaField$ebnf$1$subexpression$1"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "repeatedCommaField", "symbols": ["repeatedCommaField$ebnf$1"]}, {"name": "commaFieldOrCommaDoubleQuoteValueWithSpace", "symbols": ["commaField"]}, {"name": "commaFieldOrCommaDoubleQuoteValueWithSpace", "symbols": ["commaDoubleQuoteValueWithSpace"]}, {"name": "commaFieldOrCommaDoubleQuoteValueWithSpace", "symbols": ["commaNumber"]}, {"name": "commaField$ebnf$1", "symbols": []}, {"name": "commaField$ebnf$1", "symbols": ["commaField$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "commaField", "symbols": [{"literal":","}, "commaField$ebnf$1", "field"]}, {"name": "commaNumber$ebnf$1", "symbols": []}, {"name": "commaNumber$ebnf$1", "symbols": ["commaNumber$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "commaNumber", "symbols": [{"literal":","}, "commaNumber$ebnf$1", "number"]}, {"name": "commaDoubleQuoteValueWithSpace$ebnf$1", "symbols": []}, {"name": "commaDoubleQuoteValueWithSpace$ebnf$1", "symbols": ["commaDoubleQuoteValueWithSpace$ebnf$1", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "commaDoubleQuoteValueWithSpace", "symbols": [{"literal":","}, "commaDoubleQuoteValueWithSpace$ebnf$1", "doubleQuoteValueWithSpace"]}, {"name": "exp$ebnf$19", "symbols": []}, {"name": "exp$ebnf$19", "symbols": ["exp$ebnf$19", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$20", "symbols": []}, {"name": "exp$ebnf$20", "symbols": ["exp$ebnf$20", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$19", "opsIn", "exp$ebnf$20", "inValue"], "postprocess": function expFOV(data) { return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], value: data[4] } } }, {"name": "opsEuqal", "symbols": [{"literal":"="}]}, {"name": "opsEuqal$string$1", "symbols": [{"literal":"!"}, {"literal":"="}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsEuqal", "symbols": ["opsEuqal$string$1"]}, {"name": "opsIs$string$1", "symbols": [{"literal":"i"}, {"literal":"s"}, {"literal":" "}, {"literal":"n"}, {"literal":"o"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsIs", "symbols": ["opsIs$string$1"]}, {"name": "opsIs$string$2", "symbols": [{"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "opsIs", "symbols": ["opsIs$string$2"]}, {"name": "exp$ebnf$21", "symbols": []}, {"name": "exp$ebnf$21", "symbols": ["exp$ebnf$21", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$22", "symbols": []}, {"name": "exp$ebnf$22", "symbols": ["exp$ebnf$22", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$21", "opsIs", "exp$ebnf$22", "value"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'value'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$23", "symbols": []}, {"name": "exp$ebnf$23", "symbols": ["exp$ebnf$23", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$24", "symbols": []}, {"name": "exp$ebnf$24", "symbols": ["exp$ebnf$24", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$23", "opsIs", "exp$ebnf$24", "doubleQuoteValue"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'doubleQuoteValue'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "exp$ebnf$25", "symbols": []}, {"name": "exp$ebnf$25", "symbols": ["exp$ebnf$25", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp$ebnf$26", "symbols": []}, {"name": "exp$ebnf$26", "symbols": ["exp$ebnf$26", /[ ]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "exp", "symbols": ["field", "exp$ebnf$25", "opsEuqal", "exp$ebnf$26", "doubleQuoteValue"], "postprocess": function expFOV(data) { const valueHint = {}; valueHint.text = 'doubleQuoteValue'; return { kinds: KINDS.EXP_FOV, field: data[0], ops: data[2], valueHint: valueHint, value: data[4] } } }, {"name": "function$ebnf$1", "symbols": []}, {"name": "function$ebnf$1", "symbols": ["function$ebnf$1", /[a-zA-Z0-9_]/], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}}, {"name": "function$string$1", "symbols": [{"literal":"("}, {"literal":")"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "function", "symbols": [/[a-zA-Z]/, "function$ebnf$1", "function$string$1"]} ] , ParserStart: "exp" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })();