From 82e03cf9caf0530f69a35f37aa359304ba9500d9 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 3 Jul 2020 09:24:41 -0500 Subject: [PATCH] Added +=, -=, *=, etc. operators --- include/onyxlex.h | 5 +++++ onyx | Bin 213672 -> 214304 bytes progs/other.onyx | 6 +++--- progs/test.onyx | 10 +++++----- src/onyxlex.c | 10 ++++++++++ src/onyxparser.c | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 60 insertions(+), 8 deletions(-) diff --git a/include/onyxlex.h b/include/onyxlex.h index ed65258e..6502862d 100644 --- a/include/onyxlex.h +++ b/include/onyxlex.h @@ -53,6 +53,11 @@ typedef enum TokenType { TOKEN_TYPE_SYM_BANG, TOKEN_TYPE_SYM_CARET, TOKEN_TYPE_SYM_AMPERSAND, + TOKEN_TYPE_SYM_PLUS_EQUAL, + TOKEN_TYPE_SYM_MINUS_EQUAL, + TOKEN_TYPE_SYM_STAR_EQUAL, + TOKEN_TYPE_SYM_FSLASH_EQUAL, + TOKEN_TYPE_SYM_PERCENT_EQUAL, TOKEN_TYPE_SYMBOL, TOKEN_TYPE_LITERAL_STRING, diff --git a/onyx b/onyx index ead39f24013624edd5a41908db9705c84703eb31..abdad2c4ba9abd7c3ccf0dd5ed8f9802ae32b027 100755 GIT binary patch delta 78497 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�=i+$^mYby2P*$7UE?I6}_ zJ^yTknq#jMYf6fl6*~vjFjAu@79nm)>;@{s4tn852wld{??|0qNGQdXF`cAz(jy&p zG|$+_6snh@n`4b6r9p;TVl9;pf{ik`CUz&Wc9x;rW5r}z7a6(}wSfj1!SH;j0CpB- zj}QF7yTLFOM=(sj#ZVacIpnrTSKXWdQn5O;j3)Z!ry`Xe77??#H)P=|KZgM3dIY4Y z9*K@e&}~qrd6cV(k_F0iMX3nEGkP0AqlSn%Ls9ceQC$;23l$84Xq*3=sA`}j%aAjD zmEMk`Bj&bYQaw^2|D(Mm7ALW^P{)RQ?vu}v$UDqjiinu&NhI`Z$r_^H>CykJRJBV}gE$Zf zzVZ>6aCMO;;O$Wrx~fVCZbo!B3edLuO8QzX2t#T8mkwu3_C?339}MJ>MSzIHwyRKj zRRd93^)CW#$a-hYhf?_YzVHuy;a>#mrSR2GWxoneG>9@u$Co8iSn}IIAu_u!)Z)e!H6}Gun#3*tuRC0YgPA8=w z1}y5pq#fy_k|5m`h~E32wBa(}hIhyYPH|VDky7AYl=RnKfx%<~d@sGRR(iu&HAy<- zZs`nc$#2%GuAt(+P-gU+ccc

