From 29ee46c071cf2bc8bd87a031a51b8cfa3d00f22f Mon Sep 17 00:00:00 2001 From: Matt Nish-Lapidus Date: Thu, 23 May 2024 10:57:35 -0400 Subject: [PATCH] working on syntax highlighting. basic prototype working --- .gitignore | 1 + ludus.grammar | 7 +++---- parser.js | 24 ++++++++++++------------ parser.terms.js | 43 ++++++++++++++++++++++--------------------- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index 3c3629e..fd4f2b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +.DS_Store diff --git a/ludus.grammar b/ludus.grammar index e8182e7..8388ba6 100644 --- a/ludus.grammar +++ b/ludus.grammar @@ -250,17 +250,16 @@ reserved { @specialize[@name={term}] } silent { @specialize } -Keyword { ":" Word } - Boolean { reserved<"true"> | reserved<"false"> } Nil { silent<"nil"> } @tokens { - Word { $[a-z] $[a-zA-Z_\-?/!]* } - space { $[ \t\r]+ } + Word { $[a-z] $[a-zA-Z_\-?/!]* } + Keyword { ":" Word } Comment { "&" ![\n]* } String { '"' (!["\\] | "\\" _)* '"' } + space { $[ \t\r]+ } int { $[1-9]$[0-9]* | "0" } float { ("0" | int ) "." $[0-9]+} Number { "-"? (int | float) } diff --git a/parser.js b/parser.js index 03e6e72..88dd2a7 100644 --- a/parser.js +++ b/parser.js @@ -1,18 +1,18 @@ // This file was generated by lezer-generator. You probably shouldn't edit it. import {LRParser} from "@lezer/lr" -const spec_Word = {__proto__:null,true:8, false:10, nil:148, fn:188, recur:192, if:198, then:202, else:204, let:206, match:210, with:212, when:216, loop:218, repeat:222, each:224, ref:230, import:234, as:236, use:238, ns:240} +const spec_Word = {__proto__:null,true:10, false:12, nil:154, fn:190, recur:194, if:200, then:202, else:204, let:206, match:210, with:212, when:216, do:218, loop:224, repeat:228, ref:232, import:236, as:238, use:240, ns:242, test:244} export const parser = LRParser.deserialize({ version: 14, - states: "!;bOYQPOOOOQO'#D^'#D^OYQPOOO#PQPO'#CeOOQO'#Dw'#DwO#UQPO'#DwO%QQQO'#CfO%XQQO'#CgO%cQQO'#CiO%mQQO'#CjO&OQQO'#CkOOQO'#Dz'#DzO&^QPO'#ClOOQO'#Dv'#DvO&fQPO'#CyOOQO'#Ea'#EaOOQO'#Du'#DuOOQO'#Er'#ErOOQO'#Dt'#DtOOQO'#Et'#EtO(SQPO'#DsOOQO'#D_'#D_Q)rQPOOOOQO'#C^'#C^OOQO'#Cb'#CbO*PQPO'#CoO&aQPO'#CxO+VQPO'#CzO+^QPO'#C|O,[QPO'#DPO,aQPO'#DRO-_QPO'#DTO,aQPO'#DUO-gQPO'#DVO._QPO'#DWO.dQPO'#DZO.iQPO'#D[O.nQPO'#D]OOQO-E7[-E7[OOQO,59P,59PO.sQQO'#DwOOQO'#D`'#D`O/XQQO,59QO/`QQO,59QOOQO,59Q,59QO*SQPO'#CoO/hQQO,59ROOQO'#EP'#EPO/rQQO,59ROOQO,59R,59RO/zQPO'#ChO0PQQO,59TO0ZQQO,59TOOQO,59T,59TO0cQQO,59UOOQO'#EW'#EWO0tQPO'#EWOOQO'#EV'#EVO2XQQO,59UOOQO,59U,59UO2aQQO,59VO2gQQO,59VOOQO,59V,59VO3sQQO'#CmOOQO'#EZ'#EZOOQO'#De'#DeO3zQPO,59WO&fQPO,59eO4`QPO,59eO4hQPO,5:_OOQO-E7]-E7]O6bQQO'#CqO6oQPO'#CpOOQO,59Z,59ZO6tQPO,59sOOQO,59d,59dO6|QSO'#DwO7_QSO,59fO-gQPO,59gO7gQPO,59hO7lQPO,59kO7yQWO'#DwO8XQWO,59mO8^QPO,59oO8cQWO,59pOOQO'#Cn'#CnO8hQQO'#CsO8uQQO'#CuO9WQQO'#CwOOQO'#Cr'#CrO9iQPO,59qO9nQPO,59rO9sQPO,59uOOQO,59v,59vO9xQPO,59wOOQO-E7^-E7^O9}QQO1G.lOOQO1G.l1G.lO:VQQO1G.lO9}QQO1G.lO:^QQO,59WO:rQQO1G.mOOQO1G.m1G.mO:zQQO1G.mO:rQQO1G.mOOQO,59S,59SO;UQQO1G.oOOQO1G.o1G.oO;^QQO1G.oO;UQQO1G.oO;hQQO1G.pOOQO1G.p1G.pOOQO,5:r,5:rO;pQQO1G.pO;hQQO1G.pOOQSO,59WOOQO'#Dj'#DjO>aQSO1G/QO>iQPO1G/QO@SQPO1G/RO@XQPO1G/SO7lQPO1G/VO@cQPO'#DQOOQO'#DO'#DOO@hQPO1G/VO@pQWO,59WO6tQPO1G/XOOQO1G/Z1G/ZO6tQPO1G/[OAOQQO,59_OOQO,59_,59_OA]QQO,59_OA]QQO,59_O6hQPO,59_OAeQQO,59aOOQO'#Cv'#CvO-gQPO'#CvOAvQQO,59aOBOQPO,59aOOQO,59a,59aOAvQQO,59aOBZQQO,59cOBlQQO,59cOBOQPO,59cOOQO,59c,59cOBlQQO,59cOBtQPO1G/]O(XQPO1G/^OC_QPO1G/aOCdQQO1G/cOCoQQO7+$WOCvQQO7+$WOOQO7+$W7+$WOOQO,59{,59{OOQO-E7_-E7_ODOQQO7+$XODYQQO7+$XOOQO7+$X7+$XOOQO,59|,59|OOQO-E7`-E7`ODbQQO7+$ZODlQQO7+$ZOOQO7+$Z7+$ZODtQQO7+$[OEVQQO7+$[OOQO7+$[7+$[OOQO,59},59}OOQO-E7a-E7aOE_QQO7+$]OEeQQO7+$]OOQO7+$]7+$]OOQO,5:O,5:OOOQO-E7b-E7bOOQO1G.s1G.sOEmQQO1G.sOEuQQO1G.sOEmQQO1G.sOE|QPO7+$kOFTQPO7+$kOOQO7+$k7+$kOOQO,5:T,5:TOOQO-E7g-E7gOF]QQO1G.wO6hQPO1G.wOOQO1G.w1G.wOF]QQO1G.wOGcQQO1G.wOOQO-E7e-E7eOF]QQO1G.wOOQO,59`,59`OOQO1G.v1G.vO=vQPO,59nOGjQPO,59nOOQO-E7h-E7hO>iQPO7+$lOGrQSO7+$lO*XQPO7+$mOGzQPO'#C}OOQO'#Ek'#EkOHPQPO'#EkOOQO7+$n7+$nOHZQPO7+$qOHcQSO,59lOHjQPO7+$qOHZQPO7+$qOOQO7+$q7+$qOOQO7+$s7+$sOOQO7+$v7+$vOOQO1G.y1G.yOHzQQO1G.yOHzQQO1G.yO6hQPO1G.yOISQQO1G.yOHzQQO1G.yOIZQQO1G.{OBOQPO1G.{OOQO1G.{1G.{OIZQQO1G.{OOQO,59b,59bOIcQQO1G.{OOQO-E7f-E7fOIZQQO1G.{OItQQO1G.}OBOQPO1G.}OOQO1G.}1G.}OItQQO1G.}OI|QQO1G.}OItQQO1G.}OOQO7+$w7+$wOOQO7+$x7+$xOOQO7+${7+${OCdQQO7+$}OJ_QQO7+$}OOQO<iQPOAN=sOHcQSO1G/TOOQO1G/T1G/TO!#lQPO1G0qO!#tQPO1G0qO!#lQPO1G0qOOQO1G0q1G0qOOQOAN=wAN=wO!$RQPOAN=wOOQO7+$r7+$rP7lQPO'#D^OOQO<TO!&[QQOAN>TOOQOAN>TAN>TOOQOAN=eAN=eOOQOAN=iAN=iOOQO<iQPOG23_O!&oQSOG23_OOQO7+$o7+$oO!&wQPO7+&]O!'UQPO7+&]OOQO7+&]7+&]OOQO,5:V,5:VOOQO-E7i-E7iOOQOG23cG23cOOQOAN=kAN=kOOQOAN=mAN=mOOQOAN=oAN=oOOQOG23oG23oO!'^QQOG23oOOQOAN=zAN=zOOQOLD(xLD(xO!'lQSOLD(yO!'lQSOLD(yO(XQPOLD(yOOQO<iQPO,59[O!)tQPO,59[O!+_QPO1G/]O0tQPO1G/]O!+xQPO1G/]O>iQPO1G/^O!(ZQPO1G/^O!)tQPO1G/^O!(ZQPO<iQPO<iQPOAN=rO!,cQSO1G/TO!,jQSO1G/TO!,qQSO1G/TO!(ZQPOG23^O!)tQPOG23^O>iQPOG23^O!(ZQPOLD(yO!)tQPOLD(yO>iQPOLD(yO!(ZQPO!$'LeO!)tQPO!$'LeO>iQPO!$'LeO!(ZQPO!)9BPO!)tQPO!)9BPO>iQPO!)9BPO!,xQPO'#CpO!,}QPO'#CpO!-SQPO'#CpO6tQPO,59sO6tQPO,59sO6tQPO,59sO!-XQPO,59qO!-^QPO,59qO!-cQPO,59qO!-hQPO,59rO!-mQPO,59rO!-rQPO,59rO6tQPO1G/XO6tQPO1G/XO6tQPO1G/XO6tQPO1G/[O6tQPO1G/[O6tQPO1G/[O!-wQSO7+$lO!.PQSO7+$lO!.XQSO7+$lO!.aQPO'#C}O!.fQPO'#C}O!.kQPO'#C}O!.pQSO<iQPO1G/QO>iQPO1G/QO>iQPO1G/QO@XQPO1G/SO@XQPO1G/SO@XQPO1G/SO>iQPO7+$lO>iQPO7+$lO>iQPO7+$lO>iQPOAN=sO>iQPOAN=sO>iQPOAN=sO>iQPOG23_O>iQPOG23_O>iQPOG23_O,aQPO'#DRO,aQPO'#DRO,aQPO'#DRO,aQPO'#DUO,aQPO'#DUO,aQPO'#DUO!2uQSO,59fO!2}QSO,59fO!3VQSO,59fO!3_QPO,59hO!3dQPO,59hO!3iQPO,59hO!3nQSO1G/QO!3vQSO1G/QO!4OQSO1G/QO!4WQSO<iO#R)xO~O#R)yO~O#R)zO~O#[){O~O#[)|O~O#[)}O~O#[*OO~O#[*PO~O#[*QO~O#W$PO#Y*RO~O#W$PO#Y*SO~O#W$PO#Y*TO~O#R*UO~O#R*VO~O#R*WO~O#W$PO#Y*XO~O#W$PO#Y*YO~O#W$PO#Y*ZO~O#W$PO#Y*_O~O#W$PO#Y*`O~O#W$PO#Y*aO~O#W$PO#Y*bO~O#W$PO#Y*cO~O#W$PO#Y*dO~O#W$PO#Y*eO~O#W$PO#Y*fO~O#W$PO#Y*gO~O#W$PO#Y*hO~O#W$PO#Y*iO~O#W$PO#Y*jO~OR*nO!o!iO~OR*oO!o!iO~OR*pO!o!iO~OR*tO~OR*uO~OR*vO~O#b*wO~O#b*xO~O#b*yO~O#e*zO~O#e*{O~O#e*|O~O#W$PO#X+|O~O#W$PO#X+}O~O#W$PO#X,OO~O#^,PO~O#^,QO~O#^,RO~O#W$PO#X,SO~O#W$PO#X,TO~O#W$PO#X,UO~O#W$PO#X,VO~O#W$PO#X,WO~O#W$PO#X,XO~O#W$PO#X,YO~O#W$PO#X,ZO~O#W$PO#X,[O~O#Z-OO~P*XO#Z-PO~P*XO#Z-QO~P*XO#[,xO~O#[,yO~O#[,zO~O", - goto: "!2x#iPP#jPPP#jPP&v+T+T-t+T+T+T.Z0z1X.Z2Z3T4f5y6h5y7b5y.Z7v9x9x9x;w|>|>|?R@wAOF`FjF|GWGjG|HWHjH|IWKrK|LWPPPPPLbLg! `!#k!'YPP.ZPPPP!*hPPPPP!*}!+ZP!+x!.o!.yPPPP!/VPPPPPPPPP!1UPPPPPP!1[P!2s'eSOQUVW^fklnpqz!O!T!Y!a!e!i!p!r!x#U#Z#`#k#q#t#v#z$R$T$U$^$b$e$o$p$s$x$}%^%`%f%q%s%v%y%z&S&k&l&n&o&q&x'O'P'^'`'a'c'f(U(V(c(f(g(j(n(p)T)V)Y)i)k)l)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+m+n+o+|+},O,P,Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,r,s,t,u,v,w,x,y,z-O-P-Q!WSq!i!p!x#t#v$T$^$b$e%f%v&S'a(j)Y)k)l+m+n+o,P,Q,R-O-P-Q!bTOQ^fl!e!r#q#z$U$o$p%`%y%z'O'P'^'`'c'f(c(g(n(p)T)i)o)r,u,v,w!hxUVWz!O!T!Y!a#U#Z#`#k$s$x$}%^&k&l&n&o&q&x(U(V)x)|*P*R*U*X*[*_*b*e*hr!YXY!W!^#e#i$r%Q%V&h&s&t&v&w'{({)d`!b[!d#W$O$Y)u)v)w!h!nk$R%q%s(f)V)y){*O*T*W*Z*^*a*d*g*j+|+},O,S,T,U,V,W,X,Y,Z,[,r,s,t,x,y,zv!snp)z)}*Q*S*V*Y*]*`*c*f*i,],^,_,`,a,ba$e!y!z$c$g$j$l&W&`&]ZOQUVW^fklnpz!O!T!Y!a!e!r#U#Z#`#k#q#z$R$U$o$p$s$x$}%^%`%q%s%y%z&k&l&n&o&q&x'O'P'^'`'c'f(U(V(c(f(g(n(p)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,r,s,t,u,v,w,x,y,zf!PVW!O!T#Z#`$x$}&n&o&q]!ZX!W#e%Q&s&t&]]OQUVW^fklnpz!O!T!Y!a!e!r#U#Z#`#k#q#z$R$U$o$p$s$x$}%^%`%q%s%y%z&k&l&n&o&q&x'O'P'^'`'c'f(U(V(c(f(g(n(p)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,r,s,t,u,v,w,x,y,z`!b[!d#W$O$Y)u)v)wR!mj!W!{q!i!p!x#t#v$T$^$b$e%f%v&S'a(j)Y)k)l+m+n+o,P,Q,R-O-P-Q[#l!a#k%^&x(U(V[$V!r$U%z'c(n(pR%l#y`!ki}+j+k+l+s+t+uW#|!l*n*o*pQ%o#{W%}$Z*w*x*yW&O$]*z*{*|Q'W%nX(`'X(])R)Sf!ji!l#{$Z$]%n'X(])R)S+t!W!{q!i!p!x#t#v$T$^$b$e%f%v&S'a(j)Y)k)l+m+n+o,P,Q,R-O-P-QY*k}*o*w*z+kY*l*n*y*|+j+sZ*m*p*x*{+l+uQ!|qQ#u!iQ$S!pQ$`!xS%e#t#v^%t$T%v'a(j)Y)k)lS&Q$^$bQ&Z$eQ'S%fQ'm&SQ*q+mQ*r+nQ*s+oQ+Q,PQ+R,QQ+S,RQ,{-OQ,|-PR,}-Q!X!{q!i!p!x#t#v$T$^$b$e%f%v&S'a(j)Y)k)l+m+n+o,P,Q,R-O-P-QQ#x!iQ$a!xQ$i!yQ$n!zS%h#t#vS&R$^$bS&Y$c$gS&b$j$lQ'T%fQ'n&SQ'r&WR'x&`Q$f!yQ$k!zS&V$c$gS&_$j$lQ'q&WR'w&`$x_OQUVW^fz!O!T!Y!e#U#Z#`#q#z$R$o$p$s$x$}%`%q%y&k&l&n&o&q'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[R$[!u$y_OQUVW^fz!O!T!Y!e#U#Z#`#q#z$R$o$p$s$x$}%`%q%y&k&l&n&o&q'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[W%u$T,P,Q,RQ'b%vQ(i'aX)](j)Y)k)l[$V!r$U%z'c(n(p^%t$T%v'a(j)Y)k)lQ+Q,PQ+R,QR+S,RQ$X!rQ%x$UX'h%z'c(n(pW#}!l*n*o*pW%}$Z*w*x*yX&O$]*z*{*|#{aOQ^f!e#q#z$R$p%`%q%y'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[VcOQfQQO|vQ!e!g#q$U%`%n%z'O'P'X'a'c(](j(n(p)R)S)Y)k)lQ!e^Q!gdQ#q!fQ$U!rS%`#p#rQ%n#{Q%z$XQ'O%aQ'X%oQ'a%vS'c%x%{S(]'W'YQ(j'bQ(n'dQ)R(^S)Y(i(kR)k)ZSfOQR!hfQzUQ!OVQ!TWQ!WXQ!^Y#r#Rz!O!T!W!^#U#Z#`#e#i#k#t$^$c$j$s$x$}%Q%V%^%i%k&T&U&[&^&c&d&h&k&l&n&o&q&s&t&v&w&x'Q'U'j'l'o's'u'y'{(U(V(Y(Z([(r(s(u(v(w(y(z({)dQ#U{Q#Z!QQ#`!UQ#e![Q#i!_Q#k!aQ#t!iQ$^!xQ$c!yQ$j!zS$s#S#VS$x#X#[S$}#^#aS%Q#b#fS%V#g#jQ%^#nQ%i#uQ%k#xQ&T$`Q&U$aQ&[$fQ&^$iQ&c$kQ&d$nQ&h$rQ&k$tQ&n$yQ&q%OQ&s%RQ&v%WS&x%]%_Q'Q%eQ'U%hQ'j&QQ'l&RQ'o&VQ's&YQ'u&_Q'y&bQ'{&iQ(U&yQ(Y'SQ(Z'TQ(['VQ(r'mQ(s'nQ(u'qQ(v'rQ(w'tQ(y'wQ(z'xS({'z'|R)d(|Q#V{Q$t#ST$w#V$tQ#[!QQ#a!UQ$y#XW$|#[#a$y%OR%O#^Q#f![Q%R#bT%U#f%RQ#j!_Q%W#gW%Z#j%W'|(|Q'|&iR(|'zQ!d[Q#W)uW#o!d#W$O$YQ$O)vR$Y)wQ%_#nQ&y%]T&|%_&yQ#v!iQ$b!xQ%f#tW%j#v$b%f&SR&S$^Q$g!yQ$l!zQ&W$cW&]$g$l&W&`R&`$jQ#r!fQ%a#pT%d#r%aQ$Q!o![%p$Q']'f(b(e(g)h)n*[*]*^+W+X+Y+Z+[+]+d+e+f+g+h+i,i,j,k,o,p,qQ']%rQ'f%yQ(b'[Q(e'_Q(g'`Q)h)WQ)n)gQ*[*UQ*]*VQ*^*WQ+W*}Q+X+OQ+Y+PQ+Z+TQ+[+UQ+]+VQ+d+^Q+e+_Q+f+`Q+g+aQ+h+bQ+i+cQ,i,cQ,j,dQ,k,eQ,o,lQ,p,mR,q,nQ(k'bQ)Z(iT)^(k)ZQ%{$XQ'd%xT'i%{'dQ'Y%oQ(^'WT(a'Y(^VeOQfUdOQfQ!f^Q#p!eW%c#q%`'O'PW%m#z)x)y)zQ%r$RW&f$p*O*P*QQ'[%qQ'g%yW(d'^*R*S*TW(h'`*U*V*WQ(o'fW)U(c*X*Y*ZQ)W(fW)X(g*[*]*^W)f)T*_*`*aQ)g)VW)p)i*b*c*dW)s)o*e*f*gW)t)r*h*i*jQ*}+|Q+O+}Q+P,OQ+T,SQ+U,TQ+V,UQ+^,VQ+_,WQ+`,XQ+a,YQ+b,ZR+c,[#zbOQ^f!e#q#z$R$p%`%q%y'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[Q{Uf!PVW!O!T#Z#`$x$}&n&o&qQ#SzQ#d!YW$v#U$s&k&lX&e$o){)|)}$x`OQUVW^fz!O!T!Y!e#U#Z#`#q#z$R$o$p$s$x$}%`%q%y&k&l&n&o&q'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[Q!okQ!qlQ!tnQ!vp[#l!a#k%^&x(U(V[$V!r$U%z'c(n(pQ'_%sQ+v,]Q+w,^Q+x,_Q+y,`Q+z,aQ+{,bQ,c,rQ,d,sQ,e,tQ,f,uQ,g,vQ,h,wQ,l,xQ,m,yR,n,z&[]OQUVW^fklnpz!O!T!Y!a!e!r#U#Z#`#k#q#z$R$U$o$p$s$x$}%^%`%q%s%y%z&k&l&n&o&q&x'O'P'^'`'c'f(U(V(c(f(g(n(p)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,r,s,t,u,v,w,x,y,z!X!{q!i!p!x#t#v$T$^$b$e%f%v&S'a(j)Y)k)l+m+n+o,P,Q,R-O-P-QQ!QVQ!UWQ#X!OQ#^!T_${#Z#`$x$}&n&o&qQ![XQ#b!WX%T#e%Q&s&t[!ZX!W#e%Q&s&tQ!_YQ#g!^^%Y#i%V&v&w'{({)dQ&i$rR'z&h!b[OQ^fl!e!r#q#z$U$o$p%`%y%z'O'P'^'`'c'f(c(g(n(p)T)i)o)r,u,v,w!h)uUVWz!O!T!Y!a#U#Z#`#k$s$x$}%^&k&l&n&o&q&x(U(V)x)|*P*R*U*X*[*_*b*e*h!h)vk$R%q%s(f)V)y){*O*T*W*Z*^*a*d*g*j+|+},O,S,T,U,V,W,X,Y,Z,[,r,s,t,x,y,zw)wnp)z)}*Q*S*V*Y*]*`*c*f*i,],^,_,`,a,ba!c[!d#W$O$Y)u)v)wQ#n!aQ%]#kX&{%^&x(U(V$y`OQUVW^fz!O!T!Y!e#U#Z#`#q#z$R$o$p$s$x$}%`%q%y&k&l&n&o&q'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z){)|)}*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[X%w$T,P,Q,R#{bOQ^f!e#q#z$R$p%`%q%y'O'P'^'`'f(c(f(g)T)V)i)o)r)x)y)z*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*]*^*_*`*a*b*c*d*e*f*g*h*i*j+|+},O,S,T,U,V,W,X,Y,Z,[VdOQf", - nodeNames: "⚠ Script Boolean Word true false Nil String Number Keyword Tuple List Splat Set Dict Struct Synthetic Args Placeholder Fn_Lambda Fn_Clause Tuple_Pattern Pattern List_Pattern Splattern Dict_Pattern Assoc_Pattern Struct_Pattern Recur Block If If_Let Match Match_Clause Else When When_Clause Loop Fn_Clauses Repeat Each Let Ref Fn_Named Fn_Compound Import Use Ns", - maxTerm: 120, - skippedNodes: [0], - repeatNodeCount: 16, - tokenData: "-g~RmXY!|YZ#[]^!|pq!|rs#est%Rtu%^vw%ixy&Qyz&V|}&[}!O&a!O!P'e!Q!R&m!R!['T![!]'v!]!^'{!_!`(Q!b!c(V!}#O(b#P#Q(g#R#S(l#T#W(q#W#X)]#X#k(q#k#l*k#l#o(q#o#p-]#q#r-b~#RR!d~XY!|]^!|pq!|V#eO#WS!pQ!fP~#hVOr#ers#}s#O#e#O#P$S#P;'S#e;'S;=`${<%lO#e~$SOV~~$VRO;'S#e;'S;=`$`;=`O#e~$cWOr#ers#}s#O#e#O#P$S#P;'S#e;'S;=`${;=`<%l#e<%lO#e~%OP;=`<%l#e~%UP#o#p%X~%^O!x~~%aP#o#p%d~%iO!v~~%nS!e~OY%iZ;'S%i;'S;=`%z<%lO%i~%}P;=`<%l%i~&VO!o~~&[O!q~Q&aO!pQ~&dR!Q!R&m!R!['T!`!a'`~&rPW~!O!P&u~&xP!Q![&{~'QPW~!Q![&{~'YQW~!O!P&u!Q!['T~'eO#R~~'hP!O!P'k~'nP!O!P'q~'vO!t~~'{O!m~P(QO!fP~(VO#[~~(YP#o#p(]~(bO!{~~(gO!r~~(lO!u~~(qO#P~V(vVRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#o(q_)bXRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#c(q#c#d)}#d#o(q_*UV#eWRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#o(q_*pXRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#](q#]#^+]#^#o(q_+bXRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#h(q#h#i+}#i#o(q_,SXRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#[(q#[#],o#]#o(q_,vV#bWRVqr(q}!O(q!P!Q(q!a!b(q!c!}(q#R#S(q#T#o(q~-bO#U~~-gO!w~", - tokenizers: [0, 1, 2, 3], - topRules: {"Script":[0,1]}, - specialized: [{term: 3, get: (value) => spec_Word[value] || -1}], + states: "!?^OYQPOOOOQO'#D_'#D_OYQPOOOOQO'#Dz'#DzO#SQPO'#DzO%eQPO'#CgO%lQPO'#ChO%vQPO'#CjO&cQPO'#CkOOQO'#D|'#D|O&jQPO'#ClOOQO'#Dy'#DyO&rQPO'#CyOOQO'#Eb'#EbOOQO'#Dx'#DxOOQO'#Es'#EsOOQO'#Dw'#DwOOQO'#Eu'#EuO(`QPO'#DvOOQO'#D`'#D`Q*OQPOOOOQO'#C_'#C_OOQO'#Cc'#CcO*`QPO'#CoO&mQPO'#CxO+cQPO'#CzO+jQPO'#C|O,eQPO'#DPO,jQPO'#DRO-eQPO'#DSO.`QPO'#DUO.hQPO'#DVO/]QPO'#DWO/bQPO'#DZO/gQPO'#D[O/lQPO'#D]O/qQPO'#D^OOQO-E7]-E7]OOQO'#Da'#DaO/vQPO,59RO/}QPO,59ROOQO,59R,59RO*cQPO'#CoO0YQPO,59SOOQO'#ER'#ERO0dQPO,59SOOQO,59S,59SO0oQPO'#CiO0tQPO,59UO1OQPO,59UOOQO,59U,59UO1ZQPO,59VOOQO'#EY'#EYO1bQPO'#EYOOQO'#EX'#EXO1{QPO,59VOOQO,59V,59VO2WQPO'#CmOOQO'#E['#E[OOQO'#De'#DeO2hQPO,59WO&rQPO,59eO3cQPO,59eO3nQPO,5:bOOQO-E7^-E7^O5kQPO'#CqO5{QPO'#CpOOQO,59Z,59ZO6QQPO,59sOOQO,59d,59dO6YQPO,59fO.hQPO,59gO6bQPO,59hO6gQPO,59kO6wQPO,59mO7PQQO'#DzO7bQQO,59nO7gQPO,59pO7lQPO'#CnO8WQPO'#CsO8yQPO'#CvOOQO'#Cr'#CrO9QQPO,59qO9VQPO,59rO9[QPO,59uOOQO,59v,59vO9aQPO,59wO1bQPO,59xOOQO-E7_-E7_O9fQPO1G.mOOQO1G.m1G.mO9qQPO1G.mO9fQPO1G.mO9xQPO1G.nOOQO1G.n1G.nO:TQPO1G.nO9xQPO1G.nOOQO,59T,59TO:_QPO1G.pOOQO1G.p1G.pO:jQPO1G.pO:_QPO1G.pO:tQPO1G.qOOQO1G.q1G.qOOQO,5:t,5:tO;PQPO1G.qO:tQPO1G.qO;WQPO,59XOOQO'#Cn'#CnOOQO'#E]'#E]OOQO,59X,59XO;hQPO,59XOOQO-E7c-E7cO;sQPO1G/POOQPO'#DmO>WQPO'#DmO>cQPO1G/XO?QQQO,59WO6QQPO1G/YOOQO1G/[1G/[OOQO,59a,59aO?cQPO,59_OOQO,59_,59_O?sQPO,59_O?sQPO,59_O5tQPO,59_O@OQPO,59bOOQO'#Cw'#CwO.hQPO'#CwO@VQPO,59bO@bQPO,59bOOQO,59b,59bO@VQPO,59bO@mQPO1G/]O(hQPO1G/^OAZQPO1G/aOA`QPO1G/cOOQO1G/d1G/dOAkQPO7+$XOArQPO7+$XOOQO7+$X7+$XOOQO,59|,59|OOQO-E7`-E7`OA}QPO7+$YOBXQPO7+$YOOQO7+$Y7+$YOOQO,59},59}OOQO-E7a-E7aOBdQPO7+$[OBnQPO7+$[OOQO7+$[7+$[OByQPO7+$]OCQQPO7+$]OOQO7+$]7+$]OOQO,5:O,5:OOOQO-E7b-E7bOOQO1G.s1G.sOC]QPO1G.sOChQPO1G.sOC]QPO1G.sOCxQPO7+$kODPQPO7+$kOOQO7+$k7+$kOOQO,5:T,5:TOOQO-E7g-E7gOD[QPO1G.wO5tQPO1G.wOOQO1G.w1G.wOD[QPO1G.wOEeQPO1G.wOOQO-E7e-E7eOD[QPO1G.wOOQO,59`,59`OOQO1G.v1G.vOWQPO,5:XOGYQPO'#EZOOQO'#Eo'#EoOOQO,5:X,5:XOOQO-E7k-E7kOOQO7+$t7+$tOOQO1G.y1G.yOHTQPO1G.yOHTQPO1G.yO5tQPO1G.yOH`QPO1G.yOHTQPO1G.yOHgQPO1G.|O@bQPO1G.|OOQO1G.|1G.|OHgQPO1G.|OOQO,59c,59cOITQPO1G.|OOQO-E7f-E7fOHgQPO1G.|O@mQPO7+$wOOQO7+$w7+$wOOQO7+$x7+$xOOQO7+${7+${OOQO'#Do'#DoOA`QPO7+$}OI[QPO7+$}OOQO<TO!$gQPOAN>TOOQOAN>TAN>TOOQO,5:[,5:[OOQO-E7n-E7nOOQOAN=eAN=eOOQOAN=iAN=iOOQO<SQPO1G/RO*hQPO7+$mO!>XQPO1G/RO.hQPO,59gO!>^QPO1G/RO.hQPO,59gO.hQPO,59g", + stateData: "!>c~O!gOSPOS~OSSOTeOUeOWROXROYSO!hPO!iPO!ofO!qTO!tUO!xVO!zWO#RgO#ThO#V[O#WiO#ZoO#]jO#`kO#alO#dmO#fnO#hpO#jqO#lrO#msO#ntO~OY!}X!h!nX!i!nX!q!}X!r!nX!s!nX!w!nX!y!nX#X!nX#^!nX#b!nX#S!nX#Y!nX~OSSOTeOUeOWROXROYSO!hvO!ofO!qTO!rvO!tUO!xVO!zWO#RzO#ThO#V[O#WiO#]jO#`kO#alO#dmO#fnO~O!syO~P#}O!v!PO!w!OO~P#}O!v!PO!y!SO~P#}OS!UOY!VO!hvO!rvO!v!PO~O!y!YO~P&QOY![O!q!ZO~OSSOTeOUeOWROXROYSO!hPO!iPO!ofO!qTO!tUO!xVO!zWO#RgO#ThO#V[O#WiO#ZoO#]jO#`kO#alO#dmO#fnO#hpO~O!hPO!iPO~OSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#RgO#ThO#V[O#WiO#ZoO#]jO#`kO#alO#dmO#fnO#hpO~O#jqO#lrO#msO#ntO~P(hOS!fO!q!cO~OSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#RzO#ThO~O#Z!iO~P*hOSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#R,uO#ThO~O#V!kO~OSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#R+yO#ThO~OS!mOTeOUeOWROXROY!mO!ofO!qTO!tUO!xVO!zWO#R*rO#ThO~OS!oOX!oO~OSROTeOUeOWROXROYRO!ofO!q!cO!t!qO!z!rO#Q!pO~OS!uO~OW!vO~OS!wO~OS!xO~OW!yO~O!s!|O~P#}O!hvO!rvO!s!|O~O!v!PO!w#QO~P#}O!hvO!rvO!w#QO~OS#TO~O!v!PO!y#VO~P#}O!hvO!rvO!y#VO~O!y#ZO~P&QO#V[O#WiO#]jO#`kO#alO#dmO#fnO~P*hO!hvO!rvO!y#ZO~O!hvO!rvO!s#bO#Q#`O~P*hOY![O!q!ZO!h`a!i`a!r`a!s`a!w`a!y`a#X`a#^`a#b`a#S`a#Y`a~O!hPO!iPO!y#hO~O!hPO!iPOS!jaT!jaU!jaW!jaX!jaY!ja!e!ja!o!ja!q!ja!t!ja!x!ja!z!ja#R!ja#T!ja#V!ja#W!ja#Z!ja#]!ja#`!ja#a!ja#d!ja#f!ja#h!ja#j!ja#l!ja#m!ja#n!ja~O!hvO!rvO!s#lO!v#nO~P.hO#S#oO~O!q!cO#V#pO~O!h#sO#X#uO~O#^#wO~O!hPO!iPO#Q#`O#Y#zO~P+jO!h#sO#b#}O~OY!}X!q!}X#e!nX!h!nX#b!nX~O#e$QO~O#V[O~OS$SO#[bX!hbX!rbX!sbX!wbX#SbX!ybX~O!hvO!rvO!v#nO!w$UO~P.hOS$ZOY$[O!hvO!rvO!v#nO~O!y$_O~P8hO#[$aO~O#[$bO~O#k$cO~O#V$dO~O!hvO!rvO!s$hO~O!s$hO~P#}O!hvO!rvO!w$mO~O!v!PO!w$mO~P#}O!hvO!rvO!y$rO~O!v!PO!y$rO~P#}O!hvO!rvO!y$uO~O!y$uO~P&QO!hvO!rvO!s$xO#Q#`O~P*hO!hvO!rvO!s$xO~O!hPO!iPO!y%OO~O!y%OO~P&rO!hvO!rvO!s%TO!v#nO~P.hO!hvO!rvO!s%TO~OS%YO#Q!pO~O!hPO!iPO!q!cO~O!h#sO#X%_O~O#[%aO~O#V%dO#Y#zO~P.hO#S%gO~O!hPO!iPO!y%jO~O!h#sO#b%kO~OS%lOY%lO#R+yO~O#b#}O!hui!iui!rui!sui!wui!yui#Yui#Xui~OY![O!q!ZO#e`a!h`a#b`a~O!hvO!rvO!v#nO!w%qO~P.hO!hvO!rvO!w%qO~O!y%yO~P8hO!hvO!rvO!y%yO~OS$ZOY$[O!v#nO~O!h#sO#V[O#WiO#]jO#`kO#alO#dmO#fnO~P*hOS&SO~OS!UOY*sO!r&TO~O!s&WO~P#}O!hvO!rvO!s&WO~O!v!PO!w&ZO~P#}O!hvO!rvO!w&ZO~O!v!PO!y&^O~P#}O!hvO!rvO!y&^O~O!y&`O~P&QO!hvO!rvO!y&`O~O!hvO!rvO!s&eO~O!hvO!rvO!s&eO#Q#`O~P*hO!y&hO~P&rO!hPO!iPO!y&hO~O!hvO!rvO!s&lO~O!hvO!rvOS!ZaT!ZaU!ZaW!ZaX!ZaY!Za!o!Za!q!Za!t!Za!v!Za!z!Za#Q!Za~O!s&lO~PDgO!hPO!iPO!y&tO~O!h#sO#Y&wO~O#S&yO~O!hPO!iPO#Y#zO~P.hO!hPO!iPO!y'OO~O!h#sO~P(hO!hPO!iPO!y'OO#Q#`O#Y#zO~P+jOY!}X!h#cX!i#cX!q!}X#b#cX!r#cX!s#cX!w#cX!y#cX#Y#cX#X#cX#^#cX#S#cX~O!hvO!rvO!w'VO~O!w'VO~PDgO!hvO!rvO!y'[O~O!hvO!rvOS![aY![a!v![a~O!y'[O~PHrO!r&TO!y'fO~O!s'gO~P#}O!v!PO!w'hO~P#}O!v!PO~P#}O!v!PO!y'iO~P#}O!y'jO~P&QO!hvO!rvO!s'kO#Q#`O~P*hO!hvO!rvO!s'kO~O!y'nO~P&rO!s'oO~PDgO!hvO!rvO!s'oO~O!hvO!rvO~O!hPO!iPO!y'uO~O!hPO!iPO!q!cO!y'uO~O!h#sO#Y'yO~O!h#sO#X'|O~O!hPO!iPO!y(SO~O!hPO!iPO!y(TO#Q#`O#Y#zO~P+jO!hPO!iPO!y(TO~O!w(XO~PDgO!hvO!rvO!w(XO~O!y([O~PHrO!hvO!rvO!y([O~O!r&TO!y(bO~OS!UOY*sO!r&TO!y(bO~O!hvO!rvO!s(eO#Q#`O~P*hO!hvO!rvO#Q#`O~P*hO!s(fO~PDgO!hvO!rvO!s(fO~O!hPO!iPO!q!cO!y(gO~O!hPO!iPO!y(gO~O!h#sO#Y(jO~O!h#sO#X(lO~O!hPO!iPO!y(qO~O!hPO!iPO!y(qO#Y#zO~P.hO!hPO!iPO!y(tO#Q#`O#Y#zO~P+jO!w(wO~PDgO!hvO!rvO!w(wO~O!y(xO~PHrO!hvO!rvO!y(xO~OS!UOY*sO!r&TO!y(yO~O!hPO!iPO!q!cO!y(|O~O!h#sO#Y)QO~O!hPO!iPO!y)RO#Y#zO~P.hO!hPO!iPO!y)RO~O!h#sO#b)cO#eui~OS!UOY*sO!r&TO!y)VO~O!h#sO#Y)XO~O!hPO!iPO!y)ZO#Y#zO~P.hOY!}X!h#cX!q!}X#b#cX#e#cX~O!h#sO#Y)[O~O!h#sO#b)cO~OS!mOTeOUeOWROXROY!mO!ofO!qTO!tUO!xVO!zWO#R*nO#ThO#V[O#W,pO#Z*pO#],qO#`kO#a)rO#d+vO#fnO#h*qO~OS)UOY)UO#R,hO~O!h#sO#b#}O#^ui!rui!yui#Sui~O!h#sO#V[O#W,pO#],qO#`kO#a)rO#d+vO#fnO~P-eO!h#sO~P!'hO#S)bO~O#[)eO~O#[)fO~OSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#R+uO#ThO#V[O#W-YO#Z+wO#]-ZO#`kO#a)qO#d,rO#fnO#h+xO~O!h#sO#b)gO~O!h#sO#V[O#W-YO#]-ZO#`kO#a)qO#d,rO#fnO~P,jO!h#sO#Y)iO~O#S)jO~O!h#sO#Y)kO~O!h#sO~P!*sO!h#sO#Y)mO~O!h#sO#Y)nO~O!h#sO#Y)oO~O!h#sO#Y)pO~OS!mOTeOUeOWROXROY!mO!ofO!qTO!tUO!xVO!zWO#R,eO#ThO#V[O#W-dO#Z,fO#]-eO#`kO#a+fO#d-SO#fnO#h,gO~OS!mOTeOUeOWROXROY!mO!h#sO!ofO!qTO!tUO!xVO!zWO#R,hO#ThO#V[O#W-dO#]-eO#`kO#a+fO#d-SO#fnO~O!h#sO~P!._OS)tO!q!cO~OS)wO~O#V[O#W-gO#]-hO#`kO#a*oO#d-[O#fnO~P+jO#S)xO~O#e)zO~O#[){O~O#[)|O~OSSOTeOUeOWROXROYSO!ofO!qTO!tUO!xVO!zWO#R,oO#ThO#V[O#W-gO#Z,sO#]-hO#`kO#a*oO#d-[O#fnO#h,tO~O!h#sO#V[O#W-gO#]-hO#`kO#a*oO#d-[O#fnO~P+jO!h#sO#Y*SO~O#S*TO~O!h#sO#Y*VO~O!h#sO~P!2mO!h#sO#Y*XO~O!h#sO#Y*]O~O!h#sO#Y*_O~O!h#sO#Y*`O~O#S*bO~O#[*cO~O#[*dO~O!h#sO#Y*fO~O#S*gO~O!h#sO#Y*hO~O!h#sO#Y*jO~O!h#sO#Y*kO~O!h#sO#Y*lO~O!h#sO#Y*mO~OS*uO!q!cO~OS*xO~O#S*yO~O!h#sO#X*zO~O#^*{O~O#e*|O~O#[*}O~O#[+OO~O!h#sO#X+PO~O!h#sO#Y+VO~O#S+WO~O!h#sO#Y+YO~O!h#sO#X+ZO~O!h#sO#Y+]O~O!h#sO#X+^O~O!h#sO#Y+bO~O!h#sO#Y+dO~O!h#sO#Y+eO~OS+hO!q!cO~OS+jO~O#e+kO~OS+{O!q!cO~O#Z-iO~P*hOS,QO~O!h#sO#X,SO~O#^,TO~O#e,UO~O!h#sO#X,VO~O!h#sO#X,_O~O!h#sO#X,`O~O!h#sO#X,jO~O#^,kO~O!h#sO#X,lO~O!h#sO#X,mO~O!h#sO#X,nO~O#Z-mO~P*hO!h#sO#X,zO~O#^,{O~O!h#sO#X,|O~O#[,}O~O!h#sO#X-QO~O!h#sO#X-RO~O#Z-oO~P*hO#Z-pO~P*hO#[-aO~O#[-fO~O#[-kO~O", + goto: "!9s#jPPP#kPPP#kPPP'g'g*s'g'g+Y.l.u+Y/z0r2Y3v4h5W3v5{6V9c;{;{;{>b>u;{?d;{;{?p;{@O@O@O@OAuAuAuAuAzCpCwGvHQHdHnHxISIfIpIzMuNPNZNmNw! ]PPPPP! g! l!${!'r!,WP6VPPPP!0UPPPPP!0k!0w!1]!4o!4uPPPP!5RPPPPPPPP!7hPPP!7oPPP!7wP!9n(sROQTUV[dijlmow{!Q!V!Z!_!c!i!k!q!y!}#R#W#_#f#i#k#o#u#w#x$T$X$[$a$b$f$k$p$z$|%S%_%a%d%g%h%t&P&X&Y&[&]&_&c&i&j&w&y&z&|'P'l'm'y'|'}(Q(U(W(j(l(o)Q)S)T)X)[)b)e)f)h)i)j)k)l)m)n)o)p)q)r)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*o*p*s*y*z*{*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f+v+w,S,T,V,_,`,f,j,k,l,m,n,p,q,r,s,z,{,|,}-Q-R-S-Y-Z-[-a-d-e-f-g-h-i-k-m-o-p'eXOQTUV[dijlmw{!Q!V!Z!_!k!y!}#R#W#_#f#o#u#x$a$b$f$k$p$z$|%_%a%g%h&P&X&Y&[&]&_&c&i&j&w&y&|'P'l'm'y'|'}(U(W(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)q)r)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*o*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f+v,S,V,_,`,j,l,m,n,p,q,r,z,|,}-Q-R-S-Y-Z-[-a-d-e-f-g-h-kf|UV{!Q#R#W$k$p&[&]&_]!WW!T#]$s&a&b'dZOQTUV[dijlmw{!Q!V!Z!_!k!y!}#R#W#_#f#o#u#x$a$b$f$k$p$z$|%_%a%g%h&P&X&Y&[&]&_&c&i&j&w&y&|'P'l'm'y'|'}(U(W(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)q)r)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*o*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f+v,S,V,_,`,j,l,m,n,p,q,r,z,|,}-Q-R-S-Y-Z-[-a-d-e-f-g-h-kX%m#}%k)c)gW![Y!^$P)_R!gh!^!so!c!i!q#i#k#w$T$X$[%S%d%t&z(Q(o)S)T*p*{+w,T,f,k,s,{-i-m-o-p[#a!Z#_$z&c'l'm[#y!k#x%h&|(U(WR%Y#nd!egz*n*r+u+y,e,h,o,uY#q!f)t*u+h+{Q%]#pY%p$Q)z*|+k,UQ&q%[X'v&r's(h(id!dgz!f#p$Q%[&r's(h(i!^!so!c!i!q#i#k#w$T$X$[%S%d%t&z(Q(o)S)T*p*{+w,T,f,k,s,{-i-m-o-pW)s)t)z*n*rW*t*u*|+u+yW+g+h+k,e,hX+z+{,U,o,uQ!toQ#j!cQ#v!iQ$V!qS%R#i#k^%b#w%d&z(Q(o)S)TS%r$T$XQ%{$[Q&m%SQ'X%tQ)v*pQ*O*{Q*w+wQ+R,TQ+i,fQ+m,kQ,P,sQ,X,{Q-`-iQ-j-mQ-l-oR-n-p!_!so!c!i!q#i#k#w$T$X$[%S%d%t&z(Q(o)S)T*p*{+w,T,f,k,s,{-i-m-o-pQ#m!cQ$W!qQ$`!rS%U#i#kS%s$T$XS%z$Y$^Q&n%SQ'Y%tR'^%x!^!so!c!i!q#i#k#w$T$X$[%S%d%t&z(Q(o)S)T*p*{+w,T,f,k,s,{-i-m-o-pR%Y#nQ$]!rS%w$Y$^R']%x'eZOQTUV[dijlmw{!Q!V!Z!_!k!y!}#R#W#_#f#o#u#x$a$b$f$k$p$z$|%_%a%g%h&P&X&Y&[&]&_&c&i&j&w&y&|'P'l'm'y'|'}(U(W(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)q)r)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*o*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f+v,S,V,_,`,j,l,m,n,p,q,r,z,|,}-Q-R-S-Y-Z-[-a-d-e-f-g-h-k%v]OQTUV[dw{!Q!V!_!y!}#R#W#f#o#u$a$b$f$k$p$|%_%g&P&X&Y&[&]&_&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RR$R!o%w]OQTUV[dw{!Q!V!_!y!}#R#W#f#o#u$a$b$f$k$p$|%_%g&P&X&Y&[&]&_&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RY%c#w*{,T,k,{Q&{%dQ(P&zX(r(Q(o)S)T[#y!k#x%h&|(U(W^%b#w%d&z(Q(o)S)TQ*O*{Q+R,TQ+m,kR,X,{Q#{!kQ%f#xX'R%h&|(U(WY#r!f)t*u+h+{Z%p$Q)z*|+k,U$i_OQ[d!_#f#o#u$b$|%_%g&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)f)i)j)k)l)m)n)o)p)x)|*S*T*V*W*X*]*_*`*b*d*f*g*h*i*j*k*l*m*y*z+O+P+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RVaOQdQQO|uQ!_!a#f#x$|%[%h&i&j&r&z&|'s(Q(U(W(h(i(o)S)TQ!_[Q!abQ#f!`Q#x!kS$|#e#gQ%[#pQ%h#{Q&i$}Q&r%]Q&z%dS&|%f%iS's&q&sQ(Q&{Q(U&}Q(h'tS(o(P(RR)S(pSdOQR!bdQwTQ{UQ!QVQ!TW#Q!zw{!Q!T!}#R#W#]#_#i$T$Y$f$k$p$s$z%V%X%u%v%|&O&X&Y&[&]&_&a&b&c&k&o'U'W'Z'_'l'm'p'q'r(Y(Z(](^(_Q!}xQ#R}Q#W!RQ#]!XQ#_!ZQ#i!cQ$T!qQ$Y!rS$f!{#OS$k#P#SS$p#U#XS$s#Y#^Q$z#cQ%V#jQ%X#mQ%u$VQ%v$WQ%|$]Q&O$`Q&X$gQ&[$lQ&_$qQ&a$tS&c$y${Q&k%RQ&o%UQ'U%rQ'W%sQ'Z%wQ'_%zQ'l&dQ'p&mQ'q&nQ'r&pQ(Y'XQ(Z'YQ(]']Q(^'^R(_'`Q#OxQ$g!{T$j#O$gQ#S}Q#X!RQ$l#PW$o#S#X$l$qR$q#UQ#^!XQ$t#YT$w#^$tQ!^YS#d!^$PR$P)_Q${#cQ&d$yT&g${&dQ#k!cQ$X!qQ%S#iW%W#k$X%S%tR%t$TQ$^!rQ%x$YT%}$^%xQ#g!`Q$}#eT%Q#g$}Q#t!hW#|!l)`)d)u!x%^#t#|&P&v'P'x'{'})P)W)h)l)y*P*R*U*W*[*^*e*i+S+U+X+[+a+c+o+p+s+t,R,Z,],^,c,d,y-P-V-X-_-cQ&P$aQ&v%`Q'P%gQ'x&uQ'{&xQ'}&yQ)P(mQ)W)OQ)h)eQ)l)jU)y(v)a*aQ*P){Q*R)}Q*U*QQ*W*TQ*[*YQ*^*ZQ*e*cQ*i*gQ+S*}Q+U+QQ+X+TQ+[+WQ+a+_Q+c+`Q+o+lQ+p+nQ+s+qQ+t+rQ,R+|Q,Z,WQ,],YQ,^,[Q,c,aQ,d,bQ,y,vQ-P-OQ-V-TQ-X-WQ-_-]R-c-bQ(R&{Q(p(PT(s(R(pQ%i#{Q&}%fT'S%i&}Q$O!lU%o$O(v)dS(u)`*aQ(v)aR)d)uQ&s%]Q't&qT'w&s'tQ&U$dY'b&U'd(`(z({Q'd&VS(`'c'eR(z(aQ'e&VQ(a'cT(d'e(aVcOQdUbOQdQ!`[Q#e!_W%P#f$|&i&jY%Z#o)b)x*b*yQ%`#uY&R$b)f)|*d+OQ&u%_Q'Q%gY'z&w)i*S*f+VY(O&y)j*T*g+WQ(V'PY(k'y)k*V*h+YQ(m'|Y(n'})l*W*i+[Y(}(j)m*X*j+]Q)O(lY)Y)Q)n*]*k+bY)])X)o*_*l+dY)^)[)p*`*m+eQ)}*zQ*Q+PQ*Y+ZQ*Z+^Q+Q,SQ+T,VQ+_,_Q+`,`Q+l,jQ+n,lQ+q,mQ+r,nQ,W,zQ,Y,|Q,a-QR,b-R$h`OQ[d!_#f#o#u$b$|%_%g&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)f)i)j)k)l)m)n)o)p)x)|*S*T*V*W*X*]*_*`*b*d*f*g*h*i*j*k*l*m*y*z+O+P+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RQxTf|UV{!Q#R#W$k$p&[&]&_Q!{wS#[!V*sQ$e!yW$i!}$f&X&YY&Q$a)e){*c*}Z'a&P)h*P*e+S%v^OQTUV[dw{!Q!V!_!y!}#R#W#f#o#u$a$b$f$k$p$|%_%g&P&X&Y&[&]&_&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RQ!hiQ!jjQ!llQ!nm[#a!Z#_$z&c'l'm[#y!k#x%h&|(U(WQ&x%aQ)`)qQ)a)rQ)u*oQ*a+fQ*v+vQ+|,pQ+},qQ,O,rQ,[,}Q,i-SQ,v-YQ,w-ZQ,x-[Q-O-aQ-T-dQ-U-eQ-W-fQ-]-gQ-^-hR-b-k'dZOQTUV[dijlmw{!Q!V!Z!_!k!y!}#R#W#_#f#o#u#x$a$b$f$k$p$z$|%_%a%g%h&P&X&Y&[&]&_&c&i&j&w&y&|'P'l'm'y'|'}(U(W(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)q)r)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*o*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f+v,S,V,_,`,j,l,m,n,p,q,r,z,|,}-Q-R-S-Y-Z-[-a-d-e-f-g-h-k!_!so!c!i!q#i#k#w$T$X$[%S%d%t&z(Q(o)S)T*p*{+w,T,f,k,s,{-i-m-o-pQ}UQ!RVQ#P{Q#U!Q_$n#R#W$k$p&[&]&_Q!XWQ#Y!TX$v#]$s&a&b[!WW!T#]$s&a&bQ&V$dQ'c&UX(c'd(`(z({&[YOQTUV[dijlw{!Q!V!Z!_!k!y!}#R#W#_#f#o#u#x#}$a$b$f$k$p$z$|%_%a%g%h%k&P&X&Y&[&]&_&c&i&j&w&y&|'P'l'm'y'|'}(U(W(j(l)Q)X)[)q)r)x){)|*P*S*T*V*W*X*]*_*`*o*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e+f,S,V,_,`,j,l,m,n,p,q,z,|,}-Q-R-Y-Z-a-d-e-f-g-h-k!a)_m)b)c)e)f)g)h)i)j)k)l)m)n)o)p*b*c*d*e*f*g*h*i*j*k*l*m+v,r-S-[X!]Y!^$P)_Q#c!ZQ$y#_X&f$z&c'l'm%w^OQTUV[dw{!Q!V!_!y!}#R#W#f#o#u$a$b$f$k$p$|%_%g&P&X&Y&[&]&_&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)e)f)h)i)j)k)l)m)n)o)p)x){)|*P*S*T*V*W*X*]*_*`*b*c*d*e*f*g*h*i*j*k*l*m*s*y*z*}+O+P+S+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RZ%e#w*{,T,k,{S%n#})cT'T%k)g$i`OQ[d!_#f#o#u$b$|%_%g&i&j&w&y'P'y'|'}(j(l)Q)X)[)b)f)i)j)k)l)m)n)o)p)x)|*S*T*V*W*X*]*_*`*b*d*f*g*h*i*j*k*l*m*y*z+O+P+V+W+Y+Z+[+]+^+b+d+e,S,V,_,`,j,l,m,n,z,|-Q-RVbOQd", + nodeNames: "⚠ Comment Script Boolean Word true false Nil String Number Keyword Tuple List Splat Set Dict Synthetic Args Placeholder Fn_Lambda Fn_Clause Tuple_Pattern Pattern List_Pattern Splattern Ignored Dict_Pattern Assoc_Pattern Recur Block If If_Let Match Match_Clause Else When When_Clause Do Loop Fn_Clauses Repeat Let Ref Fn_Named Fn_Compound Import Use Ns Test", + maxTerm: 122, + skippedNodes: [0,1], + repeatNodeCount: 18, + tokenData: ",d~RkXY!vYZ#U]^!vpq!vrs#Zst$wtu%Svw%_xy%vyz%{|}&Q}!O&V!O!P'Z!Q!R&c!R![&y![!]'l!]!^(^!_!`(c!`!a(h!}#O(m#P#Q(r#R#S(w#T#k(|#k#l)h#l#o(|#o#p,Y#q#r,_~!{R!g~XY!v]^!vpq!v~#ZO!h~~#^VOr#Zrs#ss#O#Z#O#P#x#P;'S#Z;'S;=`$q<%lO#Z~#xOW~~#{RO;'S#Z;'S;=`$U;=`O#Z~$XWOr#Zrs#ss#O#Z#O#P#x#P;'S#Z;'S;=`$q;=`<%l#Z<%lO#Z~$tP;=`<%l#Z~$zP#o#p$}~%SO!z~~%VP#o#p%Y~%_O!x~~%dSP~OY%_Z;'S%_;'S;=`%p<%lO%_~%sP;=`<%l%_~%{O!q~~&QO!s~~&VO!r~~&YR!Q!R&c!R![&y!`!a'U~&hPX~!O!P&k~&nP!Q![&q~&vPX~!Q![&q~'OQX~!O!P&k!Q![&y~'ZO#S~~'^P!O!P'a~'dP!O!P'g~'lO!v~~'oP#T#o'r~'wVY~qr'r}!O'r!P!Q'r!a!b'r!c!}'r#R#S'r#T#o'r~(cO!i~~(hO#[~~(mO#b~~(rO!t~~(wO!w~~(|O#Q~P)RVSPqr(|}!O(|!P!Q(|!a!b(|!c!}(|#R#S(|#T#o(|R)mXSPqr(|}!O(|!P!Q(|!a!b(|!c!}(|#R#S(|#T#](|#]#^*Y#^#o(|R*_XSPqr(|}!O(|!P!Q(|!a!b(|!c!}(|#R#S(|#T#h(|#h#i*z#i#o(|R+PXSPqr(|}!O(|!P!Q(|!a!b(|!c!}(|#R#S(|#T#[(|#[#]+l#]#o(|R+sV#eQSPqr(|}!O(|!P!Q(|!a!b(|!c!}(|#R#S(|#T#o(|~,_O#V~~,dO!y~", + tokenizers: [0, 1], + topRules: {"Script":[0,2]}, + specialized: [{term: 4, get: (value) => spec_Word[value] || -1}], tokenPrec: 0 }) diff --git a/parser.terms.js b/parser.terms.js index e278b62..af02dae 100644 --- a/parser.terms.js +++ b/parser.terms.js @@ -1,18 +1,18 @@ // This file was generated by lezer-generator. You probably shouldn't edit it. export const - Script = 1, - Boolean = 2, - Word = 3, - Nil = 6, - String = 7, - Number = 8, - Keyword = 9, - Tuple = 10, - List = 11, - Splat = 12, - Set = 13, - Dict = 14, - Struct = 15, + Comment = 1, + Script = 2, + Boolean = 3, + Word = 4, + Nil = 7, + String = 8, + Number = 9, + Keyword = 10, + Tuple = 11, + List = 12, + Splat = 13, + Set = 14, + Dict = 15, Synthetic = 16, Args = 17, Placeholder = 18, @@ -22,9 +22,9 @@ export const Pattern = 22, List_Pattern = 23, Splattern = 24, - Dict_Pattern = 25, - Assoc_Pattern = 26, - Struct_Pattern = 27, + Ignored = 25, + Dict_Pattern = 26, + Assoc_Pattern = 27, Recur = 28, Block = 29, If = 30, @@ -34,14 +34,15 @@ export const Else = 34, When = 35, When_Clause = 36, - Loop = 37, - Fn_Clauses = 38, - Repeat = 39, - Each = 40, + Do = 37, + Loop = 38, + Fn_Clauses = 39, + Repeat = 40, Let = 41, Ref = 42, Fn_Named = 43, Fn_Compound = 44, Import = 45, Use = 46, - Ns = 47 + Ns = 47, + Test = 48