From 7f218310a72af269e1ca15b4fc38f50c80eab55e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 29 Dec 2020 14:03:45 -0600 Subject: [PATCH] #solidify in polyproc fix; bindings don't require semicolons --- onyx | Bin 287056 -> 287056 bytes progs/poly_solidify.onyx | 46 ++++++++++++++++++++++++++++----------- src/onyxclone.c | 20 +++++++++++++++++ src/onyxparser.c | 21 ++++++++++++------ 4 files changed, 67 insertions(+), 20 deletions(-) diff --git a/onyx b/onyx index 92f06c4eb145a60f8cf3576230be2ab7095bdc2e..3764f3bab67cc5780cb5414e576d6b530ee08866 100755 GIT binary patch delta 52208 zcmZr&30#cZ`=9ev6lyAJ+82eis4%n`N~MXAeMxq1Swq>kR2XB3gTu97`*M*mM9G@v za>cc~wtKnnShHMQTmR?0^M>aC^ZA(fJ5;rTT41u?nfximj{y+`T&0gYG)fv2GD5yZAHi6 z?=rd`f5*`>@txQy$Yknl7wo*OgPADQhmXdmrI?b*X3_z6Jl7)RoK3g=!0Gp?D(8Iq zO62smSCGXt-2Qu+Jxw^5(=2;lWYTbp)#n7cBI5b;oMn5(@oHBG!)TZ5_;bRrF4Lcf|j^g+9jD)Emfe4Fy86@BvrMlC8yE{h-OG=k_kGM+PNv5b0jp~1YJm@-4s^KB{YvNa#PTW zZnjoyCCVOp3@KaPY@K&YluITh=xG_2Um~I9Cg@p8+!fAc5^7t$s^m9msJnvZxm((W zm>|#T0C$DeGbvvZ%}2iF?zRb^B}%#pzq!<6Gfn8VBzm3+-GRPBxjZCvj|p0zdV46G zgC+Em2^vm2AsQp0MESaNNBnVI*mpns*%t<6LcvZgXkIw-D84orRxzbkkCseXfZ8A z^sI!Io1lMC;-hfBC!w}AtJ>iS4fRnZ{41d$Ca6qpv|f}6-AbY-nb2#~MOc@Igr=LI z4e2pNn@VV&3EGOjLbR=f?lD2TQEy*`bAJiFWP%Q-oe<5C&~g)WI?X~tgoc=)+vx*D_e*G!30gw!>M5MhOK7?YdW}XSdQU?0Oi%+IgXn7s-D84&qU-A^ z63i2f_P=C;T1)i%CUi%MUT#A7qNKjUxuJyGT359|V;YKRq=bf;ps{oSqU|L#$pr0A z7a=-OLeou9?DdF_lh8a9bQXPu=zIy?V}dTD-VGGan8rLDT&#?ea{J zfpiS!8ztr2V}eem>k*wTp_fe1#k363wGvuxf^MUvA&w0aYAdg*>v0;2XqkkDn4tIQ zfQE{Mw-TCUf?BmRTByGX-CLrko6sZZF|4bzgyxx`!|5wTGbMD737SQ{{T0qS3B6>3 zGTO;sL1+3~+LfCidYXmE9z<+yt7=|G^RdJSQi&lZ=u`T@Uy<-$LX%8TvqVXA6S`cY zr<>4SX>@?X*-t|AOwh)345BS0bdL$zj;=?vw}f6YK~rfNqBAA5+yq@gNua_xUqWr| zs#@S24Mp@12@Nqp@6!Q@K9kTS6Z9Qj6sSm$wKv)!-2|;6(Px^_9VL363B4|Tg>^NO z&^;z-1oaM5ILAupB@?s*?SyD=2`x84hte!W(C;m?|ix*e`iwz{?4SKjpK1CJgIRoxk0z# z?_+usf5%a)CVZ(Hj=!yF8vYKTEAUsKXYn_M{)fMmHf$P9deL6^+l^}Qw=+G2za6Oo ze_K*#WiSaZNKkrN!<%(27I_aqHdOwyM6FZhKA_Gqqusln zMnF5&*D_J_TCI5zeUNV$9OCO>A^bGm6cYfoPSeXV&EStyv_|Y{*x8I;jt!_0d=9f| z?gQv|)S#%*&@4@gv9x`XD|Sp6#LbY6GlaNx!J$z-3KAY(gdhpQH3}+n!*!MIGAp zu2Hm0CQH=(BRK4)liG#XZu=7|)JX1`BQD=VON3s*^i(^4u>O_4YB$7c_9T!YaqUgo zFY!yA`}K*;ko>ixLQ?ph(BT|SZ|_GMwh7o(q!Cy|Bj@;=s z)rO#jPPET`o)MwePQ&KUv@G=EcGx?SejZsLezvE+qq=}{V!@HHt(<9+&COwhf8n$H8>SI)pnn~M? zsq1Erxf3*TwuTt7En6jMCs-D$d7b{5G-pifI;xu7Nh*Yv0pb(o6DYkkW&$K<&@N;B zYc2Gb=%<9gsb*{>2;=DKu`1$8&BtXx({Xh2xcKT%$AYZbi7cL_p!ddg_Svx%WC_~% zu>*e~qE2~blNq*KA73xw5bc_whNz`g7@DYZ7%*GrvS zBF|A*XC+67!a{RPxU+<^On2&;nLswuw9G(==Y;xXH!aRo!2?RaWG2-=j@58G{a~cP zMo7~BpmSt89XGx+{4<)Cj*qjE)fWXz(8T)s30#EkT3u>6#SP{Tr}d|#!-3&+`II)a`;F*0(V1hE-4F(HC4eK6I*sV_o?7Fca%K2e?JX<`K~rWIJ3 zR-jJf6~vr*CQ4GZfklT-?8+#O@F_O`bCYjiAnc zW?7N$h2vV^eITnycdAIY#i6(1e`w(BlU{~o(NOWJ7TACp6KUCW$4Eb%a8SXx(7%O; zEs#w+B?KurW%voLWjIuCD#zLm9;>LxHjwt(c(3VJ*pqC_6SYwx)MJKo(2B3dve7~z zPuHroZuPLWQIIJivdlc5;pxfma|7)^!vj2iqBCbGNG4rA!_z4RHImy!c?q@V@i{Oi zRdlV6gq7DOF7TIzKAq7ThlEBm>k$L(Iy26^z)(>^7iKwDmwU#dhfrEL^Cxf}N`12G z6EoU2E7<0W!2R+bw~nQ7fX>NE!n$r`dBMiP^kY_!R)-n(Dy{MeK7`S8c&)0f_#S-_ zy9u`S6U5eG`j8VQg$_oBIXsW%7DBl+Zs!ky-x#f1+!Xs4uV=|4USgXttt|V4Pi8N*<}Rm>dR$R~v(0w3PMNkFM8;(LFvp)n zQS01DSTcvU&5a;uXm0KuxZR%)n%&!H;a^onoq_2pq89fPMLk2m%$^;1cBiq_eB?sc zQ57pCdGNk~G`Bt6nn~Zz&4eo{bhst}s-@87niw*M-qCovce;-iO4i^ej>a^1d-VCZ z?KJwNL$lq_v1_1-xW{W{hFRi7Z=und$r4K2^v8O{juU1mMW8rPs`m*UG;fL5sr^`( z&U#Hg$O`9U41)G_*~UWxRgu z-x&@(rGE3Hz0+pT~mRh zV#DuzW3dtzcA;__KUeLNT?Xx73?5E3@ z)Q7vBXvq?nI*oJ1?q%Cvml@VxHw_m7$_Dhs5^tZP4D=hV>K&S=a>)CL;0sI}mmI4y zXyc`wY|j3HEyBAc*Y5~jv@{W3j-&UM2E|7qVsL#|Q6cw~iCvL%1aNkhkzFkgz0OGC z$T8lLezb{NW9}=oOQKztC3!U*$DOcSh~o`wEdvgxE(hraSj=pCrnAACzb`k zu8y>PnTs`K8&yJSD`rsz^8?*j8qHj6UR}nzlO<9ArfDn;0>;t}tf71+B8KF*qNu{4 zj`TM3AYJH3<_5DnP^aaMp>qeCxI8TKOxgE#!@z4&n$dUsgnlu6+4NPO9zuEXcaD9u-j&>GdySwT|TEA>qkq)(ejlFhy4s>814Kx%O1Z?-B#5n zHE7JL)%FF5{|G+2MPIK9vV4wapaZhXlr_J!$>G^O*?FK8gQ*OH?bHZzrvtN zXtN5PUJPrZyA@YMdq;Qerq+Dv!lyUk&?$5U%?aN0Sz%@f%5%q~(Tn*j*M0@Zf9z$# z^=MkUF%Y&zOGdV(&YQ-$&CHPcIVv+1-z&#}Cqn(fbnB)-I1?q#NY6G|kskEjrdU`! zh_=|APx{dpn;ju6idNg=2cufikS&YJJbGfwc5;u7+8RXi>8h>C&W~`7jWQ?d2K!n* zO~wJj822ntQQK|Ji3L?}3n%C4tZj|pSqr*%TMi6uLBqCt!<(Ztd3!QEj-&^-53RLZ z!}kIz#@Gt`exv?7&cODFN>3q5>a?>7WTnvdJKF>wD&ktJ_KvJn#2BP)$Fw+@CE&sj zJErln}JbUMhiN#<&8x@C05 z1h3E%{B^?rwnC%hbkF`3@Fs+|JK*N~r~nQ7_a`i88tTkzxPp}Sx$oM`;~pC#_;`gD zKM+yv!vR!vEIogq39JcTtZxZ@gK3mLF!BCgZa3A6foAB7e09R`O^kPphBD6D5uLeL z$AxKavp@P|Hbc`TP6JuxrW~#lc+I)=puR4~FSqqBymRY)co=c8A!s_$xPuYk-Uxlz zhhPkTuxC`qe5@ApH0Lp~CdSY36`jL4JQd@HgQ!UW@_aYXX~C7}F$UwFRCUN1W*5_* zhrHoL5S?u#f$wU09qHXo~)_gdRHFfNzT)9#*^4uUNJ=Qmq|lStv%i zQU0{=kr@tlxKzN#@kP442!{&qeM~(2lwmPpa)Vi$@PRybIxiy)@O(yaU~WmIC*ng|k8(5c)J=rw? zr@92q+wA}9%jeYO{;N~^P6V0eoO+P?GBqi$xR13vq2FQ%Nnf4xb$Q=a^pg+xNYst< z61y%=Fv8kc8hpwZG_|PaoQHj{STu&Vi&uMX9EQVU=8`jxbmgfaSXYalJLPIQ2sc-; zvYqt#DUTUO7Qz2LUq3!c)O;0#iW7onN<~GqTwgs~u+07tCZ972#~KW7hoXci-z+t` zRB<0Ww9(z7i=xoBh5YB~E|eN~fq2D&FZO!$w2<$LB;b*QjgjhP2&$;4hAtZ`lhM4> zieMGSBvQY_eJ6#A2ltf*5YC7V6XS#=+;tMwx^{Y$gH%y8qTlPKy-Hmx5j!JNnMYIV z;Vb32%O^FlBuT_D;rureJzwff8=Z4?vFgRyHHo;?dLyo- z@r|z+aceM4lP|cB7-B9=w&fqYg1r!wfkX4;d{cHeh?C zV^V4l(YO&tR==l3-vOcCfAm$UV;8iyd8{@HHB-&P!$&k?Ha^gsLcV#Ee@l?H*NzTJ z)Ci)WA9-=yd^&Tq-6?stffKYbAtL&lh3Is5u!mqzN8|t4(@6&1bH0w_6Dpe|*<946ow10ps=6fog&PHGZ7pnC!uP6Cw9I*i z7dTd-vHbXvRTPhEjNM8v@+R40teL1ww^ip}&ZsN*oQaNxYKrZ)^d0^0ysIr{|DlnF zy+g}12-K>M;?)Y&wFDnx+wd)1KD_=ES+#ANzo((U*KSrC>krFOHe>^-SdS%ttj*dnc}a%kSEE{PSG1GVAB3y8Z-L3EN(E!WgyTp;r;fzjYF!t#x->>@w02C?578x- z@6F5qBOEm@jo|^1EROzr(cb@GyzYePJA72J_-f?*u{VtTms@;BPos$|E#6QRsGDV_ zKxkA)E)chPv^LHbpI+ZAe;g-Rts1-FL>yewad3$yZ{*X>eZ_qSzW0!Q%1Q2sIpw@@ zY`Cb{vy6>n++9-7z=pv_(egnB+Xov)qqhClHXV7}=tYs@y>xX>@l{gdpeKe3Bt;h` zVXBb-7+#9$i9F4J4EMxzI#2T-!|!6+mZ$lT;V7nY{Ktl#Vc3W7-{xH5wnNo;$Z!Jt z)eixcI1U~_CN&qia+xLW7}UkVL0D;;KL|&;@A-u(Cio1)8XVMrU`RG$Fr?#-(+_y0 zDIS3y^#kr|im${;><9c)ohk}?UNbC1357>h$=3|c`NFf~DB7y50la%fQ_DQz>MN=# z%YuO;3u;|nN#ObLf^ApuCc@oe)a&YJmy+QakxoMEViXjZiU!iDl=u)PrqO2Cd_4zp z_%9>;0kuPkVYq6YYYFS(o@&2L;uu*HP_|1M>CY}z7gK|EtXPQaQ`7< z&NO@oJBOlT-!;oq=T>BN#c1lcq15GO8fb>n+?)I1^ zZ-qKskmu}2|4+mV9T+hP{|%_9C=B#M0uhF4Y)|7Po)G?Q#y-S_KL^nDe>QZp#{#hM zc9GaKH3pm$w90sV$J#&kr;q+!@?Oz_=VZbP(}e4#)3onZ`jKIasg`LH?2`WEbZxPiciJ_TL=wj#CjT+C#;B$A+s z$3;Ypt;S)73myH)KPaXNuE9&=`4E9ksBD2rp%pGL5_Iu?adLgU2b$g!iHLbMp{E}) zINF=`dmL9gsxcoaG2W8qa8-lG1^UMpWJZV+U)9H3zLAfPvBfI!+0IMj;Ed#<^3%rv z&jI3X4X?5L;0aYhFZ9wo#uZ1u?xL3-?2TT!qlXAD;qWmd9A$)^IXoX>QGdLZA}w^n zkscR{XR47x8#tUwvxTA1C6zuEydkV7wJ}VG^qzEqA=d1DS70+TiBrLILoWjFhEVm> zpFlT+=09Z++ohoGGiL%;T?>XhHzP19i9UbfWaTePV3CqUZC)yBXYNG79crUGYWb*3 zYOO=Vu5|y4X7H{fGJC?Uj>zQ&#T{wLOHccyU2tO@`EKEI4Sm)k#hwm$`Pyj_-{sI* z541Cua!joO1hYHP;pGh)cEl}rwWhVLc)a^#z@v|E|O6#CS zlE$Ky59a5aUcMl0gB9Jk?kw(4D7ez!tnaSxyJoWSo) zukn~bFwDcL8PUCn@&IojO1znus8w#^51m6EB8O)3x^?dJ<){S1AqUl)iSIm?s)zfr zm?^C;9riy9*Nrsg6xqr)Z zdZ362+6-Syb)?daXUf^d)z6;hg|BC z_Ln{2?Lw7bW1(GA!IZDr1a@{>LfpWs(^3!O4!TZDRiu%vLBX@D3dM)=uwv;H5(se} zmTn{Up{V83G7<^{70jFv75FGv3?aVouOmw%q!FBQWGi@@IkKaKB!hpF-VKNYsr9K2 zH{WrT>c2XAl^HQ3PS3D+9pYnBVVF_XzmOmt(6gTAq*q8gOeARCe1*pEx$X{;m`0%n z^M@t|&8r;1**E@)sK&yfHhW-BhJtl%mS90jt!mkGZl$$7bFN0_LxXU(r5Z{*ef} zCGmm@a`ulUX$&!P=4yrMvo=g+MLgg^8S2JY)TCh z0FPtY)*2+xA+-&T=TubBOd8;>#xg?ScVo4Yz*JQ5NL~V7phN#QA8f=6$X#lygY^gOF3+-z# zD;sRUyRl4dL!Q{ywc>25HDb5+ArxolUnT@wN*^vZ}uk9Z;QJesucEJ&wY-Tun z=SYHVL$NSq1M#6mlQdBfZ_nj2ky<7`l$Y@#IGo45HPk_4F;2$DDM*l+TR5=a#}WlA zRFF`gF(U7bC}il%`OCz$zC~w|%#EU!F&ih+Fw|P4#Ng7lB%`UeW}>!UO-|9AMjnE1 zx=vrRKg#8EHgR{gi;P_QC=rgaH7pVXsF?`x+8cghL9XOy(0yiSU5P)WDcQd~J?$}D2VBa3iH6+@e|6n7F2>gH^-JLv)e&Dke+ z(gXg8Ve_MjD;w=Wdcw#D?5qcA0{xq@uO37Ry_7tY7whIpJgg3V5Q{GSz@~cQ7}G6A zf7X-KBe2GUm3xt9aJ)71^CqLMa^H!3v)}30c@tLx4;r()=A;fQtBd2=b17l%Lp)uQ z)M$pMXa}6g>+zi{ohk$$LaG~U<3qYZ!^Uj2519;sEsZ4v`I3LYtDHI3BUd3h#7HFd zi4#OhiQxJq1J1r;o9dJL&g);{ZfU$Ny277=c;03_I)M=OcYV^rDG_0Q>K4n7;v}Ee zsfGsY!y1s@1jYulC4MBsDexs28&zyxG;wVt2rm{huZE<#-PISkA02~1j`9k=37Z$Q z)P|%4RyAV&{^S;NNb2~$l3sa3JXlBm5X1stknG0Ok>dlT}-L78`_~;BlGV4??2WGDgaqNKj`=hq>mb~pooa+;wDxDw!8jQbtgR=U}y$Mb-H|vWHXxk3&fQY96 zH~B)ry%rnOgd|%f{ViIg)8FhWXYOTWX3kAzc4fn!baGUFsE@v14A z15+Qe$x70q*7%25il|D)Lv~z=wa@eAMsQ$u&B##SVU}p7nfi)~A15i*+6Q9Q>+m6r z%VjH@Vd;UEOy3M=)U!UuDxI5?x^T>gshX2cuuLS@gEzOZn(`Ys|YfS!3^jA4;gRzrgrTYE5~f&LPTz zm9-`foBrv^=^xE99PyVRaF!Ev4u3wyg@HWwvUq)qcgqCL%|y**taPq3YZOBc!sbs* zh#@nq_FusaTIGQ&EIpRE!WbvLE|#1m*5}JOy&D(eOqsrK8xjrh{2g1bCQ(+Oei!q6 z{+&HhlTrw9UC$Gf*y4#uS88D^VA zQmr(Bd$5GiA3oiH*xRf{d^L>gQ5GUn}F%6{vF z;m_RX>|H0)B&y)~R~*x(*~&7Hi2fxGZ;#Q4E;Xwb-rE=3RjWF|Kas)m@kABPR&<)B zbtVk<)nw2GOWiJKfn7)t9C*u;yO2PaBsu5)AhsRGFgo`ZoS?Hvy3N*i!O^XL4gLKt zgqeYZz$Wz|W$;Tame`YwhA*}BMLo#^0*B05``$PmI6q>Uy-6B47P0%iG1z)_gjpn$ zrqHe?i%ceCpiy=Gu4Ixzz#Eu#3K?&;tx&Yp_Chv41tnTZ*x?i$TQ)slh7^oI;;r;G z`;t^*wy1)z@%_kdEB!&9!QtRReWU(l34w^O?BoFQ4qAU5o!)w;c8WDEug>i_i3#*k$MN}h8C1AzX z)BQi7*(y&!jXUgG3#&~`IgY#szh|sb29{>nz;ZK46RW{^l@663vVk4TAPTEkV=`_7 zdyqlA%|8A^SPM_$%seu26tjKGre~7VZp(kc?kU6hPOS?H#CL389e-$4eScy7#}hBN zJ|b0_B2pdd^M|gRIt61b`(N0q@ub8mX}wr)r}b>e1QHJQ*RypKNE3%w>p&K3^+w#| zF3J;Q_PgttFoE=QiYxtUJc^C(hBwE=Yh!Ay`%mjwzlrDu4cD=y6S4Io-mpUxNoc6! z8-jah!VV2DW1J<; znLeft|5!k$Dzah2CgFq^vX(8Ig!6y<*X+n7474AtVUH$}x-M7$BeKFA<9>qdwdl0H zals+zPBHJvqz?QvlQo}AdRw(yBUYBUhW$L5d};jX1dbB?`-GQj+z}H_r{U0xvpR;9 zmcm)Y@Q^Q2i#N?U%0EaOa*~~$LfmcMtwQ^w`MKb)SFyKKh}ve|542UQSlg*&qTB^( zcx_j$;qL9Qij_?zk)U|VY^IS9F#8y@oQ{EM?JF!`ItHYhp0kK0FghFe^n;D z#F>__BwR3}K|KWdB^I1TeBIMt^3AJybx}Qj=cO$_Si-@R$2}K+XX#mFG1Q3Ao6jN& z0^}8Q&n6kJQ&6}!a=SP`gNo1JeQ+UQXkPTS!qB)#zcZWQ4tb~MtSAS^GP4)@r#ZyT z9NIk9m(L{&3G6rMv*wX{<}mva+q!_v0(is%7m|Bm7{jddh*RipyfpGg-W%gkO^nxT zxm}E3@(Hxj%)ih^=)~y!%Ja8H8@O_FqbXM!!<#_5_T_-C~7?3#oHXO zdhS}bh}4ZKl#-qCc_Ba2gV$wCd2J-R#BtE)? z2>u~lo+)9)mZGmXL}0zx2aTVzrA*--kI}ouU-wxuB_rLY-bXWOM))T2%Y$mnf+_qA z2swJ^u)itxxzHSDy@a%fy1A?m?nGIQ$l(>LQgT?<5*%t{?y!|ha4TcITe*Tn1oxOO*3uIn!W1+q4r3!YNmGgz#k&?3eL3<94?*z5(9YAD`Ol=0)yHXK zrccvYdN=*P3@l0xvvyppBsG`4sp zsb9l)BX_m;!jTQ^_(~i;XK!F1R+5G@4sYPyHIAR=X71$-ZIMtYUK`V@UQFSOjaTS~ zb?}&0`41-1%jW$eja`hr7nS+?0!AzVrAHo~&mlSCe7T_X-PHLki)S%k0@2 zvKJa%X6x3H2{xxDqIWoPuhS}zO=R`fk>xPuGCR7CbcULxtoC{`z$$fus94$rHf=q5 z3QaHRhy6mL%)!5pe&=Q~l~}zUEi(K&nuTs9o}L@=w1Rs>2A++gX}!2Zdl}yID+W5H zq8A&DOg`Pyc^*|fKE$RH+7H36)7tZ`J{&Rm6m*v5Z^b2PXYuLI$Tpl;UY_AZch+

