// This file was generated by lezer-generator. You probably shouldn't edit it.
import { LRParser } from "@lezer/lr";
import { defaultContextTracker } from "./contextTracker.ts";
const spec_Identifier = {
  __proto__: null,
  aligned: 16,
  expandable: 26,
  abstract: 30,
  class: 32,
  int: 40,
  unsigned: 42,
  float: 44,
  bit: 46,
  extends: 52,
  lengthof: 114,
  if: 150,
  else: 152,
  switch: 156,
  case: 160,
  break: 162,
  default: 168,
  for: 172,
  computed: 178,
  const: 180,
  do: 184,
  while: 186,
  reserved: 194,
  legacy: 196,
  base64string: 208,
  utf16string: 216,
  utf8string: 224,
  utf8list: 226,
  utfstring: 228,
  map: 242,
};
export const parser = LRParser.deserialize({
  version: 14,
  states:
    "!.rOYQPOOOOQO'#E}'#E}QYQPOOOnQPO'#CbO!lQPO'#ChO!wQPO'#EWO#YQPO'#CaO#_QPO'#CaO#dQPO'#CaO#lQPO'#CaO#wQPO'#ExOOQO-E8{-E8{O#|QQO,58|O$_QPO,59SOOQO'#Co'#CoO$dQPO'#CoO$iQPO,5:rO$nQPO,5:rO$|QPO,58{O%[QPO,58{O%aQPO,58{O%fQPO,58{O%nQPO,5;dOOQO'#Cf'#CfO%sQPO1G.hO%xQPO1G.nOOQO,59Z,59ZO%}QPO1G0^O&VQPO1G0^O&[QPO'#CmO&mQPO'#CuO&rQPO'#DoO(zQPO1G.gO)RQPO1G.gO)WQPO1G.gO)`QPO1G.gO)kQPO1G.gO)yQPO1G.gO*OQPO1G.gO*TQPO1G1OOOQO7+$S7+$SOOQO7+$Y7+$YOOQO7+%x7+%xO*fQPO7+%xO+ZQPO7+%xO+cQPO'#CnO+hQPO'#FfO+pQPO,59XO+uQPO,59aO,QQPO,5:ZO-mQQO'#E_OOQO'#Fq'#FqO-tQSO'#FPO-|QQO'#DjOOQO'#Fr'#FrO*fQPO'#D[OOQO'#D['#D[O/vQWO'#D[O*fQPO'#D[OOQO'#Fh'#FhO1dQPO'#DwO1kQPO'#E_O1pQPO'#E`O2gQPO'#EgOOQO'#Fw'#FwO2nQPO'#EgOOQO'#Fu'#FuOOQO'#FT'#FTO2sQPO7+$RO2zQPO'#DfO3PQPO'#DxO3UQPO'#D{O!wQPO'#EWO3ZQPO'#ETO3`QPO'#EZO3eQPO'#E^O3jQPO'#EgO3qQPO'#EgO4OQPO'#EgO4]QPO'#FxO4bQPO'#F{O4gQPO'#GPO4lQPO'#GQOOQO7+$R7+$RO2sQPO7+$RO4qQPO7+$RO4vQPO7+$RO5OQPO7+$RO5ZQPO7+$RO5iQPO7+$RO5nQPO7+&jO7WQQO<<IdOOQO<<Id<<IdO*fQPO<<IdOOQO,59Y,59YO&[QPO'#FOO7_QPO,5<QOOQO1G.s1G.sO*fQPO'#CwOOQO1G.{1G.{O7gQPO1G/uOOQO'#Fi'#FiOOQO'#Fj'#FjOOQO'#Fk'#FkOOQO'#Fl'#FlOOQO'#Fm'#FmOOQO'#Fn'#FnOOQO'#Fo'#FoO*fQPO,59dO*fQPO,59dO*fQPO,59dO*fQPO,59dO*fQPO,59dO*fQPO,59dO*fQPO,59dO*fQPO'#D_O7lQPO'#D`OOQO'#Fp'#FpOOQO,59v,59vO*fQPO,5:qOOQO,5:y,5:yOOQO'#FQ'#FQO7qQSO'#DlO7yQPO,5;kOOQO-E8}-E8}O8OQQO,59vO9uQPO,5;PO9zQPO,5;QO:VQQO,59vOOQO,5:c,5:cO:^QPO,5:cO*fQPO'#EcO:eQPO,5:zO:mQPO,5:zO:rQPO,5;RO:wQPO,5;_OOQO,5;R,5;ROOQO-E9R-E9ROOQO<<Gm<<GmO*fQPO,5:QO*fQPO,5:dO*fQPO,5:gO:|QPO,5:rO;RQPO,5:oO;]QPO,5:uO*fQPO,5:xO:mQPO,5:zO1xQPO,5;RO;bQPO,5:zO;jQPO,5;RO3jQPO,5;RO;qQPO,5;_O;yQPO,5;QO<RQPO,5<dO<ZQPO,5<gO<cQPO,5<kO<kQPO,5<lO<sQPO<<GmO<sQPO<<GmO<zQPO<<GmO=PQPO<<GmO=XQPO<<GmO=dQPO<<GmO=rQPO<<JUOOQOAN?OAN?OO=wQQOAN?OOOQO,5;j,5;jOOQO-E8|-E8|O>OQQO'#FgO>YQPO,59cO>_QPO7+%aO@QQQO1G/OO@_QQO1G/OOB]QQO1G/OOBgQQO1G/OODbQQO1G/OODlQQO1G/OOFTQQO1G/OOFqQQO,59yOOQO,59z,59zOFxQQO1G0]OOQO-E9O-E9OOOQO1G1V1G1VOGSQPO1G0kOOQO1G0l1G0lOGXQPO1G0lOHRQPO'#EtOOQO'#FZ'#FZOH]QPO1G0yOH`QPO1G0yOOQO1G/b1G/bOOQO1G/}1G/}OHeQQO,5:}OOQO'#Ed'#EdOHlQPO1G0fOHwQPO1G0fOH|QPO1G0fOOQO1G0m1G0mOIUQPO1G0yOIZQQO1G/lOIbQQO1G0OOIiQQO1G0ROIpQPO1G0^O,VQQO'#EVOI{QPO1G0ZOJQQPO1G0ZOJXQPO1G0aOJ^QQO1G0dOJeQPO1G0fO:mQPO1G0fOJmQPO1G0mOJrQPO1G0kO:mQPO1G0fOJwQPO1G0yO1xQPO1G0mOJ|QPO1G0lOKXQPO1G2OOK^QQO1G2ROK^QQO1G2VOK^QQO1G2WOOQOAN=XAN=XOKcQPOAN=XOKcQPOAN=XOKjQPOAN=XOKoQPOAN=XOKwQPOAN=XOLSQPOAN?pOOQOG24jG24jO*fQPO'#FROLXQPO,5<ROOQO1G.}1G.}OLaQPO<<H{OOQO1G/e1G/eOLiQPO7+&VOOQO7+&W7+&WOLnQQO,5;aOLuQQO,5;`OOQO,5;`,5;`O*fQPO,5;bON`QPO'#EuOOQO-E9X-E9XOOQO7+&e7+&eOOQO1G0i1G0iOOQO7+&Q7+&QO*fQPO7+&QONgQPO7+&eONjQPO7+&eONoQPO7+&QONwQPO7+&QO! SQPO7+&QOOQO7+%W7+%WO&wQPO7+%jO! XQPO7+%mO*fQPO'#EuOOQO'#F['#F[O! ^QPO7+&iO! fQPO7+%uO! mQQO7+%uO! tQPO7+%uO*fQPO7+%{O3`QPO7+&OO! {QPO7+&QOOQO7+&X7+&XO!!TQPO7+&VO!!YQPO7+&QOIUQPO7+&eO:mQPO7+&QO!!bQPO7+&XO!!gQPO7+&WO!!lQ`O'#FVO!!wQPO'#EiOOQO7+'j7+'jOOQO'#En'#EnO!#PQPO'#FXO!#UQQO'#EmOOQO7+'m7+'mOOQO7+'q7+'qOOQO7+'r7+'rOOQOG22sG22sO!#^QPOG22sO!#^QPOG22sO!#eQPOG22sO!#jQPOG22sO!#rQPO'#EzO!#wQPO'#GRO!$PQPOG25[O!$UQQO,5;mOOQO-E9P-E9POOQO'#Ds'#DsO!$`QPO'#FtO!$kQPO'#FtOOQO'#Dr'#DrOOQOAN>gAN>gO!$sQPOAN>gO!$xQPO<<IqOOQO1G0{1G0{O!$}QPO1G0zO!%SQQO1G0|O!%ZQQO<<IlOOQO<<JP<<JPOOQO<<Il<<IlO*fQPO<<IlO!%eQPO<<JPO!%hQPO<<JPO!%mQPO<<IlO!%uQPO<<IUO!(XQPO<<IXOOQO-E9Y-E9YOOQO<<JT<<JTO!(dQQO<<IaO!(kQPO<<IaO!(rQQO<<IaO3`QPO<<IaO!(yQPO<<IaO!)OQQO<<IgOOQO<<Ij<<IjO!)VQPO<<IlO!)[QPO<<IqO!)aQPO<<IlO!)lQPO<<IlOOQO<<Is<<IsOOQO<<Ir<<IrOOQO'#FW'#FWO!)tQ`O'#EkO!*PQ`O'#EkO!*XQPO,5;qOOQO-E9T-E9TO!*^QpO,5;sOOQO-E9V-E9VOOQOLD(_LD(_O!*iQPOLD(_O!*iQPOLD(_O!*pQPOLD(_O!*uQPO,5;fOLSQPO'#F^O!*zQPO,5<mOOQOLD*vLD*vOLdQPO,5:`OLdQPO'#FSO!+SQPO,5<`OLdQPOG24ROOQOAN?]AN?]O!+[QPO7+&fO!+aQPO7+&hOOQOAN?WAN?WO*fQPOAN?WO!+fQQOAN?WOOQOAN?kAN?kO*fQPOAN?WO&wQPOAN>pOOQO'#FU'#FUO!+pQPOAN>sO!+{QPO'#D}O!,aQPO'#EROOQOAN>sAN>sO!,fQPOAN>sO!,kQPOAN>{O!,rQQOAN>{O3`QPOAN>{O!,yQPOAN>{OOQOAN>{AN>{O!-OQPOAN?RO!-TQPOAN?WO!-]QPOAN?]O!-bQPOAN?kO!-eQPOAN?kO!-jQPOAN?WOOQO-E9U-E9UO!-oQ`O,5;VOOQO,5;V,5;VOOQO1G1]1G1]OOQO'#FY'#FYO!-wQpO'#EoO!.SQPO1G1_OOQO!$'Ky!$'KyO!.XQPO!$'KyO!.XQPO!$'KyO!.`QPO'#E{OOQO1G1Q1G1QOOQO,5;x,5;xOOQO-E9[-E9[OOQO1G/z1G/zO!.sQPO,5;nOOQO,5;n,5;nOOQO-E9Q-E9QOOQOLD)mLD)mOOQO<<JQ<<JQOOQO<<JS<<JSO!/OQQOG24rOOQOG24rG24rO*fQPOG24rO!/VQQOG24rOOQOG24[G24[OOQO-E9S-E9SOOQOG24_G24_O!/aQPOG24_O!/fQPO'#DjO!/tQPO,5:iO!/yQPO,5:mO!0QQQOG24gO3`QPOG24gO!0XQPOG24gOOQOG24gG24gOOQOG24mG24mO*fQPOG24rOOQOG24wG24wOOQOG25VG25VO!0^QPOG24rOOQO1G0q1G0qOOQO-E9W-E9WOOQO7+&y7+&yOOQO!)9Ae!)9AeO!0fQPO!)9AeO:mQPO'#E|OOQO'#GT'#GTO!0mQPO'#GSO!0uQPO,5;gOOQOLD*^LD*^O!0zQQOLD*^O*fQPOLD*^OOQOLD)yLD)yO!1RQPO1G0TO!2wQPO1G0XO3`QPOLD*ROOQOLD*RLD*RO!3OQQOLD*^O*fQPOLD*^OOQO!.K7P!.K7POOQO,5;h,5;hO!.`QPO'#F]O!3YQPO,5<nOOQO1G1R1G1ROOQO!$'Mx!$'MxO!3bQQO!$'MxO!3iQPO7+%oO!3sQPO7+%oO!4TQPO7+%oOOQO!$'Mm!$'MmO*fQPO!$'MxO!4YQQO!$'MxOOQO,5;w,5;wOOQO-E9Z-E9ZOOQO!)9Cd!)9CdO!4dQPO<<IZO!4nQPO<<IZO!4sQPO<<IZOOQO<<IZ<<IZO!4xQQO!)9CdO*fQPO!)9CdO!5PQPOAN>uO!5UQPOAN>uOOQOAN>uAN>uOOQO!.K9O!.K9OO!5ZQQO!.K9OO!5bQPOG24aOOQOG24aG24aOOQO!4/.j!4/.jOOQOLD){LD){",
  stateData:
    "!5u~OPOSQOS~OWRO]SO_VO`UO!{TO#mYO~OX[O]UX_UX`UXVUXdUXeUXfUXgUX#[UX#`UX#dUX#eUX#fUX~OX]O_[X`[X~Od^Oe_Of^Og^O!|aO~OVbO~O`cO~O_dO`cO~O]SO_dO`cO~OVfO~O$TgO$UgO$VgO$WgO$XgO~O^iO~OdjO~OVkO~Od^Oe_Of^Og^O~OXmOjnO!doO!jpO~OVtO~O`uO~O_vO`uO~OXwO~OZxO~OZyO~O!e{O!tzO~OV|O~OV}Od^Oe_Of^Og^O~OV!QO~Og!RO~OV!ZOWROX![O^!WOd^Oe_Of^Og^O!W!TO!X!TO!Z!gO![!WO!]!WO!_!UO!a!WO!b!WO!j!^O!m!hO!p!iO!x!kO!{!jO!|!nO#O!lO#P!mO#T!oO#U!pO#[!qO#`!rO#d!sO#e!sO#f!tO~OS!uO~P&wO!j!vO~O!doO!j!vO~OjnO!doO!j!vO~OXmOjnO!doO!j!vO~OV!zO~O`!{O~OV!|Od^Oe_Of^Og^O~OV!YOX![O^!WO!W!TO!X!TO!Z!gO![!WO!]!WO!_!UO!a!WO!b!WO~O!e#PO!t#OO~OV#QO~Oh#ROZ$YX~OZ#TO~OX#UO!dia!jia~OX#WO~Om#XOn#XOo#XOp#YOq#YOr#ZOs#ZOt#[Ou#[Ov#[Ow#[Ox#]Oy#]Oz#^O{#^O|#_O}#_O!Q#gO!T#hO!U#iO!V#iO!e#kO~O!t#lO~P,VO$g#mO!_!`P~O!_!UOm!^Xn!^Xo!^Xp!^Xq!^Xr!^Xs!^Xt!^Xu!^Xv!^Xw!^Xx!^Xy!^Xz!^X{!^X|!^X}!^X!Q!^X!T!^X!U!^X!V!^X!e!^X!t!^XZ!^Xh!^X!P!^X!i!^X~OV#sOm!OXn!OXo!OXp!OXq!OXr!OXs!OXt!OXu!OXv!OXw!OXx!OXy!OXz!OX{!OX|!OX}!OX!Q!OX!T!OX!U!OX!V!OX!e!OX!t!OX~OS#uO~P&wO!t#lO~OX#wOt#rO~Od^Oe_Of^Og^O#[!qO#`!rO#d!sO#e!sO#f!tO~OV#{O~P1xO!t#|O~OS$OO~P&wOX$PO~OX$QO~OX$RO~OX$TO~O!j!^O~OX$VO~OWRO~P1xOV$]OWRO!|$[O~P1xOV$^OWRO!|$[O~P1xOV$_O~OV$`O~OV$aO~OV$bO~O!j$dO~O!doO!j$dO~OjnO!doO!j$dO~OXmOjnO!doO!j$dO~OV$hO~OZ$iO~Om#XOn#XOo#XOp#YOq#YOr#ZOs#ZOt#[Ou#[Ov#[Ow#[Ox#]Oy#]Oz#^O{#^O|#_O}#_O!Q#gO!T#hO!U#iO!V#iO~O!t$jO~P5sOh#ROZ$Ya~O^$pO~OV$yO~O$g#mO!_!`X~O!_$|O~O!Q#gO!T#hO!U#iO!V#iOm!Oan!Oao!Oap!Oaq!Oar!Oas!Oat!Oau!Oav!Oaw!Oax!Oay!Oaz!Oa{!Oa|!Oa}!Oa!e!Oa!t!OaZ!Oah!Oa!P!Oa!i!Oa~OV$}O~OX#UO!Q%QO!t%OO~OZ%UO~P5sOS%VO~P&wOV%YO$j%XO~OX#wO~O!t%]O~OV%^O~OV%bO~O!t%eO!{TO~P*fO#P%fO~OX#wOt%kO~OV%mO~P1xOV%^Ot%kO~OV%oOt%kO~O!e%pO!t$la~O!e%qO!t$oa~O!e%rO!t$sa~O!e%sO!t$ta~OS%tO~P&wO!j%vO~O!doO!j%vO~OjnO!doO!j%vO~OXmOjnO!doO!j%vO~O!j%zO~O!t%{O~P5sOh%|OZ$ZX~P5sOZ&OO~OZ&PO~O!Q#gO!T#hO!U#iO!V#iOpliqlirlislitliulivliwlixliylizli{li|li}li!eli!tliZlihli!Pli!ili~Omlinlioli~P>dOm#XOn#XOo#XO~P>dOm#XOn#XOo#XOp#YOq#YO!Q#gO!T#hO!U#iO!V#iOtliulivliwlixliylizli{li|li}li!eli!tliZlihli!Pli!ili~Orlisli~P@lOr#ZOs#ZO~P@lOm#XOn#XOo#XOp#YOq#YOr#ZOs#ZOt#[Ou#[Ov#[Ow#[O!Q#gO!T#hO!U#iO!V#iOzli{li|li}li!eli!tliZlihli!Pli!ili~Oxliyli~PBqOx#]Oy#]O~PBqOm#XOn#XOo#XOp#YOq#YOr#ZOs#ZOt#[Ou#[Ov#[Ow#[Ox#]Oy#]Oz#^O{#^O!Q#gO!T#hO!U#iO!V#iO~O|li}li!eli!tliZlihli!Pli!ili~PDvO!P&QO~P5sO!t!yiZ!yi~P5sOv&RO~O!t&SO~OV!YOX![O!Q&WO!W!TO!X!TO!Z!gO![!WO!]!WO!_!UO!a!WO!b!WO~O^&UO!P&VO~PG^O!Q&XO!t&ZO~OZ&[O~P5sO!Q%QO!e&^O!t&]O~OV&aO~OV&bO$j%XO~O!Q%QO~OZ&dO~P5sOZ&eO~P5sOZ&fO~P5sO!Q&gO!e{O!tzO~O!t&jO~O!t&lO~P*fOX&mO~OZ&nO~P5sOV&aO$j%XO~O!t&pO~OV&qO~OV&sO~OX#UO!Q%QO!t&SO~O#^&wO~O$p&zO~OS'QO~P&wO!j'SO~O!doO!j'SO~OjnO!doO!j'SO~O!['VO~Oh%|OZ$Za~OV'aO^'[O~OV'bO~O!P'cO~P5sO!i'dOm$fXn$fXo$fXp$fXq$fXr$fXs$fXt$fXu$fXv$fXw$fXx$fXy$fXz$fX{$fX|$fX}$fX!P$fX!Q$fX!T$fX!U$fX!V$fX~O!Q&WO~P*fO!Q&XO!t'gO~O!e'iO!t'hO~O!Q%QO!e'iO!t'hO~OV'lO~O!j'nO~O!Q&gO!t'pO~O!t'rO~P*fO!t'rO~P5sOZ'tO~P*fOV'lO$j%XO~Ov'yO~OV'zO$j%XO~O!t'|O~O!t'}O~O$m(OO$n(QO#^#_P~O#^&wO!t#]X~O#^(TO~O$p&zO!t#aX~OS(VO~P&wO!j(XO~O!doO!j(XO~Oh(ZO~Oh([OS$uX~OS(^O~OZ#uah#ua~P5sOh(`O!i(_O!j$hX~Oh(`O!j$hX~O!e(bO~O!t(cO~O^(dO~O!P(eO~P5sO!i(gO!t(fO~P5sO!Q&XO!t(iO~O!e(jO!t(fO~O!n(kOS!lyV!lyW!lyX!ly^!lyd!lye!lyf!lyg!ly!W!ly!X!ly!Z!ly![!ly!]!ly!_!ly!a!ly!b!ly!j!ly!m!ly!p!ly!x!ly!{!ly!|!ly#O!ly#P!ly#T!ly#U!ly#[!ly#`!ly#d!ly#e!ly#f!ly!r!ly!s!ly!v!ly~OS(pO!r(nO!v(oO~O!t(rO~P5sOZ(tO~P*fOZ(tO~P,VOZ(tO~OZ(wO~P5sOV(xO~OV(yO~O!Q%QO!e(jO!t(fO~OV(xO$j%XO~O$m(OO$n)OO#^#_X~O$n)PO#^#_X~O#^)QO~O$q)RO$r)RO#^#cP~OS)UO~P&wO!j)WO~O!j)XO~Oh([OS$ua~Oh(`O!j$ha~O!P)bO~O!P)cO~O!i)fO!t)eO~P5sOS)jO!r(nO!v(oO~O^!WO![!WO!]!WO!_!UO!a!WO!b!WO~O!d)nO~OS)jO~OZ)pO~P*fOZ)pO~P,VOZ)pO~O!t)sO~O!e)tO!t)eO~O!t)uO~O!Q&XO!t)vO~OV)wO~O$n)xO#^#_a~O$q)RO$r)RO#^#cX~O#^)zO~OS){O~P&wOd^Oe_Of^Og^O!j)XO~P!+{O!i(_Oh#va!j#va~O!t*RO~P5sO!i*TO!t*RO~P5sOS*UO~O!_!UO!d!^XS!^Xh!^X~O!d*VO~OS!ua~P&wOZ*XO~P,VOZ*XO~O!e*[O!t*RO~OS*]O~P&wOh*_OS$vX~OS*aO~O!t*bO~P5sOV!ZOWROX![O^!WO!W!TO!X!TO!Z!gO![!WO!]!WO!_!UO!a!WO!b!WO!j*dO!m!hO!p!iO!s*fO!x!kO!{!jO!|!nO#O!lO#P!mO#T!oO#U!pOS!qi!r!qi!v!qi~P1xOS!ui~P&wO!i*hO!t*bO~P5sOh*_OS$va~O!t*lO~P5sOS#uO!s*nO~P&wO!s*oOS!qq!r!qq!v!qq~P&wO!t*pO~O!i*rO!t*lO~P5sOS%VO!s*sO~P&wO!t*tO~O!t*uO~O!t*vO~P5sO!t*xO~OS*yO~O!t*zO~P5sOS*{O~O$q$g$mQnP![!]!b!a^V![~",
  goto:
    "HZ$xPPPPP$y$}PPP%wP%zPPPP&R&_&ePPPPP'yP(](fPPPPPPPPPPPPPPPPP(fPP){){PPPPP*wPPP,^P-vPP-yPP.d.j.tPP.{/yPP/yP0ePPP0iP/yP0o1gPP/yPP/y/y/yPP2Y2p/y/y/yP3OP3RP3U3_3ePPP/y3h3w4Y/y$yP4g4m4p4t4z5Q6p6v6|7T8T8Z8a8g8o8u9[9b9hPPPPPPP9n9q9t<{=u>n?f@]ARAv){BjDPPEmEqPFaGZPPGZPPPGZGZG}HQHTTPOQSXOQ!Q!ap!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mQ$X!nS$Z!o!pR%n$[Rh[SWOQReXQsbQ!ytQ$g!zR%y$hQ!OmR$l#RQ`TQlaS}m#R!Q!`p!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mQ!|wQ#y!aQ$S!jQ$W!nS$Y!o!pS%i$X$[Q%l$ZQ&t%nT)})X*_QrbS!xstS$f!y!zS%x$g$hR'U%yQ#V!QQ%P#sR&v%o#w!]p{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(r)V)W)f)n)t)|*T*V*W*[*d*e*h*m*r!s#j!S!}#q#t$k$n$q$r$s$t$u$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w#w!Yp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(r)V)W)f)n)t)|*T*V*W*[*d*e*h*m*r#}!Wp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(n(r)V)W)X)f)n)t)|*T*V*W*[*_*d*e*h*m*rR#o!UQqbU!wrstU$e!x!y!zU%w$f$g$hS'T%x%yR(Y'UQ'`&PR)a(bS']&P(bQ)](_R)^(`S'^&P(bR)_(`!Q!dp!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mQ$U!lQ'w&nQ(v'tQ)r(tQ*Y)pR*g*X!R!dp!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mT(l'n(mQ(q'nR)k(m!Q!_p!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mQ%d$TQ'u&lQ(u'rR)q(rSPOQ!Q!dp!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mR%e$TQ#x!`S%[#y$YQ%h$WQ&o%iQ&r%lQ'{&tR*^)}Q%Z#xS&c%[%hS'x&o&rR(|'{R&y%pR(R&wQ&}%qQ'O%rR'P%sX&{%q%r%s&|R)T(TQ%T#sU&`%Y%^%oS'k&b&sR({'zf%R#s%S%Y%^%o&_&b&s'j'z(zT&h%b&ig%R#s%S%Y%^%o&_&b&s'j'z(zQ'W%zR)Z([Q)Y(ZT*O)X*_QQORZQQ#S!OR$m#S#v!Vp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(r)V)W)f)n)t)|*T*V*W*[*d*e*h*m*rS#p!V)lV)l(n)X*_Q#n!UR${#nQ%}$nR'Z%}S(a']'^R)`(aQ!fpQ#v!^f#}!f#v$c%u'R(W)V)|*W*e*mQ$c!vQ%u$dQ'R%vQ(W'SQ)V(XQ)|)WQ*W)nQ*e*VR*m*dQ(m'nR)i(mQ&x%pR(S&xQ(P&wR(}(PU&|%q%r%sR(U&|Q)S(TR)y)SQ%S#sW&Y%S&_'j(zU&_%Y%^%oS'j&b&sR(z'zQ&i%bR'o&iQ*`*PR*k*`Q(]'WR)[(]R!PmR$o#U!Q!Sp!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mQ!}{Q#q!XQ#t![Q$k#PQ$n#UQ$q#`Q$r#aQ$s#bQ$t#cQ$u#dQ$v#eQ$w#fQ$x#gQ$z#kQ%W#wQ%_$PQ%`$QQ%a$RQ%c$TQ%g$VU&T%Q&X&gQ&k%eQ'Y%|Q'e&WQ'f&^Q'q&jQ's&lQ'v&mQ(h'iQ(s'rQ)d(gQ)g(jQ)o(rQ*S)fQ*Z)tQ*c*TQ*i*[Q*q*hR*w*r!o#`!S!}#t$k$n$r$s$t$u$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!m#a!S!}#t$k$n$s$t$u$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!k#b!S!}#t$k$n$t$u$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!i#c!S!}#t$k$n$u$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!g#d!S!}#t$k$n$v$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!e#e!S!}#t$k$n$w$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w!c#f!S!}#t$k$n$x$z%W%_%`%a%c%g&T&k'Y'e'f'q's'v(h(s)d)g)o*S*Z*c*i*q*w#w!Xp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(r)V)W)f)n)t)|*T*V*W*[*d*e*h*m*r#v!Yp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%e%u%v%|&W&X&^&e&g&j&l&m'R'S'i'r(W(X(g(j(k(r)V)W)f)n)t)|*T*V*W*[*d*e*h*m*rQ)m(nT*O)X*_T'_&P(b|!ep!^!f!v#v$c$d%u%v'R'S(W(X)V)W)n)|*V*W*d*e*mQ'm&eR)h(k!Q!cp!^!f!v#v$c$d%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mW#z!a!n!o!pU%j$X$Z$[R&u%n!c!bp!^!a!f!n!o!p!v#v$X$Z$[$c$d%n%u%v&e'R'S(W(X(k)V)W)n)|*V*W*d*e*mR'X%zR*Q)XQ*P)XR*j*_",
  nodeNames:
    "⚠ Whitespace Comment Specification CloseBrace ClassDeclaration AlignedModifier Identifier aligned OpenParenthesis AlignmentBitCount CloseParenthesis ExpandableModifier expandable IntegerLiteral abstract class ParameterList Parameter ElementaryType int unsigned float bit Comma ExtendsModifier extends ParameterValueList BinaryExpression Multiplication Division Modulus Addition Subtraction BitwiseShiftLeft BitwiseShiftRight RelationalLessThan RelationalLessThanOrEqual RelationalGreaterThan RelationalGreaterThanOrEqual RelationalEqual RelationalNotEqual BitwiseAnd BitwiseOr LogicalAnd LogicalOr UnaryExpression CloseBracket OpenBracket ArrayElementAccess ClassMemberAccess Period PostfixIncrement PostfixDecrement UnaryPlus UnaryNegation LengthofExpression lengthof BinaryLiteral HexadecimalLiteral MultipleCharacterLiteral SingleQuote MultipleCharacterLiteralCharacters DecimalLiteral FloatingPointLiteral BitModifier Colon Assignment ExtendedClassIdRange ClassId ClassIdRange RangeOperator OpenBrace CompoundStatement IfStatement if else SwitchStatement switch CaseClause case break Semicolon DefaultClause default ForStatement for AssignmentExpression ComputedElementaryTypeDefinition computed const DoStatement do while WhileStatement ExpressionStatement ElementaryTypeDefinition reserved legacy LengthAttribute LookAhead MapDefinition ClassDefinition StringDefinition base64string Base64StringLiteral DoubleQuote Base64StringLiteralCharacters utf16string UtfStringLiteral UtfPrefix UtfStringLiteralCharacters utf8string utf8list utfstring ArrayDefinition ImplicitArrayDimension ExplicitArrayDimension PartialArrayDimension ComputedArrayDefinition MapDeclaration map MapEntry AggregateOutputValue ElementaryTypeOutputValue",
  maxTerm: 177,
  context: defaultContextTracker,
  nodeProps: [
    ["openedBy", 4, "OpenBrace", 11, "OpenParenthesis", 47, "OpenBracket"],
    ["closedBy", 9, "CloseParenthesis", 48, "CloseBracket", 72, "CloseBrace"],
  ],
  skippedNodes: [0, 1, 2],
  repeatNodeCount: 16,
  tokenData:
    "N_~R!dX^%apq&Uqr&}rs'^su'euv'lvw'uwx(Wxy(_yz(hz{(q{|(||})c}!O)l!O!P*P!P!Q*b!Q!R-q!R!S;Y!S!T>}!T!U?r!U!W>}!W!XA^!X!Y>}!Y!ZBx!Z![>}![!]Co!]!^Cx!^!_DR!_!`Dl!`!aEP!a!c'e!c!wEj!w!xFU!x!}Ej!}#OJr#O#PJ{#P#QKc#Q#R'e#R#SKl#S#T'e#T#iEj#i#jLS#j#oEj#o#pLs#p#qL|#q#rM_#r#s'e#s#yKX#y#z%a#z$fKX$f$gMh$g#BYKX#BY#BZMh#BZ$ISKX$IS$I_Mh$I_$I|KX$I|$JO%a$JO$JTKX$JT$JUMh$JU$KVKX$KV$KWMh$KW&FUKX&FU&FVMh&FV;'SKX<%l?HTKX?HUOKX~%fYP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a~&_Y$qp$gSP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a!O'UP$qp$gS!_!`'XY'^OyY!V'eO#^!R$gSt'lO$qp$gS!O'uOoY$qp$gS!O(OPzY$qp$gSvw(RY(WO|Yw(_O!_V$qpu(hOXP$qp$gSw(qOZR$qp$gS!P(|O$jPmY$qp$gS!a)ZPpY!WP$qp$gS$m`{|)^Y)cO!UYw)lOhR$qp$gS!P)wPqY!XP$qp$gS}!O)zY*PO!VY!P*YP!TY$qp$gS!O!P*]R*bO!iR~*mP$qp$gS$m`n~!P!Q*p~*uUQ~OY*pZ#O*p#O#P+X#P;'S*p;'S;=`-k<%lO*p~+^UQ~OY*pZ#O*p#O#P+p#P;'S*p;'S;=`-k<%lO*p~+uYQ~OY*pZ#O*p#O#P+p#P#b*p#b#c*p#c#f*p#f#g,e#g;'S*p;'S;=`-k<%lO*p~,jUQ~OY*pZ#O*p#O#P,|#P;'S*p;'S;=`-k<%lO*p~-RWQ~OY*pZ#O*p#O#P+p#P#b*p#b#c*p#c;'S*p;'S;=`-k<%lO*p~-nP;=`<%l*p!_-|[$qp$gS$m`^P!O!P.r!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#U0d#U#V0x#V#X0d#X#Y5]#Y#l0d#l#m6u#m#o0dP.uQ!Q!R.{!R![.{P/QR!aP!Q!R.{!R![.{#X#Y/ZP/^S{|/j}!O/j!Q!R/{!R![/pP/mP!R![/pP/uQ!bP!Q!R/p!R![/pP0QO!bPX0TT!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#o0dX0iTVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0dX1PU![PVX!Q!R1c!R!S1c!S![0d!c!}0d#R#S0d#T#o0dX1jU![PVX!Q!R1|!R!S1|!S![0d!c!}0d#R#S0d#T#o0dX2TU![PVX!Q!R2g!R!S2g!S![0d!c!}0d#R#S0d#T#o0dX2nU![PVX!Q!R3Q!R!S3Q!S![0d!c!}0d#R#S0d#T#o0dX3XV![PVX!O!P3n!Q!R4r!R!S4r!S![0d!c!}0d#R#S0d#T#o0dP3qQ!Q!R3w!R!S3wP3|Q![P!Q!R4S!R!S4SP4XQ![P!Q!R4_!R!S4_P4dQ![P!Q!R4j!R!S4jP4oP![P!O!P3nX4yU![PVX!Q!R4r!R!S4r!S![0d!c!}0d#R#S0d#T#o0dX5bVVX{|/j}!O/j!Q!R5w!R![6_!c!}0d#R#S0d#T#o0dX6OT!bPVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0dX6fT!bPVX!Q!R6_!R![6_!c!}0d#R#S0d#T#o0dX6|U!]PVX!Q!R7`!R![7`!c!i7`!i!}0d#R#S0d#T#o0dX7gU!]PVX!Q!R7y!R![7y!c!i7y!i!}0d#R#S0d#T#o0dX8QU!]PVX!Q!R8d!R![8d!c!i8d!i!}0d#R#S0d#T#o0dX8kU!]PVX!Q!R8}!R![8}!c!i8}!i!}0d#R#S0d#T#o0dX9UV!]PVX!O!P9k!Q!R:o!R![:o!c!i:o!i!}0d#R#S0d#T#o0dP9nQ!Q![9t!c!i9tP9yQ!]P!Q![:P!c!i:PP:UQ!]P!Q![:[!c!i:[P:aQ!]P!Q![:g!c!i:gP:lP!]P!O!P9kX:vU!]PVX!Q!R:o!R![:o!c!i:o!i!}0d#R#S0d#T#o0d!a;e[$qp$gS$m`^P!O!P.r!Q!R<Z!R!S<Z!S!T<x!T!W<Z!W!X>^!X![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dX<`W^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ<}Y^P!O!P.r!Q!R<Z!R!Y<Z!Y!Z=m!Z![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ=tW$XQ^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ>eW$UQ^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!_?YW$qp$gS$m`^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!a?}Y$qp$gS$m`^P!O!P.r!Q!R<Z!R!S<Z!S!T@m!T![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ@tW$VQ^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!aAiY$qp$gS$m`^P!O!P.r!Q!R<Z!R!U<Z!U!VBX!V![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZB`W$WQ^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!aCVW$TQ$qp$gS$m`^P!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0duCxO!dP$qp$gS!PDRO!tZ$qp$gS!PD[QtZ$qp$gS!^!_Db!_!`DgYDgOrYYDlOuY!aDwP$n`!eZ$qp$gS!_!`DzYEPOxY!PEYQvZ$qp$gS!_!`E`!`!aEeYEeOwYYEjOsY!_EuT$qp$gS$m`VX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0d!_FaU$qp$gS$m`VX!Q!RFs!R![Fs!c!iFs!i!}0d#R#S0d#T#o0dyFxUVX!Q!RG[!R![G[!c!iG[!i!}0d#R#S0d#T#o0dyGaUVX!Q!RGs!R![Gs!c!iGs!i!}0d#R#S0d#T#o0dyGxUVX!Q!RH[!R![H[!c!iH[!i!}0d#R#S0d#T#o0dyHaUVX!Q!RHs!R![Hs!c!iHs!i!}0d#R#S0d#T#o0dyHxUVX!Q!RI[!R![I[!c!iI[!i!}0d#R#S0d#T#o0dyIaUVX!Q!RIs!R![Is!c!iIs!i!}0d#R#S0d#T#o0dyIxUVX!Q!RJ[!R![J[!c!iJ[!i!}0d#R#S0d#T#o0dyJcT$rpVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0d!PJ{O!QZ$qp$gStKORrsKXwxK^#O#P'epK^O$qpSKcO$gSwKlO!PR$qp$gS}KsT$qp$gS!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#o0d!aLaU$pQ$qp$gS$m`VX!Q!RHs!R![Hs!c!iHs!i!}0d#R#S0d#T#o0duL|O!jP$qp$gS!OMVP{Y$qp$gS#p#qMYYM_O}YuMhOSP$qp$gS~MoY$qpP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a",
  tokenizers: [0, 1, 2, 3, 4, 5],
  topRules: { "Specification": [0, 3] },
  specialized: [{
    term: 7,
    get: (value: keyof typeof spec_Identifier) => spec_Identifier[value] || -1,
  }],
  tokenPrec: 3059,
});
