From 145e7ceafce5ca20df064d1f0e811550632dac16 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 16 Dec 2018 10:14:59 -0600 Subject: [PATCH] breaks work; refactor parser; operation tree reduction --- christmas_proj | Bin 467184 -> 467168 bytes data/progs/gol.lgt | 4 +- data/progs/maze.lgt | 5 +-- src/lang/executer.nim | 48 +++++++++----------- src/lang/parser.nim | 101 +++++++++++++++++++++--------------------- src/lang/utils.nim | 27 +++++++++++ 6 files changed, 101 insertions(+), 84 deletions(-) create mode 100644 src/lang/utils.nim diff --git a/christmas_proj b/christmas_proj index 9bafaa91535aad594ce6da3293b3b8c480304297..f355762d5182022497acbbdc3afd4131dd387c67 100755 GIT binary patch delta 124821 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 z zrwuS**GPhYNP@Jr?$vmFg|kU&s6_OGgN&m&IXm*l&H2LTA2uHP9b_83H_mGpcnZcA ziXdED0KY~IC4MkD4wsC#2%r4aRJD?p{zCZd5Toddevuj(pyM{?c1!o1ly&CA?~x%M zbh?N$R!0~CuiGR0lQHMdf3rm2(f{6y%kMaMt9?4Rmpw5@23Ga&R;8tg^I|oy!Bmp> zZ_2UKQdMd3sT9Fm#{O)&eN=k?Ff|+T)SD1%pJLXI-~r9kY4bZgmmGhuxK{MTADODs zzul~_PIQ*zo#ULtVX<#$=N+xD?xBrXD*IyG~GrVeE#)kWVCNJ8QMkEaCIky!1ykshr|JDdsYkxmVRP#POYob@3zR#*67P#J&@& z{#WY);+_6CMcTWlZ2ZOuf4awWnj0UnjhDIOn*FO#ZQrhWSz!s;-*X3+JCqxu0%q@;L`y zmoH~E?-*l;v(mpAL){vf1UE^7-~{7PNc?@+ByiF(LlE_@S42Ny9ZqalRn2LxeUeO{ zSL$n&0jH6gt;HP}&|YtS(YU=u#6#5@#DlIvtoyqE#SXs}77L%Y=8q@DTtIG7j8VsV zO%=7EvOgDbvc_b?YT#Y<@Jf4;6W%N>{5%1?H$Pfyb3ftz@1yu`MTO5=Zr$ebEtG1( zP5mk&UJvbKx@H$~;xED{GA$aj&0&+^n51?*8f< zvhE@(nf7!6g0hYUB!dft4>U6_%JVd5y6`FQrt4UK2uCuwTPXJkchA^cOmA#1R`t@gEI)a>`{ zl{@RK2W<7Yne;}%Qe#KXsGW|&2l|?xG0T86Q1fJ;TwwIuO7;`ry=AShnalhNUFh+F zPLBU2Fu%vFkqojW#&TMggE!Qg)--5N#Nj=rUi{Hn5I%Oh$@m({ztuQXj?iY)ar_?6 zuVtP@@kb%{Rwb!^zcyo%EPSWQ=0)irN#XM^7(+iuHk&*<0muI$s$ZIqL_aAfnkR^z zYEQp{oB!+THe>Vg#@~Ry2Z3NlvsaA!k2V#E%=m#oXT1hF2-j`f87 zY2m}xCSiw|i`6%^@83gxDSY62W52(+bqr^Vx|_tT1OA}l)uJ{mH0Kj3g88T3^rDKO4n4qW^-}NmQ9SxLNqDXQx6n58}l4zLFef zULi^q+@g3L)M|*cJf3$DWMFg<{c-TR#L-JkO|bZR*9^_$Tm zJ=(II4iI_vR8tWDN76^DNm_h`h@JCHrTW|Jgj%M>s}bvtmA4+P|3z&@JZO)IL)M=9 zN8tk&UlujyqSh|AhiZE=-MEh@W@)s_I7X8BzZBsQyBpzkBV`VmvLzgItrk91WV*M1 zNc1|qE=|C?mHEu$Tl8~!SzY%RNszGoZ9d5u@_*XGcjyeYPnY8&#M&?CK~t%h8gOp% zlUe!SFZvm;4Y^?#{SCsWw>sYSu>t2(;hpP@;(fv&HGC&0EpL9ED}v)Ei$m3h@W=aU zYRxJ5I|#9U{GPT}hv^>ADVVj~|H0$wi`H^`ujps3-m)Iv8#Hl~{nz5wE5;7*gIK56 zABiFV=U@E#J**~G;_vZ{YOhzy_pg0%ci~f3a}9;p?U9#iDJn7!OcDKv)lF{~K4aN= z)Z;7EPnFCx&zOi4yvhtnf603fUT2maUF_wO74N)HBX? z7d|HkVlVn9V}H4E&)Fh;Sk7{Uc0Le3AqQ_m zq|$y6J}CDSU5z>KC-QV7M|T*)pGksKJ-5__r&4KyO@#kNY${>L=|*`fysosgb=rQL z=tr-sTWJrAe&BrL?iH@F^Qx!M^Al?!)c>9o`<PI=|Oz(mB!1&F{Umal`5GE@6F8<>(0#!Jf25`mN$=ze#$D1 z4li!XH)Q+{Up&n?6n(*XvPw$T23`-4gq3k$(a%d;HxT_PKF>XfzSy>S*PX&AChO>V z{1-o|=chyv>1KMX-)X*JgzHWaeA^iC?|AipYc)IS&m?73?k)V3-}x40!DS`$uA=Ft zh(YP?9Q$}z6X7!#n4&)?d~e~ivUBVp{3y*kO^`d)cUTu;kR~Y^7lB`NCKpel^7k_K`ej=U%@2wivtiC|&(?-!h z7{$&~Yx=kTJYK$I)K~2MRqSLfJ70P{`_L{-boFMM#KEYscC#353a_0=TUFj!^fSAR z;`O3`q2{TgtlWb5O)=58V~z0n9$%rJ)J{AsMkB>_N9iUp8oJFCiRs0=-trQcI|1u8 zy!~P)oHJf^6X%M#{nE}wUNh{});F&d0|7J*Ja7bA*psgX2Eoqw|cSs5_6tv+Giey77MHo1&C?*%)0X zne7)oH_PyT;sU()er1oQ*BWK{Ok&p0RRM>sHEA zRfRbIjGx*y`T9-!w(wEemCQ3noi9CeY^|-=;_AnYcaf)!V#M@B=M?zT;ucPc^|(Bw zc_(m!6S52q(}r}n=y8Qnar__Z3y2E~eBRo9GHHe=(bJxolXq*8-XX~n)>Qm&;r-t$ z3rIHgIdt=;1?gpei@<%L3~&;bUlAj4!WKVEG6>3>ihc%nYF^g> zzmwdy2PInT8K`jPT1(cS#Xu%t+HRi#CoB5FE9-iAQ1r7_AFIzjthcCLe`=i)wKcrj z*n>IdJR)9oSf{x&JSFx%R<$k?K4HBvx>oFjt)s$sL_cEnhkqNM{f3o6{p*cGX?aO8 z<@xS7?cnt=_kVFkmQ+XoPj7FAJz^AZ75%=VpRt-}oY;@0wIcabd)}r03AnBay|(Mi zRI=kdCw#^_6MR!L$XiqRKGBcL-pc=x-g+E_X#0tQrbl?wUI`hUtOZ`jI73Z3osJO} z&2WWj`KP10q5C zl;e>uQO+7mr+GY2oGkkhc&{o$BTWXUNr_@c;5c_1ew*~;Wx{8zW#DNW>0$N zXv#ZH)BBG*-V^<#oc%WxJNh5R>k16csXG~!%=PlU%!x@w3G>o#wE3 zA!z`A&`;Go1xTzgdVYh&d_HVicB&CO39%FL?rKJRho7D(C4ywuRK4G|Ull%fwJDju z0(=awSB9`v;Xi79Zx(38qM$Vr)+p^De0aZfy7|VpVeq=CqUV^rsUq*XO89&i!&fyn z{O!W0&op+f6_=kh_W3a+E932IYj4^-YvfMIdKmhR@KO2S2CP!v)rjqy_A4Ui1;+{B zLHNA9-6dNaXMpgDv8KlSnw$(zeZ-xBm2pB6q^v#gBfhMs;Cy+ zl6lkI4RxovGt{ngxRV})*lWNVW9D1~&P?HB^03(-gNuFrzZ=E9QV#xUW*^LL7jd|$ z;ct}&&I=!~?nY>FGY+iHSXZ?SbM9coX23-CC)yz;C)BUYV2+D{+-;_#50r89xaeoU zGmiK}^9|9DS`V;tTA%jGeQU~fq13}6qaSyI)~-$e6Po~&?aJ%@ZJ9}NT*B0M)an3T zJf0D6Wjq*O7c6Kko3n(^9d@|58G1w`*OG+EAR*Ic(qs9j5gyO_XRRCW!RrhH*6#lc z;ZwJm8v0h6s{R7>y-BK#{zOX0npX!1pO!DaA2tS@tAx*3o3A-Du%qYUGmNX94LEn9 zug8#MRqc}=Uva#Xvg&Y~+I22t@++MW_VN*9h`Vv`Iwbi=FE{begg^0iQ)3xfPl|*e z;PC-x%zLKONCh}o2%oWPasfQ`5qCmA8Vmkxmy!f2t8HJ?32-zZor<}}yZ+|s^G2EV z%F#zA1De~oSSv|dG-Cw!*%YC-tQCB_q$4e$C)45extLQ*aIxjjbzP0>Gb zp(#MlnikK3kLwbIUox5lCBYa3UR76`s=HnIDVj$=^Rdam|KB_dy$rbHu=eYZiGEm4 zHtGG|^@iw2-m0g||NEC_av}&=RrjkHN?&RmYHjj&PQKGPl$1f@4~8mu{jfW1?eiyl ze87qP_BNr(--(MLZee%@OZYL)=D!1UT3V=0DbxU zy4q;|Dhb~8GN9@#NB^VRp3i|*gGJKEtXbw1H4^cl^APJE75UkiYbRERYhD*;R^35* zh44v>zgca-TwIAb^S!ZCYEnDT3m-b$5Kjuf7v5X9C$;wy_zUn6kLQ;m9?uIi3G12USOmHpS?hcxu4ebAc2wMuq zHasts-ET55e;wz01bVr)zfDsRLn(T@zBU6Fbb$D& z`V$=>CP()Ezs>9euSa>xvN*=$S&*$NzCrBd3OB5pS`!_OjQh9z&Qh?iCvm*()C-tHydY332?d zB2FJ~>S&qFf^=3ax>l@p#+-!LZ|_(Jr9vc`23 z{a-~tVl`>2<({2RPSl#!&PL#k*dxZmgJNj3nmvp@aJ`p~ImjA_OVt|0@lD1o|Ipdg zOF&Y8C{|-~FX0cnAN<@dF^aQgc(qtziW#)*oZ<1j`E1<`g$=LH8crXWK*X!^$Bfa_ z#ECnF5B4^>G#36zFELLKtrcOr=m)G#&wqqZ$WnK#IDORc)M>(4ZY_dJ8drCk{Og8i zKzLU-b!a%1)*G?crq(0i(ZXk}fpCMzS2zc($y4_sUG98uQ~BpgHjj#a&e|Pr(fa%j z&<91O@m-z{M^u&%-%8q`oLu;;*s%|2pILRUt-G~p53hYlkxpOCjNWyj=m+Q4oxrCU zea4OTKy$7b%5w~=uX-{v9#T~i>g-Li7q#qtF3D2z+JqcKhA(NPV?;9{vM&D&6329^55k68Mb zdOVYjHOtKrI}z{33qSNM!|L-M%rx%noWF`~a6Ue{mLyOH?) zssBGcp8Giezuoxru=B9-Hz$t(yuZ49Gu={GMFP7pR~#p(7CMcussJ}caX%-rY6pp3Yp;P zQ`(EffHCLXE_}=ysVT9O^*S1dC4NVET?CHY-^`T^KKBgqp2ffG&SN!_L86D*#so#b zVznti!qPtjUKb!J-=*+=dY~1FE)_v!h_NtR49!ssE@AzRi#YU|DVe`7ctmYL9N+Ax z&KR*jYyKVHyLGUpzaO-|UYT~9Y~*!DryzEmrwmW`_pVAhxOO`yckXE< zi_=9Z-P=ePh|+RTi6a(kQBRx1PSAQo>RquDmFFM+4QyWQ1g*VU(?_)vJSB)(8FWUV zz0Tij`k|~%&Jf|lY?}2o!+>*xXQ+@(p}{ zi+jLJz&6I}74=ib(RA84D#OM(!RO`K;UIDJOyNVtrnx6-UT=9X(E{(z>{>qQA?jF_ zb&v2tYeYPwQ|cC$AvIJ6(%ZrZ<=f!?^WP7}PRgG#9dmu}@tn&$U)CKd$EyWnxION^ z#`qPqrtD$xx<@8IHFma`k~w2E@0I8(Ntv;7Tb!s)|Q6PRlBw{ zpSEhXENHg1RqoYnwb2rtTU%Q{zUO>DciCC@5ANgh{e8~4-}Alqo_p^LAO~mI0F`NK zJ1%kR?g$dlN#O5-KY&{HJn&1vQ#ij`2K*Xu5$E1=7YpSdRc=w~QO^Vm0s$h(04p&( zXGzOt2GxmE>^fcB`?CWTW0s(CO3{)G1KmIH*# zCNUpo(|E#Gq@c&t=9J5lAE(IIAlo{|@widVrXpVI6z_0zx{K#m0w2leXdCj`W;5aH z=+$fug5Sc5+3RSX1B$=c_O;T{`!@e00&RCFvOCF5L1|h$Bm50Y6Kh%9UU;2*oSmNB z%1+nuP81R@ol9wYRxtmtNd3-=5R7P20>$)cD|RRwUT<*?Ead3-K;RkR5t}{v1^mZ= zr|)J@b_1UPKB96XjmA|VTqc6Nhjm(eZ17JA#8DIdjEEPV;KDZ*uwrnNHQ3;TyC<+o|5iyUA* z*C00gE%qxJVLS`?Qo^M=Q@fSB7W^r?3MIED-idDDW+MY$;IA@XNGrqHz=yM#a*ha# zWu@iWX&>1}H#fg^HRJw$GZ_DpI0c-z#DYj8B5#5{9MQ(mQrpu;r!e<}oY2Ufc8JJz z{X~}iF^L*@Is6?1ZfUjgYrtDk-i5(`)*dBw!{37(xVamNCF3NUF*SAhz^(VVRc^t7 zQ9-zDcK0*4Zc^T$a4M9vOk=SgdTQ<`){x7`fp`T5B4^mZ%jnqCz^xydzYT`JRtD(G zoVM!ey25GknD(l%{3Hh!S8ECEhIT4EZYNASAJKHwNM7neKV4{&+g0>z4E%8|t&X|4 zmb#MA6L45h0=}P>xLgEdW^(i#vJl@XMYQHyTfiV+t0+4^frSt*|EyC8D#n^?*p9dp zcn~)W^MS7?T+S$yDl6skNs**&wvV*aAd5mSa-H?XA@`h;qvZ-(fJa?iYmf`Jr^6^J zy$Ev=BtbVTPs2>oS>0h|WoLwfc67V3zzCJC2nSa?^!vpno^t!@sPSxJ+vELR1F_!d zK#SGi*WL0|tgC0Btj!r8Gw$+u!nS`O$(5ItSAUTCjvf-i5 z)osDr9os5;)(_RxuXpx;U_6>#YDW79+N*o|+MZ}x^W;!t?O=WHx~}FOP2KCl8ynVz zs(08&4jBuaoKFnP>m2^v_+yE4X2u9*I{q6*ZqaSEPe*$it@i$CtgCN(OLawWM`%^F zHq;%ftLW)8>&)h6v(uTE>nqM%_-zRs& zt}F3{OWX%5++XNGr%HUw3zGM7T6Fhur(mJ)oX1mX ZPc5Q-wmll~g>%eXImPAL1@nE2{sE`zbIAYz delta 124689 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 diff --git a/data/progs/gol.lgt b/data/progs/gol.lgt index f6dd1a4..933492c 100644 --- a/data/progs/gol.lgt +++ b/data/progs/gol.lgt @@ -1,6 +1,6 @@ //Assumes 128 by 128 board -#BOARD_WIDTH { 128 } -#BOARD_HEIGHT { 128 } +#BOARD_WIDTH { !GET_WIDTH() } +#BOARD_HEIGHT { !GET_HEIGHT() } #CELL_ALIVE { 255 } #CELL_DEAD { 0 } diff --git a/data/progs/maze.lgt b/data/progs/maze.lgt index 237f0c2..4cc1bbf 100644 --- a/data/progs/maze.lgt +++ b/data/progs/maze.lgt @@ -67,8 +67,7 @@ while !get_stack_height() > 0 { $y = $y - 2 if $m1 { - $m8 = 1 - while $m8 { + while 1 { //Random direction $m7 = !random(4) @@ -103,7 +102,7 @@ while !get_stack_height() > 0 { $x = $x + $m5 $y = $y + $m6 !push_pos() - $m8 = 0 + break } else { !pop_pos() !pop_pos() diff --git a/src/lang/executer.nim b/src/lang/executer.nim index 7be2cf1..b612f93 100644 --- a/src/lang/executer.nim +++ b/src/lang/executer.nim @@ -2,6 +2,7 @@ import os import tables import ./types/types import ./types/ast +import ./utils import ./program import ../board/board import ../gfx/window @@ -19,6 +20,7 @@ type builtin_functions: ExecFuncs defined_functions: TableRef[string, seq[LightExpr]] running: bool + break_flag: bool proc MakeEmptyWorker(): LightWorker = LightWorker() @@ -30,7 +32,8 @@ proc MakeExecutionContext*(funcs: ExecFuncs): ExecutionContext = worker: worker, builtin_functions: funcs, defined_functions: defined_functions, - running: false + running: false, + break_flag: false, ) proc ExecuteLines(ec: ExecutionContext, lines: seq[LightExpr]): LightInt @@ -79,30 +82,7 @@ proc EvalExpr(ec: ExecutionContext, exp: LightExpr): LightInt = left = EvalExpr(ec, exp.left) right = EvalExpr(ec, exp.right) - case exp.operation: - of loAdd: left + right - of loSub: left - right - of loMul: left * right - of loDiv: left div right - of loMod: left mod right - of loGt: - if left > right: 1 - else: 0 - of loGte: - if left >= right: 1 - else: 0 - of loLt: - if left < right: 1 - else: 0 - of loLte: - if left <= right: 1 - else: 0 - of loEq: - if left == right: 1 - else: 0 - of loNeq: - if left != right: 1 - else: 0 + EvalOperation(exp.operation, left, right) of leAssign: let value = EvalExpr(ec, exp.expression) @@ -116,12 +96,20 @@ proc EvalExpr(ec: ExecutionContext, exp: LightExpr): LightInt = ExecuteLines(ec, exp.else_body) of leWhile: + var last: LightInt = 0 while ec.running: let cond = EvalExpr(ec, exp.condition) if cond == 0: break + if ec.break_flag: + ec.break_flag = false + break + + last = ExecuteLines(ec, exp.body) + last - discard ExecuteLines(ec, exp.body) + of leBreak: + ec.break_flag = true 0 of leFuncCall: @@ -153,8 +141,12 @@ proc ExecuteLines(ec: ExecutionContext, lines: seq[LightExpr]): LightInt = var last: LightInt = 0 for line in lines: - last = EvalExpr(ec, line) - if not ec.running: break + let next = EvalExpr(ec, line) + if ec.break_flag: + break + last = next + if not ec.running: + break last proc ExecuteProgram*(ec: ExecutionContext, prog: LightProgram): LightInt = diff --git a/src/lang/parser.nim b/src/lang/parser.nim index 932e4b9..5e4fca1 100644 --- a/src/lang/parser.nim +++ b/src/lang/parser.nim @@ -2,21 +2,13 @@ import ./types/types import ./types/tokens import ./types/ast +import ./utils import ../utils/iter -type - LightParser = object - tokens: Iter[LightToken] - -func CreateParser(tokens: Iter[LightToken]): LightParser = - LightParser(tokens: tokens) -func CreateParser(tokens: seq[LightToken]): LightParser = - CreateParser(CreateIter[LightToken](tokens, LightToken(kind: ltNull))) - -func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType]): LightExpr +func NextExpr(tokens: Iter[LightToken], prev: LightExpr, stop_at: set[LightTokenType]): LightExpr -func Parse_block(tokens: Iter[LightToken], sep, endd: LightTokenType): seq[LightExpr] = +func ParseBlock(tokens: Iter[LightToken], sep, endd: LightTokenType): seq[LightExpr] = result = @[] var last = tokens.Current @@ -24,21 +16,20 @@ func Parse_block(tokens: Iter[LightToken], sep, endd: LightTokenType): seq[Light tokens.Step() return - var parser = CreateParser(tokens) while last.kind != endd: - let p = parser.NextExpr(LightExpr(kind: leNull), {sep, endd}) + let p = tokens.NextExpr(LightExpr(kind: leNull), {sep, endd}) if p.kind != leNull: result.add(p) - last = parser.tokens.Current - parser.tokens.Step() + last = tokens.Current + tokens.Step() -func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType]): LightExpr = - let curr = parser.tokens.Current +func NextExpr(tokens: Iter[LightToken], prev: LightExpr, stop_at: set[LightTokenType]): LightExpr = + let curr = tokens.Current if curr.kind in stop_at: return prev - parser.tokens.Step() + tokens.Step() if curr.kind in {ltNum, ltVar, ltFunc} and prev.kind == leNull: let prevExpr = @@ -46,11 +37,11 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] of ltNum: LightExpr(kind: leNumLit, value: curr.value) of ltVar: LightExpr(kind: leVar, var_name: curr.var_name) of ltFunc: - if parser.tokens.Current.kind != ltLeftParen: + if tokens.Current.kind != ltLeftParen: raise newException(ValueError, "Expected parameter list after function call") - parser.tokens.Step() - let params = Parse_block(parser.tokens, ltParamDelim, ltRightParen) + tokens.Step() + let params = ParseBlock(tokens, ltParamDelim, ltRightParen) LightExpr( kind: leFuncCall, @@ -59,28 +50,36 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] ) else: LightExpr(kind: leNull) - return parser.NextExpr(prevExpr, stop_at) + return tokens.NextExpr(prevExpr, stop_at) elif curr.kind == ltOp: - let next = parser.NextExpr(LightExpr(kind: leNull), stop_at) - return LightExpr( - kind: leOp, - left: prev, - right: next, - operation: curr.operation - ) + let next = tokens.NextExpr(LightExpr(kind: leNull), stop_at) + + # Reduce if possible + if prev.kind == leNumLit and next.kind == leNumLit: + return LightExpr( + kind: leNumLit, + value: EvalOperation(curr.operation, prev.value, next.value) + ) + else: + return LightExpr( + kind: leOp, + left: prev, + right: next, + operation: curr.operation + ) elif curr.kind == ltLeftParen: - let next = parser.NextExpr(LightExpr(kind: leNull), {ltRightParen}) - parser.tokens.Step() - return parser.NextExpr(next, stop_at) + let next = tokens.NextExpr(LightExpr(kind: leNull), {ltRightParen}) + tokens.Step() + return tokens.NextExpr(next, stop_at) elif curr.kind == ltEq: if prev.kind != leVar: raise newException(ValueError, "Expected variable on the left of assignment operator") else: - let next = parser.NextExpr(LightExpr(kind: leNull), stop_at) + let next = tokens.NextExpr(LightExpr(kind: leNull), stop_at) return LightExpr( kind: leAssign, @@ -89,15 +88,15 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] ) elif curr.kind == ltIf: - let condition = parser.NextExpr(LightExpr(kind: leNull), {ltBlockStart}) - parser.tokens.Step() - let body = Parse_block(parser.tokens, ltExprDelim, ltBlockEnd) + let condition = tokens.NextExpr(LightExpr(kind: leNull), {ltBlockStart}) + tokens.Step() + let body = ParseBlock(tokens, ltExprDelim, ltBlockEnd) let else_body = - if parser.tokens.Current.kind == ltElse: - parser.tokens.Step() - parser.tokens.Step() - Parse_block(parser.tokens, ltExprDelim, ltBlockEnd) + if tokens.Current.kind == ltElse: + tokens.Step() + tokens.Step() + ParseBlock(tokens, ltExprDelim, ltBlockEnd) else: @[] @@ -110,9 +109,9 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] ) elif curr.kind == ltWhile: - let condition = parser.NextExpr(LightExpr(kind: leNull), {ltBlockStart}) - parser.tokens.Step() - let body = Parse_block(parser.tokens, ltExprDelim, ltBlockEnd) + let condition = tokens.NextExpr(LightExpr(kind: leNull), {ltBlockStart}) + tokens.Step() + let body = ParseBlock(tokens, ltExprDelim, ltBlockEnd) return LightExpr( kind: leWhile, @@ -126,11 +125,11 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] ) elif curr.kind == ltFuncDef: - if parser.tokens.Current.kind != ltBlockStart: + if tokens.Current.kind != ltBlockStart: raise newException(ValueError, "Expected block start after function definition") - parser.tokens.Step() - let body = Parse_block(parser.tokens, ltExprDelim, ltBlockEnd) + tokens.Step() + let body = ParseBlock(tokens, ltExprDelim, ltBlockEnd) return LightExpr( kind: leFuncDef, @@ -143,10 +142,10 @@ func NextExpr(parser: LightParser, prev: LightExpr, stop_at: set[LightTokenType] kind: leNull ) -iterator Parse_tokens*(tokens: seq[LightToken]): LightExpr = - var parser = CreateParser(tokens) - while not parser.tokens.ReachedEnd: - let next = parser.NextExpr(LightExpr(kind: leNull), {ltExprDelim}) +iterator Parse_tokens*(tkns: seq[LightToken]): LightExpr = + var tokens = CreateIter[LightToken](tkns, LightToken(kind: ltNull)) + while not tokens.ReachedEnd: + let next = tokens.NextExpr(LightExpr(kind: leNull), {ltExprDelim}) if next.kind != leNull: yield next - parser.tokens.Step() + tokens.Step() diff --git a/src/lang/utils.nim b/src/lang/utils.nim new file mode 100644 index 0000000..86ee900 --- /dev/null +++ b/src/lang/utils.nim @@ -0,0 +1,27 @@ +import ./types/types + +proc EvalOperation*(operation: LightOperation, left, right: LightInt): LightInt = + case operation: + of loAdd: left + right + of loSub: left - right + of loMul: left * right + of loDiv: left div right + of loMod: left mod right + of loGt: + if left > right: 1 + else: 0 + of loGte: + if left >= right: 1 + else: 0 + of loLt: + if left < right: 1 + else: 0 + of loLte: + if left <= right: 1 + else: 0 + of loEq: + if left == right: 1 + else: 0 + of loNeq: + if left != right: 1 + else: 0 -- 2.25.1