Restore CodeMirror syntax highlighting

This commit is contained in:
Keisuke Hirata 2026-07-09 00:38:31 +09:00
parent 33ea8b94f9
commit c4332ffb9d
No known key found for this signature in database
4 changed files with 170 additions and 128 deletions

View File

@ -1,35 +1,35 @@
@top Source { Statement* }
Statement {
FieldDefinition semicolon? |
Expression semicolon?
FieldDefinition Semicolon? |
Expression Semicolon?
}
Expression { DefaultExpression }
DefaultExpression {
PatchExpression |
PatchExpression !default default DefaultExpression
PatchExpression !default Default DefaultExpression
}
PatchExpression {
ComposeExpression |
PatchExpression !patch slashSlash ComposeExpression
PatchExpression !patch SlashSlash ComposeExpression
}
ComposeExpression {
LogicalOrExpression |
ComposeExpression !compose amp LogicalOrExpression
ComposeExpression !compose Amp LogicalOrExpression
}
LogicalOrExpression {
LogicalAndExpression |
LogicalOrExpression !or pipePipe LogicalAndExpression
LogicalOrExpression !or PipePipe LogicalAndExpression
}
LogicalAndExpression {
ComparisonExpression |
LogicalAndExpression !and ampAmp ComparisonExpression
LogicalAndExpression !and AmpAmp ComparisonExpression
}
ComparisonExpression {
@ -39,36 +39,36 @@ ComparisonExpression {
ConcatExpression {
AdditiveExpression |
ConcatExpression !concat plusPlus AdditiveExpression
ConcatExpression !concat PlusPlus AdditiveExpression
}
AdditiveExpression {
MultiplicativeExpression |
AdditiveExpression !add (plus | minus) MultiplicativeExpression
AdditiveExpression !add (Plus | Minus) MultiplicativeExpression
}
MultiplicativeExpression {
UnaryExpression |
MultiplicativeExpression !multiply (star | slash) UnaryExpression
MultiplicativeExpression !multiply (Star | Slash) UnaryExpression
}
UnaryExpression {
PostfixExpression |
(bang | minus) !unary UnaryExpression
(Bang | Minus) !unary UnaryExpression
}
PostfixExpression {
PrimaryExpression |
PostfixExpression !call CallSuffix |
PostfixExpression !path dot identifier
PostfixExpression !path Dot Identifier
}
CallSuffix { lParen ArgumentList? rParen }
ArgumentList { Expression (comma Expression)* comma? }
CallSuffix { LParen ArgumentList? RParen }
ArgumentList { Expression (Comma Expression)* Comma? }
PrimaryExpression {
Literal |
identifier |
Identifier |
ComparisonConstraint |
Object |
Array |
@ -76,31 +76,31 @@ PrimaryExpression {
FunctionExpression |
MatchExpression |
ImportExpression |
lParen Expression rParen
LParen Expression RParen
}
Literal { string | integer | float | true | false | regex }
CompareOperator { equalEqual | bangEqual | lt | lte | gt | gte }
ComparisonConstraint { (lt | lte | gt | gte) Expression }
Literal { String | Integer | Float | True | False | Regex }
CompareOperator { EqualEqual | BangEqual | Lt | Lte | Gt | Gte }
ComparisonConstraint { (Lt | Lte | Gt | Gte) Expression }
Object { lBrace (FieldDefinition (semicolon FieldDefinition)* semicolon?)? rBrace }
FieldDefinition { FieldPath equal Expression }
FieldPath { identifier !fieldPath (dot identifier)* }
Object { LBrace (FieldDefinition (Semicolon FieldDefinition)* Semicolon?)? RBrace }
FieldDefinition { FieldPath Equal Expression }
FieldPath { Identifier !fieldPath (Dot Identifier)* }
Array { lBracket (Expression (comma Expression)* comma?)? rBracket }
Array { LBracket (Expression (Comma Expression)* Comma?)? RBracket }
LetExpression { let FieldDefinitionList in Expression }
FieldDefinitionList { (FieldDefinition semicolon)* }
LetExpression { Let FieldDefinitionList In Expression }
FieldDefinitionList { (FieldDefinition Semicolon)* }
FunctionExpression { lParen ParameterList? rParen arrow Expression }
ParameterList { Parameter (comma Parameter)* comma? }
Parameter { identifier colon Expression }
FunctionExpression { LParen ParameterList? RParen Arrow Expression }
ParameterList { Parameter (Comma Parameter)* Comma? }
Parameter { Identifier Colon Expression }
MatchExpression { match Expression lBrace (MatchArm (semicolon MatchArm)* semicolon?)? rBrace }
MatchArm { Pattern colon Expression }
Pattern { underscore | Expression }
MatchExpression { Match Expression LBrace (MatchArm (Semicolon MatchArm)* Semicolon?)? RBrace }
MatchArm { Pattern Colon Expression }
Pattern { Underscore | Expression }
ImportExpression { import string }
ImportExpression { Import String }
@precedence {
fieldPath @left,
@ -119,54 +119,54 @@ ImportExpression { import string }
}
@tokens {
let { "let" }
in { "in" }
match { "match" }
import { "import" }
default { "default" }
true { "true" }
false { "false" }
Let { "let" }
In { "in" }
Match { "match" }
Import { "import" }
Default { "default" }
True { "true" }
False { "false" }
identifier { $[A-Za-z_] $[A-Za-z0-9_]* }
integer { $[0-9]+ }
float { $[0-9]+ "." $[0-9]+ }
string { '"' (!["\\\n] | "\\" _)* '"' }
regex { "/" (![/\\\n] | "\\" _)+ "/" }
comment { "#" ![\n]* }
Identifier { $[A-Za-z_] $[A-Za-z0-9_]* }
Integer { $[0-9]+ }
Float { $[0-9]+ "." $[0-9]+ }
String { '"' (!["\\\n] | "\\" _)* '"' }
Regex { "/" (![/\\\n] | "\\" _)+ "/" }
Comment { "#" ![\n]* }
lBrace { "{" }
rBrace { "}" }
lBracket { "[" }
rBracket { "]" }
lParen { "(" }
rParen { ")" }
semicolon { ";" }
comma { "," }
dot { "." }
colon { ":" }
equal { "=" }
equalEqual { "==" }
bang { "!" }
bangEqual { "!=" }
arrow { "=>" }
amp { "&" }
ampAmp { "&&" }
pipePipe { "||" }
plus { "+" }
plusPlus { "++" }
minus { "-" }
star { "*" }
slash { "/" }
slashSlash { "//" }
gt { ">" }
gte { ">=" }
lt { "<" }
lte { "<=" }
underscore { "_" }
LBrace { "{" }
RBrace { "}" }
LBracket { "[" }
RBracket { "]" }
LParen { "(" }
RParen { ")" }
Semicolon { ";" }
Comma { "," }
Dot { "." }
Colon { ":" }
Equal { "=" }
EqualEqual { "==" }
Bang { "!" }
BangEqual { "!=" }
Arrow { "=>" }
Amp { "&" }
AmpAmp { "&&" }
PipePipe { "||" }
Plus { "+" }
PlusPlus { "++" }
Minus { "-" }
Star { "*" }
Slash { "/" }
SlashSlash { "//" }
Gt { ">" }
Gte { ">=" }
Lt { "<" }
Lte { "<=" }
Underscore { "_" }
whitespace { @whitespace+ }
@precedence { let, in, match, import, default, true, false, float, integer, underscore, identifier }
@precedence { Let, In, Match, Import, Default, True, False, Float, Integer, Underscore, Identifier }
}
@skip { whitespace | comment }
@skip { whitespace | Comment }

View File

@ -2,15 +2,15 @@
import {LRParser} from "@lezer/lr"
export const parser = LRParser.deserialize({
version: 14,
states: "7vQYQPOOO#nQPO'#C`OOQO'#Cn'#CnO$wQPO'#CoO&UQPO'#CpO&^QPO'#CqO&eQPO'#CrO&mQPO'#CmO$wQPO'#CwO&wQPO'#CzOOQO'#Cm'#CmOOQO'#Cl'#ClO&|QPO'#CkO$wQPO'#CkOOQO'#Cj'#CjO)fQPO'#CiO.XQPO'#ChO0]QPO'#CgOOQO'#Cf'#CfO2TQPO'#CeO3xQPO'#CdO5jQPO'#CcO7UQPO'#CbOOQO'#Ca'#CaO7`QPO'#C_O7eQPO'#C^OOQO'#DO'#DOQYQPOOO8xQPO'#DPO8}QPO,58zOOQO,59Z,59ZO9VQPO'#C`OOQO,59[,59[O9_QPO,59[OOQO,59],59]O9gQPO,59]O9oQPO'#DSO9tQPO'#CsO9|QPO,59^O:RQPO'#CmO:`QPO'#CuO:hQQO,59`O:mQPO,59`O:rQPO,59XO:wQPO,59cOOQO,59f,59fO:|QPO'#C{OOQO,59W,59WO;TQPO,59WOOQO,59V,59VO$wQPO,59UO$wQPO,59TO$wQPO,59SOOQO'#C}'#C}O$wQPO,59RO$wQPO,59QO$wQPO,59PO$wQPO,59OO$wQPO,58}O$wQPO,58|O$wQPO,58yOOQO,58x,58xOOQO-E6|-E6|OOQO,59k,59kOOQO-E6}-E6}O;YQPO1G.vO;bQPO1G.vOOQO1G.v1G.vO;jQPO1G.wO;qQPO1G.wOOQO1G.w1G.wOOQO,59n,59nOOQO-E7Q-E7QO$wQPO1G.xO$wQPO,59bO;yQPO,59aO<RQPO,59aO$wQPO1G.zO<ZQQO1G.zOOQO1G.s1G.sO<`QPO1G.}O<jQPO'#C|OOQO,59g,59gO<rQPO,59gOOQO1G.r1G.rOOQO1G.p1G.pO<wQPO1G.oO@_QPO1G.nOAyQPO1G.mOOQO1G.l1G.lOCqQPO1G.kOEfQPO1G.jOFxQPO1G.iOOQO1G.h1G.hOOQO1G.e1G.eOOQO1G.o1G.oOOQO1G.n1G.nOOQO1G.m1G.mOOQO1G.k1G.kOOQO1G.j1G.jOOQO1G.i1G.iOOQO,59l,59lOOQO7+$b7+$bOHfQPO7+$bOOQO-E7O-E7OOOQO,59m,59mOOQO7+$c7+$cOHnQPO7+$cOOQO-E7P-E7POOQO7+$d7+$dOOQO1G.|1G.|OHuQPO'#CvOOQO,59o,59oOHzQPO1G.{OOQO-E7R-E7ROOQO7+$f7+$fO$wQPO7+$fOOQO'#Cy'#CyOISQPO'#CxOOQO7+$i7+$iOIXQPO7+$iOIaQPO,59hOIhQPO,59hOOQO1G/R1G/ROOQO<<G|<<G|PIpQPO'#DQOOQO<<G}<<G}P$wQPO'#DRPIuQPO'#DTOOQO<<HQ<<HQO$wQPO,59dOIzQPO<<HTOJUQPO<<HTOOQO<<HT<<HTOJ^QPO1G/SOOQO1G/O1G/OOOQO,59p,59pOOQOAN=oAN=oOJeQPOAN=oOOQO-E7S-E7SOOQOG23ZG23ZP<cQPO'#DUO$wQPO,59TO$wQPO,59SO$wQPO,59RO$wQPO,59PO$wQPO,59OO$wQPO,58}OJoQPO1G.nOKVQPO'#ChOKjQPO'#CgOL^QPO'#CdOM^QPO'#CcONaQPO'#CbO$wQPO,59SO$wQPO,59QO$wQPO,58|O! jQPO1G.mO!!QQPO'#CgO!#_QPO'#CeO$wQPO,59RO$wQPO,59QO$wQPO,59PO$wQPO,59OO$wQPO,58}O$wQPO,58|O$wQPO,58yO!$[QPO1G.kO!$rQPO1G.jO!%YQPO1G.iO!%zQPO'#CeO!&rQPO'#CdO!'gQPO'#CcO!(XQPO'#CbO!(vQPO'#C_",
stateData: "!)Y~O{OS|OS~O}PO!QQO!RQO!SQO!TQO!UQO!VQO!WRO!XRO!YRO!ZRO![SO!_TO!bUO!dVO!hWO!jXO!k]O!l]O~O!WaX!XaX!YaX!ZaX!daX!laX!maX!naX!oaX!paX!qaX!raX!saX!taX!uaX!vaX!waX~O!OlOyaX}aX!PSX!QaX!RaX!SaX!TaX!UaX!VaX![aX!]aX!_aX!baX!haX!jaX!kaX~P!gO}YO!QQO!RQO!SQO!TQO!UQO!VQO!WRO!XRO!YRO!ZRO![SO!_TO!bUO!dVO!hWO!jXO!k]O!l]O~O}oO!^pO~O!arO~P$wO}oO!cgP~O}wO!fyO~P]O!Q}O~O!O!QO!d!OOy_X}_X!Q_X!R_X!S_X!T_X!U_X!V_X!W_X!X_X!Y_X!Z_X![_X!]_X!__X!b_X!h_X!j_X!k_X!l_X!m_X!n_X!o_X!p_X!q_X!r_X!s_X!t_X!u_X!v_X!w_X!`_X!a_X!f_X!^_X!e_X~O!m!SO!n!SOy]X}]X!Q]X!R]X!S]X!T]X!U]X!V]X!W]X!X]X!Y]X!Z]X![]X!]]X!_]X!b]X!d]X!h]X!j]X!k]X!l]X!o]X!p]X!q]X!r]X!s]X!t]X!u]X!v]X!w]X!O]X!`]X!a]X!f]X!^]X!e]X~Oy[X}[X!Q[X!R[X!S[X!T[X!U[X!V[X!W[X!X[X!Y[X!Z[X![[X!][X!_[X!b[X!d[X!h[X!j[X!k[X!p[X!q[X!r[X!s[X!t[X!u[X!v[X!w[X!`[X!a[X!f[X!^[X!e[X~O!l!TO!o!TO~P,OO!W!VO!X!VO!Y!VO!Z!VO!q!VO!r!VOyZX}ZX!QZX!RZX!SZX!TZX!UZX!VZX![ZX!]ZX!_ZX!bZX!dZX!hZX!jZX!kZX!lZX!sZX!tZX!uZX!vZX!wZX~O!p!UO~P.cOyXX}XX!QXX!RXX!SXX!TXX!UXX!VXX!WXX!XXX!YXX!ZXX![XX!]XX!_XX!bXX!dXX!hXX!jXX!kXX!lXX!tXX!uXX!vXX!wXX~O!s!XO~P0dOyWX}WX!QWX!RWX!SWX!TWX!UWX!VWX!WWX!XWX!YWX!ZWX![WX!]WX!_WX!bWX!dWX!hWX!jWX!kWX!lWX!uWX!vWX!wWX~O!t!YO~P2[OyVX}VX!QVX!RVX!SVX!TVX!UVX!VVX!WVX!XVX!YVX!ZVX![VX!]VX!_VX!bVX!dVX!hVX!jVX!kVX!lVX!vVX!wVX~O!u!ZO~P4POyUX}UX!QUX!RUX!SUX!TUX!UUX!VUX!WUX!XUX!YUX!ZUX![UX!]UX!_UX!bUX!dUX!hUX!jUX!kUX!lUX~O!v![O!w!]O~P5qO!P!^O~O!]!_OyQX}QX!QQX!RQX!SQX!TQX!UQX!VQX!WQX!XQX!YQX!ZQX![QX!_QX!bQX!dQX!hQX!jQX!kQX!lQX~O}!aO~O!OlO!PSa~O!OlO!PSX~O!]!cO!^!eO~O!`!fO!a!hO~O!]!iO~O}oO!cgX~O!c!kO~O!e!lO!OaX!faX~P!gO!`!mO!fiX~O!g!oO~O!f!pO~O!f!qO~O![!rO~O!f!tO~P$wO}!vO~O}oO!^#YO~O!]#ZO!^#YO~O!a#^O~P$wO!`#_O!a#^O~O}#cO!fia~O!`#eO!fia~O!g#hO~O!^#kO!i#iO~P$wO!`#mO!fpX~O!f#oO~O!m!SO!n!SOy]i}]i!Q]i!R]i!S]i!T]i!U]i!V]i!W]i!X]i!Y]i!Z]i![]i!]]i!_]i!b]i!d]i!h]i!j]i!k]i!l]i!o]i!p]i!q]i!r]i!s]i!t]i!u]i!v]i!w]i!`]i!a]i!f]i!^]i!e]i~O!o!TO!W[i!X[i!Y[i!Z[i![[i!][i!p[i!q[i!r[i!s[i!t[i!u[i!v[i!w[i~Oy[i}[i!Q[i!R[i!S[i!T[i!U[i!V[i!_[i!b[i!d[i!h[i!j[i!k[i!l[i~P?^O![Zi!]Zi!sZi!tZi!uZi!vZi!wZi~O!p!UOyZi}Zi!QZi!RZi!SZi!TZi!UZi!VZi!WZi!XZi!YZi!ZZi!_Zi!bZi!dZi!hZi!jZi!kZi!lZi~PAbO![Xi!]Xi!tXi!uXi!vXi!wXi~O!s!XOyXi}Xi!QXi!RXi!SXi!TXi!UXi!VXi!WXi!XXi!YXi!ZXi!_Xi!bXi!dXi!hXi!jXi!kXi!lXi~PC]O![Wi!]Wi!uWi!vWi!wWi~O!t!YOyWi}Wi!QWi!RWi!SWi!TWi!UWi!VWi!WWi!XWi!YWi!ZWi!_Wi!bWi!dWi!hWi!jWi!kWi!lWi~PETO!u!ZOyVi}Vi!QVi!RVi!SVi!TVi!UVi!VVi!WVi!XVi!YVi!ZVi![Vi!]Vi!_Vi!bVi!dVi!hVi!jVi!kVi!lVi!vVi!wVi~O}oO!^#pO~O!a#rO~P$wO!e!lO~O}#cO!fii~O!e#vO~O!]#wO!^#yO~O!fpa~P$wO!`#zO!fpa~O}oO~O}#cO~O!^#}O!i#iO~P$wO!]$OO!^#}O~O!fpi~P$wO!^$QO!i#iO~P$wO!l!TO!`[i!a[i!f[i!^[i!e[i~P?^O!l$SO!o$SO!O[X!m[X!n[X~P,OO!p$TO!OZX!mZX!nZX!oZX!`ZX!aZX!fZX!^ZX!eZX~P.cO!t$VO!OWX!mWX!nWX!oWX!pWX!qWX!rWX!sWX!`WX!aWX!fWX!^WX!eWX~P2[O!u$WO!OVX!mVX!nVX!oVX!pVX!qVX!rVX!sVX!tVX!`VX!aVX!fVX!^VX!eVX~P4PO!v$XO!w$bO!OUX!mUX!nUX!oUX!pUX!qUX!rUX!sUX!tUX!uUX!`UX!aUX!fUX!^UX!eUX~P5qO!p$`O!`Zi!aZi!fZi!^Zi!eZi~PAbO!W!VO!X!VO!Y!VO!Z!VO!p$`O!q!VO!r!VO!`ZX!aZX!sZX!tZX!uZX!vZX!wZX!fZX![ZX!]ZX!^ZX!eZX~O!s$aO!OXX!mXX!nXX!oXX!pXX!qXX!rXX!`XX!aXX!fXX!^XX!eXX~P0dO!s$gO!`Xi!aXi!fXi!^Xi!eXi~PC]O!t$hO!`Wi!aWi!fWi!^Wi!eWi~PETO!u$iO!`Vi!aVi!vVi!wVi!fVi![Vi!]Vi!^Vi!eVi~O!s$gO!`XX!aXX!tXX!uXX!vXX!wXX!fXX![XX!]XX!^XX!eXX~O!t$hO!`WX!aWX!uWX!vWX!wWX!fWX![WX!]WX!^WX!eWX~O!u$iO!`VX!aVX!vVX!wVX!fVX![VX!]VX!^VX!eVX~O!v$jO!w$kO!`UX!aUX!fUX![UX!]UX!^UX!eUX~O!P$lO~O!b!c!h!j!w!T!U!S!R!i}!T~",
goto: "2pyPPz!O!`!l#q$a%R%|&z'{(w*O+W,^-f.j/n/n/n/n/n0r/n0u0x/n1Q1Y/n1`1c1f1o1u1|2S2^2d2jTjOkSiOkQqSStUuV#X!c#Z#qShOk]$tSUu!c#Z#qSiOkQnRQsTQ{VQ|WQ!s!OS#Q!^$lY#]!f#_#m#s#zQ#a!kQ#b!lQ#g!oW#i!r#w$O$RQ#u#hR#{#v!OgORTVWk!O!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$lV#P!]$b$kWfOk!]!^Y$_R!k!o#h$bs$sTVW!O!f!l!r#_#m#s#v#w#z$O$R$k$lWeOk!]!^Q#O![Q#W$XY$^R!k!o#h$bQ$o$js$rTVW!O!f!l!r#_#m#s#v#w#z$O$R$k$lYdOk![!]!^Q!}!ZQ#V$W[$]R!k!o#h$X$bQ$n$iu$qTVW!O!f!l!r#_#m#s#v#w#z$O$R$j$k$l[cOk!Z![!]!^Q!|!YQ#U$V^$eR!k!o#h$W$X$bQ$m$hw$pTVW!O!f!l!r#_#m#s#v#w#z$O$R$i$j$k$l!hbORTVWk!O!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$V$W$X$b$h$i$j$k$lV!{!X$a$g`aOk!X!Y!Z![!]!^Q!z!WQ#T$Ub$[R!k!o#h$V$W$X$a$bQ$c$f{$dTVW!O!f!l!r#_#m#s#v#w#z$O$R$g$h$i$j$k$l!``OTVWk!O!W!X!Y!Z![!]!^!f!l!r#_#m#s#v#w#z$O$R$f$g$h$i$j$k$lQ!y!UQ#S$TQ$Y$`e$ZR!k!o#h$U$V$W$X$a$b!z_ORTVWk!O!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lQ!x!TR#R$S#O^ORTVWk!O!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lQ!R]R!w!S#T[ORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$l#TZORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$l#TYORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lRvURzVQxVV#d!m#e#tQ#l!rV#|#w$O$RX#j!r#w$O$RR!P[R!u!OQ!WaQ$U$[R$f$dQkOR!`kSmPoR!bmQ!dqR#[!dQ!gsS#`!g#nR#n!sQuUR!juQ!nxR#f!nQ#x#lR$P#x",
nodeNames: "⚠ Source Statement FieldDefinition FieldPath Expression DefaultExpression PatchExpression ComposeExpression LogicalOrExpression LogicalAndExpression ComparisonExpression ConcatExpression AdditiveExpression MultiplicativeExpression UnaryExpression PostfixExpression PrimaryExpression Literal ComparisonConstraint Object Array LetExpression FieldDefinitionList FunctionExpression ParameterList Parameter MatchExpression MatchArm Pattern ImportExpression CallSuffix ArgumentList CompareOperator",
states: "7vQYQPOOO#nQPO'#CaOOQO'#Cr'#CrO$wQPO'#CyO&UQPO'#DOO&^QPO'#DSO&eQPO'#DWO&mQPO'#CqO$wQPO'#DcO&wQPO'#DhOOQO'#Cq'#CqOOQO'#Cp'#CpO&|QPO'#CoO$wQPO'#CoOOQO'#Cn'#CnO)fQPO'#CmO.XQPO'#ClO0]QPO'#CkOOQO'#Cj'#CjO2TQPO'#CiO3xQPO'#ChO5jQPO'#CgO7UQPO'#CfOOQO'#Ce'#CeO7`QPO'#C`O7eQPO'#C_OOQO'#Dz'#DzQYQPOOO8xQPO'#D{O8}QPO,58{OOQO,59e,59eO9VQPO'#CaOOQO,59j,59jO9_QPO,59jOOQO,59n,59nO9gQPO,59nO9oQPO'#EOO9tQPO'#DYO9|QPO,59rO:RQPO'#CqO:`QPO'#D^O:hQQO,59vO:mQPO,59vO:rQPO,59]O:wQPO,59}OOQO,5:S,5:SO:|QPO'#DjOOQO,59[,59[O;TQPO,59[OOQO,59Z,59ZO$wQPO,59YO$wQPO,59XO$wQPO,59WOOQO'#Dr'#DrO$wQPO,59VO$wQPO,59UO$wQPO,59TO$wQPO,59SO$wQPO,59RO$wQPO,59QO$wQPO,58zOOQO,58y,58yOOQO-E7x-E7xOOQO,5:g,5:gOOQO-E7y-E7yO;YQPO1G/UO;bQPO1G/UOOQO1G/U1G/UO;jQPO1G/YO;qQPO1G/YOOQO1G/Y1G/YOOQO,5:j,5:jOOQO-E7|-E7|O$wQPO1G/^O$wQPO,59yO;yQPO,59xO<RQPO,59xO$wQPO1G/bO<ZQQO1G/bOOQO1G.w1G.wO<`QPO1G/iO<jQPO'#DkOOQO,5:U,5:UO<rQPO,5:UOOQO1G.v1G.vOOQO1G.t1G.tO<wQPO1G.sO@_QPO1G.rOAyQPO1G.qOOQO1G.p1G.pOCqQPO1G.oOEfQPO1G.nOFxQPO1G.mOOQO1G.l1G.lOOQO1G.f1G.fOOQO1G.s1G.sOOQO1G.r1G.rOOQO1G.q1G.qOOQO1G.o1G.oOOQO1G.n1G.nOOQO1G.m1G.mOOQO,5:h,5:hOOQO7+$p7+$pOHfQPO7+$pOOQO-E7z-E7zOOQO,5:i,5:iOOQO7+$t7+$tOHnQPO7+$tOOQO-E7{-E7{OOQO7+$x7+$xOOQO1G/e1G/eOHuQPO'#D_OOQO,5:k,5:kOHzQPO1G/dOOQO-E7}-E7}OOQO7+$|7+$|O$wQPO7+$|OOQO'#Df'#DfOISQPO'#DeOOQO7+%T7+%TOIXQPO7+%TOIaQPO,5:VOIhQPO,5:VOOQO1G/p1G/pOOQO<<H[<<H[PIpQPO'#D|OOQO<<H`<<H`P$wQPO'#D}PIuQPO'#EPOOQO<<Hh<<HhO$wQPO,5:POIzQPO<<HoOJUQPO<<HoOOQO<<Ho<<HoOJ^QPO1G/qOOQO1G/k1G/kOOQO,5:l,5:lOOQOAN>ZAN>ZOJeQPOAN>ZOOQO-E8O-E8OOOQOG23uG23uP<cQPO'#EQO$wQPO,59XO$wQPO,59WO$wQPO,59VO$wQPO,59TO$wQPO,59SO$wQPO,59ROJoQPO1G.rOKVQPO'#ClOKjQPO'#CkOL^QPO'#ChOM^QPO'#CgONaQPO'#CfO$wQPO,59WO$wQPO,59UO$wQPO,59QO! jQPO1G.qO!!QQPO'#CkO!#_QPO'#CiO$wQPO,59VO$wQPO,59UO$wQPO,59TO$wQPO,59SO$wQPO,59RO$wQPO,59QO$wQPO,58zO!$[QPO1G.oO!$rQPO1G.nO!%YQPO1G.mO!%zQPO'#CiO!&rQPO'#ChO!'gQPO'#CgO!(XQPO'#CfO!(vQPO'#C`",
stateData: "!)Y~O!wOSPOS~OUPOgQOhQOiQOjQOkQOlQOnROoROpROqROsSOwTO{UO!PVO!WWO!]XO!`]O!a]O~OneXoeXpeXqeX!PeX!aeX!beX!ceX!deX!eeX!geX!heX!ieX!jeX!keX!leX!meX~OVlOUeXWTXgeXheXieXjeXkeXleXseXteXweX{eX!WeX!]eX!`eX!ueX~P!gOUYOgQOhQOiQOjQOkQOlQOnROoROpROqROsSOwTO{UO!PVO!WWO!]XO!`]O!a]O~OUoOupO~OyrO~P$wOUoO}|P~OUwO!TyO~P]Og}O~OV!QO!P!OOUcXgcXhcXicXjcXkcXlcXncXocXpcXqcXscXtcXwcX{cX!WcX!]cX!`cX!acX!bcX!ccX!dcX!ecX!gcX!hcX!icX!jcX!kcX!lcX!mcX!ucXxcXycX!TcXucX!ScX~O!b!SO!c!SOUaXgaXhaXiaXjaXkaXlaXnaXoaXpaXqaXsaXtaXwaX{aX!PaX!WaX!]aX!`aX!aaX!daX!eaX!gaX!haX!iaX!jaX!kaX!laX!maX!uaXVaXxaXyaX!TaXuaX!SaX~OU`Xg`Xh`Xi`Xj`Xk`Xl`Xn`Xo`Xp`Xq`Xs`Xt`Xw`X{`X!P`X!W`X!]`X!``X!e`X!g`X!h`X!i`X!j`X!k`X!l`X!m`X!u`Xx`Xy`X!T`Xu`X!S`X~O!a!TO!d!TO~P,OOn!VOo!VOp!VOq!VO!g!VO!h!VOU_Xg_Xh_Xi_Xj_Xk_Xl_Xs_Xt_Xw_X{_X!P_X!W_X!]_X!`_X!a_X!i_X!j_X!k_X!l_X!m_X!u_X~O!e!UO~P.cOU]Xg]Xh]Xi]Xj]Xk]Xl]Xn]Xo]Xp]Xq]Xs]Xt]Xw]X{]X!P]X!W]X!]]X!`]X!a]X!j]X!k]X!l]X!m]X!u]X~O!i!XO~P0dOU[Xg[Xh[Xi[Xj[Xk[Xl[Xn[Xo[Xp[Xq[Xs[Xt[Xw[X{[X!P[X!W[X!][X!`[X!a[X!k[X!l[X!m[X!u[X~O!j!YO~P2[OUZXgZXhZXiZXjZXkZXlZXnZXoZXpZXqZXsZXtZXwZX{ZX!PZX!WZX!]ZX!`ZX!aZX!lZX!mZX!uZX~O!k!ZO~P4POUYXgYXhYXiYXjYXkYXlYXnYXoYXpYXqYXsYXtYXwYX{YX!PYX!WYX!]YX!`YX!aYX!uYX~O!l![O!m!]O~P5qOW!^O~Ot!_OURXgRXhRXiRXjRXkRXlRXnRXoRXpRXqRXsRXwRX{RX!PRX!WRX!]RX!`RX!aRX!uRX~OU!aO~OVlOWTa~OVlOWTX~Ot!cOu!eO~Ox!fOy!hO~Ot!iO~OUoO}|X~O}!kO~O!S!lOVeX!TeX~P!gOx!mO!T!QX~O!U!oO~O!T!pO~O!T!qO~Os!rO~O!T!tO~P$wOU!vO~OUoOu#YO~Ot#ZOu#YO~Oy#^O~P$wOx#_Oy#^O~OU#cO!T!Qa~Ox#eO!T!Qa~O!U#hO~Ou#kO!Z#iO~P$wOx#mO!T!_X~O!T#oO~O!b!SO!c!SOUaigaihaiiaijaikailainaioaipaiqaisaitaiwai{ai!Pai!Wai!]ai!`ai!aai!dai!eai!gai!hai!iai!jai!kai!lai!mai!uaixaiyai!Taiuai!Sai~O!d!TOn`io`ip`iq`is`it`i!e`i!g`i!h`i!i`i!j`i!k`i!l`i!m`i~OU`ig`ih`ii`ij`ik`il`iw`i{`i!P`i!W`i!]`i!``i!a`i!u`i~P?^Os_it_i!i_i!j_i!k_i!l_i!m_i~O!e!UOU_ig_ih_ii_ij_ik_il_in_io_ip_iq_iw_i{_i!P_i!W_i!]_i!`_i!a_i!u_i~PAbOs]it]i!j]i!k]i!l]i!m]i~O!i!XOU]ig]ih]ii]ij]ik]il]in]io]ip]iq]iw]i{]i!P]i!W]i!]]i!`]i!a]i!u]i~PC]Os[it[i!k[i!l[i!m[i~O!j!YOU[ig[ih[ii[ij[ik[il[in[io[ip[iq[iw[i{[i!P[i!W[i!][i!`[i!a[i!u[i~PETO!k!ZOUZigZihZiiZijZikZilZinZioZipZiqZisZitZiwZi{Zi!PZi!WZi!]Zi!`Zi!aZi!lZi!mZi!uZi~OUoOu#pO~Oy#rO~P$wO!S!lO~OU#cO!T!Qi~O!S#vO~Ot#wOu#yO~O!T!_a~P$wOx#zO!T!_a~OUoO~OU#cO~Ou#}O!Z#iO~P$wOt$OOu#}O~O!T!_i~P$wOu$QO!Z#iO~P$wO!a!TOx`iy`i!T`iu`i!S`i~P?^O!a$SO!d$SOV`X!b`X!c`X~P,OO!e$TOV_X!b_X!c_X!d_Xx_Xy_X!T_Xu_X!S_X~P.cO!j$VOV[X!b[X!c[X!d[X!e[X!g[X!h[X!i[Xx[Xy[X!T[Xu[X!S[X~P2[O!k$WOVZX!bZX!cZX!dZX!eZX!gZX!hZX!iZX!jZXxZXyZX!TZXuZX!SZX~P4PO!l$XO!m$bOVYX!bYX!cYX!dYX!eYX!gYX!hYX!iYX!jYX!kYXxYXyYX!TYXuYX!SYX~P5qO!e$`Ox_iy_i!T_iu_i!S_i~PAbOn!VOo!VOp!VOq!VO!e$`O!g!VO!h!VOx_Xy_X!i_X!j_X!k_X!l_X!m_X!T_Xs_Xt_Xu_X!S_X~O!i$aOV]X!b]X!c]X!d]X!e]X!g]X!h]Xx]Xy]X!T]Xu]X!S]X~P0dO!i$gOx]iy]i!T]iu]i!S]i~PC]O!j$hOx[iy[i!T[iu[i!S[i~PETO!k$iOxZiyZi!lZi!mZi!TZisZitZiuZi!SZi~O!i$gOx]Xy]X!j]X!k]X!l]X!m]X!T]Xs]Xt]Xu]X!S]X~O!j$hOx[Xy[X!k[X!l[X!m[X!T[Xs[Xt[Xu[X!S[X~O!k$iOxZXyZX!lZX!mZX!TZXsZXtZXuZX!SZX~O!l$jO!m$kOxYXyYX!TYXsYXtYXuYX!SYX~OW$lO~O{}!W!]!mjkih!ZUj~",
goto: "3l!uPPP!v!z#[PPP#h$m%]%}&x'v(w)s*z,S-Y.b/f0jPPPPPP0jPPPP0jPPP0jPPP0jP1nP0jP1q1tPPP0jP1|2UP0jP2[2_PPPPPP2bPPPPPPP2k2q2x3O3Y3`3fTjOkSiOkQqSStUuV#X!c#Z#qShOk]$tSUu!c#Z#qSiOkQnRQsTQ{VQ|WQ!s!OS#Q!^$lY#]!f#_#m#s#zQ#a!kQ#b!lQ#g!oW#i!r#w$O$RQ#u#hR#{#v!OgORTVWk!O!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$lV#P!]$b$kWfOk!]!^Y$_R!k!o#h$bs$sTVW!O!f!l!r#_#m#s#v#w#z$O$R$k$lWeOk!]!^Q#O![Q#W$XY$^R!k!o#h$bQ$o$js$rTVW!O!f!l!r#_#m#s#v#w#z$O$R$k$lYdOk![!]!^Q!}!ZQ#V$W[$]R!k!o#h$X$bQ$n$iu$qTVW!O!f!l!r#_#m#s#v#w#z$O$R$j$k$l[cOk!Z![!]!^Q!|!YQ#U$V^$eR!k!o#h$W$X$bQ$m$hw$pTVW!O!f!l!r#_#m#s#v#w#z$O$R$i$j$k$l!hbORTVWk!O!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$V$W$X$b$h$i$j$k$lV!{!X$a$g`aOk!X!Y!Z![!]!^Q!z!WQ#T$Ub$[R!k!o#h$V$W$X$a$bQ$c$f{$dTVW!O!f!l!r#_#m#s#v#w#z$O$R$g$h$i$j$k$l!``OTVWk!O!W!X!Y!Z![!]!^!f!l!r#_#m#s#v#w#z$O$R$f$g$h$i$j$k$lQ!y!UQ#S$TQ$Y$`e$ZR!k!o#h$U$V$W$X$a$b!z_ORTVWk!O!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lQ!x!TR#R$S#O^ORTVWk!O!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lQ!R]R!w!S#T[ORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$l#TZORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$l#TYORTVW]k!O!S!T!U!W!X!Y!Z![!]!^!f!k!l!o!r#_#h#m#s#v#w#z$O$R$S$T$U$V$W$X$`$a$b$f$g$h$i$j$k$lRvURzVQxVV#d!m#e#tQ#l!rV#|#w$O$RX#j!r#w$O$RR!P[R!u!OQ!WaQ$U$[R$f$dQkOR!`kSmPoR!bmQ!dqR#[!dQ!gsS#`!g#nR#n!sQuUR!juQ!nxR#f!nQ#x#lR$P#x",
nodeNames: "⚠ Comment Source Statement FieldDefinition FieldPath Identifier Dot Equal Expression DefaultExpression PatchExpression ComposeExpression LogicalOrExpression LogicalAndExpression ComparisonExpression ConcatExpression AdditiveExpression MultiplicativeExpression UnaryExpression PostfixExpression PrimaryExpression Literal String Integer Float True False Regex ComparisonConstraint Lt Lte Gt Gte Object LBrace Semicolon RBrace Array LBracket Comma RBracket LetExpression Let FieldDefinitionList In FunctionExpression LParen ParameterList Parameter Colon RParen Arrow MatchExpression Match MatchArm Pattern Underscore ImportExpression Import CallSuffix ArgumentList Bang Minus Star Slash Plus PlusPlus CompareOperator EqualEqual BangEqual AmpAmp PipePipe Amp SlashSlash Default",
maxTerm: 85,
skippedNodes: [0],
skippedNodes: [0,1],
repeatNodeCount: 7,
tokenData: "=T~R!PX^$Upq$Uqr$yrs%Wst&zvw'cxy'pyz'uz{'z{|(P|}(^}!O(c!O!P(h!P!Q(m!Q![+T![!]+n!]!^+s!^!_+x!_!`,V!`!a,l!c!},y!}#O-[#P#Q-a#R#S-f#T#W,y#W#X-y#X#Y,y#Y#Z1Z#Z#],y#]#^3k#^#`,y#`#a6}#a#b8b#b#h,y#h#i:r#i#o,y#o#p<n#p#q<s#q#r=O#y#z$U$f$g$U#BY#BZ$U$IS$I_$U$I|$JO$U$JT$JU$U$KV$KW$U&FU&FV$U~$ZY{~X^$Upq$U#y#z$U$f$g$U#BY#BZ$U$IS$I_$U$I|$JO$U$JT$JU$U$KV$KW$U&FU&FV$U~%OP!k~!_!`%R~%WO!r~~%ZWOY%WZr%Wrs%ss#O%W#O#P%x#P;'S%W;'S;=`&t<%lO%W~%xO!Q~~%{RO;'S%W;'S;=`&U;=`O%W~&XXOY%WZr%Wrs%ss#O%W#O#P%x#P;'S%W;'S;=`&t;=`<%l%W<%lO%W~&wP;=`<%l%W~'PS|~OY&zZ;'S&z;'S;=`']<%lO&z~'`P;=`<%l&z~'hP!u~vw'k~'pO!s~~'uO!d~~'zO!f~~(PO!m~~(UP!o~{|(X~(^O!p~~(cO!`~~(hO!l~~(mO!O~~(rW!n~OY)[Z!P)[!P!Q+O!Q#O)[#O#P)|#P;'S)[;'S;=`*x<%lO)[~)_WOY)[Z!P)[!P!Q)w!Q#O)[#O#P)|#P;'S)[;'S;=`*x<%lO)[~)|O!V~~*PRO;'S)[;'S;=`*Y;=`O)[~*]XOY)[Z!P)[!P!Q)w!Q#O)[#O#P)|#P;'S)[;'S;=`*x;=`<%l)[<%lO)[~*{P;=`<%l)[~+TO!v~~+YQ!R~!O!P+`!Q![+T~+cP!Q![+f~+kP!S~!Q![+f~+sO!e~~+xO!]~~+}P!W~!_!`,Q~,VO!X~~,[Q!PP!_!`,b!`!a,g~,gO!q~Q,lO!gQ~,qP!Y~!_!`,t~,yO!Z~~-OS}~!Q![,y!c!},y#R#S,y#T#o,y~-aO!_~~-fO!a~~-mS!i~}~!Q![,y!c!},y#R#S,y#T#o,y~.OU}~!Q![,y!c!},y#R#S,y#T#X,y#X#Y.b#Y#o,y~.gU}~!Q![,y!c!},y#R#S,y#T#Y,y#Y#Z.y#Z#o,y~/OT}~!Q![,y!c!},y#R#S,y#T#U/_#U#o,y~/dU}~!Q![,y!c!},y#R#S,y#T#i,y#i#j/v#j#o,y~/{U}~!Q![,y!c!},y#R#S,y#T#`,y#`#a0_#a#o,y~0dU}~!Q![,y!c!},y#R#S,y#T#h,y#h#i0v#i#o,y~0}S!w~}~!Q![,y!c!},y#R#S,y#T#o,y~1`T}~!Q![,y!c!},y#R#S,y#T#U1o#U#o,y~1tU}~!Q![,y!c!},y#R#S,y#T#`,y#`#a2W#a#o,y~2]U}~!Q![,y!c!},y#R#S,y#T#g,y#g#h2o#h#o,y~2tU}~!Q![,y!c!},y#R#S,y#T#X,y#X#Y3W#Y#o,y~3_S!U~}~!Q![,y!c!},y#R#S,y#T#o,y~3pV}~!Q![,y!c!},y#R#S,y#T#a,y#a#b4V#b#c6j#c#o,y~4[U}~!Q![,y!c!},y#R#S,y#T#d,y#d#e4n#e#o,y~4sU}~!Q![,y!c!},y#R#S,y#T#c,y#c#d5V#d#o,y~5[U}~!Q![,y!c!},y#R#S,y#T#f,y#f#g5n#g#o,y~5sU}~!Q![,y!c!},y#R#S,y#T#h,y#h#i6V#i#o,y~6^S!j~}~!Q![,y!c!},y#R#S,y#T#o,y~6qS!c~}~!Q![,y!c!},y#R#S,y#T#o,y~7SU}~!Q![,y!c!},y#R#S,y#T#X,y#X#Y7f#Y#o,y~7kU}~!Q![,y!c!},y#R#S,y#T#h,y#h#i7}#i#o,y~8US!b~}~!Q![,y!c!},y#R#S,y#T#o,y~8gT}~!Q![,y!c!},y#R#S,y#T#U8v#U#o,y~8{U}~!Q![,y!c!},y#R#S,y#T#h,y#h#i9_#i#o,y~9dU}~!Q![,y!c!},y#R#S,y#T#V,y#V#W9v#W#o,y~9{U}~!Q![,y!c!},y#R#S,y#T#[,y#[#]:_#]#o,y~:fS!h~}~!Q![,y!c!},y#R#S,y#T#o,y~:wU}~!Q![,y!c!},y#R#S,y#T#f,y#f#g;Z#g#o,y~;`U}~!Q![,y!c!},y#R#S,y#T#i,y#i#j;r#j#o,y~;wU}~!Q![,y!c!},y#R#S,y#T#X,y#X#Y<Z#Y#o,y~<bS!T~}~!Q![,y!c!},y#R#S,y#T#o,y~<sO![~~<vP#p#q<y~=OO!t~~=TO!^~",
tokenData: "=T~R!PX^$Upq$Uqr$yrs%Wst&zvw'cxy'pyz'uz{'z{|(P|}(^}!O(c!O!P(h!P!Q(m!Q![+T![!]+n!]!^+s!^!_+x!_!`,V!`!a,l!c!},y!}#O-[#P#Q-a#R#S-f#T#W,y#W#X-y#X#Y,y#Y#Z1Z#Z#],y#]#^3k#^#`,y#`#a6}#a#b8b#b#h,y#h#i:r#i#o,y#o#p<n#p#q<s#q#r=O#y#z$U$f$g$U#BY#BZ$U$IS$I_$U$I|$JO$U$JT$JU$U$KV$KW$U&FU&FV$U~$ZY!w~X^$Upq$U#y#z$U$f$g$U#BY#BZ$U$IS$I_$U$I|$JO$U$JT$JU$U$KV$KW$U&FU&FV$U~%OP!`~!_!`%R~%WO!h~~%ZWOY%WZr%Wrs%ss#O%W#O#P%x#P;'S%W;'S;=`&t<%lO%W~%xOg~~%{RO;'S%W;'S;=`&U;=`O%W~&XXOY%WZr%Wrs%ss#O%W#O#P%x#P;'S%W;'S;=`&t;=`<%l%W<%lO%W~&wP;=`<%l%W~'PSP~OY&zZ;'S&z;'S;=`']<%lO&z~'`P;=`<%l&z~'hP!k~vw'k~'pO!i~~'uO!P~~'zO!T~~(PO!b~~(UP!d~{|(X~(^O!e~~(cOx~~(hO!a~~(mOV~~(rW!c~OY)[Z!P)[!P!Q+O!Q#O)[#O#P)|#P;'S)[;'S;=`*x<%lO)[~)_WOY)[Z!P)[!P!Q)w!Q#O)[#O#P)|#P;'S)[;'S;=`*x<%lO)[~)|Ol~~*PRO;'S)[;'S;=`*Y;=`O)[~*]XOY)[Z!P)[!P!Q)w!Q#O)[#O#P)|#P;'S)[;'S;=`*x;=`<%l)[<%lO)[~*{P;=`<%l)[~+TO!l~~+YQh~!O!P+`!Q![+T~+cP!Q![+f~+kPi~!Q![+f~+sO!S~~+xOt~~+}Pn~!_!`,Q~,VOo~~,[QWP!_!`,b!`!a,g~,gO!g~Q,lO!UQ~,qPp~!_!`,t~,yOq~~-OSU~!Q![,y!c!},y#R#S,y#T#o,y~-aOw~~-fOy~~-mS!Z~U~!Q![,y!c!},y#R#S,y#T#o,y~.OUU~!Q![,y!c!},y#R#S,y#T#X,y#X#Y.b#Y#o,y~.gUU~!Q![,y!c!},y#R#S,y#T#Y,y#Y#Z.y#Z#o,y~/OTU~!Q![,y!c!},y#R#S,y#T#U/_#U#o,y~/dUU~!Q![,y!c!},y#R#S,y#T#i,y#i#j/v#j#o,y~/{UU~!Q![,y!c!},y#R#S,y#T#`,y#`#a0_#a#o,y~0dUU~!Q![,y!c!},y#R#S,y#T#h,y#h#i0v#i#o,y~0}S!m~U~!Q![,y!c!},y#R#S,y#T#o,y~1`TU~!Q![,y!c!},y#R#S,y#T#U1o#U#o,y~1tUU~!Q![,y!c!},y#R#S,y#T#`,y#`#a2W#a#o,y~2]UU~!Q![,y!c!},y#R#S,y#T#g,y#g#h2o#h#o,y~2tUU~!Q![,y!c!},y#R#S,y#T#X,y#X#Y3W#Y#o,y~3_Sk~U~!Q![,y!c!},y#R#S,y#T#o,y~3pVU~!Q![,y!c!},y#R#S,y#T#a,y#a#b4V#b#c6j#c#o,y~4[UU~!Q![,y!c!},y#R#S,y#T#d,y#d#e4n#e#o,y~4sUU~!Q![,y!c!},y#R#S,y#T#c,y#c#d5V#d#o,y~5[UU~!Q![,y!c!},y#R#S,y#T#f,y#f#g5n#g#o,y~5sUU~!Q![,y!c!},y#R#S,y#T#h,y#h#i6V#i#o,y~6^S!]~U~!Q![,y!c!},y#R#S,y#T#o,y~6qS}~U~!Q![,y!c!},y#R#S,y#T#o,y~7SUU~!Q![,y!c!},y#R#S,y#T#X,y#X#Y7f#Y#o,y~7kUU~!Q![,y!c!},y#R#S,y#T#h,y#h#i7}#i#o,y~8US{~U~!Q![,y!c!},y#R#S,y#T#o,y~8gTU~!Q![,y!c!},y#R#S,y#T#U8v#U#o,y~8{UU~!Q![,y!c!},y#R#S,y#T#h,y#h#i9_#i#o,y~9dUU~!Q![,y!c!},y#R#S,y#T#V,y#V#W9v#W#o,y~9{UU~!Q![,y!c!},y#R#S,y#T#[,y#[#]:_#]#o,y~:fS!W~U~!Q![,y!c!},y#R#S,y#T#o,y~:wUU~!Q![,y!c!},y#R#S,y#T#f,y#f#g;Z#g#o,y~;`UU~!Q![,y!c!},y#R#S,y#T#i,y#i#j;r#j#o,y~;wUU~!Q![,y!c!},y#R#S,y#T#X,y#X#Y<Z#Y#o,y~<bSj~U~!Q![,y!c!},y#R#S,y#T#o,y~<sOs~~<vP#p#q<y~=OO!j~~=TOu~",
tokenizers: [0, 1],
topRules: {"Source":[0,1]},
topRules: {"Source":[0,2]},
tokenPrec: 2481
})

View File

@ -1,35 +1,77 @@
// This file was generated by lezer-generator. You probably shouldn't edit it.
export const
Source = 1,
Statement = 2,
FieldDefinition = 3,
FieldPath = 4,
Expression = 5,
DefaultExpression = 6,
PatchExpression = 7,
ComposeExpression = 8,
LogicalOrExpression = 9,
LogicalAndExpression = 10,
ComparisonExpression = 11,
ConcatExpression = 12,
AdditiveExpression = 13,
MultiplicativeExpression = 14,
UnaryExpression = 15,
PostfixExpression = 16,
PrimaryExpression = 17,
Literal = 18,
ComparisonConstraint = 19,
Object = 20,
Array = 21,
LetExpression = 22,
FieldDefinitionList = 23,
FunctionExpression = 24,
ParameterList = 25,
Parameter = 26,
MatchExpression = 27,
MatchArm = 28,
Pattern = 29,
ImportExpression = 30,
CallSuffix = 31,
ArgumentList = 32,
CompareOperator = 33
Comment = 1,
Source = 2,
Statement = 3,
FieldDefinition = 4,
FieldPath = 5,
Identifier = 6,
Dot = 7,
Equal = 8,
Expression = 9,
DefaultExpression = 10,
PatchExpression = 11,
ComposeExpression = 12,
LogicalOrExpression = 13,
LogicalAndExpression = 14,
ComparisonExpression = 15,
ConcatExpression = 16,
AdditiveExpression = 17,
MultiplicativeExpression = 18,
UnaryExpression = 19,
PostfixExpression = 20,
PrimaryExpression = 21,
Literal = 22,
String = 23,
Integer = 24,
Float = 25,
True = 26,
False = 27,
Regex = 28,
ComparisonConstraint = 29,
Lt = 30,
Lte = 31,
Gt = 32,
Gte = 33,
Object = 34,
LBrace = 35,
Semicolon = 36,
RBrace = 37,
Array = 38,
LBracket = 39,
Comma = 40,
RBracket = 41,
LetExpression = 42,
Let = 43,
FieldDefinitionList = 44,
In = 45,
FunctionExpression = 46,
LParen = 47,
ParameterList = 48,
Parameter = 49,
Colon = 50,
RParen = 51,
Arrow = 52,
MatchExpression = 53,
Match = 54,
MatchArm = 55,
Pattern = 56,
Underscore = 57,
ImportExpression = 58,
Import = 59,
CallSuffix = 60,
ArgumentList = 61,
Bang = 62,
Minus = 63,
Star = 64,
Slash = 65,
Plus = 66,
PlusPlus = 67,
CompareOperator = 68,
EqualEqual = 69,
BangEqual = 70,
AmpAmp = 71,
PipePipe = 72,
Amp = 73,
SlashSlash = 74,
Default = 75

View File

@ -5,18 +5,18 @@ import { parser } from './decodal-parser.js';
const parserWithMetadata = parser.configure({
props: [
styleTags({
'let in match import default': t.keyword,
'true false': t.bool,
identifier: t.variableName,
string: t.string,
regex: t.regexp,
'integer float': t.number,
comment: t.lineComment,
'plus minus star slash plusPlus equal equalEqual bang bangEqual amp ampAmp pipePipe slashSlash gt gte lt lte arrow default': t.operator,
'lBrace rBrace': t.brace,
'lBracket rBracket': t.squareBracket,
'lParen rParen': t.paren,
'semicolon comma dot colon': t.punctuation,
'Let In Match Import Default': t.keyword,
'True False': t.bool,
Identifier: t.variableName,
String: t.string,
Regex: t.regexp,
'Integer Float': t.number,
Comment: t.lineComment,
'Plus Minus Star Slash PlusPlus Equal EqualEqual Bang BangEqual Amp AmpAmp PipePipe SlashSlash Gt Gte Lt Lte Arrow': t.operator,
'LBrace RBrace': t.brace,
'LBracket RBracket': t.squareBracket,
'LParen RParen': t.paren,
'Semicolon Comma Dot Colon': t.punctuation,
}),
indentNodeProp.add({
Object: context => context.column(context.node.from) + context.unit,