From e064fd5ec9ce8da126b45eaa0d564576812dfc03 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 1 May 2023 21:19:46 -0400 Subject: [PATCH] step: add some plumbing for "q-expressions" --- makefile | 2 +- mumble | Bin 103664 -> 107916 bytes src/mumble.c | 65 +++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 54 insertions(+), 13 deletions(-) diff --git a/makefile b/makefile index 37e6df7..1058471 100644 --- a/makefile +++ b/makefile @@ -6,7 +6,7 @@ # make uninstall ## C compiler -CC=gcc # much faster compilation than gcc +CC=tcc # much faster compilation than gcc COMPILER_FLAGS=#-g3 -Wall -Wextra -Wconversion -Wdouble-promotion -Wno-unused-parameter -Wno-unused-function -Wno-sign-conversion -fsanitize=undefined # exclude: -fsanitize-trap, because I'm using an old version of gcc and couldn't bother getting a new one. ## ^ from diff --git a/mumble b/mumble index 07f1b53448397d24e07606599508958f44480760..d8ac68454ebf98f53949c2baa59ad324cb1693e8 100755 GIT binary patch literal 107916 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 v4Fnl_3l zS=Ch6R8OyP8d9-z+PyfFYMFBJG`Y-YF=JcfnTn!56z)ONjW!BL$36N#Bf0C&bf-<7 zb9K$s3s+BBRXt~--c6b_&3*r{47B%xa>A4e?v3t*sq%NS{GB%8D1;+NinOGhIKiDo zac56!NiZl$AjAn<5uNoye zly%KCU+`(~IhvLvJ4b0}yUwh1rYWA7?Nl_R;tA=9Fj7uM08O(%14%|x?1iQYZ9-RH zmWsvPq#>N?f=LvH3B4taz8em&SQ1NbYRNE(L+i6H*3#mvi#A@DPDUGJ&idBW#`UpS zlhYVYrQ*>IG^CkLsf2^}mx(vhZbjEQG4w<XgE;~c0d4Fj?~ z(G**cLLj6ynQTqRGckXtFiDnSv~U+7fgM7`2so*A2#~=?txUpQA8&!3nVZSPHYPLd zl+koLz9GRoj#Zf`^Kq5yI47EDY;H~AvJECWnujJ-vP#jr#gciN*|VRaMd%UzHy3V3!xnN6FwY~8kf?!1fV*L~oU`URI>ws6tn%Nwp(vUJ(lhINz941B%7nKO0iVD(SdP*E0bbLqD`^J_{L}pi{js_^>U_6 zbz*h=3s0!US>Mtc%{UYAA6thrUj9pGU@$gdc;kQSAJJQy1-FYH)78#u@t(rCqOhe( zPeLn?y0*TiI>$RFqMx4RjC4+L%0pGt^bP}|HHIDTdm(ZbemqZgVQgyK27!c9E zUoCnnMszJI>T;vA9vu$dZyoB_Ns*N^=|&WL*2ZMxnpA8}W9!Bwx^rrFAzN{>jxU#H zylTRDr{?3F`a90K=6Zp-UTChf%yo{r&NJ6KbFDYm%glALxmu@VRn%Fv&RMnIS(R{B zrJPk6XVqqB)hcJz1ZUNFXH|{$P@0SBrlFqkudO(IJQ@Q2?I{kQ;LNH@&vs@-VNh_H zgWpX2#^HAseoOJIolV<3s~WfKXTws#`dnR=o?4Y&%`5&~!@pu;#yNA~Jxy_LsEXf& zmV}`btqWKDor*)-_^WVc!3Jc&OfQ$Tij_xwn(+an)NIGO(OJBF;lc{X<$!>ZWD|d4 z`Z&C}6-)y=Bh6VFxK?q{Y~T?alZ#Qy6$>xMFh0(`Jb@84jjr1QFB9IeNtX^Ry%_;m z)?orSq@o))MpJ7ttr>JSgPb8P>_$@6*~1QFOEHrw{G6jz*`!4O9O9d;4KX})tT7Vj8okd%|xB*b?LNIooXeh zZcJy+bE;#_Yu00UjyctwlRMRzI>w!9xS)h(Sj7gY0SyLWk2&@la$7F6oG0xIkU*MN!47X#yA@_X_i!->P zA7SaOZ?WnOO)+RPwDC57d)qen5A!WYZ2l&SliHl zrW}mtZ81I7#GmzjlGAH}949$lE>3h&p~fpU*#AqOOkuKde)!?J68FOoE1k{H5?E}n zXBv7d|3O24(9j>Wgyw2}EE_z@&|CSt+cf{~HqGBugH7(2-v)4Tl_@R#lZO6DLw}M@ zXs%Xn8+<-)NN?pIF!Te4-lntHV)^I4LHdR_NPmx^x8*OEACsGce^!302l~J)zwKX6 zM^w{yFw}ASiWF$+HId_R)0KH!dg~MS?NRz3lhDT7d~G}2f%tI#yFRJ;@A{mnjd`a@`t)e~V)1=NP^QHP*)03&f%$Lqr9Zr0{xkJI3 zPcz-7=j4E}D%_N(@|jO(KI&%aSOvHA68F=mg~&05(R@)|%(qQKkj6is{Oj=~=9{SVB|b-Mc=Jgb{2TYr;EaEVUZKvn@&Kie#OK)k6@K$+ z(mNmdsF!{HGmH5GO)phBRBE}+r{c=vIc|2@w3AOdZuX49v&+gu^9Iiwdh+0tPa0BP zG2{ecfqan$ZR)IZi&z|WjMM0(ELepYX8N?%hZa0{?X`u+{`}I>A0B?+s5hS2(#OO> znuOsW;msm8!`XNt4CP;txQ)55L5}Dnum1-xZ7}i+?-?{J0eHSt;;rP62;Iiuh3}@SL3@{x>P&KTLst zN{aZ6DdHB2@Oa?AN@kP=mB*SgW_-bv86{OEGs~)jB~{}K&X`?MUNXLT+Uyd~lqoak zRFqGt4i;Ahr%dq(Xi~u988fELLjH=X`JSqh;u&y^B_uPQG*0$Z2dk!6&i9m7RF;%8 zP|na4;+=l^lWsYFQ4E31pDJ`ie z^_0#m2~PJ+SAa;L4aA{xiJVh1r@ACaX#5WP;)AQfr`*doKsu|7OF~0JZFs^GwO^fCk#2!dOQ9k>(zccVMs1Z zwS)ZUes>5qK`vtPiHX>`Q1zhVA0IpUpu%W%XWYy#ui;)w6( zh;Mbo4|K$@)O@mklD;5pP0-@_4~?}*n!KS>QZ;&qjl_(DhgK@L0<9r0O? z_^FQgLmct59Px)b;wv5ThdJWsIpWQ+A(Iz5;tzMgFLA^l;fP=Ai0|WwU*?GSIpUW) z;`=({A9BPy+vk;z_@f-~s~qwD9r1OJ_@f>1^^W)fj`&~e^=t1Dy8<;kG6IqGcg{=m z1ZwMo9oiZKH5)TF2#L1b>&{K{>}=~_gNL_|hw!tQvNQfsTU*;w39};ajBmEWtiU_t z>#Z;=?#}q*R+x@xXZ#*3%nH0Sev1`m#oZad)(W#y?TlYxg;`N|#*3{mE9lPn`Bs<} zb7y>{6=sFp89&|%vm)+{_qD>TfIH&{T47eao$)j)%nG+N{?*T>ysT)D-wLyWL4GSt zhYIT35ahSQ ztT>S03bVpMek;t10{N{lD+uKO$&}wG;g75^D+J`X!mJ38-weZgN(yK_qdj6j2ro7gm8L7_@{H+_`gjEe~}RWXF~Y>gz%dQ;a3yFFC>K5B!r(z z2tSe#ejp)ycS88~gm5$=T$>PHm=F#ngy$rLOA^A96T(Fa;ev#)KOvl#5Y9~q4^9a8 zPY56G3?Ki+nDFLH1L2PYHQQSX$B&JsfA^Wk6Nq-ZMjmXM=tM{w{&fy_JuFKL^4sf%RXW9$4SnF_5+? zu=(d;Pat?oBgklLDiymm^V1(L%A>kGp+QA~n!H;%vk(aXGuSl{$-4sqdCZN>~Z zmrdzZL)v8IwdgZ{d@d6CQiObP&c2=A1O3Lj9I$B|i%J;?`&$DMe`}14d-%4~o9Q*p_dsWfiw+wDlg>>JI@4TqvNRn$EjpRW=wvEA^mEZ*149I{d>`KAH4w{}erIw< z$xy^o)7mkZkAJ*3*C1C-Ylol@|6DU4mJzIJO$${LEI{EQ^$9<=wKZR=W3m|IW6ao? ze>Z71_tQz)k)qv!>01KpKZe0H1R^N>n6UsQTI1iHCUorcQydD#A!U2uQK@ z6?GN?%cyK-3PcL!32cF7$kH)TV`K! z2E13-(a4Mw5Tc5Y3}zA)63Xk0qfug63Z3QKAB3y2)D)#OnapiwnO@^gmycX)3+99l-WrMV{x z>`>4$?x#w$_i+`R*hVuU^H?oXMzZP5(IOcDG;GX85v@2LCO)srslgC%%Z%ISk zaR2rN%;-#`YE=dGF1`zyrIPNHmkz;FR8sHF+Yv&+bwNc99v6QLA?ATmXOIHT?fF1> z6F9H>r^mC3-p)9^6=ty2h7`k8Ko=7TDIVic0zGB}WeLNA=?n|#+wTGNI}H?3l~5rX zY{6^>Ow9ickv1O-`J#oaQ>-%Ck%Dgm(_aj%{|GLk9=5J3=n523jsF|lNqn=QzBwBb zd<$8P?m(yW!~0OMU5HjZm#Q>W?U?bq?-G576b`eB$MY^G-=feDiUg0Gj1Swx#J|-t=O+LLbA|&j zz_pmOp-i^LG-m_mYz+5rr8#ePrcsk{MzlA$R%+@zi~QddYvQZCPkX#i*Rc>(hWw1? z&gi-f25=x!fUGd-*O0rfm3y|%9VyJQk$1O}3y`cmR`YopXM1;rN=g@IF}LGmQ;Xe@ zAF?RZZB=HvRm{}sDi%DT^2UsA-y}6Ycm_Zy(=S3rceRevnK94`4TAG9=sco5U!aPu zECtB&VxVSynyNADtpuQ*{#{`Gr>I6y&TBOPbCg1eFIp%SMzxWQXpdSqjr&O^c05$m znB2F4a|of7a43DF@`T70Gyb4!pev`C5gP3Vvj|QE0ysc8fP@w!!kTv=N_O!_u+}`7 zTD%)NPTC_kfOmN01r(g`wRIuF`cO>9frR}?HEm2|zvW!OHKKhu8USSO!LQkxgpM|; z!{eaGn4j^r_v&sD)V)&gh3kz7bP!)gMA5wO$i*{^xWR?ld(-7QY&H5EHL_a7M8gy}lh_MIYvnM-waCHqeACGB!e z(zzaW=W@}S)Gk+look-TH4VJ5XPuu>>iyS?rQRXyugWpsM3*qRm~pSNH*vjp@I9LM zVH31BA2p$QtQOM6?xilml5w&^qRQ5L^HbC*6d^sOzY*IYV6#nY90mnL(N(IC`5ReL znlAw~+7a4SqpNm_#}5rlm5k0dvR#1o2-#G76z$!GV%;M4-Lb~sn8wUvfQ<{5#r)fZ z;K??|ZS4rAg?dDawh==D)N zXhI}@`Dl^Bw!$qViZERZlE8NlC<^aJb0=cJJl4>QCp(8jmEnbdM2%cJBM|A-p92I| z;^XU3YPWv~JwNg|-i z{xn3!xfTe-1x-NwM=}{kZLe9_=m~WN2=m1c5|Dz2KnFCDER9Y-=7^oiX5PE_b-*F% zA>?iXwoIfca)%Hl)M=^z6ZD7}LH(Xb{Zii$99*g#pM8nQXx@GninkbnQdkQgCY64( zsu|x}S^lmei1U22XM^`cbf*;Pnk?WO6tL8{egIy_2|i=}7m5f`^hT9!hFwscm~l8J z#LV|_mb^m)G2>s%5zV_5h>Z;@x5QtF_nL+Gd%U#|NX=W=uAIh%e;9*_fbgbu=^(A7 z?s&d_gOXck1WxQJ_7qGvRso$|S!GBQ^EaVFwFS_5(9ae=WByj41FxumV%uzjFbY3E z1Hl&J4TMK#B23X59fr(d5^zdp-626(`q}?3PCAu(b z&+1HWBLxQRsjF#Evlw5qG2rlIEUbxUVFkiP^+^k?jTs#U<`qP0n&%TqGbNzCQF+b+ zyXAAGJXe7&r}QCK(ujXKG>!UZ6_{CoW`V)|Dq3@0w44Q157S3sNzd&-O%Fpjg49c| z+Em-GTYR6AREpwz$(1&hirKf~OSAZQ7vEpwAXc++VnXrlxvq^CE?6dX-k8A2cqjy3e{1updx227A*;7` zwrY2UVd~$}XQ|l%-D}ChXu>I$_c6L6O-*JHzgA;E7Nj$|)oRhc+^$O1h1u3wq^L=_ zRgE>*Gg0^l2sY?&{U_+t9V-BqewqRUF}rQ-r*wnf5={uILR-4Y<8hI33t;t%TqM6l zLk5zVE7me9PQC}*7`vfMoqy#>kPr|21Z9yTDInLa&*igtRnv97$mv4;8>QS<8HhBw zII|UyoU4h7tNlQwsX1>Q=@=*NfqF)J>QOaZ{H}CIr3Viff!vf$^97+u{&*`3hk~tUAk03^R49p1S+lslJi6*F?g^uJ;)j;Vs5Pcr<7i!?~y35al5qfFY%SLDALE}N(b$wI;liQKX-?N=x*b$|wRKX|W2Q^L9K_QO}L+L(CF z1$=z~GZSfG-s5l<+5|WG+o&yBSm+QuN0t$u1pnqTf-nAn(kB>^PCXgSRM_G-SxNc% zEcA~)Xlq;IZ}UFwZ)+CA6k%W*hiJ(J>Sah~LUBf0i421MB>+6{Njt)Iek3B?9iG_C z!SWGQ zKex3luJhhT19p{?K!sbD_`d;ih=3=kY$Qa zrP!e?6%hS=qxADUf!Mnu3ek50)8+c|=Q}QmZF(W|jM-1UWt=a-WT<&|Y5PN|UPE^{yAt0|^^H2poQ9qTN z`1xI=b6Atsi0)G|h;4+3_Us7D*e(qhdagy=l?x+#nYy)yO~_sm#-X8<9suKfixzJ0 zB3_Oz*atC8!Ll4sSu%YY0iiP9MO+PHpp9)<@)vE2R82~%XB%Nc za2-iF_!rP5DxuH5aj->dfhoSl!9~e9I7M-gtQh7b;oxqd-Ul5Nx;Qx7EPzJLmWvMH zSYc7&SlgE5!tX@>MB$IzE9oX{SO|Up8C9g2t2?dI8>%M{(t%JmcA6MxsE5f~C(NBI zS3EgT<8PH-Ix=Dyy4nP}Q>{dSO3Y|_i*?_u%HmMczCx7D>6&#?YK0xl^Qdq`o@B{P$bOWuV5{ACKYa1A3@0fi$EOoO$ zC(><-SR+Ge=t?udvE5OML<+hiWOD4w<8oUET zP2PbETO2drwE^V8VqT<{7$ayYYDppD8Tfp-AzXVb-ea{n_?IOYt33&CoaDqh1hh~) z6v05Wwvdl-Z9X0~Yna6|ze`N=0u(CJC}n#`t;iAW+943Vop_N-A-LKWe%)vgP24Ul zbm#a_vW7F4;*FeQj$f@oV$EnVG-caI7}^V=Q?nZ-(z3}zJ8e*3Y>4%rc`EnRuR`7+jriFe2P0eoUBeb}xVm=JVwLXFMR=tkQ zWieRVS{y*r1K%B6s6HCEENJJj;W%9d=H;koAUhC+#YID0Vm4%Dt{$6z$uG=Z{G0JR zcs{1ad(cP~E_77_bb0WS`59xQ`TBjH3mqEzjPnb^>&Ku7qTNcII8P={EW;87IyvZq z`J9XZe4G=!vtogu9Owa(Zw22TC*M-_Am9*1E`t zr*Q3~NrJO!gF_+nfwRWHU1TOlMu%b8cK3v0N=ANU6qaJ`18oRIz$>-YKAA(fc5+~a zl%kY7$#$S9j?zNg5{rK8fj zfeg6XutPSJ=0Yynjxd+l(g9{yKeKP%h*}6axg(Nxs7Gi#p~uLzTssv1FH06;v*_Td z`Rw~&x99?kIK~$UrsheqnIDSHz|%k$_-z3>g1NAMfo%dvHfI&|g7BHB`x5|ZEeIRv zP_wBLW->H0Q*0_Mz6LUQu+0om%Mie1Do1$lsQEw+V6&D_Z+?yJfJ1vR2>D{hTP;eG zC8P2sdC$FXm-0SQ{2G?>9y5T;p6SjY{+XofF0>^CQ?q#4idj)!t3!Doy-JV*M1>&b z-jtWHS9~b=q9U6}|1)B8)6cN!=Kzd!@q`;v1y>@p{jHnwQHfklJ#8rf4=A?eXsi5O zR;L9SlPIlYt*MN-^jcG%q;Vb)lw`YhlSnLGFfp0tS17f;!t~CE44aGT9kF(vfnXhY zt#>TdVvXBpNo+6giM7OuQPW>TUcx4QN>2Ke9H2t~a-q*PQjr|V?&Y_K1zY0!kI(8% zVBN&yUHl(l#_S9Y(o_;VLz##-G}TA2+N8ICV&Pr()4!;)iL)}nuD2GYM0aL%g&j?i z%;<>{Eu9%N%8#gavu@dDahluuMgvI$^a74u8^Ou3iZ4LCxxb3#VOGCSNivLWRDaHt{&plg^N}v)OYlH(Cx#nAMQc-G#|}f!cMv5>;{OSt=SK0VgI%o|5ofN-a6dB zdcl^Oh1=Rfx(&L!qj;-&%Z<+B0){vdaRp1Mf~(%6TKr3)nq@FD?FyD7_|V>6fwco5 z;@_5(Nj=*5N4=$ING&d5+sC9!-#98eWp0NvQ@M@=BCVPDbx_Y9lvA84ja`109~N_; zzj{P+s2q4Gfan=~vu#C2nZVEFW-HWqTk+l-tL!q1bLucTUKX2o@vVDEcXH>wkvnNq zVWNwL5nQpSbQJLEv39zjs@7Sk`<#@y#Wg?&prUmD7fdn7n^P;@`*dMGHM^uRUvD{$ zFHQ}uJcMf_D%2~hrZ5qyvA3d&h7R;;DOseC*&_ySWZ~}A6d0sYX!PDV31w%VZZWHp z_r_B(xo6hGF)1*x0ARk!YACJDH1+|QI&j&`g2$8%PUbF@-ew2${ufYGH5+F+W+}~{ z0WgK?FgdbH4~p7t?5kN==P@h(N>%aeARqKMhm6QmkPXZhDFPqjLhD$D2pfSgg{_P8J~6%k562|6dYx<)Nv_&Rk{g(;vUwPLFJsdh zwGTGcRfk0a#hz?{1%7cE{RwR4CrLBqVJgm*Vxs!%ht3q6)unWd$r zf%TvJ*6-@DzO@ghxX@`2`*%eAJ6P2V(}5UWA*o+u*cIRwq?&~-o{*mYEQl1n0vOEQ zVAg z3K&FGnuf;bP;X5QJd9HQzA|rxVi2p2Uv+`by z`s6CSR2k6zONL|iHG|Sm%=jVs(v(sJT8~z;QnPToCv+HPb+-?PU_nn#?wLmu2Sl)T znnY;I^1)gZLz=&prxF3ilbV|;taeI`oC6YVih*3iwL-Nx0OS;}d0cYjECXbQ_+p*0 zbv$L3j0vh{Ccg+_aK>5JnD%g|q1%>Zp@gpTpc$dVC^q4D&aH4uTr$SW#tVeG8)FH$fi& z*_IsS1%k-gs%ZM=pQi>4o& z8f+NB-d12aslm=5*h&R{neVcgWK_z1KVycF$dP8v@f$perkl2siV7M zP8*o$>eXP*bayv5qQum&8lc1duPk_4mB{u8tXMoB-8{3n$!WCyB@`S&P&t4ld>WvnO3wb)hdvpNN*BNZ#h>q(;{0E*@rV( zm;fiyJQ5JcRi%KKMumh^%U~ZP^2k zNcw`#X|j{Hod7?+nS{O1sFN_Km)f(paS`naHWyJ2A||znLOevTEabWmIi3k-Aqvs-THrWS))3>_ipny*3aLo^+cyC==FQR_AV|X67*_KQ(=2SA`8e7vF)$cQ#E3GKkykd?%xC2nq+9pB~meo zITZSOAQE5y-X3tBk_^|8sc{{Mu}3Q9HRCRqcH+JzkxBVFYY({ooDA3RQscUE54gr9 z!*yC}T+MsH)j1iio!uz7%g9>xfMbJz!|I%7@o0M-@9Y7`HOX*XrXpF7KK?6Mf*tix zbK$UXU60O8$jGKYe!PlYj?TL_9Py=ZshLPS^ZpiGegP?j( zR$UBuG2*{5Dx2kzw-V$FmYTX8$+gv(aT_|bu({*Jwxq%WQkL#b3!i|EG%mbT z6;WsX7B3Rm7kd2^y^}zXgdC2798x+F=F&u>&A$;9v?KZk;`b`#W55O>xl;^O3Kdav zLy9fA?Wz{Ks3mG7U6>P8KE<$WRdDd72P#j_}iyptd> zkzm{ARL){8&V|}yA)Bi}&je^SVP>a`g4>h zsu_aKJ>2; zEJwOpG||um2aGJRYU^zQ{9YO1{VFKHi=YYNzJe?M`u%1X!NdZr#r7qEjOLa-0P&&H zv(;3yZF~Q~I;e^5WhJ6e$yJzvGCwQ9%Pc{by>dMRv{RYgS&F8vqwqA&hVru(DY>O; z7h^K|8O$D)F>!tTk5F)pe>HZpukI8ojQCfFpI`rZpR|U}t>NbpN^1!FH%9y$T>~}< zC`K{^OE2hn)?+~303Fmj_aJS59NjN;r&ka6Z(MNdKH)8>SBjMO{yr|_0XG#Dz*um# zivy4x(E-p9uM%FS2s-dTG!pYjJkh?31=SA&dd!d4`r2qBiMcuRm5Dsa=hWT9|4Psu z9c4j%q=?(qq*yQCDG)4wXsqMa*y@ILPDvD%)Iuey7k2M{zmk@J#=1``EnmIzKd0q9 zU4s9vme+n`YZ?0Rhy^8-l&NdeYD&J?vkFIHAx-r%r=+u@>|@!ovuDozq#)^W0 zIa(H#STN^eVNDgx<(PC!jRvOR)as9)TmH&zcHSHN!tXh>wg=iFfYElkKa@|U+cA|emQHRy}Ar{F5tcYPU+BM6SpNM@dyIGv- zR?FI;BK~;tYKsbzr59#W8S19eQrDi!-ekyIXJJp2;a$wGI%K%@-@ra~O-k$w+}Kar zD|XI$MsqL2t}be{@j;EbW?`!*bSz35m)D@qiEkj_Xbo7;X(=Bke`&8tAIr;J4;m;Laa1XBbG>y;oyV>0%LFrcJL}74CQ>}*0rxg`eFz|t z0DPl+_r68o#MA_`NZ_seDLBOAGCjhZ5O(jr&xAy>>Vzp_%sfcq;V*aoU&Ry>W{{rvkBqrB7@-s+s97x6oYFuXIX^iaYh_oasMtc_D zrHW8+SSe>Qr72m;V5VTRx(A}V^YmcKiexEV>(by*LCjcjA0V%@A+s#HuLH9Aa)AZh zzhJV>TnR`0iy5Ps#?zv1vVXLZi`vfva$LBX2o|!zvWYF5VAvuA^@n&q5=h0)GZAl6 z?4)2^UPQ`}0J;F>Fd>T#g?S+3Em=BR6b11!_u7ab#(T3H`c251#9CY!A8!w{b|}=S zj+wq6d$vJYet1XrEezL5#E-3ZLaO_W_ zA)du&w^$OmUZGl$zFJCKXKe4F@rBrcxE;Kbokp#@{rMih0^MdKTd{!3!_>m#@idmm zgTWjXl!x-zXJ-T=7ojXLpB?6@>9eyChBTOK3QzR$I=q0|YTL+iML+U1V%BB+$~}-v zZ;o9~hQn;RAOa8(h!1drViSQ22rhitmGc?&m0gvy9tU#G%DEcvR^Xln)ybd&<@ZDrSC7LMFbWT7sS*(-gHYy|jIXcKnbj51E zGx61g#G{;vD-#m;b0+>iAu$g7MezwuO-}s52ry`tN2W_8T_7@zM$G_RH1ph_A<{`U zdU3$&yojLBiXW^KsZDht0+s$r60-D#yZFQ+oAXR&63$~lC%_iDATy#aFXdIg`f9}^ zC<+%Rj16*(~ zCTK#{3y7h4FjusSccujBd z$4^a^$L&+)5uJs{uW`07QY+}KYS|m*5(w9_4Nyn>Fqyh9NBd&6{g4H)p5|E*d3R2^ z2)+Q$^+n{kU`^|BbC1HIy?kVe$U(pG7C343TJwBHSmJmPP9GwKKMmhL6wuNVq}2$4 zG(~5)NU-2{4i1h@#euaW@MidoWLP%+A}p1d#7>F@jH^}@2ipIG+uGY7Q2Ye(wiTmc z&NLq5e7x0b$YI-`tc$S34aSyVZ0cHIG%I+~ABc)gDf$M|8nudl5WgT5up^<}1eC$q zr%C^7EY7IM)HO`ZC&eib)anku$lBKNJB~&rMNqaHs98gWTU+r;0_FkIXqKX*%0ot# zOGI?5gvQ(jG}5)wQKFwS9LOV@+1nKo>Ql!=1Hg_62J3Fgu0ZB0Ryb31>$dV3xLvfJ zq+p~lq&-bm%=fsn@FWGwkWH#8&m>gJ-C20yl`9K}hEe*ln9(0K)rBF`$Z_ZHoM0X1 zNo{P32@SRJ_ADVcjU6Xs$1!Ol22*r7MRo+`7cS!|=GXaRkwd z8%1_3Da7s@x&EG5jNb_snSU^R=#nO&+J(zzkjHNrE4lV$*O9IceEJo`5NyRMFdXP_ zbE4-LvfSvU@?Gdg%x?jR!z{cV1hs|sqt-18RVrY|(RP?yZUY2^N;|`ygagS5e}H*& zheW?I3BOHLn()J9VvmF;xe31(b}01q-AN@baTD$)JX^lQlHpD#s>R7s9qLA9-B;AZ zA;V{U-=hq-{~i#w@=kXW{!LQC+z4pg%_S|{B)o1p#OJ_)BypiREO^;Vi0MmXf*XzY zKej6cXBHZ~Hv(lANx5vvg_1L(MjIEUZ0>limeULJJsDc*^liNrd9?{VMCDlO!-!eD zBc9fw&B<-4hB2B7|hlT;>k0x(po-s zOFIVtd+w(AMfXoAKRt|+>Hde+OYo>(f^mT;ZYAl>JMZv+gX? zL^Y8Svu#mo8ZITjMyW}z90^2{Xp8qhKs9+u6*l1JJt^#2q&gI4&XirdgZ$CBWmqUv zc(6#+`Xv1$SLHR%bZ5mlW8dnCi;GNDKgh(*&DNQdNk_6MrB%NM2IYeHnbp;ZagodB z9E+t%$!9U%g+h@ebTs$NzS0aB=%%KkGsR7(r>4_nx;L#YafdECHmkkeD7a8e`)8D?DU>L2eRb64#hbabQT%O2Wv~UN{2cuc` z#D9-}%;AOtJ5_^qTeQ&Nd;`InE8M6K(lAH3v$ib}3TCEL-I+epsR@~0Qqj0$O(>~L z(`|Jq!FDh4w=P<^yNkNf({WuCzCDE|+t|!rAv7w2$BY5!5W9dLMd=wU6i{ak)FBb5 zZ6PLI{nRDk3)o+WIbZ#4n*BNPjgNRcj+;Zq&QwTL5!_F+{R;MU*a`vA*9!nN zO9B0icWUjyM4*2W=nMt4Ljzss0x}j`s-1llfD2kh6)$SwA~)~?3;1*b`xNkf8aUex z9JGMD6Zq@z1@pBU_($w#bO}_A1mjNXFq(Uv26`(I=qdtLDWI?hdOQ*61_Bi*pp_cv zMit(cEoWs+?x35;;-Bx1itH9{48>e5wLIKm%_`3Vg&N3UfCF z{DpQ{cesEl(grQkO;R`;j7cd(GB}$W&0VPx6#$V-B$|8xW_SkxjE_+80A7y|pwkR5 zRnvH@j60=U?yoa$l9vtZhEVPM6FSoChX!}m_`>I^8eb}%&e1r#D4f_gm3K5rmJ>-B zyRoBrJs7@Jv2dCOfA1SfZZvu-7Mid#1wZZtLLSuCK&0C|FmOJemBPr2^5H1`Wv^oL zVwdkU^1>_S@Ud8Y^qn$Zr3hf!hBteM>VdlsxL0Z1y*2Kh`q`CF^XpWa$nHKMf|YS? zL_bmEJlPt}J?kn(TR(!L}sjmS&;oXuRjq*C@-i z9Z;I6HHQ1%KA>ld_IjI-Nctt%=Ls7(zJU_J&<5@H&Ll%_e?=l$D1`?AVw?}lC#_F* zC7~r31?#mg<;-^-fjrCTpTlHfnquK%#lkzUDHg6!ES#lT*bo;MoOh#}EDRzGuW50o zCS#$yRcf57V|y}}EcCKiFy>L-ULWxhNuQuu_>!x1(cD)Vi?Yv8!GggXX(@hXGF9Ip zMEp(0e@H5c?>e0Fv*i=DNUs4_+UTqAg_$;2f>S8%D_EKDL7toH$6J0HT`ji)8t3SzZ|J7mwo z4YQE8qVUE$**nM0UIUD#y?oMLg@N8ABTRhl6wW;fluRz5D-6iPq#2;Ow6H$lfc;=N z7&{LI&o*Zmu$2{MCfg;^qd|91$nZiLM8}LQ2@;oC)G*~9FH;+EuDZ0RyA_f_<4;-I zY8r%7A?&z!8y7-(MSGpg2k1@QgLGD&qg0+FbRLd&ZRt#_N}%&~Q0RQg2k5l8G?F6E z29;;6&a>K;2MsT>`BLdI7r^Ldh~hx+pQ^Dm)p{^eksIHiglp)v;YI3mb3wSt>QiPO z;}ww7 z0L6#Y<;rAd*56uLacjhGX!2d`Kt=2DHu_t@@dI$!kJu<#h*ah$B|Ch00R}@1;-sv{7{*{Jf@sm#0-Ldk(-e_OByyA{(uF<1NUw(h>LhZao5*q&?(^Ul zJRZvI+dou1{-iqNvlFs^)5FDMF|*fD*dh!tnim-7a-1Qoz5*S9)j>9^+YEqAG7g0_ z%@-IwETQgIkZCsL6NEg@2%`~b&Ni--ju6G4ry$?nXo=5zW$kO4oSi@ATXW!BQS0O+ zL>=u5=Mi|ifi=e8geo#(NGM-S5XR)4%dP0!YMMG=TBeI})<+O-wsi6GN-u+q5!U%= zZbJphGfDb_EX&1?`QTKnO*bW z&s)3O!M`Vw{~uuG#)kJ5|JzXXpm9zDjW-T-v6!#A0>=F`r^G?VA5nPm-zfg?ChnOU z_acS+UocFk?ap=M-cBWQJ6{NdKIj7|z6DVqSclojwNkfHPXM+7Bpg19*$lkv{m0StGZDadaiZy` z^JM~FhVrEVFL%tu%V@l0GiEqm`ts!jyd27xfq3b`7av}3hVeHajF&llIRG!|d`bMC zBE9b{)HfV0^rN{GyIO{-)&Rlz{izX`s_DY8e}&^yX`-JnZ+jCUe9U4XUh7zauBjH) z0SCVS$oFX8-@%hH=^d2Tu#Q4NAr1{?c3oOd6eAocaukXyh~glk_zngT@vp#?eb~P; zek($<{u9CN%ksgj5tn#to0J?Y^=9}6m7)w{61pA8S`UM$_XPO`5n+24>BxPGa5OPv z5`)%7ihz(6>~Sn_5nB#Co6!pp-CSZ~Izl)u?4ZJu?=UN$BKBhy@TiUYb>NMSBl%Y` zm<8#rGsle0gyd{Q+VkG0JL01M8vn|)_?=S!xlh%SdN7W8E3aVV5q;pCLubgk(i56s za=1W|cXBvi#FqlC+v{b4AjAhm#kU1B2B)uDZGCD9*l_rYp52&h$@A2=S}6-Q(E7J6H(ZX?iYs~pQQR?d5cAw86T z?`wQ}o?@+{jK=+v<9Vegsaywd0d&Owkm~*Z3~-~njZW9xotqK;5!7Wm72Yk4Z_|-C1CFq zr4i#rSz$|PmVYZ*IU{Ct0qpf`Go!gT{-8J+_AZ}9yhSpEfp zQ44fU_-ulBN~t05srTg+?{)PKO~#B3>K$yyjAzt4D8-D2`5rA;D*hqjU!u(A0$Tq- z9GJyGb1cX#CFtM(L&#zpn7vL)k_RwV!e7(cRP!jXf4UQ4fr}Z7XUls7(m`h7N=zj` zgpD7|K@t@KV#vUMl{s^~Y2AL7;S8b@Wa>n*@KcdU3N(`&omU!fCW&ZC6M7pXCy%_; zo*qX1ZgqSaR+zO@9Zh!|FxUxBCqmKJU#<^m+fD=^K43RwcH8jH0Rw6o)_4x(i|@$b zk6Awj;xG%gHJpim4aQXg9b-~q+d^?nY?)4M%aUO0w-;=pe-m4V6WiHIu)THJo_Raj z!J8%IfnZ^$_aa(k>(|}`J*J@Hl*kkWJ`#O2^H3>25msqRe;o(WvLC1;NE%m@uAFJZ zPFW8>9-78x&ijnV`%GPbkB?ti3_VF??X_wWGfCYlr2H-D2y((ie?(Y!Icny#q{-d1 z!4r)Ag($?qm4nfqc1SnK&pfW~+hdK$Wi8uPz`vh~F8z&{{}&Ln0T>I2hR zU(pHVM{0*YADW9$BYC)~jJ#|h2%MjFtK~zGNoJ5@#%w}Zojqg{e_X0bC(lR|Hz5}Q z5=?v1(ma$3Be;cTd;X5lNI&}fsvFJ^(f`i`WD@pIu>x&!PhFY$l6$^RML zSJ9^qvgu^7#^1mW4x#W(w%T{tyCr7{Uj(^}G-@_ZbgoU;>?lNGz{6pnop7&#{k13{ z1BAcHQ6_7M3!S(4C@GUh7KXk9I{uU@6AYP9CXH0Mbs@?sxex^gjneVfF42Ih`=1I} z4-QbA>>!FuSvM2Z&982%l3J}9B1PQNOiwF4%_aWtHu=A&+P+h{rCeVFG}vWn@ow-m z78$R!7j7-{0JmZuEV4mTWZP7c2@|KbXW|si1SoO9n4IeB*8@Al63Vc1MX&P3145y&@|AY@MGM z8<<|1HE6}&@;|KdPt^IlCeWX~xBQo@{8>8xMG5qe-CO?QD*rZY1R%dR{^;g^2iy^K zky`#ApAh~1QRja*f&UeI%m1>+ep;v=eAwdg3}7wayZ|3dZI~Kf36Lh*= z4Qe+EAeCwHQP2X^&w22N77-
{$RBmtFLETALz2Ffvn!g^35s41&?xx`U>5b)2_ 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 = LISPVAL_QEXPR; + v->count = 0; + v->cell = NULL; + return v; +} + // Destructor void delete_lispval(lispval* v) { @@ -79,6 +89,7 @@ void delete_lispval(lispval* v) free(v->sym); break; case LISPVAL_SEXPR: + case LISPVAL_QEXPR: for (int i = 0; i < v->count; i++) { delete_lispval(v->cell[i]); } @@ -109,8 +120,17 @@ lispval* read_lispval(mpc_ast_t* t) return read_lispval_num(t); } else if (strstr(t->tag, "symbol")) { return lispval_sym(t->contents); - } else if ((strcmp(t->tag, ">") == 0) || strstr(t->tag, "sexpr")) { - lispval* x = lispval_sexpr(); + } else if ((strcmp(t->tag, ">") == 0) || strstr(t->tag, "sexpr") || strstr(t->tag, "qexpr")) { + + lispval* x; + if((strcmp(t->tag, ">") == 0) || strstr(t->tag, "sexpr")){ + x = lispval_sexpr(); + } else if(strstr(t->tag, "qexpr")){ + x = lispval_qexpr(); + } else { + return lispval_err("Error: Unreachable code state reached."); + } + for (int i = 0; i < (t->children_num); i++) { if (strcmp(t->children[i]->contents, "(") == 0) { continue; @@ -118,14 +138,20 @@ lispval* read_lispval(mpc_ast_t* t) if (strcmp(t->children[i]->contents, ")") == 0) { continue; } + if (strcmp(t->children[i]->contents, "{") == 0) { + continue; + } + if (strcmp(t->children[i]->contents, "}") == 0) { + continue; + } if (strcmp(t->children[i]->tag, "regex") == 0) { continue; } x = lispval_append_child(x, read_lispval(t->children[i])); } return x; - } else { - lispval* err = lispval_err("Unknown ast type."); + } else { + lispval* err = lispval_err("Unknown AST type."); return err; } } @@ -155,6 +181,12 @@ void print_lispval_tree(lispval* v, int indent_level) print_lispval_tree(v->cell[i], indent_level + 2); } break; + case LISPVAL_QEXPR: + printf("\n%sQExpr, with %d children:", indent, v->count); + for (int i = 0; i < v->count; i++) { + print_lispval_tree(v->cell[i], indent_level + 2); + } + break; default: printf("Error: unknown lispval type\n"); printf("%s", v->sym); @@ -181,6 +213,13 @@ void print_lispval_parenthesis(lispval* v) } printf(") "); break; + case LISPVAL_QEXPR: + printf("{ "); + for (int i = 0; i < v->count; i++) { + print_lispval_parenthesis(v->cell[i]); + } + printf("} "); + break; default: printf("Error: unknown lispval type\n"); printf("%s", v->sym); @@ -316,18 +355,20 @@ int main(int argc, char** argv) mpc_parser_t* Number = mpc_new("number"); mpc_parser_t* Symbol = mpc_new("symbol"); mpc_parser_t* Sexpr = mpc_new("sexpr"); + mpc_parser_t* Qexpr = mpc_new("qexpr"); mpc_parser_t* Expr = mpc_new("expr"); mpc_parser_t* Mumble = mpc_new("mumble"); /* Define them with the following Language */ - mpca_lang(MPCA_LANG_DEFAULT, " \ + mpca_lang(MPCA_LANG_DEFAULT, " \ number : /-?[0-9]+\\.?([0-9]+)?/ ; \ - symbol : '+' | '-' | '*' | '/' ; \ - sexpr : '(' * ')' ; \ - expr : | | ; \ - mumble : /^/ * /$/ ; \ + symbol : '+' | '-' | '*' | '/' ; \ + sexpr : '(' * ')' ; \ + qexpr : '{' * '}' ; \ + expr : | | | ; \ + mumble : /^/ * /$/ ; \ ", - Number, Symbol, Sexpr, Expr, Mumble); + Number, Symbol, Sexpr, Qexpr, Expr, Mumble); // Initialize a repl int loop = 1; @@ -381,7 +422,7 @@ int main(int argc, char** argv) } /* Undefine and Delete our Parsers */ - mpc_cleanup(5, Number, Symbol, Sexpr, Expr, Mumble); + mpc_cleanup(6, Number, Symbol, Sexpr, Qexpr, Expr, Mumble); return 0; }