// This file was generated by lezer-generator. You probably shouldn't edit it.
import {LRParser} from "@lezer/lr"
const spec_Identifier = {__proto__:null,TRUE:32, true:32, FALSE:32, false:32, NULL:34, null:34, ALL:36, all:36, AND:36, and:36, AS:36, as:36, ASC:36, asc:36, BETWEEN:36, between:36, BY:36, by:36, CASE:36, case:36, CAST:36, cast:36, CREATE:36, create:36, CROSS:36, cross:36, DELETE:36, delete:36, DESC:36, desc:36, DISTINCT:36, distinct:36, DROP:36, drop:36, ELSE:36, else:36, END:36, end:36, EXCEPT:36, except:36, FROM:36, from:36, FUNCTION:36, function:36, GLOB:36, glob:36, GROUP:36, group:36, HAVING:36, having:36, IN:36, in:36, INCLUDE:36, include:36, INNER:36, inner:36, INSERT:36, insert:36, INTERSECT:36, intersect:36, IS:36, is:36, JOIN:36, join:36, LEFT:36, left:36, LIKE:36, like:36, LIMIT:36, limit:36, MACRO:36, macro:36, MODULE:36, module:36, NOT:36, not:36, OFFSET:36, offset:36, ON:36, on:36, OR:36, or:36, ORDER:36, order:36, OUTER:36, outer:36, OVER:36, over:36, PARTITION:36, partition:36, PERFETTO:36, perfetto:36, REPLACE:36, replace:36, RETURN:36, return:36, RETURNS:36, returns:36, RIGHT:36, right:36, SELECT:36, select:36, TABLE:36, table:36, THEN:36, then:36, UNION:36, union:36, UPDATE:36, update:36, USING:36, using:36, VALUES:36, values:36, VIEW:36, view:36, WHEN:36, WHERE:36, where:36, WITH:36, with:36, AVG:38, avg:38, COUNT:38, count:38, CUME_DIST:38, cume_dist:38, DATETIME:38, datetime:38, DENSE_RANK:38, dense_rank:38, EXISTS:38, exists:38, FIRST_VALUE:38, first_value:38, FIRST:38, first:38, GROUP_CONCAT:38, group_concat:38, IFNULL:38, ifnull:38, IIF:38, iif:38, LAG:38, lag:38, LAST_VALUE:38, last_value:38, LAST:38, last:38, LEAD:38, lead:38, MAX:38, max:38, MIN:38, min:38, NTH_VALUE:38, nth_value:38, NTILE:38, ntile:38, PERCENT_RANK:38, percent_rank:38, RANK:38, rank:38, ROW_NUMBER:38, row_number:38, SUM:38, sum:38, TIME:38, time:38, TOTAL:38, total:38}
export const parser = LRParser.deserialize({
  version: 14,
  states: "!WQYQPOOOOQO'#Ca'#CaOOQO'#Cc'#CcOOQO'#Cd'#CdOOQO'#Ce'#CeOOQO'#Ck'#CkOOQO'#Cg'#CgQYQPOOOOQO-E6e-E6e",
  stateData: "t~O^OSPOS~ORTOSTOUTOYTO`POaQObROcSO~O",
  goto: "o`PPPPPaPaaaPePPPkTTOVQVORWVTUOV",
  nodeNames: "⚠ LineComment Program String Number Boolean Identifier Null Keyword Function MacroVariable",
  maxTerm: 19,
  skippedNodes: [0,1],
  repeatNodeCount: 1,
  tokenData: "%g~RZXYtYZt]^tpqttu!Vwx!k}!O$X!Q![$v!c!}%O#R#S%O#T#o%O~yS^~XYtYZt]^tpqt~![TY~tu!V!Q![!V!c!}!V#R#S!V#T#o!V~!nVOw!kwx#Tx#O!k#O#P#Y#P;'S!k;'S;=`$R<%lO!k~#YOR~~#]RO;'S!k;'S;=`#f;=`O!k~#iWOw!kwx#Tx#O!k#O#P#Y#P;'S!k;'S;=`$R;=`<%l!k<%lO!k~$UP;=`<%l!k~$[P}!O$_~$dSP~OY$_Z;'S$_;'S;=`$p<%lO$_~$sP;=`<%l$_~${PS~!Q![$v~%TUU~tu%O!O!P%O!Q![%O!c!}%O#R#S%O#T#o%O",
  tokenizers: [0],
  topRules: {"Program":[0,2]},
  specialized: [{term: 6, get: (value) => spec_Identifier[value] || -1}],
  tokenPrec: 0
})