j~q1NwrpOiML10@u*7Yu$&jE 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 L-Ao&2yrTR+lGWy_ diff --git a/progs/poly_solidify.onyx b/progs/poly_solidify.onyx index 24462e93..3e067055 100644 --- a/progs/poly_solidify.onyx +++ b/progs/poly_solidify.onyx @@ -22,16 +22,30 @@ main :: proc (args: [] cstr) { proc (b: f32) -> f64 { return ~~(b + 6); })); - arr : [..] f32; - array.init(^arr); - defer array.free(^arr); - - - for i: 0 .. 10 do array.push(^arr, ~~i); - print_array(arr); - - array_map(arr, double); - print_array(arr); + arr1 : [..] f32; + arr2 : [..] i32; + array.init(^arr1); + array.init(^arr2); + defer array.free(^arr1); + defer array.free(^arr2); + + for i: 0 .. 10 { + array.push(^arr1, ~~i); + array.push(^arr2, ~~i); + } + print_arrays(arr1, arr2); + + array_map(arr1, double); + array_map(arr2, double); + + print_arrays(arr1, arr2); + + print_arrays :: proc (arr1: [..] $T, arr2: [..] $R) { + println("=================================================="); + print_array(arr1); + print_array(arr2); + println("=================================================="); + } } array_map :: proc (arr: [..] $T, f: proc (T) -> T) { @@ -43,12 +57,18 @@ array_map :: proc (arr: [..] $T, f: proc (T) -> T) { for ^v: arr do *v = f(*v); - test2 :: proc () { test(); println("WORLD!!!!"); }; - test :: proc () { println("HELLO!!!"); }; + test2 :: proc () { + test(); + println("WORLD!!!!"); + } + + test :: proc () { + println("HELLO!!!"); + } InternalStruct :: struct ($SOMETHING) { foo : SOMETHING; - }; + } } double :: proc (v: $V) -> V do return v * 2; \ No newline at end of file diff --git a/src/onyxclone.c b/src/onyxclone.c index 0cfd8a5d..b731efe3 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -380,6 +380,26 @@ AstNode* ast_clone(bh_allocator a, void* n) { ((AstUse *) nn)->expr = (AstTyped *) ast_clone(a, ((AstUse *) node)->expr); break; } + + case Ast_Kind_Directive_Solidify: { + AstDirectiveSolidify* dd = (AstDirectiveSolidify *) nn; + AstDirectiveSolidify* sd = (AstDirectiveSolidify *) node; + + dd->poly_proc = (AstPolyProc *) ast_clone(a, (AstNode *) sd->poly_proc); + dd->resolved_proc = NULL; + + dd->known_polyvars = NULL; + bh_arr_new(global_heap_allocator, dd->known_polyvars, bh_arr_length(sd->known_polyvars)); + + bh_arr_each(AstPolySolution, sln, sd->known_polyvars) { + AstPolySolution new_sln; + new_sln.poly_sym = (AstNode *) ast_clone(a, (AstNode *) sln->poly_sym); + new_sln.ast_type = (AstType *) ast_clone(a, (AstNode *) sln->ast_type); + bh_arr_push(dd->known_polyvars, new_sln); + } + + break; + } } return nn; diff --git a/src/onyxparser.c b/src/onyxparser.c index b1d1e736..37479335 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -32,7 +32,7 @@ static AstIfWhile* parse_if_stmt(OnyxParser* parser); static AstIfWhile* parse_while_stmt(OnyxParser* parser); static AstFor* parse_for_stmt(OnyxParser* parser); static AstSwitch* parse_switch_stmt(OnyxParser* parser); -static b32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret); +static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret); static AstReturn* parse_return_stmt(OnyxParser* parser); static AstNode* parse_use_stmt(OnyxParser* parser); static AstBlock* parse_block(OnyxParser* parser); @@ -116,7 +116,7 @@ static void add_node_to_process(OnyxParser* parser, AstNode* node) { if (!bh_arr_is_empty(parser->block_stack)) { Scope* binding_scope = parser->block_stack[bh_arr_length(parser->block_stack) - 1]->binding_scope; - + if (binding_scope != NULL) scope = binding_scope; } @@ -1003,13 +1003,16 @@ static AstSwitch* parse_switch_stmt(OnyxParser* parser) { return switch_node; } -// Returns 1 if the symbol was consumed. Returns 0 otherwise +// Returns: +// 0 - if this was not a symbol declaration. +// 1 - if this was a local declaration. +// 2 - if this was binding declaration. // ret is set to the statement to insert // : = // : : // := // :: -static b32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) { +static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) { if (parser->curr->type != Token_Type_Symbol) return 0; if ((parser->curr + 1)->type != ':') return 0; @@ -1032,7 +1035,7 @@ static b32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) AstBinding* binding = parse_top_level_binding(parser, symbol); symbol_introduce(current_block->binding_scope, symbol, binding->node); - return 1; + return 2; } // NOTE: var: type @@ -1185,9 +1188,13 @@ static AstNode* parse_statement(OnyxParser* parser) { retval = (AstNode *) parse_block(parser); break; - case Token_Type_Symbol: - if (parse_possible_symbol_declaration(parser, &retval)) break; + case Token_Type_Symbol: { + i32 symbol_res = parse_possible_symbol_declaration(parser, &retval); + if (symbol_res == 2) needs_semicolon = 0; + if (symbol_res != 0) break; + // fallthrough + } case '(': case '+': -- 2.25.1