// Generated by Peggy 3.0.2. // // https://peggyjs.org/ "use strict"; function peg$subclass(child, parent) { function C() { this.constructor = child; } C.prototype = parent.prototype; child.prototype = new C(); } function peg$SyntaxError(message, expected, found, location) { var self = Error.call(this, message); // istanbul ignore next Check is a necessary evil to support older environments if (Object.setPrototypeOf) { Object.setPrototypeOf(self, peg$SyntaxError.prototype); } self.expected = expected; self.found = found; self.location = location; self.name = "SyntaxError"; return self; } peg$subclass(peg$SyntaxError, Error); function peg$padEnd(str, targetLength, padString) { padString = padString || " "; if (str.length > targetLength) { return str; } targetLength -= str.length; padString += padString.repeat(targetLength); return str + padString.slice(0, targetLength); } peg$SyntaxError.prototype.format = function(sources) { var str = "Error: " + this.message; if (this.location) { var src = null; var k; for (k = 0; k < sources.length; k++) { if (sources[k].source === this.location.source) { src = sources[k].text.split(/\r\n|\n|\r/g); break; } } var s = this.location.start; var offset_s = (this.location.source && (typeof this.location.source.offset === "function")) ? this.location.source.offset(s) : s; var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column; if (src) { var e = this.location.end; var filler = peg$padEnd("", offset_s.line.toString().length, ' '); var line = src[s.line - 1]; var last = s.line === e.line ? e.column : line.length + 1; var hatLen = (last - s.column) || 1; str += "\n --> " + loc + "\n" + filler + " |\n" + offset_s.line + " | " + line + "\n" + filler + " | " + peg$padEnd("", s.column - 1, ' ') + peg$padEnd("", hatLen, "^"); } else { str += "\n at " + loc; } } return str; }; peg$SyntaxError.buildMessage = function(expected, found) { var DESCRIBE_EXPECTATION_FNS = { literal: function(expectation) { return "\"" + literalEscape(expectation.text) + "\""; }, class: function(expectation) { var escapedParts = expectation.parts.map(function(part) { return Array.isArray(part) ? classEscape(part[0]) + "-" + classEscape(part[1]) : classEscape(part); }); return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]"; }, any: function() { return "any character"; }, end: function() { return "end of input"; }, other: function(expectation) { return expectation.description; } }; function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); } function literalEscape(s) { return s .replace(/\\/g, "\\\\") .replace(/"/g, "\\\"") .replace(/\0/g, "\\0") .replace(/\t/g, "\\t") .replace(/\n/g, "\\n") .replace(/\r/g, "\\r") .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); } function classEscape(s) { return s .replace(/\\/g, "\\\\") .replace(/\]/g, "\\]") .replace(/\^/g, "\\^") .replace(/-/g, "\\-") .replace(/\0/g, "\\0") .replace(/\t/g, "\\t") .replace(/\n/g, "\\n") .replace(/\r/g, "\\r") .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); }) .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); }); } function describeExpectation(expectation) { return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); } function describeExpected(expected) { var descriptions = expected.map(describeExpectation); var i, j; descriptions.sort(); if (descriptions.length > 0) { for (i = 1, j = 1; i < descriptions.length; i++) { if (descriptions[i - 1] !== descriptions[i]) { descriptions[j] = descriptions[i]; j++; } } descriptions.length = j; } switch (descriptions.length) { case 1: return descriptions[0]; case 2: return descriptions[0] + " or " + descriptions[1]; default: return descriptions.slice(0, -1).join(", ") + ", or " + descriptions[descriptions.length - 1]; } } function describeFound(found) { return found ? "\"" + literalEscape(found) + "\"" : "end of input"; } return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; }; function peg$parse(input, options) { options = options !== undefined ? options : {}; var peg$FAILED = {}; var peg$source = options.grammarSource; var peg$startRuleFunctions = { start: peg$parsestart }; var peg$startRuleFunction = peg$parsestart; var peg$c0 = "("; var peg$c1 = ")"; var peg$c2 = "="; var peg$c3 = "!"; var peg$c4 = ">="; var peg$c5 = ">"; var peg$c6 = "<="; var peg$c7 = "<>"; var peg$c8 = "<"; var peg$c9 = "!="; var peg$c10 = "+"; var peg$c11 = "-"; var peg$c12 = "*"; var peg$c13 = "/"; var peg$c14 = "%"; var peg$c15 = "\""; var peg$c16 = "'"; var peg$c17 = "`"; var peg$c18 = ":"; var peg$c19 = "\\'"; var peg$c20 = "\\\""; var peg$c21 = "\\\\"; var peg$c22 = "\\/"; var peg$c23 = "\\b"; var peg$c24 = "\\f"; var peg$c25 = "\\n"; var peg$c26 = "\\r"; var peg$c27 = "\\t"; var peg$c28 = "\\u"; var peg$c29 = "."; var peg$c30 = "null"; var peg$c31 = "true"; var peg$c32 = "false"; var peg$c33 = "show"; var peg$c34 = "drop"; var peg$c35 = "select"; var peg$c36 = "update"; var peg$c37 = "create"; var peg$c38 = "delete"; var peg$c39 = "insert"; var peg$c40 = "RECURSIVE"; var peg$c41 = "replace"; var peg$c42 = "explain"; var peg$c43 = "into"; var peg$c44 = "from"; var peg$c45 = "set"; var peg$c46 = "as"; var peg$c47 = "table"; var peg$c48 = "on"; var peg$c49 = "left"; var peg$c50 = "right"; var peg$c51 = "full"; var peg$c52 = "inner"; var peg$c53 = "join"; var peg$c54 = "outer"; var peg$c55 = "union"; var peg$c56 = "values"; var peg$c57 = "using"; var peg$c58 = "where"; var peg$c59 = "with"; var peg$c60 = "group"; var peg$c61 = "by"; var peg$c62 = "order"; var peg$c63 = "having"; var peg$c64 = "limit"; var peg$c65 = "asc"; var peg$c66 = "desc"; var peg$c67 = "all"; var peg$c68 = "distinct"; var peg$c69 = "between"; var peg$c70 = "in"; var peg$c71 = "is"; var peg$c72 = "like"; var peg$c73 = "exists"; var peg$c74 = "not"; var peg$c75 = "and"; var peg$c76 = "or"; var peg$c77 = "count"; var peg$c78 = "max"; var peg$c79 = "min"; var peg$c80 = "sum"; var peg$c81 = "avg"; var peg$c82 = "case"; var peg$c83 = "when"; var peg$c84 = "then"; var peg$c85 = "else"; var peg$c86 = "end"; var peg$c87 = "cast"; var peg$c88 = "char"; var peg$c89 = "varchar"; var peg$c90 = "numeric"; var peg$c91 = "decimal"; var peg$c92 = "signed"; var peg$c93 = "unsigned"; var peg$c94 = "int"; var peg$c95 = "integer"; var peg$c96 = "json"; var peg$c97 = "smallint"; var peg$c98 = "date"; var peg$c99 = "time"; var peg$c100 = "timestamp"; var peg$c101 = "user"; var peg$c102 = "current_date"; var peg$c103 = "adddate"; var peg$c104 = "interval"; var peg$c105 = "year"; var peg$c106 = "month"; var peg$c107 = "day"; var peg$c108 = "hour"; var peg$c109 = "minute"; var peg$c110 = "second"; var peg$c111 = "current_time"; var peg$c112 = "current_timestamp"; var peg$c113 = "current_user"; var peg$c114 = "session_user"; var peg$c115 = "system_user"; var peg$c116 = "$"; var peg$c117 = "return"; var peg$c118 = ":="; var peg$c119 = "dual"; var peg$c120 = "sql_calc_found_rows"; var peg$c121 = "sql_cache"; var peg$c122 = "sql_no_cache"; var peg$c123 = "sql_small_result"; var peg$c124 = "sql_big_result"; var peg$c125 = "sql_buffer_result"; var peg$c126 = ","; var peg$c127 = "["; var peg$c128 = "]"; var peg$c129 = ";"; var peg$c130 = "/*"; var peg$c131 = "*/"; var peg$c132 = "--"; var peg$r0 = /^[^"]/; var peg$r1 = /^[^']/; var peg$r2 = /^[^`]/; var peg$r3 = /^[A-Za-z_]/; var peg$r4 = /^[A-Za-z0-9_]/; var peg$r5 = /^[A-Za-z0-9_:]/; var peg$r6 = /^[^"\\\0-\x1F\x7F]/; var peg$r7 = /^[^'\\\0-\x1F\x7F]/; var peg$r8 = /^[\n\r]/; var peg$r9 = /^[0-9]/; var peg$r10 = /^[1-9]/; var peg$r11 = /^[0-9a-fA-F]/; var peg$r12 = /^[eE]/; var peg$r13 = /^[+\-]/; var peg$r14 = /^[ \t\n\r]/; var peg$e0 = peg$literalExpectation("(", false); var peg$e1 = peg$literalExpectation(")", false); var peg$e2 = peg$literalExpectation("=", false); var peg$e3 = peg$literalExpectation("!", false); var peg$e4 = peg$literalExpectation(">=", false); var peg$e5 = peg$literalExpectation(">", false); var peg$e6 = peg$literalExpectation("<=", false); var peg$e7 = peg$literalExpectation("<>", false); var peg$e8 = peg$literalExpectation("<", false); var peg$e9 = peg$literalExpectation("!=", false); var peg$e10 = peg$literalExpectation("+", false); var peg$e11 = peg$literalExpectation("-", false); var peg$e12 = peg$literalExpectation("*", false); var peg$e13 = peg$literalExpectation("/", false); var peg$e14 = peg$literalExpectation("%", false); var peg$e15 = peg$literalExpectation("\"", false); var peg$e16 = peg$classExpectation(["\""], true, false); var peg$e17 = peg$literalExpectation("'", false); var peg$e18 = peg$classExpectation(["'"], true, false); var peg$e19 = peg$literalExpectation("`", false); var peg$e20 = peg$classExpectation(["`"], true, false); var peg$e21 = peg$classExpectation([["A", "Z"], ["a", "z"], "_"], false, false); var peg$e22 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_"], false, false); var peg$e23 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_", ":"], false, false); var peg$e24 = peg$literalExpectation(":", false); var peg$e25 = peg$classExpectation(["\"", "\\", ["\0", "\x1F"], "\x7F"], true, false); var peg$e26 = peg$classExpectation(["'", "\\", ["\0", "\x1F"], "\x7F"], true, false); var peg$e27 = peg$literalExpectation("\\'", false); var peg$e28 = peg$literalExpectation("\\\"", false); var peg$e29 = peg$literalExpectation("\\\\", false); var peg$e30 = peg$literalExpectation("\\/", false); var peg$e31 = peg$literalExpectation("\\b", false); var peg$e32 = peg$literalExpectation("\\f", false); var peg$e33 = peg$literalExpectation("\\n", false); var peg$e34 = peg$literalExpectation("\\r", false); var peg$e35 = peg$literalExpectation("\\t", false); var peg$e36 = peg$literalExpectation("\\u", false); var peg$e37 = peg$classExpectation(["\n", "\r"], false, false); var peg$e38 = peg$literalExpectation(".", false); var peg$e39 = peg$classExpectation([["0", "9"]], false, false); var peg$e40 = peg$classExpectation([["1", "9"]], false, false); var peg$e41 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false); var peg$e42 = peg$classExpectation(["e", "E"], false, false); var peg$e43 = peg$classExpectation(["+", "-"], false, false); var peg$e44 = peg$literalExpectation("NULL", true); var peg$e45 = peg$literalExpectation("TRUE", true); var peg$e46 = peg$literalExpectation("FALSE", true); var peg$e47 = peg$literalExpectation("SHOW", true); var peg$e48 = peg$literalExpectation("DROP", true); var peg$e49 = peg$literalExpectation("SELECT", true); var peg$e50 = peg$literalExpectation("UPDATE", true); var peg$e51 = peg$literalExpectation("CREATE", true); var peg$e52 = peg$literalExpectation("DELETE", true); var peg$e53 = peg$literalExpectation("INSERT", true); var peg$e54 = peg$literalExpectation("RECURSIVE", false); var peg$e55 = peg$literalExpectation("REPLACE", true); var peg$e56 = peg$literalExpectation("EXPLAIN", true); var peg$e57 = peg$literalExpectation("INTO", true); var peg$e58 = peg$literalExpectation("FROM", true); var peg$e59 = peg$literalExpectation("SET", true); var peg$e60 = peg$literalExpectation("AS", true); var peg$e61 = peg$literalExpectation("TABLE", true); var peg$e62 = peg$literalExpectation("ON", true); var peg$e63 = peg$literalExpectation("LEFT", true); var peg$e64 = peg$literalExpectation("RIGHT", true); var peg$e65 = peg$literalExpectation("FULL", true); var peg$e66 = peg$literalExpectation("INNER", true); var peg$e67 = peg$literalExpectation("JOIN", true); var peg$e68 = peg$literalExpectation("OUTER", true); var peg$e69 = peg$literalExpectation("UNION", true); var peg$e70 = peg$literalExpectation("VALUES", true); var peg$e71 = peg$literalExpectation("USING", true); var peg$e72 = peg$literalExpectation("WHERE", true); var peg$e73 = peg$literalExpectation("WITH", true); var peg$e74 = peg$literalExpectation("GROUP", true); var peg$e75 = peg$literalExpectation("BY", true); var peg$e76 = peg$literalExpectation("ORDER", true); var peg$e77 = peg$literalExpectation("HAVING", true); var peg$e78 = peg$literalExpectation("LIMIT", true); var peg$e79 = peg$literalExpectation("ASC", true); var peg$e80 = peg$literalExpectation("DESC", true); var peg$e81 = peg$literalExpectation("ALL", true); var peg$e82 = peg$literalExpectation("DISTINCT", true); var peg$e83 = peg$literalExpectation("BETWEEN", true); var peg$e84 = peg$literalExpectation("IN", true); var peg$e85 = peg$literalExpectation("IS", true); var peg$e86 = peg$literalExpectation("LIKE", true); var peg$e87 = peg$literalExpectation("EXISTS", true); var peg$e88 = peg$literalExpectation("NOT", true); var peg$e89 = peg$literalExpectation("AND", true); var peg$e90 = peg$literalExpectation("OR", true); var peg$e91 = peg$literalExpectation("COUNT", true); var peg$e92 = peg$literalExpectation("MAX", true); var peg$e93 = peg$literalExpectation("MIN", true); var peg$e94 = peg$literalExpectation("SUM", true); var peg$e95 = peg$literalExpectation("AVG", true); var peg$e96 = peg$literalExpectation("CASE", true); var peg$e97 = peg$literalExpectation("WHEN", true); var peg$e98 = peg$literalExpectation("THEN", true); var peg$e99 = peg$literalExpectation("ELSE", true); var peg$e100 = peg$literalExpectation("END", true); var peg$e101 = peg$literalExpectation("CAST", true); var peg$e102 = peg$literalExpectation("CHAR", true); var peg$e103 = peg$literalExpectation("VARCHAR", true); var peg$e104 = peg$literalExpectation("NUMERIC", true); var peg$e105 = peg$literalExpectation("DECIMAL", true); var peg$e106 = peg$literalExpectation("SIGNED", true); var peg$e107 = peg$literalExpectation("UNSIGNED", true); var peg$e108 = peg$literalExpectation("INT", true); var peg$e109 = peg$literalExpectation("INTEGER", true); var peg$e110 = peg$literalExpectation("JSON", true); var peg$e111 = peg$literalExpectation("SMALLINT", true); var peg$e112 = peg$literalExpectation("DATE", true); var peg$e113 = peg$literalExpectation("TIME", true); var peg$e114 = peg$literalExpectation("TIMESTAMP", true); var peg$e115 = peg$literalExpectation("USER", true); var peg$e116 = peg$literalExpectation("CURRENT_DATE", true); var peg$e117 = peg$literalExpectation("ADDDATE", true); var peg$e118 = peg$literalExpectation("INTERVAL", true); var peg$e119 = peg$literalExpectation("YEAR", true); var peg$e120 = peg$literalExpectation("MONTH", true); var peg$e121 = peg$literalExpectation("DAY", true); var peg$e122 = peg$literalExpectation("HOUR", true); var peg$e123 = peg$literalExpectation("MINUTE", true); var peg$e124 = peg$literalExpectation("SECOND", true); var peg$e125 = peg$literalExpectation("CURRENT_TIME", true); var peg$e126 = peg$literalExpectation("CURRENT_TIMESTAMP", true); var peg$e127 = peg$literalExpectation("CURRENT_USER", true); var peg$e128 = peg$literalExpectation("SESSION_USER", true); var peg$e129 = peg$literalExpectation("SYSTEM_USER", true); var peg$e130 = peg$literalExpectation("$", false); var peg$e131 = peg$literalExpectation("return", true); var peg$e132 = peg$literalExpectation(":=", false); var peg$e133 = peg$literalExpectation("DUAL", true); var peg$e134 = peg$literalExpectation("SQL_CALC_FOUND_ROWS", true); var peg$e135 = peg$literalExpectation("SQL_CACHE", true); var peg$e136 = peg$literalExpectation("SQL_NO_CACHE", true); var peg$e137 = peg$literalExpectation("SQL_SMALL_RESULT", true); var peg$e138 = peg$literalExpectation("SQL_BIG_RESULT", true); var peg$e139 = peg$literalExpectation("SQL_BUFFER_RESULT", true); var peg$e140 = peg$literalExpectation(",", false); var peg$e141 = peg$literalExpectation("[", false); var peg$e142 = peg$literalExpectation("]", false); var peg$e143 = peg$literalExpectation(";", false); var peg$e144 = peg$literalExpectation("/*", false); var peg$e145 = peg$literalExpectation("*/", false); var peg$e146 = peg$literalExpectation("--", false); var peg$e147 = peg$anyExpectation(); var peg$e148 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false); var peg$f0 = function(head, tail) { const cur = [head && head.ast || head]; for (let i = 0; i < tail.length; i++) { if(!tail[i][3] || tail[i][3].length === 0) continue; cur.push(tail[i][3] && tail[i][3].ast || tail[i][3]); } return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: cur } }; var peg$f1 = function(head, tail) { let cur = head; for (let i = 0; i < tail.length; i++) { cur._next = tail[i][3]; cur = cur._next } return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: head } }; var peg$f2 = function(s) { return s[2]; }; var peg$f3 = function(head, tail) { return createList(head, tail); }; var peg$f4 = function(cte) { cte.recursive = true; return [cte] }; var peg$f5 = function(name, columns, stmt) { return { name, stmt, columns }; }; var peg$f6 = function(head, tail) { return createList(head, tail); }; var peg$f7 = function(cte, opts, d, c, f, w, g, h, o, l) { if(f) f.forEach(info => info.table && tableList.add(`select::${info.db}::${info.table}`)); return { with: cte, type: 'select', options: opts, distinct: d, columns: c, from: f, where: w, groupby: g, having: h, orderby: o, limit: l }; }; var peg$f8 = function(head, tail) { const opts = [head]; for (let i = 0, l = tail.length; i < l; ++i) { opts.push(tail[i][1]); } return opts; }; var peg$f9 = function(option) { return option; }; var peg$f10 = function() { columnList.add('select::null::(.*)'); return '*'; }; var peg$f11 = function(head, tail) { return createList(head, tail); }; var peg$f12 = function(tbl) { columnList.add(`select::${tbl}::(.*)`); return { expr: { type: 'column_ref', table: tbl, column: '*' }, as: null }; }; var peg$f13 = function(e, alias) { return { expr: e, as: alias }; }; var peg$f14 = function(i) { return i; }; var peg$f15 = function(i) { return i; }; var peg$f16 = function(l) { return l; }; var peg$f17 = function(head, tail) { tail.unshift(head); return tail; }; var peg$f18 = function(t) { return t; }; var peg$f19 = function(t) { return t; }; var peg$f20 = function(op, t, head, tail) { t.join = op; t.using = createList(head, tail); return t; }; var peg$f21 = function(op, t, expr) { t.join = op; t.on = expr; return t; }; var peg$f22 = function(op, stmt, alias, expr) { stmt.parentheses = true; return { expr: stmt, as: alias, join: op, on: expr }; }; var peg$f23 = function() { return { type: 'dual' }; }; var peg$f24 = function(t, alias) { if (t.type === 'var') { t.as = alias; return t; } else { return { db: t.db, table: t.table, as: alias }; } }; var peg$f25 = function(stmt, alias) { stmt.parentheses = true; return { expr: stmt, as: alias }; }; var peg$f26 = function() { return 'LEFT JOIN'; }; var peg$f27 = function() { return 'RIGHT JOIN'; }; var peg$f28 = function() { return 'FULL JOIN'; }; var peg$f29 = function() { return 'INNER JOIN'; }; var peg$f30 = function(dt, tail) { const obj = { db: null, table: dt }; if (tail !== null) { obj.db = dt; obj.table = tail[3]; } return obj; }; var peg$f31 = function(v) { v.db = null; v.table = v.name; return v; }; var peg$f32 = function(e) { return e; }; var peg$f33 = function(e) { return e; }; var peg$f34 = function(l) { return l; }; var peg$f35 = function(head, tail) { return createList(head, tail); }; var peg$f36 = function(e) { return e; }; var peg$f37 = function(l) { return l; }; var peg$f38 = function(head, tail) { return createList(head, tail); }; var peg$f39 = function(e, d) { const obj = { expr: e, type: 'ASC' }; if (d === 'DESC') obj.type = 'DESC'; return obj; }; var peg$f40 = function(i1, tail) { const res = [i1]; if (tail === null) res.unshift({ type: 'number', value: 0 }); else res.push(tail[2]); return res; }; var peg$f41 = function(t, l, w) { if(t.table) tableList.add(`update::${t.db}::${t.table}`); if(l) l.forEach(col => columnList.add(`update::${t.table}::${col.column}`)); return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: { type: 'update', db: t.db, table: t.table, set: l, where: w } }; }; var peg$f42 = function(t, f, w) { if(f) f.forEach(info => { info.table && tableList.add(`delete::${info.db}::${info.table}`); columnList.add(`delete::${info.table}::(.*)`); }); return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: { type: 'delete', tables: t, from: f, where: w } }; }; var peg$f43 = function(head, tail) { return createList(head, tail); }; var peg$f44 = function(tbl, c, v) { return { column: c, value: v, table: tbl && tbl[0] }; }; var peg$f45 = function(ri, t, c, v) { if (t.table) tableList.add(`insert::${t.db}::${t.table}`); if (c) c.forEach(c => columnList.add(`insert::${t.table}::${c}`)); return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: { type: ri, db: t.db, table: t.table, columns: c, values: v } }; }; var peg$f46 = function(ri, t, v) { if (t.table) tableList.add(`insert::${t.db}::${t.table}`); columnList.add(`insert::${t.table}::(.*)`); return { tableList: Array.from(tableList), columnList: Array.from(columnList), ast: { type: ri, db: t.db, table: t.table, columns: null, values: v } }; }; var peg$f47 = function() { return 'insert'; }; var peg$f48 = function() { return 'replace'; }; var peg$f49 = function(l) { return l; }; var peg$f50 = function(head, tail) { return createList(head, tail); }; var peg$f51 = function(l) { return l; }; var peg$f52 = function(head, tail) { const el = { type: 'expr_list' }; el.value = createList(head, tail); return el; }; var peg$f53 = function(n, u) { return { type: 'interval', value: [n, u] } }; var peg$f54 = function(expr, condition_list, otherwise) { if (otherwise) condition_list.push(otherwise); return { type: 'case', expr: expr || null, args: condition_list }; }; var peg$f55 = function(condition, result) { return { type: 'when', cond: condition, result: result }; }; var peg$f56 = function(result) { return { type: 'else', result: result }; }; var peg$f57 = function(head, tail) { return createBinaryExprChain(head, tail); }; var peg$f58 = function(head, tail) { return createBinaryExprChain(head, tail); }; var peg$f59 = function(expr) { return createUnaryExpr('NOT', expr); }; var peg$f60 = function(left, rh) { if (rh === null) return left; else if (rh.type === 'arithmetic') return createBinaryExprChain(left, rh.tail); else return createBinaryExpr(rh.op, left, rh.right); }; var peg$f61 = function(op, stmt) { stmt.parentheses = true; return createUnaryExpr(op, stmt); }; var peg$f62 = function(nk) { return nk[0] + ' ' + nk[2]; }; var peg$f63 = function(l) { return { type: 'arithmetic', tail: l }; }; var peg$f64 = function(right) { return { op: 'IS', right: right }; }; var peg$f65 = function(right) { return { op: 'IS NOT', right: right }; }; var peg$f66 = function(op, begin, end) { return { op: op, right: { type: 'expr_list', value: [begin, end] } }; }; var peg$f67 = function(nk) { return nk[0] + ' ' + nk[2]; }; var peg$f68 = function(nk) { return nk[0] + ' ' + nk[2]; }; var peg$f69 = function(nk) { return nk[0] + ' ' + nk[2]; }; var peg$f70 = function(op, right) { return { op: op, right: right }; }; var peg$f71 = function(op, l) { return { op: op, right: l }; }; var peg$f72 = function(op, e) { return { op: op, right: e }; }; var peg$f73 = function(head, tail) { return createBinaryExprChain(head, tail); }; var peg$f74 = function(head, tail) { return createBinaryExprChain(head, tail) }; var peg$f75 = function(e) { e.parentheses = true; return e; }; var peg$f76 = function(list) { list.parentheses = true; return list; }; var peg$f77 = function(tbl, col) { columnList.add(`select::${tbl}::${col}`); return { type: 'column_ref', table: tbl, column: col }; }; var peg$f78 = function(col) { columnList.add(`select::null::${col}`); return { type: 'column_ref', table: null, column: col }; }; var peg$f79 = function(head, tail) { return createList(head, tail); }; var peg$f80 = function(name) { return reservedMap[name.toUpperCase()] === true; }; var peg$f81 = function(name) { return name; }; var peg$f82 = function(name) { return name; }; var peg$f83 = function(name) { if (reservedMap[name.toUpperCase()] === true) throw new Error("Error: "+ JSON.stringify(name)+" is a reserved word, can not as alias clause"); return false }; var peg$f84 = function(name) { return name; }; var peg$f85 = function(name) { return name; }; var peg$f86 = function(chars) { return chars.join(''); }; var peg$f87 = function(chars) { return chars.join(''); }; var peg$f88 = function(chars) { return chars.join(''); }; var peg$f89 = function(name) { return reservedMap[name.toUpperCase()] === true; }; var peg$f90 = function(name) { return name; }; var peg$f91 = function(start, parts) { return start + parts.join(''); }; var peg$f92 = function(start, parts) { return start + parts.join(''); }; var peg$f93 = function(l) { return { type: 'param', value: l[1] }; }; var peg$f94 = function(name, e) { return { type: 'aggr_func', name: name, args: { expr: e } }; }; var peg$f95 = function(name, arg) { return { type: 'aggr_func', name: name, args: arg }; }; var peg$f96 = function(e) { return { expr: e }; }; var peg$f97 = function(d, c) { return { distinct: d, expr: c }; }; var peg$f98 = function() { return { type: 'star', value: '*' }; }; var peg$f99 = function(name, l) { return { type: 'function', name: name, args: l ? l: { type: 'expr_list', value: [] } }; }; var peg$f100 = function(name) { return { type: 'function', name: name, args: { type: 'expr_list', value: [] } }; }; var peg$f101 = function(e, t) { return { type: 'cast', expr: e, target: t }; }; var peg$f102 = function(e, precision) { return { type: 'cast', expr: e, target: { dataType: 'DECIMAL(' + precision + ')' } }; }; var peg$f103 = function(e, precision, scale) { return { type: 'cast', expr: e, target: { dataType: 'DECIMAL(' + precision + ', ' + scale + ')' } }; }; var peg$f104 = function(e, s, t) { /* MySQL cast to un-/signed integer */ return { type: 'cast', expr: e, target: { dataType: s + (t ? ' ' + t: '') } }; }; var peg$f105 = function(head, tail) { return createList(head, tail); }; var peg$f106 = function() { return { type: 'null', value: null }; }; var peg$f107 = function() { return { type: 'bool', value: true }; }; var peg$f108 = function() { return { type: 'bool', value: false }; }; var peg$f109 = function(ca) { return { type: 'string', value: ca[1].join('') }; }; var peg$f110 = function(ca) { return { type: 'string', value: ca[1].join('') }; }; var peg$f111 = function(type, ca) { return { type: type.toLowerCase(), value: ca[1].join('') }; }; var peg$f112 = function() { return "'"; }; var peg$f113 = function() { return '"'; }; var peg$f114 = function() { return "\\"; }; var peg$f115 = function() { return "/"; }; var peg$f116 = function() { return "\b"; }; var peg$f117 = function() { return "\f"; }; var peg$f118 = function() { return "\n"; }; var peg$f119 = function() { return "\r"; }; var peg$f120 = function() { return "\t"; }; var peg$f121 = function(h1, h2, h3, h4) { return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4)); }; var peg$f122 = function(n) { return { type: 'number', value: n }; }; var peg$f123 = function(int_, frac, exp) { return parseFloat(int_ + frac + exp); }; var peg$f124 = function(int_, frac) { return parseFloat(int_ + frac); }; var peg$f125 = function(int_, exp) { return parseFloat(int_ + exp); }; var peg$f126 = function(int_) { return parseFloat(int_); }; var peg$f127 = function(digit19, digits) { return digit19 + digits; }; var peg$f128 = function(op, digit19, digits) { return "-" + digit19 + digits; }; var peg$f129 = function(op, digit) { return "-" + digit; }; var peg$f130 = function(digits) { return "." + digits; }; var peg$f131 = function(e, digits) { return e + digits; }; var peg$f132 = function(digits) { return digits.join(""); }; var peg$f133 = function(e, sign) { return e + (sign !== null ? sign: ''); }; var peg$f134 = function() { return 'ASC'; }; var peg$f135 = function() { return 'DESC'; }; var peg$f136 = function() { return 'ALL'; }; var peg$f137 = function() { return 'DISTINCT';}; var peg$f138 = function() { return 'BETWEEN'; }; var peg$f139 = function() { return 'IN'; }; var peg$f140 = function() { return 'IS'; }; var peg$f141 = function() { return 'LIKE'; }; var peg$f142 = function() { return 'EXISTS'; }; var peg$f143 = function() { return 'NOT'; }; var peg$f144 = function() { return 'AND'; }; var peg$f145 = function() { return 'OR'; }; var peg$f146 = function() { return 'COUNT'; }; var peg$f147 = function() { return 'MAX'; }; var peg$f148 = function() { return 'MIN'; }; var peg$f149 = function() { return 'SUM'; }; var peg$f150 = function() { return 'AVG'; }; var peg$f151 = function() { return 'CHAR'; }; var peg$f152 = function() { return 'VARCHAR';}; var peg$f153 = function() { return 'NUMERIC'; }; var peg$f154 = function() { return 'DECIMAL'; }; var peg$f155 = function() { return 'SIGNED'; }; var peg$f156 = function() { return 'UNSIGNED'; }; var peg$f157 = function() { return 'INT'; }; var peg$f158 = function() { return 'INTEGER'; }; var peg$f159 = function() { return 'JSON'; }; var peg$f160 = function() { return 'SMALLINT'; }; var peg$f161 = function() { return 'DATE'; }; var peg$f162 = function() { return 'TIME'; }; var peg$f163 = function() { return 'TIMESTAMP'; }; var peg$f164 = function() { return 'USER'; }; var peg$f165 = function() { return 'CURRENT_DATE'; }; var peg$f166 = function() { return 'ADDDATE'; }; var peg$f167 = function() { return 'INTERVAL'; }; var peg$f168 = function() { return 'YEAR'; }; var peg$f169 = function() { return 'MONTH'; }; var peg$f170 = function() { return 'DAY'; }; var peg$f171 = function() { return 'HOUR'; }; var peg$f172 = function() { return 'MINUTE'; }; var peg$f173 = function() { return 'SECOND'; }; var peg$f174 = function() { return 'CURRENT_TIME'; }; var peg$f175 = function() { return 'CURRENT_TIMESTAMP'; }; var peg$f176 = function() { return 'CURRENT_USER'; }; var peg$f177 = function() { return 'SESSION_USER'; }; var peg$f178 = function() { return 'SYSTEM_USER'; }; var peg$f179 = function() { varList = []; return true; }; var peg$f180 = function(s) { return { stmt: s, vars: varList }; }; var peg$f181 = function(va, e) { return { type: 'assign', left: va, right: e }; }; var peg$f182 = function(e) { return { type: 'return', expr: e }; }; var peg$f183 = function(head, tail) { return createBinaryExprChain(head, tail); }; var peg$f184 = function(head, tail) { return createBinaryExprChain(head, tail); }; var peg$f185 = function(lt, op, rt, expr) { return { type: 'join', ltable: lt, rtable: rt, op: op, on: expr }; }; var peg$f186 = function(e) { e.parentheses = true; return e; }; var peg$f187 = function(name, l) { //compatible with original func_call return { type: 'function', name: name, args: { type: 'expr_list', value: l } }; }; var peg$f188 = function(head, tail) { return createList(head, tail); }; var peg$f189 = function(l) { return { type: 'array', value: l }; }; var peg$f190 = function(name, m) { //push for analysis varList.push(name); return { type: 'var', name: name, members: m }; }; var peg$f191 = function(l) { const s = []; for (let i = 0; i < l.length; i++) { s.push(l[i][1]); } return s; }; var peg$f192 = function(t, l) { return { dataType: t, length: parseInt(l.join(''), 10) }; }; var peg$f193 = function(t) { return { dataType: t }; }; var peg$f194 = function(t) { return { dataType: t }; }; var peg$f195 = function(t) { return { dataType: t }; }; var peg$f196 = function(t) { return { dataType: t }; }; var peg$f197 = function(t) { return { dataType: t }; }; var peg$currPos = 0; var peg$savedPos = 0; var peg$posDetailsCache = [{ line: 1, column: 1 }]; var peg$maxFailPos = 0; var peg$maxFailExpected = []; var peg$silentFails = 0; var peg$result; if ("startRule" in options) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); } peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; } function text() { return input.substring(peg$savedPos, peg$currPos); } function offset() { return peg$savedPos; } function range() { return { source: peg$source, start: peg$savedPos, end: peg$currPos }; } function location() { return peg$computeLocation(peg$savedPos, peg$currPos); } function expected(description, location) { location = location !== undefined ? location : peg$computeLocation(peg$savedPos, peg$currPos); throw peg$buildStructuredError( [peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location ); } function error(message, location) { location = location !== undefined ? location : peg$computeLocation(peg$savedPos, peg$currPos); throw peg$buildSimpleError(message, location); } function peg$literalExpectation(text, ignoreCase) { return { type: "literal", text: text, ignoreCase: ignoreCase }; } function peg$classExpectation(parts, inverted, ignoreCase) { return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; } function peg$anyExpectation() { return { type: "any" }; } function peg$endExpectation() { return { type: "end" }; } function peg$otherExpectation(description) { return { type: "other", description: description }; } function peg$computePosDetails(pos) { var details = peg$posDetailsCache[pos]; var p; if (details) { return details; } else { p = pos - 1; while (!peg$posDetailsCache[p]) { p--; } details = peg$posDetailsCache[p]; details = { line: details.line, column: details.column }; while (p < pos) { if (input.charCodeAt(p) === 10) { details.line++; details.column = 1; } else { details.column++; } p++; } peg$posDetailsCache[pos] = details; return details; } } function peg$computeLocation(startPos, endPos, offset) { var startPosDetails = peg$computePosDetails(startPos); var endPosDetails = peg$computePosDetails(endPos); var res = { source: peg$source, start: { offset: startPos, line: startPosDetails.line, column: startPosDetails.column }, end: { offset: endPos, line: endPosDetails.line, column: endPosDetails.column } }; if (offset && peg$source && (typeof peg$source.offset === "function")) { res.start = peg$source.offset(res.start); res.end = peg$source.offset(res.end); } return res; } function peg$fail(expected) { if (peg$currPos < peg$maxFailPos) { return; } if (peg$currPos > peg$maxFailPos) { peg$maxFailPos = peg$currPos; peg$maxFailExpected = []; } peg$maxFailExpected.push(expected); } function peg$buildSimpleError(message, location) { return new peg$SyntaxError(message, null, null, location); } function peg$buildStructuredError(expected, found, location) { return new peg$SyntaxError( peg$SyntaxError.buildMessage(expected, found), expected, found, location ); } function peg$parsestart() { var s0; s0 = peg$parsemultiple_stmt(); if (s0 === peg$FAILED) { s0 = peg$parsecrud_stmt(); } return s0; } function peg$parsecrud_stmt() { var s0; s0 = peg$parseunion_stmt(); if (s0 === peg$FAILED) { s0 = peg$parseupdate_stmt(); if (s0 === peg$FAILED) { s0 = peg$parsereplace_insert_stmt(); if (s0 === peg$FAILED) { s0 = peg$parseinsert_no_columns_stmt(); if (s0 === peg$FAILED) { s0 = peg$parsedelete_stmt(); if (s0 === peg$FAILED) { s0 = peg$parseproc_stmts(); } } } } } return s0; } function peg$parsemultiple_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsecrud_stmt(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseSEMICOLON(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecrud_stmt(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseSEMICOLON(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecrud_stmt(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f0(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseunion_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseselect_stmt(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_UNION(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseselect_stmt(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_UNION(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseselect_stmt(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f1(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseselect_stmt() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$parseselect_stmt_nake(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s2 = peg$c0; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e0); } } if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseselect_stmt(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); if (input.charCodeAt(peg$currPos) === 41) { s6 = peg$c1; peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e1); } } if (s6 !== peg$FAILED) { s2 = [s2, s3, s4, s5, s6]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f2(s1); } s0 = s1; } return s0; } function peg$parsewith_clause() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parseKW_WITH(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsecte_definition(); if (s3 !== peg$FAILED) { s4 = []; s5 = peg$currPos; s6 = peg$parse__(); s7 = peg$parseCOMMA(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsecte_definition(); if (s9 !== peg$FAILED) { s6 = [s6, s7, s8, s9]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } while (s5 !== peg$FAILED) { s4.push(s5); s5 = peg$currPos; s6 = peg$parse__(); s7 = peg$parseCOMMA(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsecte_definition(); if (s9 !== peg$FAILED) { s6 = [s6, s7, s8, s9]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f3(s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parse__(); s2 = peg$parseKW_WITH(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_RECURSIVE(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); s6 = peg$parsecte_definition(); if (s6 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f4(s6); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsecte_definition() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; s0 = peg$currPos; s1 = peg$parseident_name(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsecte_column_definition(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = peg$parseKW_AS(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseLPAREN(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parseunion_stmt(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseRPAREN(); if (s11 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f5(s1, s3, s9); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecte_column_definition() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsecolumn(); if (s3 !== peg$FAILED) { s4 = []; s5 = peg$currPos; s6 = peg$parse__(); s7 = peg$parseCOMMA(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsecolumn(); if (s9 !== peg$FAILED) { s6 = [s6, s7, s8, s9]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } while (s5 !== peg$FAILED) { s4.push(s5); s5 = peg$currPos; s6 = peg$parse__(); s7 = peg$parseCOMMA(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsecolumn(); if (s9 !== peg$FAILED) { s6 = [s6, s7, s8, s9]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } } s5 = peg$parse__(); s6 = peg$parseRPAREN(); if (s6 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f6(s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseselect_stmt_nake() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21; s0 = peg$currPos; s1 = peg$parsewith_clause(); if (s1 === peg$FAILED) { s1 = null; } s2 = peg$parse__(); s3 = peg$parseKW_SELECT(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseoption_clause(); if (s5 === peg$FAILED) { s5 = null; } s6 = peg$parse__(); s7 = peg$parseKW_DISTINCT(); if (s7 === peg$FAILED) { s7 = null; } s8 = peg$parse__(); s9 = peg$parsecolumn_clause(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parsefrom_clause(); if (s11 === peg$FAILED) { s11 = null; } s12 = peg$parse__(); s13 = peg$parsewhere_clause(); if (s13 === peg$FAILED) { s13 = null; } s14 = peg$parse__(); s15 = peg$parsegroup_by_clause(); if (s15 === peg$FAILED) { s15 = null; } s16 = peg$parse__(); s17 = peg$parsehaving_clause(); if (s17 === peg$FAILED) { s17 = null; } s18 = peg$parse__(); s19 = peg$parseorder_by_clause(); if (s19 === peg$FAILED) { s19 = null; } s20 = peg$parse__(); s21 = peg$parselimit_clause(); if (s21 === peg$FAILED) { s21 = null; } peg$savedPos = s0; s0 = peg$f7(s1, s5, s7, s9, s11, s13, s15, s17, s19, s21); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseoption_clause() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parsequery_option(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsequery_option(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsequery_option(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f8(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsequery_option() { var s0, s1; s0 = peg$currPos; s1 = peg$parseOPT_SQL_CALC_FOUND_ROWS(); if (s1 === peg$FAILED) { s1 = peg$parseOPT_SQL_CACHE(); if (s1 === peg$FAILED) { s1 = peg$parseOPT_SQL_NO_CACHE(); } if (s1 === peg$FAILED) { s1 = peg$parseOPT_SQL_BIG_RESULT(); if (s1 === peg$FAILED) { s1 = peg$parseOPT_SQL_SMALL_RESULT(); if (s1 === peg$FAILED) { s1 = peg$parseOPT_SQL_BUFFER_RESULT(); } } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f9(s1); } s0 = s1; return s0; } function peg$parsecolumn_clause() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseKW_ALL(); if (s1 === peg$FAILED) { s1 = peg$currPos; s2 = peg$parseSTAR(); if (s2 !== peg$FAILED) { s3 = peg$currPos; peg$silentFails++; s4 = peg$parseident_start(); peg$silentFails--; if (s4 === peg$FAILED) { s3 = undefined; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$parseSTAR(); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f10(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsecolumn_list_item(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn_list_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn_list_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f11(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsecolumn_list_item() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseident(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseDOT(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseSTAR(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f12(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseexpr(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsealias_clause(); if (s3 === peg$FAILED) { s3 = null; } peg$savedPos = s0; s0 = peg$f13(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsealias_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_AS(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsealias_ident(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f14(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_AS(); if (s1 === peg$FAILED) { s1 = null; } s2 = peg$parse__(); s3 = peg$parseident(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f15(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsefrom_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_FROM(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsetable_ref_list(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f16(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetable_ref_list() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsetable_base(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parsetable_ref(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parsetable_ref(); } peg$savedPos = s0; s0 = peg$f17(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsetable_ref() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$parse__(); s2 = peg$parseCOMMA(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parsetable_base(); if (s4 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f18(s4); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parse__(); s2 = peg$parsetable_join(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f19(s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsetable_join() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15; s0 = peg$currPos; s1 = peg$parsejoin_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsetable_base(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseKW_USING(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseLPAREN(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parseident_name(); if (s9 !== peg$FAILED) { s10 = []; s11 = peg$currPos; s12 = peg$parse__(); s13 = peg$parseCOMMA(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); s15 = peg$parseident_name(); if (s15 !== peg$FAILED) { s12 = [s12, s13, s14, s15]; s11 = s12; } else { peg$currPos = s11; s11 = peg$FAILED; } } else { peg$currPos = s11; s11 = peg$FAILED; } while (s11 !== peg$FAILED) { s10.push(s11); s11 = peg$currPos; s12 = peg$parse__(); s13 = peg$parseCOMMA(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); s15 = peg$parseident_name(); if (s15 !== peg$FAILED) { s12 = [s12, s13, s14, s15]; s11 = s12; } else { peg$currPos = s11; s11 = peg$FAILED; } } else { peg$currPos = s11; s11 = peg$FAILED; } } s11 = peg$parse__(); s12 = peg$parseRPAREN(); if (s12 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f20(s1, s3, s9, s10); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsejoin_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsetable_base(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseon_clause(); if (s5 === peg$FAILED) { s5 = null; } peg$savedPos = s0; s0 = peg$f21(s1, s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsejoin_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseunion_stmt(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsealias_clause(); if (s9 === peg$FAILED) { s9 = null; } s10 = peg$parse__(); s11 = peg$parseon_clause(); if (s11 === peg$FAILED) { s11 = null; } peg$savedPos = s0; s0 = peg$f22(s1, s5, s9, s11); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parsetable_base() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseKW_DUAL(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f23(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsetable_name(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsealias_clause(); if (s3 === peg$FAILED) { s3 = null; } peg$savedPos = s0; s0 = peg$f24(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseunion_stmt(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsealias_clause(); if (s7 === peg$FAILED) { s7 = null; } peg$savedPos = s0; s0 = peg$f25(s3, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parsejoin_op() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseKW_LEFT(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_OUTER(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = peg$parseKW_JOIN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f26(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_RIGHT(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_OUTER(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = peg$parseKW_JOIN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f27(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_FULL(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_OUTER(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = peg$parseKW_JOIN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f28(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_INNER(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = null; } s2 = peg$parseKW_JOIN(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f29(); } else { peg$currPos = s0; s0 = peg$FAILED; } } } } return s0; } function peg$parsetable_name() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$parseident(); if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parse__(); s4 = peg$parseDOT(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); s6 = peg$parseident(); if (s6 !== peg$FAILED) { s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = null; } peg$savedPos = s0; s0 = peg$f30(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsevar_decl(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f31(s1); } s0 = s1; } return s0; } function peg$parseon_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_ON(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f32(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsewhere_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_WHERE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f33(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsegroup_by_clause() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseKW_GROUP(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_BY(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsecolumn_ref_list(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f34(s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecolumn_ref_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsecolumn_ref(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn_ref(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn_ref(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f35(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsehaving_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_HAVING(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f36(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseorder_by_clause() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseKW_ORDER(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_BY(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseorder_by_list(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f37(s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseorder_by_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseorder_by_element(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseorder_by_element(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseorder_by_element(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f38(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseorder_by_element() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseexpr(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_DESC(); if (s3 === peg$FAILED) { s3 = peg$parseKW_ASC(); } if (s3 === peg$FAILED) { s3 = null; } peg$savedPos = s0; s0 = peg$f39(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsenumber_or_param() { var s0; s0 = peg$parseliteral_numeric(); if (s0 === peg$FAILED) { s0 = peg$parseparam(); } return s0; } function peg$parselimit_clause() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$parseKW_LIMIT(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsenumber_or_param(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$currPos; s6 = peg$parseCOMMA(); if (s6 !== peg$FAILED) { s7 = peg$parse__(); s8 = peg$parsenumber_or_param(); if (s8 !== peg$FAILED) { s6 = [s6, s7, s8]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 === peg$FAILED) { s5 = null; } peg$savedPos = s0; s0 = peg$f40(s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseupdate_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parseKW_UPDATE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsetable_name(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseKW_SET(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseset_list(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsewhere_clause(); if (s9 === peg$FAILED) { s9 = null; } peg$savedPos = s0; s0 = peg$f41(s3, s7, s9); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsedelete_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseKW_DELETE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsetable_ref_list(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = peg$parsefrom_clause(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsewhere_clause(); if (s7 === peg$FAILED) { s7 = null; } peg$savedPos = s0; s0 = peg$f42(s3, s5, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseset_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseset_item(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseset_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseset_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f43(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseset_item() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseident(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseDOT(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = null; } s2 = peg$parse__(); s3 = peg$parsecolumn_name(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (input.charCodeAt(peg$currPos) === 61) { s5 = peg$c2; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e2); } } if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseadditive_expr(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f44(s1, s3, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsereplace_insert_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; s0 = peg$currPos; s1 = peg$parsereplace_insert(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_INTO(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsetable_name(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseLPAREN(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsecolumn_list(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseRPAREN(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); s13 = peg$parsevalue_clause(); if (s13 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f45(s1, s5, s9, s13); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseinsert_no_columns_stmt() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsereplace_insert(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_INTO(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsetable_name(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsevalue_clause(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f46(s1, s5, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsereplace_insert() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_INSERT(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f47(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_REPLACE(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f48(); } s0 = s1; } return s0; } function peg$parsevalue_clause() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_VALUES(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsevalue_list(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f49(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsevalue_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsevalue_item(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsevalue_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsevalue_item(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f50(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsevalue_item() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr_list(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f51(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexpr_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseexpr(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseexpr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseexpr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f52(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseinterval_expr() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseKW_INTERVAL(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsenumber(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseinterval_unit(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f53(s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecase_expr() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; s0 = peg$currPos; s1 = peg$parseKW_CASE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 === peg$FAILED) { s3 = null; } s4 = peg$parse__(); s5 = []; s6 = peg$parsecase_when_then(); if (s6 !== peg$FAILED) { while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$parsecase_when_then(); } } else { s5 = peg$FAILED; } if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecase_else(); if (s7 === peg$FAILED) { s7 = null; } s8 = peg$parse__(); s9 = peg$parseKW_END(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseKW_CASE(); if (s11 === peg$FAILED) { s11 = null; } peg$savedPos = s0; s0 = peg$f54(s3, s5, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecase_when_then() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$parseKW_WHEN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseKW_THEN(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseexpr(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); peg$savedPos = s0; s0 = peg$f55(s3, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecase_else() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_ELSE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f56(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexpr() { var s0; s0 = peg$parseor_expr(); if (s0 === peg$FAILED) { s0 = peg$parseselect_stmt(); } return s0; } function peg$parseor_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseand_expr(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_OR(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseand_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_OR(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseand_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f57(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseand_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsenot_expr(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_AND(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsenot_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseKW_AND(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsenot_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f58(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsenot_expr() { var s0, s1, s2, s3, s4; s0 = peg$parsecomparison_expr(); if (s0 === peg$FAILED) { s0 = peg$parseexists_expr(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_NOT(); if (s1 === peg$FAILED) { s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 33) { s2 = peg$c3; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e3); } } if (s2 !== peg$FAILED) { s3 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 61) { s4 = peg$c2; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e2); } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = undefined; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsenot_expr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f59(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parsecomparison_expr() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseadditive_expr(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsecomparison_op_right(); if (s3 === peg$FAILED) { s3 = null; } peg$savedPos = s0; s0 = peg$f60(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexists_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseexists_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseunion_stmt(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f61(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexists_op() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_NOT(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_EXISTS(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f62(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$parseKW_EXISTS(); } return s0; } function peg$parsecomparison_op_right() { var s0; s0 = peg$parsearithmetic_op_right(); if (s0 === peg$FAILED) { s0 = peg$parsein_op_right(); if (s0 === peg$FAILED) { s0 = peg$parsebetween_op_right(); if (s0 === peg$FAILED) { s0 = peg$parseis_op_right(); if (s0 === peg$FAILED) { s0 = peg$parselike_op_right(); } } } } return s0; } function peg$parsearithmetic_op_right() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = []; s2 = peg$currPos; s3 = peg$parse__(); s4 = peg$parsearithmetic_comparison_operator(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); s6 = peg$parseadditive_expr(); if (s6 !== peg$FAILED) { s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; s3 = peg$parse__(); s4 = peg$parsearithmetic_comparison_operator(); if (s4 !== peg$FAILED) { s5 = peg$parse__(); s6 = peg$parseadditive_expr(); if (s6 !== peg$FAILED) { s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f63(s1); } s0 = s1; return s0; } function peg$parsearithmetic_comparison_operator() { var s0; if (input.substr(peg$currPos, 2) === peg$c4) { s0 = peg$c4; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e4); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s0 = peg$c5; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e5); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c6) { s0 = peg$c6; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e6); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c7) { s0 = peg$c7; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e7); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 60) { s0 = peg$c8; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e8); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s0 = peg$c2; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e2); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c9) { s0 = peg$c9; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e9); } } } } } } } } return s0; } function peg$parseis_op_right() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$parseKW_IS(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseadditive_expr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f64(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_IS(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_NOT(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseadditive_expr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f65(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsebetween_op_right() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsebetween_or_not_between_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseadditive_expr(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseKW_AND(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseadditive_expr(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f66(s1, s3, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsebetween_or_not_between_op() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_NOT(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_BETWEEN(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f67(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$parseKW_BETWEEN(); } return s0; } function peg$parselike_op() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_NOT(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_LIKE(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f68(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$parseKW_LIKE(); } return s0; } function peg$parsein_op() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseKW_NOT(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); s4 = peg$parseKW_IN(); if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f69(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$parseKW_IN(); } return s0; } function peg$parselike_op_right() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parselike_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsecomparison_expr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f70(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsein_op_right() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsein_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr_list(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f71(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsein_op(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsevar_decl(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f72(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parseadditive_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsemultiplicative_expr(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseadditive_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsemultiplicative_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseadditive_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsemultiplicative_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f73(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseadditive_operator() { var s0; if (input.charCodeAt(peg$currPos) === 43) { s0 = peg$c10; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e10); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 45) { s0 = peg$c11; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e11); } } } return s0; } function peg$parsemultiplicative_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseprimary(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsemultiplicative_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseprimary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsemultiplicative_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseprimary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f74(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsemultiplicative_operator() { var s0; if (input.charCodeAt(peg$currPos) === 42) { s0 = peg$c12; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e12); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 47) { s0 = peg$c13; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e13); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { s0 = peg$c14; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e14); } } } } return s0; } function peg$parseprimary() { var s0, s1, s2, s3, s4, s5; s0 = peg$parseliteral(); if (s0 === peg$FAILED) { s0 = peg$parsecast_expr(); if (s0 === peg$FAILED) { s0 = peg$parseaggr_func(); if (s0 === peg$FAILED) { s0 = peg$parsefunc_call(); if (s0 === peg$FAILED) { s0 = peg$parsecase_expr(); if (s0 === peg$FAILED) { s0 = peg$parseinterval_expr(); if (s0 === peg$FAILED) { s0 = peg$parsecolumn_ref(); if (s0 === peg$FAILED) { s0 = peg$parseparam(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f75(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseexpr_list(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f76(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parsevar_decl(); } } } } } } } } } } return s0; } function peg$parsecolumn_ref() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseident(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseDOT(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsecolumn(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f77(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsecolumn(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f78(s1); } s0 = s1; } return s0; } function peg$parsecolumn_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsecolumn(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parsecolumn(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f79(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseident() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$parseident_name(); if (s1 !== peg$FAILED) { peg$savedPos = peg$currPos; s2 = peg$f80(s1); if (s2) { s2 = peg$FAILED; } else { s2 = undefined; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f81(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsequoted_ident(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f82(s1); } s0 = s1; } return s0; } function peg$parsealias_ident() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$parseident_name(); if (s1 !== peg$FAILED) { peg$savedPos = peg$currPos; s2 = peg$f83(s1); if (s2) { s2 = peg$FAILED; } else { s2 = undefined; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f84(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsequoted_ident(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f85(s1); } s0 = s1; } return s0; } function peg$parsequoted_ident() { var s0; s0 = peg$parsedouble_quoted_ident(); if (s0 === peg$FAILED) { s0 = peg$parsesingle_quoted_ident(); if (s0 === peg$FAILED) { s0 = peg$parsebackticks_quoted_ident(); } } return s0; } function peg$parsedouble_quoted_ident() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 34) { s1 = peg$c15; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e15); } } if (s1 !== peg$FAILED) { s2 = []; if (peg$r0.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e16); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); if (peg$r0.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e16); } } } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { s3 = peg$c15; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e15); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f86(s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsesingle_quoted_ident() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 39) { s1 = peg$c16; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s1 !== peg$FAILED) { s2 = []; if (peg$r1.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e18); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); if (peg$r1.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e18); } } } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 39) { s3 = peg$c16; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f87(s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsebackticks_quoted_ident() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 96) { s1 = peg$c17; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e19); } } if (s1 !== peg$FAILED) { s2 = []; if (peg$r2.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e20); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); if (peg$r2.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e20); } } } } else { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 96) { s3 = peg$c17; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e19); } } if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f88(s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecolumn() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$parsecolumn_name(); if (s1 !== peg$FAILED) { peg$savedPos = peg$currPos; s2 = peg$f89(s1); if (s2) { s2 = peg$FAILED; } else { s2 = undefined; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f90(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parsequoted_ident(); } return s0; } function peg$parsecolumn_name() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseident_start(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parsecolumn_part(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parsecolumn_part(); } peg$savedPos = s0; s0 = peg$f91(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseident_name() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseident_start(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parseident_part(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parseident_part(); } peg$savedPos = s0; s0 = peg$f92(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseident_start() { var s0; if (peg$r3.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e21); } } return s0; } function peg$parseident_part() { var s0; if (peg$r4.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e22); } } return s0; } function peg$parsecolumn_part() { var s0; if (peg$r5.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e23); } } return s0; } function peg$parseparam() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 58) { s2 = peg$c18; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e24); } } if (s2 !== peg$FAILED) { s3 = peg$parseident_name(); if (s3 !== peg$FAILED) { s2 = [s2, s3]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f93(s1); } s0 = s1; return s0; } function peg$parseaggr_func() { var s0; s0 = peg$parseaggr_fun_count(); if (s0 === peg$FAILED) { s0 = peg$parseaggr_fun_smma(); } return s0; } function peg$parseaggr_fun_smma() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseKW_SUM_MAX_MIN_AVG(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseadditive_expr(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f94(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SUM_MAX_MIN_AVG() { var s0; s0 = peg$parseKW_SUM(); if (s0 === peg$FAILED) { s0 = peg$parseKW_MAX(); if (s0 === peg$FAILED) { s0 = peg$parseKW_MIN(); if (s0 === peg$FAILED) { s0 = peg$parseKW_AVG(); } } } return s0; } function peg$parseaggr_fun_count() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseKW_COUNT(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsecount_arg(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f95(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsecount_arg() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsestar_expr(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f96(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_DISTINCT(); if (s1 === peg$FAILED) { s1 = null; } s2 = peg$parse__(); s3 = peg$parsecolumn_ref(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f97(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsestar_expr() { var s0, s1; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 42) { s1 = peg$c12; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e12); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f98(); } s0 = s1; return s0; } function peg$parsefunc_call() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseident(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr_list(); if (s5 === peg$FAILED) { s5 = null; } s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f99(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parsescalar_func(); if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$parse__(); s4 = peg$parseLPAREN(); if (s4 !== peg$FAILED) { s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 === peg$FAILED) { s2 = null; } peg$savedPos = s0; s0 = peg$f100(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parsescalar_func() { var s0; s0 = peg$parseKW_CURRENT_DATE(); if (s0 === peg$FAILED) { s0 = peg$parseKW_CURRENT_TIME(); if (s0 === peg$FAILED) { s0 = peg$parseKW_CURRENT_TIMESTAMP(); if (s0 === peg$FAILED) { s0 = peg$parseKW_CURRENT_USER(); if (s0 === peg$FAILED) { s0 = peg$parseKW_USER(); if (s0 === peg$FAILED) { s0 = peg$parseKW_SESSION_USER(); if (s0 === peg$FAILED) { s0 = peg$parseKW_SYSTEM_USER(); } } } } } } return s0; } function peg$parsecast_expr() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21; s0 = peg$currPos; s1 = peg$parseKW_CAST(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseKW_AS(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsedata_type(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseRPAREN(); if (s11 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f101(s5, s9); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_CAST(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseKW_AS(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parseKW_DECIMAL(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseLPAREN(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); s13 = peg$parseint(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); s15 = peg$parseRPAREN(); if (s15 !== peg$FAILED) { s16 = peg$parse__(); s17 = peg$parseRPAREN(); if (s17 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f102(s5, s13); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_CAST(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseKW_AS(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parseKW_DECIMAL(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseLPAREN(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); s13 = peg$parseint(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); s15 = peg$parseCOMMA(); if (s15 !== peg$FAILED) { s16 = peg$parse__(); s17 = peg$parseint(); if (s17 !== peg$FAILED) { s18 = peg$parse__(); s19 = peg$parseRPAREN(); if (s19 !== peg$FAILED) { s20 = peg$parse__(); s21 = peg$parseRPAREN(); if (s21 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f103(s5, s13, s17); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_CAST(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseexpr(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseKW_AS(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); s9 = peg$parsesignedness(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); s11 = peg$parseKW_INTEGER(); if (s11 === peg$FAILED) { s11 = null; } s12 = peg$parse__(); s13 = peg$parseRPAREN(); if (s13 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f104(s5, s9, s11); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } return s0; } function peg$parsesignedness() { var s0; s0 = peg$parseKW_SIGNED(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNSIGNED(); } return s0; } function peg$parseliteral() { var s0; s0 = peg$parseliteral_string(); if (s0 === peg$FAILED) { s0 = peg$parseliteral_numeric(); if (s0 === peg$FAILED) { s0 = peg$parseliteral_bool(); if (s0 === peg$FAILED) { s0 = peg$parseliteral_null(); if (s0 === peg$FAILED) { s0 = peg$parseliteral_datetime(); } } } } return s0; } function peg$parseliteral_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseliteral(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseliteral(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseliteral(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f105(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseliteral_null() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_NULL(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f106(); } s0 = s1; return s0; } function peg$parseliteral_bool() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_TRUE(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f107(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_FALSE(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f108(); } s0 = s1; } return s0; } function peg$parseliteral_string() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 39) { s2 = peg$c16; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s2 !== peg$FAILED) { s3 = []; s4 = peg$parsesingle_char(); while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$parsesingle_char(); } if (input.charCodeAt(peg$currPos) === 39) { s4 = peg$c16; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f109(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 34) { s2 = peg$c15; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e15); } } if (s2 !== peg$FAILED) { s3 = []; s4 = peg$parsesingle_quote_char(); while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$parsesingle_quote_char(); } if (input.charCodeAt(peg$currPos) === 34) { s4 = peg$c15; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e15); } } if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f110(s1); } s0 = s1; } return s0; } function peg$parseliteral_datetime() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$parseKW_TIME(); if (s1 === peg$FAILED) { s1 = peg$parseKW_DATE(); if (s1 === peg$FAILED) { s1 = peg$parseKW_TIMESTAMP(); } } if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$currPos; if (input.charCodeAt(peg$currPos) === 39) { s4 = peg$c16; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s4 !== peg$FAILED) { s5 = []; s6 = peg$parsesingle_char(); while (s6 !== peg$FAILED) { s5.push(s6); s6 = peg$parsesingle_char(); } if (input.charCodeAt(peg$currPos) === 39) { s6 = peg$c16; peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s6 !== peg$FAILED) { s4 = [s4, s5, s6]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f111(s1, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsesingle_quote_char() { var s0; if (peg$r6.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e25); } } if (s0 === peg$FAILED) { s0 = peg$parseescape_char(); } return s0; } function peg$parsesingle_char() { var s0; if (peg$r7.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e26); } } if (s0 === peg$FAILED) { s0 = peg$parseescape_char(); } return s0; } function peg$parseescape_char() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c19) { s1 = peg$c19; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e27); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f112(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c20) { s1 = peg$c20; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e28); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f113(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c21) { s1 = peg$c21; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e29); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f114(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c22) { s1 = peg$c22; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e30); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f115(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c23) { s1 = peg$c23; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e31); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f116(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c24) { s1 = peg$c24; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e32); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f117(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c25) { s1 = peg$c25; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e33); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f118(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c26) { s1 = peg$c26; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e34); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f119(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c27) { s1 = peg$c27; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e35); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f120(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c28) { s1 = peg$c28; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e36); } } if (s1 !== peg$FAILED) { s2 = peg$parsehexDigit(); if (s2 !== peg$FAILED) { s3 = peg$parsehexDigit(); if (s3 !== peg$FAILED) { s4 = peg$parsehexDigit(); if (s4 !== peg$FAILED) { s5 = peg$parsehexDigit(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f121(s2, s3, s4, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } } } } } } } return s0; } function peg$parseline_terminator() { var s0; if (peg$r8.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e37); } } return s0; } function peg$parseliteral_numeric() { var s0, s1; s0 = peg$currPos; s1 = peg$parsenumber(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f122(s1); } s0 = s1; return s0; } function peg$parsenumber() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = peg$parseint(); if (s1 !== peg$FAILED) { s2 = peg$parsefrac(); if (s2 !== peg$FAILED) { s3 = peg$parseexp(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); peg$savedPos = s0; s0 = peg$f123(s1, s2, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseint(); if (s1 !== peg$FAILED) { s2 = peg$parsefrac(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); peg$savedPos = s0; s0 = peg$f124(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseint(); if (s1 !== peg$FAILED) { s2 = peg$parseexp(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); peg$savedPos = s0; s0 = peg$f125(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseint(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); peg$savedPos = s0; s0 = peg$f126(s1); } else { peg$currPos = s0; s0 = peg$FAILED; } } } } return s0; } function peg$parseint() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsedigit19(); if (s1 !== peg$FAILED) { s2 = peg$parsedigits(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f127(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parsedigit(); if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 45) { s1 = peg$c11; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e11); } } if (s1 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 43) { s1 = peg$c10; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e10); } } } if (s1 !== peg$FAILED) { s2 = peg$parsedigit19(); if (s2 !== peg$FAILED) { s3 = peg$parsedigits(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f128(s1, s2, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 45) { s1 = peg$c11; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e11); } } if (s1 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 43) { s1 = peg$c10; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e10); } } } if (s1 !== peg$FAILED) { s2 = peg$parsedigit(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f129(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } return s0; } function peg$parsefrac() { var s0, s1, s2; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s1 = peg$c29; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e38); } } if (s1 !== peg$FAILED) { s2 = peg$parsedigits(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f130(s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseexp() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$parsee(); if (s1 !== peg$FAILED) { s2 = peg$parsedigits(); if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f131(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsedigits() { var s0, s1, s2; s0 = peg$currPos; s1 = []; s2 = peg$parsedigit(); if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$parsedigit(); } } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f132(s1); } s0 = s1; return s0; } function peg$parsedigit() { var s0; if (peg$r9.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e39); } } return s0; } function peg$parsedigit19() { var s0; if (peg$r10.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e40); } } return s0; } function peg$parsehexDigit() { var s0; if (peg$r11.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e41); } } return s0; } function peg$parsee() { var s0, s1, s2; s0 = peg$currPos; if (peg$r12.test(input.charAt(peg$currPos))) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e42); } } if (s1 !== peg$FAILED) { if (peg$r13.test(input.charAt(peg$currPos))) { s2 = input.charAt(peg$currPos); peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e43); } } if (s2 === peg$FAILED) { s2 = null; } peg$savedPos = s0; s0 = peg$f133(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_NULL() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c30) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e44); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_TRUE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c31) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e45); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_FALSE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c32) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e46); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SHOW() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c33) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e47); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DROP() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c34) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e48); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SELECT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c35) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e49); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UPDATE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c36) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e50); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CREATE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c37) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e51); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DELETE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c38) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e52); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INSERT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c39) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e53); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_RECURSIVE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 9) === peg$c40) { s1 = peg$c40; peg$currPos += 9; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e54); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_REPLACE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c41) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e55); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_EXPLAIN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c42) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e56); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INTO() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c43) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e57); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_FROM() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c44) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e58); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SET() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c45) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e59); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_AS() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c46) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e60); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_TABLE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c47) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e61); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ON() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c48) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e62); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_LEFT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c49) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e63); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_RIGHT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c50) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e64); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_FULL() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c51) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e65); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INNER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c52) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e66); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_JOIN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c53) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e67); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_OUTER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c54) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNION() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c55) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e69); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_VALUES() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c56) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_USING() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c57) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_WHERE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c58) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_WITH() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c59) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e73); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_GROUP() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c60) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e74); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_BY() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c61) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e75); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ORDER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c62) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e76); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_HAVING() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c63) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e77); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_LIMIT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c64) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e78); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ASC() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c65) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e79); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f134(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DESC() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c66) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e80); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f135(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ALL() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c67) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e81); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f136(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DISTINCT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 8).toLowerCase() === peg$c68) { s1 = input.substr(peg$currPos, 8); peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e82); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f137(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_BETWEEN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c69) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e83); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f138(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_IN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c70) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e84); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f139(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_IS() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c71) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e85); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f140(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_LIKE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c72) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e86); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f141(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_EXISTS() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c73) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e87); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f142(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_NOT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c74) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e88); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f143(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_AND() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c75) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e89); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f144(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_OR() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 2).toLowerCase() === peg$c76) { s1 = input.substr(peg$currPos, 2); peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e90); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f145(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_COUNT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c77) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e91); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f146(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_MAX() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c78) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e92); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f147(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_MIN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c79) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e93); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f148(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SUM() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c80) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e94); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f149(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_AVG() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c81) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e95); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f150(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CASE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c82) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e96); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_WHEN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c83) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e97); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_THEN() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c84) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e98); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ELSE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c85) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e99); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_END() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c86) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e100); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CAST() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c87) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e101); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CHAR() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c88) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e102); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f151(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_VARCHAR() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c89) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e103); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f152(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_NUMERIC() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c90) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e104); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f153(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DECIMAL() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c91) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e105); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f154(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SIGNED() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c92) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e106); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f155(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNSIGNED() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 8).toLowerCase() === peg$c93) { s1 = input.substr(peg$currPos, 8); peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e107); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f156(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c94) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e108); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f157(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INTEGER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c95) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e109); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f158(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_JSON() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c96) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e110); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f159(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SMALLINT() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 8).toLowerCase() === peg$c97) { s1 = input.substr(peg$currPos, 8); peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e111); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f160(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_DATE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c98) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e112); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f161(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_TIME() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c99) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e113); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f162(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_TIMESTAMP() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 9).toLowerCase() === peg$c100) { s1 = input.substr(peg$currPos, 9); peg$currPos += 9; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e114); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f163(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_USER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c101) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e115); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f164(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CURRENT_DATE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 12).toLowerCase() === peg$c102) { s1 = input.substr(peg$currPos, 12); peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e116); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f165(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_ADD_DATE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7).toLowerCase() === peg$c103) { s1 = input.substr(peg$currPos, 7); peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e117); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f166(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_INTERVAL() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 8).toLowerCase() === peg$c104) { s1 = input.substr(peg$currPos, 8); peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e118); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f167(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_YEAR() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c105) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e119); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f168(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_MONTH() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 5).toLowerCase() === peg$c106) { s1 = input.substr(peg$currPos, 5); peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e120); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f169(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_DAY() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 3).toLowerCase() === peg$c107) { s1 = input.substr(peg$currPos, 3); peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e121); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f170(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_HOUR() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c108) { s1 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e122); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f171(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_MINUTE() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c109) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e123); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f172(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_UNIT_SECOND() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c110) { s1 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e124); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f173(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CURRENT_TIME() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 12).toLowerCase() === peg$c111) { s1 = input.substr(peg$currPos, 12); peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e125); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f174(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CURRENT_TIMESTAMP() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 17).toLowerCase() === peg$c112) { s1 = input.substr(peg$currPos, 17); peg$currPos += 17; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e126); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f175(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_CURRENT_USER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 12).toLowerCase() === peg$c113) { s1 = input.substr(peg$currPos, 12); peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e127); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f176(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SESSION_USER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 12).toLowerCase() === peg$c114) { s1 = input.substr(peg$currPos, 12); peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e128); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f177(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_SYSTEM_USER() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 11).toLowerCase() === peg$c115) { s1 = input.substr(peg$currPos, 11); peg$currPos += 11; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e129); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseident_start(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = undefined; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f178(); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseKW_VAR_PRE() { var s0; if (input.charCodeAt(peg$currPos) === 36) { s0 = peg$c116; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e130); } } return s0; } function peg$parseKW_RETURN() { var s0; if (input.substr(peg$currPos, 6).toLowerCase() === peg$c117) { s0 = input.substr(peg$currPos, 6); peg$currPos += 6; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e131); } } return s0; } function peg$parseKW_ASSIGN() { var s0; if (input.substr(peg$currPos, 2) === peg$c118) { s0 = peg$c118; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e132); } } return s0; } function peg$parseKW_DUAL() { var s0; if (input.substr(peg$currPos, 4).toLowerCase() === peg$c119) { s0 = input.substr(peg$currPos, 4); peg$currPos += 4; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e133); } } return s0; } function peg$parseOPT_SQL_CALC_FOUND_ROWS() { var s0; if (input.substr(peg$currPos, 19).toLowerCase() === peg$c120) { s0 = input.substr(peg$currPos, 19); peg$currPos += 19; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e134); } } return s0; } function peg$parseOPT_SQL_CACHE() { var s0; if (input.substr(peg$currPos, 9).toLowerCase() === peg$c121) { s0 = input.substr(peg$currPos, 9); peg$currPos += 9; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e135); } } return s0; } function peg$parseOPT_SQL_NO_CACHE() { var s0; if (input.substr(peg$currPos, 12).toLowerCase() === peg$c122) { s0 = input.substr(peg$currPos, 12); peg$currPos += 12; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e136); } } return s0; } function peg$parseOPT_SQL_SMALL_RESULT() { var s0; if (input.substr(peg$currPos, 16).toLowerCase() === peg$c123) { s0 = input.substr(peg$currPos, 16); peg$currPos += 16; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e137); } } return s0; } function peg$parseOPT_SQL_BIG_RESULT() { var s0; if (input.substr(peg$currPos, 14).toLowerCase() === peg$c124) { s0 = input.substr(peg$currPos, 14); peg$currPos += 14; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e138); } } return s0; } function peg$parseOPT_SQL_BUFFER_RESULT() { var s0; if (input.substr(peg$currPos, 17).toLowerCase() === peg$c125) { s0 = input.substr(peg$currPos, 17); peg$currPos += 17; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e139); } } return s0; } function peg$parseDOT() { var s0; if (input.charCodeAt(peg$currPos) === 46) { s0 = peg$c29; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e38); } } return s0; } function peg$parseCOMMA() { var s0; if (input.charCodeAt(peg$currPos) === 44) { s0 = peg$c126; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e140); } } return s0; } function peg$parseSTAR() { var s0; if (input.charCodeAt(peg$currPos) === 42) { s0 = peg$c12; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e12); } } return s0; } function peg$parseLPAREN() { var s0; if (input.charCodeAt(peg$currPos) === 40) { s0 = peg$c0; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e0); } } return s0; } function peg$parseRPAREN() { var s0; if (input.charCodeAt(peg$currPos) === 41) { s0 = peg$c1; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e1); } } return s0; } function peg$parseLBRAKE() { var s0; if (input.charCodeAt(peg$currPos) === 91) { s0 = peg$c127; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e141); } } return s0; } function peg$parseRBRAKE() { var s0; if (input.charCodeAt(peg$currPos) === 93) { s0 = peg$c128; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e142); } } return s0; } function peg$parseSEMICOLON() { var s0; if (input.charCodeAt(peg$currPos) === 59) { s0 = peg$c129; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e143); } } return s0; } function peg$parse__() { var s0, s1; s0 = []; s1 = peg$parsewhitespace(); if (s1 === peg$FAILED) { s1 = peg$parsecomment(); } while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parsewhitespace(); if (s1 === peg$FAILED) { s1 = peg$parsecomment(); } } return s0; } function peg$parsecomment() { var s0; s0 = peg$parseblock_comment(); if (s0 === peg$FAILED) { s0 = peg$parseline_comment(); } return s0; } function peg$parseblock_comment() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c130) { s1 = peg$c130; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e144); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c131) { s5 = peg$c131; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e145); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = undefined; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parsechar(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c131) { s5 = peg$c131; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e145); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = undefined; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parsechar(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (input.substr(peg$currPos, 2) === peg$c131) { s3 = peg$c131; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e145); } } if (s3 !== peg$FAILED) { s1 = [s1, s2, s3]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseline_comment() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c132) { s1 = peg$c132; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e146); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseEOL(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = undefined; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parsechar(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseEOL(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = undefined; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parsechar(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsechar() { var s0; if (input.length > peg$currPos) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e147); } } return s0; } function peg$parseinterval_unit() { var s0; s0 = peg$parseKW_UNIT_YEAR(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNIT_MONTH(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNIT_DAY(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNIT_HOUR(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNIT_MINUTE(); if (s0 === peg$FAILED) { s0 = peg$parseKW_UNIT_SECOND(); } } } } } return s0; } function peg$parsewhitespace() { var s0; if (peg$r14.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e148); } } return s0; } function peg$parseEOL() { var s0, s1; s0 = peg$parseEOF(); if (s0 === peg$FAILED) { s0 = []; if (peg$r8.test(input.charAt(peg$currPos))) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e37); } } if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); if (peg$r8.test(input.charAt(peg$currPos))) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e37); } } } } else { s0 = peg$FAILED; } } return s0; } function peg$parseEOF() { var s0, s1; s0 = peg$currPos; peg$silentFails++; if (input.length > peg$currPos) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e147); } } peg$silentFails--; if (s1 === peg$FAILED) { s0 = undefined; } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_stmts() { var s0, s1; s0 = []; s1 = peg$parseproc_stmt(); while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseproc_stmt(); } return s0; } function peg$parseproc_stmt() { var s0, s1, s2, s3; s0 = peg$currPos; peg$savedPos = peg$currPos; s1 = peg$f179(); if (s1) { s1 = undefined; } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseassign_stmt(); if (s3 === peg$FAILED) { s3 = peg$parsereturn_stmt(); } if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f180(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseassign_stmt() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parsevar_decl(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseKW_ASSIGN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseproc_expr(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f181(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsereturn_stmt() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_RETURN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseproc_expr(); if (s3 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f182(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_expr() { var s0; s0 = peg$parseselect_stmt(); if (s0 === peg$FAILED) { s0 = peg$parseproc_join(); if (s0 === peg$FAILED) { s0 = peg$parseproc_additive_expr(); if (s0 === peg$FAILED) { s0 = peg$parseproc_array(); } } } return s0; } function peg$parseproc_additive_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseproc_multiplicative_expr(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseadditive_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_multiplicative_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseadditive_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_multiplicative_expr(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f183(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_multiplicative_expr() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseproc_primary(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsemultiplicative_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_primary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parsemultiplicative_operator(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_primary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f184(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_join() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parsevar_decl(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parsejoin_op(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parsevar_decl(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseon_clause(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f185(s1, s3, s5, s7); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_primary() { var s0, s1, s2, s3, s4, s5; s0 = peg$parseliteral(); if (s0 === peg$FAILED) { s0 = peg$parsevar_decl(); if (s0 === peg$FAILED) { s0 = peg$parseproc_func_call(); if (s0 === peg$FAILED) { s0 = peg$parseparam(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseLPAREN(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseproc_additive_expr(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRPAREN(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f186(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } } return s0; } function peg$parseproc_func_call() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseident(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseproc_primary_list(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f187(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_primary_list() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseproc_primary(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_primary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); s5 = peg$parseCOMMA(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseproc_primary(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } peg$savedPos = s0; s0 = peg$f188(s1, s2); } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseproc_array() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseLBRAKE(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseproc_primary_list(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = peg$parseRBRAKE(); if (s5 !== peg$FAILED) { peg$savedPos = s0; s0 = peg$f189(s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsevar_decl() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseKW_VAR_PRE(); if (s1 !== peg$FAILED) { s2 = peg$parseident_name(); if (s2 !== peg$FAILED) { s3 = peg$parsemem_chain(); peg$savedPos = s0; s0 = peg$f190(s2, s3); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsemem_chain() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = []; s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s3 = peg$c29; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e38); } } if (s3 !== peg$FAILED) { s4 = peg$parseident_name(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s3 = peg$c29; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e38); } } if (s3 !== peg$FAILED) { s4 = peg$parseident_name(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } peg$savedPos = s0; s1 = peg$f191(s1); s0 = s1; return s0; } function peg$parsedata_type() { var s0; s0 = peg$parsecharacter_string_type(); if (s0 === peg$FAILED) { s0 = peg$parsenumeric_type(); if (s0 === peg$FAILED) { s0 = peg$parsedatetime_type(); if (s0 === peg$FAILED) { s0 = peg$parsejson_type(); } } } return s0; } function peg$parsecharacter_string_type() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; s1 = peg$parseKW_CHAR(); if (s1 === peg$FAILED) { s1 = peg$parseKW_VARCHAR(); } if (s1 !== peg$FAILED) { s2 = peg$parse__(); s3 = peg$parseLPAREN(); if (s3 !== peg$FAILED) { s4 = peg$parse__(); s5 = []; if (peg$r9.test(input.charAt(peg$currPos))) { s6 = input.charAt(peg$currPos); peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e39); } } if (s6 !== peg$FAILED) { while (s6 !== peg$FAILED) { s5.push(s6); if (peg$r9.test(input.charAt(peg$currPos))) { s6 = input.charAt(peg$currPos); peg$currPos++; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e39); } } } } else { s5 = peg$FAILED; } if (s5 !== peg$FAILED) { s6 = peg$parse__(); s7 = peg$parseRPAREN(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); peg$savedPos = s0; s0 = peg$f192(s1, s5); } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_CHAR(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f193(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseKW_VARCHAR(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f194(s1); } s0 = s1; } } return s0; } function peg$parsenumeric_type() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_NUMERIC(); if (s1 === peg$FAILED) { s1 = peg$parseKW_DECIMAL(); if (s1 === peg$FAILED) { s1 = peg$parseKW_INT(); if (s1 === peg$FAILED) { s1 = peg$parseKW_INTEGER(); if (s1 === peg$FAILED) { s1 = peg$parseKW_SMALLINT(); } } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f195(s1); } s0 = s1; return s0; } function peg$parsedatetime_type() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_DATE(); if (s1 === peg$FAILED) { s1 = peg$parseKW_TIME(); if (s1 === peg$FAILED) { s1 = peg$parseKW_TIMESTAMP(); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f196(s1); } s0 = s1; return s0; } function peg$parsejson_type() { var s0, s1; s0 = peg$currPos; s1 = peg$parseKW_JSON(); if (s1 !== peg$FAILED) { peg$savedPos = s0; s1 = peg$f197(s1); } s0 = s1; return s0; } const reservedMap = { 'ALL': true, 'AND': true, 'AS': true, 'ASC': true, 'BETWEEN': true, 'BY': true, 'CASE': true, 'CREATE': true, 'CONTAINS': true, 'CURRENT_DATE': true, 'CURRENT_TIME': true, 'CURRENT_TIMESTAMP': true, 'CURRENT_USER': true, 'DELETE': true, 'DESC': true, 'DISTINCT': true, 'DROP': true, 'ELSE': true, 'END': true, 'EXISTS': true, 'EXPLAIN': true, 'FALSE': true, 'FROM': true, 'FULL': true, 'GROUP': true, 'HAVING': true, 'IN': true, 'INDEX': true, 'INNER': true, 'INSERT': true, 'INTO': true, 'IS': true, 'JOIN': true, 'JSON': true, 'LEFT': true, 'LIKE': true, 'LIMIT': true, 'NOT': true, 'NULL': true, 'ON': true, 'OR': true, 'ORDER': true, 'OUTER': true, 'RECURSIVE': true, 'REPLACE': true, 'RIGHT': true, 'SELECT': true, 'SESSION_USER': true, 'SET': true, 'SHOW': true, 'STATUS': true, // reserved (MySQL) 'SYSTEM_USER': true, 'TABLE': true, 'THEN': true, 'TRUE': true, 'TYPE': true, // reserved (MySQL) 'UNION': true, 'UPDATE': true, 'USER': true, 'USING': true, 'VALUES': true, 'WITH': true, 'WHEN': true, 'WHERE': true }; function createUnaryExpr(op, e) { return { type: 'unary_expr', operator: op, expr: e }; } function createBinaryExpr(op, left, right) { return { type: 'binary_expr', operator: op, left: left, right: right }; } function createList(head, tail) { const result = [head]; for (let i = 0; i < tail.length; i++) { result.push(tail[i][3]); } return result; } function createBinaryExprChain(head, tail) { let result = head; for (let i = 0; i < tail.length; i++) { result = createBinaryExpr(tail[i][1], result, tail[i][3]); } return result; } const cmpPrefixMap = { '+': true, '-': true, '*': true, '/': true, '>': true, '<': true, '!': true, '=': true, //between 'B': true, 'b': true, //for is or in 'I': true, 'i': true, //for like 'L': true, 'l': true, //for not 'N': true, 'n': true }; // used for dependency analysis let varList = []; const tableList = new Set(); const columnList = new Set(); peg$result = peg$startRuleFunction(); if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { if (peg$result !== peg$FAILED && peg$currPos < input.length) { peg$fail(peg$endExpectation()); } throw peg$buildStructuredError( peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) ); } } module.exports = { SyntaxError: peg$SyntaxError, parse: peg$parse };