From f66aa8738ff9a508c0b1c1e919c19d817208dccd Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 1 May 2023 21:40:04 -0400 Subject: [PATCH] step: add some q-expression functions, part 1 of many. --- mumble | Bin 108388 -> 108444 bytes src/mumble.c | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mumble b/mumble index 76e9bb5281e790d2f7d3ef591c2843e2d6027eb2..f36ebc60ec0859e45dfbf0b6f7a3a03cca734a86 100755 GIT binary patch delta 9639 zcmZXa4O~>k`p5S$9r#i?WUxbfSP39R6_Yb&&**t_w)DjiJ9;BnVB=^w{s3_ zb)~_*>O1#}2uOb?@?yNss1tuY)K;f630Cl@JN|QSBM3gXF;lko5nxxqX20PwHwbKO zvdNF>%^rPd>>x2h{y5BD$I2+R5~it~Vjp8A+pIUxHM;(sV?Uv-LhIV4ux(}rvmg5w zZMeqXWuwt{nDt&gG}fbv<(PfhV2j=>LZkhwST*W&)IBviqKY-3F0<$jo*F%z-N&Vm zqK($r6c%IgW7pBfXzWZj2W?P@-Vm#?S*#rGB((7wyNn$}yBw`vW7n`7Xm_I>rm-8? zfDk|SAG8LI-Nh!O)eq7e5;YcMMmq}aaE--?(PpC^sj(O_+A6erN2qQ+@M`JN! zv>k&y`clOGG!>7{EN2kL9IE$n9vLkAZ)Vk~(^30rMn`OB4XDdP^@jc$jWOf$N70Vb zSd2LoV@4aOu^2PjpfJ55NMkW(w3E;VYb?f$c6pdQk4c&eMvax-IR0^s#i+wDYP4fC z7NbV150|Tq)l@KUtc(iR8=lZuj2msXIzCxb!N{>vrB+fj6^uO`V^=E^G!={)uWf6MA6phB{arvWYr)n%lAA!-M zeM)07dbB~2dc$;$#puyaij?s@t*K!ASXqwapV3&19_?tmN0g-*=V2BjK#>&R-v7*u^4w0#*KEN#$wcHJEHVni!|1whUG+I z%+c}_cu`aGuVK|#N>@uSX-W|_tN}}9(K43Bni58impK}(H!RUuj6516SI6gRDi}Lf zf(FZ#@--EV9xIau>kY4JEXIy@Ioj7W7Gp=dTV3UEnhHig7^BDWuWKwuk5(U}Hxz0t zMvrzB+BY;7qeq*Kc9q6r^k}PMJo?Z}qgYeH_+v1B9KTv)F@CfiF?z2OjrFKyIWZXj z5WUx0jrOl))u_`^muYlFEo(qsHbifDTca^@T>2>53XR3chhXGrD>WA5MjI5XH<&dR zqeeRk?YkO_QKMZRD{pbVrh;)}Ww%<{ps8Tou^2b5v{7R*ZnXM1y`f5DF>bV@;^aqP zt*Kz-Sjko^+ACx1SgBGgTQqYp_Bf0kudz*IF?O^aaeA*0G}dDa%ZbC-Qw?EXIy@Qi2TF zuBl-3@qYb_w#Ziiov?$ND#nl13Qg6asp3bF;Mc!aQw`Bn@uNr>;TyKdtV>yI2p7%h z2y8lyQH$(V2~+)*u<`8Xgva4Ji=P+@4eaTOiN@{8IK1TKVOpnoUn1yI%H0mJZ4<+x zhJ7VV*^W5p`9%%eb%+s!>nWG$^GmXN(Z}Q6q)M+Sm-)$ zcv|$V*c*ktC@>4&vCdm@_hL8Jg|Hv7^lxUa7{t6QykR%?hC!j=0^~H&+gs5D7g@zS z$%?O@oqHz=ZZVh2{V<*#s;qJupflU2vvyY)W4CTd^HAUq`}W!?Uhs+i_MT5cFwFcuW^L3ZlmFu2F=U$ppKJz%2K)NI6OFQsJMUHm|QWJ8-0d=?** zg_}D>p$!YQ?6s!oz!XvVI%O>m#)*ILu4l5(n}))0_D9oDMSp-r{QQXW{!uot)mM4u zC~Io%&({C!<5Omr>z3j>K)v9b?6aROJ`2^twC=)->^2tC)IxA~A%#UclOSEnhJtmBf!r(nM<_{sw1u#zQQw)o_# zg(iHHsry~Vvaql~E!1@v*0Ac!Lt!>MdpQRW=i^tRp_aXLr9XVeR$qw@d_i2>8QiB^ zom(hkXRto(f9v_(^<>uXmmIjvR{mn~Icbv{t-$v!?x#Lwt=oI-@GqkRJPw<5sU^tc zY^fz*VskjPEGy$K`610(B^a=i0D^_a8Tehf+H%rxos;{d4B~>lX zKhN@h4e7bSVbWQVo@F(^1}lCJ_W7?7gXiNW?B*))U+g8@^Y6w)b z#H*2t&t5j~Y7{iG@~i#fA8hB<*~Y>>bUR<-4)R2gZsk|z*E|p=v&81;USVkI5^1%} z)Drs0+8S{acjd9fdvl9FCGZ`=-Gf8HMGnJ9Kn`~8WT{u}4nA!ZP7 zWwVjLaPmU?`u|PjdEU=9H4+nVp@TxKtI(yf;7z-fl0tmjH!vRVH1F z58!}uw=n8^$bJy@J9NVLrGA_2dr<$1>_6Cq{d2N^oBH3%ek=9sWxt8~2W0;u^>@ks zdFof`?D2n%1N;{DYR44VY(Lr20C0n?e=rP=*uQzuN10r=UPh6%if&;XeIA=tHC?Jx zsMe`!j8yfgR;emhs>7)Ac_csx*!W}sKP97za^i&mfl$CV0i1v;o~gicC2=#qsK8A4 zi4S*yAgJflT_6oQ_%0XN1vB_mSD2ykAzq!G1rAMXXpc|a- z;W?*N9{O^(vAom(qdkpI@fSZ!V!Bg2!2`Td7@VSm&m-|uN!J<;ypF_sPVpAMMPj~F z%-|z?!)W~gr|>Fqtm+LRt^rUiB9vcl-(Rf5k6V5OH+X$N7z`)*jeZag+qlsOn?gRC zn%R6lHcH}~{B0iyQ~JHh5BWe6{EOeAs*MjcVpGP)8*vjeS9WdlQNGRyARO?KkM@Hw zDCW=m!DIRnPCu}S@AZRFCEyMIy&tqIAw~SGKcvEW9@HPE!D_w)8)aA_KiMC0;A{SH z0B(F6e>MPCDdrXYasbSRQ~a?&v|IVYK(waU`Sn1wCwNK_Sm71^J~m3^a(*oc65%!v z832=E7hf^}PfQC>491hfc||aojRggoq~CrXPi(nc7XKPcV0GXx#BDCH$5Cd%+wd&S zr=eftfEA8oAyDE1cO2uxVTOXcsE&jbn9Hw5!Uu4amq+1M-{U8ukWM>ZjE0yVo~IUc z%|7bbmH-|uaER}I2u``KS*ZS!vn~{;d*{P=;9L1O55q7xwmuOeVH1x^#0@OxQxjnV zJkG0-dIc;J8*f&uJTnn|cvB*{_x&}CvZrr7ZSr07i{ox0408dSBjyp<3UHq{j>6^t z?YKP(=DP%Lnj<&0cHB97dHIaj(GyFL=S}`{64VFPr~l7@5y@fzJ(+RP??$rmCJ&(XRIKDJd`|W`SDSktCMffUnSr(7CKYA2 zoL_tjE+lOoC$F-4nAmxSyv?^&y9BK@rQDGHd}rrW{A+rjRJwt+hMsB*sr>#l$o6Z0 zLay@TP_c?t{{DKM7fpu%B`QT^eQ-ML8{0Wn4!n>c21dxsT~qBTX-(4ppxXV?`b+yI z|8NFIpD^C>?F@`wi5$a|XJUN0eEv*~I3IV8-wTUtWyA|OpNSFM9TT2`9~7A4u%tsd zz*&cF4z<%AkIu!1R*4+RU(JA6_{*^~1LE9_7l(;$$~SS=0NiW2+gW~nKE%ULNALnz z?V%(lICkcM7xW5`$FU>6=w18}|9LU^^SL?T&VO1APr^RO;9QuXC^Lre_!Z#G-(Cvq z;By|F2S*gw7{~cMXb0tPlq_D)hX$zRpS}X);GYh76?y}F#rrISeC5ed9+L|>jz5>d zkDx?{$O$b4uue(0@PT>oiL%Aaak*m0k>!vNaK;h00v>UN5j=Y(gcbJcZ_;&!>hUN2 z=?sm+UX~knTbeM_&QJ@nJ8`4n0OB6R^@95ndl1_M(|TDwiE9Nb#Jz|s1h@MmdlDBB z7lz&b1ESz>SEIKiih`w*K1A1Cfh>@D~RaX(@m za$#raeiA+;+VEU-hSm`qiJJs(CH5t56ugnxkGNiNC9yxTO>il3e_}dkouMm<1BfdG z7Z3*$7d^o1cZMz{5kw+a40wSU&lM&hcph;uu~qOa;(^3Tg42ji#BqWr5Sxijg2xbB zh`j}mBn~0gJ;3XCh9;00M566JaTIYVag$&RaTsx<-~i%q;(Eb-i6e+@f_o8164we= zh@*%r1h@MkM-vwn3UQ0XU=q24TZv!a`ymaa%hj5J3DKag*S_#Lp8q3hqTbpSWJILcD<3Cb-=f zc_DGF;9JC5#1(>Di3=BzC=%ili5G}-1)nE=kvK!}S>kMBYd7Z*Cv|f!aa=bqB{m5@ zP4n}Jy#*gfF3ftFgw83lULkI~M+wk?tYySaf{zftM%*ZPKXCzZz2G|HzY*I6ZzWz% zT-(hnh${qd^feV?1SE=tsH6!+#JPe?iQgd35WJFjC9zd-0Wtp75EBr*l=w~JIKeLv z7ZaNV&m(?|*jw-{-$E3tN$7+~qXBD(+wM{V6NpQQn*@&`E+uXhJd$`ValPOK;xb~J z;3(p9;@WOrM_eJ;Qb+?TNE8VXK>QAIuHe4JmBbl>dl55Yt6+urUE(Cc?MCGHh~os` zB3@5y65LA6iM<6EULvu9gieU_#P1Wg-Jt}|5^p4K5`3C?6LF*95My4~dfmi}mV=;{=QK zJ|Z>=uB7#M6MG{Uc7~Rc_?U!F3|L9Lhq&!eN}zyvFL9ILrNlPkM!_!-?<1}kJdb!k zu}$zSVmooI;56a`#1((y_3@CAI7p&M3>ZUvh&Wg9NMZ+ZhTsI^!^Bp>QN*7RCkeI? zA0dtt96W>_9AhNgiZ`lh(9B4`!Cho9oxzv*fqhDy(sTxi^-BT zKl6EPUd~*Ujm`X5GO^MA>Dg1I<&OFaXm+20OX+k;8!|;ZR&A5jHdSpWsqGZCO;g+H zYCBVHXRGbA{2s^e=gWBf2EhN$s9JFe{E=?a(Ki&`E=T4D=v3gGBXbj6?xjR{@#Gya oq^I-$p5m|XfW)2~Hp$Ix;KvAU>VKEC@%uaAG5mY#=$#P$e|~|}l>h($ delta 9612 zcmZXa4P1@q|Hsew?!iOnB=kU~PNfGaJurFvX<6i({I(f|9suDiPbuYa$X?(6;jUQhSuemG})Rq})L z^&02GFzC6y*Oi#l?mF>fRgXHIQLuu)o$+6JF$gX%o+gjxfnZi3+x(})RA0zu$wsg4 z*_&jI`u7yQ>4*sv(+cA^QTWMQXJjR%p$ZpK|saR(EQujx8lTRx(3?7kkIp zzB7#r)l{n4P^|1Ww(mj}`q%Pf-NZ5iJlTJZde^WPhez8cR*G65pm*({(e_QO2KA5t zy}?DJb?gaFKL>4Zjdf#@fnKZxZKTE;*%Y*A(MD-(G%G;cgf>QF`hnV2#D7 zdt%gRJ8LY)jCOaB-nFa7T1!|)PmCC~heq2mjS=J2 zbI=aaSd2IrBS!0^u^2JhvuJ%a79&R6)KlIaewqr#jFpJs_MPcojn`B#YOJKHm1i{- zj5`G5Rx1gb3Pz5VqiSWirh>6!r9rJcr>S7{Sn&;!I~bv!s+P<09pdJz`BO9kF;pM<3 z=7j1EDH@BHBMdJG+7~nyF9+JQXeVkcUJkTPI5&mdc(^aiFnX*s;Y^D(7Gp;n(OYj=tg#q7+SJ~1KT9gOwwoqd+?mifI zqsmwpe2^X0%7q zmS`--jJBbVyjZ203Pz0;-zZtpu8MJEWvp7+q8WpcM`Pqzp%2V$nhM5_mEBSDO|o56 zv6i!pXpBBe?^>bJwsKaAS|6=<{Y<0n<*WwvkZ8T(bB)I6ar!xEztC8WJ_e&lyH{f| zcC=^F?$cO|9c>d@v&LfVXd`0uh65Ulv7=2zYtdMYJr-j}8>F!qd+b2Z+vx$iq&0>+ z;xN>Xhh~q)baP2;N;l=+2zF=mvv8Qjj0uKK?4>br9`i?F_xw|bXr8)#aiB{oa9Y8( zjR}Q0?E5iMFoFFu#vg_;pRq~G!$kAUvEKzMHIXcO-f)NdzyM}H=Wbp-uNkKOYz)xV z*We^L{s(Fwm+f=ZJ}BE~sJ%Wtwc}FZ5Fe$mS0V`@&x=Dl3$QzqJsih}Oxs-cbJ20|!MapVJ|PALQRXXI zj-4TbUH>2*zBMPWbOt!VCaiiH=9>4c$^-!Bzj_p$VsET|)p2h7038cR?rOfgI>HeK zv1#kPS@1eH@E0u;wj8k)uGAY?!Ma{h!vYF>vP-D9h?ZNS8@z?BelSw-5@c`D+FNLY z-K=o^2<5U1yRbeSjxdJ}RnUnY+)(0hv)O2#$R0aFC$p(&e0!y)(fn!oI9K?<0bJ@1KZqhH&%2GuIUu%Ql@G5AE3Pb8jmjpX48g zWA9}(Yn4tX*`0G9EZ~Q=_+@y{52;Gn2`Q{=VTXB-b)mD;^%R?b+mj9aWe%(}@AxIl z8HO_7%Y&dZd+Bnxa_@k7#pU6k+}_VlU+D+mvL{yp-S_V|(v4K-fsa;Fe&R#CmOEKr zTdaHBSF&(thbY*wFqbX1_4aWSg>RGAU}qfoU0b~mJ7(((PVAnoukx#zgLN15$rcee4WyZg&#IqzzG#MK2;*uSp^y7yBH6WR&`*nKScs|CNdf(Hw)jrEBC zQcjgF3$(>wtJwV78286VWF@ezQp^t4#=7rU3;+F8tWHCwvZmTV_mNd{gr_V}4&zwt zwLtfwYQcstD|Nq#EFBAd)xxf}!bDbjtuKVJ^Vc%)#(egAZ%AizuXl$vY~}UdKCxo$ z*5JO}+PZ~gb`I-JhiMC~^{lpfSJw6S45(zwe-Cv3s8VjU5MQgfpX#JFPE**S--mcx zEk@m_eB{K+QTgBC;n1l3<5(@UQ1)Zjw8scfjO zsOl%F%5nTww(yUj4t;Pv6H*8(`@>JUa*!SSBP=4ab?PFTIz$dSP5q7^l>LvW$12wK zMi9Kt;%@X(uI^#eZ-he;E4a}e%2~yYS3JhYcq0Usp-_iF7X8aEzRjix$oKct1N^=LhrIt-9X$ z?0MD4hb5{bpKNX&*|fW5q+PUVal`as|73%S)MM7I(hs zW`N^0oR+0DxWgrO<)%0L^yVOV8(YsqDC={}Pw7^L33g|*ZUsA@#@VQ+QoT=%K6Wbr zUq&=tsuW!tLJi*7DFsig4%c#JBOCmb=1MU`ZbPuLw@N&Byi$z6(6ATZ1grk^Q~ua1 zx_teo(PiDvmQz~6GH?5^cDH?9Qd(W2aHG(5ZFTL?#p!>lXc_li1-@>)*}2=3VKWQ6 zWg5d)qz6 zd~U@1;8fkFkHuA`*y=uGm+yH(CVTI`H|uoY!^JK})0mAc>V8P%F=QIkNsh5%A@ws_ zfF3iee9SJ$MXv7@yV`W$BXWj1YCnEIOOlT$w2rElqfX0F`Et~Q`~EJ?q6@9Pof-d% zb~(|?v)L=i`K=sf-uTyOaNkoVH}~Uuv5XaO@XhT0gJqFh@e0wd8)cyqryM3i{r@kA zQ`^O^5B=>OnV^o^AV<-Ier0>hxt7aa@07cqB}a98I4aVN6VqA_a?~muWojL@N{%X& zqb__Z)~a}DQqFzK9zFC`hDj6s$lL1-4x)Ly@tbi{e%_?!=4PB~2AlS%hw{fZbMB*9 z$a%8KsH=Ae>`>rzkJ{~JyPn!jI^nNS+b-KbQTw`Ve^2cTvi&u+&&sxi+SRiC1-19f z_HJtLl$4B(}Nl~8g#2fzms_$GjpFoRE1;2ov8 zgkMo$5^U!K9KaV=@re#F9=_u{9bhK}@f1fGr!*Dut&T87`K_3P6J#q*>-kbA7@+*P z-g3YR&a`t0UQL(zI4J&l^cZwhBK!s1pp;|Guhaj-OXqR&;_ONAK_67wO4ww4cn=;gy!@AK=wpAp+L% zKf6LGyvaS>@i3APr9%*(i3g>51^>_;LX=A@_(6Awht2$Ns%CS44?IlZBRy~v#^o(* zy6|-#5TrCL=leY%$z|tzEd|Egc|w1eS*>C`Px6Fth~W!8;d%YF+?I|tx%`|b1jAvD zua99a3t9_P_)sqhfn+|z3x?^T)i>nuyu*1 z2c>BlKh+&F;6vWu8#n$Yf7KgSDE061Yu@k*6!Kv{XlL_TK4|OS;SD}$3wV+*nBZUh z6Few)m-1V_5C=zjP!C9kOg_H{-YolgoFCpKQ+c5u1b8GY(Ioxh47^zjoTB-+Sb}aA z{3zV!0B>8?2I6VBjL)L3-(rUmmal>!-vN$UMux(R3htt`7bHO_ztIb}!~47-99Nyf zPlh9Hu)NtDBHOtXzTPtWeap63Xzu{a`0i)mw4-U3`uWyvmbkGi`s2M`#lP9n=Uq9r+?*yU^H3(Lbe=;r|0 zmdL@d6`vJu9fH$uvD_a5GaYhlDDPM1gGi}hKP~$swh=elvK1KrYc{l=v9%Yst!`ot`_rgNiZ(5k6PIgFQzQQ zw`bRh6b-%f@zaLB5f;gWzL_9Wzn%nTkz-79CtnYvVR@PK-Ysy7Q|;%{rb`>dD@TC` zbmHHRf&k^W7cBLoAR7X*o|jYn&tNgd!>9D>&JzdvHtXcWmydx!H{*EmeI>6>)SWu> z{bQgCUbV~`3x0qP=?BR$5MnIV$#BdmEpLRJ^JFy5iI=LtX_2a`q@v8;P*s^!l-aAQ zS}T=!y{c-lRFv6s{K^Y(IevDcTxDfHvGX)}nlGw$K3Y>!fnm;!=H?XqZ}VT1=mgdn z{-YkhOX5!^z#OmR&&gRX^%b+2#-#6xlC_?0lPTt?i7^GO)- zQp@O<;THwGEP<&|08nhHoI=MQmVZsfhgP{ekS|JuDEP)wkp|ID9u@t>HszZ*y$9~K zz^Rxw%!C-2XYqR-R<>7~V=NUJfS(d~qOtG5uRG;E!>`VRZhUG6IP>4;!Sk@#5|Ig` z6~(U)k68wu{KEyX4pwr%g>XbU8)3P)5FUe49WILvSx^I$`Im1)B9vHQ5p)7r%R6U7 zmf{)ABQqhx@*o>7fpRZU4ya!O>y(~>+tULlv=sI8E>_Vpn35;H|`+h~otp6T1;d3*JE7nb;_J zHE|bWH^Iw^yAtb=bDD#fkZ>nq$NQo=cmc5ou}$!7VozeL;OWF(#MOc)6L%x76g-}| zJ2Bm7&B3FIy@?A2ClLD(=RU>tn}Y|D@FkHcI>Zv=eT4}K4kz{_HVF`iPW zjuza7IDptFxFc~Ov72CpIEYyH6xVMKe(Z&!Ckgu#;zr_NVw>Qb#3961!L`Jp#MOc? z5{D623O-NVi@03y8RBr_Lczz0dlTp82yui&1c^++Rm73RX@YkV_aQb3-bx%r951+- z7++tQfZz?pF~r6;#@7!fAb2&^@%5#v&(R67oWwIE>`j!w65{^EHo*&s6f90)9I=~VaRMe>A8!I7#2KVe2m3#ifH;Hk#5Td>>5N_=whA6iJb}1c za02l};!44Th+iZw7aU9c5^`k0XY!cjscnWd6 z;Eu$v5=RSGh^G=81wZygP9t^`+(t`N1v>xnZ3UnJf@oF@1@F(Wn!K12Kw zalGK;#2*t!3qC@;k=Q7>ikK6-3C`I?qKJe}h^@q*5ZnKz1d54^iEV;65N{&33SLcI zLR>9)Iq_!VO2JErONq+`FCZ=>E+ozgo=u{hM6T#Cop=jzX4?cih|}75C$UMenD8^= zc)?=6UBuCX#eAO=8wF3M`F9h$A?Gv)k0eRm7Eo1BuPV<$}G5_Y)UB!1eJaBXNL4uISK__#knnV1?L1oF@3OJMtl7 zli)_;!^H7|ZxSCNjuu=?{3Wqb@I~UI#BL9Q=?u@4_=<#1bT~u&Z({pjR6lOnwif&x zE%yuIhI2~$qG?#t>0H#Kt9tCL9^KWWmwNP8k3H0*Q9TB!#}FP<1aaNtRTOjMuhb|V zeP_{4;_nrK7i3yKDS~Fj0ss8TvSkyvIkU_j&X#>!;Cn~KZs5yyK%Wk+e;UOP?0~oq gY3koBrSZQAv$x27XY*$&U>G8Zr9S6hZ3X}T1=qUF(*OVf diff --git a/src/mumble.c b/src/mumble.c index 017ec1c..4c086bf 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -377,7 +377,8 @@ int main(int argc, char** argv) /* Define them with the following Language */ mpca_lang(MPCA_LANG_DEFAULT, " \ number : /-?[0-9]+\\.?([0-9]+)?/ ; \ - symbol : '+' | '-' | '*' | '/' ; \ + symbol : \"list\" \"head\" \"tail\" \"eval\" \ + | '+' | '-' | '*' | '/' ; \ sexpr : '(' * ')' ; \ qexpr : '{' * '}' ; \ expr : | | | ; \