!(X^ITlr3X7s{96=l>{a$%sGr-aL7v8QB0@(rr2 z7kS}H(uhmF@G;Ve%K~nRZP?EH==$`jQh%o{QZK>y=+ax}ptxm~n;K}4wc;{WE2hd^ z(kXYcR!ox`%vCK;vWRNw43DtdshO-qFPD<>@nx*>;`=?0J~Lnu01@6wIg066#Z*m; z?8LAG1g_gObteM#K2(|TrHAiTqKj0bWE2l2{ft1ADmw8b+fp?+BTzyFDwHwQk1Pm8 zscXj97S=gQ6aA`wj-;px*hqdEEd4U|88Me{f)ktbp4V zOTP^9+yF;$YZ)$UBxlGdt#t3sGAiH#5>ZY-Y-kW zxNlNPg=f+`873i3hDGms7Hv?DEc@V)Ngtvv>svjJM;x;8jcg2(66BI6rT!r=N&Wkj zy?V<^(ods7uymmDf!{SfY4$m+YkEq`mi-^T%>A4fo{;PXA^P(sKODF_JeK;dM_K2I z+9NMYZ7Y4HZIe)Xs>M82)GLru`Vc+R)XVlgL^i`mJs+S0;Ahfb4{5!<#CCA?b}>x8i5YF+cQ|nswCE5VWJ+ zCbE2*8NB#e$(S(Zuilae110}7uUcS`z-RMJGlx(tHPf1FRl=^0E>kXUham|A7-pIl zt@$++c;Wi83!bA8S-Em}(=R7cI|=MU$4 zjkvg>I_H`eEkF@qqUK%2HeCtZ;|sgM6V|Myx+y1lTuP89XBG{|MnhzW=kSQuyPJZ> zKR-VyWnN{&$7Q#rTp38 zc_KZ|w<|$cNO@ZFL2BGVFE{9E^d$7_VKaW{d7e(uPt?$saAr5U5X#sAL6H z30EFXj7YOL`yhW+-AXm+5`&*>$-l_-$NMGwoA1&~JeRI>*rk_vF2#((8A4^U%*ZA7 zi1~~Hx>e)zUzZyEb{n0AH2*Rqk8DDtPtrQAzCsoR4Z9{&OS{hCr2})-(~c}D*JBux zYWs*X&+{)oU2ZiB9Qk;efIL#ApaCA|(b3YQ$m0u*Xyjp;wos+jTjqgF)|Q2a>NrPK z&LnRvG)7S*Y--QAu!TnRSqSr3k=8=+k7P_;!J4TkBZWIDeBvEz;C_6Mc5 z8ozGVL$K5~-ss>r5mql}5MVOAu4;m)3Y}zYyDZ^f1je+B%XCW8RwL2PEGRRn7yU zt(tLrMMlMg2(S;RIQ4{)kbU5FjvVn78%bK*Lb+?HMKpKE6;N`L5j=+VE=JiSECb^t z?htyjjgAY)=DvRFq)wYU*PKCmBSWYJv{K}MmeC5+@c>LE71n0GPi;yOp}!e(-*Ep z@5pjMrL8+1?K?SY}hxZ3yqf2l3#@Bp@UMp*_)J*&% z=Q&(`p_#FRcj%LepC?YN`A%PRl2+jKwR+@ixE14r2 za~!Zri;mEvWD&J8t!AR)^NhaRXB#WosHxQ)ar5EQUiY~sdR+Ma+x3delO@%i#2gM4 z7CC@08tLz-PSxts<8F|0+xpe`VN3*MM^>w=S-Dq@YxS{yVG!;G0%pj5%xgb&USW*m zTKF7fVdwTp>L2iUt+_*KQ%`Q~8pO+ftX}6q1GTZ#oExQ09+&LGx_TTVR6Qo)T#xgB zRL6ZfM(v_NkN$q0Oh19t;?i5vouFT4szB$dr(cl^^dl)xRFS#16zC^W+4vQ?(92P? z*6})YL;7#gA=gT|Px$hGh5SxDsQOKs?-{h;oDNWw(cUIEm-F}O!XI%O2$%K!g1}81v<5`?Ka+P#M zPx+%YIPAi`+}^mhb$o>$q}!u|u8}OXbC@o@rA>pUe|s0Nvy}R`ALUiDPBbjtK3k4T zJ@sGu>X#{@UTtq!I#xjR*N4{pcYC=JA9Xp{7}$+h zQ8L=!2p>q~&8O7QAa$TPkKAH}6}TrOod_ zx%oXxo8RSqAWECxgW7r$5v9%V@*X%6+Wc-!FWifmV0bhBGlD$S3PBzMf}H3CAP@Nf za@-fk?*Kj9{jkCq4JdhK(vVQ{?3259)$}q!YhnsYo^w0ya zwQXL%$?Sw^K*`r6jV{h43_yi`m)HbaoVLyDYm4Y!ixYNRzq{lha!oJwrcff{#^S_v zxX)SF+1I#^H@%DZK+&~4-lMBOFLW@+X^*b{f=&120FuUgboCd_uOY?B`>Y-a1pRF> zjksx(uD&JqEF18C7X;pkP!bV8mjn3}D2zw&~VAxl$v`zUKYec~E#P>B%>So0_mZyMIW5?}iEe68%kp5cS-P#yS_ zpgY)<3X~d|ywju;`tm!WNvJ~5_3V7qG4VJ^nmCqh6k&8qhE_maIE2`w^Y!w_!(Npn zq-WE{HE~sUV*VN(rXkM5eLy^k%!kDaSec_0jG-iYHemQ*&i|pSpI+$Mmr?pADAUAt z3>0*6Gju^Eap`g0oQC)ULjUUu{a<*%-Ck)V976izv!l7w;Ki_3KuCWbNdG%YMF`rJ ziKTk>AEe@uMpChdTq=H}p^sKTTzXPBKSq4vPpHZ@I7mg%haVCI+SRLc>Ba=Bs+Oum zf|uS>j?RTynBYp6)=@GjTCITO=ry|824V`oMZN<1G+kUsLJ3=^PuC+4!D3{JBJ~-% z*-V_gH36eS@s6(^TNAieNrjvA$jeA45=)U*-=q)ErC?mD$9@G$N1&zEpcarc9s3n7 zCnE1x&_B~fDNK_&!+r%%wA)l|6lW8UzD+m3qy)R%*`V>(1bm8{8$~!lTN89_O^`zNkeMB4@ z3dqS81*A|o-yrl62;!j}B6F-18F8UyGTd@_Ce8F4k#q;1V6t93@ByI#f zA@Io4ip7=qUm}KrQYx-N+A=X5(#k~^C>7!}@FxWwt=LZR1_bdrOso=j)0$|th#@*9 zp2mGz+=pZ}ViNMyUMvEogE$_dYsFwt>O=_tJBt0_=_Fo<(e>hJq-_wrz|$yhz`gop zX1K|mf%v?~p{EdMmV66u#;HZ&%o1w5=-Lny#>Z`_FvD?mXbIN||Im_0ktmNg!q z;;Y?Kz6=DU8n~hVjf$5ucBogpXm{YU0$$!p9Ymm1V^!KbPSK2=5VsVag`RS|ruikKG0U^^(Dg{2|E$Et{%kh_TBV^stn zt0HzmejCBZst7(-MewmIg10k>R>!K~RF$W}TjHOpauw`gcSWk&l1*|qL!>&FN+KL@ zhi)hf2dxlWMH~mMJl)=q-|56bE2BWn^A1}12!S~Dj5uh8n@&85rhtQ1D1x>#+=XA> z&JgKj(svtpJA)l5{2BLow6&qoUJ>q*1u2s&&>}9+otaIg_b491_7&VMqVzzrv7Lc@ zERD0T%KlT76qvMy!L~~WLqZ;JXRud>ul2>PYAx>C*5a;fE$wQT4&hg( zc`o`5?A77~XIr1m~8S_*$7jAb5Kx`>`;-0>xqPETJN*h|}9p`x`b6;s^t87nJ>j#L<0? zy(^prb}8*UWe;KC?cI6Pr5g#2ZYPQhz*fk6RC&k#j z7KQwtc8OR+^82C_u}kB0uf=mA*e+A0Zjedk91!tG$lA)HwWKRfuRZLlybTCcaK*M$ zT(PnG6b%0bO7OW0!~y66C*jmD{5MIdoi@q3oE~72&E0OFO?6p}L98ZD0$mrhzrzrZ zz}u!sps58!9Lg;b#C=fIfgTda<3FAf5Ec=aQ56)VHcL35UGp(_-}|GpuiMP4YUPBXXvrS4mNljB^JGL9~Mgx8_`UXXCH5#0ZDnlz@vFj z6i1OE+`LbSkqV86zV?Z#JrW4bo+Jltr38VuPm(c!z?TvP-kwb1p%^xmiBiJA+fx)n zsVF53yxpwAC8Crt@b**{E>;kDdz$$M6a&WPwsbPo$2e_#jPp69P7oa2#>Y4*pd|4{-AVky%lb?(_I# zoLM>I21-f2Z&pn8zH~rjR;-k|V!?GeD^JyB`WR%4^MHw9-&?eZH)RfT?0&T*DA)*uBtxbgK zjCPMk+R)%LkAdq^Agf5DZ)w3|tosTo(*n7Ytk%3|tosTo*5tL%$^$xh@#FE-og$ zf|2Wjk?Vqy>!MFPYE%qd7Ytk%3|tosTo+rBs-0Mw#Jf(xz;(gEb-}=O!N7IFz;(gE zb-}=O0pPlW0TLtE1tZr5Bi98Z*99Zj1tZr5kn37E!N7IFz;(gEb-}=Ou>k6O3myOa z2nMbT2CfSRt_udP3kI$W2CfSRt_uRLJA(xy*99Zj1tZtR8suZRVC1@Bw=N%f`RLTf$M^S>*56{n=Tl*F4o|FreNT@VBor7;JRSo zx?teCNWsuKf`RMeW#~OkIPc?Uo?zswwwR>1Y>=VmW-CgtJi7lw7U`(Rgq)?Y-=k(}#(&{cuf zqu-cUgOv9bl!@p+#V-i(s4%*#h(L)MpvMWc9{q^}Mw~$F(Y+k-KE(H}(vM507HzQg8A<%jhp!G-rBr<4SFlb#cXkAFqdI9l90b2hI2@4st9tCK9 zAkrizld}L?CjnX!f!3n{t zCHrVhj{m|58cHCPPoqJh6_A)H@a$tqCga(oz_YK%!X~deM1g0Q^L>o^94!h!JB|B9 zf&lGN0NRhoJgzW7fc7W=?G$QA5THE@Ks(L*MkEN(9tEJCWR6RGOI`z>{VxbjND!Vq z3OxJM2sI}N&mIMyoutf45S~2>Jo}4?Taq9=yAuVV{dEK{;}J*{fcAF~TA3g~dlZ27 zyWptR2?Df70cfYt%?SduM*(Q3P)ni(9cdJJb_%UY5S~2>JUfMMPZX1Bz_U|`@a*LF zVEA!pz@r|`0$&EZ8buZiQ&9!ORer*8GuP;lBQF&X9NuTYtngZmmIDXs!94`498R3n%ZyMe7T zkEN6zXhfh|4d%+@rRzH)oKoSkc>ElaS(6|!h4D=&e4{;&BP(D$*=Uj?qk~xshMe*` z-^#jd!g-4yyO5O^bs#I9RWR8Qow_5H*a^b};&o`VG?UU9UCi5%qGTeNUeS$iq6G_D z@f~Dq_aeI2;?a5pdS=rKa5(-;dkPd$pl7^@4C`4%fm!jFDbR~EyE=XsxwBU}RYGT7 z{Cy5}pwMISuSs05ZWMSWKA*DDr{Yd1+8UomTKjUQxA7Ry=pUnb$j&N)w;2O+e?&9a z^s1wYuPILJ`xQDIavd@d4D&~9DI3N>^9xX__tSl)?pTYE>e)2BhN~26>C#&|qTZ(N zBV#J{Y+^B2y|E~@RT2`DP%+s~3_IbJey*=_^Tlou0Q2HUocjLHb&%20itB z^1Qj~(?wd%<&AV8i7d(1qi+O=u*9jm6>>wmIl2q>6I%KvKm8eZ5@OvWyFkeh4gZ z_+o5;a5whBbF4k(ZWYfY2=`SYfHc2tWW%aO_%gl*GXA;@*KEM!H)8(p%xLp7S1aau0TnO7Fb)XEuf zo$Kf8w9bCM_F>j;oOTS=bQT$JfAFwH zkV*iUTCV(qkA9ZJ`xjSoH!wt1eQSeLH?^&MazEhJmZBEvqr<_mO3y-R7;?T4dQwZ$ z99>EQss_O@KVqJSf%@QZ@WVW5-Fbehzx$~Mhs#u|_PjY@aJVb2apR3``b~IT9}>oc z6;&Ew;`CW$#n5nM55yU(W@y#7p^wvhhI1*!iAo7&jxN1r5d0@i>lscRrle=M?_o-M zk&;$AdbiS11RajvHEfaAMx_Mpk}thwxv!*aI3bnHk~!%bZjefvwT2WLuAUADrzkM! zyMFq8e)@E{_%I{W;YMX->LgzNPlty|!U*Y_nhdMkAF{gfT=YnKwlw-o)mp#vm0nTd zc_urYT8=|9c)Np6P>+Oz!<8(Q1YbA;&zBVm zmna8l4RI$;?vKQKU$<~D0Q8Gd{q<(i#8fYX3T|(OK2=VGX)&48d73+6} z_(c>TA!$Af`>s%mUL{d;$)^0@8&W0Llpa&-J~PlLJHC|UtPk;k$z1i6)8#aDdHRzf zeX7caR_##rTo$rO)D0?EJAD_?WKL#oS*T294n}qxWK_i1$jdwP*%E9 zDm7Ler&XUojd`9d&}VJwf%knC-}@@&wN~+(ui}iuR2+ngVXWf3Rw{DvJk@*2T#O7$ z6$||i@nwt~WiEP26$E)gHkt=xX9Q=XucxCqy^)HnUr0`FR*jUtAK>|ZT$ck>r^bc! z;Ss5(Gj9SI;t80LX5)r?#*LCbKQ*LZud<%LpNu_Pl~yl6jj9h&`PE7f-4v2?H~1bZ z#tMowzcy4s0razVn?i1{A!wacDAl{EiI&Rr9|vXnXZ-XxPrrZtSDy0y;<2CucG!r}4;&G=T?WYOnkAP@_V=Wd0=BL+0%fM+*BC!rb~{z(g;k zyl)HgyLNhrR!=17z8B;^@Lf|n;8O@sKddmt-0A+7} zbC72P=uV}THwQbC0@dnf3^$T_tl^eJ8dey(yLvdSYE#Z12r>!)yNpn-YcUqo&kY9W zDvd|^d3cpH9tX*YPEi2Qg483Dy>T@Rqme=|{1Ilk4gaK`Z$U6PTuDKj;7f1G!8Auo zSrBaJcw)Y#esMvtDLbj|)~vffJ;Fv~s@i%tiksT{O~9 zAd7lrkY{&z2&H&rifJsE(mc*83g&L*def|R>;9XJo~gLb_PNSDt_fPV z+ZC5|R)0;q#b>Jw=F;1K8q{>l{rzxZPm^5>G`)Q=kMfQVQmb3^yZienqg(j})RDa{ z{Wk9xnU24of?K`i&+gGj7*#_jl1tvUdJzH#o3|II*#5Vzp=3V*{EItJJNsl!-(uN+ zt|P*>#d6f}uEhWVI;}YUFL%=sMsi>?iTc3eu{E7qtl8wMXOWC&L5@~EkGhfvrA2@F zm$ZnoMi({~yQQN&iyrhW+N>;k&>BjdwAo5p^iZZne?H8j<)e*u)osb5byD9%rOzu- zz2!~Brj~Va-yCi9D>unmw@KD>_DPfeA%9@n5V!r2#)PVCkQe<%D@3mT;%6Cqz0dR( zx*YV>cOQwfZmH&>-%4|@;##>BhwrJlUmR(4Z2TO79)pk$FR-fPB=agM^UJ+bm?~r_ z9uAK|X44pBi1RsdUMe{sP@Fw|?RS8){mG}%{u?Vv>pkei+MhF(f}Nx_&C;67d~5De zuCH#SPHnN2{Qgf;F zqpVq~9wAjP^i|&|Rm(xoc@|^E;}KC8WR(-%ClwsgPM@%jq$)%LJD-g1w%E$&H9BlhO*2F^DXR)iaEb6M>`A({t zh#!Y;F|Q^)EH)Pv1!6HIl2T$;M0L;U8F8@Yd0{xCnVb=o4!l+g9Ux^x=HGmoQL9AC zoF$)VQLAP>*ytJUWKkhRt?u;1;&IsHT|tOQq2vEeXeY!8?B8sBzw*ux_6_9sEZVRaS$RsIpTcDE?nfitNwJk6dK;CSs3@J8z zTj1zwchs>)nKO$j@s}ej`=k>B*Pga=Wkb`9PIwaP0Eu1N{g^iJ`gdi=Gc0DSK5+dv2wAzD|nlqeMRI ziwxkQDSf&w(BX7Pb_}T#srsx7^drDFK7=TRt_yGnM{6Z>sH*%apvK8_wd%i7)mST) z#FY|EhLqhSd?jlG)yi%ub8Vo9G_+Z(p4=IomA*y_`C6@)V055_wD>~S1kzre<(_v< zpqCUfE=`qCzdaC>hR@X+CzC^$N}1!8%>H*SZNt|o`*N@ha|jRPhGii`2YAPq^X zSQ7&6s3nmG9vMvxL)c14J4)J2~zX0Kn}4+OsDxU%_A~2|LAEpwZ`wLTGdL;F{Sx_ z-?3NpMxJqwLv5fyHp~&J+bA!!fpU5y>W>EN0y)GQF~_lDJgm|twTOCOb9y9&8*u8I zYMlJ&>wKs*cy8J?pw^bANFUt-q3oj^t#Li-kX|S)z2_@w;#}X-cpqtLVW4P}To|7q zO)U&0rK#hjlZrf3n>-(}r6q?fWlKsuOHR?M7g90rG<8}B?ER(EjC;EDmM5S&#Zy|v zVyto|r06v#rJ+qO)bu#J2+Iy*M5;UY(q6bJH5g5n_^E^8{*Dl`L{KvXCw+Yp2;Z2w zqz{!S{X-OCoWUX&I-4~dTZ-{ZV<}pSqi;8}X%teSti`B^FMQmPtYuN#&3Y-SS!)#CSQ9gfFUyuJ|vz=0n^(3k_Tg>3mivL2N{}SSNSiu%A!Gx6DF=O_WD{M`v zzNBx9Ib3>UTzUlM{v9tb7_r<>?zv66y!Z<#y@&7eF&O_pFmSt^uL#zMbd)iv=c-6E4(mPGcF>57ns3!w@FF&_yYU)_YAne z7bpww0<*JMc)XSA0&}2OcwF}vdp<$ot#PP3>n}^M=q)MJ% zN)Oy-FDVu?Iq6g{DOPUtwz(T78>#7MQ^o2bE5aY2$@GUR!W*!oJ=xyF>?LhSBke+U zr``-+so1?br?(V0DfW7^PGz-j^=EFcDR@WuIu&+%GdM`48l`O2TSj@Q+WV=r>ao-k zZCP~Jekyr4_(`@Qi7YzBLQg?1IfM`E>JaAo;h<%5yYmQmkHpOm;lukn5d6N5n^~4u zPP4RL1Ie+bbk`zfR)KF;!y<}4XauWO)Ny{4({CVrgC&E5MzO5G<75U78tr7yIYO%* zLG^XN!7qBYd?M2x>x;NeN!V{xNeRtT!hWMxN|=y3nY^~&=%Jc~%<+B${hLD-4=OGv z6?>(M?6Am7Yj` z2JJEGqzH`Ksb23fdio;gQ_bHcMeh5Xl-1;mT&6_sI^;=~xXY-L5=Ll^?~=&&hD9Yg zmn3B4?{Z&+BqsOj2p6y%FGYduU>gO8y1M&*=tSqUJgvO(-^ka*IvYpKtP}H{wxW%s8@Vwq2 zP~Hkib#ZNBW;TirnVC2|M{e_6Bc79`9}8F@08x_9z2Oo)a3^bkW(4#JR?%%%UiciV`~l1AWaS#w`Bw2)4_WC4tavA@WTFLFgH>tN!qg1BGfHuyU7L$*-+a zj@xXt3)jOM@O)%dnD!bHU)0GuQCd{7>OT!n;!OV+3>=?(j+Oe_>KJZdTW+_iNGq~m zwaMzV*-9EUacM~9CK$2VD%@&C7g}w0Y`o(Vql0BUcHG7{R~U7sv2XIm16LYX2aLp= zjaRHP{%#pl&)+!5HD1(>ITvp1e3S9AX}HTb9%wN>EilkXK7Pb_vA`aG%)q0k3_a@D zfulEG{f05va62~WSvlh;9y#U6kzFQeQoZyCjHhK(ORaQq0x{K;F!)uugew9j(- zn?~F{?OkK3d(s<5mV4`)M#A0yuCdvkx?sWVQ|3*XH-Cov!zV`m##i1mj@GlL&7L=9 z{^?WZ&OG@nx99_;TK9p`h)3Icxr$ne#SY@v*Vi za65ls#5PX&)Hua->pwLLHa`8i@okm+K*0Rem=JR>x6CPe2lrdc>{QfM0l-vu!apXy z#lF*R44U`q6&pVenmu&A!p#kvj{c0hDr~0pr2BZ-tS`F#S~PN8&+vauqq(7uO)(9w z9x)4?rRcipI#&K@G*33PsJ2znk5Tltie86aiZ1kLe05Ot(=+JZ6#WrJU#a-}D*6zt z4B+aZtpb6rqgBKQSX80w)`0w-qUihFXUX0VkC5cu@<&^wqR;Fr3707P<%)holO&vm zFkPz^eZ?plK2p)wD!PG(BVC@ok1G1LlJ01ASX7|v4Hfa!a2dW`{%HSD^vNS6q1KSU zKPmc)qh)w5!gNItPY!P!Bf~GsAFWc+_bK`xOh+yoRm9I@C8v7Xs~rWpuH|SIw22v4 z1^>r40z5(E+*lS)W7vPZI|#qdKD7YposIgW;>&542{)?ruPgdXimrwz+TRrYj;WFn z&sVpjllD1U8x`@RN^rt7Nf6S0eB(k2I(53Fw^#fHihiAPc8_|H3A5{_3HKS|MVRPtqGMg=)nMO?7Z9h7Z$(wDer zWShes?`xkWVJYW1#g=*U3>^|ChA^Dao{wa!{c}f;-c&7{;ev(%oOd1O_j_$-Yi@3|3mR-o(lJqqGz5ss0CH$G>S{y z0q$5{`6|LYy58$|%R#4%XPyDs$oz$xcc|kMC1;@G&pd{c4oaYWdxu-1;Bmo$%_>3W z@u7P40jJjANH2y_s$Tf zPaKj#nP;vyEBfJQ!B=V8JQb078vgl;KITLBPce*byyaUV^=Y>vp2jER+#h1_v$q27 z`S~FgJYjiL|4#t zAGuzr=$VN54vL<+L%^#;3eZ0oUzU|uf0ZC}*TT_?p1FZyilR?WyC=laElzS*#LaV! zu47!ItvS4r24%R=7Wtx0;4zq=xeoNZq8rD!=eIRGC2B8}{7v#l>mO0+zH^^LyfNrA z_s6#8iO=e`FLz);^uzxI`+$H;s!4((()?BpSh0TRnaq- z+J=Enj#1w#aos{QxAU{M6#BmM#>pyi=6dyZsy0TpHlc(2w?ea1V+k(%z{KF#Pu@BqH-9X>z)a=QJJqnA5-y%V;nT?B}LB!=e)1z7awrH zg}j9KRT!@{gHfq($FXkbVz{>Vm(qA|vM@x&XReAJ4Lap{gS)C2*~o-L(x=!d8`ygE z9K<@Au%(SEK66F-4Mm@zCWE!gm7gklCYb(PMbBJ&JqS8g+h2nZGd1!gT{k6pG)HxGIal49tcbhcw9%bu;ihk*N?g^#lFyrH( zduJ(pkhxG9&XMvnk)Z{Oo{0&pQuIvhUN=S0go=z*boCa@(Y)7SQ&mLfo9YFilRs9f zdh9(QuT=b*YsI%J`nLA6HqBHHSg+`Z12{1Kc}hiO!m2(|^f~HrKnLg0MV}L+639dX z{;cT#wnYgR6MyFNX_V+Ch{$|TJp_UTa=gTyU2fKQ&U}ektK=osn#3$=mexms=$XKj>58s)a}B{Fi@fHmh|Fzn z7b`-DSGB>oUcI7HU9naMW<`!qJL<Yo{4YXspy%nA%0Qx%r~utm@84n4u`b5`zprKXKoERRnap629Ba%{Hzq)?Lfo*ZP^AY;OUS z2Dtsr?vb6xNWPsL2lh8F)%9`is{t7{Cx?})TJ2)}ktAGsidZ>5atZI=BXZhj-~ delta 77109 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 diff --git a/progs/other.onyx b/progs/other.onyx index db004617..7bab1efb 100644 --- a/progs/other.onyx +++ b/progs/other.onyx @@ -14,7 +14,7 @@ export fib :: proc (n: i32) -> i32 { count := n; while count >= 0 { - count = count - 1; + count -= 1; c :: a + b; b = a; @@ -31,8 +31,8 @@ export factorial :: proc (n: i32) -> i32 { i := 2; while i <= n { - f = f * i; - i = i + 1; + f *= i; + i += 1; } return f; diff --git a/progs/test.onyx b/progs/test.onyx index 6a227be4..4f0c08ef 100644 --- a/progs/test.onyx +++ b/progs/test.onyx @@ -17,14 +17,14 @@ export main2 :: proc { while i < 10 { res :: fib(i); print_i32(res); - i = i + 1; + i += 1; } i = 0; while i < 10 { res :: factorial(i); print_i32(res); - i = i + 1; + i += 1; } x : i32; @@ -34,17 +34,17 @@ export main2 :: proc { x = 0; while x < 5 { if x == 3 { - x = x + 1; + x += 1; continue; } print_i32((x + y * 5) % 10); - x = x + 1; + x += 1; } if y > 2 { break; } - y = y + 1; + y += 1; } } diff --git a/src/onyxlex.c b/src/onyxlex.c index b16d9736..a280e6a4 100644 --- a/src/onyxlex.c +++ b/src/onyxlex.c @@ -51,6 +51,11 @@ static const char* token_type_names[] = { "!", // "TOKEN_TYPE_SYM_BANG", "^", // "TOKEN_TYPE_SYM_CARET", "&", // "TOKEN_TYPE_SYM_AMPERSAND", + "+=", // "TOKEN_TYPE_SYM_PLUS_EQUAL", + "-=", // "TOKEN_TYPE_SYM_MINUS_EQUAL", + "*=", // "TOKEN_TYPE_SYM_STAR_EQUAL", + "/=", // "TOKEN_TYPE_SYM_FSLASH_EQUAL", + "%=", // "TOKEN_TYPE_SYM_PERCENT_EQUAL", "TOKEN_TYPE_SYMBOL", "TOKEN_TYPE_LITERAL_STRING", @@ -160,6 +165,11 @@ OnyxToken* onyx_get_token(OnyxTokenizer* tokenizer) { LITERAL_TOKEN(">=", 0, TOKEN_TYPE_SYM_GREATER_EQUAL); LITERAL_TOKEN("==", 0, TOKEN_TYPE_SYM_EQUAL_EQUAL); LITERAL_TOKEN("!=", 0, TOKEN_TYPE_SYM_NOT_EQUAL); + LITERAL_TOKEN("+=", 0, TOKEN_TYPE_SYM_PLUS_EQUAL); + LITERAL_TOKEN("-=", 0, TOKEN_TYPE_SYM_MINUS_EQUAL); + LITERAL_TOKEN("*=", 0, TOKEN_TYPE_SYM_STAR_EQUAL); + LITERAL_TOKEN("/=", 0, TOKEN_TYPE_SYM_FSLASH_EQUAL); + LITERAL_TOKEN("%=", 0, TOKEN_TYPE_SYM_PERCENT_EQUAL); LITERAL_TOKEN("(", 0, TOKEN_TYPE_OPEN_PAREN); LITERAL_TOKEN(")", 0, TOKEN_TYPE_CLOSE_PAREN); LITERAL_TOKEN("{", 0, TOKEN_TYPE_OPEN_BRACE); diff --git a/src/onyxparser.c b/src/onyxparser.c index 3bc38e8d..55d84acb 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -499,6 +499,43 @@ static b32 parse_symbol_statement(OnyxParser* parser, AstNode** ret) { return 1; } + case TOKEN_TYPE_SYM_PLUS_EQUAL: + case TOKEN_TYPE_SYM_MINUS_EQUAL: + case TOKEN_TYPE_SYM_STAR_EQUAL: + case TOKEN_TYPE_SYM_FSLASH_EQUAL: + case TOKEN_TYPE_SYM_PERCENT_EQUAL: + { + OnyxBinaryOp bin_op; + if (parser->curr_token->type == TOKEN_TYPE_SYM_PLUS_EQUAL) bin_op = ONYX_BINARY_OP_ADD; + else if (parser->curr_token->type == TOKEN_TYPE_SYM_MINUS_EQUAL) bin_op = ONYX_BINARY_OP_MINUS; + else if (parser->curr_token->type == TOKEN_TYPE_SYM_STAR_EQUAL) bin_op = ONYX_BINARY_OP_MULTIPLY; + else if (parser->curr_token->type == TOKEN_TYPE_SYM_FSLASH_EQUAL) bin_op = ONYX_BINARY_OP_DIVIDE; + else if (parser->curr_token->type == TOKEN_TYPE_SYM_PERCENT_EQUAL) bin_op = ONYX_BINARY_OP_MODULUS; + + parser_next_token(parser); + + AstNodeTyped* expr = parse_expression(parser); + + AstNodeBinOp* bin_op_node = make_node(AstNodeBinOp, AST_NODE_KIND_BIN_OP); + bin_op_node->operation = bin_op; + + AstNode* bin_op_left = make_node(AstNode, AST_NODE_KIND_SYMBOL); + bin_op_left->token = symbol; + bin_op_node->left = (AstNodeTyped *) bin_op_left; + bin_op_node->right = expr; + + AstNodeAssign* assign_node = make_node(AstNodeAssign, AST_NODE_KIND_ASSIGNMENT); + + AstNode* lval = make_node(AstNode, AST_NODE_KIND_SYMBOL); + lval->token = symbol; + assign_node->lval = (AstNodeTyped *) lval; + assign_node->expr = (AstNodeTyped *) bin_op_node; + + *ret = (AstNode *) assign_node; + + return 1; + } + default: parser_prev_token(parser); } -- 2.25.1