From a5c7c095a7e06fcbf69127b7fb2aceb5cabcead6 Mon Sep 17 00:00:00 2001 From: Humenius Date: Wed, 13 May 2020 10:43:54 +0200 Subject: [PATCH] [06 - Top Down Parser] Fix test "program10Assign" --- .../bin/de/dhbw/compiler/xparser/XParser.class | Bin 3484 -> 4173 bytes .../src/de/dhbw/compiler/xparser/XParser.java | 33 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ÜB-Praxis-Abstiegsparser für X-Leer/bin/de/dhbw/compiler/xparser/XParser.class b/ÜB-Praxis-Abstiegsparser für X-Leer/bin/de/dhbw/compiler/xparser/XParser.class index 2bea52c18ef35c1262667f1c9e00a14ccf7e41b4..e5cb6840e8ceab7ba3c84e682d77e204b6732fff 100644 GIT binary patch literal 4173 zcmb_eYjYb{8GcrlELmPVisPh}or}^Y!ItG164QX4xNa_P(#o!hT_;YHrYmV80cKL5_R!3f4}clUU*Qwqmd@g@DhXy(;9 zyXU;;d7k%j_RHI!e*vH$??mwco@~NyOhs`9XTz9|a&k`0Q(>HsB8Ur7gz>bPi%ob2 zMg*BCvdGB>Qx;y5cQX;p%ES^gCuUwuUQ9tuQH(8{N?|-3MF*aYpe+9tF^-r8Iqz~9 zSHf7-5U`3G_N8-XUv4&Yr7vq2N><)1_brx;a)tks_Pkj2|E1OuiUUP9K%Ul73HkR!$KKz zMxxQ8R&lrYHYf`QelOyRid9@^T zisqu@ZBA?uF4-~2n&NpA_Ch&pjxd1<+e?%EbH-&u$6j33@gVku@tltD;(Ho)Zk+Qv zMlq&i0KFP^tiP1mB+j1~^MZ~S@lqJy*YPr5Va5+7Cg!bD$tunyB>lp8RmTtTLmk&- z!w`CPyoQ%F#8ntnUfi`s$FQtADrQ8?2{EU{JT4|JW*o0;xKDWY<&EM@--J`k{--)DWxre{>G-#E2$sF-OK*dDg5@mLi#7v)(?Tf5wibvmnqnk)6}S_pN-D%WA%DD_nWv$qxJtEG52 z(mCFXeY9WWYy<)RfM{|VTC(Re1U}^~fG*lrG|+D5Wz&WxY(Y0?+uYSiqK7l?Q(oCQ zkwUNQQ@ex^*8@LE{sDm{G#pOGI+hWd9$mqeWKc$9D<~vmtuh=4uE5~ojnf066`V=N zqUvem3LZ}e)G)k);hP9g-$Zaawy=!IGMWY=@knY3(Rid+*?7?X3%P%d?q68_-S{1v z+w>*02%OF(v}!j9u0c_JjMRiw1aWNT)tW#jscpwY*nvl|6OUmR&hu%8GR{&+n{+Qz z#^)*Fs}%4WS6`f74+jUuSBXw~2bx ze3t4=F`MuA(6&-sZK%JHT852}MYwodk9fa2FvD z5biL+ju7K02HD+)a25~qt7uq>G(@BW6kS9LQTRh#BO>jkaECbx3J+g~bG{6xapX=J z#yuI>hdmiyrb9{EJwCm%OD|0k+C+`!9?6@J|NF0=S{AgaBTq2ZPcmkwS8NGk%ju$ck5g_s)_c6<-d--#zgJSVDQ@o`mLT%*LbMS`=vt{!43 zi9t$*Aa!GnwB4ubYnsZRqkb2t+|z`1k#Ts2nj6$Jhhs1miGBj;VG_CNM<~9sM?7WY zOkN=tUqJk}!dIT9~0QbkswO`>HItdO`v0t+O+$m+VvI6jA`__c5WFHnvb z{q!SrUxtgm3}e0wC+WeJp%2G73gR^TgIl*E&HZS&jc!kxTZpUZi=~LX;JxUl_^)ww zKy@6qsWz%7uP7waily1Q%{0J*sqXxzC-BrNf#<6NR~u<68EdIlb%G*pQ;l?6eG09w z=YBL3!8Pjn8ufgG;eV3_{T6w=&7!?d?(eV%zRRza_b`d~ef?7GiH|B>9%3P%|X@ZTx?S+17rE96h?;&a-7t*ijNgBYxRm^9r%$ITBTB%jn)^~cXG=dLE z>qDl=PwD(;g#Qbs$uAX+qws z9qgSum#~X>7DtKBpF@|X+sm&8)rGjE{tLiOl|PfiU)Uu7O3W+N`)|CUzT`*yKk7If n_c#y%o=`V)gx8ha(E;x4=QZ~ouW_n7dVm~G6Z!-p2Qc|Rfgeid delta 1419 zcmY*ZSx-|@5dQ80_xARJfFib)iYO=rT)`b&QCvVpKv7((A|kSgqPW&IYBX`VuF)8c zKKWqKn3721qYoy&_zU!BXps2LX=yY~=FT~1&NtsTGpFAQo`+&zM?ZZAP=RX>rl8J; zFzOv_#uf`(9WENgY_rhlz(kV+3(aD-`>+EoHg-DLg;u$+TLSmU*7-|%6v9b%41hE5AdEp%znJGwO#d(pJez2E-#->WsP(aYA~WVpT2 zzT<86{arN!y?ytM9&M}FYlO23(e0uDQ!Vtk=*2Pbg)z-vgS9ReBBCMRdu0TJeQj+n z3ehL#xQi3$w{X(MDGb~#bJg{jfI2B)*k5TT#ki8Egd6g>rfZv7(qo z&%_*T$836OScZ*Ul_4GLumW@GSwwh>L@pcmFc0&YBMUb<7G-2o$#WmHKe(=0SilX| zR7i097rb|NH<{%77PbnLYT_;-e_@h_07DniGf>2x#q>`&#|nab6`TmR+SlFY?U zD8Yli%3V^f90gIsg4I&!dX}?Em8?LOae5Lun}rk#8V4(blEs>dVyTc%;B#&iex84T z_;>xQRl}rAKzj;xZwj?Og<8w@2ZY4bv4aiM4Q8G<}F^ZC8rV#{`DzW6m8I`Pz zk{W3I>e`@K6vg;SS6f$9;Ye5=B>Jz*jB`h>Mp*=*8H#*_9*41P7*@+L%$BUqA=pFk z)s0~?C^5#@Ies_T_FMn-B$QG)UQ`|;dVoX{#nZ7Sm2VYK)ZCBd`v=}pCwB;cS3&>( zLTsKUrdDUG)(U^`_PAhdV*LmBhmqGZgh@GpID+MIgyNVSM+Uw8&`Y?YshnB{B`FUw zRZCb( UPY#HBNlVza4Wzk|_&PTI1u)aDHUIzs diff --git a/ÜB-Praxis-Abstiegsparser für X-Leer/src/de/dhbw/compiler/xparser/XParser.java b/ÜB-Praxis-Abstiegsparser für X-Leer/src/de/dhbw/compiler/xparser/XParser.java index df274c8..187ee36 100644 --- a/ÜB-Praxis-Abstiegsparser für X-Leer/src/de/dhbw/compiler/xparser/XParser.java +++ b/ÜB-Praxis-Abstiegsparser für X-Leer/src/de/dhbw/compiler/xparser/XParser.java @@ -152,9 +152,42 @@ public class XParser { private Tree parseNumExpr() { int oldPosition = in.getPosition(); Tree tree = new Tree(new Token(Token.EXPR)); + Tree intConst; + if ((intConst = parseNumExpr2()) != null) { + tree.addLastChild(intConst); + return tree; + } + in.setPosition(oldPosition); + return null; + } + private Tree parseNumExpr2() { + int oldPosition = in.getPosition(); + Tree tree = new Tree(new Token(Token.EXPR2)); + Tree intConst; + + if ((intConst = parseNumExpr3()) != null) { + tree.addLastChild(intConst); + return tree; + } + + in.setPosition(oldPosition); + return null; + } + + private Tree parseNumExpr3() { + int oldPosition = in.getPosition(); + Tree tree = new Tree(new Token(Token.EXPR3)); + Tree intConst; + + if ((intConst = parseToken(Token.INTCONST)) != null) { + tree.addLastChild(intConst); + return tree; + } + + in.setPosition(oldPosition); return null; }