From bfffd6e5672bb88b62e04903ecbfb4a39bb3effb Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Wed, 31 Jul 2024 20:16:17 -0700 Subject: [PATCH] Clean up macro implementation --- images/apple/DRAWL.po | Bin 143360 -> 143360 bytes src/lisp/s-expr.pla | 14 +++----------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/images/apple/DRAWL.po b/images/apple/DRAWL.po index d02b16b2a524fda59b091ceed379f0ac38acba01..11e9c783973440fc12e5572755d9ed6facbf8fd7 100644 GIT binary patch delta 2992 zcmZYB3v5%@83*w1TwjM^9=T2&Cnm{V;#UGKH-VHvLrZaDho(5TW8Z`}-6X;~gHS=m zZL>#dor7pa+m*?r;;P9&qJ_2)(f}bzp>&MUsjUX0dx$Y@eQe$623f@>Yf{%i_V*LV zjq>w3=R5a1=R3!amA=mk`#vi?<`L(JCZh9HJ>4Lh`U7I+($ts|V}YD4?d~N@S5W4s zppgvZl9IEDv}C7$e>N?-j6ih(Z&$l=J8{~Lw0*{GTJo{}srus2z^bKR*k{gafdQ6TH92#U9PXfNoj0fW z8@MX(oV>jK-^jCg+d`^>mq034{0et)eIu`YO^Z7xjl{2!_j2AHYfXb}#%*am z`GH;efe{2&=X|6u(gLqP=n384OcWTSb9p6RBsy0ie4of?yq5+i=KPG^SH$8IYlm1X zGsop#akEVd7p~An)YpoCjIP*i(1wq)PAMdWX@#(Ukz}1sVNwri#ly@ww%mRlgT(J49WM4{wT1qUo0l#Woduf<0VR7y3FuQ{t(ykA)W@glsw^(n}7G&U= z&8H;030>@@-=Hp+dnvGo0)h18yOQ0J=;{;8;Wu2UHdku;5f-jJlz4O&>hew93=4_6 zsoU_ND4<_~zPhov0k3gw&j@Q{5$#VS><5i;c`Nn3Wk6E$Sk0=z+ASt?lGVz6sQ|t! zo)E)AGNwIuj5%?F;bUwgn$qKJWqVv+{e<|4n0VNflf6|qI+u_ptiR{6MGdPniwAId z0#4A2(vD*9)Vi|o`gB;phT6X4tfD?H_xY|NkV#U1RDu)qW}imIx=3=FR8?ObXEi8i z_6fGk7?%;tJ%{E$!QR1{=Zvy#cHYyeH`7*o(ZImX;*PLHw5;<)TBpz45*=!aHmlU2eQ{yxT5V|w8@ zlUJUp?G;qQPPrw?YFti_y`|YxW!I^aHdQ6o*)h)U!#b1WOhr>R!NO>snPAIIaoKlz z8XwT^;_Qt_wD%|2*{IXLc}&9XI1B8GuEiBp2TKzpb7JJqjP}|TvBmETr6EQ!bMeuZ_2a9dWEMI4PvnLoxNA9*NI-ft28}-^0oy+G=Pj0g*f zo)mqZUT=D?!LAgxcKTY>Hoq?&x@uPn+@97ppC=utcPe^UFz9+HJ)T#K!b6_SZfdQf zPYg5Fy;A$Iq7MY`_dJ+>{tTWE1o3s9x&^5&F^yq*Y^zg5PnRoGQ6r|+psOXbdsm&J zYt5FwTl@4B+Z~O|By`k}5CMaggbKJD9)QI*61=bt_QH86u#;d0Cp5rSSmhvmwn(UV zk}$891QlL^Ga%KGV1q{Jg53*=Z(+nAgU1<7+&ImubkV8##Ag=~pATlJ1P9c?yEZL@|RT@*;_1#gdLMmWa2)!w`Wd;aS)P2jMuJgWuu#{~?bVDJB|q+)<=E0XD*;@Ekl3N8$G%6caB2J1m1{XoW6#8vX_~CBzrP zx8Z(x1h&BQu%{$Sd;pz&@CHo4S-1d~;16&erlH70{9Dii+f5YPYZCb&+WjUSKZw{6 zjKYU-1^x*ChT2l%?WGjkSZaywEEV}r(En+vj$cFkW)v^;%*3l;CHUbfGsRvti~I=M zVY7~ZjM#s`Tt>0wWg_>W-H!H!G87FbU<}@dU%{_2f2B;|pQHZ|^uH|A@vqRo1?A-w zt18#=JIjgJL)3*AFZdyd$sOe)--C7%?I(zRfxgKi@|70iKIj0|La|Mj>ev>GEf%p@ z`BR8J13Tdb(BJ?Zgg0Rn#^DtF9NvQqaM?mp{y92V;h%5=zJ^;cdjaveU`(EuoZe?J3I?7!pkrKuPwm)e;A!(Fb6f_tF_+93qrh3~hp`cNk zu|Q}Q=LAx}R5~l5R}E{Ts#RBTg9#x?A#D+*EvOx(?K;M$Zbj{w3Pmlgv=6)j`@fFu zIxgbpyXWqnyXP(@qW@xk|Hb^nZn3aJM|6rRZ{1O$8}NzdMbj~wE`iTqZ=emR66uwLNpf%^sRXWd%9g z4hMOkUPNu(RvoV2FcjLQsk<;0I? z;!5?rfp{!kT`~@l)$MY4v#T2?6J1y^^O&(4v8t~GvrefTWR=p5nwhhTZ;+*TP0pO9 zT9@DPb5B*$Kg4?2US;?Y zGc7qrzU>swYt*dW^tx2zp;r!{Iwp%S#Y}9s#MO3O> zIK;w*F-s5mW}!6i+e&MkRp8|Han{O)m3W+OuTNOEQ2(I<%qK6gIM`tA6mh?>fW3nW zOaJtML7;77YE0=k%xu`E|1jHt=8MDZE_=e#yiHsus*4R-*;|BHW)sqcHFs~FcSm!u zL1`Oh6$J^4_sd&h0edT35ih_o-YXbLAC9{QHx&1%naLth9BwI0Up$ylj*qe`oczfs zyHlUAU`=+(iuDMa!u9@sgguN!zA+ZB+FZLu^hoM{TJ_;@udvwd)2X+fwHD`YRw|FO zg@Vqe1dg(K$m%=F2GN+tnT%%XICG(SdYqYy6BbV%Rr)kUJFL=1tAsmDjk9Jcu7 zcU`XQ5rTx1vP-hyz*Ouh&D<)p&s=HaTy>w&1iKIW?3-XgG*>2A7|rrYcBcUkcKjB; zf1Smd#~oG%C)tTepk~v!gx9gv*T@>D!ynvVszy#Va;2kF)w1Yp_Xbjv*AS}zcvIn0 zt1LQ#?aNZ(cB?G7m#2cxYI&A7v~024?@Nt@t+K}3p3aT*R?8ZP*Oi(as+NWJ^r=`W zdP5#hYVLs=Ilm?3bp~78y{Vy+S~<_FVC8TP16K{-y4fsr8q!-si_}`9)OZs5;lX*M#5@n zsw08JJ8&89v6J9~HLwe&ZYTaLMtm!y$*JS4N)!23N4%(rxB<*yh4~;uFFXmO@EUwk zL{Ui+d8tHEqom>W5^;R_c^B+}N8l;g0|#LePQzLF2>t_1Ptn`;BA3xF)N3NV0i6~M zw4q&zc9ov^FVOGOYxslc?||L#1Uv(K;aM1i3HS?$#l#mtGc1R-@DThOcELd?E+OuP z74S>=4Ma;K#0SxtfD>>U-i43hA8-|}!*`HpAZ~;o!`MfaAPqNAlEKNdmoTB(MYml2-_O>jSKgh%1!GK!un6ZxOf z{&ivmjrIWANsN6ApTcKw3H}Q=F|RcWTrv_bGg7p|sNpvB=Ytz@ zy#FTepf0#KV6+_^t|`oTwUyYd^XV@wd)#9Pd=cy{)GOfY<&y_7H5{|~TA5A6T| diff --git a/src/lisp/s-expr.pla b/src/lisp/s-expr.pla index acb880c..843881f 100644 --- a/src/lisp/s-expr.pla +++ b/src/lisp/s-expr.pla @@ -798,9 +798,6 @@ def apply_funargs(funarg, argvals) return funexpr end -def apply_macro(macro, args) -end - def eval_atom(atom)#1 // // Atom - return the symbol value or the atom itself @@ -884,14 +881,9 @@ export def eval_expr(expr)#1 expr = apply_funargs(func, expr=>cdr) break elsif func=>car == sym_macro // MACRO - curl = new_cons // Add args to assoc_list - curl=>car = new_cons - curl=>car=>car = func=>cdr=>car=>car - curl=>car=>cdr = args - curl=>cdr = assoc_list - assoc_list = curl - curl = NULL - expr = func=>cdr=>cdr=>car + new_assoc(func=>cdr=>car=>car, args) // Add args kist argument + curl = NULL + expr = func=>cdr=>cdr=>car else puts("Non-LAMBDA EVAL:"); print_expr(expr); putln expr = NULL