// This file was generated by lezer-generator. You probably shouldn't edit it.
import {LRParser} from "@lezer/lr"
import {highlighting} from "./highlight.ts"
export const parser = LRParser.deserialize({
  version: 14,
  states: "7WO!sQPOOOOQO'#C_'#C_O!zQPO'#C`O&bQPO'#DyOVQPO'#CdO&iQPO'#CqO'yQPO'#CsO(RQPO'#CuO(WQPO'#C{O(]QPO'#DTOOQO'#EQ'#EQO(bQPO'#DVO(gQQO'#DZOOQO'#DZ'#DZO(lQQO'#D]O(qQPO'#DYO(vQPO'#DYOOQO'#D{'#D{O({QPO'#DhOVQPO'#DjO)QQPO'#DlOOQO'#Ea'#EaO)YQPO'#DyOOQO'#Dz'#DzO)TQPO'#DuQOQPOOOOQO'#Ca'#CaOOQO,58z,58zO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,59OO&iQPO,58xO)kQPO'#ERO+PQPO,59OO+ZQPO'#ESO+`QPO,59^O+hQPO,5:}O,eQPO'#ERO&iQPO'#CdO,rQPO,59]OOQO'#ER'#ERO-fQPO,59aO&iQPO,59_OOQO,59_,59_O)QQPO,59aO&iQPO,59gO)QQPO,59oO&iQPO,59qOOQO,59u,59uOOQO,59w,59wO&iQPO,59tO&iQPO,59tO&iQPO,5:SO%TQPO'#C^OOQO,5:U,5:UOOQO'#Cx'#CxO)QQPO'#CxO-sQPO,5:WOOQO'#Dn'#DnOVQPO,5:[OVQPO,5:[OVQPO,5:[OVQPO,5:[O-{QPO'#EeOOQO'#Ed'#EdO.QQPO,5:aOOQO1G.j1G.jO0VQPO1G.jO0^QPO1G.jO2bQPO1G.jO4fQPO1G.jO4mQPO1G.jO4tQPO1G.jO5^QPO1G.jO7PQPO1G.dO&iQPO,5:nOOQO1G.x1G.xOOQO1G0i1G0iOOQO1G.w1G.wO&iQPO1G.{O7pQPO1G.yO7wQPO1G.{O7|QPO1G/RO8TQPO1G/ZO8YQPO1G/]O8bQPO1G/`O8iQPO1G/`O8qQPO1G/nOOQO'#EV'#EVO8yQPO,59dO9RQPO'#CyO)QQPO,5:|O9WQPO1G/rOOQO1G/v1G/vO;SQPO1G/vO;ZQPO1G/vO;bQPO1G/vO&iQPO,5;PO)TQPO,5;OOVQPO1G/{O<PQPO1G0YO<aQPO7+$gOOQO7+$e7+$eO&iQPO7+$gOVQPO7+$mO&iQPO7+$uOOQO7+$w7+$wOOQO7+$z7+$zO<hQPO7+$zOOQO7+%Y7+%YOOQO1G/O1G/OO)QQPO,59eOOQO1G0h1G0hOOQO'#C`'#C`O<mQPO7+%^O=ZQPO1G0kOOQO1G0j1G0jOOQO7+%g7+%gOVQPO<<HRO=eQPO<<HRO=lQPO'#D{O=vQPO'#DROOQO'#EW'#EWOOQO'#C|'#C|O>[QPO<<HXO>dQPO<<HaO&iQPO<<HfOOQO1G/P1G/PO>kQPO<<HxO?YQPOAN=mOVQPOAN=mO&iQPO,59iO&iQPO,59kOVQPO,59hOOQOAN=sAN=sOVQPOAN={O?kQPOAN>QOOQOG23XG23XO?rQPOG23XO@TQPO1G/TO@_QPO1G/VOOQO1G/S1G/SO@iQPOG23gO@pQPOG23gOOQOG23lG23lOOQOLD(sLD(sOOQOLD)RLD)RO&iQPOLD)ROARQPO!$'LmOOQO!)9BX!)9BXO9WQPO,59OO9WQPO,59OO9WQPO,59OO9WQPO,59OO9WQPO,59OO9WQPO,59OO9WQPO,59OO9WQPO,59OOAYQPO1G.jOCRQPO1G.jOF}QPO1G.jOIXQPO1G.jOI`QPO1G.jOIgQPO1G.jOInQPO1G.j",
  stateData: "Kx~O!lOS~OUaOVaOaSOdTOhUOkVOnWOvXOzZO!]bO!_cO!adO!cdO!pPO!qPO!rPO!sQO!|[O!}[O#O]O#P]O#Q]O#R]O#S^O~O{hO~PVO!pjOXSXYSXZSX[SX]SX^SX_SX`SXjSX!QSX!RSX!SSX!TSX!USX!VSX!WSX!XSX!YSX!ZSX!jSX!wSXcSX!eSX!fSX!gSX!hSXbSX!xSXtSXxSXrSX!{SX~OXlOYmOZnO[oO]pO^qO_rO`sOjtO!QtO!RtO!StO!TtO!UtO!VtO!WtO!XtO!YtO!ZtO~O!j!mX~P%TOUaOVaOa{OdTOhUOkVOnWOvXOzZO!pPO!qPO!rPO!sQO!|[O!}[O#O]O#P]O#Q]O#R]O#S^O~Oa!POhUO~Od!RO~Od!SO~Od!TO~O{!UO~O!O!VO~O!O!WO~Oa!XO~O{!YO~O{!ZO~Oa!_O!sQO~O!e!bO!f!cO!g!dO!h!eO!j!mX~O!w!uX~P%TOX!oXY!oXZ!oX[!oX]!oX^!oX_!oX`!oXj!oX!Q!oX!R!oX!S!oX!T!oX!U!oX!V!oX!W!oX!X!oX!Y!oX!Z!oX~Ob!iO!w!oX~P)rO!w!rO~Ob!sO!w!uX~Ob!tO!e!bO!f!cO!g!dO!h!eO~OXlOYmOZnO[oO]pO^qO_rO`sO~Oc!uX!w!uXx!uX~P+yOc!uO!w!rO~OX!oXY!oXZ!oX[!oX]!oX^!oX_!oX`!oX~Oj!vOc!oX!w!oX~P,zOj#TO!w#SO~Oj#YO~Ox#[O!w#ZO~OXlOZWi[Wi]Wi^Wi_Wi`WijWi!QWi!RWi!SWi!TWi!UWi!VWi!WWi!XWi!YWi!ZWi!jWibWi!wWicWi!eWi!fWi!gWi!hWi!xWixWi!{Wi~OYWi~P.YOYmO~P.YOXlOYmOZnO`sO]Wi^Wi_WijWi!QWi!RWi!SWi!TWi!UWi!VWi!WWi!XWi!YWi!ZWi!jWibWi!wWicWi!eWi!fWi!gWi!hWi!xWixWi!{Wi~O[Wi~P0eOXlOYmOZnO[oO_rO`sO^WijWi!QWi!RWi!SWi!TWi!UWi!VWi!WWi!XWi!YWi!ZWi!jWibWi!wWicWi!eWi!fWi!gWi!hWi!xWixWi!{Wi~O]Wi~P2iO]pO~P2iO[oO~P0eO[Wi]Wi^Wi_Wi`Wi~OXlOYmOZnOjWi!QWi!RWi!SWi!TWi!UWi!VWi!WWi!XWi!YWi!ZWi!jWibWi!wWicWi!eWi!fWi!gWi!hWi!xWixWi!{Wi~P4{O!eQi!fQi!gQi!hQi!jQibQicQi!{Qi!xQi~P+yOb#_O~P+yOj#`O~O!x#aO~P+yOt#bO~Ox#cO!w!rO~Ob#dO~P+yOx#eO!w!rO~Ox#fO!w!rO~Ob#gO!w!yX~O!w#hO~OUaOVaOa{OdTOhUOkVOnWOvXOzZO!pPO!qPO!rPO!s#jO!|[O!}[O#O]O#P]O#Q]O#R]O#S^O~O!e!bO!g!di!h!di!j!dib!dic!di!{!di!x!di~O!f!di~P:hO!f!cO~P:hO!e!bO!f!cO!g!dO!h!di!j!dib!dic!di!{!di!x!di~Ob!vi!w!vic!vix!vi~P+yO!x#oO~P+yOa#wO~OX$aOY$bOZ$cO[$dO]$eO^$fO_$gO`$hO~PVOx#Xi!w#Xi~P+yO!x#{O~P+yOr#|Ot#}O~P)rO!e!bO!f!cO!g!dO!h!eOcuX!{uX~Oc$PO!{$OO~O!x$QO~P+yO!e!bO!f!cO!g!dO!h!eO!j!`yb!`yc!`y!{!`y!x!`y~Oc$SO!e!bO!f!cO!g!dO!h!eO~Ob$ZO~P+yOc$[O!e!bO!f!cO!g!dO!h!eO~Ocqi!{qi~P+yOcsi!{si~P+yOc$]O~P%TO!e!bO!f!cO!g!dO!h!eO!x$^O~Oc$`O~P+yOX$aOUWiVWiYWiZWiaWidWihWikWinWivWizWi!]Wi!_Wi!aWi!cWi!pWi!qWi!rWi!sWi!|Wi!}Wi#OWi#PWi#QWi#RWi#SWi~P4{OX$aOY$bOUWiVWiZWiaWidWihWikWinWivWizWi!]Wi!_Wi!aWi!cWi!pWi!qWi!rWi!sWi!|Wi!}Wi#OWi#PWi#QWi#RWi#SWi~P4{OX$aOY$bOZ$cO`$hOUWiVWi]Wi^Wi_WiaWidWihWikWinWivWizWi!]Wi!_Wi!aWi!cWi!pWi!qWi!rWi!sWi!|Wi!}Wi#OWi#PWi#QWi#RWi#SWi~O[Wi~PDzOX$aOY$bOZ$cO[$dO_$gO`$hOUWiVWi^WiaWidWihWikWinWivWizWi!]Wi!_Wi!aWi!cWi!pWi!qWi!rWi!sWi!|Wi!}Wi#OWi#PWi#QWi#RWi#SWi~O]Wi~PGUO]$eO~PGUO[$dO~PDzOX$aOY$bOZ$cOUWiVWiaWidWihWikWinWivWizWi!]Wi!_Wi!aWi!cWi!pWi!qWi!rWi!sWi!|Wi!}Wi#OWi#PWi#QWi#RWi#SWi~P4{O#S!|!]zUV#O#P#Q#R!}!svnkn~",
  goto: "1f#YPP#Z#k$p&VPP&YPPPPPPPPPPPP'a'a(fP'aPP)n*QP'a*T*WP*WP*WP'aP#kPP#k*[P+aPPPPPPPPPP,fP,fP,fP,vP#ZPPPP,yPPP,|-S-zPPPP#k0e0uPP1P1SPPPPPPPP#Z1Y#Z1]1`mgOSc!b!c!d!e#[#a#k#o#{$O$Q#VaOSTclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$h#OaOSclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#b#k#o#w#{#|#}$Q$^$a$b$c$d$e$f$g$hQ!OT[!^d!R!T!_#S#hS!fh#ZT#q#a$ORkQ#QaOTclmnopqrst!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$hTvS{#VYOSTclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$h#UYOSTclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$hR!QUQ!adQ!x!RQ!z!TQ#P!_Q#i#SR#x#hR#Q!_R#u#aT#s#a$O#V_OSTclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$h#V`OSTclmnopqrst{!P!S!U!X!Y!Z!b!c!d!e!r!v#T#Y#[#`#a#b#k#o#w#{#|#}$O$Q$^$a$b$c$d$e$f$g$hmeOSc!b!c!d!e#[#a#k#o#{$O$QR!`dRiOQiOR#n#[SfO#[QySQ!]cQ#U!bQ#V!cQ#W!dQ#X!eS#r#a$OQ#y#kQ#z#oQ$T#{R$Y$QSRO#[QuSYzT{!U!Y!Zd![c!b!c!d!e#a#k#o#{$OS!il$aQ!jmQ!knQ!loQ!mpQ!nqQ!orQ!psQ!qtQ!w!PQ!y!SQ!|!XQ#]!rQ#^!vQ#k#TQ#l#YQ#p#`Q#v#bQ$R#wQ$U#|Q$V#}Q$X$QQ$_$^Q$i$bQ$j$cQ$k$dQ$l$eQ$m$fQ$n$gR$o$hSwS{Q|TQ!{!UQ!}!YR#O!ZSxS{X}T!U!Y!ZR#R!_Q#t#aR$W$OR!adR!hhQ!ghR#m#Z",
  nodeNames: "⚠ Expression LogicPredicate Literal Local Index Global Radical BinaryOperation + - * ∪ \\ ∆ ∩ × ( ) } { Enumeration Tuple Boolean ℬ Declarative ∈ PrefixD Variable VariableComposite PrefixI Imperative ImperativeBlocks ImperativeIteration :∈ ImperativeAssignment := ImperativeCondition PrefixR Recursion ] FunctionCall Function [ TextFunctionExpression TextFunction ComplexIndex Filter ∉ ⊆ ⊄ ⊂ > ≥ < ≤ ≠ = PredicateCall Predicate LogicNegation ¬ LogicQuantor ∀ QuantorVariable ∃ LogicBinary ⇔ ⇒ ∨ & FunctionDeclaration",
  maxTerm: 101,
  nodeProps: [
    ["closedBy", 17,")",20,"}"],
    ["openedBy", 18,"(",19,"{"]
  ],
  propSources: [highlighting],
  skippedNodes: [0],
  repeatNodeCount: 0,
  tokenData: "4i~R!jX^%spq%svw&hxy&myz&rz{&w{|&||}'R}!O'W!Q!R']!R!['e![!](T!]!^(h!^!_(m!_!`(r!`!a(w!c!d(|!e!f(|!f!g)[!h!i)d!k!l)z!r!s*P!t!u*g!u!v(|!v!w(|!z!{(|!|!}*w!}#O*|#O#P+R#P#Q+W#R#S+]#T#U+]#U#V+h#V#W,z#W#X.Z#X#d+]#d#e0a#e#f+]#f#g1P#g#o+]#o#p2Q#p#q2V#q#r2[#y#z%s$f$g%s$r$s2a%o%p2f5i6S+]#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s% l% m2k%%Y%%Z2p%%[%%]2u%&Y%&Z2z%&]%&^3P%&_%&`3U%&`%&a3Z%&b%&c3`%&c%&d3e%'S%'T3j%'T%'U3o%'U%'V3t%(^%(_3y%(b%(c4O%(c%(d4T%)Q%)R4Y%)S%)T4_%)U%)V4d&FU&FV%s~%xY!l~X^%spq%s#y#z%s$f$g%s#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s&FU&FV%s~&mO!h~~&rOa~~&wOb~~&|OZ~~'ROX~~'WO!w~~']OY~P'bP!pP!Q![']R'lQ!OQ!pP|}'r!Q!['eQ'uP!R!['xQ'}Q!OQ|}'r!Q!['x~(WQ!_!`(^%&b%&c(c~(cOt~~(hOr~~(mO!{~~(rO!W~~(wO!Z~~(|O!U~~)PP!Q![)S~)XPU~!Q![)S~)aPk~!Q![)S~)gQ!Q![)m#]#^)u~)rPz~!Q![)m~)zO#S~~*POn~~*SQ!Q![*Y#f#g*b~*_P!]~!Q![*Y~*gO!|~~*lPv~!Q![*o~*tPV~!Q![*o~*|O!r~~+RO{~~+WO]~~+]Ox~~+bQ!s~#T#o+]5i6S+]~+mS!s~#T#c+]#c#d+y#d#o+]5i6S+]~,OS!s~#T#c+]#c#d,[#d#o+]5i6S+]~,aS!s~#T#`+]#`#a,m#a#o+]5i6S+]~,tQ#P~!s~#T#o+]5i6S+]~-PR!s~#T#U-Y#U#o+]5i6S+]~-_S!s~#T#f+]#f#g-k#g#o+]5i6S+]~-pS!s~#T#W+]#W#X-|#X#o+]5i6S+]~.TQ#O~!s~#T#o+]5i6S+]~.`S!s~#T#X+]#X#Y.l#Y#o+]5i6S+]~.qS!s~#T#U+]#U#V.}#V#o+]5i6S+]~/SS!s~#T#c+]#c#d/`#d#o+]5i6S+]~/eS!s~#T#c+]#c#d/q#d#o+]5i6S+]~/vS!s~#T#`+]#`#a0S#a#o+]5i6S+]~0ZQ#Q~!s~#T#o+]5i6S+]~0fS!s~#T#f+]#f#g0r#g#o+]5i6S+]~0yQ!}~!s~#T#o+]5i6S+]~1US!s~#T#X+]#X#Y1b#Y#o+]5i6S+]~1gS!s~#T#W+]#W#X1s#X#o+]5i6S+]~1zQ#R~!s~#T#o+]5i6S+]~2VOd~~2[O!x~~2aOc~~2fO!_~~2kO`~~2pOh~~2uO!f~~2zO!e~~3PO!a~~3UO!c~~3ZO!q~~3`O^~~3eOj~~3jO!Q~~3oO!g~~3tO_~~3yO[~~4OO!Y~~4TO!X~~4YO!V~~4_O!T~~4dO!S~~4iO!R~",
  tokenizers: [0, 1],
  topRules: {"Expression":[0,1]},
  tokenPrec: 1955
})
