From 37ae3280e80faa84944e30ed56b4b3966a0e1e3a Mon Sep 17 00:00:00 2001 From: JGZ_YES Date: Thu, 23 Jul 2026 15:43:44 +0800 Subject: [PATCH] Add new features: ternary operator, file IO, string ops, math functions, array ops, system functions --- README.md | 10 +- bin/oraset.exe | Bin 110619 -> 118580 bytes src/main.c | 282 +++++++++++++++++- test_io.txt | 1 + test_new.ora | 72 +++++ website/download/exe/Oraset-B-5.exe | Bin 110619 -> 118580 bytes .../source/Oraset-B-5-source/src/main.c | 282 +++++++++++++++++- 7 files changed, 639 insertions(+), 8 deletions(-) create mode 100644 test_io.txt create mode 100644 test_new.ora diff --git a/README.md b/README.md index bd6a796..c2b45df 100644 --- a/README.md +++ b/README.md @@ -28,12 +28,14 @@ A modern, C++-style scripting language designed for ease of use and powerful fun - Logical: `&&`, `||`, `!` - Compound: `+=`, `-=`, `*=`, `/=`, `%=` - Increment/Decrement: `++`, `--` +- Ternary: `condition ? true_value : false_value` ### Built-in Functions -- **Mathematical**: `abs`, `sqrt`, `sin`, `cos`, `tan`, `pow`, `log`, `floor`, `ceil`, `round` -- **String**: `strcmp`, `strcpy`, `strcat`, `sizeof` -- **Array**: `arrlen`, `memcpy`, `memcmp`, `malloc` -- **Utility**: `echo`, `input`, `time`, `random`, `exit`, `assert` +- **Mathematical**: `abs`, `sqrt`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`, `pow`, `log`, `log10`, `exp`, `floor`, `ceil`, `round` +- **String**: `strcmp`, `strcpy`, `strcat`, `strlen`, `strchr`, `strstr`, `tolower`, `toupper`, `sizeof` +- **Array**: `arrlen`, `memcpy`, `memcmp`, `malloc`, `push`, `pop`, `insert`, `remove` +- **File IO**: `fopen`, `fclose`, `fread`, `fwrite`, `fgets`, `fputs` +- **System**: `echo`, `input`, `time`, `random`, `exit`, `assert`, `system`, `getenv`, `sleep` ## Getting Started diff --git a/bin/oraset.exe b/bin/oraset.exe index 8d8db0dbfbef352891e4e0a89985e4421ba0e6f2..86b6068df715e21703206d7fea2ce3db25bd58d3 100644 GIT binary patch literal 118580 zcmeFa3wTu3**3f!M zIF81u^<1IYw;rpu3K36%AOY(k0xB^EP_gcD5V86~Ak_Kpd#$zi?8(8}zyI}p*MI#V zn%R3lYprKJr}eC79roJOuB+C%Xqx84Up%g9HMsI$p7{Oop9&=RI(t(u?ZuPcIj6=k z^__EOF7TGS7nPOHFUw!(o|j)zQtETxSm-YEm$++aXLpZ6J$j6#6>>&AIZ?B`4 zgmv<7n6GfD4{7O7@dtn8)nWqo_~+KNxx)(befhZ0!=K1xp z-he+6^%wlv{^bG9@R1U*rw^`&@pmfz-jXo$HxK!S-B@1E=e6I?cWCJyGg85Ny|P{* z!*s~L7YgmipY2~B@%f4cJ{RF`lOQC-^8VE}aL)DRanP>y0bvwEfG|vqkQ(qa@eczBouNI4^%rtIjwc;ewf?>Jliy}_>jvUE(Bja8 zA0nT4s;bq4Osh|IrjOUiYk2nCRZV*EPt0F?AWy5R^<~vh@(82C)k&jL@Q&S>Q7E-Gi)7&*7)? zw0NHkC<4M>KbPg8Qs(auT*k|fYFbfcE*hma?YjEZ9Fv~Z(bnBab?2YHE(h5vYnYj? zI#SI${}_Gagv_Gc9?;fd@PfM(f4{({AV}`DI4iuV1vlAERdM}3%X*Z3g-1;R?oeML z?<0B@n*^w%K#U4V!l+wM1zgWe>BgVM!zB6e>0KHWuCMt7c>}rb+B^-_&qc{VZYCb$ zdT;`fL3F#n%p=kUT#WO8REnq!sq01%*W?3{$p>Hr>Fb8zk-`-Q0wu6CEd-@$AI8Ez zu+F8$;Zb~yIA5Y#LjDFS<^^J&yc;$+Eu70jRYz8y7d?Rtk;Pib=W&HI9t+etkTo>Z z<22p^FJopm_$G&)kFoeuKpk1+2#xd@^MNTmZFk7|AR5G*sGA0Dys!=)1`jEGC_w4x zz8_$8vbnyN=mHcc zi}8nm-0A6#EXL<+#r@g5{|NWSAHYA`1MLBt(W2{G<8k$jM=g3cpW%Fh5I@)gzunfM0_51d{=0>$3=$cLKxJ+v%eQwWrp~!@Jvq@?H&oj;^)HA zfFYTP8`=R~uW{O1w8SZr!ES-AX>hUB3<);=_JC+Vri@5VM!4?*@L1UzhxM$S=KYR5 zv1Q#xwj#GV@e86{@ovD6rbfaF(4np)6WeaCZur<`#7N z$kR+uI!H`2zNaaRGTA$3xzM(emsVaCs4<_4Rt7sjj2d_=hH2top z@mtY)F2V<(s%RacS6$Qv@C{cxA~!fHjt|g-kELo_aHk%;AJ<5+C;fHS87hYCj6sKD zBK}#E9(oI=$6TY3OB5S|n?S82@~TG%ag2CYqMOh+{L&H0=~{98djDHNL>8Zs#G4!y z$4c~I52oK02c+T{>OBNHDvn*RSDhsYnvt?iyFL_)-5;#=of?qL>ll-d{J4^5h1l_EvQ(zuJ1Y`95p$~Hg`#;q;q~r|u8~TRpNL6$h z5@dW7hO|IEM6_*EPCA?ayR_dw!k34>s(}WyNV&u44`QR^QK;fr8KfcD_vuwXHHcwDq830!2{wZ7Xc-2RycC?;DexX(*@*#V<+R+#Bm`AY>VSbQS=-=xF5V! zwD#A7|08a4^x*4MMeF%`@LX{-RIfVD8-ac{?u0!K)q`x1Ipg%;nYeDch*ffUY8*X= zD!0NMimGWIYg`b~5^`Zabf+n`F4wDuv&I#U<$CaTQk_KzP?EtKV?EM4C)F4UsGUW?8o{sG4+p_ZIEzCGI}WkH}j*zTHWgt6Wz z6m~Z6{~XZ(n#etGD`Oa`_yvqWTKNF*@tpP49Z!sbWLi%= z-IMgx4@M)?;2ff-Sx*|CPO_eer4_PaLwtihVzeAjApRmf_)ik|RSjgM8S7g>%InZ& zMe8`d>S_v5sAH^@Ae6vS?WU2G;F&B?#sU|k9^oHkW(0)VrU}e~o>?<4XO=8vK`PYG zVeFq=mGyIxghpWu zx*wqf`<~EOA(0=xBXntA%|tR$OjN5`!)atJN7Zl@!HWn!!iwDrJdWUN3I2}YvlMs$ z!4n8ROmJTXPAB+$fJJl2_4#tn_g%YbH0$APjdA!0(qDr#Hl0k^5LK*^;O`;aO}z*n zq`+GUZYDU+N<0euG{M^l?!nvx75H9)pCkALbDyWcw-WpSz|^Z(VlcZxTc8)4`3BmcqmcguJ6?izoml0d*VBf%s*5UA~G`H4%{u@OF!#3qH|G7k+ z!p!f{Kw0(qn{t?P8dHq_LCQ-=+2kT@fWrPh!3QD3O(_KTQ{YVme*kbGhAOXK(o^5i z6!$!;?aUM7G#RE`h7yLxoU@5{1QDFVx|S363&JK5HkhylgpDF>Fky^bjG2U;L)Z|) zID2K}5!REiVTAQ2YzSe;sQR-A+Gn?l$m!nPB3A7KLt(+PW#uu8(*gk40~TEZ3rCM2A(X&h5BnQ|LbW-xau zVT{n&yh;ha9eOFU+9L)FiAb0Yi&3x@0wdr{hXXaD|sk;RhK(kGbCC!lg$MGm{>P&)XodJ!D}MBY;`aAHK8VoZq&?D^a%NF9X51E8Le+HezDN zy_tcSW9fB>$J4yuF>;P&+TsLF6`jyuIMJGTx5d#uyucvXkXwP$I{W>rm5&JE9-p!eWeyV8F3?^l`+Bs z@whJ?v^p^iHvWFMpy0E>R#&Knqqa8?2gGBC6ZD(-E8LeQPQD!|`}k(^A)%->1VaR*I1$(v~sp zMx-?d_cHE}6hip3#W;}TC9@5ATWGa`H)yq(8v7P@UUNT-Uixi3E(|-eH13Tv6Plaz zc_dZVi@~!~Og|cNcFv<{8e;UOx=HU|+Ck*$TEY?5oCH4WC+DFNY2jS9qS*X|{sYHR z^Fv6g*~^;W0nsv3j{1J0~5*|WoOE>+l z9^l4XFPdew7$zU@>ANvJEf2%laNu}vJ-CULzRyapu_{e2;LxjzV6NVe1eUf9xZV*G z+(c&~kLBOO)yeHV@+&n^4%E0X0Pm#-pJKheccb3@-sRL?7yrrmEKGIjK`!|) z?hXMQXgNg>?h-dJ!rrWGB*~j%Rc4WA+Mk>=p%Dt?rX6+_wZjhkqIN4OB=fZBE3ftL zl42B=$ZB_sYIUC<9-yM;CRY3Y*QQjI7*ffpL&^_DIO{2`0R5EdAE4JMEbKdI7LMJ+ zc??9T5=%&^A|ZjQAD~#76s}0tDn>IRb96bhs>VGX=8Vj6g!ah!pU|!-XA3NPI3$ua zuA;ri?l8wsoz*o&+F3h$Ht|G1!}uV%?RoCI-U-scCrKM6EEq$8U$>nMome1H+r{{m^cB zy?rZ1E5JmfCXMcTt4{AW(OOfMnmGN_QE1UdnGw-)xFI`_+K29SyOk&u4qnl9BvUk~^W{Td@dss;Db>;8I)8B2Tu#QH}{uHyNN0>cMIm^FR+{KHEOa*u(Pf0{(M_fy;?UPLL($$^ z;VltPN1hPzR388_eCwQ%W1oc+(7rc&Z&ucB{f}A_$@4MT`AIsbLBQweTg@4yc|GWuq z5%|Mx!;)IZdU}xPKUDhdqI_cB-%Nj6rpx%dBl8u0=>!dH^q2qId{6QDr4{x-W;tyl zhYI5op>Qv0cPb9a~cO1p|nRIbdL>H_+C(sF?l%hzWmz0mN>r z{dLO!QaT98r!)DDk?EcDU&e;zVU?r*-ZB4H8ysM@!Jfz(?kgH02TJ;yE=ck=3G)|? zT@7i@FzsKAo0u%x;Rj|r#MtSnpb*R6a32l@y<5Z}kIOE6tgpz#kdFWAD>&qvGsm~E zzTyDx7R@R5)mIp}EA!98-9e_76_(dm9LAl$*oP9|<4%@svF=V-cbbLSY2CT3yEN-A z-MY)L?#{ICION2vtQM*n>BTaS)F%9GXZE^H`RmT~6_V*#-xbD+;4edtUoa(?X^mm} zP!ktYX@LW#(#$c8^0{IJW2tT{NR)v!Hk(y{cE-2@9vf1NUprPF>f z^S6zv7!&i&V+0z)dVGA9P}S#wuN`Azx1JyR%3H@QgFg1|MYBO#!Gsti2r`TrwmPU6=^6lNK;f14n^ZMXrfUMumgo4vT9wA7bw8 z#r`xoD?T( zK!$8Ax58E~hCq28i}gs&!>=Cvibe6KMSG)YLS7eK3(!9yoHqP-zZCh=j5QJYC-P6g zXgT^$`}|K`g{&{Nho{U0{L%LCP19lDTcTA+vGZZvI7KSH(8kPJU?zGka$5b3MGxeZ zK|^~Q0kqgJ6#NB<7QQK9q{yiYIi?T`=An9wI`4cJC9-#573p-dy#Zh4X5mj-_26?z zj#LUC!3i{Mi^OLTDQWjNM5PaO_mOzLb2w^ZAr)>9v(?C*Nwx_5&%i&=$FAA@GWjg&y=m z;H(R7d!UhKd=sIfWgO&T0Zoy=077$nB`MCc#U7Elkc2VfRA zHX}(|`l|p5J|frrAgo&sRzuq&uW*z?MWn*vp>rF!N%Wj&SoG4~MJO}oJ1qP{bm%}t zH%jSlyalA;2A2L2I$vqxZ;b=6FU^rj2*BMm?W(3vo*W3#G(X5+y=ns%AEGlsvGEY{ zOI0$zG-=SQH9yRp(Q_qNTGH0f0>SmTQR4$UI+AR8-9jnn5FfeP2q z<{Gx^LEE7Q7p*Tf<7BKwK;OortPHuMzeHgut3TPwBwO6&8N>oWhl-;5|7xmg42r%Y z80!uA9B)Xpb0 zg1ZO!tC-fSP9c*opw|PP14!p01j|zV&zN+Eb8BIYktsiTcQD3?ydVb10;uVC-i5;L zQ~yA7~7Gmdk-=knEH&f806?SaYFNJ=$pt;S) z^zE4CP&y`fR(=5N!k@0)W4eo{Wt~oVR1oVnZbJ(BX@)UG85yHUA2ZQwPdr1mLwBR` z$;2tmv!+{@Rv>7=toak;{eNqx{2*p?Tm7K(y%Vx5>>b3@eBBgp z1CemrTp+)l{(8(S8me4zZB^X&Fe$UU<-dKd=!jKNTF}c)NqYGjYo;tSzKve)K{=t9 zw^fGa$N)elSmkQ3ptA&-SeU`9QmSzs3kJBdpysl!_heB>M7EyV6e=AP;3C6{b7Y4t z=bSZPZ-LdoDkgKITlepz|B;h=g5hW`$T3xOIW&O~ybS@39Il{vv^TRhN~=K(bgt~| z*ka|l2-BD^`9YX)p1yP%3Em!nk$f19(hs3#Y>ylfLf;J@jBgQ<8_$fE%D(~9Xk6|Y z2CmtU=^H0`hE=?sR)j)B8jC$cnkegH&oIi|xD*s2V+JxBF&WppQEL`j;uXSyTn(&V zkijk(q`OtCi3EGtx=g)lJOtB*TOqJ7&9QbXD)9i6?0?}yCPUDhtsgLM4 z2--zFY{o~wsu}5qA6)KnVG%ICM7>2}q?UvG^mEblKw&4g|LD33jdQRt)3 z)`QP7mH_;11)rwi)4EFd`wBiv!Tk#Ufr9sKgQro!Qx*J8mA_fRzXn6BccFqGQ1A~F z{Ev#B^gWW!*A)C&xB=2RPQm{Oxa=b8RLZp~C2XaPN8iXYYgEc_6fPh34-lOSMbV8ns6#P#L{;7hOK|`eHX$9Y* z;CCqa^9ud~;F9Mh3RAsGx!){-22V__3cgaoxA&89tx-yKzJhnd77^wjs^FI^_+AAc zso)m^E^EF)rHoZ6eXSIyE^$pzDP0tJbQuU7D|;>^<|Ev8h#Zv&PWcd$QBcj)x-q zktidD*tH@AsK+MRJP=K$uNTVFAqE*?jF3@Ajm);O<0R zpx=25_&{uMKV@Q%4W4VlOjo7w|HiIt^rerIEaqZo4KaHKF#>>r( zm`CF*T4a999NYS^5$+VvcneQ6WV9ZP*ij_L;T(M$TR#?&Zq*$Oww#`W@aKm1E=V|J zFH}@*oY`r8?*oOToAs4yNd`@@N&G4WZfd}K3}i~oH>?xO#n-6iV!2G*)?lsy z0c-{f1PwGCDT?S0jD?f+{0iR?Fh0Tv0`|8Mpizp-f-(A`pxP z@A)8LGjdQjvfvp25~!g+M{wqfR2>FEQbWvmCNk1DG-I}r`IZ1_SZI!^kKTj{t6(aN z$QCEZ=2tW5Z;G8#RE>d@9Knt`ss}FySkC4U(=zs!z;Oj|U>y4aU~;}pV2|7*M&217 zZ=4Mmq&bbtS=(wcJyyS3Ob3Dd#zSKFbh6xx$3IGHADI-z{8cSUkd-QT=Kz9+hLwsD8D%+=Qk2`qf-X;=lUU)=JW9Yb9y5 zwUV@2!&pe>vsRK;yDXTslC;`dNm^~KB(1hql9IGUwM146O+k~-c{|ikNNk>r&cm!g zwJ>2y(&j-UW^*ydeTY|Mxlv823U&;w9Yg%*{ z8mEytq%#%2`+=$A#@7zPhV_kAyoiBH)j`}fKFi-G;hh?vWtwWLXB`LPH_q=2vEM=* z{r(to-q&f)Us^enNjUIb#oNxJP?aI55WgoR1<^kc3#;*iM@oQq7 z4vg>yH?oy%s>h^CZ?q9(|KQHp`<+z<-Qhr}J=&8*{W+fPT zK*$ufF6C{3`c1U1=wDh;b_U8OONgV%PL$LZ{oi+)lMP~4`fD@-Im32xl7ISuZ3wox zfvps^Z!8k6v`M-k>Gh=JVILe?EvI_*J6D6iNYgfUjei!R0_ltHI{@kJdzRfvQg7-53a?lq z4U4Gi$Cj$|%hXaey^UC^7T!iIRg;(heM{9sz-xqncdT$nGTveJsgy0n!3T`s`KGGT z9U_Qa;%Gc1=Rf|b=F#4T4k0D>c*d9StBE_gjT`eO_Vpm_=GND2Kt^vXeK6h#!XEB# zM6}q7==2e!M1)^v9LgHk76`N0BWEis>)8{@<%txz)f)BwolU89YkTd@0xeCexji`g z@&CXaZo$-R!W`^PCL1|{iIOlrXpj?|`FN76ziq9e3vxFelIF87+PvrH6koSSBf1!M zU{4+Jbi=T&?efpNbtq&+uOJ~8ylHm(ZBajg%EO}=PY2AI-+Iu&t}dzh`~|@FU0vBc z*}X@zX#H<1k=Pgw)ftzd2IGbH(hAiZ=OalhNT59q04jUz7=7UTcsx5U!ak!6#bqMt zx8XO8_kewdNbbn@>_BoG_Eh|m%pUiTwP)|18zpn5Q>389xF31wPnPhS zw0IywNF<4DbCK-*h=$jAsD70h-$c&`lVpk8C`^m)1Db!lEBy|G0o9eF=26Hm$F-}` zc*5PpPRF^p4YZ_S-KQ(6OkH~*Pm5lH8M1cz7vqYAY3aA~WnjIEi@6{u3x;I`Hw#PZ zhT_H(9=l1~I(p*UZ>}PUDpLrQ& zMIK}*6^c;flznV2_!dtrcaaOMV~+oal{-{K0rg#smd1F>#Be_`z@ejghcNMcA5j^9 z10LkC=^74RsP6^VATl)`+P3O))S%T*$fE;N0nm+@Oq4HY69H?psuI1CGMXIp7eLjf z5@jP(kwSKc@VZ5=Lp7j!S2)R(`VhgTqVmWJY>a2)MF+J1TX1mFdH+UF8t!n&`@6SI zu`7?T;ySso*pm)Ht|uP#T>`0*L(!ey$BxM;oI@G$7SZo6*{|Aq)W?LwZ_@7^1wuD} z-X;1hd`7Z@OoS1k9ibP2`DYep2t7rEbRL>M5Jm!IdyffZvTM$+W#>$Vv15Mc2KeFE zk)H4zzk)fN&Fs&Avo$lDOR?U=Fz!GOl2n!`CEv*~$~r4+MZ43H!{FS5Yz(rsb{c}x z`ebtmzr=giYHwR9z($rX;}zCYZ{*>wDlWwxs`I4=E>6LF{X+U+a1ER7JFh{JQXfso zFgC?E(aP`#W_ZTR5F0e+es){>oez8ykB_-W-rs@y=HM>A)zbXPN4(&5<}v?Rz6;h? zhO|I^I*GbNT1GtDh1%&jS^-~K#i$MveG@QYcQJv6`%_256SS7=Pb$~PhNC~j5E zCEhehQsabK$)*VhF)Y>80OZvI`7{GsV#FPk{yg39xY@Bu-9X$P0s7@)*6G=qerIKRmbtP!9`=sciC@ML*(@N?Q8%wEhIDZmYj*erAeP?t=)_qAO z_MyIL8cTd#!xm#&u-!!Gp@bEwi6A%fknqXE3MdybH-`G*CzS~?Qk$qebh}8+EE0Ll z7N(*2U=(koAQhmcBPAveWLl2HBi2m3Tz`GybS!HJYyD9Mb5YBWcN*hJruVdeztebaKin$ovv(SYYk}=dVC&cyzK`Ue!nAGjQ@U@u zm;)%xJ#7dYN6QzWFZ&oh_^p5CsFMyI9YtF95ok?Jgo#c9#ZqS?lx2^9YJ~J=nlDI2J?T-{U5GM|~I3 z>xCKHh6DVS0^*KM5%4xYBAA0qzYk;@ulF%4r0nfg`A}73>Ju1JcOc@uJKD}L?-L4C z5r7O&cy1gI<7_-MBRUY3RlY)c*p2FU&W%eMX&AvHl&_)aQ~rVo`cfpYr2r_x>aSk_ z@Js-W8PH4{BGLQ2!-yJsd2NQ-W3X*)(H#8;D+X5Xl4TXb(hYMg=%-&(d*>B*;?lD@~SE&wUei85wEVve0pJ z*n)CWSL_6bpmcN$OMHAvXCZZ_+1b~ z^qEglc3Ki@yTNryBIYWVxEUo>m~>GSEM)(4ut}_c0Zg&kUDKPdcGAGC@xyxLFy8I` zAGjtvwO0WfmGmgD?cK=FL1|SS=O_r9U&-?o;vhB|Vd11g4Umc9XbuWr1(%hnWFpO*q4y&~dX0yqSBq|k$+b0! zzihHe$)>x+5T_bB5>t#j@g&GU2|a=yWataEeL}U(f7Vo6WIBd#@2FR&?vV1;TMrFN-M02p-G*w0y_p)DzIjWkLeSj7d!jrL6H_f5bDH?Xd%7=?i zvyF2y=3oRsP5)`KrtSSyT7%R{^xbC2!Ra}j?R4}raN0bbHBdvBkD=`wc!>TPKh2j; zk)tsgnLdD0a$VHiFCkBL#@@urgF~Qo_1?WWaWgEA+r)&g@7H4bcP&t($}}?PM|8_r zW+A$l#CusdbIy7(3o~u0+zu?JI$wvFu=R5wihmD^1#H#R^e$@E);cygEKcmi%D6hI z!h9bbC1;Y?sVLPEkvQvvom|JSu}{Q1f8525dNYJcNQ024Yy^&{>A??REJEj)sS6y( z*5zk7j5vP2UX_L$aC&D?a=M2zHI;Q0nRuJI7`WxiV-2`Ij@s^Tkt83snoW8)=jY$|xMKM-+tEl`&?=D2Sds?35hq1Fr`|L&j< z1u{V4$4wx|)P%GT<_0lOo7&p_BwBYZXUOZtd$B)&%p`GS%5vg;SW6yzkjs?EL%*OP z{d?`w!0`z;5s?s3a|O5WTVzQ3K|=*;z)`ctbkaa+f$S{mQoJ@N>%~iMYj~!j+!G$D z7AnfXeiG>CD~leT^k8b93v*!I=n9&Y3_c9hrN}qpj7*p~6{7Yep9>n`jK!YhbJdAd4L0JGO zqQ7tc1Rs)02|J8aP>L<+XHUJNiDEmETBq1Y+M0lS?4R8_$~j%LqmF!bnj;IE`mBV=xjas2aqdV z5subG<31JdB>)mQ-p6;PI1PD}vla%{g7Z*uwytQ5PR~WiVN@dorjyfPH4p$C0M3U~ zuHwEv%s=x@+DiZ<>Suk2Pg9*S)cZOU5YmPh1Z zYVOlZG0cBZ>C?Ce<*-4&yN;dt-Bl}a!TMcj1x{SM!(%v)a%ss4Z{m#32Enj5=tmxZ zP4P(W9{RjNv6l{OtfF5tG9sCasItZe-T*H@#i8= zjwb$&4qs4^9xae^wAs5lPRv*bc~*BIzdpY1uyS9j5L*ZGLItw_lkG~0YzDRC^aNV_ z_6 zTI}f+MsngQv?ZM8+4b43mO$%RebN^Ai6*BfT1;^z(<}T-x-kJMQd;5=7I}ieg}$yZ zE##Mn3v}=nJ|rP}Xd~s{CGb3WE~iIS3Cd&zX06qzRoI!;J~E9fIwEk4ucy$XDgVyt zg!xE9uZ1Q>t-{V-s)RV(FwlCTZ#G)Q4v6_wedA2esTJ>HR}{KJ2sQ&PnJxNM^oXvQ zOSOYWd&nv>{j{lU*~Tf4V(PkPYUi z8*GnG?P0XfZV$pO3A3E)#Fj)rlK7*0IFRIePFM zbUmH=O^V;NY(sJ)x|WOlqZ^G_$lCAP)_>T`J#Q=bmVY}2KL15Q3%mZYa!XaYZ=3fl zehb@)GEvI3?;k6drzE~(A4^uFB#)Z<*Y&v)_35jwMrA1ZI7_14|5$wuv`Y9KQJ=ml zOP2gKN+$fd)qY(D&o^)9VEVRczv2XM^ou6H9k&m=l)qwMb_jIri|P;6>XYlJC;g!< z`s7{bG~n?2PJB#X-{bav)2t8l;>a99h4PCRfvxsY+F8DyW`H63YxBbr$>9lR2GE98 zd^R40N_$8gSwioQ0&8^+3Gdw?y0+5<$qZzIs(Y1QWZfO+0J* zk4)n)9jSYg=|4K^NzlnlcZb1UoCA!EPef!rnDGYWXp~}rV?0DNBkk#;L3Z{1xp_}4 zMMMLx9d*%LkZiLbsZXIwp7oWq>B|jtl0~_XF;b>ZFO#ETd|v||Vx?csZHRCllHfKY z$R<6qQOt2*_;6B=7$l`fCOWpQKAWp;VlqK0SjO}jz9n+K2Zga|VVl_Dtu;T!0o^)r z5=E_Vl&MBxPo!1DXc_U)g^+^bdlyl?F-&-Eg)AsNzAqiE(vPQ;+z0EJAkEr&X#loX8ET7>C!*rl>JJvVP-7WdGz3y zz=pTzsa>(#Ybriguxt$M3^$l0c;EXj$Lx}`u-FO{zMBFJi4#ubNf;Pk-T4@)+9n3h zV*j3_A(A29&W)Wa>oxtJd2J3%$2cssCs5}aw7vO}(R{*Q0wa1ARkm0&&V=h|-qTJ! zr}%n`W2T}p2nP8&)0KJdlUbjweWoWS%EICUJpn@x?8os3v#J(;tpf9WtrjD9B;E{Qn;Nv065AvtCZxN;nvceV+@*3-J!Kuoe zevAY?BiTr1dYsu!U`u}K2r~jle=ZV7Baz(h2Dj{}QD3A1#`*kxFwR^t2O|$|HotGA zSGnQMJ3WV49D`U==*f_}nm?L!RMWnP<}(EUYh^!r z2a-?*`vP(Pi-IkcFiI8XkY!v0xIC)@G8bQijQkf*kjRpAT=LMTa0Sm74j5^HmJv(3 z;gGqk<~%tC4;5fPmcW(CzQlovH!MqLgjz!%#rjktRm|tsJI3N@eKZ|dJQSV9l}l^) z1(PUGRfX)(bm~GFv_J3q_siv<7gBo-CdaxQ- z^C*ph8184`Iv5zTjPHLh{Rh9#!7Y8(5%o=XBjLzW*Vv6*Tf(%poG%tf)W3nW=HO8- ztlEXfPn=3W5RI@`69>$1!nW5H5jra<|sexio7G9)bLSVTk z3(G0*(F&ke?!lM^O$d#O^GSGC47lduDZ<%~0{J-bLmZ4^1|pe}yLp6tUslW-2bS;5sQTOk!&>go@8q8D~PhDVfq+3-OSk+RmQ$B zpL9G$OVIK|`|O)Erc_%dH56s3{m@Zn5a;HInf!jtGK%I9{am(A>{``~*P)rfD63Tyk9;GYrDd6jSq(dcl|D4IO$;<( zIQp7N=-=c~Jzz8|v@i0ISmEiF^u4+jB+HC<1`n6<4qntRm0zrDzK!D%Fk?0EJMl8F zveeJ97X?Y!qYZtbr~Orw>Lq{desN`#iT;z7Us)75;%5>e?)AYEv_-?3*Sy{gzC6EK$hS$^8311 z?eKpZIxLn+`qHu}Z2Lh)FJR>ST@0JwFuf?bZ2HoG-!L*M+7`|Kd zN+7z5^KYHb&WOxV2)2;p`#=cFLv@XZ*xNk=0Hb0tr*Zo*kmc(a<@v&jf97dHi#BFh zH0rlS0g%I9H3?BEM2Am%HiRpaA{s7;^%2ebuP6ik89fqsR<8go`Urj!^Hav(!X0QO z%I`}Gd6~50^}k|C0^%4k$AYS45R)ox>lAqtBB?n^$CMSfBQuK*+QH}=%J;s@!H!8-@B3`w%7njYr5xC_6T%p6URKe4j zx)ocK-JtJ99HsAj&KSz+4r$4MK)eEbz`?q#%4|h#+XqM?|ALC>5oo!y1M;IoVBei4 z9z;pG8Xk*u=D*x@05c#Yv;)xzKmR*m6f%*Y%V2O5`6UA5@G6=Ry5LOdfbiiCe|9X_ z9*0`~XO*z8_oQ8IhQ|{Ar-cSq>;JU9fnkKAhN#)BUKpPm#(7B&6QYL&vByPsq9yDo2GM1px=qnjnEdlgEYAe0ZC_sg;T+)W9gNfrNis#9~1q; z^hYLN<`oVG{u!lhwFIG%RhlK9!Si$R|5ucCBGK^#Bc=6?3CM{@Wkn=2BUkFljT@=Y+UF3-_U| zNi0C3MJ70?MPY$zw8Od>eG9=$dy;m)^Q&aL|1IrawwOJ!!KOUgnEk27SkQxsEExOZ zd9rbATlsN<57Z^M@ZcuhyP&k(O;N;*5udb&)gmPvx8JBqg!JYG-*VlBHm!X&)o~OO42>%AN=SXf;zUsV-`kD7W}>zfMEiZ|L+ z{2VKO%6Jx28LIz%wB!D_A~`-YzdsY@BB$BC>UX+e9l|X}`T3?!mCkS8c92K~NYmk$ zzf7!ZizHSZWZKV=R*l6y)dkx=-i6MB+ZbhMG1#&VJs#`x^)$dscM z$Ie)CioRh-+!HaN1IylX%6&O?s9)bO!GQ=r)}Z2XS@H{f2K;2PAI9`gIo*BFs=RpX z?c2JFn;rB0uUFihlH;!dybG#(K4+ZonZTAVvEB*106z$DR>egn{(~q}=>I#)6#Mr} zdO@yMC+Z0tbaN&Ka|#}PLyzDN-^HOlkt>c?96w{pRJixJ=e~k{dHBwRNe}$Fz9Buh z)0bLtyu1Hf{OI>?K}H9b!d<}~{yJduaE2nV)g3+UY-`+Aaje{bpkgVA-&?U1#P7je zR7PkE2l4m-NfruM9P92o2N-(C&IBK3eT4SVH(W+xA@MMt^?NrD+5^#swmIGki35hy zjCamLNBd@E(g-o5yxJ|)ft9dOz3(d2R_xYlC};gkH@ofcaqzR!~mmc(eG0VIbov;PBgixbW{UPe^o zN|9G5E@HLn1ap95amBY6mKHG=QyBx9xjsZLoO#ZQPoeBEMj6)`XAF#agf zh3bu)aJS7lPLS~)#R1X+Thp-{GP<2gM4eNZSx$3)xeqelvm8UxTV=ae@STL$5`Hn@ zEOZJAnM(N+6Z}Xhs=lfw&8=yWg3Lgo{|5&^ZwFj+WlKd_!F@6YG` zA(ROZh<9}?Z{9$_BVdse}?;tSeAp z6ot~pg>yA1oZlIF77!}95Yu72iu31TaP`J1G}QJ6H&FQ>v%MK(F`3e#{pH|2Jdy#d zXX6_E2b5P-U2%&O(_5nxGm-i&nXn@)vtuh2Lj>-|pxsC?KAd42=Vj zC;1X`#eh-TZ*+v2&!n%$cdDitmt+cEIz2ywmO_ts3JCO~;&qQeR}eYY2!-f5E*AE! zuEH8o=Py}qlE)Ko2pr^gd^go~W~!iJ-CBtwLzN+}3gB#qYoI4C0QejV!ale>q-}Gah1XCXKmu~0Eoa4d(WgO1EWvwx)+9KU*kB4X zPbZ81lVfMe_JN_}HfLAOr|TPLc8#NZ@O@o@FUJ~aW^+l!N(hr}m?k~~Wr?GKZ3(RH zfjl9)PjE4Ocny|L8_(bJxd6}jAktFE3O?pEb&J&0PxFLaj0wnrTJiup53q<2C!G_) zBv0NFZ%F~JlS-GAv!W5h3YQjco8%d(89h;mRgWYVkmQG9QDe`hNVreIX9Eth(;_c= z_JacyapfS1MJwXwOvfjgT}}+p1CLr z%I`!DgG@q|VbO% zvm^|cEJ}+Cg&@?@H@Q5QoI^#Fno`RiAT#bH5t6nJDXU>-MV@STHse%O5`P;THQvQu zlD0o(Lsg*?$B1S}xi4eH~4=nE+3zUow3!NV@%AJm@y;C|5mF3nIeD>CBHyta%! z&y0UW#^?Yz`3|{_-O-tvqc2dr@L2R8)sz-wYr+;uKa6KQDiUK3|M!q!?K%i)K^aC<_-ZG|4cWC8!VN?lszXE`&ZuG` zOkN(2J)4}q&dtc6*4It#cdt(+faVkZ4f)HitxIAN-v@*UJb{)jKD?QRk4S9I+LC5P z_`EEVzYKp`h=;S8ajUxQbbWWJ(m@)yX>f*4YW$Jf0+RXm_VzR8%*QQ=rJ1FRfJ zy>bwQSGMvOodo*7E~qsHt)q5iMU+=5>qrDqbYh5iH2G*V+XVh@$k6o8OtTmG>3 z_LBn;{=u0jIXCQzT!B}TQkQfKXWiHG1tz}oGQ*3UnEsm5oX0mp@|yFwy(R_Z<7u=} z)f+dHJX6@*;46juItYA7bOW9TQgEAz+tIkD8~=nS4s4y7T|4UrDQC(@Aw*~8F-8I* z`APqKo<=_2Mgf&>WFif+<^YXy<|xHjj&Q*E2noub5ZS^64vq+qnodRI7$$CdTsIRB z**gNYY2oxSyUKcnmpZ%r$~9(}zA8XP;037Kj4|K(KVv5}7#)N>YVau1M9E0jhRvU+ z;CP><>0F6Hjgv708ty}^T`q;+J|hi#FvPcQ5r&G5N}w;^$0PbFZa@r%0T1)@J=0GF zK5O;4BGYRFpS|Hv52TV#M_}s+#Dq9!9Y(PUp@deG#{&4M4_+k!&lz3%va--GU7;CH z@Gtrb4Aq>W4AkQm^)PCAKHjILHzGc#r-A~6AdQFM8B7zv_YsdoPlKHcw!)J#1)lJw z)ag{SfENW&1-VIrtj^M41Y;)`w|sOm_Yec71NCO;tF$VW4XI4dH~Duia* zX2ZF8zteaGg2Uc4!8M@Vo^oDb|KauIu7-_vsA%pj-BvsiXz8Kf#d)1q2x3FftGdJT z!V|F;pjUCTaCo8%4M?w=4{)F^t+JIl^}w&eVaWfsm{;i%p5Y4L;*4N=7)UDk8`;R; z(B$3vhApAV4HbO9b`r1!THN^lF^CGZxb&)Hfan`mGi&8%`vDEsE=%pH0rjBm;c2@a z+e4ENz{6zZ#*wDq)hx;e`oa_a&3We_Oh(D5*7Md_;9Ko|DE zy^cl@?n^y_wL71J#FafuBa1jUM4YR_=@=280UT*CeOGw87^lY5kZ|?|7MJL z7sHs+k&2e?!fjf3asv#+MO3u1ktgIlkiOAYwx~*o3^Gd+S+882wyv%GbFPL#|MEXU zSeKwQg_Qytqwm`74T*zPBAbQi=Y*dmTc*BmhO9&W-4Jti_?OObmq48>@&XmtrBZ78 z0MLAfAt37@8WHcKr`&+`a*3pDTiCx_s3GbTVrZzJd;mG=d_F-d5KLaqQ6#tp>}q3qVX-X;ymFC`5`)NXvgy;JP*Wu2E0c)TXI9J zr_wtQg2Pd8TXPZ}rs?mU>sbNmh@J}ilL?UhmHSAZGsQnEtmWRLY4ASeWXbip7^dQ( z8V~yFI{fCQ0^lDBsW|aOR?%efo+;WWn^kZ)j2Fb8q7vc_*|q4`#5|dZxWt3(&U5br zswLSrRGb_Ueo~-%98W;C9jKTq<*HGR2`m>~ibi8P zq*Tm*UL0s~>Z{r4ZD>UG+u+Mly}ybHY>BFR<5?saBfvh;4YHx*e#@kcL1aXpRFMb$ zvn^c^S|HP{@2lFiHQz@c` zjEXLB0H=14x(})1)3>%_z=rSMGvNSaZ%YvLKFb8Idntp6H$-2su)m=R5YGBKV2@#3VC35Y1%p)UCK zgeKA}C1_lyNDK*DLlfD<%T(40tsX?J2%)9Xd~fNS^$8lnumzB=BNw7I%L`d(C zDEvZvCG|`bi+Ke@jnN8svD7X-hMEIIt=LP*F9O z1F<>)<4W&xWsbgaLWaJvtZQUaN@fw-${E=^!qd|bpm*ys9npDNnuyE?A~H9`hynbm z_K0!t2u_iF0T+&FZAp)!%3OB!)2{RN%x(hJp*^BSRjDzHxF!QQ+3Dm?=xm^u3vVgn|IyGD5&;;9gV!1A7)3yCS{{)D0Z7t?c92!=}iy zYpt67nc<$IHuzRm+ugkL^{`qGyi4WFnSi10uOJEp^7_Wg3;^_vFLcGFGR6}BN*?bf zj_n+2Q*=q#lX~Gs?6tfPHe~qF)YRbPta`Bt4rtlrY7|+h$0eefb$KJ{w zDgT}P$b4OOc)DlS4M%rw{_1Shg8bP#eq|9PDoAfn*7Jg_p0h&RG2~NxB6csf_YI zaFRBZSCOzJHfS>d*IbJt>?;EYhZqas{?MvNqwOFY+72RGJdeaR4c8I4VzlB6n*(D* z4A-^}VXg4z1C0R^!AQ&i5Q&&(MJ$quf((;K0LICucoL$(cCi$6UJAX`z*&j~f$t*_ zL4trUrvrQ)6Q=O(0xdRtR|BC3P8m?l&v-@}_uvlel|EU;2n>fZKq@CbOy1Lyc;$YW zz*ZQEBv8>-X<9$9sHG1jPP`YuB z`QX9BNK`3O28NhE0?J0ABgi7h3}zkies^H@w7NRpuUcJ$>N;IruUFT(>RO<#3)Hn( zT^FgVPhB|~OS~?1O;gu&bN-+gN2_a&y5_0tBz2vl zu5Sy;#``s>>uz=3qptha^?>UvOJ53B3<>e`~NC)Bk@U0+q#T6Nv3u1nQ*xw=-U zYfxR+sOuf-TCJ}4s_O&l`iQ!&RoBPW^$B%-MqQs**G1}jjk;d1u5;D3KwTH8>r{1} zuC9~RHAh`XtLsR09igs6#Fg#Sg?==Hli$W!*y9;!#mJRsngv=@e9KpyN%Ozp^E@ql z2`5Sne)~cdw!N3@VUI#<^2P^?;`Kt z=KWFNRs&-f8hrQ$uC_T_kQ72FF-X+x%O|W=!TLzpG?Pf?b0`Ym(?B8ejso$7^P9!! z6*37MtzaJrm|k@+@*3{__?k>@Y?aB@0wBV@3we#}agTBAJhc7rC7i&?2y6w7(N{ke zd4w27tNftN7$Wb57~Jw+h#^DX3o*Fly%56*PSQ9%LJWs-kGhURGNe1SS3L4m4}9es zufNHfC!pr)>geCDONwv7$N&BJ|1$|Vz%T!{qLX4b&wntMID0YPQyd=t;9uTLh)VHS zjlW0Kz)Pn5-{1c)N}$+#|q7P#rS+=S>b$dxv#KnPElF@!ooS; zlA=;T3ko}e{|lyPO)e`dEpzAl+{NCKLU+G{*=}uSX{mc*e#tVouk@zEl5+RJh51X7 zGDz!(`}w6l_ke!o1F)1kdFi6UdA`B|ce$_3TQa}xvwLxVnK%E&;=+sE{mQk%c?(Ll zt4cuiLT^caq7>={EWcRG&DGAy)%y3>mM_=FxaklwV^|` zq2sii9Bte<4H>l?v=!PwZIE`0cB?i^o2?De#v%+y4h?y=!P;=GpLULRkv2@b7i4-zi`+Ms`b!GRVa){zQ!nzD%=39mOWY-BiLfQB zO$-<~z@1+NGjk_rNn{u@Ad!0!Y;s{Ca|=9H3$);>6^yb$AGam8jAC8EG(88u7a|P;He7S0w`RI#V;|p!DITMwxvyYG6K}9 zl(q;S&6l7uk#J*KVg5~;_;tfB%Dn}J?&8wYMQ(V}@+Ds1yagSVnpaxl^OnG@%$uaL z9hJy0FZa$bSy%`vCV3Zo%V}dbE_2^pSXQb{D=qLBms*b&{|PF+CG*M(Md1z-3kusO z&K{uko8R3=$UvL?2Mihj_gQGVd$0^{U`TMG@a(n}(P0SS^pWsc7v^bmaphmb&-1iA zTx)P$i@!DaTZF%B@Mq@vKYh)!(c;2=!zj>;zqR;VgTF=iy9R%q(V2&|f%r>Td8!rf z6}aZ#Sgw`-rp%|6drM#h<(em`KozK7WsYX(X~tRy~SuwzEU?Vy8w=X@a`xe z?h@I3T2XOnzW6OI)8-X=i?uR3L~T*&60Nv&zUK470}287Zxtk7WvB;(3Z!G?vt{27cQMwSXfYwkaDSaAv%+R3?&zp zE;9RH+`5a(N*B5d7cTNGQ{wQJNWFK~3#$r>{0NBQ=}H$DLL_B{Jh_TzR>9LIdJ3}x z7DfZwRKM>pFLZ-zM6T`vZy6%l;$`d>!5Nwe{Vn-WdGqJZ1I#TuRD=SI7EqS`r`eO( zD`dYbYinPZnV)r`DHoP`=e4QRGLQr*9mm}RE<&p*aU*Of$uC=G$6^H#W^J}8K4Fyu zh754uSm;|)Sg6{ZyRcaF8s)Y;R+ng^LK~P@jCh4@rlWjP3$_$15|W*&EhVXb>Fmn2 zlEPwbh#RtR+p&;Wfr62H`2ejvn5X@IRpPHAkhnMD-&P{lv;CRyAGn zzqfRqh!+QVi<0|Z6_U_dc-siw677H`3*Zav}6qBGIpJp50{dl z(Sjog%V#f=NNQLAynMt$99|_d(Gx5ZuGX?86*gjH52&;#sX!u^=Fm0S$BSf3Hpm5$z^lA(n{EG@O*e)M7 zY?vm|f!_r_-=gx1h7T_l_=jPPQGD~Td8G@77hrshKE7c1;=(dIz+t|nKI9iu1Q)p# zjYWmft6SwjlSC~Gg)bO}Z5P_~;zAIOK{jY`FGCNC9Q04%0~S~UFH5}LH87=3^p}+} zyivI5FuQA0Np2h1OhiIJVAffVX$OX%!o_yiCZYck(-4=>kSO^224CHf3=f?!3Q^9# z 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 WX|Tfn_@kWC&kbXdQbpY~`@aB$OY8su diff --git a/src/main.c b/src/main.c index f58fd3f..ab34f72 100644 --- a/src/main.c +++ b/src/main.c @@ -92,7 +92,8 @@ typedef enum { TOKEN_CATCH, TOKEN_THROW, TOKEN_ASTERISK, - TOKEN_LABEL + TOKEN_LABEL, + TOKEN_QUESTION } OraTokenType; typedef struct { @@ -409,6 +410,7 @@ void tokenize(const char* source) { case '!': add_token(TOKEN_NOT, "!"); break; case ':': add_token(TOKEN_COLON, ":"); break; case '.': add_token(TOKEN_DOT, "."); break; + case '?': add_token(TOKEN_QUESTION, "?"); break; default: error("Unknown character: '%c'", *p); } p++; @@ -786,6 +788,271 @@ double parse_call(const char* func_name) { } } return 0; + } else if (strcmp(func_name, "fopen") == 0) { + const char* filename = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* mode = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_file_result") == 0) { + FILE* fp = fopen(filename, mode); + vars[i].value.num_value = (double)(intptr_t)fp; + vars[i].value.type = VAL_NUMBER; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_file_result", 63); + FILE* fp = fopen(filename, mode); + vars[var_count].value.num_value = (double)(intptr_t)fp; + vars[var_count].value.type = VAL_NUMBER; + var_count++; + return 0; + } else if (strcmp(func_name, "fclose") == 0) { + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + return (double)fclose(fp); + } else if (strcmp(func_name, "fgets") == 0) { + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + char buf[MAX_STRING]; + if (fgets(buf, MAX_STRING, fp)) { + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, buf, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, buf, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + } + return 0; + } else if (strcmp(func_name, "fputs") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + return (double)fputs(str, fp); + } else if (strcmp(func_name, "fread") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + Value* arr = find_variable(name); + if (!arr) error("Undefined variable: %s", name); + if (arr->type != VAL_ARRAY) { + arr->type = VAL_ARRAY; + arr->arr_size = 0; + } + double buf[MAX_ARRAY_SIZE]; + size_t read = fread(buf, sizeof(double), count, fp); + for (int i = 0; i < read && arr->arr_size + i < MAX_ARRAY_SIZE; i++) { + arr->arr_value[arr->arr_size + i] = buf[i]; + } + arr->arr_size += read; + return (double)read; + } else if (strcmp(func_name, "fwrite") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + size_t written = fwrite(arr->arr_value, sizeof(double), count, fp); + return (double)written; + } else if (strcmp(func_name, "strlen") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + return strlen(str); + } else if (strcmp(func_name, "strchr") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + double ch = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* found = strchr(str, (int)ch); + return found ? (double)(found - str) : -1; + } else if (strcmp(func_name, "strstr") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* substr = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* found = strstr(str, substr); + return found ? (double)(found - str) : -1; + } else if (strcmp(func_name, "tolower") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[i].value.str_value[j]; j++) { + vars[i].value.str_value[j] = tolower(vars[i].value.str_value[j]); + } + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[var_count].value.str_value[j]; j++) { + vars[var_count].value.str_value[j] = tolower(vars[var_count].value.str_value[j]); + } + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "toupper") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[i].value.str_value[j]; j++) { + vars[i].value.str_value[j] = toupper(vars[i].value.str_value[j]); + } + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[var_count].value.str_value[j]; j++) { + vars[var_count].value.str_value[j] = toupper(vars[var_count].value.str_value[j]); + } + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "asin") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return asin(val); + } else if (strcmp(func_name, "acos") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return acos(val); + } else if (strcmp(func_name, "atan") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return atan(val); + } else if (strcmp(func_name, "atan2") == 0) { + double y = evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double x = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return atan2(y, x); + } else if (strcmp(func_name, "log10") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return log10(val); + } else if (strcmp(func_name, "exp") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return exp(val); + } else if (strcmp(func_name, "system") == 0) { + const char* cmd = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + return (double)system(cmd); + } else if (strcmp(func_name, "getenv") == 0) { + const char* name = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* val = getenv(name); + if (val) { + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, val, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, val, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + } + return 0; + } else if (strcmp(func_name, "sleep") == 0) { + double seconds = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + #ifdef OS_WINDOWS + Sleep((DWORD)(seconds * 1000)); + #else + sleep((unsigned int)seconds); + #endif + return 0; + } else if (strcmp(func_name, "push") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr) error("Undefined variable: %s", name); + if (arr->type != VAL_ARRAY) { + arr->type = VAL_ARRAY; + arr->arr_size = 0; + } + if (arr->arr_size >= MAX_ARRAY_SIZE) { + error("Array size exceeds maximum (%d)", MAX_ARRAY_SIZE); + } + arr->arr_value[arr->arr_size++] = val; + return 0; + } else if (strcmp(func_name, "pop") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY || arr->arr_size == 0) { + error("Cannot pop from empty array"); + } + return arr->arr_value[--arr->arr_size]; + } else if (strcmp(func_name, "insert") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int index = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + if (index < 0 || index > arr->arr_size) error("Array index out of bounds"); + if (arr->arr_size >= MAX_ARRAY_SIZE) error("Array full"); + for (int i = arr->arr_size; i > index; i--) { + arr->arr_value[i] = arr->arr_value[i - 1]; + } + arr->arr_value[index] = val; + arr->arr_size++; + return 0; + } else if (strcmp(func_name, "remove") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int index = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + if (index < 0 || index >= arr->arr_size) error("Array index out of bounds"); + double result = arr->arr_value[index]; + for (int i = index; i < arr->arr_size - 1; i++) { + arr->arr_value[i] = arr->arr_value[i + 1]; + } + arr->arr_size--; + return result; } else { int func_idx = find_function(func_name); if (func_idx >= 0) { @@ -1002,8 +1269,19 @@ double parse_logic_or() { return left; } +double parse_ternary() { + double cond = parse_logic_or(); + if (match(TOKEN_QUESTION)) { + double true_val = parse_ternary(); + consume(TOKEN_COLON, "Expected ':' in ternary expression"); + double false_val = parse_ternary(); + return cond != 0 ? true_val : false_val; + } + return cond; +} + double evaluate() { - return parse_logic_or(); + return parse_ternary(); } void execute_print() { diff --git a/test_io.txt b/test_io.txt new file mode 100644 index 0000000..557db03 --- /dev/null +++ b/test_io.txt @@ -0,0 +1 @@ +Hello World diff --git a/test_new.ora b/test_new.ora new file mode 100644 index 0000000..96c51b4 --- /dev/null +++ b/test_new.ora @@ -0,0 +1,72 @@ +echo("=== 新功能测试 ==="); + +echo(""); +echo("=== 三元运算符测试 ==="); +let a = 10; +let b = 20; +let max = (a > b) ? a : b; +echo("max =", max); +let min = (a < b) ? a : b; +echo("min =", min); + +echo(""); +echo("=== 文件IO测试 ==="); +fopen("test_io.txt", "w"); +fputs("Hello World\n", __tmp_file_result); +fclose(__tmp_file_result); + +fopen("test_io.txt", "r"); +fgets(__tmp_file_result); +echo("读取第一行:", __tmp_str_result); +fclose(__tmp_file_result); + +echo(""); +echo("=== 字符串函数测试 ==="); +let s = "Hello World"; +echo("strlen(s) =", strlen(s)); +echo("strchr(s, 'W') =", strchr(s, 87)); +echo("strstr(s, 'World') =", strstr(s, "World")); + +toupper(s); +echo("toupper:", __tmp_str_result); + +tolower(__tmp_str_result); +echo("tolower:", __tmp_str_result); + +echo(""); +echo("=== 数学函数测试 ==="); +echo("sin(0) =", sin(0)); +echo("cos(0) =", cos(0)); +echo("asin(0) =", asin(0)); +echo("acos(1) =", acos(1)); +echo("atan(0) =", atan(0)); +echo("atan2(1, 0) =", atan2(1, 0)); +echo("log10(100) =", log10(100)); +echo("exp(1) =", exp(1)); + +echo(""); +echo("=== 数组操作测试 ==="); +let arr = [1, 2, 3]; +echo("初始数组:", arr); + +push(arr, 4); +echo("push后:", arr); + +let popped = pop(arr); +echo("pop出:", popped); +echo("pop后:", arr); + +insert(arr, 1, 99); +echo("insert后:", arr); + +let removed = remove(arr, 1); +echo("remove出:", removed); +echo("remove后:", arr); + +echo(""); +echo("=== 系统函数测试 ==="); +getenv("PATH"); +echo("PATH长度:", strlen(__tmp_str_result)); + +echo(""); +echo("所有新功能测试完成!"); \ No newline at end of file diff --git a/website/download/exe/Oraset-B-5.exe b/website/download/exe/Oraset-B-5.exe index 8d8db0dbfbef352891e4e0a89985e4421ba0e6f2..86b6068df715e21703206d7fea2ce3db25bd58d3 100644 GIT binary patch literal 118580 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 z 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 WX|Tfn_@kWC&kbXdQbpY~`@aB$OY8su diff --git a/website/download/source/Oraset-B-5-source/src/main.c b/website/download/source/Oraset-B-5-source/src/main.c index f58fd3f..ab34f72 100644 --- a/website/download/source/Oraset-B-5-source/src/main.c +++ b/website/download/source/Oraset-B-5-source/src/main.c @@ -92,7 +92,8 @@ typedef enum { TOKEN_CATCH, TOKEN_THROW, TOKEN_ASTERISK, - TOKEN_LABEL + TOKEN_LABEL, + TOKEN_QUESTION } OraTokenType; typedef struct { @@ -409,6 +410,7 @@ void tokenize(const char* source) { case '!': add_token(TOKEN_NOT, "!"); break; case ':': add_token(TOKEN_COLON, ":"); break; case '.': add_token(TOKEN_DOT, "."); break; + case '?': add_token(TOKEN_QUESTION, "?"); break; default: error("Unknown character: '%c'", *p); } p++; @@ -786,6 +788,271 @@ double parse_call(const char* func_name) { } } return 0; + } else if (strcmp(func_name, "fopen") == 0) { + const char* filename = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* mode = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_file_result") == 0) { + FILE* fp = fopen(filename, mode); + vars[i].value.num_value = (double)(intptr_t)fp; + vars[i].value.type = VAL_NUMBER; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_file_result", 63); + FILE* fp = fopen(filename, mode); + vars[var_count].value.num_value = (double)(intptr_t)fp; + vars[var_count].value.type = VAL_NUMBER; + var_count++; + return 0; + } else if (strcmp(func_name, "fclose") == 0) { + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + return (double)fclose(fp); + } else if (strcmp(func_name, "fgets") == 0) { + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + char buf[MAX_STRING]; + if (fgets(buf, MAX_STRING, fp)) { + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, buf, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, buf, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + } + return 0; + } else if (strcmp(func_name, "fputs") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + return (double)fputs(str, fp); + } else if (strcmp(func_name, "fread") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + Value* arr = find_variable(name); + if (!arr) error("Undefined variable: %s", name); + if (arr->type != VAL_ARRAY) { + arr->type = VAL_ARRAY; + arr->arr_size = 0; + } + double buf[MAX_ARRAY_SIZE]; + size_t read = fread(buf, sizeof(double), count, fp); + for (int i = 0; i < read && arr->arr_size + i < MAX_ARRAY_SIZE; i++) { + arr->arr_value[arr->arr_size + i] = buf[i]; + } + arr->arr_size += read; + return (double)read; + } else if (strcmp(func_name, "fwrite") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int count = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double fp_val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + FILE* fp = (FILE*)(intptr_t)fp_val; + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + size_t written = fwrite(arr->arr_value, sizeof(double), count, fp); + return (double)written; + } else if (strcmp(func_name, "strlen") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + return strlen(str); + } else if (strcmp(func_name, "strchr") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + double ch = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* found = strchr(str, (int)ch); + return found ? (double)(found - str) : -1; + } else if (strcmp(func_name, "strstr") == 0) { + const char* str = get_string_value(); + consume(TOKEN_COMMA, "Expected ','"); + const char* substr = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* found = strstr(str, substr); + return found ? (double)(found - str) : -1; + } else if (strcmp(func_name, "tolower") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[i].value.str_value[j]; j++) { + vars[i].value.str_value[j] = tolower(vars[i].value.str_value[j]); + } + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[var_count].value.str_value[j]; j++) { + vars[var_count].value.str_value[j] = tolower(vars[var_count].value.str_value[j]); + } + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "toupper") == 0) { + const char* str = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[i].value.str_value[j]; j++) { + vars[i].value.str_value[j] = toupper(vars[i].value.str_value[j]); + } + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, str, MAX_STRING - 1); + for (int j = 0; vars[var_count].value.str_value[j]; j++) { + vars[var_count].value.str_value[j] = toupper(vars[var_count].value.str_value[j]); + } + vars[var_count].value.type = VAL_STRING; + var_count++; + return 0; + } else if (strcmp(func_name, "asin") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return asin(val); + } else if (strcmp(func_name, "acos") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return acos(val); + } else if (strcmp(func_name, "atan") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return atan(val); + } else if (strcmp(func_name, "atan2") == 0) { + double y = evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double x = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return atan2(y, x); + } else if (strcmp(func_name, "log10") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return log10(val); + } else if (strcmp(func_name, "exp") == 0) { + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + return exp(val); + } else if (strcmp(func_name, "system") == 0) { + const char* cmd = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + return (double)system(cmd); + } else if (strcmp(func_name, "getenv") == 0) { + const char* name = get_string_value(); + consume(TOKEN_RPAREN, "Expected ')'"); + const char* val = getenv(name); + if (val) { + for (int i = 0; i < var_count; i++) { + if (strcmp(vars[i].name, "__tmp_str_result") == 0) { + strncpy(vars[i].value.str_value, val, MAX_STRING - 1); + vars[i].value.str_value[MAX_STRING - 1] = '\0'; + vars[i].value.type = VAL_STRING; + return 0; + } + } + strncpy(vars[var_count].name, "__tmp_str_result", 63); + strncpy(vars[var_count].value.str_value, val, MAX_STRING - 1); + vars[var_count].value.str_value[MAX_STRING - 1] = '\0'; + vars[var_count].value.type = VAL_STRING; + var_count++; + } + return 0; + } else if (strcmp(func_name, "sleep") == 0) { + double seconds = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + #ifdef OS_WINDOWS + Sleep((DWORD)(seconds * 1000)); + #else + sleep((unsigned int)seconds); + #endif + return 0; + } else if (strcmp(func_name, "push") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr) error("Undefined variable: %s", name); + if (arr->type != VAL_ARRAY) { + arr->type = VAL_ARRAY; + arr->arr_size = 0; + } + if (arr->arr_size >= MAX_ARRAY_SIZE) { + error("Array size exceeds maximum (%d)", MAX_ARRAY_SIZE); + } + arr->arr_value[arr->arr_size++] = val; + return 0; + } else if (strcmp(func_name, "pop") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY || arr->arr_size == 0) { + error("Cannot pop from empty array"); + } + return arr->arr_value[--arr->arr_size]; + } else if (strcmp(func_name, "insert") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int index = (int)evaluate(); + consume(TOKEN_COMMA, "Expected ','"); + double val = evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + if (index < 0 || index > arr->arr_size) error("Array index out of bounds"); + if (arr->arr_size >= MAX_ARRAY_SIZE) error("Array full"); + for (int i = arr->arr_size; i > index; i--) { + arr->arr_value[i] = arr->arr_value[i - 1]; + } + arr->arr_value[index] = val; + arr->arr_size++; + return 0; + } else if (strcmp(func_name, "remove") == 0) { + consume(TOKEN_IDENTIFIER, "Expected array variable"); + const char* name = tokens[current_token - 1].value; + consume(TOKEN_COMMA, "Expected ','"); + int index = (int)evaluate(); + consume(TOKEN_RPAREN, "Expected ')'"); + Value* arr = find_variable(name); + if (!arr || arr->type != VAL_ARRAY) error("Invalid array"); + if (index < 0 || index >= arr->arr_size) error("Array index out of bounds"); + double result = arr->arr_value[index]; + for (int i = index; i < arr->arr_size - 1; i++) { + arr->arr_value[i] = arr->arr_value[i + 1]; + } + arr->arr_size--; + return result; } else { int func_idx = find_function(func_name); if (func_idx >= 0) { @@ -1002,8 +1269,19 @@ double parse_logic_or() { return left; } +double parse_ternary() { + double cond = parse_logic_or(); + if (match(TOKEN_QUESTION)) { + double true_val = parse_ternary(); + consume(TOKEN_COLON, "Expected ':' in ternary expression"); + double false_val = parse_ternary(); + return cond != 0 ? true_val : false_val; + } + return cond; +} + double evaluate() { - return parse_logic_or(); + return parse_ternary(); } void execute_print() {